From 040d7fec2c23216be7533b727cde4407fb2f8036 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 30 Oct 2008 23:45:20 +0000 Subject: [PATCH] remove cruft from ArdourUI; improve keyboard icon(s); shrink other plugin GUI buttons; close all dialogs when quitting so that we actually quit git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@4036 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/ardour_dialog.cc | 19 +++++++++++ gtk2_ardour/ardour_dialog.h | 8 +++++ gtk2_ardour/ardour_ui.cc | 31 +----------------- gtk2_ardour/ardour_ui.h | 6 ++-- gtk2_ardour/ardour_ui_ed.cc | 2 +- gtk2_ardour/au_pluginui.mm | 25 ++++++++++---- gtk2_ardour/crossfade_edit.cc | 3 ++ gtk2_ardour/generic_pluginui.cc | 29 +++++++--------- gtk2_ardour/icons/computer_keyboard.png | Bin 1536 -> 1320 bytes .../icons/computer_keyboard_active.png | Bin 1686 -> 1495 bytes gtk2_ardour/keyboard.cc | 20 +++++++---- gtk2_ardour/plugin_ui.cc | 4 ++- gtk2_ardour/plugin_ui.h | 4 +-- gtk2_ardour/tempo_lines.cc | 2 +- 14 files changed, 82 insertions(+), 71 deletions(-) diff --git a/gtk2_ardour/ardour_dialog.cc b/gtk2_ardour/ardour_dialog.cc index bc24389948..decae49bd1 100644 --- a/gtk2_ardour/ardour_dialog.cc +++ b/gtk2_ardour/ardour_dialog.cc @@ -18,6 +18,7 @@ */ #include +#include #include @@ -25,12 +26,21 @@ #include "keyboard.h" #include "ardour_ui.h" #include "splash.h" +#include "public_editor.h" +#include "utils.h" + +using namespace sigc; +using namespace Gtk; + +sigc::signal ArdourDialog::CloseAllDialogs; ArdourDialog::ArdourDialog (string title, bool modal, bool use_seperator) : Dialog (title, modal, use_seperator) { session = 0; + CloseAllDialogs.connect (bind (mem_fun (*this, &ArdourDialog::response), RESPONSE_CANCEL)); + set_type_hint(Gdk::WINDOW_TYPE_HINT_DIALOG); } @@ -39,6 +49,8 @@ ArdourDialog::ArdourDialog (Gtk::Window& parent, string title, bool modal, bool { session = 0; + CloseAllDialogs.connect (bind (mem_fun (*this, &ArdourDialog::response), RESPONSE_CANCEL)); + set_type_hint(Gdk::WINDOW_TYPE_HINT_DIALOG); set_position (Gtk::WIN_POS_CENTER_ON_PARENT); } @@ -80,3 +92,10 @@ ArdourDialog::on_show () Dialog::on_show (); } + +bool +ArdourDialog::on_key_press_event (GdkEventKey* key) +{ + return Gtk::Dialog::on_key_press_event (key); +} + diff --git a/gtk2_ardour/ardour_dialog.h b/gtk2_ardour/ardour_dialog.h index f2859717e0..4dc35550fd 100644 --- a/gtk2_ardour/ardour_dialog.h +++ b/gtk2_ardour/ardour_dialog.h @@ -40,6 +40,9 @@ class ArdourDialog : public Gtk::Dialog ArdourDialog (Gtk::Window& parent, std::string title, bool modal = false, bool use_separator = false); ~ArdourDialog(); + static int close_all_current_dialogs (int response); + + bool on_key_press_event (GdkEventKey *); bool on_enter_notify_event (GdkEventCrossing*); bool on_leave_notify_event (GdkEventCrossing*); void on_unmap (); @@ -54,6 +57,11 @@ class ArdourDialog : public Gtk::Dialog virtual void session_gone () { set_session (0); } + + static void close_all_dialogs () { CloseAllDialogs(); } + + private: + static sigc::signal CloseAllDialogs; }; #endif // __ardour_dialog_h__ diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index e97e563ced..09ec2e7e88 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -747,6 +747,7 @@ If you still wish to quit, please use the\n\n\ session->set_deletion_in_progress (); } + ArdourDialog::close_all_dialogs (); engine->stop (true); save_ardour_state (); quit (); @@ -1918,14 +1919,6 @@ ARDOUR_UI::transport_rec_enable_blink (bool onoff) } } -gint -ARDOUR_UI::hide_and_quit (GdkEventAny *ev, ArdourDialog *window) -{ - window->hide(); - Gtk::Main::quit (); - return TRUE; -} - void ARDOUR_UI::save_template () @@ -2162,28 +2155,6 @@ ARDOUR_UI::loading_message (const std::string& msg) splash->message (msg); flush_pending (); } - -void -ARDOUR_UI::idle_load (const Glib::ustring& path) -{ - if (session) { - if (Glib::file_test (path, Glib::FILE_TEST_IS_DIR)) { - /* /path/to/foo => /path/to/foo, foo */ - load_session (path, basename_nosuffix (path)); - } else { - /* /path/to/foo/foo.ardour => /path/to/foo, foo */ - load_session (Glib::path_get_dirname (path), basename_nosuffix (path)); - } - } else { - ARDOUR_COMMAND_LINE::session_name = path; - if (new_session_dialog) { - /* make it break out of Dialog::run() and - start again. - */ - new_session_dialog->response (1); - } - } -} bool ARDOUR_UI::get_session_parameters (bool backend_audio_is_running, bool should_be_new) diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index 79ab093e9d..dce3254192 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -116,7 +116,8 @@ class ARDOUR_UI : public Gtkmm2ext::UI void show_about (); void hide_about (); - void idle_load (const Glib::ustring& path); + void finish(); + int load_session (const Glib::ustring& path, const Glib::ustring& snapshot, Glib::ustring mix_template = Glib::ustring()); bool session_loaded; int build_session (const Glib::ustring& path, const Glib::ustring& snapshot, @@ -178,8 +179,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI void name_io_setup (ARDOUR::AudioEngine&, string&, ARDOUR::IO& io, bool in); - static gint hide_and_quit (GdkEventAny *ev, ArdourDialog *); - XMLNode* editor_settings() const; XMLNode* mixer_settings () const; XMLNode* keyboard_settings () const; @@ -300,7 +299,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI void startup (); void shutdown (); - void finish(); int ask_about_saving_session (const string & why); /* periodic safety backup, to be precise */ diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc index 967baa1737..7c00d89ec1 100644 --- a/gtk2_ardour/ardour_ui_ed.cc +++ b/gtk2_ardour/ardour_ui_ed.cc @@ -195,7 +195,7 @@ ARDOUR_UI::install_actions () common_actions = ActionGroup::create (X_("Common")); ActionManager::register_action (main_actions, X_("WindowMenu"), _("Window")); - ActionManager::register_action (common_actions, X_("Quit"), _("Quit"), (mem_fun(*this, &ARDOUR_UI::finish))); + ActionManager::register_action (common_actions, X_("Quit"), _("Quit"), (hide_return (mem_fun(*this, &ARDOUR_UI::finish)))); /* windows visibility actions */ diff --git a/gtk2_ardour/au_pluginui.mm b/gtk2_ardour/au_pluginui.mm index 0fc1d55dcc..a46021f66f 100644 --- a/gtk2_ardour/au_pluginui.mm +++ b/gtk2_ardour/au_pluginui.mm @@ -65,16 +65,27 @@ AUPluginUI::AUPluginUI (boost::shared_ptr insert) /* stuff some stuff into the top of the window */ + HBox* smaller_hbox = manage (new HBox); + + smaller_hbox->pack_start (preset_label, false, false, 10); + smaller_hbox->pack_start (preset_combo, false, false); + smaller_hbox->pack_start (save_button, false, false); + smaller_hbox->pack_start (automation_mode_label, false, false); + smaller_hbox->pack_start (automation_mode_selector, false, false); + smaller_hbox->pack_start (bypass_button, false, true); + + VBox* v1_box = manage (new VBox); + VBox* v2_box = manage (new VBox); + + v1_box->pack_start (*smaller_hbox, false, true); + v2_box->pack_start (focus_button, false, true); + + top_box.set_homogeneous (false); top_box.set_spacing (6); top_box.set_border_width (6); - top_box.pack_end (focus_button, false, true); - top_box.pack_end (bypass_button, false, true); - top_box.pack_end (automation_mode_selector, false, false); - top_box.pack_end (automation_mode_label, false, false); - top_box.pack_end (save_button, false, false); - top_box.pack_end (preset_combo, false, false); - top_box.pack_end (preset_label, false, false); + top_box.pack_end (*v2_box, false, false); + top_box.pack_end (*v1_box, false, false); set_spacing (6); pack_start (top_box, false, false); diff --git a/gtk2_ardour/crossfade_edit.cc b/gtk2_ardour/crossfade_edit.cc index 51d5306a1e..c2d97d0897 100644 --- a/gtk2_ardour/crossfade_edit.cc +++ b/gtk2_ardour/crossfade_edit.cc @@ -48,6 +48,7 @@ #include "canvas_impl.h" #include "simplerect.h" #include "waveview.h" +#include "actions.h" using namespace std; using namespace ARDOUR; @@ -98,6 +99,8 @@ CrossfadeEditor::CrossfadeEditor (Session& s, boost::shared_ptr xf, d set_name ("CrossfadeEditWindow"); set_position (Gtk::WIN_POS_MOUSE); + add_accel_group (ActionManager::ui_manager->get_accel_group()); + add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::POINTER_MOTION_MASK); RadioButtonGroup sel_but_group = select_in_button.get_group(); diff --git a/gtk2_ardour/generic_pluginui.cc b/gtk2_ardour/generic_pluginui.cc index 7944fd0d28..4a4ea9cf1c 100644 --- a/gtk2_ardour/generic_pluginui.cc +++ b/gtk2_ardour/generic_pluginui.cc @@ -73,8 +73,6 @@ GenericPluginUI::GenericPluginUI (boost::shared_ptr pi, bool scrol set_border_width (10); set_homogeneous (false); - settings_box.set_homogeneous (false); - HBox* constraint_hbox = manage (new HBox); HBox* smaller_hbox = manage (new HBox); Label* combo_label = manage (new Label (_("Presets"))); @@ -83,15 +81,21 @@ GenericPluginUI::GenericPluginUI (boost::shared_ptr pi, bool scrol smaller_hbox->pack_start (*combo_label, false, false, 10); smaller_hbox->pack_start (preset_combo, false, false); smaller_hbox->pack_start (save_button, false, false); + smaller_hbox->pack_start (bypass_button, false, true); constraint_hbox->set_spacing (5); - constraint_hbox->pack_start (*smaller_hbox, true, false); - constraint_hbox->pack_end (focus_button, false, false); - constraint_hbox->pack_end (bypass_button, false, false); + constraint_hbox->set_homogeneous (false); + + VBox* v1_box = manage (new VBox); + VBox* v2_box = manage (new VBox); - settings_box.pack_end (*constraint_hbox, false, false); + v1_box->pack_start (*smaller_hbox, false, true); + v2_box->pack_start (focus_button, false, true); - pack_start (settings_box, false, false); + constraint_hbox->pack_end (*v2_box, false, false); + constraint_hbox->pack_end (*v1_box, false, false); + + pack_start (*constraint_hbox, false, false); if ( is_scrollable ) { scroller.set_policy (Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); @@ -107,9 +111,6 @@ GenericPluginUI::GenericPluginUI (boost::shared_ptr pi, bool scrol pack_start (hpacker, false, false); } - insert->active_changed.connect (mem_fun(*this, &GenericPluginUI::redirect_active_changed)); - bypass_button.set_active (!insert->active()); - build (); } @@ -705,14 +706,6 @@ GenericPluginUI::control_combo_changed (ControlUI* cui) } -void -GenericPluginUI::redirect_active_changed (Redirect* r, void* src) -{ - ENSURE_GUI_THREAD(bind (mem_fun(*this, &GenericPluginUI::redirect_active_changed), r, src)); - - bypass_button.set_active (!r->active()); -} - bool GenericPluginUI::start_updating (GdkEventAny* ignored) { diff --git a/gtk2_ardour/icons/computer_keyboard.png b/gtk2_ardour/icons/computer_keyboard.png index 9da0109378c7c1d1d920f1ad1fc79c07fba5e3d5..8d425d0385c98b8fe963d7effe4b624ff44646c5 100644 GIT binary patch delta 1293 zcmV+o1@iiU45$i_7bz781^@s6C(Z2Y00001b5ch_0Itp)=>Px#24YJ`L;(K){{a7> zy{D6rF&KXbbV*G`2iOW82nH)WIs=ga00gK>L_t(Y$HkV&6Cs;0w>A7omR-&-3UjA*EzLUASh6<;V=N@a+zo}%Erb9 zzVBlg25;WHLDMvX!5~5i*4KX~lX=C`(l@lW{)iBrIF5}Fg68Jt{@o)8Y%fx&RF9OB zN~MCTsw^xl5RFE8@!|zbOH0IJF%}mW2?l?Igu`JL7Z*t;ldP?+H9FAJ@+E6)Ujboi zwXdnyKg0KZDwPWD?d@#`0@${l$Y!%K&+~Zn=n=(Y5zDf;dGjV48yl>zuXE$Z4I+^U zb8~YPi$x-l2-DNktgNiy`#!$!BZNl1-ieeF&x_-E%?Kf=R4R0IbVO|1?%o$bRn>p7 zOePbp)oNt3Sz9XrP4&lKYmOw7-V#G6xVf;Qqs}U(b$isrY2NX9p2Lc+qQ#aV`K4pz0QBa!U8ih zGxYcOQz#UWQgZzGaqi#0k7ZeGZf-I=J4n?9*^(wgVU!^i_jilToYgurneEXy)%+m7b*`Sk{XVHlqzlS#8wDv?g7dHVDz zilT7z=+Ohcb*mF+&Ya=(>(^8&70Tr@xm=D?sYHK&Kk0Ouxw$z82M2lf>>1^9nYOkz z6L=q(Z2*Kqp^r_|WMyTALZLu+cQ@5)mHGMkhW&20;jKKA$uKoFg|2_=F){IvEO$%sc)XEo zn#RDuK%-8jQb;L@#bS-l>AH@psviR10R(K@K63c*VbgWp10S+wGH=uF`*we60Te|+ z)3hVom$0*`sVO9cAP`vypeV{71p)!2l=!~CV+pse?FYSkWLvf4IQYJ=YzO#tW@hI5 zd-v|;w$FQa{%_9yE~J#pj^q5a@BhHNhyd?6-Z{XZeM(DQ{Civ300000NkvXXu0mjf D1O$J| delta 1511 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 delta 1623 zcmV-d2B`Vh3ziL#7YZN<1^@s6b9#F8ks&{S91tV|VFu@(000ISNklb4`` zt~8zm4jtHa=J+*JQ^3@=frP^f5ibdUo1I_%MMuUkjI`EzUf5Db4@VeP5#8 zw2Vg%>^k$rt%h{lK*Hg#bz3j&Je~*iC(?jv8IQ}H-ueHWX(8OXPb&)?2Ol53dPmZ5 z`%e?AflHrt8eXS??!H6>=&;IZa=3})CK>q@_L0Epk)hG)j|J%NOH?<0rR?v2yLz9f za+&VpxKK7q|5wOLE0mT9C06vM5{38W{)cl}dr2QS@tfI+!%LkbL!)Ci6`@tm*MIoX z-YU1#i&QpB%M}|7Wh0b8C>vYmi(pzSgc3+4NM+{8+DrJ{0jB3K}zvcy7bIY0d-WhLbR%%-Oa`)iqAxQtMODql5I^Y7z! zdhoh@NF|t_hJ0HA7Z7{~!@ss%60m@3s`OABMCSI|Q$uJG*eegY+B96a?r zuZ+Hkza+>rM}ERo@)9|b#g=&hY?((Yfh}!vB8OCxmHim3+7NN306PX=jyCS_pbW2x;?w^b30cs97Ch@89|< z^?SLyem#}`h~@OL1$g;709TkcujS|T_%XT~dns{wX|8D_m6_%JabBFM{OA*qhCRE4a*ABn?`@zvQ*GAyp)`o;{E^~#h z<{ko`GIAnIq^lNLFq>5s^=Pe8S|MZ}r8Tiljihr60K_AIYfxGvq>U|Yj=XUYkK02y z6e$|gd?rO{jnmiNmk5jujm{SVoI!fymFxUxCr*%vZRYsc>llW?1C6~m_12uo@Y3mD zv!ngnj3?hEnVuoJIK$TFM>#ujf<#j%8)KV!@zgK*a_iSPdGRQz^c)qTD*qIdEx_?2 zfE8qG#200Md~S@N9okJS8fPh+=ET`Q6})%(q1DRLqVcWrHXzolqi~sPy($L`GV2d(k3smMP+NPv89cWc5!T3C*sCMj>E+C5c{YIYn-O# zQCi`2IB^)u-sCVGNF^|29<3FY=_x_fn1&UbaXW+bn;zB|&-uf4O-1+7IW2FqGEjUV7Itype == GDK_KEY_RELEASE && event->keyval == GDK_w && modifier_state_equals (event->state, PrimaryModifier)) { - if (current_window) { - current_window->hide (); - current_window = 0; + /* Special keys that we want to handle in + any dialog, no matter whether it uses + the regular set of accelerators or not + */ + + if (event->type == GDK_KEY_RELEASE && modifier_state_equals (event->state, PrimaryModifier)) { + switch (event->keyval) { + case GDK_w: + if (current_window) { + current_window->hide (); + current_window = 0; + ret = true; + } + break; } } diff --git a/gtk2_ardour/plugin_ui.cc b/gtk2_ardour/plugin_ui.cc index 4ac6ab8c79..63a2bff864 100644 --- a/gtk2_ardour/plugin_ui.cc +++ b/gtk2_ardour/plugin_ui.cc @@ -342,6 +342,7 @@ PlugUIBase::PlugUIBase (boost::shared_ptr pi) bypass_button.set_name ("PluginBypassButton"); bypass_button.signal_toggled().connect (mem_fun(*this, &PlugUIBase::bypass_toggled)); + focus_button.add_events (Gdk::ENTER_NOTIFY_MASK|Gdk::LEAVE_NOTIFY_MASK); focus_button.signal_button_release_event().connect (mem_fun(*this, &PlugUIBase::focus_toggled)); focus_button.add_events (Gdk::ENTER_NOTIFY_MASK|Gdk::LEAVE_NOTIFY_MASK); @@ -352,14 +353,15 @@ PlugUIBase::PlugUIBase (boost::shared_ptr pi) focus_in_image = new Image (get_icon (X_("computer_keyboard_active"))); focus_button.add (*focus_out_image); + ARDOUR_UI::instance()->set_tip (&focus_button, _("Click to focus all keyboard events on this plugin window"), ""); + ARDOUR_UI::instance()->set_tip (&bypass_button, _("Click to enable/disable this plugin"), ""); } void PlugUIBase::redirect_active_changed (Redirect* r, void* src) { ENSURE_GUI_THREAD(bind (mem_fun(*this, &PlugUIBase::redirect_active_changed), r, src)); - bypass_button.set_active (!r->active()); } void diff --git a/gtk2_ardour/plugin_ui.h b/gtk2_ardour/plugin_ui.h index 2bf55b2e0d..c308a54095 100644 --- a/gtk2_ardour/plugin_ui.h +++ b/gtk2_ardour/plugin_ui.h @@ -93,8 +93,8 @@ class PlugUIBase : public virtual sigc::trackable void setting_selected(); void save_plugin_setting (void); - void bypass_toggled(); bool focus_toggled(GdkEventButton*); + void bypass_toggled(); void redirect_active_changed (ARDOUR::Redirect* r, void* src); }; @@ -194,8 +194,6 @@ class GenericPluginUI : public PlugUIBase, public Gtk::VBox void control_port_toggled (ControlUI* cui); void control_combo_changed (ControlUI* cui); - void redirect_active_changed (ARDOUR::Redirect*, void*); - void astate_clicked (ControlUI*, uint32_t parameter); void automation_state_changed (ControlUI*); void set_automation_state (ARDOUR::AutoState state, ControlUI* cui); diff --git a/gtk2_ardour/tempo_lines.cc b/gtk2_ardour/tempo_lines.cc index 716dcdb139..e8bd034a9b 100644 --- a/gtk2_ardour/tempo_lines.cc +++ b/gtk2_ardour/tempo_lines.cc @@ -77,7 +77,7 @@ TempoLines::draw (ARDOUR::TempoMap::BBTPointList& points, double frames_per_unit ArdourCanvas::SimpleLine *line = NULL; gdouble xpos; double who_cares; - double x1, x2, y1, y2, beat_density; + double x1, x2, y1, beat_density; uint32_t beats = 0; uint32_t bars = 0;