diff options
author | David Robillard <d@drobilla.net> | 2014-07-30 18:27:12 -0400 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2014-07-30 18:30:42 -0400 |
commit | b75b88a1eb881d9c95fcea5b50346fac09bc7302 (patch) | |
tree | 6af38f01c82cdb327025a56d83ea344f4bede32f /gtk2_ardour | |
parent | 394ea9cb860354c1f24bbecf5a85e88d1a16d136 (diff) |
Use text to specify combo box padding for better font/display tolerance.
Consistent mixer strip button height.
The latter works by setting all the button size request heights to the
calculated height of the alphabet. Thus, all buttons of the same class will be
the same height regardless of their actual text.
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/editor.cc | 12 | ||||
-rw-r--r-- | gtk2_ardour/mixer_strip.cc | 37 | ||||
-rw-r--r-- | gtk2_ardour/route_ui.cc | 4 |
3 files changed, 43 insertions, 10 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 7a864b8283..692f4efff0 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -219,6 +219,8 @@ static const gchar *_rb_opt_strings[] = { }; #endif +static const gchar *_combo_pad_string = "mm"; ///< ~2em + static void pane_size_watcher (Paned* pane) { @@ -3063,7 +3065,7 @@ Editor::build_edit_point_menu () edit_point_selector.AddMenuElem (MenuElem ( edit_point_strings[(int)EditAtSelectedMarker], sigc::bind (sigc::mem_fun(*this, &Editor::edit_point_selection_done), (EditPoint) EditAtSelectedMarker))); edit_point_selector.AddMenuElem (MenuElem ( edit_point_strings[(int)EditAtMouse], sigc::bind (sigc::mem_fun(*this, &Editor::edit_point_selection_done), (EditPoint) EditAtMouse))); - set_size_request_to_display_given_text (edit_point_selector, edit_point_strings, 30, 2); + set_size_request_to_display_given_text (edit_point_selector, edit_point_strings, _combo_pad_string, 2); } void @@ -3076,7 +3078,7 @@ Editor::build_edit_mode_menu () edit_mode_selector.AddMenuElem (MenuElem ( edit_mode_strings[(int)Ripple], sigc::bind (sigc::mem_fun(*this, &Editor::edit_mode_selection_done), (EditMode) Ripple))); edit_mode_selector.AddMenuElem (MenuElem ( edit_mode_strings[(int)Lock], sigc::bind (sigc::mem_fun(*this, &Editor::edit_mode_selection_done), (EditMode) Lock))); - set_size_request_to_display_given_text (edit_mode_selector, edit_mode_strings, 30, 2); + set_size_request_to_display_given_text (edit_mode_selector, edit_mode_strings, _combo_pad_string, 2); } void @@ -3088,7 +3090,7 @@ Editor::build_snap_mode_menu () snap_mode_selector.AddMenuElem (MenuElem ( snap_mode_strings[(int)SnapNormal], sigc::bind (sigc::mem_fun(*this, &Editor::snap_mode_selection_done), (SnapMode) SnapNormal))); snap_mode_selector.AddMenuElem (MenuElem ( snap_mode_strings[(int)SnapMagnetic], sigc::bind (sigc::mem_fun(*this, &Editor::snap_mode_selection_done), (SnapMode) SnapMagnetic))); - set_size_request_to_display_given_text (snap_mode_selector, snap_mode_strings, 30, 2); + set_size_request_to_display_given_text (snap_mode_selector, snap_mode_strings, _combo_pad_string, 2); } void @@ -3127,7 +3129,7 @@ Editor::build_snap_type_menu () snap_type_selector.AddMenuElem (MenuElem ( snap_type_strings[(int)SnapToRegionSync], sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_selection_done), (SnapType) SnapToRegionSync))); snap_type_selector.AddMenuElem (MenuElem ( snap_type_strings[(int)SnapToRegionBoundary], sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_selection_done), (SnapType) SnapToRegionBoundary))); - set_size_request_to_display_given_text (snap_type_selector, snap_type_strings, 30, 2); + set_size_request_to_display_given_text (snap_type_selector, snap_type_strings, _combo_pad_string, 2); } @@ -3473,7 +3475,7 @@ Editor::build_zoom_focus_menu () zoom_focus_selector.AddMenuElem (MenuElem ( zoom_focus_strings[(int)ZoomFocusMouse], sigc::bind (sigc::mem_fun(*this, &Editor::zoom_focus_selection_done), (ZoomFocus) ZoomFocusMouse))); zoom_focus_selector.AddMenuElem (MenuElem ( zoom_focus_strings[(int)ZoomFocusEdit], sigc::bind (sigc::mem_fun(*this, &Editor::zoom_focus_selection_done), (ZoomFocus) ZoomFocusEdit))); - set_size_request_to_display_given_text (zoom_focus_selector, longest (zoom_focus_strings), 30, 2); + set_size_request_to_display_given_text (zoom_focus_selector, zoom_focus_strings, _combo_pad_string, 2); } void diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index 7b91611cb0..ae2a1bef3b 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -80,6 +80,8 @@ MixerStrip* MixerStrip::_entered_mixer_strip; PBD::Signal1<void,MixerStrip*> MixerStrip::CatchDeletion; +static const int _button_vpad = 2; + MixerStrip::MixerStrip (Mixer_UI& mx, Session* sess, bool in_mixer) : AxisView(sess) , RouteUI (sess) @@ -167,10 +169,12 @@ MixerStrip::init () input_button.set_name ("mixer strip button"); input_button.set_size_request (-1, 20); input_button_box.pack_start (input_button, true, true); + Gtkmm2ext::set_height_request_to_display_any_text (input_button, _button_vpad); output_button.set_text (_("Output")); output_button.set_name ("mixer strip button"); Gtkmm2ext::set_size_request_to_display_given_text (output_button, longest_label.c_str(), 4, 4); + Gtkmm2ext::set_height_request_to_display_any_text (output_button, _button_vpad); ARDOUR_UI::instance()->set_tip (&meter_point_button, _("Click to select metering point"), ""); meter_point_button.set_name ("mixer strip button"); @@ -178,7 +182,7 @@ MixerStrip::init () /* TRANSLATORS: this string should be longest of the strings used to describe meter points. In english, it's "input". */ - set_size_request_to_display_given_text (meter_point_button, _("tupni"), 5, 5); + set_size_request_to_display_given_text_width (meter_point_button, _("tupni"), 2, _button_vpad); bottom_button_table.attach (meter_point_button, 2, 3, 0, 1); @@ -276,15 +280,16 @@ MixerStrip::init () 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); + Gtkmm2ext::set_height_request_to_display_any_text (name_button, _button_vpad); ARDOUR_UI::instance()->set_tip (&group_button, _("Mix group"), ""); group_button.set_name ("mixer strip button"); - Gtkmm2ext::set_size_request_to_display_given_text (group_button, "Grp", 2, 2); + Gtkmm2ext::set_size_request_to_display_given_text_width (group_button, "Grp", 2, _button_vpad); _comment_button.set_name (X_("mixer strip button")); _comment_button.signal_clicked.connect (sigc::mem_fun (*this, &RouteUI::toggle_comment_editor)); + Gtkmm2ext::set_size_request_to_display_given_text_width (_comment_button, "Cmt", 2, _button_vpad); global_vpacker.set_border_width (0); global_vpacker.set_spacing (0); @@ -733,7 +738,7 @@ MixerStrip::set_width_enum (Width w, void* owner) } - Gtkmm2ext::set_size_request_to_display_given_text (name_button, longest_label.c_str(), 2, 2); + Gtkmm2ext::set_size_request_to_display_given_text_width (name_button, longest_label.c_str(), 2, _button_vpad); set_size_request (-1, -1); break; @@ -756,7 +761,7 @@ MixerStrip::set_width_enum (Width w, void* owner) panners.short_astate_string(_route->panner()->automation_state())); } - Gtkmm2ext::set_size_request_to_display_given_text (name_button, "long", 2, 2); + Gtkmm2ext::set_size_request_to_display_given_text_width (name_button, "long", 2, _button_vpad); set_size_request (max (50, gpm.get_gm_width()), -1); break; } @@ -1438,6 +1443,9 @@ MixerStrip::setup_comment_button () ARDOUR_UI::instance()->set_tip ( _comment_button, _route->comment().empty() ? _("Click to Add/Edit Comments") : _route->comment() ); + + Gtkmm2ext::set_size_request_to_display_given_text_width ( + _comment_button, _comment_button.get_text().c_str(), 2, _button_vpad); } bool @@ -1638,6 +1646,9 @@ MixerStrip::name_changed () break; } + Gtkmm2ext::set_size_request_to_display_given_text_width ( + name_button, name_button.get_text().c_str(), 2, _button_vpad); + ARDOUR_UI::instance()->set_tip (name_button, _route->name()); } @@ -2043,6 +2054,22 @@ MixerStrip::set_button_names () } else { meter_point_button.set_text (""); } + + // Update size request of changed buttons + Gtkmm2ext::set_size_request_to_display_given_text_width ( + *rec_enable_button, rec_enable_button->get_text().c_str(), 2, _button_vpad); + Gtkmm2ext::set_size_request_to_display_given_text_width ( + *mute_button, mute_button->get_text().c_str(), 2, _button_vpad); + Gtkmm2ext::set_size_request_to_display_given_text_width ( + *monitor_input_button, monitor_input_button->get_text().c_str(), 2, _button_vpad); + Gtkmm2ext::set_size_request_to_display_given_text_width ( + *monitor_disk_button, monitor_disk_button->get_text().c_str(), 2, _button_vpad); + Gtkmm2ext::set_size_request_to_display_given_text_width ( + *solo_button, solo_button->get_text().c_str(), 2, _button_vpad); + Gtkmm2ext::set_size_request_to_display_given_text_width ( + *solo_isolated_led, solo_isolated_led->get_text().c_str(), 2, _button_vpad); + Gtkmm2ext::set_size_request_to_display_given_text_width ( + *solo_safe_led, solo_safe_led->get_text().c_str(), 2, _button_vpad); } PluginSelector* diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc index 0de1f81dac..3998ea3717 100644 --- a/gtk2_ardour/route_ui.cc +++ b/gtk2_ardour/route_ui.cc @@ -23,6 +23,7 @@ #include <gtkmm2ext/bindable_button.h> #include <gtkmm2ext/barcontroller.h> #include <gtkmm2ext/gtk_ui.h> +#include <gtkmm2ext/utils.h> #include "ardour/route_group.h" #include "ardour/dB.h" @@ -65,6 +66,8 @@ uint32_t RouteUI::_max_invert_buttons = 3; PBD::Signal1<void, boost::shared_ptr<Route> > RouteUI::BusSendDisplayChanged; boost::weak_ptr<Route> RouteUI::_showing_sends_to; +static const int _button_vpad = 2; + RouteUI::RouteUI (ARDOUR::Session* sess) : AxisView(sess) , mute_menu(0) @@ -1935,6 +1938,7 @@ RouteUI::setup_invert_buttons () for (uint32_t i = 0; i < to_add; ++i) { ArdourButton* b = manage (new ArdourButton); b->set_size_request(20,20); + Gtkmm2ext::set_height_request_to_display_any_text (*b, _button_vpad); 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)); |