--- gigedit/trunk/src/gigedit/mainwindow.h 2015/06/12 17:57:52 2773 +++ gigedit/trunk/src/gigedit/mainwindow.h 2016/05/18 10:10:25 2918 @@ -1,5 +1,5 @@ /* -*- c++ -*- - * Copyright (C) 2006 - 2015 Andreas Persson + * Copyright (C) 2006 - 2016 Andreas Persson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -22,6 +22,7 @@ #include +#include #include #include #include @@ -46,15 +47,23 @@ #ifndef OLD_THREADS #include #endif +#include "ManagedWindow.h" class MainWindow; -class PropDialog : public Gtk::Window, +class PropDialog : public ManagedWindow, public PropEditor { public: PropDialog(); void set_info(DLS::Info* info); void set_file(gig::File* file); + + // implementation for abstract methods of interface class "ManagedWindow" + virtual Settings::Property* windowSettingX() { return &Settings::singleton()->filePropsWindowX; } + virtual Settings::Property* windowSettingY() { return &Settings::singleton()->filePropsWindowY; } + virtual Settings::Property* windowSettingWidth() { return &Settings::singleton()->filePropsWindowW; } + virtual Settings::Property* windowSettingHeight() { return &Settings::singleton()->filePropsWindowH; } + protected: ChoiceEntry eFileFormat; StringEntry eName; @@ -83,7 +92,7 @@ void onFileFormatChanged(); }; -class InstrumentProps : public Gtk::Window, +class InstrumentProps : public ManagedWindow, public PropEditor { public: InstrumentProps(); @@ -93,6 +102,13 @@ sigc::signal& signal_name_changed() { return sig_name_changed; } + + // implementation for abstract methods of interface class "ManagedWindow" + virtual Settings::Property* windowSettingX() { return &Settings::singleton()->instrPropsWindowX; } + virtual Settings::Property* windowSettingY() { return &Settings::singleton()->instrPropsWindowY; } + virtual Settings::Property* windowSettingWidth() { return &Settings::singleton()->instrPropsWindowW; } + virtual Settings::Property* windowSettingHeight() { return &Settings::singleton()->instrPropsWindowH; } + protected: void set_Name(const gig::String& name); void set_IsDrum(bool value); @@ -172,7 +188,7 @@ float progress; }; -class MainWindow : public Gtk::Window { +class MainWindow : public ManagedWindow { public: MainWindow(); virtual ~MainWindow(); @@ -198,6 +214,15 @@ sigc::signal& signal_switch_sampler_instrument(); + sigc::signal signal_script_to_be_changed; + sigc::signal signal_script_changed; + + // implementation for abstract methods of interface class "ManagedWindow" + virtual Settings::Property* windowSettingX() { return &Settings::singleton()->mainWindowX; } + virtual Settings::Property* windowSettingY() { return &Settings::singleton()->mainWindowY; } + virtual Settings::Property* windowSettingWidth() { return &Settings::singleton()->mainWindowW; } + virtual Settings::Property* windowSettingHeight() { return &Settings::singleton()->mainWindowH; } + protected: Glib::RefPtr actionGroup; Glib::RefPtr uiManager; @@ -358,6 +383,7 @@ void show_midi_rules(); void show_script_slots(); void on_action_view_status_bar(); + void on_auto_restore_win_dim(); void on_action_refresh_all(); void on_action_warn_user_on_extensions(); void on_action_sync_sampler_instrument_selection();