From 00f3ce2e7665bc5d1b81679eb2e0c7af3566666e Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Tue, 19 Nov 2024 00:52:13 +0100 Subject: [PATCH] Remove unused property boxes, prepare for Region Editor Using that old template code would introduce significant tech-dept. This also properly initializes the selection property box and handles edge cases during session setup and deletion. --- gtk2_ardour/audio_region_properties_box.cc | 201 ------------------ gtk2_ardour/audio_region_properties_box.h | 89 -------- gtk2_ardour/audio_route_properties_box.cc | 60 ------ gtk2_ardour/audio_route_properties_box.h | 45 ---- gtk2_ardour/midi_region_operations_box.cc | 97 --------- gtk2_ardour/midi_region_operations_box.h | 64 ------ gtk2_ardour/midi_region_properties_box.cc | 90 -------- gtk2_ardour/midi_region_properties_box.h | 57 ----- gtk2_ardour/multi_region_properties_box.cc | 108 ---------- gtk2_ardour/multi_region_properties_box.h | 66 ------ gtk2_ardour/region_properties_box.cc | 65 ------ gtk2_ardour/region_properties_box.h | 49 ----- gtk2_ardour/selection_properties_box.cc | 233 +++++---------------- gtk2_ardour/selection_properties_box.h | 44 +--- gtk2_ardour/slot_properties_box.cc | 71 ------- gtk2_ardour/slot_properties_box.h | 16 -- gtk2_ardour/trigger_page.h | 3 - gtk2_ardour/trigger_ui.cc | 8 - gtk2_ardour/wscript | 6 - 19 files changed, 57 insertions(+), 1315 deletions(-) delete mode 100644 gtk2_ardour/audio_region_properties_box.cc delete mode 100644 gtk2_ardour/audio_region_properties_box.h delete mode 100644 gtk2_ardour/audio_route_properties_box.cc delete mode 100644 gtk2_ardour/audio_route_properties_box.h delete mode 100644 gtk2_ardour/midi_region_operations_box.cc delete mode 100644 gtk2_ardour/midi_region_operations_box.h delete mode 100644 gtk2_ardour/midi_region_properties_box.cc delete mode 100644 gtk2_ardour/midi_region_properties_box.h delete mode 100644 gtk2_ardour/multi_region_properties_box.cc delete mode 100644 gtk2_ardour/multi_region_properties_box.h delete mode 100644 gtk2_ardour/region_properties_box.cc delete mode 100644 gtk2_ardour/region_properties_box.h diff --git a/gtk2_ardour/audio_region_properties_box.cc b/gtk2_ardour/audio_region_properties_box.cc deleted file mode 100644 index 2c84c57ab8..0000000000 --- a/gtk2_ardour/audio_region_properties_box.cc +++ /dev/null @@ -1,201 +0,0 @@ -/* - * Copyright (C) 2011-2017 Paul Davis - * Copyright (C) 2021 Ben Loftis - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#include "pbd/compose.h" -#include - -#include "gtkmm2ext/actions.h" -#include "gtkmm2ext/gui_thread.h" -#include "gtkmm2ext/utils.h" - -#include "ardour/location.h" -#include "ardour/profile.h" -#include "ardour/session.h" - -#include "audio_clock.h" -#include "editor_automation_line.h" -#include "control_point.h" -#include "editor.h" -#include "region_view.h" - -#include "audio_region_properties_box.h" - -#include "pbd/i18n.h" - -using namespace Gtk; -using namespace ARDOUR; -using namespace ArdourWidgets; -using std::max; -using std::min; - -RegionPropertiesBox::RegionPropertiesBox () - : length_clock (X_("regionlength"), true, "", true, false, true) - , start_clock (X_("regionstart"), true, "", false, false) - , bbt_toggle (ArdourButton::led_default_elements) -{ - Gtk::Label* label; - int row = 0; - - _header_label.set_alignment (0.0, 0.5); - pack_start (_header_label, false, false, 6); - - Gtk::Table* bpm_table = manage (new Gtk::Table ()); - bpm_table->set_homogeneous (false); - bpm_table->set_spacings (4); - bpm_table->set_border_width (2); - label = manage (new Gtk::Label (_("BPM:"))); - label->set_alignment (1.0, 0.5); - bpm_table->attach (*label, 0, 1, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); - bpm_table->attach (bpm_button, 1, 2, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); - row++; - - pack_start (*bpm_table, false, false); - - Gtk::Table* metrum_table = manage (new Gtk::Table ()); - metrum_table->set_homogeneous (false); - metrum_table->set_spacings (4); - metrum_table->set_border_width (2); - label = manage (new Gtk::Label (_("Time Sig:"))); - label->set_alignment (1.0, 0.5); - bpm_table->attach (*label, 0, 1, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); - bpm_table->attach (metrum_button, 1, 2, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); - row++; - - pack_start (*metrum_table, false, false); - - row = 0; - - bbt_toggle.set_text (_("Stretch")); - table.attach (bbt_toggle, 0, 1, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); - row++; - - label = manage (new Gtk::Label (_("Start:"))); - label->set_alignment (1.0, 0.5); - table.attach (*label, 0, 1, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); - table.attach (start_clock, 1, 2, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); - row++; - - label = manage (new Gtk::Label (_("Length:"))); - label->set_alignment (1.0, 0.5); - table.attach (*label, 0, 1, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); - table.attach (length_clock, 1, 2, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); - row++; - - table.set_homogeneous (false); - table.set_spacings (4); - table.set_border_width (2); - pack_start (table, false, false); -} - -RegionPropertiesBox::~RegionPropertiesBox () -{ -} - -void -RegionPropertiesBox::set_session (Session* s) -{ - SessionHandlePtr::set_session (s); - - if (s) { - return; - } - - length_clock.set_session (s); - start_clock.set_session (s); -} - -void -RegionPropertiesBox::set_region (std::shared_ptr r) -{ - set_session (&r->session ()); - - state_connection.disconnect (); - - _region = r; - - PBD::PropertyChange interesting_stuff; - region_changed (interesting_stuff); - - _region->PropertyChanged.connect (state_connection, invalidator (*this), std::bind (&RegionPropertiesBox::region_changed, this, _1), gui_context ()); -} - -void -RegionPropertiesBox::region_changed (const PBD::PropertyChange& what_changed) -{ - // TODO: refactor the region_editor.cc to cover this basic stuff - { - AudioClock::Mode mode = _region->position_time_domain () == Temporal::AudioTime ? AudioClock::Samples : AudioClock::BBT; - - start_clock.set_mode (mode); - length_clock.set_mode (mode); - - start_clock.set (_region->start ()); - length_clock.set_duration (_region->length ()); - - bpm_button.set_text ("122.2"); - metrum_button.set_text ("4/4"); - } -} - -AudioRegionPropertiesBox::AudioRegionPropertiesBox () -{ - _header_label.set_text (_("AUDIO Region Properties:")); - - Gtk::Label* label; - - Gtk::Table* audio_t = manage (new Gtk::Table ()); - audio_t->set_homogeneous (true); - audio_t->set_spacings (4); - - int row = 0; - - label = manage (new Gtk::Label (_("Fades:"))); - label->set_alignment (1.0, 0.5); - fade_in_enable_button.set_text (S_("Fade|In")); - fade_in_enable_button.set_name ("generic button"); - fade_out_enable_button.set_text (S_("Fade|Out")); - fade_out_enable_button.set_name ("generic button"); - audio_t->attach (*label, 0, 1, row, row + 1, Gtk::FILL, Gtk::SHRINK); - audio_t->attach (fade_in_enable_button, 1, 2, row, row + 1, Gtk::FILL, Gtk::SHRINK); - audio_t->attach (fade_out_enable_button, 2, 3, row, row + 1, Gtk::FILL, Gtk::SHRINK); - - row++; - - label = manage (new Gtk::Label (_("Gain:"))); - label->set_alignment (1.0, 0.5); - audio_t->attach (*label, 0, 1, row, row + 1, Gtk::FILL, Gtk::SHRINK); - - gain_control.set_text (_("+6dB")); - gain_control.set_name ("generic button"); - audio_t->attach (gain_control, 1, 3, row, row + 1, Gtk::FILL, Gtk::SHRINK); - - row++; - - pack_start (*audio_t); -} - -AudioRegionPropertiesBox::~AudioRegionPropertiesBox () -{ -} - -void -AudioRegionPropertiesBox::set_region (std::shared_ptr r) -{ - RegionPropertiesBox::set_region (r); -} diff --git a/gtk2_ardour/audio_region_properties_box.h b/gtk2_ardour/audio_region_properties_box.h deleted file mode 100644 index 131be9fae9..0000000000 --- a/gtk2_ardour/audio_region_properties_box.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (C) 2021 Paul Davis - * Copyright (C) 2021 Ben Loftis - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#pragma once - -#include - -#include -#include -#include - -#include "ardour/ardour.h" -#include "ardour/session_handle.h" - -#include "widgets/ardour_button.h" - -#include "gtkmm2ext/cairo_packer.h" - -#include "audio_clock.h" - -namespace ARDOUR -{ - class Session; - class Location; -} - -class RegionPropertiesBox : public Gtk::VBox, public ARDOUR::SessionHandlePtr -{ -public: - RegionPropertiesBox (); - ~RegionPropertiesBox (); - - virtual void set_region (std::shared_ptr); - - void set_session (ARDOUR::Session* s); - -protected: - std::shared_ptr _region; - - Gtk::Label _header_label; - -private: - void region_changed (const PBD::PropertyChange& what_changed); - - Gtk::Table table; - - AudioClock length_clock; - AudioClock start_clock; - - ArdourWidgets::ArdourButton bpm_button; - ArdourWidgets::ArdourButton metrum_button; - - ArdourWidgets::ArdourButton bbt_toggle; - - PBD::ScopedConnection state_connection; -}; - -class AudioRegionPropertiesBox : public RegionPropertiesBox -{ -public: - AudioRegionPropertiesBox (); - ~AudioRegionPropertiesBox (); - - virtual void set_region (std::shared_ptr); - -private: - ArdourWidgets::ArdourButton fade_in_enable_button; - ArdourWidgets::ArdourButton fade_out_enable_button; - - ArdourWidgets::ArdourButton gain_control; - ArdourWidgets::ArdourButton stretch_selector; -}; - diff --git a/gtk2_ardour/audio_route_properties_box.cc b/gtk2_ardour/audio_route_properties_box.cc deleted file mode 100644 index 849bcece32..0000000000 --- a/gtk2_ardour/audio_route_properties_box.cc +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (C) 2011-2017 Paul Davis - * Copyright (C) 2024 Ben Loftis - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#include "pbd/compose.h" -#include - -#include "gtkmm2ext/actions.h" -#include "gtkmm2ext/gui_thread.h" -#include "gtkmm2ext/utils.h" - -#include "ardour/location.h" -#include "ardour/profile.h" -#include "ardour/session.h" - -#include "audio_clock.h" -#include "automation_line.h" -#include "control_point.h" -#include "editor.h" -#include "region_view.h" - -#include "audio_route_properties_box.h" - -#include "pbd/i18n.h" - -using namespace Gtk; -using namespace ARDOUR; -using namespace ArdourWidgets; -using std::max; -using std::min; - -AudioRoutePropertiesBox::AudioRoutePropertiesBox () -{ - _header_label.set_text (_("AUDIO Region Properties:")); - - Gtk::Table* audio_t = manage (new Gtk::Table ()); - audio_t->set_homogeneous (true); - audio_t->set_spacings (4); - - pack_start (*audio_t); -} - -AudioRoutePropertiesBox::~AudioRoutePropertiesBox () -{ -} diff --git a/gtk2_ardour/audio_route_properties_box.h b/gtk2_ardour/audio_route_properties_box.h deleted file mode 100644 index 1625508e11..0000000000 --- a/gtk2_ardour/audio_route_properties_box.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (C) 2021 Paul Davis - * Copyright (C) 2024 Ben Loftis - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#pragma once - -#include - -#include -#include -#include - -#include "ardour/ardour.h" -#include "ardour/session_handle.h" - -#include "widgets/ardour_button.h" - -#include "gtkmm2ext/cairo_packer.h" - -#include "route_properties_box.h" - -class AudioRoutePropertiesBox : public RoutePropertiesBox -{ -public: - AudioRoutePropertiesBox (); - ~AudioRoutePropertiesBox (); - -private: - -}; diff --git a/gtk2_ardour/midi_region_operations_box.cc b/gtk2_ardour/midi_region_operations_box.cc deleted file mode 100644 index 2005c9ac87..0000000000 --- a/gtk2_ardour/midi_region_operations_box.cc +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (C) 2011-2017 Paul Davis - * Copyright (C) 2021 Ben Loftis - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#include -#include "pbd/compose.h" - -#include "gtkmm2ext/gui_thread.h" -#include "gtkmm2ext/utils.h" -#include "gtkmm2ext/actions.h" - -#include "ardour/location.h" -#include "ardour/profile.h" -#include "ardour/session.h" - -#include "audio_clock.h" -#include "editor_automation_line.h" -#include "control_point.h" -#include "editor.h" -#include "region_view.h" - -#include "midi_region_operations_box.h" - -#include "pbd/i18n.h" - -using namespace Gtk; -using namespace ARDOUR; -using std::min; -using std::max; - -MidiRegionOperationsBox::MidiRegionOperationsBox () -{ - _header_label.set_text(_("MIDI Region Operations:")); - _header_label.set_alignment(0.0, 0.5); - pack_start(_header_label, false, false, 6); - - pack_start (table, false, false); - - table.set_homogeneous (true); - table.set_spacings (4); - table.set_border_width (8); - table.set_col_spacings (2); - - quantize_button.set_text (_("Quantize...")); - quantize_button.set_name ("generic button"); - quantize_button.signal_clicked.connect (sigc::mem_fun (*this, &MidiRegionOperationsBox::quantize_button_clicked)); - - legatize_button.set_text (_("Legatize...")); - legatize_button.set_name ("generic button"); - legatize_button.signal_clicked.connect (sigc::mem_fun (*this, &MidiRegionOperationsBox::legatize_button_clicked)); - - transform_button.set_text (_("Transform...")); - transform_button.set_name ("generic button"); - transform_button.signal_clicked.connect (sigc::mem_fun (*this, &MidiRegionOperationsBox::transform_button_clicked)); - - int row = 0; - table.attach(quantize_button, 0, 1, row, row+1, Gtk::SHRINK, Gtk::FILL|Gtk::EXPAND ); row++; - table.attach(legatize_button, 0, 1, row, row+1, Gtk::SHRINK, Gtk::FILL|Gtk::EXPAND ); row++; - table.attach(transform_button, 0, 1, row, row+1, Gtk::SHRINK, Gtk::FILL|Gtk::EXPAND ); row++; -} - -MidiRegionOperationsBox::~MidiRegionOperationsBox () -{ -} - -void -MidiRegionOperationsBox::quantize_button_clicked () -{ - Editor::instance().quantize_region(); -} - -void -MidiRegionOperationsBox::legatize_button_clicked () -{ - Editor::instance().legatize_region(true); -} - -void -MidiRegionOperationsBox::transform_button_clicked () -{ - Editor::instance().transform_region(); -} diff --git a/gtk2_ardour/midi_region_operations_box.h b/gtk2_ardour/midi_region_operations_box.h deleted file mode 100644 index 4e937eb56e..0000000000 --- a/gtk2_ardour/midi_region_operations_box.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (C) 2021 Paul Davis - * Copyright (C) 2021 Ben Loftis - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#pragma once - -#include - -#include -#include -#include - -#include "ardour/ardour.h" -#include "ardour/session_handle.h" - -#include "widgets/ardour_button.h" - -#include "gtkmm2ext/cairo_packer.h" - -#include "audio_region_operations_box.h" - -namespace ARDOUR { - class Session; - class Location; -} - -class MidiRegionOperationsBox : public RegionOperationsBox -{ -public: - MidiRegionOperationsBox (); - ~MidiRegionOperationsBox (); - - PBD::ScopedConnectionList editor_connections; - PBD::ScopedConnectionList region_property_connections; - -private: - Gtk::Table table; - - Gtk::Label _header_label; - - ArdourWidgets::ArdourButton quantize_button; - ArdourWidgets::ArdourButton legatize_button; - ArdourWidgets::ArdourButton transform_button; - - void quantize_button_clicked(); - void legatize_button_clicked(); - void transform_button_clicked(); -}; - diff --git a/gtk2_ardour/midi_region_properties_box.cc b/gtk2_ardour/midi_region_properties_box.cc deleted file mode 100644 index 89557086d8..0000000000 --- a/gtk2_ardour/midi_region_properties_box.cc +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (C) 2011-2017 Paul Davis - * Copyright (C) 2021 Ben Loftis - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#include "pbd/compose.h" -#include - -#include "gtkmm2ext/actions.h" -#include "gtkmm2ext/gui_thread.h" -#include "gtkmm2ext/utils.h" - -#include "ardour/location.h" -#include "ardour/profile.h" -#include "ardour/session.h" - -#include "widgets/ardour_button.h" - -#include "audio_clock.h" -#include "editor_automation_line.h" -#include "control_point.h" -#include "editor.h" -#include "region_view.h" - -#include "midi_region_properties_box.h" - -#include "pbd/i18n.h" - -using namespace Gtk; -using namespace ARDOUR; -using namespace ArdourWidgets; -using std::max; -using std::min; - -MidiRegionPropertiesBox::MidiRegionPropertiesBox () -{ - _header_label.set_text (_("MIDI Region Properties:")); - - Gtk::Table* midi_t = manage (new Gtk::Table ()); - midi_t->set_homogeneous (true); - midi_t->set_spacings (4); - - int row = 0; - - patch_selector_button.set_text (_("Patches...")); - patch_selector_button.set_name ("generic button"); - - midi_t->attach (patch_selector_button, 1, 2, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); - row++; - - cc_selector_button.set_text (_("CCs...")); - cc_selector_button.set_name ("generic button"); - - midi_t->attach (cc_selector_button, 1, 2, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); - row++; - - pack_start (*midi_t); -} - -MidiRegionPropertiesBox::~MidiRegionPropertiesBox () -{ -} - -void -MidiRegionPropertiesBox::set_region (std::shared_ptr r) -{ - RegionPropertiesBox::set_region (r); - - _region->PropertyChanged.connect (midi_state_connection, invalidator (*this), std::bind (&MidiRegionPropertiesBox::region_changed, this, _1), gui_context ()); -} - -void -MidiRegionPropertiesBox::region_changed (const PBD::PropertyChange& what_changed) -{ - /* CC and Pgm stuff ...? */ -} diff --git a/gtk2_ardour/midi_region_properties_box.h b/gtk2_ardour/midi_region_properties_box.h deleted file mode 100644 index 8488a2b65b..0000000000 --- a/gtk2_ardour/midi_region_properties_box.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2021 Paul Davis - * Copyright (C) 2021 Ben Loftis - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#pragma once - -#include - -#include -#include -#include - -#include "ardour/ardour.h" -#include "ardour/session_handle.h" - -#include "gtkmm2ext/cairo_packer.h" - -#include "audio_region_properties_box.h" - -namespace ARDOUR -{ - class Session; - class Location; -} - -class MidiRegionPropertiesBox : public RegionPropertiesBox -{ -public: - MidiRegionPropertiesBox (); - ~MidiRegionPropertiesBox (); - - void set_region (std::shared_ptr); - -private: - void region_changed (const PBD::PropertyChange& what_changed); - - PBD::ScopedConnection midi_state_connection; - - ArdourWidgets::ArdourButton patch_selector_button; - ArdourWidgets::ArdourButton cc_selector_button; -}; - diff --git a/gtk2_ardour/multi_region_properties_box.cc b/gtk2_ardour/multi_region_properties_box.cc deleted file mode 100644 index fe5680ead0..0000000000 --- a/gtk2_ardour/multi_region_properties_box.cc +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (C) 2011-2017 Paul Davis - * Copyright (C) 2021 Ben Loftis - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#include -#include "pbd/compose.h" - -#include "gtkmm2ext/gui_thread.h" -#include "gtkmm2ext/utils.h" -#include "gtkmm2ext/actions.h" - -#include "ardour/location.h" -#include "ardour/profile.h" -#include "ardour/session.h" - -#include "audio_clock.h" -#include "editor_automation_line.h" -#include "control_point.h" -#include "editor.h" -#include "region_view.h" - -#include "multi_region_properties_box.h" - -#include "pbd/i18n.h" - -using namespace Gtk; -using namespace ARDOUR; -using std::min; -using std::max; - -MultiRegionPropertiesBox::MultiRegionPropertiesBox () -{ - pack_start (table, false, false); - - table.set_homogeneous (false); - table.set_spacings (4); - table.set_border_width (8); - - mute_regions_label.set_text (_("Some regions are muted")); - - mute_regions_button.set_text ("Mute All"); - mute_regions_button.set_name ("generic button"); - mute_regions_button.signal_clicked.connect (sigc::mem_fun (*this, &MultiRegionPropertiesBox::mute_selected_regions)); - - unmute_regions_button.set_text ("Un-Mute All"); - unmute_regions_button.set_name ("generic button"); - unmute_regions_button.signal_clicked.connect (sigc::mem_fun (*this, &MultiRegionPropertiesBox::unmute_selected_regions)); - - int row = 0; - table.attach(mute_regions_label, 0, 1, row, row+1, Gtk::SHRINK, Gtk::SHRINK ); - table.attach(mute_regions_button, 1, 2, row, row+1, Gtk::SHRINK, Gtk::SHRINK ); - table.attach(unmute_regions_button, 2, 3, row, row+1, Gtk::SHRINK, Gtk::SHRINK ); - - Editor::instance().get_selection().RegionsChanged.connect (sigc::mem_fun (*this, &MultiRegionPropertiesBox::region_selection_changed)); -} - -MultiRegionPropertiesBox::~MultiRegionPropertiesBox () -{ -} - -void -MultiRegionPropertiesBox::set_session (Session* s) -{ - SessionHandlePtr::set_session (s); -} - -void -MultiRegionPropertiesBox::region_selection_changed () -{ - // timepos_t s, e; - // Selection& selection (Editor::instance().get_selection()); -} - - -void -MultiRegionPropertiesBox::mute_selected_regions () -{ - Selection& selection (Editor::instance().get_selection()); - for (RegionSelection::iterator s = selection.regions.begin(); s != selection.regions.end(); ++s) { - ARDOUR::Region* region = (*s)->region().get(); - region->set_muted(true); - } -} - -void -MultiRegionPropertiesBox::unmute_selected_regions () -{ - Selection& selection (Editor::instance().get_selection()); - for (RegionSelection::iterator s = selection.regions.begin(); s != selection.regions.end(); ++s) { - ARDOUR::Region* region = (*s)->region().get(); - region->set_muted(false); - } -} diff --git a/gtk2_ardour/multi_region_properties_box.h b/gtk2_ardour/multi_region_properties_box.h deleted file mode 100644 index 8bdbc5dafb..0000000000 --- a/gtk2_ardour/multi_region_properties_box.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (C) 2021 Paul Davis - * Copyright (C) 2021 Ben Loftis - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#pragma once - -#include - -#include -#include -#include - -#include "ardour/ardour.h" -#include "ardour/session_handle.h" - -#include "widgets/ardour_button.h" - -#include "gtkmm2ext/cairo_packer.h" - -namespace ARDOUR { - class Session; - class Location; -} - -class MultiRegionPropertiesBox : public Gtk::VBox, public ARDOUR::SessionHandlePtr -{ -public: - MultiRegionPropertiesBox (); - ~MultiRegionPropertiesBox (); - - void set_session (ARDOUR::Session*); - - PBD::ScopedConnectionList editor_connections; - PBD::ScopedConnectionList region_property_connections; - -private: - Gtk::Table table; - - Gtk::Label mute_regions_label; - ArdourWidgets::ArdourButton mute_regions_button; - ArdourWidgets::ArdourButton unmute_regions_button; - - void selection_changed (); - void region_selection_changed (); - - void track_mouse_mode (); - - void mute_selected_regions(); - void unmute_selected_regions(); -}; - diff --git a/gtk2_ardour/region_properties_box.cc b/gtk2_ardour/region_properties_box.cc deleted file mode 100644 index 16d3b55b19..0000000000 --- a/gtk2_ardour/region_properties_box.cc +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (C) 2011-2017 Paul Davis - * Copyright (C) 2021 Ben Loftis - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#include -#include "pbd/compose.h" - -#include "gtkmm2ext/gui_thread.h" -#include "gtkmm2ext/utils.h" -#include "gtkmm2ext/actions.h" - -#include "ardour/location.h" -#include "ardour/profile.h" -#include "ardour/session.h" - -#include "audio_clock.h" -#include "editor_automation_line.h" -#include "control_point.h" -#include "editor.h" -#include "region_view.h" - -#include "pbd/i18n.h" - -using namespace Gtk; -using namespace ARDOUR; -using std::min; -using std::max; - -MidiRegionPropertiesBox::MidiRegionPropertiesBox () -{ - pack_start (table, false, false); - - table.set_homogeneous (true); - table.set_spacings (0); - table.set_border_width (2); - table.set_col_spacings (2); - - -} - -MidiRegionPropertiesBox::~MidiRegionPropertiesBox () -{ -} - -void -MidiRegionPropertiesBox::set_session (Session* s) -{ - SessionHandlePtr::set_session (s); -} - diff --git a/gtk2_ardour/region_properties_box.h b/gtk2_ardour/region_properties_box.h deleted file mode 100644 index 63cbc156c1..0000000000 --- a/gtk2_ardour/region_properties_box.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2021 Paul Davis - * Copyright (C) 2021 Ben Loftis - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#pragma once - -#include - -#include -#include -#include - -#include "ardour/ardour.h" -#include "ardour/session_handle.h" - -#include "gtkmm2ext/cairo_packer.h" - -namespace ARDOUR { - class Session; - class Location; -} - -class MidiRegionPropertiesBox : public Gtk::VBox, public ARDOUR::SessionHandlePtr -{ -public: - MidiRegionPropertiesBox (); - ~MidiRegionPropertiesBox (); - - void set_session (ARDOUR::Session*); - -private: - Gtk::Table table; -}; - diff --git a/gtk2_ardour/selection_properties_box.cc b/gtk2_ardour/selection_properties_box.cc index a8545e96a1..dc3831f16f 100644 --- a/gtk2_ardour/selection_properties_box.cc +++ b/gtk2_ardour/selection_properties_box.cc @@ -1,6 +1,7 @@ /* * Copyright (C) 2011-2017 Paul Davis * Copyright (C) 2021 Ben Loftis + * Copyright (C) 2024 Robin Gareus * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,38 +18,20 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#include #include "pbd/compose.h" #include "gtkmm2ext/gui_thread.h" #include "gtkmm2ext/utils.h" -#include "gtkmm2ext/actions.h" -#include "ardour/location.h" -#include "ardour/profile.h" #include "ardour/session.h" -#include "audio_clock.h" -#include "editor_automation_line.h" -#include "control_point.h" +#include "audio_region_editor.h" +#include "audio_region_view.h" #include "editor.h" #include "region_view.h" -#include "time_info_box.h" -#include "triggerbox_ui.h" - -#include "multi_region_properties_box.h" - -#include "audio_region_properties_box.h" -#include "midi_region_properties_box.h" - -#include "audio_region_operations_box.h" -#include "midi_region_operations_box.h" - -#include "slot_properties_box.h" - -#include "audio_route_properties_box.h" - +#include "route_properties_box.h" #include "selection_properties_box.h" +#include "time_info_box.h" #include "pbd/i18n.h" @@ -59,66 +42,45 @@ using std::max; SelectionPropertiesBox::SelectionPropertiesBox () { - _header_label.set_text(_("Selection Properties (ESC = Deselect All)")); - _header_label.set_alignment(0.0, 0.5); - pack_start(_header_label, false, false, 6); + init (); - /* Time Info, for Range selections ToDo: range operations*/ - _time_info_box = new TimeInfoBox ("EditorTimeInfo", true); - pack_start(*_time_info_box, false, false, 0); - - /* Region ops (mute/unmute), for multiple-Region selections */ - _mregions_prop_box = new MultiRegionPropertiesBox (); - pack_start(*_mregions_prop_box, false, false, 0); - - /* MIDI Region props, for Clips */ - _midi_prop_box = new MidiRegionPropertiesBox (); - pack_start(*_midi_prop_box, false, false, 0); - - /* AUDIO Region props for Clips */ - _audio_prop_box = new AudioRegionPropertiesBox (); - pack_start(*_audio_prop_box, false, false, 0); - - /* MIDI Region ops (transpose, quantize), for only-midi selections */ - _midi_ops_box = new MidiRegionOperationsBox (); - pack_start(*_midi_ops_box, false, false, 0); - - /* AUDIO Region ops (reverse, normalize), for only-audio selections */ - _audio_ops_box = new AudioRegionOperationsBox (); - pack_start(*_audio_ops_box, false, false, 0); - - /* SLOT properties, for Trigger slot selections */ - _slot_prop_box = new SlotPropertiesBox (); - pack_start(*_slot_prop_box, false, false, 0); - - /* ROUTE properties, for Track selections */ + _time_info_box = new TimeInfoBox ("EditorTimeInfo", true); _route_prop_box = new RoutePropertiesBox (); - pack_start(*_route_prop_box, false, false, 0); - _time_info_box->set_no_show_all(); - _mregions_prop_box->set_no_show_all(); - _audio_prop_box->set_no_show_all(); - _midi_ops_box->set_no_show_all(); - _audio_ops_box->set_no_show_all(); - _slot_prop_box->set_no_show_all(); - _route_prop_box->set_no_show_all(); + pack_start(*_time_info_box, false, false, 0); + pack_start(*_route_prop_box, true, true, 0); + + _time_info_box->set_no_show_all (); + _route_prop_box->set_no_show_all (); + + _time_info_box->hide (); + _route_prop_box->hide (); } SelectionPropertiesBox::~SelectionPropertiesBox () { delete _time_info_box; + delete _route_prop_box; +} - delete _mregions_prop_box; +void +SelectionPropertiesBox::init () +{ + Selection& selection (Editor::instance().get_selection()); - delete _slot_prop_box; + /* watch for any change in our selection, so we can show an appropriate property editor */ + selection.TracksChanged.connect (sigc::mem_fun (*this, &SelectionPropertiesBox::selection_changed)); + selection.RegionsChanged.connect (sigc::mem_fun (*this, &SelectionPropertiesBox::selection_changed)); + selection.TimeChanged.connect (sigc::mem_fun (*this, &SelectionPropertiesBox::selection_changed)); + selection.LinesChanged.connect (sigc::mem_fun (*this, &SelectionPropertiesBox::selection_changed)); + selection.PlaylistsChanged.connect (sigc::mem_fun (*this, &SelectionPropertiesBox::selection_changed)); + selection.PointsChanged.connect (sigc::mem_fun (*this, &SelectionPropertiesBox::selection_changed)); + selection.MarkersChanged.connect (sigc::mem_fun (*this, &SelectionPropertiesBox::selection_changed)); + selection.MidiNotesChanged.connect (sigc::mem_fun (*this, &SelectionPropertiesBox::selection_changed)); + selection.TriggersChanged.connect (sigc::mem_fun (*this, &SelectionPropertiesBox::selection_changed)); - delete _midi_ops_box; - delete _audio_ops_box; - - delete _midi_prop_box; - delete _audio_prop_box; - - delete _route_prop_box; //todo: split into midi/audio + /* maybe we care about mouse mode?? */ + Editor::instance().MouseModeChanged.connect (_editor_connection, invalidator(*this), std::bind (&SelectionPropertiesBox::track_mouse_mode, this), gui_context()); } void @@ -131,33 +93,8 @@ SelectionPropertiesBox::set_session (Session* s) } _time_info_box->set_session(s); - - _mregions_prop_box->set_session(s); - - _midi_prop_box->set_session(s); - _audio_prop_box->set_session(s); - - _midi_ops_box->set_session(s); - _audio_ops_box->set_session(s); - - _slot_prop_box->set_session(s); - _route_prop_box->set_session(s); - /* watch for any change in our selection, so we can show an appropriate property editor */ - Editor::instance().get_selection().TracksChanged.connect (sigc::mem_fun (*this, &SelectionPropertiesBox::selection_changed)); - Editor::instance().get_selection().RegionsChanged.connect (sigc::mem_fun (*this, &SelectionPropertiesBox::selection_changed)); - Editor::instance().get_selection().TimeChanged.connect (sigc::mem_fun (*this, &SelectionPropertiesBox::selection_changed)); - Editor::instance().get_selection().LinesChanged.connect (sigc::mem_fun (*this, &SelectionPropertiesBox::selection_changed)); - Editor::instance().get_selection().PlaylistsChanged.connect (sigc::mem_fun (*this, &SelectionPropertiesBox::selection_changed)); - Editor::instance().get_selection().PointsChanged.connect (sigc::mem_fun (*this, &SelectionPropertiesBox::selection_changed)); - Editor::instance().get_selection().MarkersChanged.connect (sigc::mem_fun (*this, &SelectionPropertiesBox::selection_changed)); - Editor::instance().get_selection().MidiNotesChanged.connect (sigc::mem_fun (*this, &SelectionPropertiesBox::selection_changed)); - Editor::instance().get_selection().TriggersChanged.connect (sigc::mem_fun (*this, &SelectionPropertiesBox::selection_changed)); - - /* maybe we care about mouse mode?? */ - Editor::instance().MouseModeChanged.connect (editor_connections, invalidator(*this), std::bind (&SelectionPropertiesBox::track_mouse_mode, this), gui_context()); - selection_changed(); } @@ -170,100 +107,28 @@ SelectionPropertiesBox::track_mouse_mode () void SelectionPropertiesBox::selection_changed () { + if (!_session || _session->inital_connect_or_deletion_in_progress ()) { + _time_info_box->hide (); + _route_prop_box->hide (); + return; + } + Selection& selection (Editor::instance().get_selection()); - _time_info_box->hide(); - - _mregions_prop_box->hide(); - - _midi_ops_box->hide(); - _audio_ops_box->hide(); - - _midi_prop_box->hide(); - _audio_prop_box->hide(); - - _slot_prop_box->hide(); - - _route_prop_box->hide(); - - _header_label.hide(); - - if (!selection.time.empty()) { - _time_info_box->show(); - _header_label.set_text(_("Range Properties (Press ESC to Deselect All)")); - _header_label.show(); + if (!selection.time.empty ()) { + _time_info_box->show (); + } else { + _time_info_box->hide (); } - if (!selection.tracks.empty()) { - _route_prop_box->show(); - TimeAxisView *tav = *(selection.tracks.begin()); + if (!selection.tracks.empty ()) { + TimeAxisView *tav = selection.tracks.front (); RouteTimeAxisView *rtav = dynamic_cast(tav); - _route_prop_box->set_route(rtav->route()); - _header_label.set_text(_("Track Properties (Press ESC to Deselect All)")); - _header_label.hide(); - + _route_prop_box->set_route (rtav->route()); + _route_prop_box->show(); + } else { + _route_prop_box->hide(); } -#if SELECTION_PROPERTIES_BOX_TODO - /* one or more regions, show the multi-region operations box (just MUTE? kinda boring) */ - if (!selection.regions.empty()) { - _mregions_prop_box->show(); } - - bool found_midi_regions = false; - for (RegionSelection::iterator s = selection.regions.begin(); s != selection.regions.end(); ++s) { - ARDOUR::Region* region = (*s)->region().get(); - if (region->data_type() == DataType::MIDI) { - found_midi_regions = true; - break; - } - } - - bool found_audio_regions = false; - for (RegionSelection::iterator s = selection.regions.begin(); s != selection.regions.end(); ++s) { - ARDOUR::Region* region = (*s)->region().get(); - if (region->data_type() == DataType::AUDIO) { - found_audio_regions = true; - break; - } - } - - if (found_midi_regions && ! found_audio_regions) { - _midi_ops_box->show(); - } - if (found_audio_regions && ! found_midi_regions) { - _audio_ops_box->show(); - } -#endif - - std::shared_ptr selected_region = std::shared_ptr(); - RegionView *selected_regionview = NULL; - - if (!selection.triggers.empty()) { - TriggerSelection ts = selection.triggers; - TriggerEntry* entry = *ts.begin(); - TriggerReference ref = entry->trigger_reference(); - - //slot properties incl "Follow Actions" - _slot_prop_box->set_slot(ref); - _slot_prop_box->show(); - -// selected_region = ref.trigger()->region(); - } else if (selection.regions.size()==1) { - selected_regionview = *(selection.regions.begin()); - } - -#if 0 // TODO pack region-properties here - if (selected_regionview) { - std::shared_ptr r = selected_regionview->region(); - //region properties - if (r && r->data_type() == DataType::MIDI) { - _midi_prop_box->set_regionview(selected_regionview); - _midi_prop_box->show(); - } else if (r) { - _audio_prop_box->set_regionview(selected_regionview); //retains a SessionHandler reference somewhere @robin - _audio_prop_box->show(); - } - } -#endif } diff --git a/gtk2_ardour/selection_properties_box.h b/gtk2_ardour/selection_properties_box.h index 93864bed9d..cf6f5cb0f2 100644 --- a/gtk2_ardour/selection_properties_box.h +++ b/gtk2_ardour/selection_properties_box.h @@ -1,6 +1,7 @@ /* * Copyright (C) 2021 Paul Davis * Copyright (C) 2024 Ben Loftis + * Copyright (C) 2024 Robin Gareus * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,8 +20,6 @@ #pragma once -#include - #include #include #include @@ -28,25 +27,13 @@ #include "ardour/ardour.h" #include "ardour/session_handle.h" -#include "gtkmm2ext/cairo_packer.h" namespace ARDOUR { class Session; - class Location; } class TimeInfoBox; - -class MultiRegionPropertiesBox; - -class SlotPropertiesBox; - -class AudioRegionPropertiesBox; -class MidiRegionPropertiesBox; - -class AudioRegionOperationsBox; -class MidiRegionOperationsBox; - +class RegionEditor; class RoutePropertiesBox; class SelectionPropertiesBox : public Gtk::HBox, public ARDOUR::SessionHandlePtr @@ -57,29 +44,14 @@ public: void set_session (ARDOUR::Session*); - PBD::ScopedConnectionList editor_connections; - private: - Gtk::Table table; - - Gtk::Label _header_label; - - TimeInfoBox* _time_info_box; - - MultiRegionPropertiesBox* _mregions_prop_box; - - AudioRegionPropertiesBox* _audio_prop_box; - MidiRegionPropertiesBox* _midi_prop_box; - - AudioRegionOperationsBox* _audio_ops_box; - MidiRegionOperationsBox* _midi_ops_box; - - SlotPropertiesBox* _slot_prop_box; - - RoutePropertiesBox* _route_prop_box; - + void init (); void selection_changed (); - void track_mouse_mode (); + + TimeInfoBox* _time_info_box; + RoutePropertiesBox* _route_prop_box; + + PBD::ScopedConnection _editor_connection; }; diff --git a/gtk2_ardour/slot_properties_box.cc b/gtk2_ardour/slot_properties_box.cc index 811826c9fa..4a8f71f8ce 100644 --- a/gtk2_ardour/slot_properties_box.cc +++ b/gtk2_ardour/slot_properties_box.cc @@ -50,13 +50,8 @@ #include "utils.h" #include "audio_clip_editor.h" -#include "audio_region_properties_box.h" #include "audio_trigger_properties_box.h" -#include "audio_region_operations_box.h" -#include "midi_trigger_properties_box.h" -#include "midi_region_properties_box.h" -#include "midi_region_operations_box.h" #include "midi_cue_editor.h" #include "slot_properties_box.h" @@ -723,69 +718,3 @@ SlotPropertyWidget::SlotPropertyWidget () pack_start(*ui); ui->show(); } - -/* ------------ */ - -SlotPropertyWindow::SlotPropertyWindow (TriggerReference tref) -{ - TriggerPtr trigger (tref.trigger()); - - assert (trigger); - - set_title (string_compose (_("Trigger Slot: %1"), trigger->name())); - - SlotPropertiesBox* slot_prop_box = manage (new SlotPropertiesBox ()); - slot_prop_box->set_slot (tref); - - Gtk::Table* table = manage (new Gtk::Table); - table->set_homogeneous (false); - table->set_spacings (16); - table->set_border_width (8); - - int col = 0; - table->attach(*slot_prop_box, col, col+1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); col++; - - if (trigger->the_region()) { - if (trigger->the_region()->data_type() == DataType::AUDIO) { - _trig_box = manage(new AudioTriggerPropertiesBox ()); - _ops_box = manage(new AudioRegionOperationsBox ()); - _trim_box = manage(new AudioClipEditorBox ()); - - _trig_box->set_trigger (tref); - _trim_box->set_region(trigger->the_region(), tref); - _ops_box->set_session(&trigger->the_region()->session()); - - table->attach(*_trig_box, col, col+1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); col++; - table->attach(*_ops_box, col, col+1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); col++; - table->attach(*_trim_box, col, col+1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); col++; - - } else { - _trig_box = manage(new MidiTriggerPropertiesBox ()); - _trig_box->set_trigger (tref); - - _midi_editor = new MidiCueEditor; - - std::cerr << "here\n"; - - table->attach(*_trig_box, col, col+1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); col++; - table->attach(_midi_editor->viewport(), col, col+1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); col++; - } - } - - add (*table); - table->show_all(); -} - -bool -SlotPropertyWindow::on_key_press_event (GdkEventKey* ev) -{ - Gtk::Window& main_window (ARDOUR_UI::instance()->main_window()); - return ARDOUR_UI_UTILS::relay_key_press (ev, &main_window); -} - -bool -SlotPropertyWindow::on_key_release_event (GdkEventKey* ev) -{ - Gtk::Window& main_window (ARDOUR_UI::instance()->main_window()); - return ARDOUR_UI_UTILS::relay_key_press (ev, &main_window); -} diff --git a/gtk2_ardour/slot_properties_box.h b/gtk2_ardour/slot_properties_box.h index 3367d85ae2..b570a8a29b 100644 --- a/gtk2_ardour/slot_properties_box.h +++ b/gtk2_ardour/slot_properties_box.h @@ -166,19 +166,3 @@ private: SlotPropertyWidget* _triggerwidget; }; - -/* XXX probably for testing only */ - -class SlotPropertyWindow : public Gtk::Window -{ - public: - SlotPropertyWindow (ARDOUR::TriggerReference); - - bool on_key_press_event (GdkEventKey*); - bool on_key_release_event (GdkEventKey*); - - TriggerPropertiesBox *_trig_box; - RegionOperationsBox *_ops_box; - ClipEditorBox *_trim_box; - MidiCueEditor* _midi_editor; -}; diff --git a/gtk2_ardour/trigger_page.h b/gtk2_ardour/trigger_page.h index 3f5ad2cc72..82e11d8fb6 100644 --- a/gtk2_ardour/trigger_page.h +++ b/gtk2_ardour/trigger_page.h @@ -30,13 +30,10 @@ #include "application_bar.h" #include "audio_region_operations_box.h" -#include "audio_region_properties_box.h" #include "audio_trigger_properties_box.h" #include "axis_provider.h" #include "cuebox_ui.h" #include "fitted_canvas_widget.h" -#include "midi_region_operations_box.h" -#include "midi_region_properties_box.h" #include "midi_trigger_properties_box.h" #include "route_processor_selection.h" #include "slot_properties_box.h" diff --git a/gtk2_ardour/trigger_ui.cc b/gtk2_ardour/trigger_ui.cc index 8c5f042754..34770b9642 100644 --- a/gtk2_ardour/trigger_ui.cc +++ b/gtk2_ardour/trigger_ui.cc @@ -628,14 +628,6 @@ TriggerUI::clear_trigger () void TriggerUI::edit_trigger () { - SlotPropertyWindow* tw = static_cast (trigger()->ui ()); - - if (!tw) { - tw = new SlotPropertyWindow (TriggerReference (trigger()->boxptr(), trigger()->index())); - trigger()->set_ui (tw); - } - - tw->present (); } void diff --git a/gtk2_ardour/wscript b/gtk2_ardour/wscript index 38534363c6..e10b14870c 100644 --- a/gtk2_ardour/wscript +++ b/gtk2_ardour/wscript @@ -43,9 +43,6 @@ gtk2_ardour_sources = [ 'audio_clip_editor.cc', 'audio_region_editor.cc', 'audio_region_view.cc', - 'audio_region_operations_box.cc', - 'audio_region_properties_box.cc', - 'audio_route_properties_box.cc', 'audio_trigger_properties_box.cc', 'audio_streamview.cc', 'audio_time_axis.cc', @@ -171,8 +168,6 @@ gtk2_ardour_sources = [ 'midi_export_dialog.cc', 'midi_list_editor.cc', 'midi_region_view.cc', - 'midi_region_operations_box.cc', - 'midi_region_properties_box.cc', 'midi_trigger_properties_box.cc', 'midi_selection.cc', 'midi_streamview.cc', @@ -195,7 +190,6 @@ gtk2_ardour_sources = [ 'mono_panner.cc', 'mono_panner_editor.cc', 'mouse_cursors.cc', - 'multi_region_properties_box.cc', 'nag.cc', 'new_plugin_preset_dialog.cc', 'new_user_wizard.cc',