-static GtkNotebook*
-tab_window_root_drop (GtkNotebook* src,
- GtkWidget* w,
- gint x,
- gint y,
- gpointer user_data)
-{
- return ARDOUR_UI::instance()->tab_window_root_drop (src, w, x, y, user_data);
-}
-
-int
-ARDOUR_UI::setup_windows ()
-{
- if (create_editor ()) {
- error << _("UI: cannot setup editor") << endmsg;
- return -1;
- }
-
- if (create_mixer ()) {
- error << _("UI: cannot setup mixer") << endmsg;
- return -1;
- }
-
- if (create_meterbridge ()) {
- error << _("UI: cannot setup meterbridge") << endmsg;
- return -1;
- }
-
- /* all other dialogs are created conditionally */
-
- we_have_dependents ();
-
-#ifdef TOP_MENUBAR
- HBox* status_bar_packer = manage (new HBox);
- EventBox* status_bar_event_box = manage (new EventBox);
-
- status_bar_event_box->add (status_bar_label);
- status_bar_event_box->add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK);
- status_bar_label.set_size_request (300, -1);
- status_bar_packer->pack_start (*status_bar_event_box, true, true, 6);
-
- status_bar_label.show ();
- status_bar_event_box->show ();
- status_bar_packer->show ();
-
- status_bar_event_box->signal_button_press_event().connect (mem_fun (*this, &ARDOUR_UI::status_bar_button_press));
-
- editor->get_status_bar_packer().pack_start (*status_bar_packer, true, true);
- editor->get_status_bar_packer().pack_start (menu_bar_base, false, false, 2);
-#else
- top_packer.pack_start (menu_bar_base, false, false);
-#endif
-
- main_vpacker.pack_start (top_packer, false, false);
-
- /* now add the transport frame to the top of main window */
-
- main_vpacker.pack_start (transport_frame, false, false);
- main_vpacker.pack_start (_tabs, true, true);
-
-#ifdef TOP_MENUBAR
- main_vpacker.pack_start (status_bar_hpacker, false, false);
-#endif
-
- setup_transport();
- build_menu_bar ();
- setup_tooltips ();
-
- /* pack the main vpacker into the main window and show everything
- */
-
- _main_window.add (main_vpacker);
- transport_frame.show_all ();
- _main_window.show_all ();
-
- setup_toplevel_window (_main_window, "", this);
-
- rc_option_editor = new RCOptionEditor;
- rc_option_editor->add_to_notebook (_tabs, _("Preferences"));
- rc_option_editor->contents().show_all ();
-
- _tabs.signal_switch_page().connect (sigc::mem_fun (*this, &ARDOUR_UI::tabs_switch));
- _tabs.signal_page_removed().connect (sigc::mem_fun (*this, &ARDOUR_UI::tabs_page_removed));
- _tabs.signal_page_added().connect (sigc::mem_fun (*this, &ARDOUR_UI::tabs_page_added));
-
- /* It would be nice if Gtkmm had wrapped this rather than just
- * deprecating the old set_window_creation_hook() method, but oh well...
- */
- g_signal_connect (_tabs.gobj(), "create-window", (GCallback) ::tab_window_root_drop, this);
-
- return 0;
-}
-
-void
-ARDOUR_UI::tabs_page_removed (Gtk::Widget*, guint)
-{
- if (_tabs.get_n_pages() == 1) {
- _tabs.set_show_tabs (false);
- } else {
- _tabs.set_show_tabs (true);
- }
-}
-
-void
-ARDOUR_UI::tabs_page_added (Gtk::Widget*, guint)
-{
- if (_tabs.get_n_pages() == 1) {
- _tabs.set_show_tabs (false);
- } else {
- _tabs.set_show_tabs (true);
- }
-}
-
-void
-ARDOUR_UI::tabs_switch (GtkNotebookPage*, guint page_number)
-{
- if (page_number == 2) {
- if (!rc_option_editor) {
- rc_option_editor = new RCOptionEditor;
- rc_option_editor_placeholder.pack_start (*rc_option_editor, true, true);
- rc_option_editor_placeholder.show_all ();
- }
- }
-}
-