59 |
return ss.str(); |
return ss.str(); |
60 |
} |
} |
61 |
|
|
62 |
|
Table::Table(int x, int y) : Gtk::Table(x, y), rowno(0) { } |
63 |
|
|
64 |
|
void Table::add(BoolEntry& boolentry) |
65 |
|
{ |
66 |
|
attach(boolentry.widget, 0, 2, rowno, rowno + 1, |
67 |
|
Gtk::FILL, Gtk::SHRINK); |
68 |
|
rowno++; |
69 |
|
} |
70 |
|
|
71 |
|
void Table::add(BoolEntryPlus6& boolentry) |
72 |
|
{ |
73 |
|
attach(boolentry.widget, 0, 2, rowno, rowno + 1, |
74 |
|
Gtk::FILL, Gtk::SHRINK); |
75 |
|
rowno++; |
76 |
|
} |
77 |
|
|
78 |
|
void Table::add(LabelWidget& prop) |
79 |
|
{ |
80 |
|
attach(prop.label, 1, 2, rowno, rowno + 1, |
81 |
|
Gtk::FILL, Gtk::SHRINK); |
82 |
|
attach(prop.widget, 2, 3, rowno, rowno + 1, |
83 |
|
Gtk::EXPAND | Gtk::FILL, Gtk::SHRINK); |
84 |
|
rowno++; |
85 |
|
} |
86 |
|
|
87 |
MainWindow::MainWindow() : |
MainWindow::MainWindow() : |
88 |
dimreg_label(_("Changes apply to:")), |
dimreg_label(_("Changes apply to:")), |
89 |
dimreg_all_regions(_("all regions")), |
dimreg_all_regions(_("all regions")), |
124 |
dimreg_stereo.set_active(); |
dimreg_stereo.set_active(); |
125 |
dimreg_hbox.add(dimreg_stereo); |
dimreg_hbox.add(dimreg_stereo); |
126 |
dimreg_vbox.add(dimreg_edit); |
dimreg_vbox.add(dimreg_edit); |
127 |
dimreg_vbox.add(dimreg_hbox); |
dimreg_vbox.pack_start(dimreg_hbox, Gtk::PACK_SHRINK); |
128 |
m_HPaned.add2(dimreg_vbox); |
m_HPaned.add2(dimreg_vbox); |
129 |
|
|
130 |
|
|
320 |
sigc::mem_fun(*this, &MainWindow::file_changed)); |
sigc::mem_fun(*this, &MainWindow::file_changed)); |
321 |
instrumentProps.signal_instrument_changed().connect( |
instrumentProps.signal_instrument_changed().connect( |
322 |
sigc::mem_fun(*this, &MainWindow::file_changed)); |
sigc::mem_fun(*this, &MainWindow::file_changed)); |
323 |
|
propDialog.signal_info_changed().connect( |
324 |
|
sigc::mem_fun(*this, &MainWindow::file_changed)); |
325 |
|
|
326 |
dimreg_edit.signal_dimreg_to_be_changed().connect( |
dimreg_edit.signal_dimreg_to_be_changed().connect( |
327 |
dimreg_to_be_changed_signal.make_slot()); |
dimreg_to_be_changed_signal.make_slot()); |
895 |
} |
} |
896 |
|
|
897 |
PropDialog::PropDialog() |
PropDialog::PropDialog() |
898 |
: table(2,1) |
: table(2,1), |
899 |
|
eName("Name"), |
900 |
|
eCreationDate("Creation date"), |
901 |
|
eComments("Comments"), |
902 |
|
eProduct("Product"), |
903 |
|
eCopyright("Copyright"), |
904 |
|
eArtists("Artists"), |
905 |
|
eGenre("Genre"), |
906 |
|
eKeywords("Keywords"), |
907 |
|
eEngineer("Engineer"), |
908 |
|
eTechnician("Technician"), |
909 |
|
eSoftware("Software"), |
910 |
|
eMedium("Medium"), |
911 |
|
eSource("Source"), |
912 |
|
eSourceForm("Source form"), |
913 |
|
eCommissioned("Commissioned"), |
914 |
|
eSubject("Subject"), |
915 |
|
quitButton(Gtk::Stock::CLOSE), |
916 |
|
update_model(0) |
917 |
{ |
{ |
918 |
|
set_title("File Properties"); |
919 |
|
eName.set_width_chars(50); |
920 |
|
|
921 |
|
connect(eName, &DLS::Info::Name); |
922 |
|
connect(eCreationDate, &DLS::Info::CreationDate); |
923 |
|
connect(eComments, &DLS::Info::Comments); |
924 |
|
connect(eProduct, &DLS::Info::Product); |
925 |
|
connect(eCopyright, &DLS::Info::Copyright); |
926 |
|
connect(eArtists, &DLS::Info::Artists); |
927 |
|
connect(eGenre, &DLS::Info::Genre); |
928 |
|
connect(eKeywords, &DLS::Info::Keywords); |
929 |
|
connect(eEngineer, &DLS::Info::Engineer); |
930 |
|
connect(eTechnician, &DLS::Info::Technician); |
931 |
|
connect(eSoftware, &DLS::Info::Software); |
932 |
|
connect(eMedium, &DLS::Info::Medium); |
933 |
|
connect(eSource, &DLS::Info::Source); |
934 |
|
connect(eSourceForm, &DLS::Info::SourceForm); |
935 |
|
connect(eCommissioned, &DLS::Info::Commissioned); |
936 |
|
connect(eSubject, &DLS::Info::Subject); |
937 |
|
|
938 |
|
table.add(eName); |
939 |
|
table.add(eCreationDate); |
940 |
|
table.add(eComments); |
941 |
|
table.add(eProduct); |
942 |
|
table.add(eCopyright); |
943 |
|
table.add(eArtists); |
944 |
|
table.add(eGenre); |
945 |
|
table.add(eKeywords); |
946 |
|
table.add(eEngineer); |
947 |
|
table.add(eTechnician); |
948 |
|
table.add(eSoftware); |
949 |
|
table.add(eMedium); |
950 |
|
table.add(eSource); |
951 |
|
table.add(eSourceForm); |
952 |
|
table.add(eCommissioned); |
953 |
|
table.add(eSubject); |
954 |
|
|
955 |
table.set_col_spacings(5); |
table.set_col_spacings(5); |
956 |
const char* propLabels[] = { |
add(vbox); |
957 |
"Name:", |
table.set_border_width(5); |
958 |
"CreationDate:", |
vbox.add(table); |
959 |
"Comments:", // TODO: multiline |
vbox.pack_start(buttonBox, Gtk::PACK_SHRINK); |
960 |
"Product:", |
buttonBox.set_layout(Gtk::BUTTONBOX_END); |
961 |
"Copyright:", |
buttonBox.set_border_width(5); |
962 |
"Artists:", |
buttonBox.show(); |
963 |
"Genre:", |
buttonBox.pack_start(quitButton); |
964 |
"Keywords:", |
quitButton.set_flags(Gtk::CAN_DEFAULT); |
965 |
"Engineer:", |
quitButton.grab_focus(); |
966 |
"Technician:", |
quitButton.signal_clicked().connect( |
967 |
"Software:", // TODO: readonly |
sigc::mem_fun(*this, &PropDialog::hide)); |
968 |
"Medium:", |
|
969 |
"Source:", |
quitButton.show(); |
970 |
"SourceForm:", |
vbox.show(); |
|
"Commissioned:", |
|
|
"Subject:" |
|
|
}; |
|
|
for (int i = 0 ; i < sizeof(propLabels) / sizeof(char*) ; i++) { |
|
|
label[i].set_text(propLabels[i]); |
|
|
label[i].set_alignment(Gtk::ALIGN_LEFT); |
|
|
table.attach(label[i], 0, 1, i, i + 1, Gtk::FILL, Gtk::SHRINK); |
|
|
table.attach(entry[i], 1, 2, i, i + 1, Gtk::FILL | Gtk::EXPAND, |
|
|
Gtk::SHRINK); |
|
|
} |
|
|
|
|
|
add(table); |
|
|
// add_button(Gtk::Stock::CANCEL, 0); |
|
|
// add_button(Gtk::Stock::OK, 1); |
|
971 |
show_all_children(); |
show_all_children(); |
972 |
} |
} |
973 |
|
|
974 |
void PropDialog::set_info(DLS::Info* info) |
void PropDialog::set_info(DLS::Info* info) |
975 |
{ |
{ |
976 |
entry[0].set_text(info->Name); |
this->info = info; |
977 |
entry[1].set_text(info->CreationDate); |
update_model++; |
978 |
entry[2].set_text(Glib::convert(info->Comments, "UTF-8", "ISO-8859-1")); |
eName.set_value(info->Name); |
979 |
entry[3].set_text(info->Product); |
eCreationDate.set_value(info->CreationDate); |
980 |
entry[4].set_text(info->Copyright); |
eComments.set_value(info->Comments); |
981 |
entry[5].set_text(info->Artists); |
eProduct.set_value(info->Product); |
982 |
entry[6].set_text(info->Genre); |
eCopyright.set_value(info->Copyright); |
983 |
entry[7].set_text(info->Keywords); |
eArtists.set_value(info->Artists); |
984 |
entry[8].set_text(info->Engineer); |
eGenre.set_value(info->Genre); |
985 |
entry[9].set_text(info->Technician); |
eKeywords.set_value(info->Keywords); |
986 |
entry[10].set_text(info->Software); |
eEngineer.set_value(info->Engineer); |
987 |
entry[11].set_text(info->Medium); |
eTechnician.set_value(info->Technician); |
988 |
entry[12].set_text(info->Source); |
eSoftware.set_value(info->Software); |
989 |
entry[13].set_text(info->SourceForm); |
eMedium.set_value(info->Medium); |
990 |
entry[14].set_text(info->Commissioned); |
eSource.set_value(info->Source); |
991 |
entry[15].set_text(info->Subject); |
eSourceForm.set_value(info->SourceForm); |
992 |
|
eCommissioned.set_value(info->Commissioned); |
993 |
|
eSubject.set_value(info->Subject); |
994 |
|
update_model--; |
995 |
|
} |
996 |
|
|
997 |
|
sigc::signal<void>& PropDialog::signal_info_changed() |
998 |
|
{ |
999 |
|
return info_changed; |
1000 |
} |
} |
1001 |
|
|
1002 |
void InstrumentProps::set_IsDrum(bool value) |
void InstrumentProps::set_IsDrum(bool value) |
1030 |
} |
} |
1031 |
} |
} |
1032 |
|
|
|
void InstrumentProps::add_prop(BoolEntry& boolentry) |
|
|
{ |
|
|
table.attach(boolentry.widget, 0, 2, rowno, rowno + 1, |
|
|
Gtk::FILL, Gtk::SHRINK); |
|
|
rowno++; |
|
|
} |
|
|
|
|
|
void InstrumentProps::add_prop(BoolEntryPlus6& boolentry) |
|
|
{ |
|
|
table.attach(boolentry.widget, 0, 2, rowno, rowno + 1, |
|
|
Gtk::FILL, Gtk::SHRINK); |
|
|
rowno++; |
|
|
} |
|
|
|
|
|
void InstrumentProps::add_prop(LabelWidget& prop) |
|
|
{ |
|
|
table.attach(prop.label, 0, 1, rowno, rowno + 1, |
|
|
Gtk::FILL, Gtk::SHRINK); |
|
|
table.attach(prop.widget, 1, 2, rowno, rowno + 1, |
|
|
Gtk::FILL | Gtk::EXPAND, Gtk::SHRINK); |
|
|
rowno++; |
|
|
} |
|
|
|
|
1033 |
InstrumentProps::InstrumentProps() |
InstrumentProps::InstrumentProps() |
1034 |
: table(2,1), |
: table(2,1), |
1035 |
quitButton(Gtk::Stock::CLOSE), |
quitButton(Gtk::Stock::CLOSE), |
1047 |
eDimensionKeyRangeHigh("Dimension key range high"), |
eDimensionKeyRangeHigh("Dimension key range high"), |
1048 |
update_model(0) |
update_model(0) |
1049 |
{ |
{ |
1050 |
set_title("Instrument properties"); |
set_title("Instrument Properties"); |
1051 |
|
|
1052 |
connect(eIsDrum, &InstrumentProps::set_IsDrum); |
connect(eIsDrum, &InstrumentProps::set_IsDrum); |
1053 |
connect(eMIDIBank, &InstrumentProps::set_MIDIBank); |
connect(eMIDIBank, &InstrumentProps::set_MIDIBank); |
1063 |
connect(eDimensionKeyRangeHigh, |
connect(eDimensionKeyRangeHigh, |
1064 |
&InstrumentProps::set_DimensionKeyRange_high); |
&InstrumentProps::set_DimensionKeyRange_high); |
1065 |
|
|
|
rowno = 0; |
|
1066 |
table.set_col_spacings(5); |
table.set_col_spacings(5); |
1067 |
|
|
1068 |
add_prop(eName); |
table.add(eName); |
1069 |
add_prop(eIsDrum); |
table.add(eIsDrum); |
1070 |
add_prop(eMIDIBank); |
table.add(eMIDIBank); |
1071 |
add_prop(eMIDIProgram); |
table.add(eMIDIProgram); |
1072 |
add_prop(eAttenuation); |
table.add(eAttenuation); |
1073 |
add_prop(eGainPlus6); |
table.add(eGainPlus6); |
1074 |
add_prop(eEffectSend); |
table.add(eEffectSend); |
1075 |
add_prop(eFineTune); |
table.add(eFineTune); |
1076 |
add_prop(ePitchbendRange); |
table.add(ePitchbendRange); |
1077 |
add_prop(ePianoReleaseMode); |
table.add(ePianoReleaseMode); |
1078 |
add_prop(eDimensionKeyRangeLow); |
table.add(eDimensionKeyRangeLow); |
1079 |
add_prop(eDimensionKeyRangeHigh); |
table.add(eDimensionKeyRangeHigh); |
1080 |
|
|
1081 |
add(vbox); |
add(vbox); |
1082 |
table.set_border_width(5); |
table.set_border_width(5); |
1103 |
this->instrument = instrument; |
this->instrument = instrument; |
1104 |
|
|
1105 |
update_model++; |
update_model++; |
1106 |
eName.set_ptr(&instrument->pInfo->Name); |
eName.set_value(instrument->pInfo->Name); |
1107 |
eIsDrum.set_value(instrument->IsDrum); |
eIsDrum.set_value(instrument->IsDrum); |
1108 |
eMIDIBank.set_value(instrument->MIDIBank); |
eMIDIBank.set_value(instrument->MIDIBank); |
1109 |
eMIDIProgram.set_value(instrument->MIDIProgram); |
eMIDIProgram.set_value(instrument->MIDIProgram); |