/[svn]/gigedit/trunk/src/gigedit/CombineInstrumentsDialog.h
ViewVC logotype

Annotation of /gigedit/trunk/src/gigedit/CombineInstrumentsDialog.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2894 - (hide annotations) (download) (as text)
Sat Apr 30 14:42:14 2016 UTC (8 years ago) by schoenebeck
File MIME type: text/x-c++hdr
File size: 2992 byte(s)
* Enabled auto save & restore of window size & position of all
  remaining windows.
* Bumped version (1.0.0.svn7).

1 schoenebeck 2548 /*
2 schoenebeck 2894 Copyright (c) 2014-2016 Christian Schoenebeck
3 schoenebeck 2548
4     This file is part of "gigedit" and released under the terms of the
5     GNU General Public License version 2.
6     */
7    
8     #ifndef GIGEDIT_COMBINEINSTRUMENTSDIALOG
9     #define GIGEDIT_COMBINEINSTRUMENTSDIALOG
10    
11     #include <gig.h>
12    
13     #include <gtkmm/buttonbox.h>
14     #include <gtkmm/window.h>
15     #include <gtkmm/dialog.h>
16     #include <gtkmm/treeview.h>
17     #include <gtkmm/liststore.h>
18 schoenebeck 2558 #include <gtkmm/table.h>
19     #include <gtkmm/comboboxtext.h>
20 schoenebeck 2616 #include <gtkmm/scrolledwindow.h>
21 schoenebeck 2548
22     #include "wrapLabel.hh"
23 schoenebeck 2894 #include "ManagedWindow.h"
24 schoenebeck 2548
25     /**
26     * @brief Modal dialog which allows to merge instruments.
27     *
28     * This dialog shows a list of all instruments of the currently open .gig file
29     * in gigedit and allows the user to shift select a set of instruments to be
30     * combined.
31     *
32     * If the user successfully combined instruments in this dialog, then
33     * newCombinedInstrument() will return a pointer to that new instrument.
34     */
35 schoenebeck 2894 class CombineInstrumentsDialog : public ManagedDialog {
36 schoenebeck 2548 public:
37     CombineInstrumentsDialog(Gtk::Window& parent, gig::File* gig);
38     bool fileWasChanged() const;
39     gig::Instrument* newCombinedInstrument() const;
40 schoenebeck 2894
41     // implementation for abstract methods of interface class "ManagedDialog"
42     virtual Settings::Property<int>* windowSettingX() { return &Settings::singleton()->combineInstrumentsWindowX; }
43     virtual Settings::Property<int>* windowSettingY() { return &Settings::singleton()->combineInstrumentsWindowY; }
44     virtual Settings::Property<int>* windowSettingWidth() { return &Settings::singleton()->combineInstrumentsWindowW; }
45     virtual Settings::Property<int>* windowSettingHeight() { return &Settings::singleton()->combineInstrumentsWindowH; }
46    
47 schoenebeck 2548 protected:
48     gig::File* m_gig;
49     bool m_fileWasChanged;
50     gig::Instrument* m_newCombinedInstrument;
51    
52     Gtk::HButtonBox m_buttonBox;
53 schoenebeck 2616 Gtk::ScrolledWindow m_scrolledWindow;
54 schoenebeck 2548 Gtk::TreeView m_treeView;
55     Gtk::Button m_cancelButton;
56     Gtk::Button m_OKButton;
57     #if GTKMM_MAJOR_VERSION < 3
58     view::WrapLabel m_descriptionLabel;
59     #else
60     Gtk::Label m_descriptionLabel;
61     #endif
62 schoenebeck 2558 Gtk::Table m_tableDimCombo;
63     Gtk::ComboBox m_comboDimType;
64     Gtk::Label m_labelDimType;
65 schoenebeck 2548
66 schoenebeck 2558 class ComboDimsModel : public Gtk::TreeModel::ColumnRecord {
67     public:
68     ComboDimsModel() {
69     add(m_type_id);
70     add(m_type_name);
71     }
72    
73     Gtk::TreeModelColumn<int> m_type_id;
74     Gtk::TreeModelColumn<Glib::ustring> m_type_name;
75     } m_comboDimsModel;
76    
77 schoenebeck 2548 class ListModel : public Gtk::TreeModel::ColumnRecord {
78     public:
79     ListModel() {
80     add(m_col_name);
81     add(m_col_instr);
82     }
83    
84     Gtk::TreeModelColumn<Glib::ustring> m_col_name;
85     Gtk::TreeModelColumn<gig::Instrument*> m_col_instr;
86     } m_columns;
87    
88     Glib::RefPtr<Gtk::ListStore> m_refTreeModel;
89    
90     void combineSelectedInstruments();
91     void onSelectionChanged();
92     };
93    
94     #endif // GIGEDIT_COMBINEINSTRUMENTSDIALOG

  ViewVC Help
Powered by ViewVC