#include "route_params_ui.h"
#include "sfdb_ui.h"
#include "theme_manager.h"
+#include "bundle_manager.h"
+#include "keyeditor.h"
#include "i18n.h"
{
session = s;
- session->HaltOnXrun.connect (mem_fun(*this, &ARDOUR_UI::halt_on_xrun_message));
+ session->Xrun.connect (mem_fun(*this, &ARDOUR_UI::xrun_handler));
session->RecordStateChanged.connect (mem_fun (*this, &ARDOUR_UI::record_state_changed));
/* sensitize menu bar options that are now valid */
/* there are never any selections on startup */
- ActionManager::set_sensitive (ActionManager::region_selection_sensitive_actions, false);
ActionManager::set_sensitive (ActionManager::time_selection_sensitive_actions, false);
ActionManager::set_sensitive (ActionManager::track_selection_sensitive_actions, false);
ActionManager::set_sensitive (ActionManager::line_selection_sensitive_actions, false);
point_zero_one_second_connection = Glib::signal_timeout().connect (mem_fun(*this, &ARDOUR_UI::every_point_zero_one_seconds), 40);
}
-bool
-ARDOUR_UI::unload_session ()
+int
+ARDOUR_UI::unload_session (bool hide_stuff)
{
if (session && session->dirty()) {
switch (ask_about_saving_session (_("close"))) {
case -1:
// cancel
- return false;
+ return 1;
case 1:
session->save_state ("");
break;
}
}
- editor->hide ();
+
+ if (hide_stuff) {
+ editor->hide ();
+ mixer->hide ();
+ theme_manager->hide ();
+ }
+
second_connection.disconnect ();
point_one_second_connection.disconnect ();
point_oh_five_second_connection.disconnect ();
option_editor->set_session (0);
}
- if (mixer) {
- mixer->hide_all ();
- }
-
delete session;
session = 0;
update_buffer_load ();
- return true;
+ return 0;
}
int
}
}
+void
+ARDOUR_UI::toggle_key_editor ()
+{
+ if (key_editor == 0) {
+ key_editor = new KeyEditor;
+ key_editor->signal_unmap().connect (sigc::bind (sigc::ptr_fun(&ActionManager::uncheck_toggleaction), X_("<Actions>/Common/ToggleKeyEditor")));
+ }
+
+ RefPtr<Action> act = ActionManager::get_action (X_("Common"), X_("ToggleKeyEditor"));
+ if (act) {
+ RefPtr<ToggleAction> tact = RefPtr<ToggleAction>::cast_dynamic(act);
+
+ if (tact->get_active()) {
+ key_editor->show_all ();
+ key_editor->present ();
+ } else {
+ key_editor->hide ();
+ }
+ }
+}
+
void
ARDOUR_UI::toggle_theme_manager ()
{
}
}
+void
+ARDOUR_UI::create_bundle_manager ()
+{
+ if (bundle_manager == 0) {
+ bundle_manager = new BundleManager (*session);
+ bundle_manager->signal_unmap().connect (sigc::bind (sigc::ptr_fun (&ActionManager::uncheck_toggleaction), X_("<Actions>/Common/ToggleBundleManager")));
+ }
+}
+
+void
+ARDOUR_UI::toggle_bundle_manager ()
+{
+ create_bundle_manager ();
+
+ RefPtr<Action> act = ActionManager::get_action (X_("Common"), X_("ToggleBundleManager"));
+ if (act) {
+ RefPtr<ToggleAction> tact = RefPtr<ToggleAction>::cast_dynamic (act);
+
+ if (tact->get_active()) {
+ bundle_manager->show_all ();
+ bundle_manager->present ();
+ } else {
+ bundle_manager->hide ();
+ }
+ }
+}
+
int
ARDOUR_UI::create_route_params ()
{
}
}
}
+
+bool
+ARDOUR_UI::main_window_state_event_handler (GdkEventWindowState* ev, bool window_was_editor)
+{
+ if (window_was_editor) {
+
+ if ((ev->changed_mask & GDK_WINDOW_STATE_FULLSCREEN) &&
+ (ev->new_window_state & GDK_WINDOW_STATE_FULLSCREEN)) {
+ float_big_clock (editor);
+ }
+
+ } else {
+
+ if ((ev->changed_mask & GDK_WINDOW_STATE_FULLSCREEN) &&
+ (ev->new_window_state & GDK_WINDOW_STATE_FULLSCREEN)) {
+ float_big_clock (mixer);
+ }
+ }
+
+ return false;
+}