summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/editor.cc')
-rw-r--r--gtk2_ardour/editor.cc60
1 files changed, 45 insertions, 15 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index 024799bbbf..fd6d8a991f 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -220,8 +220,10 @@ show_me_the_size (Requisition* r, const char* what)
}
Editor::Editor ()
+ : _join_object_range_state (JOIN_OBJECT_RANGE_NONE)
+
/* time display buttons */
- : minsec_label (_("Mins:Secs"))
+ , minsec_label (_("Mins:Secs"))
, bbt_label (_("Bars:Beats"))
, timecode_label (_("Timecode"))
, frame_label (_("Samples"))
@@ -2314,6 +2316,10 @@ Editor::set_state (const XMLNode& node, int /*version*/)
}
}
+ if ((prop = node.property ("join-object-range"))) {
+ join_object_range_button.set_active (string_is_affirmative (prop->value ()));
+ }
+
if ((prop = node.property ("edit-point"))) {
set_edit_point_preference ((EditPoint) string_2_enum (prop->value(), _edit_point), true);
}
@@ -2461,6 +2467,7 @@ Editor::get_state ()
node->add_property ("region-list-sort-type", enum2str (_regions->sort_type ()));
node->add_property ("mouse-mode", enum2str(mouse_mode));
node->add_property ("internal-edit", _internal_editing ? "yes" : "no");
+ node->add_property ("join-object-range", join_object_range_button.get_active () ? "yes" : "no");
Glib::RefPtr<Action> act = ActionManager::get_action (X_("Editor"), X_("show-editor-mixer"));
if (act) {
@@ -2752,24 +2759,45 @@ Editor::setup_toolbar ()
mouse_timefx_button.set_relief(Gtk::RELIEF_NONE);
mouse_audition_button.set_relief(Gtk::RELIEF_NONE);
// internal_edit_button.set_relief(Gtk::RELIEF_NONE);
+ join_object_range_button.set_relief(Gtk::RELIEF_NONE);
HBox* mode_box = manage(new HBox);
mode_box->set_border_width (2);
mode_box->set_spacing(4);
- mouse_mode_button_box.set_spacing(1);
- mouse_mode_button_box.pack_start(mouse_move_button, true, true);
- if (!Profile->get_sae()) {
- mouse_mode_button_box.pack_start(mouse_select_button, true, true);
+
+ /* table containing mode buttons */
+
+ Table* mouse_mode_button_table = manage (new Table (Profile->get_sae() ? 4 : 6, 2));
+
+ int c = 0;
+
+ if (Profile->get_sae()) {
+ mouse_mode_button_table->attach (mouse_move_button, c, c + 1, 0, 1);
+ ++c;
+ } else {
+ mouse_mode_button_table->attach (mouse_move_button, c, c + 1, 0, 1);
+ mouse_mode_button_table->attach (mouse_select_button, c + 1, c + 2, 0, 1);
+ mouse_mode_button_table->attach (join_object_range_button, c, c + 2, 1, 2);
+ c += 2;
}
- mouse_mode_button_box.pack_start(mouse_zoom_button, true, true);
+
+ mouse_mode_button_table->attach (mouse_zoom_button, c, c + 1, 0, 1);
+ ++c;
+
if (!Profile->get_sae()) {
- mouse_mode_button_box.pack_start(mouse_gain_button, true, true);
+ mouse_mode_button_table->attach (mouse_gain_button, c, c + 1, 0, 1);
+ ++c;
}
- mouse_mode_button_box.pack_start(mouse_timefx_button, true, true);
- mouse_mode_button_box.pack_start(mouse_audition_button, true, true);
- mouse_mode_button_box.pack_start(internal_edit_button, true, true);
- mouse_mode_button_box.set_homogeneous(true);
-
+
+ mouse_mode_button_table->attach (mouse_timefx_button, c, c + 1, 0, 1);
+ ++c;
+
+ mouse_mode_button_table->attach (mouse_audition_button, c, c + 1, 0, 1);
+ ++c;
+
+ mouse_mode_button_table->attach (internal_edit_button, c, c + 1, 0, 1);
+ ++c;
+
vector<string> edit_mode_strings;
edit_mode_strings.push_back (edit_mode_to_string (Slide));
if (!Profile->get_sae()) {
@@ -2781,8 +2809,8 @@ Editor::setup_toolbar ()
set_popdown_strings (edit_mode_selector, edit_mode_strings, true);
edit_mode_selector.signal_changed().connect (sigc::mem_fun(*this, &Editor::edit_mode_selection_done));
- mode_box->pack_start(edit_mode_selector);
- mode_box->pack_start(mouse_mode_button_box);
+ mode_box->pack_start (edit_mode_selector);
+ mode_box->pack_start (*mouse_mode_button_table);
mouse_mode_tearoff = manage (new TearOff (*mode_box));
mouse_mode_tearoff->set_name ("MouseModeBase");
@@ -2807,6 +2835,7 @@ Editor::setup_toolbar ()
mouse_zoom_button.set_mode (false);
mouse_timefx_button.set_mode (false);
mouse_audition_button.set_mode (false);
+ join_object_range_button.set_mode (false);
mouse_move_button.set_name ("MouseModeButton");
mouse_select_button.set_name ("MouseModeButton");
@@ -2814,8 +2843,8 @@ Editor::setup_toolbar ()
mouse_zoom_button.set_name ("MouseModeButton");
mouse_timefx_button.set_name ("MouseModeButton");
mouse_audition_button.set_name ("MouseModeButton");
-
internal_edit_button.set_name ("MouseModeButton");
+ join_object_range_button.set_name ("MouseModeButton");
mouse_move_button.unset_flags (CAN_FOCUS);
mouse_select_button.unset_flags (CAN_FOCUS);
@@ -2824,6 +2853,7 @@ Editor::setup_toolbar ()
mouse_timefx_button.unset_flags (CAN_FOCUS);
mouse_audition_button.unset_flags (CAN_FOCUS);
internal_edit_button.unset_flags (CAN_FOCUS);
+ join_object_range_button.unset_flags (CAN_FOCUS);
/* Zoom */