summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2014-07-30 18:27:12 -0400
committerDavid Robillard <d@drobilla.net>2014-07-30 18:30:42 -0400
commitb75b88a1eb881d9c95fcea5b50346fac09bc7302 (patch)
tree6af38f01c82cdb327025a56d83ea344f4bede32f /gtk2_ardour
parent394ea9cb860354c1f24bbecf5a85e88d1a16d136 (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.cc12
-rw-r--r--gtk2_ardour/mixer_strip.cc37
-rw-r--r--gtk2_ardour/route_ui.cc4
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));