remove annoying style_ prefix from DEF_STYLE and rename it to DEF_PROP
This commit is contained in:
parent
c2a605f172
commit
26858b795d
8 changed files with 46 additions and 46 deletions
|
@ -10,14 +10,14 @@ namespace Raven {
|
|||
void Button::on_init() {
|
||||
auto top_level_styles = get_top_level_styles();
|
||||
|
||||
set_style_text_fill_color(top_level_styles->get_style_text_color());
|
||||
set_style_active_background_fill_color(top_level_styles->get_style_button_active_color());
|
||||
set_style_focused_background_fill_color(top_level_styles->get_style_button_focused_color());
|
||||
set_style_normal_background_fill_color(top_level_styles->get_style_button_normal_color());
|
||||
set_text_fill_color(top_level_styles->get_text_color());
|
||||
set_active_background_fill_color(top_level_styles->get_button_active_color());
|
||||
set_focused_background_fill_color(top_level_styles->get_button_focused_color());
|
||||
set_normal_background_fill_color(top_level_styles->get_button_normal_color());
|
||||
|
||||
set_style_do_background_fill(true);
|
||||
set_style_background_fill_color(m_style_normal_background_fill_color);
|
||||
set_style_font_description(top_level_styles->get_style_controls_font_description());
|
||||
set_do_background_fill(true);
|
||||
set_background_fill_color(m_normal_background_fill_color);
|
||||
set_font_description(top_level_styles->get_controls_font_description());
|
||||
|
||||
set_did_init(true);
|
||||
}
|
||||
|
@ -25,17 +25,17 @@ void Button::on_init() {
|
|||
void Button::on_paint() {
|
||||
auto painter = get_window()->get_painter();
|
||||
|
||||
painter.source_rgb(m_style_text_fill_color);
|
||||
painter.set_pango_font_description(m_style_font_description);
|
||||
painter.source_rgb(m_text_fill_color);
|
||||
painter.set_pango_font_description(m_font_description);
|
||||
painter.text(get_current_geometry(), m_text, PaintTextAlign::Center);
|
||||
painter.fill();
|
||||
}
|
||||
|
||||
void Button::on_focus_update(FocusUpdateEvent &event) {
|
||||
if (is_focused()) {
|
||||
set_style_background_fill_color(m_style_focused_background_fill_color);
|
||||
set_background_fill_color(m_focused_background_fill_color);
|
||||
} else {
|
||||
set_style_background_fill_color(m_style_normal_background_fill_color);
|
||||
set_background_fill_color(m_normal_background_fill_color);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -9,13 +9,13 @@
|
|||
namespace Raven {
|
||||
|
||||
class Button : public Widget {
|
||||
DEF_STYLE(text_fill_color, RGB, 0.0, 0.0, 0.0)
|
||||
DEF_PROP(text_fill_color, RGB, 0.0, 0.0, 0.0)
|
||||
|
||||
DEF_STYLE(normal_background_fill_color, RGB, 0.0, 0.0, 0.0)
|
||||
DEF_STYLE(focused_background_fill_color, RGB, 0.0, 0.0, 0.0)
|
||||
DEF_STYLE(active_background_fill_color, RGB, 0.0, 0.0, 0.0)
|
||||
DEF_PROP(normal_background_fill_color, RGB, 0.0, 0.0, 0.0)
|
||||
DEF_PROP(focused_background_fill_color, RGB, 0.0, 0.0, 0.0)
|
||||
DEF_PROP(active_background_fill_color, RGB, 0.0, 0.0, 0.0)
|
||||
|
||||
DEF_STYLE(font_description, PangoFontDescription*, nullptr)
|
||||
DEF_PROP(font_description, PangoFontDescription*, nullptr)
|
||||
|
||||
private:
|
||||
std::string m_text;
|
||||
|
|
9
src/PropMacros.hpp
Normal file
9
src/PropMacros.hpp
Normal file
|
@ -0,0 +1,9 @@
|
|||
#pragma once
|
||||
|
||||
#define DEF_PROP(name, type, ...) \
|
||||
private: \
|
||||
type m_##name {__VA_ARGS__}; \
|
||||
public: \
|
||||
void set_##name(type new_prop_value) { m_##name = new_prop_value; wants_repaint(); } \
|
||||
type get_##name() { return m_##name; } \
|
||||
private:
|
|
@ -1,9 +0,0 @@
|
|||
#pragma once
|
||||
|
||||
#define DEF_STYLE(name, type, ...) \
|
||||
private: \
|
||||
type m_style_##name {__VA_ARGS__}; \
|
||||
public: \
|
||||
void set_style_##name(type new_style_value) { m_style_##name = new_style_value; wants_repaint(); } \
|
||||
type get_style_##name() { return m_style_##name; } \
|
||||
private:
|
|
@ -3,22 +3,22 @@
|
|||
#include <iostream>
|
||||
#include "Forward.hpp"
|
||||
#include "pango/pango-font.h"
|
||||
#include "StyleMacros.hpp"
|
||||
#include "PropMacros.hpp"
|
||||
#include "RGB.hpp"
|
||||
|
||||
namespace Raven {
|
||||
|
||||
class TopLevelStyles {
|
||||
DEF_STYLE(controls_font_description, PangoFontDescription*, nullptr)
|
||||
DEF_PROP(controls_font_description, PangoFontDescription*, nullptr)
|
||||
|
||||
DEF_STYLE(text_color, RGB, 0.0, 0.0, 0.0)
|
||||
DEF_STYLE(accent_color, RGB, 0.6941, 0.3843, 0.5254)
|
||||
DEF_STYLE(accent_color_darker, RGB, 0.5607, 0.2470, 0.4431)
|
||||
DEF_STYLE(background_color, RGB, 0.9764, 0.9607, 0.8431)
|
||||
DEF_PROP(text_color, RGB, 0.0, 0.0, 0.0)
|
||||
DEF_PROP(accent_color, RGB, 0.6941, 0.3843, 0.5254)
|
||||
DEF_PROP(accent_color_darker, RGB, 0.5607, 0.2470, 0.4431)
|
||||
DEF_PROP(background_color, RGB, 0.9764, 0.9607, 0.8431)
|
||||
|
||||
DEF_STYLE(button_normal_color, RGB, m_style_accent_color)
|
||||
DEF_STYLE(button_focused_color, RGB, m_style_accent_color_darker)
|
||||
DEF_STYLE(button_active_color, RGB, m_style_accent_color_darker)
|
||||
DEF_PROP(button_normal_color, RGB, m_accent_color)
|
||||
DEF_PROP(button_focused_color, RGB, m_accent_color_darker)
|
||||
DEF_PROP(button_active_color, RGB, m_accent_color_darker)
|
||||
|
||||
private:
|
||||
Window *m_window;
|
||||
|
@ -32,12 +32,12 @@ public:
|
|||
pango_font_description_set_weight(font_description, PANGO_WEIGHT_NORMAL);
|
||||
pango_font_description_set_absolute_size(font_description, 16 * PANGO_SCALE);
|
||||
|
||||
m_style_controls_font_description = font_description;
|
||||
m_controls_font_description = font_description;
|
||||
}
|
||||
|
||||
~TopLevelStyles() {
|
||||
if (m_style_controls_font_description) {
|
||||
pango_font_description_free(m_style_controls_font_description);
|
||||
if (m_controls_font_description) {
|
||||
pango_font_description_free(m_controls_font_description);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -37,14 +37,14 @@ void Widget::remove_child(Widget *child) {
|
|||
}
|
||||
|
||||
void Widget::do_generic_paint() {
|
||||
if (m_style_do_background_fill) {
|
||||
if (m_do_background_fill) {
|
||||
auto painter = m_window->get_painter();
|
||||
auto cr = painter.get_cairo();
|
||||
|
||||
cr->save();
|
||||
|
||||
painter.source_rgb(m_style_background_fill_color);
|
||||
painter.rounded_rectangle(m_current_geometry, m_style_background_border_radius);
|
||||
painter.source_rgb(m_background_fill_color);
|
||||
painter.rounded_rectangle(m_current_geometry, m_background_border_radius);
|
||||
painter.fill();
|
||||
|
||||
cr->restore();
|
||||
|
|
|
@ -8,15 +8,15 @@
|
|||
#include "Forward.hpp"
|
||||
#include "RGB.hpp"
|
||||
#include "TopLevelStyles.hpp"
|
||||
#include "StyleMacros.hpp"
|
||||
#include "PropMacros.hpp"
|
||||
|
||||
namespace Raven {
|
||||
|
||||
class Widget {
|
||||
|
||||
DEF_STYLE(do_background_fill, bool, false)
|
||||
DEF_STYLE(background_fill_color, RGB, 0, 0, 0)
|
||||
DEF_STYLE(background_border_radius, double, 0.0)
|
||||
DEF_PROP(do_background_fill, bool, false)
|
||||
DEF_PROP(background_fill_color, RGB, 0, 0, 0)
|
||||
DEF_PROP(background_border_radius, double, 0.0)
|
||||
|
||||
|
||||
private:
|
||||
|
|
|
@ -13,8 +13,8 @@ int main() {
|
|||
|
||||
button.set_current_geometry(Raven::Box(10, 10, 100, 30));
|
||||
main_widget.set_current_geometry(window.get_current_geometry());
|
||||
main_widget.set_style_background_fill_color(window.get_top_level_styles()->get_style_background_color());
|
||||
main_widget.set_style_do_background_fill(true);
|
||||
main_widget.set_background_fill_color(window.get_top_level_styles()->get_background_color());
|
||||
main_widget.set_do_background_fill(true);
|
||||
window.set_main_widget(&main_widget);
|
||||
|
||||
main_widget.add_child(&button);
|
||||
|
|
Loading…
Reference in a new issue