|
- // 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();
- }
|