--- gigedit/trunk/src/gigedit/mainwindow.h 2015/01/04 19:46:54 2691 +++ gigedit/trunk/src/gigedit/mainwindow.h 2016/05/03 14:08:34 2903 @@ -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; @@ -233,6 +258,8 @@ void on_sel_change(); void region_changed(); void dimreg_changed(); + void select_instrument(gig::Instrument* instrument); + bool select_dimension_region(gig::DimensionRegion* dimRgn); void select_sample(gig::Sample* sample); void on_loader_progress(); void on_loader_finished(); @@ -356,8 +383,10 @@ void show_midi_rules(); void show_script_slots(); void on_action_view_status_bar(); + void on_action_refresh_all(); void on_action_warn_user_on_extensions(); void on_action_sync_sampler_instrument_selection(); + void on_action_move_root_note_with_region_moved(); void on_action_help_about(); // sample right-click popup actions @@ -365,9 +394,11 @@ void on_action_sample_properties(); void on_action_add_group(); void on_action_add_sample(); + void on_action_replace_sample(); void on_action_replace_all_samples_in_all_groups(); void on_action_remove_sample(); - + void on_action_remove_unused_samples(); + // script right-click popup actions void on_script_treeview_button_release(GdkEventButton* button); void on_action_add_script_group(); @@ -409,6 +440,13 @@ bool check_if_savable(); void on_button_release(GdkEventButton* button); + void on_instruments_treeview_drag_begin(const Glib::RefPtr& context); + void on_instruments_treeview_drag_data_get(const Glib::RefPtr&, + Gtk::SelectionData& selection_data, guint, guint); + void on_instruments_treeview_drop_drag_data_received( + const Glib::RefPtr& context, int, int, + const Gtk::SelectionData& selection_data, guint, guint time + ); void on_scripts_treeview_drag_begin(const Glib::RefPtr& context); void on_scripts_treeview_drag_data_get(const Glib::RefPtr&, Gtk::SelectionData& selection_data, guint, guint); @@ -439,6 +477,8 @@ void on_sample_ref_count_incremented(gig::Sample* sample, int offset); void on_samples_to_be_removed(std::list samples); + void add_or_replace_sample(bool replace); + void __import_queued_samples(); void __clear(); void __refreshEntireGUI();