// generated by Fast Light User Interface Designer (fluid) version 1.0300 #include "external/zynaddsubfx/UI/ConfigUI.h" //Copyright (c) 2002-2005 Nasca Octavian Paul //License: GNU GPL version 2 or later void ConfigUI::cb_configwindow_i(Fl_Osc_Window* o, void*) { o->hide(); } void ConfigUI::cb_configwindow(Fl_Osc_Window* o, void* v) { ((ConfigUI*)(o->user_data()))->cb_configwindow_i(o,v); } void ConfigUI::cb_oscilsize_widget_i(Fl_Choice* o, void*) { oscilsize->updateVal((int)(o->value()+7)); } void ConfigUI::cb_oscilsize_widget(Fl_Choice* o, void* v) { ((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_oscilsize_widget_i(o,v); } Fl_Menu_Item ConfigUI::menu_oscilsize_widget[] = { {"128", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0}, {"256", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0}, {"512", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0}, {"1024", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0}, {"2048", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0}, {"4096", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0}, {"8192", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0}, {"16384", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0}, {0,0,0,0,0,0,0,0,0} }; Fl_Menu_Item ConfigUI::menu_PADsynth[] = { {"Linear(fast)", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {"Cubic(slow)", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0}, {0,0,0,0,0,0,0,0,0} }; Fl_Menu_Item ConfigUI::menu_Virtual[] = { {" ", 0, 0, 0, 1, FL_NORMAL_LABEL, 1, 11, 0}, {"QWERTY", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"Dvorak", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"QWERTZ", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {"AZERTY", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0}, {0,0,0,0,0,0,0,0,0} }; void ConfigUI::cb_rootsbrowse_i(Fl_Osc_ListView* o, void*) { activatebutton_rootdir(o->value()!=0); } void ConfigUI::cb_rootsbrowse(Fl_Osc_ListView* o, void* v) { ((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_rootsbrowse_i(o,v); } void ConfigUI::cb_Add_i(Fl_Button*, void*) { const char *dirname; dirname=fl_dir_chooser("Add a root directory for banks:",NULL,0); if (dirname==NULL) return; rootsbrowse->append(dirname); } void ConfigUI::cb_Add(Fl_Button* o, void* v) { ((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_Add_i(o,v); } void ConfigUI::cb_removerootdirbutton_i(Fl_Button*, void*) { if (rootsbrowse->value()!=0) { rootsbrowse->doRemove(rootsbrowse->value()); }; activatebutton_rootdir(false); } void ConfigUI::cb_removerootdirbutton(Fl_Button* o, void* v) { ((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_removerootdirbutton_i(o,v); } void ConfigUI::cb_makedefaultrootdirbutton_i(Fl_Button*, void*) { int n=rootsbrowse->value(); if (n!=0) { rootsbrowse->doMove(1,n); rootsbrowse->value(1); rootsbrowse->redraw(); }; activatebutton_rootdir(true); } void ConfigUI::cb_makedefaultrootdirbutton(Fl_Button* o, void* v) { ((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_makedefaultrootdirbutton_i(o,v); } void ConfigUI::cb_presetbrowse_i(Fl_Osc_ListView* o, void*) { activatebutton_presetdir(o->value()!=0); } void ConfigUI::cb_presetbrowse(Fl_Osc_ListView* o, void* v) { ((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_presetbrowse_i(o,v); } void ConfigUI::cb_Add1_i(Fl_Button*, void*) { const char *dirname; dirname=fl_dir_chooser("Add a preset directory :",NULL,0); if (dirname==NULL) return; presetbrowse->add(dirname); } void ConfigUI::cb_Add1(Fl_Button* o, void* v) { ((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_Add1_i(o,v); } void ConfigUI::cb_removepresetbutton_i(Fl_Button*, void*) { if (presetbrowse->value()!=0) { presetbrowse->remove(presetbrowse->value()); }; activatebutton_presetdir(false); } void ConfigUI::cb_removepresetbutton(Fl_Button* o, void* v) { ((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_removepresetbutton_i(o,v); } void ConfigUI::cb_makedefaultpresetbutton_i(Fl_Button*, void*) { int n=presetbrowse->value(); if (n!=0) { presetbrowse->move(1,n); presetbrowse->value(1); presetbrowse->redraw(); }; activatebutton_presetdir(true); } void ConfigUI::cb_makedefaultpresetbutton(Fl_Button* o, void* v) { ((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_makedefaultpresetbutton_i(o,v); } void ConfigUI::cb_Close_i(Fl_Button*, void*) { configwindow->hide(); } void ConfigUI::cb_Close(Fl_Button* o, void* v) { ((ConfigUI*)(o->parent()->user_data()))->cb_Close_i(o,v); } Fl_Osc_Window* ConfigUI::make_window() { { configwindow = new Fl_Osc_Window(510, 370, "ZynAddSubFX Settings"); configwindow->box(FL_FLAT_BOX); configwindow->color(FL_BACKGROUND_COLOR); configwindow->selection_color(FL_BACKGROUND_COLOR); configwindow->labeltype(FL_NO_LABEL); configwindow->labelfont(0); configwindow->labelsize(14); configwindow->labelcolor(FL_FOREGROUND_COLOR); configwindow->callback((Fl_Callback*)cb_configwindow, (void*)(this)); configwindow->align(Fl_Align(FL_ALIGN_TOP)); configwindow->when(FL_WHEN_RELEASE); { dummy = new Fl_Box(25, 25, 25, 25); configwindow->init(osc, "/config/"); } // Fl_Box* dummy { Fl_Tabs* o = new Fl_Tabs(5, 5, 500, 330); { mainsettings = new Fl_Group(5, 25, 500, 310, "Main settings"); { Fl_Group* o = new Fl_Group(15, 45, 165, 30, "Sample Rate"); o->box(FL_ENGRAVED_FRAME); { Fl_Osc_Numeric_Input* o = samplerateinput = new Fl_Osc_Numeric_Input(115, 50, 60, 20); samplerateinput->type(2); samplerateinput->box(FL_DOWN_BOX); samplerateinput->color(FL_BACKGROUND2_COLOR); samplerateinput->selection_color(FL_SELECTION_COLOR); samplerateinput->labeltype(FL_NORMAL_LABEL); samplerateinput->labelfont(0); samplerateinput->labelsize(14); samplerateinput->labelcolor(FL_FOREGROUND_COLOR); samplerateinput->textfont(1); samplerateinput->align(Fl_Align(FL_ALIGN_LEFT)); samplerateinput->when(FL_WHEN_RELEASE); o->init("cfg.SampleRate"); } // Fl_Osc_Numeric_Input* samplerateinput o->end(); } // Fl_Group* o { Fl_Osc_Numeric_Input* o = new Fl_Osc_Numeric_Input(190, 45, 60, 20, "Buffer Size"); o->tooltip("Internal Sound Buffer Size (samples)"); o->type(2); o->box(FL_DOWN_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color(FL_SELECTION_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(11); o->labelcolor(FL_FOREGROUND_COLOR); o->textfont(1); o->align(Fl_Align(129)); o->when(FL_WHEN_RELEASE); o->init("cfg.SoundBufferSize"); } // Fl_Osc_Numeric_Input* o { Fl_Osc_Check* o = new Fl_Osc_Check(15, 80, 95, 20, "Swap Stereo "); o->box(FL_NO_BOX); o->down_box(FL_DOWN_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_FOREGROUND_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(11); o->labelcolor(FL_FOREGROUND_COLOR); o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); o->when(FL_WHEN_RELEASE); o->init("cfg.SwapStereo"); } // Fl_Osc_Check* o { oscilsize_widget = new Fl_Choice(175, 80, 75, 20, "OscilSize"); oscilsize_widget->tooltip("ADSynth Oscillator Size (samples)"); oscilsize_widget->down_box(FL_BORDER_BOX); oscilsize_widget->labelfont(1); oscilsize_widget->labelsize(11); oscilsize_widget->textsize(10); oscilsize_widget->callback((Fl_Callback*)cb_oscilsize_widget); oscilsize_widget->menu(menu_oscilsize_widget); } // Fl_Choice* oscilsize_widget { Fl_Box* o = new Fl_Box(10, 300, 235, 30, "Most settings has effect only after ZynAddSubFX is restarted."); o->labelfont(1); o->labelsize(11); o->align(Fl_Align(FL_ALIGN_WRAP)); } // Fl_Box* o { Fl_Osc_Counter* o = new Fl_Osc_Counter(20, 215, 65, 15, "XML compression level"); o->tooltip("gzip compression level (0 - uncompressed)"); o->type(1); o->box(FL_UP_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_INACTIVE_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(11); o->labelcolor(FL_FOREGROUND_COLOR); o->minimum(0); o->maximum(9); o->step(1); o->align(Fl_Align(FL_ALIGN_RIGHT)); o->when(FL_WHEN_CHANGED); o->init("cfg.GzipCompression"); } // Fl_Osc_Counter* o { Fl_Osc_Choice* o = new Fl_Osc_Choice(175, 105, 75, 15, "PADsynth Interpolation"); o->box(FL_UP_BOX); o->down_box(FL_BORDER_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_SELECTION_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(10); o->labelcolor(FL_FOREGROUND_COLOR); o->textsize(11); o->align(Fl_Align(FL_ALIGN_LEFT)); o->when(FL_WHEN_RELEASE); o->menu(menu_PADsynth); o->init("cfg.Interpolation"); } // Fl_Osc_Choice* o { Fl_Osc_Choice* o = new Fl_Osc_Choice(155, 235, 85, 20, "Virtual Keyboard Layout"); o->box(FL_UP_BOX); o->down_box(FL_BORDER_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_SELECTION_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(12); o->labelcolor(FL_FOREGROUND_COLOR); o->textfont(1); o->textsize(11); o->align(Fl_Align(FL_ALIGN_LEFT)); o->when(FL_WHEN_RELEASE); o->menu(menu_Virtual); o->init("cfg.VirKeybLayout"); } // Fl_Osc_Choice* o { Fl_Osc_Check* o = new Fl_Osc_Check(10, 255, 220, 20, "Ignore MIDI Program Change"); o->box(FL_NO_BOX); o->down_box(FL_DOWN_BOX); o->color(FL_BACKGROUND_COLOR); o->selection_color(FL_FOREGROUND_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(0); o->labelsize(14); o->labelcolor(FL_FOREGROUND_COLOR); o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE)); o->when(FL_WHEN_RELEASE); o->init("cfg.IgnoreProgramChange"); } // Fl_Osc_Check* o mainsettings->end(); } // Fl_Group* mainsettings { Fl_Group* o = new Fl_Group(5, 25, 500, 285, "Bank root dirs"); o->hide(); { Fl_Osc_ListView* o = rootsbrowse = new Fl_Osc_ListView(15, 35, 485, 220); rootsbrowse->type(2); rootsbrowse->box(FL_NO_BOX); rootsbrowse->color(FL_BACKGROUND2_COLOR); rootsbrowse->selection_color(FL_SELECTION_COLOR); rootsbrowse->labeltype(FL_NORMAL_LABEL); rootsbrowse->labelfont(0); rootsbrowse->labelsize(14); rootsbrowse->labelcolor(FL_FOREGROUND_COLOR); rootsbrowse->callback((Fl_Callback*)cb_rootsbrowse); rootsbrowse->align(Fl_Align(FL_ALIGN_BOTTOM)); rootsbrowse->when(FL_WHEN_RELEASE_ALWAYS); o->init("cfg.bankRootDirList"); } // Fl_Osc_ListView* rootsbrowse { Fl_Button* o = new Fl_Button(15, 265, 80, 35, "Add root directory..."); o->box(FL_THIN_UP_BOX); o->callback((Fl_Callback*)cb_Add); o->align(Fl_Align(FL_ALIGN_WRAP)); } // Fl_Button* o { Fl_Button* o = removerootdirbutton = new Fl_Button(105, 265, 80, 35, "Remove root dir..."); removerootdirbutton->box(FL_THIN_UP_BOX); removerootdirbutton->callback((Fl_Callback*)cb_removerootdirbutton); removerootdirbutton->align(Fl_Align(FL_ALIGN_WRAP)); o->deactivate(); } // Fl_Button* removerootdirbutton { Fl_Button* o = makedefaultrootdirbutton = new Fl_Button(190, 265, 80, 35, "Make default"); makedefaultrootdirbutton->box(FL_THIN_UP_BOX); makedefaultrootdirbutton->callback((Fl_Callback*)cb_makedefaultrootdirbutton); makedefaultrootdirbutton->align(Fl_Align(FL_ALIGN_WRAP)); o->deactivate(); } // Fl_Button* makedefaultrootdirbutton o->end(); } // Fl_Group* o { Fl_Group* o = new Fl_Group(5, 25, 500, 285, "Presets dirs"); o->hide(); { Fl_Osc_ListView* o = presetbrowse = new Fl_Osc_ListView(15, 35, 485, 220); presetbrowse->type(2); presetbrowse->box(FL_NO_BOX); presetbrowse->color(FL_BACKGROUND2_COLOR); presetbrowse->selection_color(FL_SELECTION_COLOR); presetbrowse->labeltype(FL_NORMAL_LABEL); presetbrowse->labelfont(0); presetbrowse->labelsize(14); presetbrowse->labelcolor(FL_FOREGROUND_COLOR); presetbrowse->callback((Fl_Callback*)cb_presetbrowse); presetbrowse->align(Fl_Align(FL_ALIGN_BOTTOM)); presetbrowse->when(FL_WHEN_RELEASE_ALWAYS); o->init("cfg.presetsDirList"); } // Fl_Osc_ListView* presetbrowse { Fl_Button* o = new Fl_Button(15, 265, 80, 35, "Add preset directory..."); o->box(FL_THIN_UP_BOX); o->callback((Fl_Callback*)cb_Add1); o->align(Fl_Align(FL_ALIGN_WRAP)); } // Fl_Button* o { Fl_Button* o = removepresetbutton = new Fl_Button(105, 265, 80, 35, "Remove preset dir..."); removepresetbutton->box(FL_THIN_UP_BOX); removepresetbutton->callback((Fl_Callback*)cb_removepresetbutton); removepresetbutton->align(Fl_Align(FL_ALIGN_WRAP)); o->deactivate(); } // Fl_Button* removepresetbutton { Fl_Button* o = makedefaultpresetbutton = new Fl_Button(190, 265, 80, 35, "Make default"); makedefaultpresetbutton->box(FL_THIN_UP_BOX); makedefaultpresetbutton->callback((Fl_Callback*)cb_makedefaultpresetbutton); makedefaultpresetbutton->align(Fl_Align(FL_ALIGN_WRAP)); o->deactivate(); } // Fl_Button* makedefaultpresetbutton o->end(); } // Fl_Group* o o->end(); } // Fl_Tabs* o { Fl_Button* o = new Fl_Button(200, 345, 105, 20, "Close"); o->box(FL_THIN_UP_BOX); o->callback((Fl_Callback*)cb_Close); } // Fl_Button* o configwindow->end(); } // Fl_Osc_Window* configwindow return configwindow; } ConfigUI::ConfigUI(Fl_Osc_Interface *osc_) { osc = osc_; make_window(); oscilsize = new Osc_IntModel(osc); oscilsize->callback = [this](int i){ oscilsize_widget->value(i-7); }; oscilsize->doUpdate("/config/cfg.OscilPower"); } void ConfigUI::activatebutton_rootdir(bool active) { if (active) { removerootdirbutton->activate(); makedefaultrootdirbutton->activate(); }else{ removerootdirbutton->deactivate(); makedefaultrootdirbutton->deactivate(); }; } void ConfigUI::activatebutton_presetdir(bool active) { if (active) { removepresetbutton->activate(); makedefaultpresetbutton->activate(); }else{ removepresetbutton->deactivate(); makedefaultpresetbutton->deactivate(); }; } void ConfigUI::show() { if (isPlugin) { mainsettings->deactivate(); } rootsbrowse->update(); presetbrowse->update(); configwindow->show(); }