void gdMainWindow::__cb_open_edit_menu() { Fl_Menu_Item menu[] = { {"Clear all samples"}, {"Clear all actions"}, {"Reset to init state"}, {0} }; /* clear all actions disabled if no recs, clear all samples disabled * if no samples. */ menu[1].deactivate(); for (unsigned i=0; i<MAX_NUM_CHAN; i++) if (recorder::chanEvents[i]) { menu[1].activate(); break; } for (unsigned i=0; i<MAX_NUM_CHAN; i++) if (G_Mixer.chan[i] != NULL) { menu[0].activate(); break; } Fl_Menu_Button *b = new Fl_Menu_Button(0, 0, 100, 50); b->box(G_BOX); b->textsize(11); b->textcolor(COLOR_TEXT_0); b->color(COLOR_BG_0); const Fl_Menu_Item *m = menu->popup(Fl::event_x(), Fl::event_y(), 0, 0, b); if (!m) return; if (strcmp(m->label(), "Clear all samples") == 0) { if (!gdConfirmWin("Warning", "Clear all samples: are you sure?")) return; delSubWindow(WID_SAMPLE_EDITOR); glue_clearAllSamples(); return; } if (strcmp(m->label(), "Clear all actions") == 0) { if (!gdConfirmWin("Warning", "Clear all actions: are you sure?")) return; delSubWindow(WID_ACTION_EDITOR); glue_clearAllRecs(); return; } if (strcmp(m->label(), "Reset to init state") == 0) { if (!gdConfirmWin("Warning", "Reset to init state: are you sure?")) return; gu_closeAllSubwindows(); glue_resetToInitState(); return; } }
void gMenu::__cb_edit() { Fl_Menu_Item menu[] = { {"Clear all samples"}, {"Clear all actions"}, {"Remove empty columns"}, {"Reset to init state"}, {"Setup global MIDI input..."}, {0} }; /* clear all actions disabled if no recs, clear all samples disabled * if no samples. */ menu[1].deactivate(); for (unsigned i=0; i<G_Mixer.channels.size(); i++) if (G_Mixer.channels.at(i)->hasActions) { menu[1].activate(); break; } for (unsigned i=0; i<G_Mixer.channels.size(); i++) if (G_Mixer.channels.at(i)->type == CHANNEL_SAMPLE) if (((SampleChannel*)G_Mixer.channels.at(i))->wave != NULL) { menu[0].activate(); break; } Fl_Menu_Button *b = new Fl_Menu_Button(0, 0, 100, 50); b->box(G_BOX); b->textsize(11); b->textcolor(COLOR_TEXT_0); b->color(COLOR_BG_0); const Fl_Menu_Item *m = menu->popup(Fl::event_x(), Fl::event_y(), 0, 0, b); if (!m) return; if (strcmp(m->label(), "Clear all samples") == 0) { if (!gdConfirmWin("Warning", "Clear all samples: are you sure?")) return; mainWin->delSubWindow(WID_SAMPLE_EDITOR); glue_clearAllSamples(); return; } if (strcmp(m->label(), "Clear all actions") == 0) { if (!gdConfirmWin("Warning", "Clear all actions: are you sure?")) return; mainWin->delSubWindow(WID_ACTION_EDITOR); glue_clearAllRecs(); return; } if (strcmp(m->label(), "Reset to init state") == 0) { if (!gdConfirmWin("Warning", "Reset to init state: are you sure?")) return; gu_closeAllSubwindows(); glue_resetToInitState(); return; } if (strcmp(m->label(), "Remove empty columns") == 0) { mainWin->keyboard->organizeColumns(); return; } if (strcmp(m->label(), "Setup global MIDI input...") == 0) { gu_openSubWindow(mainWin, new gdMidiInputMaster(), 0); return; } }