* Added CanvasSysEx class for displaying SysExes
[ardour.git] / gtk2_ardour / au_pluginui.mm
index ab14d4aafdb9ecdf1ee557902bb26cf56e94837c..a46021f66fd04cd952133b0f65ea18c61ef16a89 100644 (file)
@@ -1,3 +1,6 @@
+#undef  Marker
+#define Marker FuckYouAppleAndYourLackOfNameSpaces
+
 #include <pbd/error.h>
 #include <ardour/audio_unit.h>
 #include <ardour/insert.h>
 #import <AudioUnit/AUCocoaUIView.h>
 #import <CoreAudioKit/AUGenericView.h>
 
+#undef Marker
+
+#include "keyboard.h"
+#include "utils.h"
+#include "public_editor.h"
 #include "i18n.h"
 
 using namespace ARDOUR;
@@ -57,15 +65,27 @@ AUPluginUI::AUPluginUI (boost::shared_ptr<PluginInsert> 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 (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);
@@ -518,6 +538,8 @@ AUPluginUI::parent_cocoa_window ()
                return -1;
        }
 
+       [win setAutodisplay:YES]; // turn of GTK stuff for this window
+
        Gtk::Container* toplevel = get_toplevel();
 
        if (!toplevel || !toplevel->is_toplevel()) {
@@ -530,6 +552,7 @@ AUPluginUI::parent_cocoa_window ()
 
        NSView* view = gdk_quartz_window_get_nsview (low_box.get_window()->gobj());
        
+
        [view setFrame:packFrame];
        [view addSubview:packView]; 
 
@@ -614,14 +637,16 @@ create_au_gui (boost::shared_ptr<PluginInsert> plugin_insert, VBox** box)
 bool
 AUPluginUI::on_focus_in_event (GdkEventFocus* ev)
 {
-       cerr << "au plugin focus in\n";
+       //cerr << "au plugin focus in\n";
+       //Keyboard::magic_widget_grab_focus ();
        return false;
 }
 
 bool
 AUPluginUI::on_focus_out_event (GdkEventFocus* ev)
 {
-       cerr << "au plugin focus out\n";
+       //cerr << "au plugin focus out\n";
+       //Keyboard::magic_widget_drop_focus ();
        return false;
 }