X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fardour_ui_dependents.cc;h=fb5757a8092043646c70a259c62577dce115f64c;hb=6fbaa5403bcefba3186fb5490017e110210122e3;hp=cd6a5c5a1e19b565a65083f0498c0c6ca3c4233b;hpb=c74f6577e2466d24a74da3ba6a48e2a1957769c8;p=ardour.git diff --git a/gtk2_ardour/ardour_ui_dependents.cc b/gtk2_ardour/ardour_ui_dependents.cc index cd6a5c5a1e..fb5757a809 100644 --- a/gtk2_ardour/ardour_ui_dependents.cc +++ b/gtk2_ardour/ardour_ui_dependents.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2000 Paul Davis + Copyright (C) 2000 Paul Davis This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -15,7 +15,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id$ */ /* this file exists solely to break compilation dependencies that @@ -23,68 +22,112 @@ */ #include -#include + +#include "pbd/error.h" + +#include "ardour/session.h" + #include "ardour_ui.h" #include "public_editor.h" #include "mixer_ui.h" #include "keyboard.h" +#include "splash.h" #include "route_params_ui.h" +#include "opts.h" #include "i18n.h" -using namespace sigc; - +using namespace Gtk; +using namespace PBD; namespace ARDOUR { class Session; class Route; } +using namespace ARDOUR; + void ARDOUR_UI::shutdown () { - if (session) { - delete session; - session = 0; - } - + ui_config->save_state(); } void ARDOUR_UI::we_have_dependents () { - setup_keybindings (); + install_actions (); + ProcessorBox::register_actions (); + keyboard->setup_keybindings (); + editor->setup_tooltips (); + editor->UpdateAllTransportClocks.connect (sigc::mem_fun (*this, &ARDOUR_UI::update_transport_clocks)); } void -ARDOUR_UI::setup_keybindings () +ARDOUR_UI::connect_dependents_to_session (ARDOUR::Session *s) { - // GTK2FIX - editor->register_actions (); + BootMessage (_("Setup Editor")); + editor->set_session (s); + BootMessage (_("Setup Mixer")); + mixer->set_session (s); + + /* its safe to do this now */ + + BootMessage (_("Reload Session History")); + s->restore_history (""); } -void -ARDOUR_UI::connect_dependents_to_session (ARDOUR::Session *s) +static bool +_hide_splash (gpointer arg) { - editor->connect_to_session (s); - mixer->connect_to_session (s); + ((ARDOUR_UI*)arg)->hide_splash(); + return false; } void ARDOUR_UI::goto_editor_window () { + if (splash && splash->is_visible()) { + // in 2 seconds, hide the splash screen + Glib::signal_timeout().connect (sigc::bind (sigc::ptr_fun (_hide_splash), this), 2000); + } + editor->show_window (); - editor->present(); + editor->present (); + _mixer_on_top = false; + flush_pending (); } + void ARDOUR_UI::goto_mixer_window () { mixer->show_window (); - mixer->present(); + mixer->present (); + _mixer_on_top = true; + flush_pending (); } +void +ARDOUR_UI::toggle_editor_mixer_on_top () +{ + if (_mixer_on_top) { + goto_editor_window (); + } else { + goto_mixer_window (); + } +} + +/** The main editor window has been closed */ gint -ARDOUR_UI::exit_on_main_window_close (GdkEventAny *ev) +ARDOUR_UI::exit_on_main_window_close (GdkEventAny * /*ev*/) { +#ifdef TOP_MENUBAR + /* just hide the window, and return - the top menu stays up */ + editor->hide (); + return TRUE; +#else + /* time to get out of here */ finish(); return TRUE; +#endif } +