X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fplugin_ui.h;h=cf86f3e1bb4814e7872a98a216cc2ce587026900;hb=3f56abe099cd6978fbf2e1778debd74e771c95cd;hp=a966ed3024cd793af869fd2c329be239678dd1cc;hpb=0af622521ba3cc35cd82f8da10d4c32830ee1305;p=ardour.git diff --git a/gtk2_ardour/plugin_ui.h b/gtk2_ardour/plugin_ui.h index a966ed3024..cf86f3e1bb 100644 --- a/gtk2_ardour/plugin_ui.h +++ b/gtk2_ardour/plugin_ui.h @@ -50,6 +50,7 @@ #include "automation_controller.h" #include "ardour_button.h" +#include "ardour_window.h" namespace ARDOUR { class PluginInsert; @@ -85,6 +86,7 @@ class PlugUIBase : public virtual sigc::trackable, public PBD::ScopedConnectionL virtual gint get_preferred_height () = 0; virtual gint get_preferred_width () = 0; + virtual bool resizable () { return true; } virtual bool start_updating(GdkEventAny*) = 0; virtual bool stop_updating(GdkEventAny*) = 0; @@ -124,6 +126,8 @@ class PlugUIBase : public virtual sigc::trackable, public PBD::ScopedConnectionL ArdourButton bypass_button; /** a button to acquire keyboard focus */ Gtk::EventBox focus_button; + /** an expander containing the plugin description */ + Gtk::Expander description_expander; /** an expander containing the plugin analysis graph */ Gtk::Expander plugin_analysis_expander; /** a label indicating the plugin latency */ @@ -149,6 +153,7 @@ class PlugUIBase : public virtual sigc::trackable, public PBD::ScopedConnectionL void delete_plugin_setting (); bool focus_toggled(GdkEventButton*); bool bypass_button_release(GdkEventButton*); + void toggle_description (); void toggle_plugin_analysis (); void processor_active_changed (boost::weak_ptr p); void plugin_going_away (); @@ -274,11 +279,10 @@ class GenericPluginUI : public PlugUIBase, public Gtk::VBox bool integer_printer (char* buf, Gtk::Adjustment &, ControlUI *); }; -class PluginUIWindow : public Gtk::Window +class PluginUIWindow : public ArdourWindow { public: - PluginUIWindow (Gtk::Window*, - boost::shared_ptr insert, + PluginUIWindow (boost::shared_ptr insert, bool scrollable=false, bool editor=true); ~PluginUIWindow (); @@ -290,15 +294,10 @@ class PluginUIWindow : public Gtk::Window void set_title(const std::string& title); - bool on_enter_notify_event (GdkEventCrossing*); - bool on_leave_notify_event (GdkEventCrossing*); - bool on_focus_in_event (GdkEventFocus*); - bool on_focus_out_event (GdkEventFocus*); bool on_key_press_event (GdkEventKey*); bool on_key_release_event (GdkEventKey*); void on_show (); void on_hide (); - void on_map (); private: std::string _title; @@ -308,6 +307,11 @@ class PluginUIWindow : public Gtk::Window Gtk::VBox vbox; bool was_visible; bool _keyboard_focused; +#ifdef AUDIOUNIT_SUPPORT + int pre_deactivate_x; + int pre_deactivate_y; +#endif + void keyboard_focused (bool yn); void app_activated (bool);