Fix editor sizing issue introduced in 4dc65e66
[ardour.git] / gtk2_ardour / au_pluginui.h
index bc7d9a521b040b60a21cc973a0868cedc252bb36..eafe82207824e974e677cdcb5d19932e2352061d 100644 (file)
@@ -14,7 +14,6 @@
     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., 675 Mass Ave, Cambridge, MA 02139, USA.
-
 */
 
 #ifndef __gtk2_ardour_auplugin_ui_h__
@@ -23,6 +22,8 @@
 #include <vector>
 #include <string>
 
+#include <stdint.h>
+
 #include <AppKit/AppKit.h>
 #include <Carbon/Carbon.h>
 #include <AudioUnit/AudioUnitCarbonView.h>
@@ -60,7 +61,7 @@ class AUPluginUI;
 @interface NotificationObject : NSObject {
        @private
                AUPluginUI* plugin_ui;
-               NSWindow* cocoa_parent;
+               NSWindow* cocoa_parent;
                NSWindow* top_level_parent;
 }
 @end
@@ -73,7 +74,7 @@ class AUPluginUI;
 
 class AUPluginUI : public PlugUIBase, public Gtk::VBox
 {
-  public:
+public:
        AUPluginUI (boost::shared_ptr<ARDOUR::PluginInsert>);
        ~AUPluginUI ();
 
@@ -85,7 +86,7 @@ class AUPluginUI : public PlugUIBase, public Gtk::VBox
        void activate ();
        void deactivate ();
 
-        bool non_gtk_gui() const { return true; }
+       bool non_gtk_gui() const { return true; }
 
        void lower_box_realized ();
        bool lower_box_visibility_notify (GdkEventVisibility*);
@@ -94,7 +95,6 @@ class AUPluginUI : public PlugUIBase, public Gtk::VBox
        void lower_box_unmap ();
        void lower_box_size_request (GtkRequisition*);
        void lower_box_size_allocate (Gtk::Allocation&);
-       gboolean lower_box_expose (GdkEventExpose*);
 
        void cocoa_view_resized ();
        void on_realize ();
@@ -109,7 +109,7 @@ class AUPluginUI : public PlugUIBase, public Gtk::VBox
        void start_live_resize ();
        void end_live_resize ();
 
-  private:
+private:
        WindowRef wr;
        boost::shared_ptr<ARDOUR::AUPlugin> au;
        int prefheight;
@@ -124,20 +124,15 @@ class AUPluginUI : public PlugUIBase, public Gtk::VBox
 
        static std::vector<std::string> automation_mode_strings;
 
-       bool mapped;
        bool resizable;
-       int  min_width;
-       int  min_height;
        int  req_width;
        int  req_height;
-       int  alo_width;
-       int  alo_height;
 
        /* Cocoa */
 
        NSWindow*           cocoa_window;
        NSView*             au_view;
-        NSRect              last_au_frame;
+       NSRect              last_au_frame;
        bool                in_live_resize;
        uint32_t            plugin_requested_resize;
 
@@ -167,6 +162,21 @@ class AUPluginUI : public PlugUIBase, public Gtk::VBox
        void update_view_size ();
 
        bool plugin_class_valid (Class pluginClass);
+
+       friend void au_cf_timer_callback (CFRunLoopTimerRef timer, void* info);
+       static CFRunLoopTimerRef   cf_timer;
+       static void cf_timer_callback ();
+       static int64_t last_timer;
+       static bool timer_needed;
+       static uint64_t timer_callbacks;
+       static uint64_t timer_out_of_range;
+
+       static bool timer_callback ();
+       static sigc::connection timer_connection;
+
+public:
+       static void start_cf_timer ();
+       static void stop_cf_timer ();
 };
 
 #endif /* __gtk2_ardour_auplugin_ui_h__  */