diff options
author | Ben Loftis <ben@glw.com> | 2012-12-06 20:48:44 +0000 |
---|---|---|
committer | Ben Loftis <ben@glw.com> | 2012-12-06 20:48:44 +0000 |
commit | 92e5a13fd41eba37a2634caf921606b7d915c557 (patch) | |
tree | 07bdc131a1f0a640983ae66a771104f3bec41ec1 /gtk2_ardour | |
parent | 9884773eea9764b6dacd3ade6a1d49cf389fe398 (diff) |
several theme changes. changed drawing of rounded_rectangle to be more correct. operation and feel should be more consistent. rec-mute-solo buttons are now dull until enabled. this might be debatable. otherwise if it looks weird, try loading Window->Theme Manager and clicking Restore Defaults
git-svn-id: svn://localhost/ardour2/branches/3.0@13611 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/ardour3_ui_default.conf | 137 | ||||
-rw-r--r-- | gtk2_ardour/ardour3_widget_list.rc | 1 | ||||
-rw-r--r-- | gtk2_ardour/ardour_button.cc | 115 | ||||
-rw-r--r-- | gtk2_ardour/ardour_button.h | 6 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui2.cc | 13 | ||||
-rw-r--r-- | gtk2_ardour/audio_clock.cc | 3 | ||||
-rw-r--r-- | gtk2_ardour/automation_time_axis.cc | 1 | ||||
-rw-r--r-- | gtk2_ardour/canvas_vars.h | 1 | ||||
-rw-r--r-- | gtk2_ardour/editor.cc | 51 | ||||
-rw-r--r-- | gtk2_ardour/editor.h | 15 | ||||
-rw-r--r-- | gtk2_ardour/editor_actions.cc | 9 | ||||
-rw-r--r-- | gtk2_ardour/mixer_strip.cc | 4 | ||||
-rw-r--r-- | gtk2_ardour/route_ui.cc | 3 | ||||
-rw-r--r-- | gtk2_ardour/stereo_panner.cc | 2 |
14 files changed, 211 insertions, 150 deletions
diff --git a/gtk2_ardour/ardour3_ui_default.conf b/gtk2_ardour/ardour3_ui_default.conf index b6678035ad..f74f293fea 100644 --- a/gtk2_ardour/ardour3_ui_default.conf +++ b/gtk2_ardour/ardour3_ui_default.conf @@ -179,66 +179,65 @@ <Option name="processor control button: led active" value="ff0000ff"/> <Option name="processor control button: text" value="ffffffff"/> <Option name="processor control button: text active" value="ffffffff"/> - <Option name="monitor button: fill start" value="5d5856ff"/> - <Option name="monitor button: fill end" value="564d48ff"/> - <Option name="monitor button: fill start active" value="46a344ff"/> - <Option name="monitor button: fill end active" value="3c723bff"/> + <Option name="monitor button: fill start" value="5f5a58ff"/> + <Option name="monitor button: fill end" value="3f3a38ff"/> + <Option name="monitor button: fill start active" value="553500ff"/> + <Option name="monitor button: fill end active" value="e58505ff"/> <Option name="monitor button: led" value="660000ff"/> <Option name="monitor button: led active" value="ff0000ff"/> <Option name="monitor button: text" value="aaaaa3ff"/> <Option name="monitor button: text active" value="1a1a1aff"/> - <Option name="solo isolate: fill start" value="5d5856ff"/> - <Option name="solo isolate: fill end" value="564d48ff"/> + <Option name="solo isolate: fill start" value="5f5a58ff"/> + <Option name="solo isolate: fill end" value="504442ff"/> <Option name="solo isolate: fill start active" value="5d5856ff"/> <Option name="solo isolate: fill end active" value="564d48ff"/> <Option name="solo isolate: led" value="660000ff"/> <Option name="solo isolate: led active" value="ff0000ff"/> <Option name="solo isolate: text" value="c7c7d8ff"/> <Option name="solo isolate: text active" value="c8c8d9ff"/> - <Option name="solo safe: fill start" value="5d5856ff"/> - <Option name="solo safe: fill end" value="564d48ff"/> + <Option name="solo safe: fill start" value="5f5a58ff"/> + <Option name="solo safe: fill end" value="504442ff"/> <Option name="solo safe: fill start active" value="5d5856ff"/> <Option name="solo safe: fill end active" value="564d48ff"/> <Option name="solo safe: led" value="660000ff"/> <Option name="solo safe: led active" value="ff0000ff"/> <Option name="solo safe: text" value="c7c7d8ff"/> <Option name="solo safe: text active" value="c8c8d9ff"/> - <Option name="monitor section cut: fill start" value="5d5856ff"/> - <Option name="monitor section cut: fill end" value="564d48ff"/> - <Option name="monitor section cut: fill start active" value="f7bb0aff"/> - <Option name="monitor section cut: fill end active" value="ed8f00ff"/> + <Option name="monitor section cut: fill start" value="5f5a58ff"/> + <Option name="monitor section cut: fill end" value="3f3a38ff"/> + <Option name="monitor section cut: fill start active" value="5f4943ff"/> + <Option name="monitor section cut: fill end active" value="ffa500ff"/> <Option name="monitor section cut: led" value="473812ff"/> <Option name="monitor section cut: led active" value="78cb4eff"/> <Option name="monitor section cut: text" value="c7c7d8ff"/> <Option name="monitor section cut: text active" value="000000ff"/> - <Option name="monitor section dim: fill start" value="5d5856ff"/> - <Option name="monitor section dim: fill end" value="564d48ff"/> - <Option name="monitor section dim: fill start active" value="04af02ff"/> - <Option name="monitor section dim: fill end active" value="008a00ff"/> - <Option name="monitor section dim: led" value="473812ff"/> + <Option name="monitor section dim: fill start" value="5f5a58ff"/> + <Option name="monitor section dim: fill end" value="3f3a38ff"/> + <Option name="monitor section dim: fill start active" value="553500ff"/> + <Option name="monitor section dim: fill end active" value="e58505ff"/> <Option name="monitor section dim: led active" value="78cb4eff"/> <Option name="monitor section dim: text" value="c8c8d9ff"/> <Option name="monitor section dim: text active" value="c8c8d9ff"/> - <Option name="monitor section solo: fill start" value="5d5856ff"/> - <Option name="monitor section solo: fill end" value="564d48ff"/> - <Option name="monitor section solo: fill start active" value="f4f395ff"/> - <Option name="monitor section solo: fill end active" value="fffe1dff"/> + <Option name="monitor section solo: fill start" value="5f5a58ff"/> + <Option name="monitor section solo: fill end" value="3f3a38ff"/> + <Option name="monitor section solo: fill start active" value="104506ff"/> + <Option name="monitor section solo: fill end active" value="4dbb00ff"/> <Option name="monitor section solo: led" value="473812ff"/> <Option name="monitor section solo: led active" value="ffa500ff"/> <Option name="monitor section solo: text" value="00000000"/> <Option name="monitor section solo: text active" value="00000000"/> - <Option name="monitor section invert: fill start" value="5d5856ff"/> - <Option name="monitor section invert: fill end" value="564d48ff"/> - <Option name="monitor section invert: fill start active" value="03af01ff"/> - <Option name="monitor section invert: fill end active" value="008a00ff"/> + <Option name="monitor section invert: fill start" value="5f5a58ff"/> + <Option name="monitor section invert: fill end" value="3f3a38ff"/> + <Option name="monitor section invert: fill start active" value="222260ff"/> + <Option name="monitor section invert: fill end active" value="4242d0ff"/> <Option name="monitor section invert: led" value="473812ff"/> <Option name="monitor section invert: led active" value="78cb4eff"/> <Option name="monitor section invert: text" value="00000000"/> <Option name="monitor section invert: text active" value="00000000"/> - <Option name="monitor section mono: fill start" value="5d5856ff"/> - <Option name="monitor section mono: fill end" value="564d48ff"/> - <Option name="monitor section mono: fill start active" value="04af02ff"/> - <Option name="monitor section mono: fill end active" value="008a00ff"/> + <Option name="monitor section mono: fill start" value="5f5a58ff"/> + <Option name="monitor section mono: fill end" value="3f3a38ff"/> + <Option name="monitor section mono: fill start active" value="222260ff"/> + <Option name="monitor section mono: fill end active" value="3232c0ff"/> <Option name="monitor section mono: led" value="473812ff"/> <Option name="monitor section mono: led active" value="78cb4eff"/> <Option name="monitor section mono: text" value="c7c7d8ff"/> @@ -299,26 +298,34 @@ <Option name="feedback alert: led active" value="00000000"/> <Option name="feedback alert: text" value="969696ff"/> <Option name="feedback alert: text active" value="e5e5e5ff"/> - <Option name="mute button: fill start" value="af8a14ff"/> - <Option name="mute button: fill end" value="745127ff"/> - <Option name="mute button: fill start active" value="ffc300ff"/> - <Option name="mute button: fill end active" value="ea8400ff"/> + <Option name="mute button: fill start" value="565659ff"/> + <Option name="mute button: fill end" value="484853ff"/> + <Option name="mute button: fill start active" value="5f4943ff"/> + <Option name="mute button: fill end active" value="ffa500ff"/> <Option name="mute button: led" value="00000000"/> <Option name="mute button: led active" value="00000000"/> <Option name="mute button: text" value="bfbfbfff"/> <Option name="mute button: text active" value="191919ff"/> - <Option name="solo button: fill start" value="a09865ff"/> - <Option name="solo button: fill end" value="4c5b2aff"/> - <Option name="solo button: fill start active" value="fffd9bff"/> - <Option name="solo button: fill end active" value="ffff00ff"/> + <Option name="solo button: fill start" value="565659ff"/> + <Option name="solo button: fill end" value="484853ff"/> + <Option name="solo button: fill start active" value="104506ff"/> + <Option name="solo button: fill end active" value="4dbb00ff"/> <Option name="solo button: led" value="00000000"/> <Option name="solo button: led active" value="00000000"/> <Option name="solo button: text" value="bfbfbfff"/> <Option name="solo button: text active" value="191919ff"/> - <Option name="record enable button: fill start" value="603f3fff"/> + <Option name="invert button: fill start" value="565659ff"/> + <Option name="invert button: fill end" value="484853ff"/> + <Option name="invert button: fill start active" value="222260ff"/> + <Option name="invert button: fill end active" value="4242d0ff"/> + <Option name="invert button: led" value="473812ff"/> + <Option name="invert button: led active" value="78cb4eff"/> + <Option name="invert button: text" value="bfbfbfff"/> + <Option name="invert button: text active" value="bfbfbfff"/> + <Option name="record enable button: fill start" value="5f3f3fff"/> <Option name="record enable button: fill end" value="3d2828ff"/> - <Option name="record enable button: fill start active" value="fb0c0cff"/> - <Option name="record enable button: fill end active" value="b50f0fff"/> + <Option name="record enable button: fill start active" value="280b0bff"/> + <Option name="record enable button: fill end active" value="b50e0eff"/> <Option name="record enable button: led" value="00000000"/> <Option name="record enable button: led active" value="00000000"/> <Option name="record enable button: text" value="a5a5a5ff"/> @@ -331,9 +338,9 @@ <Option name="send alert button: led active" value="00000000"/> <Option name="send alert button: text" value="ccccccff"/> <Option name="send alert button: text active" value="000000ff"/> - <Option name="transport button: fill start" value="656867ff"/> - <Option name="transport button: fill end" value="333333ff"/> - <Option name="transport button: fill start active" value="a1ff43ff"/> + <Option name="transport button: fill start" value="616268ff"/> + <Option name="transport button: fill end" value="505159ff"/> + <Option name="transport button: fill start active" value="145409ff"/> <Option name="transport button: fill end active" value="00a300ff"/> <Option name="transport button: led" value="00000000"/> <Option name="transport button: led active" value="00000000"/> @@ -341,14 +348,14 @@ <Option name="transport button: text active" value="00000000"/> <Option name="transport recenable button: fill start" value="5f3f3fff"/> <Option name="transport recenable button: fill end" value="3d2828ff"/> - <Option name="transport recenable button: fill start active" value="f80b0bff"/> + <Option name="transport recenable button: fill start active" value="280b0bff"/> <Option name="transport recenable button: fill end active" value="b50e0eff"/> <Option name="transport recenable button: led" value="00000000"/> <Option name="transport recenable button: led active" value="00000000"/> <Option name="transport recenable button: text" value="00000000"/> <Option name="transport recenable button: text active" value="00000000"/> <Option name="transport option button: fill start" value="636470ff"/> - <Option name="transport option button: fill end" value="4a4b51ff"/> + <Option name="transport option button: fill end" value="54555dff"/> <Option name="transport option button: fill start active" value="636470ff"/> <Option name="transport option button: fill end active" value="4a4b51ff"/> <Option name="transport option button: led" value="4f3300ff"/> @@ -356,9 +363,9 @@ <Option name="transport option button: text" value="c7c7d8ff"/> <Option name="transport option button: text active" value="c8c8d9ff"/> <Option name="transport active option button: fill start" value="606b60ff"/> - <Option name="transport active option button: fill end" value="555d54ff"/> - <Option name="transport active option button: fill start active" value="a1ff43ff"/> - <Option name="transport active option button: fill end active" value="00a300ff"/> + <Option name="transport active option button: fill end" value="495348ff"/> + <Option name="transport active option button: fill start active" value="154515ff"/> + <Option name="transport active option button: fill end active" value="20a320ff"/> <Option name="transport active option button: led" value="4f3300ff"/> <Option name="transport active option button: led active" value="ffa500ff"/> <Option name="transport active option button: text" value="c7c7d8ff"/> @@ -373,46 +380,46 @@ <Option name="plugin bypass button: text active" value="c8c8d9ff"/> <Option name="punch button: fill start" value="603f3fff"/> <Option name="punch button: fill end" value="3d2828ff"/> - <Option name="punch button: fill start active" value="fb0c0cff"/> - <Option name="punch button: fill end active" value="b50f0fff"/> + <Option name="punch button: fill start active" value="503010ff"/> + <Option name="punch button: fill end active" value="f03020ff"/> <Option name="punch button: led" value="00000000"/> <Option name="punch button: led active" value="00000000"/> <Option name="punch button: text" value="a5a5a5ff"/> <Option name="punch button: text active" value="d8d8d8ff"/> - <Option name="mouse mode button: fill start" value="6e8755ff"/> - <Option name="mouse mode button: fill end" value="274e00ff"/> - <Option name="mouse mode button: fill start active" value="c5ff95ff"/> + <Option name="mouse mode button: fill start" value="636470ff"/> + <Option name="mouse mode button: fill end" value="54555dff"/> + <Option name="mouse mode button: fill start active" value="145409ff"/> <Option name="mouse mode button: fill end active" value="14ae08ff"/> <Option name="mouse mode button: led" value="4f3300ff"/> <Option name="mouse mode button: led active" value="ffa500ff"/> - <Option name="mouse mode button: text" value="c7c7d8ff"/> + <Option name="mouse mode button: text" value="f2f2f2ff"/> <Option name="mouse mode button: text active" value="000000ff"/> <Option name="zoom button: fill start" value="626370ff"/> - <Option name="zoom button: fill end" value="4a4b51ff"/> - <Option name="zoom button: fill start active" value="4d4d4dff"/> - <Option name="zoom button: fill end active" value="121212ff"/> + <Option name="zoom button: fill end" value="54555dff"/> + <Option name="zoom button: fill start active" value="202025ff"/> + <Option name="zoom button: fill end active" value="404045ff"/> <Option name="zoom button: led" value="4f3300ff"/> <Option name="zoom button: led active" value="ffa500ff"/> <Option name="zoom button: text" value="c7c7d8ff"/> <Option name="zoom button: text active" value="c8c8d9ff"/> - <Option name="route button: fill start" value="56565dff"/> - <Option name="route button: fill end" value="484856ff"/> + <Option name="route button: fill start" value="565659ff"/> + <Option name="route button: fill end" value="484853ff"/> <Option name="route button: fill start active" value="4d4d4dff"/> <Option name="route button: fill end active" value="121212ff"/> <Option name="route button: led" value="4f3300ff"/> <Option name="route button: led active" value="ffa500ff"/> <Option name="route button: text" value="c7c7d8ff"/> <Option name="route button: text active" value="c8c8d9ff"/> - <Option name="mixer strip button: fill start" value="56565dff"/> - <Option name="mixer strip button: fill end" value="484856ff"/> - <Option name="mixer strip button: fill start active" value="ffd993ff"/> + <Option name="mixer strip button: fill start" value="565659ff"/> + <Option name="mixer strip button: fill end" value="484853ff"/> + <Option name="mixer strip button: fill start active" value="5f4943ff"/> <Option name="mixer strip button: fill end active" value="ffa500ff"/> <Option name="mixer strip button: led" value="4f3300ff"/> <Option name="mixer strip button: led active" value="ffa500ff"/> - <Option name="mixer strip button: text" value="c7c7d7ff"/> + <Option name="mixer strip button: text" value="c7c7d8ff"/> <Option name="mixer strip button: text active" value="000000ff"/> - <Option name="mixer strip name button: fill start" value="56565dff"/> - <Option name="mixer strip name button: fill end" value="484856ff"/> + <Option name="mixer strip name button: fill start" value="565659ff"/> + <Option name="mixer strip name button: fill end" value="484853ff"/> <Option name="mixer strip name button: fill start active" value="4d4d4dff"/> <Option name="mixer strip name button: fill end active" value="121212ff"/> <Option name="mixer strip name button: led" value="4f3300ff"/> diff --git a/gtk2_ardour/ardour3_widget_list.rc b/gtk2_ardour/ardour3_widget_list.rc index 14d72ff233..63d402aca1 100644 --- a/gtk2_ardour/ardour3_widget_list.rc +++ b/gtk2_ardour/ardour3_widget_list.rc @@ -361,6 +361,7 @@ widget "*processor fader" style:highest "processor" widget "*processor postfader" style:highest "processor" widget "*MonitorSectionLabel" style:highest "very_small_text" widget "*mute button" style:highest "monitor" +widget "*invert button" style:highest "monitor" widget "*send alert button" style:highest "small_text" widget "*solo button" style:highest "monitor" widget "*rude solo" style:highest "small_text" diff --git a/gtk2_ardour/ardour_button.cc b/gtk2_ardour/ardour_button.cc index 303e52de64..f24b60148d 100644 --- a/gtk2_ardour/ardour_button.cc +++ b/gtk2_ardour/ardour_button.cc @@ -38,6 +38,8 @@ #include "i18n.h" +#define REFLECTION_HEIGHT 2 + using namespace Gdk; using namespace Gtk; using namespace Glib; @@ -57,7 +59,7 @@ ArdourButton::ArdourButton (Element e) , _text_width (0) , _text_height (0) , _diameter (11.0) - , _corner_radius (5.0) + , _corner_radius (4.0) , _corner_mask (0xf) , border_color (0) , fill_color_active (0) @@ -83,7 +85,7 @@ ArdourButton::ArdourButton (const std::string& str, Element e) , _text_width (0) , _text_height (0) , _diameter (11.0) - , _corner_radius (5.0) + , _corner_radius (4.0) , _corner_mask (0xf) , border_color (0) , fill_color_active (0) @@ -186,17 +188,14 @@ ArdourButton::render (cairo_t* cr) float r,g,b,a; - if (_elements & Edge) { - rounded_function (cr, 0, 0, get_width(), get_height(), _corner_radius); - UINT_TO_RGBA (border_color, &r, &g, &b, &a); - //cairo_set_source_rgba (cr, r/255.0,g/255.0,b/255.0,a/255.0); //TODO: why doesn't this work? - cairo_set_source_rgba (cr, 0,0,0,0.9); - cairo_fill (cr); - } - - if (_elements & Body) { + if ((_elements & Body)==Body) { if (_elements & Edge) { - rounded_function (cr, 1, 1, get_width()-2, get_height()-2, _corner_radius - 1.0); + + cairo_set_source_rgba (cr, 0, 0, 0, 1); + rounded_function(cr, 0, 0, get_width(), get_height(), _corner_radius); + cairo_fill (cr); + + rounded_function (cr, 1, 1, get_width()-2, get_height()-2, _corner_radius - 1.5); } else { rounded_function (cr, 0, 0, get_width(), get_height(), _corner_radius); } @@ -204,45 +203,55 @@ ArdourButton::render (cairo_t* cr) if (active_state() == Gtkmm2ext::ImplicitActive) { //background color cairo_set_source (cr, fill_pattern); - cairo_fill_preserve (cr); + cairo_fill (cr); //border UINT_TO_RGBA (fill_color_active, &r, &g, &b, &a); - cairo_set_line_width (cr, 2.0); -// rounded_function (cr, 3, 3, get_width()-6, get_height()-6, _corner_radius - 1.0); + cairo_set_line_width (cr, 1.0); + rounded_function (cr, 2, 2, get_width()-4, get_height()-4, _corner_radius - 1.5); cairo_set_source_rgba (cr, r/255.0, g/255.0, b/255.0, a/255.0); cairo_stroke (cr); - //reflection - if (!_flat_buttons) { - rounded_function (cr, 2, 2, get_width()-4, get_height()/2-2, _corner_radius - 1.0); - cairo_set_source (cr, shine_pattern); - cairo_fill (cr); - } - } else if (active_state() == Gtkmm2ext::ExplicitActive) { + } else if (active_state() == Gtkmm2ext::ExplicitActive || ((_elements & Indicator)==Indicator) ) { //background color cairo_set_source (cr, fill_pattern_active); cairo_fill (cr); - //reflection - if (!_flat_buttons) { - rounded_function (cr, 2, 2, get_width()-4, get_height()/2-2, _corner_radius - 1.0); - cairo_set_source (cr, shine_pattern); - cairo_fill (cr); - } } else { //background color cairo_set_source (cr, fill_pattern); cairo_fill (cr); - //reflection - if (!_flat_buttons) { - rounded_function (cr, 2, 2, get_width()-4, get_height()/2-2, _corner_radius - 1.0); - cairo_set_source (cr, shine_pattern); - cairo_fill (cr); - } + } + } + + if ( ((_elements & FlatFace)==FlatFace) && (active_state() != Gtkmm2ext::ExplicitActive) ) { + + if ( !_flat_buttons ) { + float rheight = get_height()*0.5-REFLECTION_HEIGHT; + Gtkmm2ext::rounded_rectangle (cr, 2, 3, get_width()-4, rheight, _corner_radius-1); + cairo_set_source (cr, shine_pattern); + cairo_fill (cr); + } + + if (active_state() == Gtkmm2ext::ExplicitActive) { + + UINT_TO_RGBA (fill_color_active, &r, &g, &b, &a); + cairo_set_line_width (cr, 2.0); + rounded_function (cr, 2, 2, get_width()-4, get_height()-4, _corner_radius - 2.0); + cairo_set_source_rgba (cr, r/255.0, g/255.0, b/255.0, a/255.0); + cairo_fill (cr); + + } else { + + UINT_TO_RGBA (fill_color_inactive, &r, &g, &b, &a); + cairo_set_line_width (cr, 2.0); + rounded_function (cr, 2, 2, get_width()-4, get_height()-4, _corner_radius - 2.0); + cairo_set_source_rgba (cr, r/255.0, g/255.0, b/255.0, a/255.0); + cairo_fill (cr); + } } @@ -267,7 +276,7 @@ ArdourButton::render (cairo_t* cr) text_margin = 10; } - if ((_elements & Text) && !_text.empty()) { + if ( ((_elements & Text)==Text) && !_text.empty()) { cairo_new_path (cr); @@ -286,7 +295,7 @@ ArdourButton::render (cairo_t* cr) pango_cairo_show_layout (cr, _layout->gobj()); } - if (_elements & Indicator) { + if (((_elements & Indicator)==Indicator)) { /* move to the center of the indicator/led */ @@ -317,14 +326,7 @@ ArdourButton::render (cairo_t* cr) cairo_arc (cr, 0, 0, _diameter/2-3, 0, 2 * M_PI); cairo_fill(cr); - //reflection - cairo_scale(cr, 0.7, 0.7); - cairo_arc (cr, 0, 0, _diameter/2-3, 0, 2 * M_PI); - cairo_set_source (cr, reflection_pattern); - cairo_fill (cr); - cairo_restore (cr); - } @@ -332,7 +334,18 @@ ArdourButton::render (cairo_t* cr) if ((visual_state() & Gtkmm2ext::Insensitive)) { rounded_function (cr, 0, 0, get_width(), get_height(), _corner_radius); - cairo_set_source_rgba (cr, 0.905, 0.917, 0.925, 0.5); + cairo_set_source_rgba (cr, 0.505, 0.517, 0.525, 0.5); + cairo_fill (cr); + } + + //reflection + bool show_reflection = (active_state() == Gtkmm2ext::ExplicitActive); + show_reflection &= !_flat_buttons; + show_reflection &= !((_elements & Indicator)==Indicator); + if ( show_reflection ) { + float rheight = get_height()*0.5-REFLECTION_HEIGHT; + Gtkmm2ext::rounded_rectangle (cr, 2, get_height()*0.5-1, get_width()-4, rheight, _corner_radius-1); + cairo_set_source (cr, shine_pattern); cairo_fill (cr); } @@ -443,7 +456,6 @@ ArdourButton::set_colors () if (_elements & Body) { - shine_pattern = cairo_pattern_create_linear (0.0, 0.0, 0.0, get_height()/2-2); start_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: fill start active", get_name())); if (_flat_buttons) { @@ -458,8 +470,10 @@ ArdourButton::set_colors () active_b = b/255.0; active_a = a/255.0; - cairo_pattern_add_color_stop_rgba (shine_pattern, 0, 1,1,1,0.1); - cairo_pattern_add_color_stop_rgba (shine_pattern, 0.2, 1,1,1,0.4); + shine_pattern = cairo_pattern_create_linear (0.0, 0.0, 0.0, get_height()); + cairo_pattern_add_color_stop_rgba (shine_pattern, 0, 1,1,1,0.0); + cairo_pattern_add_color_stop_rgba (shine_pattern, 0.5, 1,1,1,0.1); + cairo_pattern_add_color_stop_rgba (shine_pattern, 0.7, 1,1,1,0.2); cairo_pattern_add_color_stop_rgba (shine_pattern, 1, 1,1,1,0.1); fill_pattern = cairo_pattern_create_linear (0.0, 0.0, 0.0, get_height()-3); @@ -825,6 +839,13 @@ ArdourButton::set_elements (Element e) } void +ArdourButton::add_elements (Element e) +{ + _elements = (ArdourButton::Element) (_elements | e); + set_colors (); +} + +void ArdourButton::set_flat_buttons (bool yn) { _flat_buttons = yn; diff --git a/gtk2_ardour/ardour_button.h b/gtk2_ardour/ardour_button.h index 016d80686c..e148d1a783 100644 --- a/gtk2_ardour/ardour_button.h +++ b/gtk2_ardour/ardour_button.h @@ -14,7 +14,6 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ #ifndef __gtk2_ardour_ardour_button_h__ @@ -38,6 +37,7 @@ class ArdourButton : public CairoWidget , public Gtkmm2ext::Activatable Body = 0x2, Text = 0x4, Indicator = 0x8, + FlatFace = 0x10, }; static Element default_elements; @@ -53,7 +53,7 @@ class ArdourButton : public CairoWidget , public Gtkmm2ext::Activatable enum Tweaks { ShowClick = 0x1, - NoModel = 0x4, + NoModel = 0x2, }; Tweaks tweaks() const { return _tweaks; } @@ -64,6 +64,7 @@ class ArdourButton : public CairoWidget , public Gtkmm2ext::Activatable Element elements() const { return _elements; } void set_elements (Element); + void add_elements (Element); void set_corner_radius (float); void set_rounded_corner_mask (int); @@ -116,6 +117,7 @@ class ArdourButton : public CairoWidget , public Gtkmm2ext::Activatable float _corner_radius; int _corner_mask; + uint32_t bg_color; uint32_t border_color; uint32_t fill_color_active; uint32_t fill_color_inactive; diff --git a/gtk2_ardour/ardour_ui2.cc b/gtk2_ardour/ardour_ui2.cc index 81b5175389..3e69c48e27 100644 --- a/gtk2_ardour/ardour_ui2.cc +++ b/gtk2_ardour/ardour_ui2.cc @@ -241,8 +241,10 @@ ARDOUR_UI::setup_transport () static_cast<Widget*> (&transport_frame), 1)); auto_return_button.set_text(_("Auto Return")); + follow_edits_button.set_text(_("Follow Edits")); - auto_input_button.set_text (_("Auto Input")); + +// auto_input_button.set_text (_("Auto Input")); click_button.set_image (get_icon (X_("metronome"))); act = ActionManager::get_action ("Transport", "ToggleClick"); @@ -335,6 +337,8 @@ ARDOUR_UI::setup_transport () transport_button_size_group->add_widget (roll_button); transport_button_size_group->add_widget (stop_button); + goto_start_button.set_size_request (-1, 40); + HBox* tbox1 = manage (new HBox); HBox* tbox2 = manage (new HBox); HBox* tbox = manage (new HBox); @@ -349,15 +353,12 @@ ARDOUR_UI::setup_transport () tbox2->set_spacing (2); tbox->set_spacing (2); + tbox1->pack_start (midi_panic_button, false, false, 5); tbox1->pack_start (click_button, false, false, 5); - tbox1->pack_start (midi_panic_button, false, false); tbox1->pack_start (goto_start_button, false, false); tbox1->pack_start (goto_end_button, false, false); tbox1->pack_start (auto_loop_button, false, false); - play_selection_button.set_rounded_corner_mask (0x1); /* upper left only */ - roll_button.set_rounded_corner_mask (0x2); /* upper right only */ - tbox2->pack_start (play_selection_button, false, false); tbox2->pack_start (roll_button, false, false); tbox2->pack_start (stop_button, false, false); @@ -387,7 +388,7 @@ ARDOUR_UI::setup_transport () VBox* transport_vbox = manage (new VBox); transport_vbox->set_name ("TransportBase"); - transport_vbox->set_border_width (3); + transport_vbox->set_border_width (0); transport_vbox->set_spacing (3); transport_vbox->pack_start (*tbox, true, true, 0); transport_vbox->pack_start (*shuttle_box, false, false, 0); diff --git a/gtk2_ardour/audio_clock.cc b/gtk2_ardour/audio_clock.cc index 0d34e2fe25..18153ac785 100644 --- a/gtk2_ardour/audio_clock.cc +++ b/gtk2_ardour/audio_clock.cc @@ -85,7 +85,7 @@ AudioClock::AudioClock (const string& clock_name, bool transient, const string& , info_height (0) , upper_height (0) , mode_based_info_ratio (1.0) - , corner_radius (9) + , corner_radius (4) , font_size (10240) , editing (false) , bbt_reference_time (-1) @@ -94,7 +94,6 @@ AudioClock::AudioClock (const string& clock_name, bool transient, const string& , last_sdelta (0) , dragging (false) , drag_field (Field (0)) - { set_flags (CAN_FOCUS); diff --git a/gtk2_ardour/automation_time_axis.cc b/gtk2_ardour/automation_time_axis.cc index c72602bf6c..262f495f84 100644 --- a/gtk2_ardour/automation_time_axis.cc +++ b/gtk2_ardour/automation_time_axis.cc @@ -181,6 +181,7 @@ AutomationTimeAxisView::AutomationTimeAxisView ( controls_table.attach (auto_button, 6, 8, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND); if (_controller) { + _controller.get()->set_size_request(-1, 24); /* add bar controller */ controls_table.attach (*_controller.get(), 0, 8, 1, 2, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND); /* note that this handler connects *before* the default handler */ diff --git a/gtk2_ardour/canvas_vars.h b/gtk2_ardour/canvas_vars.h index b4a570836e..9255b62e7e 100644 --- a/gtk2_ardour/canvas_vars.h +++ b/gtk2_ardour/canvas_vars.h @@ -171,6 +171,7 @@ BUTTON_VARS(RudeSolo, "rude solo") BUTTON_VARS(RudeIsolate, "rude isolate") BUTTON_VARS(RudeAudition, "rude audition") BUTTON_VARS(FeedbackAlert, "feedback alert") +BUTTON_VARS(InvertButton, "invert button") BUTTON_VARS(MuteButton, "mute button") BUTTON_VARS(SoloButton, "solo button") BUTTON_VARS(RecEnableButton, "record enable button") diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index e986306976..304f25b146 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -652,11 +652,13 @@ Editor::Editor () /* nudge stuff */ - nudge_forward_button.add (*(manage (new Image (::get_icon("nudge_right"))))); - nudge_backward_button.add (*(manage (new Image (::get_icon("nudge_left"))))); + nudge_forward_button.set_name ("zoom button"); + nudge_forward_button.add_elements (ArdourButton::FlatFace); + nudge_forward_button.set_image(::get_icon("nudge_right")); - nudge_forward_button.set_name ("TransportButton"); - nudge_backward_button.set_name ("TransportButton"); + nudge_backward_button.set_name ("zoom button"); + nudge_backward_button.add_elements (ArdourButton::FlatFace); + nudge_backward_button.set_image(::get_icon("nudge_left")); fade_context_menu.set_name ("ArdourContextMenu"); @@ -2857,7 +2859,7 @@ Editor::setup_toolbar () mouse_mode_size_group->add_widget (internal_edit_button); /* make them just a bit bigger */ - mouse_move_button.set_size_request (-1, 25); + mouse_move_button.set_size_request (-1, 30); mouse_mode_hbox->set_spacing (2); @@ -2916,19 +2918,25 @@ Editor::setup_toolbar () RefPtr<Action> act; zoom_in_button.set_name ("zoom button"); - zoom_in_button.add (*(manage (new Image (::get_icon ("zoom_in"))))); + zoom_in_button.add_elements ( ArdourButton::FlatFace ); + zoom_in_button.set_tweaks ((ArdourButton::Tweaks) (ArdourButton::ShowClick) ); + zoom_in_button.set_image(::get_icon ("zoom_in")); act = ActionManager::get_action (X_("Editor"), X_("temporal-zoom-in")); - act->connect_proxy (zoom_in_button); + zoom_in_button.set_related_action (act); zoom_out_button.set_name ("zoom button"); - zoom_out_button.add (*(manage (new Image (::get_icon ("zoom_out"))))); + zoom_out_button.add_elements ( ArdourButton::FlatFace ); + zoom_out_button.set_tweaks ((ArdourButton::Tweaks) (ArdourButton::ShowClick) ); + zoom_out_button.set_image(::get_icon ("zoom_out")); act = ActionManager::get_action (X_("Editor"), X_("temporal-zoom-out")); - act->connect_proxy (zoom_out_button); + zoom_out_button.set_related_action (act); zoom_out_full_button.set_name ("zoom button"); - zoom_out_full_button.add (*(manage (new Image (::get_icon ("zoom_full"))))); + zoom_out_full_button.add_elements ( ArdourButton::FlatFace ); + zoom_out_full_button.set_tweaks ((ArdourButton::Tweaks) (ArdourButton::ShowClick) ); + zoom_out_full_button.set_image(::get_icon ("zoom_full")); act = ActionManager::get_action (X_("Editor"), X_("zoom-to-session")); - act->connect_proxy (zoom_out_full_button); + zoom_out_full_button.set_related_action (act); zoom_focus_selector.set_name ("ZoomFocusSelector"); set_popdown_strings (zoom_focus_selector, zoom_focus_strings); @@ -2941,17 +2949,21 @@ Editor::setup_toolbar () _zoom_box.pack_start (zoom_focus_selector, false, false); /* Track zoom buttons */ - tav_expand_button.set_name ("TrackHeightButton"); + tav_expand_button.set_name ("zoom button"); + tav_expand_button.add_elements ( ArdourButton::FlatFace ); + tav_expand_button.set_tweaks ((ArdourButton::Tweaks) (ArdourButton::ShowClick) ); tav_expand_button.set_size_request (-1, 20); - tav_expand_button.add (*(manage (new Image (::get_icon ("tav_exp"))))); + tav_expand_button.set_image(::get_icon ("tav_exp")); act = ActionManager::get_action (X_("Editor"), X_("expand-tracks")); - act->connect_proxy (tav_expand_button); + tav_expand_button.set_related_action (act); - tav_shrink_button.set_name ("TrackHeightButton"); + tav_shrink_button.set_name ("zoom button"); + tav_shrink_button.add_elements ( ArdourButton::FlatFace ); + tav_shrink_button.set_tweaks ((ArdourButton::Tweaks) (ArdourButton::ShowClick) ); tav_shrink_button.set_size_request (-1, 20); - tav_shrink_button.add (*(manage (new Image (::get_icon ("tav_shrink"))))); + tav_shrink_button.set_image(::get_icon ("tav_shrink")); act = ActionManager::get_action (X_("Editor"), X_("shrink-tracks")); - act->connect_proxy (tav_shrink_button); + tav_shrink_button.set_related_action (act); _zoom_box.pack_start (tav_shrink_button); _zoom_box.pack_start (tav_expand_button); @@ -2967,7 +2979,7 @@ Editor::setup_toolbar () _zoom_tearoff->Visible.connect (sigc::bind (sigc::mem_fun(*this, &Editor::reattach_tearoff), static_cast<Box*> (&toolbar_hbox), &_zoom_tearoff->tearoff_window(), 0)); - snap_box.set_spacing (1); + snap_box.set_spacing (2); snap_box.set_border_width (2); snap_type_selector.set_name ("SnapTypeSelector"); @@ -2995,6 +3007,9 @@ Editor::setup_toolbar () nudge_forward_button.signal_button_release_event().connect (sigc::mem_fun(*this, &Editor::nudge_forward_release), false); nudge_backward_button.signal_button_release_event().connect (sigc::mem_fun(*this, &Editor::nudge_backward_release), false); + nudge_forward_button.set_tweaks ((ArdourButton::Tweaks) (ArdourButton::ShowClick) ); + nudge_backward_button.set_tweaks ((ArdourButton::Tweaks) (ArdourButton::ShowClick) ); + nudge_box->pack_start (nudge_backward_button, false, false); nudge_box->pack_start (nudge_forward_button, false, false); nudge_box->pack_start (*nudge_clock, false, false); diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 086b5ed5b8..a239f4e3be 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -1569,12 +1569,13 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void editor_list_button_toggled (); AudioClock* zoom_range_clock; - Gtk::Button zoom_in_button; - Gtk::Button zoom_out_button; - Gtk::Button zoom_out_full_button; - Gtk::Button tav_expand_button; - Gtk::Button tav_shrink_button; + ArdourButton zoom_in_button; + ArdourButton zoom_out_button; + ArdourButton zoom_out_full_button; + + ArdourButton tav_expand_button; + ArdourButton tav_shrink_button; Gtk::VBox toolbar_clock_vbox; Gtk::VBox toolbar_selection_clock_vbox; @@ -1931,8 +1932,8 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD /* nudge */ - Gtk::Button nudge_forward_button; - Gtk::Button nudge_backward_button; + ArdourButton nudge_forward_button; + ArdourButton nudge_backward_button; Gtk::HBox nudge_hbox; Gtk::VBox nudge_vbox; AudioClock* nudge_clock; diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc index 54894f9746..0222dd6b3b 100644 --- a/gtk2_ardour/editor_actions.cc +++ b/gtk2_ardour/editor_actions.cc @@ -408,41 +408,49 @@ Editor::register_actions () smart_mode_action = Glib::RefPtr<ToggleAction>::cast_static (act); smart_mode_button.set_related_action (smart_mode_action); smart_mode_button.set_text (_("Smart")); + smart_mode_button.add_elements ( ArdourButton::FlatFace ); smart_mode_button.set_name ("mouse mode button"); act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-object", _("Object Tool"), sigc::bind (sigc::mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseObject)); mouse_move_button.set_related_action (act); mouse_move_button.set_image (::get_icon("tool_object")); + mouse_move_button.add_elements ( ArdourButton::FlatFace ); mouse_move_button.set_name ("mouse mode button"); act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-range", _("Range Tool"), sigc::bind (sigc::mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseRange)); mouse_select_button.set_related_action (act); mouse_select_button.set_image (::get_icon("tool_range")); + mouse_select_button.add_elements ( ArdourButton::FlatFace ); mouse_select_button.set_name ("mouse mode button"); act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-draw", _("Note Drawing Tool"), sigc::bind (sigc::mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseDraw)); mouse_draw_button.set_related_action (act); mouse_draw_button.set_image (::get_icon("midi_tool_pencil")); + mouse_draw_button.add_elements ( ArdourButton::FlatFace ); mouse_draw_button.set_name ("mouse mode button"); act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-gain", _("Gain Tool"), sigc::bind (mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseGain)); mouse_gain_button.set_related_action (act); mouse_gain_button.set_image (::get_icon("tool_gain")); + mouse_gain_button.add_elements ( ArdourButton::FlatFace ); mouse_gain_button.set_name ("mouse mode button"); act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-zoom", _("Zoom Tool"), sigc::bind (sigc::mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseZoom)); mouse_zoom_button.set_related_action (act); mouse_zoom_button.set_image (::get_icon("tool_zoom")); + mouse_zoom_button.add_elements ( ArdourButton::FlatFace ); mouse_zoom_button.set_name ("mouse mode button"); act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-audition", _("Audition Tool"), sigc::bind (sigc::mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseAudition)); mouse_audition_button.set_related_action (act); mouse_audition_button.set_image (::get_icon("tool_audition")); + mouse_audition_button.add_elements ( ArdourButton::FlatFace ); mouse_audition_button.set_name ("mouse mode button"); act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-timefx", _("Time FX Tool"), sigc::bind (sigc::mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseTimeFX)); mouse_timefx_button.set_related_action (act); mouse_timefx_button.set_image (::get_icon("tool_stretch")); + mouse_timefx_button.add_elements ( ArdourButton::FlatFace ); mouse_timefx_button.set_name ("mouse mode button"); ActionManager::register_action (editor_actions, "step-mouse-mode", _("Step Mouse Mode"), sigc::bind (sigc::mem_fun(*this, &Editor::step_mouse_mode), true)); @@ -450,6 +458,7 @@ Editor::register_actions () act = ActionManager::register_toggle_action (mouse_mode_actions, "toggle-internal-edit", _("Edit MIDI"), sigc::mem_fun(*this, &Editor::toggle_internal_editing)); internal_edit_button.set_related_action (act); internal_edit_button.set_image (::get_icon("tool_note")); + internal_edit_button.add_elements ( ArdourButton::FlatFace ); internal_edit_button.set_name ("mouse mode button"); RadioAction::Group edit_point_group; diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index 843f2ee452..0e0bf893a0 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -155,6 +155,7 @@ MixerStrip::init () input_button.set_text (_("Input")); input_button.set_name ("mixer strip button"); + input_button.set_size_request (-1, 20); input_button_box.pack_start (input_button, true, true); output_button.set_text (_("Output")); @@ -243,12 +244,13 @@ MixerStrip::init () bottom_button_table.set_homogeneous (true); bottom_button_table.attach (group_button, 0, 1, 0, 1); - name_button.set_name ("mixer strip name button"); + name_button.set_name ("mixer strip button"); name_button.set_text (" "); /* non empty text, forces creation of the layout */ name_button.set_text (""); /* back to empty */ name_button.layout()->set_ellipsize (Pango::ELLIPSIZE_END); name_button.signal_size_allocate().connect (sigc::mem_fun (*this, &MixerStrip::name_button_resized)); Gtkmm2ext::set_size_request_to_display_given_text (name_button, longest_label.c_str(), 2, 2); + name_button.set_size_request (-1, 20); ARDOUR_UI::instance()->set_tip (&group_button, _("Mix group"), ""); group_button.set_name ("mixer strip button"); diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc index c264588b2b..762d7a9b92 100644 --- a/gtk2_ardour/route_ui.cc +++ b/gtk2_ardour/route_ui.cc @@ -1787,10 +1787,11 @@ RouteUI::setup_invert_buttons () for (uint32_t i = 0; i < to_add; ++i) { ArdourButton* b = manage (new ArdourButton); + b->set_size_request(20,20); b->signal_button_press_event().connect (sigc::mem_fun (*this, &RouteUI::invert_press)); b->signal_button_release_event().connect (sigc::bind (sigc::mem_fun (*this, &RouteUI::invert_release), i)); - b->set_name (X_("mixer strip button")); + b->set_name (X_("invert button")); if (to_add == 1) { if (N > 1) { b->set_text (string_compose (X_("Ø (%1)"), N)); diff --git a/gtk2_ardour/stereo_panner.cc b/gtk2_ardour/stereo_panner.cc index ebb55e7c86..506ce36645 100644 --- a/gtk2_ardour/stereo_panner.cc +++ b/gtk2_ardour/stereo_panner.cc @@ -146,7 +146,7 @@ StereoPanner::on_expose_event (GdkEventExpose*) /* background */ context->set_source_rgba (UINT_RGBA_R_FLT(b), UINT_RGBA_G_FLT(b), UINT_RGBA_B_FLT(b), UINT_RGBA_A_FLT(b)); - rounded_rectangle (context, 0, 0, width, height, corner_radius); + cairo_rectangle (context->cobj(), 0, 0, width, height); context->fill (); /* the usable width is reduced from the real width, because we need space for |