62 |
#include "gfx/builtinpix.h" |
#include "gfx/builtinpix.h" |
63 |
#include "MacroEditor.h" |
#include "MacroEditor.h" |
64 |
#include "MacrosSetup.h" |
#include "MacrosSetup.h" |
65 |
|
#if defined(__APPLE__) |
66 |
|
# include "MacHelper.h" |
67 |
|
#endif |
68 |
|
|
69 |
|
static const Gdk::ModifierType primaryModifierKey = |
70 |
|
#if defined(__APPLE__) |
71 |
|
Gdk::META_MASK; // Cmd key on Mac |
72 |
|
#else |
73 |
|
Gdk::CONTROL_MASK; // Ctrl key on all other OSs |
74 |
|
#endif |
75 |
|
|
76 |
MainWindow::MainWindow() : |
MainWindow::MainWindow() : |
77 |
m_DimRegionChooser(*this), |
m_DimRegionChooser(*this), |
88 |
loadBuiltInPix(); |
loadBuiltInPix(); |
89 |
|
|
90 |
// set_border_width(5); |
// set_border_width(5); |
91 |
// set_default_size(400, 200); |
|
92 |
|
if (!Settings::singleton()->autoRestoreWindowDimension) { |
93 |
|
set_default_size(800, 600); |
94 |
|
set_position(Gtk::WIN_POS_CENTER); |
95 |
|
} |
96 |
|
|
97 |
add(m_VBox); |
add(m_VBox); |
98 |
|
|
347 |
sigc::mem_fun(*this, &MainWindow::on_action_duplicate_instrument) |
sigc::mem_fun(*this, &MainWindow::on_action_duplicate_instrument) |
348 |
); |
); |
349 |
actionGroup->add( |
actionGroup->add( |
350 |
|
Gtk::Action::create("CombInstruments", _("_Combine Instruments ...")), |
351 |
|
Gtk::AccelKey(GDK_KEY_j, primaryModifierKey), |
352 |
|
sigc::mem_fun(*this, &MainWindow::on_action_combine_instruments) |
353 |
|
); |
354 |
|
actionGroup->add( |
355 |
Gtk::Action::create("RemoveInstrument", Gtk::Stock::REMOVE), |
Gtk::Action::create("RemoveInstrument", Gtk::Stock::REMOVE), |
356 |
sigc::mem_fun(*this, &MainWindow::on_action_remove_instrument) |
sigc::mem_fun(*this, &MainWindow::on_action_remove_instrument) |
357 |
); |
); |
510 |
" <menuitem action='ScriptSlots'/>" |
" <menuitem action='ScriptSlots'/>" |
511 |
" <menuitem action='AddInstrument'/>" |
" <menuitem action='AddInstrument'/>" |
512 |
" <menuitem action='DupInstrument'/>" |
" <menuitem action='DupInstrument'/>" |
513 |
|
" <menuitem action='CombInstruments'/>" |
514 |
" <separator/>" |
" <separator/>" |
515 |
" <menuitem action='RemoveInstrument'/>" |
" <menuitem action='RemoveInstrument'/>" |
516 |
" </menu>" |
" </menu>" |
547 |
" <menuitem action='ScriptSlots'/>" |
" <menuitem action='ScriptSlots'/>" |
548 |
" <menuitem action='AddInstrument'/>" |
" <menuitem action='AddInstrument'/>" |
549 |
" <menuitem action='DupInstrument'/>" |
" <menuitem action='DupInstrument'/>" |
550 |
|
" <menuitem action='CombInstruments'/>" |
551 |
" <separator/>" |
" <separator/>" |
552 |
" <menuitem action='RemoveInstrument'/>" |
" <menuitem action='RemoveInstrument'/>" |
553 |
" </popup>" |
" </popup>" |
865 |
uiManager->get_widget("/MenuBar/MenuMacro") |
uiManager->get_widget("/MenuBar/MenuMacro") |
866 |
)->get_submenu(); |
)->get_submenu(); |
867 |
|
|
|
const Gdk::ModifierType primaryModifierKey = |
|
|
#if defined(__APPLE__) |
|
|
Gdk::META_MASK; // Cmd key on Mac |
|
|
#else |
|
|
Gdk::CONTROL_MASK; // Ctrl key on all other OSs |
|
|
#endif |
|
|
|
|
868 |
const Gdk::ModifierType noModifier = (Gdk::ModifierType)0; |
const Gdk::ModifierType noModifier = (Gdk::ModifierType)0; |
869 |
Gtk::AccelMap::add_entry("<Macros>/macro_0", GDK_KEY_F1, noModifier); |
Gtk::AccelMap::add_entry("<Macros>/macro_0", GDK_KEY_F1, noModifier); |
870 |
Gtk::AccelMap::add_entry("<Macros>/macro_1", GDK_KEY_F2, noModifier); |
Gtk::AccelMap::add_entry("<Macros>/macro_1", GDK_KEY_F2, noModifier); |
885 |
|
|
886 |
updateMacroMenu(); |
updateMacroMenu(); |
887 |
} |
} |
888 |
|
|
889 |
|
Glib::signal_idle().connect_once( |
890 |
|
sigc::mem_fun(*this, &MainWindow::bringToFront), |
891 |
|
200 |
892 |
|
); |
893 |
} |
} |
894 |
|
|
895 |
MainWindow::~MainWindow() |
MainWindow::~MainWindow() |
896 |
{ |
{ |
897 |
} |
} |
898 |
|
|
899 |
|
void MainWindow::bringToFront() { |
900 |
|
#if defined(__APPLE__) |
901 |
|
macRaiseAppWindow(); |
902 |
|
#endif |
903 |
|
raise(); |
904 |
|
present(); |
905 |
|
} |
906 |
|
|
907 |
void MainWindow::updateMacroMenu() { |
void MainWindow::updateMacroMenu() { |
908 |
Gtk::Menu* menuMacro = dynamic_cast<Gtk::MenuItem*>( |
Gtk::Menu* menuMacro = dynamic_cast<Gtk::MenuItem*>( |
909 |
uiManager->get_widget("/MenuBar/MenuMacro") |
uiManager->get_widget("/MenuBar/MenuMacro") |
1843 |
dialog.set_comments(sComment.c_str()); |
dialog.set_comments(sComment.c_str()); |
1844 |
dialog.set_website("http://www.linuxsampler.org"); |
dialog.set_website("http://www.linuxsampler.org"); |
1845 |
dialog.set_website_label("http://www.linuxsampler.org"); |
dialog.set_website_label("http://www.linuxsampler.org"); |
1846 |
|
dialog.set_position(Gtk::WIN_POS_CENTER); |
1847 |
dialog.run(); |
dialog.run(); |
1848 |
} |
} |
1849 |
|
|
1869 |
table(2, 1), |
table(2, 1), |
1870 |
m_file(NULL) |
m_file(NULL) |
1871 |
{ |
{ |
1872 |
|
if (!Settings::singleton()->autoRestoreWindowDimension) { |
1873 |
|
set_default_size(470, 390); |
1874 |
|
set_position(Gtk::WIN_POS_MOUSE); |
1875 |
|
} |
1876 |
|
|
1877 |
set_title(_("File Properties")); |
set_title(_("File Properties")); |
1878 |
eName.set_width_chars(50); |
eName.set_width_chars(50); |
1879 |
|
|
2008 |
eDimensionKeyRangeLow(_("Keyswitching range low")), |
eDimensionKeyRangeLow(_("Keyswitching range low")), |
2009 |
eDimensionKeyRangeHigh(_("Keyswitching range high")) |
eDimensionKeyRangeHigh(_("Keyswitching range high")) |
2010 |
{ |
{ |
2011 |
|
if (!Settings::singleton()->autoRestoreWindowDimension) { |
2012 |
|
//set_default_size(470, 390); |
2013 |
|
set_position(Gtk::WIN_POS_MOUSE); |
2014 |
|
} |
2015 |
|
|
2016 |
set_title(_("Instrument Properties")); |
set_title(_("Instrument Properties")); |
2017 |
|
|
2018 |
eDimensionKeyRangeLow.set_tip( |
eDimensionKeyRangeLow.set_tip( |
2623 |
add_instrument_to_menu(name); |
add_instrument_to_menu(name); |
2624 |
|
|
2625 |
m_TreeView.get_selection()->select(iterInstr); |
m_TreeView.get_selection()->select(iterInstr); |
2626 |
|
m_TreeView.scroll_to_row(Gtk::TreePath(iterInstr)); |
2627 |
|
|
2628 |
file_changed(); |
file_changed(); |
2629 |
} |
} |
3596 |
|
|
3597 |
void MainWindow::on_action_combine_instruments() { |
void MainWindow::on_action_combine_instruments() { |
3598 |
CombineInstrumentsDialog* d = new CombineInstrumentsDialog(*this, file); |
CombineInstrumentsDialog* d = new CombineInstrumentsDialog(*this, file); |
3599 |
|
|
3600 |
|
// take over selection from instruments list view for the combine dialog's |
3601 |
|
// list view as pre-selection |
3602 |
|
std::set<int> indeces; |
3603 |
|
{ |
3604 |
|
Glib::RefPtr<Gtk::TreeSelection> sel = m_TreeView.get_selection(); |
3605 |
|
std::vector<Gtk::TreeModel::Path> rows = sel->get_selected_rows(); |
3606 |
|
for (int r = 0; r < rows.size(); ++r) { |
3607 |
|
Gtk::TreeModel::iterator it = m_refTreeModel->get_iter(rows[r]); |
3608 |
|
if (it) { |
3609 |
|
Gtk::TreeModel::Row row = *it; |
3610 |
|
int index = row[m_Columns.m_col_nr]; |
3611 |
|
indeces.insert(index); |
3612 |
|
} |
3613 |
|
} |
3614 |
|
} |
3615 |
|
d->setSelectedInstruments(indeces); |
3616 |
|
|
3617 |
d->show_all(); |
d->show_all(); |
|
d->resize(500, 400); |
|
3618 |
d->run(); |
d->run(); |
3619 |
if (d->fileWasChanged()) { |
if (d->fileWasChanged()) { |
3620 |
// update GUI with new instrument just created |
// update GUI with new instrument just created |