diff options
author | David Robillard <d@drobilla.net> | 2011-10-27 20:10:49 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2011-10-27 20:10:49 +0000 |
commit | 743f0ea0ecaa44204abed163187f3335894dcda1 (patch) | |
tree | 63fa0982b04bae65ff2ec07e2075cff4d7a237d3 /gtk2_ardour | |
parent | 5005ba060ec93b08cb9cc4beabcfc7a5f7ef2f84 (diff) |
Ever so slightly less memory and better field alignment per CairoWidget.
Fix indentation.
git-svn-id: svn://localhost/ardour2/branches/3.0@10316 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/ardour_button.cc | 51 | ||||
-rw-r--r-- | gtk2_ardour/ardour_button.h | 26 | ||||
-rw-r--r-- | gtk2_ardour/cairo_widget.cc | 3 | ||||
-rw-r--r-- | gtk2_ardour/cairo_widget.h | 2 | ||||
-rw-r--r-- | gtk2_ardour/led.cc | 115 | ||||
-rw-r--r-- | gtk2_ardour/led.h | 18 |
6 files changed, 107 insertions, 108 deletions
diff --git a/gtk2_ardour/ardour_button.cc b/gtk2_ardour/ardour_button.cc index 08d28a1aea..d72e9549c0 100644 --- a/gtk2_ardour/ardour_button.cc +++ b/gtk2_ardour/ardour_button.cc @@ -42,19 +42,18 @@ ArdourButton::Element ArdourButton::default_elements = ArdourButton::Element (Ar ArdourButton::Element ArdourButton::led_default_elements = ArdourButton::Element (ArdourButton::default_elements|ArdourButton::Indicator); ArdourButton::ArdourButton (Element e) - : _elements (e) + : _elements (e) , _text_width (0) , _text_height (0) - , _led_left (false) - , _diameter (0.0) - , _fixed_diameter (false) - , _distinct_led_click (true) + , _diameter (0.0) , _corner_radius (9) , edge_pattern (0) , fill_pattern (0) , led_inset_pattern (0) , reflection_pattern (0) - + , _led_left (false) + , _fixed_diameter (false) + , _distinct_led_click (true) { ColorsChanged.connect (sigc::mem_fun (*this, &ArdourButton::color_handler)); StateChanged.connect (sigc::mem_fun (*this, &ArdourButton::state_handler)); @@ -94,19 +93,19 @@ ArdourButton::set_markup (const std::string& str) void ArdourButton::render (cairo_t* cr) { - if (!_fixed_diameter) { - _diameter = std::min (_width, _height); - } + if (!_fixed_diameter) { + _diameter = std::min (_width, _height); + } /* background fill. use parent window style, so that we fit in nicely. */ Color c = get_parent_bg (); - - cairo_rectangle (cr, 0, 0, _width, _height); - cairo_stroke_preserve (cr); - cairo_set_source_rgb (cr, c.get_red_p(), c.get_green_p(), c.get_blue_p()); - cairo_fill (cr); + + cairo_rectangle (cr, 0, 0, _width, _height); + cairo_stroke_preserve (cr); + cairo_set_source_rgb (cr, c.get_red_p(), c.get_green_p(), c.get_blue_p()); + cairo_fill (cr); if (_elements & Edge) { Gtkmm2ext::rounded_rectangle (cr, 0, 0, _width, _height, _corner_radius); @@ -185,11 +184,11 @@ ArdourButton::state_handler () void ArdourButton::set_diameter (float d) { - _diameter = (d*2) + 5.0; + _diameter = (d*2) + 5.0; - if (_diameter != 0.0) { - _fixed_diameter = true; - } + if (_diameter != 0.0) { + _fixed_diameter = true; + } set_colors (); } @@ -211,13 +210,13 @@ ArdourButton::on_size_request (Gtk::Requisition* req) _layout->get_pixel_size (_text_width, _text_height); xpad += 6; } - - if (_fixed_diameter) { - req->width = _text_width + (int) _diameter + xpad; - req->height = max (_text_height, (int) _diameter) + ypad; - } else { - CairoWidget::on_size_request (req); - } + + if (_fixed_diameter) { + req->width = _text_width + (int) _diameter + xpad; + req->height = max (_text_height, (int) _diameter) + ypad; + } else { + CairoWidget::on_size_request (req); + } } void @@ -322,7 +321,7 @@ ArdourButton::set_colors () led_b = b/255.0; led_a = a/255.0; - set_dirty (); + set_dirty (); } void diff --git a/gtk2_ardour/ardour_button.h b/gtk2_ardour/ardour_button.h index b7e073af05..1bf5aaac19 100644 --- a/gtk2_ardour/ardour_button.h +++ b/gtk2_ardour/ardour_button.h @@ -47,7 +47,7 @@ class ArdourButton : public CairoWidget, Gtk::Activatable Element elements() const { return _elements; } void set_corner_radius (float); - void set_diameter (float); + void set_diameter (float); void set_text (const std::string&); void set_markup (const std::string&); @@ -59,22 +59,20 @@ class ArdourButton : public CairoWidget, Gtk::Activatable protected: void render (cairo_t *); - void on_size_request (Gtk::Requisition* req); + void on_size_request (Gtk::Requisition* req); void on_size_allocate (Gtk::Allocation&); bool on_button_press_event (GdkEventButton*); bool on_button_release_event (GdkEventButton*); private: - Element _elements; Glib::RefPtr<Pango::Layout> _layout; - std::string _text; - int _text_width; - int _text_height; - bool _led_left; - float _diameter; - bool _fixed_diameter; - bool _distinct_led_click; - float _corner_radius; + std::string _text; + Element _elements; + + int _text_width; + int _text_height; + float _diameter; + float _corner_radius; cairo_pattern_t* edge_pattern; cairo_pattern_t* fill_pattern; @@ -91,7 +89,11 @@ class ArdourButton : public CairoWidget, Gtk::Activatable double led_b; double led_a; - void set_colors (); + bool _led_left; + bool _fixed_diameter; + bool _distinct_led_click; + + void set_colors (); void color_handler (); void state_handler (); }; diff --git a/gtk2_ardour/cairo_widget.cc b/gtk2_ardour/cairo_widget.cc index 025bb16ea6..d5dc846ee4 100644 --- a/gtk2_ardour/cairo_widget.cc +++ b/gtk2_ardour/cairo_widget.cc @@ -25,9 +25,8 @@ CairoWidget::CairoWidget () , _height (1) , _active_state (CairoWidget::ActiveState (0)) , _visual_state (CairoWidget::VisualState (0)) - , _dirty (true) , _pixmap (0) - + , _dirty (true) { } diff --git a/gtk2_ardour/cairo_widget.h b/gtk2_ardour/cairo_widget.h index 61708e19cd..ff0533643b 100644 --- a/gtk2_ardour/cairo_widget.h +++ b/gtk2_ardour/cairo_widget.h @@ -73,8 +73,8 @@ protected: VisualState _visual_state; private: - bool _dirty; ///< true if the pixmap requires re-rendering GdkPixmap* _pixmap; ///< our pixmap + bool _dirty; ///< true if the pixmap requires re-rendering }; #endif diff --git a/gtk2_ardour/led.cc b/gtk2_ardour/led.cc index 8a8c5868f3..e2e4b28105 100644 --- a/gtk2_ardour/led.cc +++ b/gtk2_ardour/led.cc @@ -28,12 +28,11 @@ using namespace Gtk; using namespace Glib; LED::LED() - : _diameter (0.0) - , _fixed_diameter (false) - , _red (0.0) - , _green (1.0) - , _blue (0.0) - + : _diameter (0.0) + , _red (0.0) + , _green (1.0) + , _blue (0.0) + , _fixed_diameter (false) { } @@ -44,35 +43,35 @@ LED::~LED() void LED::render (cairo_t* cr) { - if (!_fixed_diameter) { - _diameter = std::min (_width, _height); - } + if (!_fixed_diameter) { + _diameter = std::min (_width, _height); + } - //background + //background - Widget* parent; - RefPtr<Style> style; - Color c; + Widget* parent; + RefPtr<Style> style; + Color c; - parent = get_parent (); + parent = get_parent (); - while (parent && !parent->get_has_window()) { - parent = parent->get_parent(); - } + while (parent && !parent->get_has_window()) { + parent = parent->get_parent(); + } - if (parent && parent->get_has_window()) { - style = parent->get_style (); - c = style->get_bg (parent->get_state()); - } else { - style = get_style (); - c = style->get_bg (get_state()); - } + if (parent && parent->get_has_window()) { + style = parent->get_style (); + c = style->get_bg (parent->get_state()); + } else { + style = get_style (); + c = style->get_bg (get_state()); + } #if 0 - cairo_rectangle(cr, 0, 0, _width, _height); - cairo_stroke_preserve(cr); - cairo_set_source_rgb(cr, c.get_red_p(), c.get_green_p(), c.get_blue_p()); - cairo_fill(cr); + cairo_rectangle(cr, 0, 0, _width, _height); + cairo_stroke_preserve(cr); + cairo_set_source_rgb(cr, c.get_red_p(), c.get_green_p(), c.get_blue_p()); + cairo_fill(cr); #endif cairo_translate(cr, _width/2, _height/2); @@ -112,51 +111,51 @@ LED::render (cairo_t* cr) void LED::set_diameter (float d) { - _diameter = (d*2) + 5.0; + _diameter = (d*2) + 5.0; - if (_diameter != 0.0) { - _fixed_diameter = true; - } + if (_diameter != 0.0) { + _fixed_diameter = true; + } - set_dirty (); + set_dirty (); } void LED::on_realize () { - set_colors_from_style (); - CairoWidget::on_realize (); + set_colors_from_style (); + CairoWidget::on_realize (); } void LED::on_size_request (Gtk::Requisition* req) { - if (_fixed_diameter) { - req->width = _diameter; - req->height = _diameter; - } else { - CairoWidget::on_size_request (req); - } + if (_fixed_diameter) { + req->width = _diameter; + req->height = _diameter; + } else { + CairoWidget::on_size_request (req); + } } void LED::set_colors_from_style () { - RefPtr<Style> style = get_style(); - Color c; - - switch (_visual_state) { - case 0: - c = style->get_fg (STATE_NORMAL); - break; - default: - c = style->get_fg (STATE_ACTIVE); - break; - } - - _red = c.get_red_p (); - _green = c.get_green_p (); - _blue = c.get_blue_p (); - - set_dirty (); + RefPtr<Style> style = get_style(); + Color c; + + switch (_visual_state) { + case 0: + c = style->get_fg (STATE_NORMAL); + break; + default: + c = style->get_fg (STATE_ACTIVE); + break; + } + + _red = c.get_red_p (); + _green = c.get_green_p (); + _blue = c.get_blue_p (); + + set_dirty (); } diff --git a/gtk2_ardour/led.h b/gtk2_ardour/led.h index c60e0761cf..edb08818b3 100644 --- a/gtk2_ardour/led.h +++ b/gtk2_ardour/led.h @@ -30,21 +30,21 @@ class LED : public CairoWidget LED (); virtual ~LED (); - void set_diameter (float); + void set_diameter (float); protected: void render (cairo_t *); - void on_size_request (Gtk::Requisition* req); - void on_realize (); + void on_size_request (Gtk::Requisition* req); + void on_realize (); private: - float _diameter; - bool _fixed_diameter; - float _red; - float _green; - float _blue; + float _diameter; + float _red; + float _green; + float _blue; + bool _fixed_diameter; - void set_colors_from_style (); + void set_colors_from_style (); }; #endif /* __gtk2_ardour_led_h__ */ |