void Fl_Help_Dialog::make_group(int w, int h) { menubar_ = new Fl_Menu_Bar(0, 0, 595, 20); menubar_->begin(); { Fl_Item_Group *g = new Fl_Item_Group("&File"); Fl_Item *i; i= new Fl_Item("Open"); i->shortcut(FL_CTRL+'o'); i->callback((Fl_Callback*)cb_open, this); i = new Fl_Item("Close"); i->shortcut(FL_CTRL+'c'); i->callback((Fl_Callback*)cb_close, this); g->end(); } menubar_->end(); { Fl_Group *g = new Fl_Group(0, 20, w, 30); g->box(FL_THIN_DOWN_BOX); Fl_Button *b; b = back = new Fl_Highlight_Button(35, 2, 30, 25, "@<-"); b->box(FL_HIGHLIGHT_UP_BOX); b->label_type(FL_SYMBOL_LABEL); b->label_color(FL_DARK3); b->highlight_label_color(FL_GRAY); b->callback((Fl_Callback*)cb_back, this); b->tooltip("Back"); b->deactivate(); b = next = new Fl_Highlight_Button(65, 2, 30, 25, "@->"); b->box(FL_HIGHLIGHT_UP_BOX); b->label_type(FL_SYMBOL_LABEL); b->label_color(FL_DARK3); b->highlight_label_color(FL_GRAY); b->callback((Fl_Callback*)cb_next, this); b->tooltip("Next"); b->deactivate(); b = new Fl_Highlight_Button(5, 2, 30, 25); b->image(Fl_Image::read(0, (uchar*)datas_open)); b->box(FL_HIGHLIGHT_UP_BOX); b->callback((Fl_Callback*)cb_open, this); b->tooltip("Open"); b->take_focus(); g->end(); } htmlWidget = new Fl_Simple_Html(0, 50, w, h-50); htmlWidget->callback(cb_html_link, this); htmlWidget->end(); resizable(htmlWidget); }
//----------------------------------------------------------------------------- void NrmDlg::create_dlg() { Fl_Menu_Item k[]={{"x"}, {"y"}, { "z"}, {0}}; wnd = new Fl_Double_Window(135, 215); min = new Fl_Value_Input(10, 25, 115, 25, mgl_gettext("Minimal value (v1)")); min->align(FL_ALIGN_TOP_LEFT); min->tooltip(mgl_gettext("Minimal value for resulting data values")); max = new Fl_Value_Input(10, 70, 115, 25, mgl_gettext("Maximal value (v2)")); max->align(FL_ALIGN_TOP_LEFT); max->tooltip(mgl_gettext("Maximal value for resulting data values")); dir = new Fl_Choice(10, 115, 115, 25, mgl_gettext("Direction")); dir->align(FL_ALIGN_TOP_LEFT); dir->copy(k); dir->tooltip(mgl_gettext("Direction along which data will be filled")); sym = new Fl_Check_Button(10, 115, 115, 25, mgl_gettext("Symetrical range")); sym->tooltip(mgl_gettext("Normalize in symmetrical range: -max(|v1|,|v2|) ... max(|v1|,|v2|)")); Fl_Button *o; o = new Fl_Button(25, 150, 85, 25, mgl_gettext("Cancel")); o->callback(close_dlg_cb,wnd); o->box(UDAV_UP_BOX); o->down_box(UDAV_DOWN_BOX); o->tooltip(mgl_gettext("Do nothing and close this window")); o = new Fl_Return_Button(25, 180, 85, 25, mgl_gettext("Change"));o->callback(nrm_dlg_cb,wnd); o->box(UDAV_UP_BOX); o->down_box(UDAV_DOWN_BOX); o->tooltip(mgl_gettext("Change data values and close this window")); wnd->end(); }
window(int x, int y, int w, int h, const char *label = 0) : Fl_Window(x, y, w, h, label) { Fl_Box *o = new Fl_Box(10, 10, 300, 25, "Open CSV file to convert to HTML -->"); o->box(FL_BORDER_BOX); o->align(FL_ALIGN_INSIDE | FL_ALIGN_WRAP| FL_ALIGN_CENTER); o->color((Fl_Color)215); o->labelfont(FL_HELVETICA_BOLD); Fl_Button *but = new Fl_Button(320, 10, 80, 25, "Pick Files"); but->callback(on_pick_button_click, this); encode_check = new Fl_Check_Button(10, 40, 280, 25, "Escape special HTML characters."); encode_check->value(1); open_file_check = new Fl_Check_Button(10, 65, 280, 25, "Open HTML in browser."); open_file_check->value(1); Fl_Button *author = new Fl_Button(320, 65, 80, 25, "Mingjie Li"); author->box(FL_FLAT_BOX); author->align(FL_ALIGN_INSIDE | FL_ALIGN_RIGHT); author->labelsize(12); author->labelcolor(fl_rgb_color(128, 128, 128)); author->callback(on_author_click, this); }
void cb_open_about() { { a_diag = new Fl_Double_Window(210, 165, "About"); a_diag->color((Fl_Color)29); { a_mess = new Fl_Group(5, 10, 200, 45, "Calc 80"); a_mess->box(FL_RFLAT_BOX); a_mess->color((Fl_Color)206); a_mess->labelsize(21); a_mess->align(Fl_Align(FL_ALIGN_CENTER)); a_mess->end(); } // Fl_Group* a_mess { Fl_Group* o = new Fl_Group(5, 70, 205, 25, "Version 0.04"); o->align(Fl_Align(FL_ALIGN_CENTER)); o->end(); } // Fl_Group* o { Fl_Group* o = new Fl_Group(10, 95, 200, 25, "\302\251""2016, Patrik Wallander"); o->align(Fl_Align(FL_ALIGN_CENTER)); o->end(); } // Fl_Group* o { Fl_Button* o = new Fl_Button(70, 135, 70, 20, "Close"); o->box(FL_RFLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->callback((Fl_Callback*)cb_close_about); } // Fl_Button* o a_diag->show(); a_diag->position(m_win->x(), m_win->y()); a_diag->end(); } // Fl_Double_Window* a_diag }
//==== Add Geom Picker ====// void GroupLayout::AddGeomPicker( GeomPicker & geom_picker ) { assert( m_Group && m_Screen ); //==== Geom Button ====// Fl_Button* button = new Fl_Button( m_X, m_Y, m_ChoiceButtonWidth, m_StdHeight, "Geom" ); button->box( FL_THIN_UP_BOX ); button->labelfont( 1 ); button->labelsize( 12 ); button->labelcolor( FL_BLACK ); m_Group->add( button ); AddX( m_ChoiceButtonWidth ); //==== Geom Picker ====// int choice_w = FitWidth( m_ChoiceButtonWidth, m_SliderWidth ); Fl_Choice* geom_choice = new Fl_Choice( m_X, m_Y, choice_w, m_StdHeight ); geom_choice->down_box( FL_BORDER_BOX ); geom_choice->textfont( 1 ); geom_choice->textsize( 12 ); geom_choice->textcolor( FL_DARK_BLUE ); m_Group->add( geom_choice ); AddX( choice_w ); AddY( m_StdHeight ); NewLineX(); geom_picker.Init( m_Screen, geom_choice ); }
Fl_Window* make_about_panel(const char *copyright) { Fl_Window* w; {Fl_Window* o = about_panel = new Fl_Window(330, 276, _("About eFluid")); w = o; o->type(240); o->selection_color((Fl_Color)47); o->shortcut(0xff1b); {Fl_Group* o = display_group = new Fl_Group(0, 0, 330, 240); {Fl_Group* o = new Fl_Group(5, 5, 320, 55, _("eFluid")); o->box(FL_ENGRAVED_BOX); o->label_font(fl_fonts+1); o->label_type(FL_EMBOSSED_LABEL); o->color((Fl_Color)0xb3b3be00); o->label_color((Fl_Color)32); o->selection_color((Fl_Color)47); o->label_size(40); o->align(FL_ALIGN_INSIDE); o->end(); } {Fl_Button* o = new Fl_Button(5, 165, 320, 70, _("\302\251""2002-2003\nClick here for more information")); o->box(FL_ENGRAVED_BOX); o->label_font(fl_fonts+1); o->color((Fl_Color)0xb3b3be00); o->label_color((Fl_Color)32); o->highlight_color((Fl_Color)0x9d9da700); o->highlight_label_color((Fl_Color)55); o->label_size(14); o->callback((Fl_Callback*)cb_2002); o->align(FL_ALIGN_WRAP); } {Fl_Box* o = new Fl_Box(5, 60, 320, 105, _("EFLTK User Interface Designer\nVersion 2.0.3")); o->box(FL_ENGRAVED_BOX); o->label_font(fl_fonts+1); o->label_type(FL_EMBOSSED_LABEL); o->color((Fl_Color)0xb3b3be00); o->label_color((Fl_Color)32); o->selection_color((Fl_Color)47); o->label_size(18); } o->end(); } {Fl_Box* o = copyright_box = new Fl_Box(0, 0, 330, 240); o->label_size(10); o->align(FL_ALIGN_TOP|FL_ALIGN_LEFT|FL_ALIGN_INSIDE|FL_ALIGN_CLIP|FL_ALIGN_WRAP); o->hide(); o->label(copyright); } {Fl_Return_Button* o = new Fl_Return_Button(5, 245, 320, 25, _("OK")); o->label_size(10); o->shortcut(0xff0d); o->callback((Fl_Callback*)cb_OK); } o->end(); } return w; }
//----------------------------------------------------------------------------- void NwdtDlg::create_dlg() { Fl_Menu_Item k[]={{mgl_gettext("Summation of")}, {mgl_gettext("Maximum of")}, { mgl_gettext("Minimum of")}, {0}}; wnd = new Fl_Double_Window(165, 215, mgl_gettext("Extract data")); kind = new Fl_Choice(10, 25, 145, 25, mgl_gettext("Type of operation")); kind->align(FL_ALIGN_TOP_LEFT); kind->copy(k); dx = new Fl_Check_Button(10, 55, 140, 25, mgl_gettext("apply in x direction")); dy = new Fl_Check_Button(10, 80, 140, 25, mgl_gettext("apply in y direction")); dz = new Fl_Check_Button(10, 105, 140, 25, mgl_gettext("apply in z direction")); name = new Fl_Input(10, 145, 145, 25, mgl_gettext("Name for output")); name->align(FL_ALIGN_TOP_LEFT); Fl_Button *o; o = new Fl_Button(10, 180, 65, 25, mgl_gettext("Cancel")); o->callback(close_dlg_cb,wnd); o->box(UDAV_UP_BOX); o->down_box(UDAV_DOWN_BOX); o = new Fl_Return_Button(90, 180, 65, 25, mgl_gettext("Do"));o->callback(chng_dlg_cb,wnd); o->box(UDAV_UP_BOX); o->down_box(UDAV_DOWN_BOX); wnd->end(); }
//==== Add Label ====// void GroupLayout::AddLabel( const char* label, int width ) { Fl_Button* button = new Fl_Button( m_X, m_Y, width, m_StdHeight, label ); button->box( FL_THIN_UP_BOX ); button->labelfont( 1 ); button->labelsize( 12 ); button->labelcolor( FL_BLACK ); m_Group->add( button ); AddX( width ); }
Transport::Transport ( int X, int Y, int W, int H, const char *L ) : Fl_Pack( X, Y, W, H, L ) { recording = false; rolling = false; _stop_disables_record = true; const int bw = W / 3; type( HORIZONTAL ); Fl_Button *o; _home_button = o = new Fl_Button( 0, 0, bw, 0, "@|<" ); o->labeltype( FL_EMBOSSED_LABEL ); o->callback( cb_button, this ); o->shortcut( FL_Home ); o->box( FL_UP_BOX ); _end_button = o = new Fl_Button( 0, 0, bw, 0, "@>|" ); o->labeltype( FL_EMBOSSED_LABEL ); o->callback( cb_button, this ); o->shortcut( FL_End ); _play_button = o = new Fl_Button( 0, 0, bw, 0, "@>" ); o->labeltype( FL_EMBOSSED_LABEL ); o->callback( cb_button, this ); o->shortcut( ' ' ); o->box( FL_UP_BOX ); _record_button = o = new Fl_Button( 0, 0, bw, 0, "@circle" ); o->type( FL_TOGGLE_BUTTON ); o->labeltype( FL_EMBOSSED_LABEL ); o->labelcolor( fl_color_average( FL_RED, FL_WHITE, 0.25f ) ); o->shortcut( 'R' ); o->callback( cb_button, this ); o->when( FL_WHEN_CHANGED ); o->box( FL_UP_BOX ); end(); }
//----------------------------------------------------------------------------- void ChngDlg::create_dlg() { Fl_Menu_Item k[]={{mgl_gettext("Smooth")}, {mgl_gettext("CumSum")}, { mgl_gettext("Integrate")}, { mgl_gettext("Difference")}, { mgl_gettext("Double diff.")}, { mgl_gettext("Swap parts")}, {0}}; Fl_Menu_Item t[]={{mgl_gettext("Linear *3")}, {mgl_gettext("Linear *5")}, {mgl_gettext("Parabolic *5")},{0}}; wnd = new Fl_Double_Window(165, 215, mgl_gettext("Change data")); kind = new Fl_Choice(10, 25, 145, 25, mgl_gettext("Type of operation")); kind->align(FL_ALIGN_TOP_LEFT); kind->copy(k); dx = new Fl_Check_Button(10, 55, 140, 25, mgl_gettext("apply in x direction")); dy = new Fl_Check_Button(10, 80, 140, 25, mgl_gettext("apply in y direction")); dz = new Fl_Check_Button(10, 105, 140, 25, mgl_gettext("apply in z direction")); type = new Fl_Choice(10, 145, 145, 25, mgl_gettext("Type of smoothing")); type->align(FL_ALIGN_TOP_LEFT); type->copy(t); Fl_Button *o; o = new Fl_Button(10, 180, 65, 25, mgl_gettext("Cancel")); o->callback(close_dlg_cb,wnd); o->box(UDAV_UP_BOX); o->down_box(UDAV_DOWN_BOX); o = new Fl_Return_Button(90, 180, 65, 25, mgl_gettext("Do"));o->callback(chng_dlg_cb,wnd); o->box(UDAV_UP_BOX); o->down_box(UDAV_DOWN_BOX); wnd->end(); }
void make_window_banks () { int i, j, x, y, num; int elw, elh; elw = 176 * gui.BankWindow->w () / 800; elh = 24 * gui.BankWindow->h () / 600; gui.ob->begin (); x = 40; y = 10; num = 0; for (i = 1; i < 21; i++) { y += elh + 2; for (j = 1; j < 5; j++) { Fl_Button *butX = new Fl_Button (x + 1, y + 1, elw, elh, Banco[num].Name); butX->type (0); butX->color (FL_BLUE); butX->box (FL_FLAT_BOX); butX->selection_color (FL_RED); butX->labelsize (14); butX->align (68 | FL_ALIGN_INSIDE); butX->user_data ((void *) (num)); butX->value (0); butX->callback ((Fl_Callback *) preset_click); gui.ob->add (butX); x += elw + 4; num++; } x = 40; } gui.ob->end (); gui.made = 1; }
//----------------------------------------------------------------------------- void TrspDlg::create_dlg() { wnd = new Fl_Double_Window(220, 170, mgl_gettext("Transpose data")); Fl_Group *g = new Fl_Group(10, 30, 200, 90, mgl_gettext("Select new order of dimensions")); g->box(FL_DOWN_BOX); yxz = new Fl_Round_Button(20, 40, 75, 25, "y - x - z"); yxz->callback(trsp_rad_cb,this); zyx = new Fl_Round_Button(20, 65, 75, 25, "z - y - x"); zyx->callback(trsp_rad_cb,this); zxy = new Fl_Round_Button(20, 90, 75, 25, "z - x - y"); zxy->callback(trsp_rad_cb,this); yzx = new Fl_Round_Button(100, 40, 75, 25, "y - z - x");yzx->callback(trsp_rad_cb,this); xzy = new Fl_Round_Button(100, 65, 75, 25, "x - z - y");xzy->callback(trsp_rad_cb,this); xyz = new Fl_Round_Button(100, 90, 75, 25, "x - y - z");xyz->callback(trsp_rad_cb,this); g->end(); Fl_Button *o; o = new Fl_Button(25, 130, 75, 25, mgl_gettext("Cancel")); o->callback(close_dlg_cb,wnd); o->box(UDAV_UP_BOX); o->down_box(UDAV_DOWN_BOX); o->tooltip(mgl_gettext("Do nothing and close this window")); o = new Fl_Return_Button(125, 130, 75, 25, mgl_gettext("Do")); o->callback(trsp_dlg_cb,wnd); o->box(UDAV_UP_BOX); o->down_box(UDAV_DOWN_BOX); o->tooltip(mgl_gettext("Change data values and close this window")); wnd->end(); }
//----------------------------------------------------------------------------- void CropDlg::create_dlg() { wnd = new Fl_Double_Window(230, 155, mgl_gettext("Crop data")); x1 = new Fl_Input(45, 25, 80, 25, mgl_gettext("Lower bound")); x1->align(FL_ALIGN_TOP); x2 = new Fl_Input(140, 25, 80, 25, mgl_gettext("Upper bound")); x2->align(FL_ALIGN_TOP); y1 = new Fl_Input(45, 55, 80, 25); y2 = new Fl_Input(140, 55, 80, 25); z1 = new Fl_Input(45, 85, 80, 25); z2 = new Fl_Input(140, 85, 80, 25); new Fl_Box(15, 25, 25, 25, "X"); new Fl_Box(15, 55, 25, 25, "Y"); new Fl_Box(15, 85, 25, 25, "Z"); Fl_Button *o; o = new Fl_Button(45, 120, 75, 25, mgl_gettext("Cancel")); o->callback(close_dlg_cb,wnd); o->box(UDAV_UP_BOX); o->down_box(UDAV_DOWN_BOX); o->tooltip(mgl_gettext("Do nothing and close this window")); o = new Fl_Return_Button(145, 120, 75, 25, mgl_gettext("Crop")); o->callback(crop_dlg_cb,wnd); o->box(UDAV_UP_BOX); o->down_box(UDAV_DOWN_BOX); o->tooltip(mgl_gettext("Change data values and close this window")); wnd->end(); }
//----------------------------------------------------------------------------- void XYZDlg::create_dlg() { wnd = new Fl_Double_Window(325, 125, mgl_gettext("Change data sizes")); box = new Fl_Box(10, 10, 305, 40); box->box(UDAV_THIN_UP_BOX); box->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE); mx = new Fl_Spinner(30, 55, 75, 25, "mx"); mx->tooltip(mgl_gettext("New size of data on 1st dimension (x-direction)")); my = new Fl_Spinner(135, 55, 75, 25, "my"); my->tooltip(mgl_gettext("New size of data on 2nd dimension (y-direction)")); mz = new Fl_Spinner(240, 55, 75, 25, "mz"); mz->tooltip(mgl_gettext("New size of data on 3d dimension (z-direction)")); ch = new Fl_Check_Button(15, 90, 95, 25); Fl_Button *o; o = new Fl_Button(125, 90, 85, 25, mgl_gettext("Cancel")); o->callback(close_dlg_cb,wnd); o->box(UDAV_UP_BOX); o->down_box(UDAV_DOWN_BOX); o->tooltip(mgl_gettext("Do nothing and close this window")); o = new Fl_Return_Button(230, 90, 85, 25, mgl_gettext("Change"));o->callback(xyz_dlg_cb,wnd); o->box(UDAV_UP_BOX); o->down_box(UDAV_DOWN_BOX); o->tooltip(mgl_gettext("Change (resize) data")); wnd->end(); }
void onelabGroup::_addMenu(const std::string &path, Fl_Callback *callback, void *data) { Fl_Tree_Item *n = _tree->add(path.c_str()); _tree->begin(); int ww = _baseWidth - (n->depth() + 1) * _indent; int hh = n->labelsize() + 4; Fl_Group *grp = new Fl_Group(1, 1, ww, hh); Fl_Button *but = new Fl_Button(1, 1, ww, hh); but->align(FL_ALIGN_LEFT | FL_ALIGN_INSIDE | FL_ALIGN_CLIP); but->callback(callback, data); but->box(FL_FLAT_BOX); but->color(_tree->color()); but->selection_color(_tree->color()); grp->end(); if(!_enableTreeWidgetResize) grp->resizable(0); _treeWidgets.push_back(grp); std::string label = path; std::string::size_type last = path.find_last_of('/'); if(last != std::string::npos) label = path.substr(last + 1); but->copy_label(label.c_str()); n->widget(grp); _tree->end(); }
int main (int argc, char **argv) { Fl_Window* w; fl_init_locale_support("eiconsconf", PREFIX"/share/locale"); readIconsConfiguration(); {Fl_Window* o = iconsConfWindow = new Fl_Window(265, 314, _("Icons settings")); w = o; o->shortcut(0xff1b); {Fl_Button* o = new Fl_Button(25, 280, 75, 25, _("&OK")); o->callback((Fl_Callback*)cb_OK); } {Fl_Button* o = new Fl_Button(185, 280, 75, 25, _("&Cancel")); o->callback((Fl_Callback*)cb_Cancel); } {Fl_Button* o = new Fl_Button(105, 280, 75, 25, _("&Apply")); o->callback((Fl_Callback*)cb_Apply); } {Fl_Tabs* o = new Fl_Tabs(3, 5, 257, 265); o->color((Fl_Color)0xfffffffe); {Fl_Group* o = new Fl_Group(1, 23, 255, 241, _("Look&&feel")); o->align(FL_ALIGN_TOP|FL_ALIGN_LEFT); {Fl_Button* o = colorButton = new Fl_Button(165, 17, 60, 18, _("Background color: ")); o->box(FL_DOWN_BOX); o->callback((Fl_Callback*)cb_colorButton); o->align(FL_ALIGN_LEFT|FL_ALIGN_WRAP); o->color((Fl_Color) label_background); if(label_trans) o->deactivate(); } {Fl_Button* o = colorButton1 = new Fl_Button(165, 47, 60, 18, _("Label color: ")); o->box(FL_DOWN_BOX); o->callback((Fl_Callback*)cb_colorButton1); o->align(FL_ALIGN_LEFT|FL_ALIGN_WRAP); o->color((Fl_Color) label_foreground); } {Fl_Value_Slider* o = maxWidthSlider = new Fl_Value_Slider(115, 95, 125, 20, _("Maximum width: ")); o->type(Fl_Value_Slider::HORIZONTAL); o->minimum(48); o->maximum(200); o->step(1); o->value(50); o->slider_size(10); o->callback((Fl_Callback*)cb_maxWidthSlider); o->align(FL_ALIGN_LEFT|FL_ALIGN_WRAP); o->value(label_maxwidth); } {Fl_Value_Slider* o = fontsizeSlider = new Fl_Value_Slider(115, 125, 125, 20, _("Font height: ")); o->type(Fl_Value_Slider::HORIZONTAL|Fl_Slider::TICK_ABOVE); o->minimum(8); o->maximum(48); o->step(1); o->value(10); o->slider_size(10); o->callback((Fl_Callback*)cb_fontsizeSlider); o->align(FL_ALIGN_LEFT|FL_ALIGN_WRAP); o->value(label_fontsize); } {Fl_Value_Slider* o = gridspaceSlider = new Fl_Value_Slider(115, 155, 125, 20, _("Grid spacing: ")); o->type(Fl_Value_Slider::HORIZONTAL|Fl_Slider::TICK_ABOVE); o->minimum(1); o->maximum(50); o->step(1); o->value(10); o->slider_size(10); o->callback((Fl_Callback*)cb_gridspaceSlider); o->align(FL_ALIGN_LEFT|FL_ALIGN_WRAP); o->value(label_gridspacing); } {Fl_Check_Button* o = autoArrButton = new Fl_Check_Button(25, 215, 222, 20, _("Auto arrange icons")); o->callback((Fl_Callback*)cb_autoArrButton); o->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE|FL_ALIGN_CLIP); o->value(auto_arr); } {Fl_Check_Button* o = engageButton = new Fl_Check_Button(25, 190, 222, 20, _("Engage with just one click")); o->callback((Fl_Callback*)cb_engageButton); o->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE|FL_ALIGN_CLIP); o->value(label_engage_1click); } {Fl_Check_Button* o = bg_color_check = new Fl_Check_Button(227, 17, 20, 18); o->callback((Fl_Callback*)cb_bg_color_check); o->tooltip(_("Clear this, to get transparent background.")); if(!label_trans) o->set_value(); } o->end(); } o->end(); } o->end(); o->resizable(o); } w->show(argc, argv); return Fl::run(); }
// add parameter string to tree Fl_Widget *onelabGroup::_addParameterWidget(onelab::string &p, int ww, int hh, Fl_Tree_Item *n, bool highlight, Fl_Color c) { char *path = strdup(getPath(n).c_str()); _treeStrings.push_back(path); // macro button if(p.getAttribute("Macro") == "Gmsh"){ Fl_Button *but = new Fl_Button(1, 1, ww / _widgetLabelRatio, hh); but->box(FL_FLAT_BOX); but->color(_tree->color()); but->selection_color(_tree->color()); but->align(FL_ALIGN_LEFT | FL_ALIGN_INSIDE | FL_ALIGN_CLIP); //TODO but->callback(onelab_string_button_cb, (void*)path); if(highlight) but->color(c); return but; } // non-editable value if(p.getReadOnly()){ Fl_Output *but = new Fl_Output(1, 1, ww, hh); but->value(p.getValue().c_str()); but->align(FL_ALIGN_RIGHT); if(highlight) but->color(c); return but; } // simple string (no menu) if(p.getChoices().empty() && p.getKind() != "file"){ Fl_Input *but = new Fl_Input(1, 1, ww, hh); but->value(p.getValue().c_str()); //TODO but->callback(onelab_string_input_cb, (void*)path); but->when(FL_WHEN_ENTER_KEY); but->align(FL_ALIGN_RIGHT); if(highlight) but->color(c); return but; } // general string input Fl_Input_Choice *but = new Fl_Input_Choice(1, 1, ww, hh); std::string multipleSelection = p.getAttribute("MultipleSelection"); if(multipleSelection.size()) ;//but->menubutton()->callback(multiple_selection_menu_cb, but); std::vector<Fl_Menu_Item> menu; for(unsigned int j = 0; j < p.getChoices().size(); j++){ char *str = strdup(p.getChoices()[j].c_str()); _treeStrings.push_back(str); bool divider = (p.getKind() == "file" && j == p.getChoices().size() - 1); int choice = multipleSelection.size() ? FL_MENU_TOGGLE : 0; if(multipleSelection.size() > j && multipleSelection[j] == '1') choice |= FL_MENU_VALUE; Fl_Menu_Item it = {str, 0, 0, 0, divider ? FL_MENU_DIVIDER : choice}; menu.push_back(it); } //if(p.getKind() == "file"){ // Fl_Menu_Item it = {"Choose...", 0, onelab_input_choice_file_chooser_cb, (void*)n}; // menu.push_back(it); // Fl_Menu_Item it2 = {"Edit...", 0, onelab_input_choice_file_edit_cb, (void*)n}; // menu.push_back(it2); // if(GuessFileFormatFromFileName(p.getValue()) >= 0){ // Fl_Menu_Item it3 = {"Merge...", 0, onelab_input_choice_file_merge_cb, (void*)n}; // menu.push_back(it3); // } //} Fl_Menu_Item it = {0}; menu.push_back(it); but->menubutton()->copy(&menu[0]); but->value(p.getValue().c_str()); but->callback(onelab_string_input_choice_cb, (void*)path); but->input()->when(FL_WHEN_ENTER_KEY); but->align(FL_ALIGN_RIGHT); if(highlight) but->input()->color(c); return but; }
Fl_Group* FilterUI::make_window() { { filterui = new Fl_Group(0, 0, 275, 75); filterui->box(FL_FLAT_BOX); filterui->color(FL_LIGHT1); filterui->selection_color(FL_BACKGROUND_COLOR); filterui->labeltype(FL_NO_LABEL); filterui->labelfont(1); filterui->labelsize(14); filterui->labelcolor(FL_FOREGROUND_COLOR); filterui->user_data((void*)(this)); filterui->align(FL_ALIGN_TOP); filterui->when(FL_WHEN_RELEASE); { filterparamswindow = new Fl_Group(0, 0, 275, 75, "Filter Parameters"); filterparamswindow->box(FL_PLASTIC_UP_BOX); filterparamswindow->color(FL_CYAN); filterparamswindow->labeltype(FL_ENGRAVED_LABEL); filterparamswindow->labelsize(10); filterparamswindow->align(FL_ALIGN_TOP|FL_ALIGN_INSIDE); { Fl_Choice* o = analogfiltertypechoice = new Fl_Choice(10, 50, 50, 15, "FilterType"); analogfiltertypechoice->tooltip("The Filter type"); analogfiltertypechoice->down_box(FL_BORDER_BOX); analogfiltertypechoice->labelsize(10); analogfiltertypechoice->textsize(10); analogfiltertypechoice->callback((Fl_Callback*)cb_analogfiltertypechoice); analogfiltertypechoice->align(FL_ALIGN_TOP_LEFT); analogfiltertypechoice->menu(menu_analogfiltertypechoice); o->value(pars->Ptype); } // Fl_Choice* analogfiltertypechoice { Fl_Choice* o = svfiltertypechoice = new Fl_Choice(10, 50, 50, 15, "FilterType"); svfiltertypechoice->tooltip("The Filter type"); svfiltertypechoice->down_box(FL_BORDER_BOX); svfiltertypechoice->labelsize(10); svfiltertypechoice->textsize(10); svfiltertypechoice->callback((Fl_Callback*)cb_svfiltertypechoice); svfiltertypechoice->align(FL_ALIGN_TOP_LEFT); svfiltertypechoice->menu(menu_svfiltertypechoice); o->value(pars->Ptype); } // Fl_Choice* svfiltertypechoice { Fl_Choice* o = filtertype = new Fl_Choice(10, 20, 60, 15, "Category"); filtertype->tooltip("The Category of the Filter (Analog/Formantic/etc.)"); filtertype->down_box(FL_BORDER_BOX); filtertype->labelsize(10); filtertype->textsize(10); filtertype->callback((Fl_Callback*)cb_filtertype); filtertype->align(FL_ALIGN_TOP_LEFT); filtertype->menu(menu_filtertype); o->value(pars->Pcategory); } // Fl_Choice* filtertype { WidgetPDial* o = cfreqdial = new WidgetPDial(75, 25, 30, 30, "C.Freq"); cfreqdial->tooltip("Center Frequency of the Filter or the base position in the vowel\'s sequence"); cfreqdial->box(FL_ROUND_UP_BOX); cfreqdial->color(FL_BACKGROUND_COLOR); cfreqdial->selection_color(FL_INACTIVE_COLOR); cfreqdial->labeltype(FL_NORMAL_LABEL); cfreqdial->labelfont(0); cfreqdial->labelsize(10); cfreqdial->labelcolor(FL_FOREGROUND_COLOR); cfreqdial->maximum(127); cfreqdial->step(1); cfreqdial->callback((Fl_Callback*)cb_cfreqdial); cfreqdial->align(FL_ALIGN_BOTTOM); cfreqdial->when(FL_WHEN_CHANGED); o->value(pars->Pfreq); } // WidgetPDial* cfreqdial { WidgetPDial* o = qdial = new WidgetPDial(110, 25, 30, 30, "Q"); qdial->tooltip("Filter resonance or bandwidth"); qdial->box(FL_ROUND_UP_BOX); qdial->color(FL_BACKGROUND_COLOR); qdial->selection_color(FL_INACTIVE_COLOR); qdial->labeltype(FL_NORMAL_LABEL); qdial->labelfont(0); qdial->labelsize(10); qdial->labelcolor(FL_FOREGROUND_COLOR); qdial->maximum(127); qdial->step(1); qdial->callback((Fl_Callback*)cb_qdial); qdial->align(FL_ALIGN_BOTTOM); qdial->when(FL_WHEN_CHANGED); o->value(pars->Pq); } // WidgetPDial* qdial { WidgetPDial* o = freqtrdial = new WidgetPDial(215, 25, 30, 30, "freq.tr."); freqtrdial->tooltip("Filter frequency tracking (left is negative, middle is 0, and right is positi\ ve)"); freqtrdial->box(FL_ROUND_UP_BOX); freqtrdial->color(FL_BACKGROUND_COLOR); freqtrdial->selection_color(FL_INACTIVE_COLOR); freqtrdial->labeltype(FL_NORMAL_LABEL); freqtrdial->labelfont(0); freqtrdial->labelsize(10); freqtrdial->labelcolor(FL_FOREGROUND_COLOR); freqtrdial->maximum(127); freqtrdial->step(1); freqtrdial->callback((Fl_Callback*)cb_freqtrdial); freqtrdial->align(FL_ALIGN_BOTTOM); freqtrdial->when(FL_WHEN_CHANGED); o->value(pars->Pfreqtrack); } // WidgetPDial* freqtrdial { vsnsadial = new WidgetPDial(145, 25, 30, 30, "V.SnsA."); vsnsadial->tooltip("Velocity sensing amount of the Filter"); vsnsadial->box(FL_ROUND_UP_BOX); vsnsadial->color(FL_BACKGROUND_COLOR); vsnsadial->selection_color(FL_INACTIVE_COLOR); vsnsadial->labeltype(FL_NORMAL_LABEL); vsnsadial->labelfont(0); vsnsadial->labelsize(10); vsnsadial->labelcolor(FL_FOREGROUND_COLOR); vsnsadial->maximum(127); vsnsadial->step(1); vsnsadial->callback((Fl_Callback*)cb_vsnsadial); vsnsadial->align(FL_ALIGN_BOTTOM); vsnsadial->when(FL_WHEN_CHANGED); } // WidgetPDial* vsnsadial { vsnsdial = new WidgetPDial(180, 25, 30, 30, "V.Sns."); vsnsdial->tooltip("Velocity Sensing Function of the Filter"); vsnsdial->box(FL_ROUND_UP_BOX); vsnsdial->color(FL_BACKGROUND_COLOR); vsnsdial->selection_color(FL_INACTIVE_COLOR); vsnsdial->labeltype(FL_NORMAL_LABEL); vsnsdial->labelfont(0); vsnsdial->labelsize(10); vsnsdial->labelcolor(FL_FOREGROUND_COLOR); vsnsdial->maximum(127); vsnsdial->step(1); vsnsdial->callback((Fl_Callback*)cb_vsnsdial); vsnsdial->align(FL_ALIGN_BOTTOM); vsnsdial->when(FL_WHEN_CHANGED); } // WidgetPDial* vsnsdial { WidgetPDial* o = gaindial = new WidgetPDial(250, 35, 20, 20, "gain"); gaindial->tooltip("Filter output gain/damp"); gaindial->box(FL_ROUND_UP_BOX); gaindial->color(FL_BACKGROUND_COLOR); gaindial->selection_color(FL_INACTIVE_COLOR); gaindial->labeltype(FL_NORMAL_LABEL); gaindial->labelfont(0); gaindial->labelsize(10); gaindial->labelcolor(FL_FOREGROUND_COLOR); gaindial->maximum(127); gaindial->step(1); gaindial->callback((Fl_Callback*)cb_gaindial); gaindial->align(FL_ALIGN_BOTTOM); gaindial->when(FL_WHEN_CHANGED); o->value(pars->Pgain); } // WidgetPDial* gaindial { Fl_Choice* o = stcounter = new Fl_Choice(235, 5, 35, 15, "St"); stcounter->tooltip("Filter stages (in order to increase dB/oct. value and the order of the filter\ )"); stcounter->down_box(FL_BORDER_BOX); stcounter->labelsize(10); stcounter->textfont(1); stcounter->textsize(10); stcounter->callback((Fl_Callback*)cb_stcounter); for (int i=0;i<MAX_FILTER_STAGES;i++) {char tmp[10];snprintf(tmp,10,"%dx",i+1);o->add(tmp);}; o->value(pars->Pstages); } // Fl_Choice* stcounter filterparamswindow->end(); } // Fl_Group* filterparamswindow { editbutton = new Fl_Button(15, 40, 50, 25, "Edit"); editbutton->box(FL_PLASTIC_UP_BOX); editbutton->labelfont(1); editbutton->labelsize(11); editbutton->callback((Fl_Callback*)cb_editbutton); } // Fl_Button* editbutton { Fl_Button* o = new Fl_Button(186, 5, 15, 15, "C"); o->box(FL_THIN_UP_BOX); o->color((Fl_Color)179); o->labelfont(1); o->labelsize(10); o->labelcolor(FL_BACKGROUND2_COLOR); o->callback((Fl_Callback*)cb_C); } // Fl_Button* o { Fl_Button* o = new Fl_Button(203, 5, 15, 15, "P"); o->box(FL_THIN_UP_BOX); o->color((Fl_Color)179); o->labelfont(1); o->labelsize(10); o->labelcolor(FL_BACKGROUND2_COLOR); o->callback((Fl_Callback*)cb_P); } // Fl_Button* o filterui->end(); } // Fl_Group* filterui return filterui; }
Fl_Double_Window* FilterUI::make_formant_window() { { formantparswindow = new Fl_Double_Window(700, 205, "Formant Filter Parameters"); formantparswindow->user_data((void*)(this)); { Fl_Group* o = new Fl_Group(485, 47, 105, 113); o->box(FL_THIN_UP_BOX); { Fl_Counter* o = new Fl_Counter(545, 80, 40, 15, "Formant "); o->type(1); o->labelfont(1); o->labelsize(10); o->minimum(0); o->maximum(127); o->step(1); o->textsize(10); o->callback((Fl_Callback*)cb_Formant); o->align(FL_ALIGN_LEFT); o->bounds(0,FF_MAX_FORMANTS-1); o->value(nformant); } // Fl_Counter* o { Fl_Counter* o = new Fl_Counter(545, 55, 40, 20, "Vowel no."); o->type(1); o->labelfont(1); o->labelsize(10); o->minimum(0); o->maximum(127); o->step(1); o->textfont(1); o->textsize(11); o->callback((Fl_Callback*)cb_Vowel); o->align(FL_ALIGN_LEFT); o->bounds(0,FF_MAX_VOWELS-1); o->value(nvowel); } // Fl_Counter* o { formantparsgroup = new Fl_Group(490, 105, 95, 50); formantparsgroup->box(FL_ENGRAVED_FRAME); { formant_freq_dial = new WidgetPDial(495, 115, 25, 25, "freq"); formant_freq_dial->tooltip("Formant frequency"); formant_freq_dial->box(FL_ROUND_UP_BOX); formant_freq_dial->color(FL_BACKGROUND_COLOR); formant_freq_dial->selection_color(FL_INACTIVE_COLOR); formant_freq_dial->labeltype(FL_NORMAL_LABEL); formant_freq_dial->labelfont(0); formant_freq_dial->labelsize(10); formant_freq_dial->labelcolor(FL_FOREGROUND_COLOR); formant_freq_dial->maximum(127); formant_freq_dial->step(1); formant_freq_dial->callback((Fl_Callback*)cb_formant_freq_dial); formant_freq_dial->align(FL_ALIGN_BOTTOM); formant_freq_dial->when(FL_WHEN_CHANGED); } // WidgetPDial* formant_freq_dial { formant_q_dial = new WidgetPDial(525, 115, 24, 25, "Q"); formant_q_dial->tooltip("Formant\'s Q"); formant_q_dial->box(FL_ROUND_UP_BOX); formant_q_dial->color(FL_BACKGROUND_COLOR); formant_q_dial->selection_color(FL_INACTIVE_COLOR); formant_q_dial->labeltype(FL_NORMAL_LABEL); formant_q_dial->labelfont(0); formant_q_dial->labelsize(10); formant_q_dial->labelcolor(FL_FOREGROUND_COLOR); formant_q_dial->maximum(127); formant_q_dial->step(1); formant_q_dial->callback((Fl_Callback*)cb_formant_q_dial); formant_q_dial->align(FL_ALIGN_BOTTOM); formant_q_dial->when(FL_WHEN_CHANGED); } // WidgetPDial* formant_q_dial { formant_amp_dial = new WidgetPDial(555, 115, 24, 25, "amp"); formant_amp_dial->tooltip("Formant amplitude"); formant_amp_dial->box(FL_ROUND_UP_BOX); formant_amp_dial->color(FL_BACKGROUND_COLOR); formant_amp_dial->selection_color(FL_INACTIVE_COLOR); formant_amp_dial->labeltype(FL_NORMAL_LABEL); formant_amp_dial->labelfont(0); formant_amp_dial->labelsize(10); formant_amp_dial->labelcolor(FL_FOREGROUND_COLOR); formant_amp_dial->maximum(127); formant_amp_dial->step(1); formant_amp_dial->callback((Fl_Callback*)cb_formant_amp_dial); formant_amp_dial->align(FL_ALIGN_BOTTOM); formant_amp_dial->when(FL_WHEN_CHANGED); } // WidgetPDial* formant_amp_dial formantparsgroup->end(); } // Fl_Group* formantparsgroup o->end(); } // Fl_Group* o { Fl_Group* o = new Fl_Group(590, 47, 100, 113); o->box(FL_THIN_UP_BOX); { Fl_Counter* o = new Fl_Counter(595, 62, 55, 20, "Seq.Size"); o->type(1); o->labelfont(1); o->labelsize(10); o->minimum(0); o->maximum(127); o->step(1); o->textfont(1); o->textsize(11); o->callback((Fl_Callback*)cb_Seq); o->align(FL_ALIGN_TOP_LEFT); o->bounds(1,FF_MAX_SEQUENCE-1); o->value(pars->Psequencesize); } // Fl_Counter* o { Fl_Counter* o = new Fl_Counter(595, 97, 40, 15, "S.Pos."); o->tooltip("Current position from the sequence"); o->type(1); o->labelfont(1); o->labelsize(10); o->minimum(0); o->maximum(127); o->step(1); o->textsize(10); o->callback((Fl_Callback*)cb_S); o->align(FL_ALIGN_TOP_RIGHT); o->bounds(0,FF_MAX_SEQUENCE-2); o->value(nseqpos); } // Fl_Counter* o { Fl_Counter* o = vowel_counter = new Fl_Counter(640, 97, 40, 15, "Vowel"); vowel_counter->type(1); vowel_counter->labelsize(10); vowel_counter->minimum(0); vowel_counter->maximum(127); vowel_counter->step(1); vowel_counter->textsize(10); vowel_counter->callback((Fl_Callback*)cb_vowel_counter); vowel_counter->align(FL_ALIGN_TOP); o->bounds(0,FF_MAX_VOWELS-1); } // Fl_Counter* vowel_counter { Fl_Check_Button* o = new Fl_Check_Button(625, 132, 60, 20, "Neg.Input"); o->tooltip("Negate the input from LFO/envelopes/etc."); o->down_box(FL_DOWN_BOX); o->labelsize(10); o->callback((Fl_Callback*)cb_Neg); o->value(pars->Psequencereversed); } // Fl_Check_Button* o { WidgetPDial* o = strchdial = new WidgetPDial(595, 130, 25, 25, "Strch"); strchdial->tooltip("Sequence Stretch"); strchdial->box(FL_ROUND_UP_BOX); strchdial->color(FL_BACKGROUND_COLOR); strchdial->selection_color(FL_INACTIVE_COLOR); strchdial->labeltype(FL_NORMAL_LABEL); strchdial->labelfont(0); strchdial->labelsize(10); strchdial->labelcolor(FL_FOREGROUND_COLOR); strchdial->maximum(127); strchdial->step(1); strchdial->callback((Fl_Callback*)cb_strchdial); strchdial->align(FL_ALIGN_TOP); strchdial->when(FL_WHEN_CHANGED); o->value(pars->Psequencestretch); } // WidgetPDial* strchdial o->end(); } // Fl_Group* o { Fl_Counter* o = new Fl_Counter(485, 15, 65, 20, "Num.Formants"); o->type(1); o->labelfont(1); o->labelsize(10); o->minimum(0); o->maximum(127); o->step(1); o->callback((Fl_Callback*)cb_Num); o->align(FL_ALIGN_TOP_LEFT); o->bounds(1,FF_MAX_FORMANTS); o->value(pars->Pnumformants); } // Fl_Counter* o { WidgetPDial* o = frsldial = new WidgetPDial(565, 15, 25, 25, "Fr.Sl."); frsldial->tooltip("Formant\'s Slowness (Morphing)"); frsldial->box(FL_ROUND_UP_BOX); frsldial->color(FL_BACKGROUND_COLOR); frsldial->selection_color(FL_INACTIVE_COLOR); frsldial->labeltype(FL_NORMAL_LABEL); frsldial->labelfont(1); frsldial->labelsize(10); frsldial->labelcolor(FL_FOREGROUND_COLOR); frsldial->maximum(127); frsldial->step(1); frsldial->callback((Fl_Callback*)cb_frsldial); frsldial->align(FL_ALIGN_TOP); frsldial->when(FL_WHEN_CHANGED); o->value(pars->Pformantslowness); } // WidgetPDial* frsldial { Fl_Value_Output* o = centerfreqvo = new Fl_Value_Output(515, 164, 33, 18, "C.f."); centerfreqvo->tooltip("Center Frequency (kHz)"); centerfreqvo->minimum(1); centerfreqvo->maximum(10); centerfreqvo->step(0.01); centerfreqvo->value(1); centerfreqvo->textfont(1); centerfreqvo->callback((Fl_Callback*)cb_centerfreqvo); centerfreqvo->when(3); o->value(pars->getcenterfreq()/1000.0); } // Fl_Value_Output* centerfreqvo { Fl_Value_Output* o = octavesfreqvo = new Fl_Value_Output(515, 182, 33, 18, "Oct."); octavesfreqvo->tooltip("No. of octaves"); octavesfreqvo->minimum(1); octavesfreqvo->maximum(127); octavesfreqvo->step(1); octavesfreqvo->value(5); octavesfreqvo->textfont(1); octavesfreqvo->callback((Fl_Callback*)cb_octavesfreqvo); octavesfreqvo->when(3); o->value(pars->getoctavesfreq()); } // Fl_Value_Output* octavesfreqvo { Fl_Slider* o = cfknob = new Fl_Slider(551, 167, 84, 15); cfknob->type(5); cfknob->box(FL_FLAT_BOX); cfknob->maximum(127); cfknob->callback((Fl_Callback*)cb_cfknob); o->value(pars->Pcenterfreq); } // Fl_Slider* cfknob { Fl_Slider* o = octknob = new Fl_Slider(551, 185, 84, 15); octknob->type(5); octknob->box(FL_FLAT_BOX); octknob->maximum(127); octknob->callback((Fl_Callback*)cb_octknob); o->value(pars->Poctavesfreq); } // Fl_Slider* octknob { FormantFilterGraph* o = formantfiltergraph = new FormantFilterGraph(5, 5, 475, 195); formantfiltergraph->box(FL_BORDER_BOX); formantfiltergraph->color(FL_BACKGROUND_COLOR); formantfiltergraph->selection_color(FL_BACKGROUND_COLOR); formantfiltergraph->labeltype(FL_NORMAL_LABEL); formantfiltergraph->labelfont(0); formantfiltergraph->labelsize(14); formantfiltergraph->labelcolor(FL_FOREGROUND_COLOR); formantfiltergraph->align(FL_ALIGN_CENTER); formantfiltergraph->when(FL_WHEN_RELEASE); o->init(pars,&nvowel,&nformant); } // FormantFilterGraph* formantfiltergraph { WidgetPDial* o = wvknob = new WidgetPDial(600, 15, 25, 25, "Vw.Cl."); wvknob->tooltip("Vowel \"clearness\" (how the mixed vowels are avoided)"); wvknob->box(FL_ROUND_UP_BOX); wvknob->color(FL_BACKGROUND_COLOR); wvknob->selection_color(FL_INACTIVE_COLOR); wvknob->labeltype(FL_NORMAL_LABEL); wvknob->labelfont(1); wvknob->labelsize(10); wvknob->labelcolor(FL_FOREGROUND_COLOR); wvknob->maximum(127); wvknob->step(1); wvknob->callback((Fl_Callback*)cb_wvknob); wvknob->align(FL_ALIGN_TOP); wvknob->when(FL_WHEN_CHANGED); o->value(pars->Pvowelclearness); } // WidgetPDial* wvknob { Fl_Button* o = new Fl_Button(645, 180, 50, 25, "Close"); o->box(FL_THIN_UP_BOX); o->callback((Fl_Callback*)cb_Close); } // Fl_Button* o { Fl_Button* o = new Fl_Button(635, 25, 25, 15, "C"); o->box(FL_THIN_UP_BOX); o->color((Fl_Color)179); o->labelfont(1); o->labelsize(11); o->labelcolor(FL_BACKGROUND2_COLOR); o->callback((Fl_Callback*)cb_C1); } // Fl_Button* o { Fl_Button* o = new Fl_Button(665, 25, 25, 15, "P"); o->box(FL_THIN_UP_BOX); o->color((Fl_Color)179); o->labelfont(1); o->labelsize(11); o->labelcolor(FL_BACKGROUND2_COLOR); o->callback((Fl_Callback*)cb_P1); } // Fl_Button* o { new Fl_Box(635, 10, 55, 15, "Vowel"); } // Fl_Box* o formantparswindow->end(); } // Fl_Double_Window* formantparswindow return formantparswindow; }
void initParamWindow() { const int heightInput = 28; const int wideLabel = 205; const int wideInput = 130; const int between = 5; const int Ybetween = 3; const int YbetweenMore = 6; const int alignStyle = FL_ALIGN_INSIDE | FL_ALIGN_RIGHT; const Fl_Boxtype inputStyle = FL_PLASTIC_DOWN_BOX; int x = 10; int y = 10; const int wide = x+wideLabel+between+wideInput+x; const int height = y + 14*(heightInput+Ybetween) - Ybetween + 9*YbetweenMore + y; paramWindow = new Fl_Window( wide, height, _("Parameters") ); Fl_Group* win2 = new Fl_Group( 0, 0, wide, height ); paramWindow->resizable(win2); { Fl_Box* o = new Fl_Box( x, y, wideLabel, heightInput, _("Schema size:") ); o->align( alignStyle ); } { Fl_Value_Slider* o = new Fl_Value_Slider( x+wideLabel+between, y, wideInput, heightInput ); o->box(inputStyle); o->type(FL_HORIZONTAL); o->minimum(0); o->maximum(1); o->value(glito->getCloseEdge()); o->step(0.01); o->callback( (Fl_Callback*)closeEdge_param, glito ); } y += heightInput + Ybetween; { Fl_Box* o = new Fl_Box( x, y, wideLabel, heightInput, _("Preview Size:") ); o->align( alignStyle ); } { Fl_Value_Slider* o = new Fl_Value_Slider( x+wideLabel+between, y, wideInput, heightInput ); o->box(inputStyle); o->type(FL_HORIZONTAL); o->minimum(0); o->maximum(1); o->value(glito->getPreviewSize()); o->step(0.01); o->callback( (Fl_Callback*)previewSize_param, glito ); } y += heightInput + Ybetween + YbetweenMore; { Fl_Box* o = new Fl_Box( x, y, wideLabel, heightInput, _("Rotation shift (rad):") ); o->align( alignStyle ); } { Fl_Value_Slider* o = new Fl_Value_Slider( x+wideLabel+between, y, wideInput, heightInput ); o->box(inputStyle); o->type(FL_HORIZONTAL); o->minimum(0.002); o->maximum(0.2); o->value(glito->rotationShift); o->step(0.001); o->callback( (Fl_Callback*)rotationShift_param, glito ); } y += heightInput + Ybetween + YbetweenMore; { Fl_Box* o = new Fl_Box( x, y, wideLabel, heightInput, _("Size of saved images:") ); o->align( alignStyle ); } { Fl_Int_Input* o = new Fl_Int_Input( x+wideLabel+between, y, wideInput/2-5, heightInput ); o->box(inputStyle); o->value(IS::translate(glito->imageSavedWidth).c_str()); o->callback( (Fl_Callback*)imageSavedWidth_param, glito ); } { Fl_Box* o = new Fl_Box( x+wideLabel+between+wideInput/2-5, y, 10, heightInput, "x" ); o->align( FL_ALIGN_INSIDE | FL_ALIGN_CENTER ); } { Fl_Int_Input* o = new Fl_Int_Input( x+wideLabel+between+wideInput/2+5, y, wideInput/2-5, heightInput ); o->box(inputStyle); o->value(IS::translate(glito->imageSavedHeight).c_str()); o->callback( (Fl_Callback*)imageSavedHeight_param, glito ); } y += heightInput + Ybetween; { Fl_Box* o = new Fl_Box( x, y, wideLabel, heightInput, _("Size of animations:") ); o->align( alignStyle ); } { Fl_Int_Input* o = new Fl_Int_Input( x+wideLabel+between, y, wideInput/2-5, heightInput ); o->box(inputStyle); o->value(IS::translate(glito->animationSavedWidth).c_str()); o->callback( (Fl_Callback*)animationSavedWidth_param, glito ); } { Fl_Box* o = new Fl_Box( x+wideLabel+between+wideInput/2-5, y, 10, heightInput, "x" ); o->align( FL_ALIGN_INSIDE | FL_ALIGN_CENTER ); } { Fl_Int_Input* o = new Fl_Int_Input( x+wideLabel+between+wideInput/2+5, y, wideInput/2-5, heightInput ); o->box(inputStyle); o->value(IS::translate(glito->animationSavedHeight).c_str()); o->callback( (Fl_Callback*)animationSavedHeight_param, glito ); } y += heightInput + Ybetween + YbetweenMore; { Fl_Box* o = new Fl_Box( x, y, wideLabel, heightInput, _("Frames per cycle (>1):") ); o->align( alignStyle ); } { Fl_Value_Input* o = new Fl_Value_Input( x+wideLabel+between, y, wideInput, heightInput ); o->box(inputStyle); o->minimum(10); o->maximum(100); o->value(glito->framesPerCycle); o->step(1); o->callback( (Fl_Callback*)framesPerCycle_param, glito ); } y += heightInput + Ybetween + YbetweenMore; { Fl_Box* o = new Fl_Box( x, y, wideLabel, heightInput, _("Motion detection (ms):") ); o->align( alignStyle ); } { Fl_Value_Slider* o = new Fl_Value_Slider( x+wideLabel+between, y, wideInput, heightInput ); o->box(inputStyle); o->type(FL_HORIZONTAL); o->minimum(1); o->maximum(200); o->value(glito->intervalMotionDetection); o->step(1); o->callback( (Fl_Callback*)intervalMotionDetection_param, glito ); } y += heightInput + Ybetween + YbetweenMore; { { Fl_Button* o = new Fl_Button( x, y, 70, heightInput, _("Density") ); o->box(FL_PLASTIC_UP_BOX); o->value( glito->trueDensity ); o->callback( (Fl_Callback*)trueDensity_param, glito ); } { Fl_Box* o = new Fl_Box( x, y, wideLabel+30, heightInput, _("or pseudo-density:") ); o->align( alignStyle ); if ( glito->trueDensity ) o->deactivate(); } { Fl_Value_Slider* o = new Fl_Value_Slider( x+wideLabel+30+between, y, 100, heightInput ); o->box(inputStyle); if ( glito->trueDensity ) o->deactivate(); o->type(FL_HORIZONTAL); o->minimum(0); o->maximum(1); o->value( ImagePseudoDensity::pseudoDensity.getProba() ); o->step(0.01); o->callback( (Fl_Callback*)logProbaHitMax_param ); } } y += heightInput + Ybetween + YbetweenMore; { Fl_Box* o = new Fl_Box( x, y, wideInput, heightInput, _("Points for framing:") ); o->align( FL_ALIGN_INSIDE | FL_ALIGN_LEFT ); } y += heightInput; { int xLine = 0; { Fl_Int_Input* o = new Fl_Int_Input( x+xLine, y, 80, heightInput ); o->box(inputStyle); o->value(IS::translate(glito->pointsForFraming).c_str()); o->callback( (Fl_Callback*)pointsForFraming_param, glito ); } xLine += 80; { Fl_Box* o = new Fl_Box( x+xLine, y, 20, heightInput, " (x " ); o->align( FL_ALIGN_INSIDE | FL_ALIGN_CENTER ); } xLine += 20; { Fl_Value_Slider* o = new Fl_Value_Slider( x+xLine, y, 100, heightInput ); o->box(inputStyle); o->type(FL_HORIZONTAL); o->minimum(0); o->maximum(1); o->box(inputStyle); o->value(glito->animationFraming); o->step(0.01); o->callback( (Fl_Callback*)animationFraming_param, glito ); } xLine += 100; { Fl_Box* o = new Fl_Box( x+xLine, y, 110, heightInput, _(" for animation)") ); o->align( FL_ALIGN_INSIDE | FL_ALIGN_LEFT ); } } y += heightInput + 2*Ybetween + YbetweenMore; { Fl_Box* o = new Fl_Box( x, y, wide-20, heightInput, _("Number of iterations limited by:") ); o->align( FL_ALIGN_INSIDE | FL_ALIGN_LEFT ); } y += heightInput; { Fl_Round_Button* o = new Fl_Round_Button( x, y, wideInput, heightInput, _("Interval per frame (ms)") ); o->box(FL_NO_BOX); o->type(FL_RADIO_BUTTON); o->when(FL_WHEN_CHANGED); o->value(glito->clockNumber); o->callback( (Fl_Callback*)clockNumber_param, glito ); } { Fl_Value_Slider* o = new Fl_Value_Slider( x+wideLabel+between, y, wideInput, heightInput ); o->box(inputStyle); if ( !glito->clockNumber ) o->deactivate(); o->type(FL_HORIZONTAL); o->minimum(1); o->maximum(200); o->value(glito->intervalFrame); o->step(1); o->callback( (Fl_Callback*)intervalFrame_param, glito ); } y += heightInput + Ybetween; { int xLine = 0; { Fl_Round_Button* o = new Fl_Round_Button( x, y, 127, heightInput, _("Points per frame") ); o->box(FL_NO_BOX); o->type(FL_RADIO_BUTTON); o->when(FL_WHEN_CHANGED); o->value(!glito->clockNumber); o->callback( (Fl_Callback*)clockNumber_param, glito ); } xLine += 127 + between; { Fl_Int_Input* o = new Fl_Int_Input( x+xLine, y, 80, heightInput ); o->box(inputStyle); if ( glito->clockNumber ) o->deactivate(); o->value(IS::translate(glito->pointsPerFrame).c_str()); o->callback( (Fl_Callback*)pointsPerFrame_param, glito ); } xLine += 80 + 2; { Fl_Button* o = new Fl_Button( x+xLine, y, wide - (x+xLine) - 10, heightInput, _("Calibrate") ); o->box(FL_PLASTIC_UP_BOX); if ( glito->clockNumber ) o->deactivate(); o->callback( (Fl_Callback*)calibrate_param, glito ); } } y += heightInput + Ybetween + 2*YbetweenMore; { int xLine = 0; { Fl_Button* o = new Fl_Button( x, y, 90, heightInput, _("Black/White") ); o->box(FL_PLASTIC_UP_BOX); o->value( !ImageGray::background.isBlack() ); o->callback( (Fl_Callback*)blackWhite_param ); } xLine += 90 + 2*between + 5; { Fl_Choice* o = new Fl_Choice( x+xLine+110, y, 95, heightInput, _("Transparency:") ); o->add( ImageGray::transparency.stringNone().c_str(), 0, (Fl_Callback*)transparency_param, (void*)0 ); o->add( ImageGray::transparency.stringSimple().c_str(), 0, (Fl_Callback*)transparency_param, (void*)1 ); o->add( ImageGray::transparency.stringAlpha().c_str(), 0, (Fl_Callback*)transparency_param, (void*)2 ); if ( ImageGray::transparency.useAlphaTransparency() ) { o->value(2); } else if ( ImageGray::transparency.useSimpleTransparency() ) { o->value(1); } else { o->value(0); } } } y += heightInput + Ybetween; { // invisible box to allow correct resizing Fl_Box* o = new Fl_Box( 0, y, 100, 0 ); win2->resizable(*o); } win2->end(); paramWindow->end(); }
Fl_Double_Window* SUBnoteUI::make_window() { { SUBparameters = new Fl_Double_Window(735, 390, "SUBsynth Parameters"); SUBparameters->user_data((void*)(this)); { Fl_Scroll* o = new Fl_Scroll(5, 140, 435, 245); o->type(1); o->box(FL_THIN_UP_BOX); { Fl_Pack* o = harmonics = new Fl_Pack(10, 145, 425, 235); harmonics->type(1); for (int i=0;i<MAX_SUB_HARMONICS;i++){h[i]=new SUBnoteharmonic(0,0,15,o->h(),"");h[i]->init(pars,i);} harmonics->end(); } // Fl_Pack* harmonics o->end(); } // Fl_Scroll* o { Fl_Button* o = new Fl_Button(625, 365, 105, 20, "Close"); o->box(FL_THIN_UP_BOX); o->labelfont(1); o->labelsize(11); o->callback((Fl_Callback*)cb_Close); } // Fl_Button* o { Fl_Group* o = new Fl_Group(5, 5, 215, 135, "AMPLITUDE"); o->box(FL_THIN_UP_FRAME); o->labeltype(FL_EMBOSSED_LABEL); o->labelfont(1); o->align(FL_ALIGN_TOP|FL_ALIGN_INSIDE); { Fl_Value_Slider* o = vol = new Fl_Value_Slider(10, 25, 140, 15, "Vol"); vol->tooltip("Volume"); vol->type(5); vol->box(FL_FLAT_BOX); vol->labelsize(11); vol->maximum(127); vol->step(1); vol->callback((Fl_Callback*)cb_vol); vol->align(FL_ALIGN_RIGHT); o->value(pars->PVolume); } // Fl_Value_Slider* vol { Fl_Value_Slider* o = vsns = new Fl_Value_Slider(10, 45, 140, 15, "V.Sns"); vsns->tooltip("Velocity Sensing Function (rightmost to disable)"); vsns->type(5); vsns->box(FL_FLAT_BOX); vsns->labelsize(11); vsns->maximum(127); vsns->step(1); vsns->callback((Fl_Callback*)cb_vsns); vsns->align(FL_ALIGN_RIGHT); o->value(pars->PAmpVelocityScaleFunction); } // Fl_Value_Slider* vsns { WidgetPDial* o = pan = new WidgetPDial(185, 20, 30, 30, "Pan"); pan->tooltip("Panning (leftmost is Random)"); pan->box(FL_ROUND_UP_BOX); pan->color(FL_BACKGROUND_COLOR); pan->selection_color(FL_INACTIVE_COLOR); pan->labeltype(FL_NORMAL_LABEL); pan->labelfont(0); pan->labelsize(10); pan->labelcolor(FL_FOREGROUND_COLOR); pan->maximum(127); pan->step(1); pan->callback((Fl_Callback*)cb_pan); pan->align(FL_ALIGN_BOTTOM); pan->when(FL_WHEN_CHANGED); o->value(pars->PPanning); } // WidgetPDial* pan { EnvelopeUI* o = ampenv = new EnvelopeUI(10, 65, 205, 70, "SUBsynth - Amplitude Envelope"); ampenv->box(FL_FLAT_BOX); ampenv->color((Fl_Color)51); ampenv->selection_color(FL_BACKGROUND_COLOR); ampenv->labeltype(FL_NORMAL_LABEL); ampenv->labelfont(0); ampenv->labelsize(14); ampenv->labelcolor(FL_FOREGROUND_COLOR); ampenv->align(FL_ALIGN_WRAP|FL_ALIGN_INSIDE); ampenv->when(FL_WHEN_RELEASE); o->init(pars->AmpEnvelope,master); ampenv->end(); } // EnvelopeUI* ampenv o->end(); } // Fl_Group* o { Fl_Group* o = new Fl_Group(495, 325, 235, 35); o->box(FL_THIN_UP_FRAME); { Fl_Counter* o = filterstages = new Fl_Counter(515, 340, 45, 15, "Filter Stages"); filterstages->tooltip("How many times the noise is filtered"); filterstages->type(1); filterstages->labelfont(1); filterstages->labelsize(10); filterstages->minimum(1); filterstages->maximum(5); filterstages->step(1); filterstages->textsize(10); filterstages->callback((Fl_Callback*)cb_filterstages); filterstages->align(FL_ALIGN_TOP); o->value(pars->Pnumstages); } // Fl_Counter* filterstages { Fl_Choice* o = magtype = new Fl_Choice(585, 340, 65, 15, "Mag.Type"); magtype->down_box(FL_BORDER_BOX); magtype->labelfont(1); magtype->labelsize(10); magtype->textsize(11); magtype->callback((Fl_Callback*)cb_magtype); magtype->align(FL_ALIGN_TOP); magtype->menu(menu_magtype); o->value(pars->Phmagtype); } // Fl_Choice* magtype { Fl_Choice* o = start = new Fl_Choice(670, 340, 50, 15, "Start"); start->down_box(FL_BORDER_BOX); start->labelfont(1); start->labelsize(10); start->textsize(11); start->callback((Fl_Callback*)cb_start); start->align(FL_ALIGN_TOP); start->menu(menu_start); o->value(pars->Pstart); } // Fl_Choice* start o->end(); } // Fl_Group* o { freqsettingsui = new Fl_Group(440, 5, 290, 135, "FREQUENCY"); freqsettingsui->box(FL_THIN_UP_FRAME); freqsettingsui->labeltype(FL_EMBOSSED_LABEL); freqsettingsui->labelfont(1); freqsettingsui->align(FL_ALIGN_TOP|FL_ALIGN_INSIDE); { EnvelopeUI* o = freqenvelopegroup = new EnvelopeUI(445, 65, 205, 70, "SUBsynth - Frequency Envelope"); freqenvelopegroup->box(FL_FLAT_BOX); freqenvelopegroup->color((Fl_Color)51); freqenvelopegroup->selection_color(FL_BACKGROUND_COLOR); freqenvelopegroup->labeltype(FL_NORMAL_LABEL); freqenvelopegroup->labelfont(0); freqenvelopegroup->labelsize(14); freqenvelopegroup->labelcolor(FL_FOREGROUND_COLOR); freqenvelopegroup->align(FL_ALIGN_WRAP|FL_ALIGN_INSIDE); freqenvelopegroup->when(FL_WHEN_RELEASE); o->init(pars->FreqEnvelope,master); if (pars->PFreqEnvelopeEnabled==0) o->deactivate(); freqenvelopegroup->end(); } // EnvelopeUI* freqenvelopegroup { Fl_Check_Button* o = freqee = new Fl_Check_Button(445, 68, 55, 15, "Enabled"); freqee->down_box(FL_DOWN_BOX); freqee->labelfont(1); freqee->labelsize(10); freqee->callback((Fl_Callback*)cb_freqee); o->value(pars->PFreqEnvelopeEnabled); } // Fl_Check_Button* freqee { Fl_Counter* o = octave = new Fl_Counter(670, 50, 45, 15, "Octave"); octave->tooltip("Octave"); octave->type(1); octave->labelsize(10); octave->minimum(-8); octave->maximum(7); octave->step(1); octave->textfont(1); octave->textsize(11); octave->callback((Fl_Callback*)cb_octave); octave->align(FL_ALIGN_TOP); int k=pars->PCoarseDetune/1024;if (k>=8) k-=16; o->value(k); } // Fl_Counter* octave { Fl_Counter* o = coarsedet = new Fl_Counter(655, 115, 60, 20, "Coarse Det."); coarsedet->tooltip("Coarse Detune"); coarsedet->labelsize(10); coarsedet->minimum(-64); coarsedet->maximum(63); coarsedet->step(1); coarsedet->textfont(1); coarsedet->textsize(11); coarsedet->callback((Fl_Callback*)cb_coarsedet); coarsedet->align(FL_ALIGN_TOP); int k=pars->PCoarseDetune%1024;if (k>=512) k-=1024; o->value(k); o->lstep(10); } // Fl_Counter* coarsedet { Fl_Slider* o = detune = new Fl_Slider(495, 25, 230, 15); detune->tooltip("Fine Detune (cents)"); detune->type(5); detune->box(FL_FLAT_BOX); detune->minimum(-8192); detune->maximum(8191); detune->step(1); detune->callback((Fl_Callback*)cb_detune); o->value(pars->PDetune-8192); } // Fl_Slider* detune { Fl_Value_Output* o = detunevalueoutput = new Fl_Value_Output(448, 25, 45, 15, "Detune"); detunevalueoutput->labelsize(10); detunevalueoutput->minimum(-5000); detunevalueoutput->maximum(5000); detunevalueoutput->step(0.01); detunevalueoutput->textfont(1); detunevalueoutput->textsize(10); detunevalueoutput->callback((Fl_Callback*)cb_detunevalueoutput); detunevalueoutput->align(FL_ALIGN_TOP_LEFT); o->value(getdetune(pars->PDetuneType,0,pars->PDetune)); } // Fl_Value_Output* detunevalueoutput { Fl_Check_Button* o = hz440 = new Fl_Check_Button(555, 45, 50, 15, "440Hz"); hz440->tooltip("set the base frequency to 440Hz"); hz440->down_box(FL_DOWN_BOX); hz440->labelfont(1); hz440->labelsize(10); hz440->callback((Fl_Callback*)cb_hz440); o->value(pars->Pfixedfreq); } // Fl_Check_Button* hz440 { WidgetPDial* o = fixedfreqetdial = new WidgetPDial(610, 45, 15, 15, "Eq.T."); fixedfreqetdial->tooltip("How the frequency varies acording to the keyboard (leftmost for fixed frequen\ cy)"); fixedfreqetdial->box(FL_ROUND_UP_BOX); fixedfreqetdial->color(FL_BACKGROUND_COLOR); fixedfreqetdial->selection_color(FL_INACTIVE_COLOR); fixedfreqetdial->labeltype(FL_NORMAL_LABEL); fixedfreqetdial->labelfont(0); fixedfreqetdial->labelsize(10); fixedfreqetdial->labelcolor(FL_FOREGROUND_COLOR); fixedfreqetdial->maximum(127); fixedfreqetdial->step(1); fixedfreqetdial->callback((Fl_Callback*)cb_fixedfreqetdial); fixedfreqetdial->align(FL_ALIGN_RIGHT); fixedfreqetdial->when(FL_WHEN_CHANGED); o->value(pars->PfixedfreqET); if (pars->Pfixedfreq==0) o->deactivate(); } // WidgetPDial* fixedfreqetdial { Fl_Choice* o = detunetype = new Fl_Choice(655, 85, 70, 15, "Detune Type"); detunetype->down_box(FL_BORDER_BOX); detunetype->labelsize(10); detunetype->textfont(1); detunetype->textsize(10); detunetype->callback((Fl_Callback*)cb_detunetype); detunetype->align(FL_ALIGN_TOP_LEFT); o->add("L35cents");o->add("L10cents");o->add("E100cents");o->add("E1200cents"); o->value(pars->PDetuneType-1); } // Fl_Choice* detunetype freqsettingsui->end(); } // Fl_Group* freqsettingsui { Fl_Check_Button* o = stereo = new Fl_Check_Button(440, 325, 55, 35, "Stereo"); stereo->box(FL_THIN_UP_BOX); stereo->down_box(FL_DOWN_BOX); stereo->labelfont(1); stereo->labelsize(10); stereo->callback((Fl_Callback*)cb_stereo); o->value(pars->Pstereo); } // Fl_Check_Button* stereo { Fl_Button* o = new Fl_Button(445, 365, 70, 20, "Clear"); o->tooltip("Clear the harmonics"); o->box(FL_THIN_UP_BOX); o->labelfont(1); o->labelsize(11); o->callback((Fl_Callback*)cb_Clear); } // Fl_Button* o { bandwidthsettingsui = new Fl_Group(220, 5, 220, 135, "BANDWIDTH"); bandwidthsettingsui->box(FL_THIN_UP_FRAME); bandwidthsettingsui->labeltype(FL_EMBOSSED_LABEL); bandwidthsettingsui->labelfont(1); bandwidthsettingsui->align(FL_ALIGN_TOP|FL_ALIGN_INSIDE); { EnvelopeUI* o = bandwidthenvelopegroup = new EnvelopeUI(225, 65, 205, 70, "SUBsynth - BandWidth Envelope"); bandwidthenvelopegroup->box(FL_FLAT_BOX); bandwidthenvelopegroup->color((Fl_Color)51); bandwidthenvelopegroup->selection_color(FL_BACKGROUND_COLOR); bandwidthenvelopegroup->labeltype(FL_NORMAL_LABEL); bandwidthenvelopegroup->labelfont(0); bandwidthenvelopegroup->labelsize(14); bandwidthenvelopegroup->labelcolor(FL_FOREGROUND_COLOR); bandwidthenvelopegroup->align(FL_ALIGN_WRAP|FL_ALIGN_INSIDE); bandwidthenvelopegroup->when(FL_WHEN_RELEASE); o->init(pars->BandWidthEnvelope,master); if (pars->PBandWidthEnvelopeEnabled==0) o->deactivate(); bandwidthenvelopegroup->end(); } // EnvelopeUI* bandwidthenvelopegroup { Fl_Check_Button* o = bwee = new Fl_Check_Button(225, 67, 55, 15, "Enabled"); bwee->down_box(FL_DOWN_BOX); bwee->labelfont(1); bwee->labelsize(10); bwee->callback((Fl_Callback*)cb_bwee); o->value(pars->PBandWidthEnvelopeEnabled); } // Fl_Check_Button* bwee { Fl_Value_Slider* o = bandwidth = new Fl_Value_Slider(225, 40, 115, 15, "Band Width"); bandwidth->type(5); bandwidth->box(FL_FLAT_BOX); bandwidth->labelsize(10); bandwidth->maximum(127); bandwidth->step(1); bandwidth->callback((Fl_Callback*)cb_bandwidth); bandwidth->align(FL_ALIGN_TOP); o->value(pars->Pbandwidth); } // Fl_Value_Slider* bandwidth { Fl_Value_Slider* o = bwidthscale = new Fl_Value_Slider(345, 40, 90, 15, "B.Width Scale"); bwidthscale->tooltip("How much I increase the BandWidth according to lower/higher harmonics"); bwidthscale->type(5); bwidthscale->box(FL_FLAT_BOX); bwidthscale->labelsize(10); bwidthscale->minimum(-64); bwidthscale->maximum(63); bwidthscale->step(1); bwidthscale->callback((Fl_Callback*)cb_bwidthscale); bwidthscale->align(FL_ALIGN_TOP); o->value(pars->Pbwscale-64); } // Fl_Value_Slider* bwidthscale bandwidthsettingsui->end(); } // Fl_Group* bandwidthsettingsui { Fl_Group* o = globalfiltergroup = new Fl_Group(440, 140, 290, 185, "FILTER"); globalfiltergroup->box(FL_THIN_UP_FRAME); globalfiltergroup->labeltype(FL_EMBOSSED_LABEL); globalfiltergroup->labelfont(1); globalfiltergroup->labelsize(13); globalfiltergroup->align(FL_ALIGN_TOP|FL_ALIGN_INSIDE); { EnvelopeUI* o = filterenv = new EnvelopeUI(445, 250, 275, 70, "SUBsynth - Filter Envelope"); filterenv->box(FL_FLAT_BOX); filterenv->color((Fl_Color)51); filterenv->selection_color(FL_BACKGROUND_COLOR); filterenv->labeltype(FL_NORMAL_LABEL); filterenv->labelfont(0); filterenv->labelsize(14); filterenv->labelcolor(FL_FOREGROUND_COLOR); filterenv->align(FL_ALIGN_WRAP|FL_ALIGN_INSIDE); filterenv->when(FL_WHEN_RELEASE); o->init(pars->GlobalFilterEnvelope,master); filterenv->end(); } // EnvelopeUI* filterenv { FilterUI* o = filterui = new FilterUI(445, 170, 275, 75, "SUBsynthl - Filter"); filterui->box(FL_FLAT_BOX); filterui->color(FL_LIGHT1); filterui->selection_color(FL_BACKGROUND_COLOR); filterui->labeltype(FL_NORMAL_LABEL); filterui->labelfont(0); filterui->labelsize(14); filterui->labelcolor(FL_FOREGROUND_COLOR); filterui->align(FL_ALIGN_WRAP|FL_ALIGN_INSIDE); filterui->when(FL_WHEN_RELEASE); o->init(pars->GlobalFilter,&pars->PGlobalFilterVelocityScale,&pars->PGlobalFilterVelocityScaleFunction,master); filterui->end(); } // FilterUI* filterui if (pars->PGlobalFilterEnabled==0) o->deactivate(); globalfiltergroup->end(); } // Fl_Group* globalfiltergroup { Fl_Check_Button* o = filtere = new Fl_Check_Button(445, 145, 85, 20, "Enabled"); filtere->down_box(FL_DOWN_BOX); filtere->labelfont(1); filtere->labelsize(11); filtere->callback((Fl_Callback*)cb_filtere); o->value(pars->PGlobalFilterEnabled); } // Fl_Check_Button* filtere { Fl_Button* o = new Fl_Button(540, 370, 25, 15, "C"); o->box(FL_THIN_UP_BOX); o->color((Fl_Color)179); o->labelfont(1); o->labelsize(11); o->labelcolor(FL_BACKGROUND2_COLOR); o->callback((Fl_Callback*)cb_C); } // Fl_Button* o { Fl_Button* o = new Fl_Button(570, 370, 25, 15, "P"); o->box(FL_THIN_UP_BOX); o->color((Fl_Color)179); o->labelfont(1); o->labelsize(11); o->labelcolor(FL_BACKGROUND2_COLOR); o->callback((Fl_Callback*)cb_P); } // Fl_Button* o SUBparameters->end(); } // Fl_Double_Window* SUBparameters return SUBparameters; }
SciCalc::SciCalc() { Fl_Window* w; {Fl_Window* o = win = new Fl_Window(181, 262, "eCalc"); w = o; o->label_type(FL_NO_LABEL); o->shortcut(0xff1b); o->user_data((void*)(this)); o->align(); {Fl_Box* o = leddisplay = new Fl_Box(2, 2, 176, 24, "Welcome"); o->box(FL_THIN_DOWN_BOX); o->label_font(fl_fonts+4); o->color((Fl_Color)207); o->label_color((Fl_Color)59); o->label_size(14); o->callback((Fl_Callback*)cb_leddisplay); o->align(FL_ALIGN_RIGHT|FL_ALIGN_INSIDE); } {Fl_Box* o = box_DEGRAD = new Fl_Box(24, 28, 35, 16); o->box(FL_THIN_DOWN_BOX); o->label_color((Fl_Color)1); o->label_size(9); o->callback((Fl_Callback*)cb_box_DEGRAD); o->align(FL_ALIGN_INSIDE); } {Fl_Box* o = box_bracket = new Fl_Box(59, 28, 65, 16); o->box(FL_THIN_DOWN_BOX); o->label_color((Fl_Color)1); o->label_size(9); o->align(FL_ALIGN_INSIDE); } {Fl_Box* o = box_M = new Fl_Box(124, 28, 35, 16); o->box(FL_THIN_DOWN_BOX); o->label_color((Fl_Color)1); o->label_size(9); o->callback((Fl_Callback*)cb_box_M); o->align(FL_ALIGN_INSIDE); } {Fl_Group* o = new Fl_Group(46, 46, 93, 22); o->color((Fl_Color)46); {Fl_Button* o = radio_2 = new Fl_Button(3, 3, 20, 15, "2"); o->type(Fl_Button::RADIO); o->label_color((Fl_Color)1); o->label_size(10); o->shortcut(0x40062); o->callback((Fl_Callback*)cb_radio_2); o->tooltip("Binary mode"); } {Fl_Button* o = radio_8 = new Fl_Button(24, 3, 21, 15, "8"); o->type(Fl_Button::RADIO); o->label_color((Fl_Color)1); o->label_size(10); o->shortcut(0x4006f); o->callback((Fl_Callback*)cb_radio_8); o->tooltip("Octal mode"); } {Fl_Button* o = radio_10 = new Fl_Button(46, 3, 21, 15, "10"); o->type(Fl_Button::RADIO); o->label_color((Fl_Color)1); o->label_size(10); o->shortcut(0x40064); o->value(1); o->callback((Fl_Callback*)cb_radio_10); o->tooltip("Decimal mode"); } {Fl_Button* o = radio_16 = new Fl_Button(68, 3, 21, 15, "16"); o->type(Fl_Button::RADIO); o->label_color((Fl_Color)1); o->label_size(10); o->shortcut(0x40068); o->callback((Fl_Callback*)cb_radio_16); o->tooltip("Hex mode"); } o->end(); } {Fl_Group* o = new Fl_Group(3, 163, 107, 94); o->box(FL_BORDER_BOX); o->color((Fl_Color)43); {Fl_Button* o = but_7 = new Fl_Button(3, 4, 32, 20, "7"); o->label_font(fl_fonts+1); o->label_size(14); o->shortcut(0x37); o->callback((Fl_Callback*)cb_but_7); } {Fl_Button* o = but_8 = new Fl_Button(38, 4, 32, 20, "8"); o->label_font(fl_fonts+1); o->label_size(14); o->shortcut(0x38); o->callback((Fl_Callback*)cb_but_8); } {Fl_Button* o = but_9 = new Fl_Button(72, 4, 32, 20, "9"); o->label_font(fl_fonts+1); o->label_size(14); o->shortcut(0x39); o->callback((Fl_Callback*)cb_but_9); } {Fl_Button* o = but_4 = new Fl_Button(3, 26, 32, 20, "4"); o->label_font(fl_fonts+1); o->label_size(14); o->shortcut(0x34); o->callback((Fl_Callback*)cb_but_4); } {Fl_Button* o = but_5 = new Fl_Button(38, 26, 32, 20, "5"); o->label_font(fl_fonts+1); o->label_size(14); o->shortcut(0x35); o->callback((Fl_Callback*)cb_but_5); } {Fl_Button* o = but_6 = new Fl_Button(72, 26, 32, 20, "6"); o->label_font(fl_fonts+1); o->label_size(14); o->shortcut(0x36); o->callback((Fl_Callback*)cb_but_6); } {Fl_Button* o = but_1 = new Fl_Button(3, 48, 32, 20, "1"); o->label_font(fl_fonts+1); o->label_size(14); o->shortcut(0x31); o->callback((Fl_Callback*)cb_but_1); } {Fl_Button* o = but_2 = new Fl_Button(38, 48, 32, 20, "2"); o->label_font(fl_fonts+1); o->label_size(14); o->shortcut(0x32); o->callback((Fl_Callback*)cb_but_2); } {Fl_Button* o = but_3 = new Fl_Button(72, 48, 32, 20, "3"); o->label_font(fl_fonts+1); o->label_size(14); o->shortcut(0x33); o->callback((Fl_Callback*)cb_but_3); } {Fl_Button* o = but_0 = new Fl_Button(3, 70, 32, 20, "0"); o->label_font(fl_fonts+1); o->label_size(14); o->shortcut(0x30); o->callback((Fl_Callback*)cb_but_0); } {Fl_Button* o = but_dot = new Fl_Button(38, 70, 32, 20, "."); o->label_font(fl_fonts+1); o->label_size(14); o->shortcut(0x2e); o->callback((Fl_Callback*)cb_but_dot); } {Fl_Button* o = but_sign = new Fl_Button(72, 70, 32, 20, "+/-"); o->label_font(fl_fonts+1); o->label_size(14); o->callback((Fl_Callback*)cb_but_sign); } o->end(); } {Fl_Button* o = but_C = new Fl_Button(112, 167, 31, 20, "C"); o->label_font(fl_fonts+1); o->label_size(14); o->callback((Fl_Callback*)cb_but_C); } {Fl_Button* o = but_AC = new Fl_Button(146, 167, 30, 20, "AC"); o->label_font(fl_fonts+1); o->label_size(14); o->callback((Fl_Callback*)cb_but_AC); } {Fl_Button* o = but_X = new Fl_Button(112, 189, 31, 20, "x"); o->label_font(fl_fonts+1); o->label_size(14); o->shortcut(0x2a); o->callback((Fl_Callback*)cb_but_X); } {Fl_Button* o = but_div = new Fl_Button(146, 189, 30, 20, "/"); o->label_font(fl_fonts+1); o->label_size(14); o->shortcut(0x2f); o->callback((Fl_Callback*)cb_but_div); } {Fl_Button* o = but_plus = new Fl_Button(112, 211, 31, 20, "+"); o->label_font(fl_fonts+1); o->label_size(14); o->shortcut(0x2b); o->callback((Fl_Callback*)cb_but_plus); } {Fl_Button* o = but_minus = new Fl_Button(146, 211, 30, 20, "-"); o->label_font(fl_fonts+1); o->label_size(14); o->shortcut(0x2d); o->callback((Fl_Callback*)cb_but_minus); } {Fl_Button* o = but_pi = new Fl_Button(112, 233, 31, 20, "e/p"); o->label_font(fl_fonts+12); o->label_size(16); o->callback((Fl_Callback*)cb_but_pi); } {Fl_Button* o = but_eval = new Fl_Button(146, 233, 30, 20, "="); o->label_font(fl_fonts+1); o->label_size(14); o->shortcut(0x3d); o->callback((Fl_Callback*)cb_but_eval); } {Fl_Button* o = but_eval_hidden = new Fl_Button(147, 253, 6, 7); o->box(FL_NO_BOX); o->label_font(fl_fonts+1); o->label_size(16); o->shortcut(0xff0d); o->callback((Fl_Callback*)cb_but_eval_hidden); } {Fl_Button* o = but_eval_hidden2 = new Fl_Button(157, 263, 6, 7); o->box(FL_NO_BOX); o->label_font(fl_fonts+1); o->label_size(16); o->shortcut(0xff8d); o->callback((Fl_Callback*)cb_but_eval_hidden2); } {Fl_Button* o = but_sqrt = new Fl_Button(6, 70, 32, 21, "sqrt"); o->label_color((Fl_Color)4); o->label_size(11); o->callback((Fl_Callback*)cb_but_sqrt); } {Fl_Button* o = but_pow = new Fl_Button(41, 70, 32, 21, "x^y"); o->label_color((Fl_Color)4); o->label_size(11); o->callback((Fl_Callback*)cb_but_pow); } {Fl_Button* o = but_sin = new Fl_Button(76, 70, 31, 21, "sin"); o->label_color((Fl_Color)4); o->label_size(11); o->callback((Fl_Callback*)cb_but_sin); } {Fl_Button* o = but_cos = new Fl_Button(110, 70, 31, 21, "cos"); o->label_color((Fl_Color)4); o->label_size(11); o->callback((Fl_Callback*)cb_but_cos); } {Fl_Button* o = but_tan = new Fl_Button(144, 70, 30, 21, "tan"); o->label_color((Fl_Color)4); o->label_size(11); o->callback((Fl_Callback*)cb_but_tan); } {Fl_Button* o = but_log = new Fl_Button(6, 93, 32, 21, "log"); o->label_color((Fl_Color)4); o->label_size(11); o->callback((Fl_Callback*)cb_but_log); } {Fl_Button* o = but_ln = new Fl_Button(41, 93, 32, 21, "ln"); o->label_color((Fl_Color)4); o->label_size(11); o->callback((Fl_Callback*)cb_but_ln); } {Fl_Button* o = but_int = new Fl_Button(76, 93, 31, 21, "int"); o->label_color((Fl_Color)4); o->label_size(11); o->callback((Fl_Callback*)cb_but_int); } {Fl_Button* o = but_dr = new Fl_Button(110, 93, 31, 21, "d->r"); o->label_color((Fl_Color)4); o->label_size(10); o->callback((Fl_Callback*)cb_but_dr); } {Fl_Button* o = but_drg = new Fl_Button(144, 93, 30, 21, "d-r-g"); o->label_size(9); o->callback((Fl_Callback*)cb_but_drg); } {Fl_Button* o = but_leftbr = new Fl_Button(6, 116, 32, 21, "["); o->label_size(11); o->shortcut(0x28); o->callback((Fl_Callback*)cb_but_leftbr); } {Fl_Button* o = but_rightbr = new Fl_Button(41, 116, 32, 21, "]"); o->label_size(11); o->shortcut(0x29); o->callback((Fl_Callback*)cb_but_rightbr); } {Fl_Button* o = but_exch = new Fl_Button(76, 116, 31, 21, "exch"); o->label_size(11); o->callback((Fl_Callback*)cb_but_exch); } {Fl_Button* o = but_invx = new Fl_Button(110, 116, 31, 21, "1/x"); o->label_size(11); o->callback((Fl_Callback*)cb_but_invx); } {Fl_Button* o = but_fact = new Fl_Button(144, 116, 30, 21, "x!"); o->label_size(11); o->callback((Fl_Callback*)cb_but_fact); } {Fl_Button* o = but_Mplus = new Fl_Button(6, 139, 32, 21, "M+"); o->color((Fl_Color)0xffb30000); o->label_color((Fl_Color)4); o->callback((Fl_Callback*)cb_but_Mplus); } {Fl_Button* o = but_Mmult = new Fl_Button(41, 139, 32, 21, "M*"); o->color((Fl_Color)0xffb30000); o->label_color((Fl_Color)4); o->callback((Fl_Callback*)cb_but_Mmult); } {Fl_Button* o = but_Mclear = new Fl_Button(76, 139, 31, 21, "MC"); o->color((Fl_Color)0xffb30000); o->label_color((Fl_Color)4); o->callback((Fl_Callback*)cb_but_Mclear); } {Fl_Button* o = but_Mst = new Fl_Button(110, 139, 31, 21, "Mst"); o->color((Fl_Color)0xffb30000); o->callback((Fl_Callback*)cb_but_Mst); } {Fl_Button* o = but_Mrc = new Fl_Button(144, 139, 30, 21, "Mrc"); o->color((Fl_Color)0xffb30000); o->callback((Fl_Callback*)cb_but_Mrc); } {Fl_Button* o = check_inv = new Fl_Button(6, 47, 32, 20, "inv"); o->type(Fl_Button::TOGGLE); o->label_color((Fl_Color)4); o->label_size(11); o->callback((Fl_Callback*)cb_check_inv); } {Fl_Button* o = but_quit = new Fl_Button(144, 47, 30, 20, "Exit"); o->label_font(fl_fonts+1); o->label_color((Fl_Color)33); o->shortcut(0x40071); o->callback((Fl_Callback*)cb_but_quit); } o->end(); } init_value(0); drgmode = 1; base = 10; currentbrkt = 0; startbrkt[0] = 0; set_memdisp(); set_brktdisp(); radio_10->value(1); set_drgdisp(); set_display(0.0,NONE); }
Fl_Double_Window* make_window() { Fl_Double_Window* w; {Fl_Double_Window* o = new Fl_Double_Window(560, 489); w = o; o->type(241); {Fl_Box* o = imbox = new Fl_Box(5, 30, 385, 455); o->box(FL_ENGRAVED_BOX); o->align(FL_ALIGN_CLIP); Fl_Group::current()->resizable(o); } {Fl_Box* o = filename_box = new Fl_Box(5, 5, 385, 20, "No file loaded..."); o->box(FL_THIN_DOWN_BOX); o->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE); } {Fl_Group* o = new Fl_Group(395, 5, 160, 480); o->box(FL_THIN_DOWN_BOX); {Fl_Button* o = new Fl_Button(10, 10, 140, 25, "Load File"); o->box(FL_THIN_UP_BOX); o->callback((Fl_Callback*)cb_Load); } {Fl_Button* o = new Fl_Button(10, 40, 140, 25, "Exit"); o->box(FL_THIN_UP_BOX); o->callback((Fl_Callback*)cb_Exit); } new Fl_Divider(10, 75, 140, 15, "label"); {Fl_Button* o = new Fl_Button(10, 100, 140, 25, "Fit To Box"); o->type(Fl_Button::TOGGLE); o->box(FL_THIN_UP_BOX); o->callback((Fl_Callback*)cb_Fit); } {Fl_Button* o = new Fl_Button(10, 130, 140, 25, "Tile"); o->type(Fl_Button::TOGGLE); o->box(FL_THIN_UP_BOX); o->callback((Fl_Callback*)cb_Tile); } {Fl_Choice* o = filter_choice = new Fl_Choice(10, 335, 140, 25, "Filter:"); o->begin(); o->align(FL_ALIGN_TOP | FL_ALIGN_LEFT); o->tooltip("Choose filter"); {Fl_Item* o = new Fl_Item("None"); o->user_data((void*)(0)); } {Fl_Item* o = new Fl_Item("Brightness"); o->user_data((void*)(FILTER_BRIGHTNESS)); } {Fl_Item* o = new Fl_Item("Contrast"); o->user_data((void*)(FILTER_CONTRAST)); } {Fl_Item* o = new Fl_Item("Grayscale"); o->user_data((void*)(FILTER_GRAYSCALE)); } {Fl_Item* o = new Fl_Item("Gamma"); o->user_data((void*)(FILTER_GAMMA)); } {Fl_Item* o = new Fl_Item("Fore Blend"); o->user_data((void*)(FILTER_FOREBLEND)); } {Fl_Item* o = new Fl_Item("Back Blend"); o->user_data((void*)(FILTER_BACKBLEND)); } o->end(); } {Fl_Box* o = new Fl_Box(10, 160, 140, 160); o->parent()->resizable(o); } {Fl_Value_Slider* o = Rslider = new Fl_Value_Slider(25, 380, 125, 15, "R"); o->type(Fl_Value_Slider::HORIZONTAL); o->label_size(10); o->text_size(10); o->minimum(-3); o->maximum(3); o->value(1); o->slider_size(5); o->align(FL_ALIGN_LEFT); o->tooltip("Red value for filter"); } {Fl_Value_Slider* o = Gslider = new Fl_Value_Slider(25, 400, 125, 15, "G"); o->type(Fl_Value_Slider::HORIZONTAL); o->label_size(10); o->text_size(10); o->minimum(-3); o->maximum(3); o->value(1); o->slider_size(5); o->align(FL_ALIGN_LEFT); o->tooltip("Green value for filter"); } {Fl_Value_Slider* o = Bslider = new Fl_Value_Slider(25, 420, 125, 15, "B"); o->type(Fl_Value_Slider::HORIZONTAL); o->label_size(10); o->text_size(10); o->minimum(-3); o->maximum(3); o->value(1); o->slider_size(5); o->align(FL_ALIGN_LEFT); o->tooltip("Blue value for filter"); } {Fl_Button* o = new Fl_Button(10, 445, 140, 25, "Apply"); o->box(FL_THIN_UP_BOX); o->callback((Fl_Callback*)cb_Apply); o->tooltip("Apply current selected filter"); } {Fl_Check_Button* o = lock = new Fl_Check_Button(10, 365, 140, 15, "Lock sliders"); o->label_size(10); o->callback((Fl_Callback*)cb_lock); o->tooltip("Lock slider, RGB values taken from R slider "); } o->end(); } o->end(); } return w; }
//==== Add Color Picker ====// void GroupLayout::AddColorPicker( ColorPicker& picker ) { assert( m_Group && m_Screen ); //==== Button ====// Fl_Button* colorButton = new Fl_Button( m_X, m_Y, m_ButtonWidth, m_StdHeight * 2, "Color:" ); colorButton->box( FL_THIN_UP_BOX ); colorButton->labelfont( 1 ); colorButton->labelsize( 12 ); colorButton->labelcolor( FL_BLACK ); m_Group->add( colorButton ); AddX( m_ButtonWidth ); //==== Current Color Button ====// Fl_Button* primColorButton = new Fl_Button( m_X, m_Y, m_ButtonWidth / 2, m_StdHeight * 2 ); primColorButton->box( FL_THIN_DOWN_BOX ); primColorButton->color( ( Fl_Color )2 ); m_Group->add( primColorButton ); AddX( m_ButtonWidth / 2 + 2 ); //==== Sliders ====// int ch = 2 * m_StdHeight / 3; int cw = m_StdHeight; int sw = FitWidth( m_ButtonWidth + m_ButtonWidth / 2 + 2 + 4 * cw, m_SliderWidth ); Fl_Slider* sliders[3]; for ( int i = 0 ; i < 3 ; i++ ) { sliders[i] = new Fl_Value_Slider( m_X, m_Y + i * ch, sw, ch ); sliders[i]->type( 5 ); sliders[i]->color( FL_BACKGROUND2_COLOR ); sliders[i]->selection_color( ( Fl_Color )1 ); sliders[i]->maximum( 255 ); sliders[i]->step( 1 ); m_Group->add( sliders[i] ); } sliders[0]->selection_color( ( Fl_Color )1 ); sliders[1]->selection_color( ( Fl_Color )2 ); sliders[2]->selection_color( ( Fl_Color )4 ); AddX( sw + 2 ); //==== Color Buttons ====// vector< Fl_Button* > cvec; int color_index = 0; for ( int i = 0 ; i < 4 ; i++ ) { for ( int j = 0 ; j < 3 ; j++ ) { Fl_Button* b = new Fl_Button( m_X + i * cw, m_Y + j * ch, cw, ch ); vec3d rgb = picker.GetIndexRGB( color_index ); Fl_Color c = fl_rgb_color( ( int )rgb[0], ( int )rgb[1], ( int )rgb[2] ); b->color( c ); m_Group->add( b ); cvec.push_back( b ); color_index++; } } AddX( 3 * cw ); picker.Init( m_Screen, colorButton, primColorButton, cvec, sliders ); AddY( m_StdHeight * 2 ); NewLineX(); }
int main (int argc, char **argv) { Fl_Window* w; fl_init_locale_support("ewmconf", PREFIX"/share/locale"); readConfiguration(); {Fl_Window* o = new Fl_Window(320, 370, _("Window manager settings")); w = o; {Fl_Tabs* o = new Fl_Tabs(2, 5, 318, 325); o->color((Fl_Color)16); {Fl_Group* o = new Fl_Group(1, 29, 316, 295, _("&Titlebar")); o->align(FL_ALIGN_TOP | FL_ALIGN_LEFT); {Fl_Choice* o = new Fl_Choice(83, 13, 105, 22, _("Text align:")); o->begin(); o->callback((Fl_Callback*)cb_Text); new Fl_Item(_("Left")); new Fl_Item(_("Right")); new Fl_Item(_("Center")); o->value(title_align); o->end(); } {Fl_Value_Input* o = new Fl_Value_Input(243, 13, 60, 22, _("Height:")); o->minimum(10); o->maximum(50); o->step(1); o->value(20); o->callback((Fl_Callback*)cb_Height); o->value(title_height); } {Fl_Button* o = titlebarLabelColorButton = new Fl_Button(85, 55, 60, 20, _("Titlebar label color: ")); o->box(FL_DOWN_BOX); o->callback((Fl_Callback*)cb_titlebarLabelColorButton); o->align(132); o->color((Fl_Color)title_normal_color_text); } {Fl_Button* o = titlebarColorButton = new Fl_Button(85, 120, 60, 20, _("Titlebar color: ")); o->box(FL_DOWN_BOX); o->callback((Fl_Callback*)cb_titlebarColorButton); o->align(132); o->color((Fl_Color) title_normal_color); } {Fl_Group* o = new Fl_Group(153, 45, 160, 110); {Fl_Button* o = titlebarActiveLabelColorButton = new Fl_Button(90, 10, 60, 20, _("Titlebar active label color: ")); o->box(FL_DOWN_BOX); o->callback((Fl_Callback*)cb_titlebarActiveLabelColorButton); o->align(132); o->color((Fl_Color) title_active_color_text); } {Fl_Button* o = titlebarActiveColorButton = new Fl_Button(90, 75, 60, 20, _("Titlebar active color: ")); o->box(FL_DOWN_BOX); o->callback((Fl_Callback*)cb_titlebarActiveColorButton); o->align(132); o->color((Fl_Color)title_active_color); } o->end(); } {Fl_Choice* o = titlebarDrawGrad = new Fl_Choice(85, 157, 163, 23, _("Box type:")); o->begin(); o->callback((Fl_Callback*)cb_titlebarDrawGrad); o->align(132); new Fl_Item(_("Flat")); new Fl_Item(_("Horizontal shade")); new Fl_Item(_("Thin down")); new Fl_Item(_("Up box")); new Fl_Item(_("Down box")); new Fl_Item(_("Plastic")); o->value(title_draw_grad); o->end(); } {Fl_Check_Button* o = useThemeButton = new Fl_Check_Button(8, 220, 300, 20, _("&Use theme")); o->callback((Fl_Callback*)cb_useThemeButton); o->value(use_theme); } {Fl_Input* o = themePathInput = new Fl_Input(65, 247, 210, 23, _("Path:")); o->callback((Fl_Callback*)cb_themePathInput); o->deactivate(); themePathInput->value(theme_path); } {Fl_Button* o = browse_btn = new Fl_Button(280, 247, 25, 23, _("...")); o->callback((Fl_Callback*)cb_browse_btn); o->deactivate(); } {Fl_Divider* o = new Fl_Divider(8, 190, 300, 25, _("label")); o->color((Fl_Color)16); } {Fl_Divider* o = new Fl_Divider(8, 85, 297, 25, _("label")); o->color((Fl_Color)16); } o->end(); } {Fl_Group* o = new Fl_Group(3, 20, 310, 305, _("&Resizing")); o->align(FL_ALIGN_TOP | FL_ALIGN_LEFT); o->hide(); {Fl_Check_Button* o = animateButton = new Fl_Check_Button(10, 10, 300, 20, _("Animate size changes")); o->value(1); o->callback((Fl_Callback*)cb_animateButton); o->value(animate); } {Fl_Value_Slider* o = animateSlider = new Fl_Value_Slider(70, 35, 235, 20, _("Speed:")); o->type(Fl_Value_Slider::HORIZONTAL|Fl_Slider::TICK_ABOVE); o->box(FL_DOWN_BOX); o->text_size(10); o->minimum(5); o->maximum(20); o->step(2); o->value(14); o->slider_size(8); o->callback((Fl_Callback*)cb_animateSlider); o->align(FL_ALIGN_LEFT); o->value(animate_speed); if(animate) o->activate(); else o->deactivate(); } new Fl_Divider(0, 60, 300, 25, _("label")); {Fl_Check_Button* o = opaqueResize = new Fl_Check_Button(10, 85, 290, 20, _("Show window content while resizing")); o->callback((Fl_Callback*)cb_opaqueResize); o->value(opaque_resize); } o->end(); } o->end(); } {Fl_Button* o = new Fl_Button(67, 337, 80, 25, _("&OK")); o->shortcut(0xff0d); o->callback((Fl_Callback*)cb_OK); } {Fl_Button* o = new Fl_Button(152, 337, 80, 25, _("&Apply")); o->callback((Fl_Callback*)cb_Apply); } {Fl_Button* o = new Fl_Button(237, 337, 80, 25, _("&Cancel")); o->shortcut(0xff1b); o->callback((Fl_Callback*)cb_Cancel); } o->end(); } useThemeButton->do_callback(); w->show(argc, argv); return Fl::run(); }
int main(int argc, char **argv) { { m_win = new Fl_Double_Window(425, 350, "Calc80"); m_win->color((Fl_Color)29); m_win->labelfont(2); m_win->labelsize(11); { Fl_Box* o = new Fl_Box(5, 25, 415, 60); o->box(FL_RFLAT_BOX); o->color((Fl_Color)206); } // Fl_Box* o { Fl_Button* o = new Fl_Button(245, 297, 55, 47, "0"); o->box(FL_FLAT_BOX); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(0)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(305, 297, 55, 47, "."); o->box(FL_FLAT_BOX); o->shortcut(0x2c); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(10)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(5, 318, 40, 26, "hyp"); o->box(FL_FLAT_BOX); o->shortcut(0x7a); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(1025)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(185, 245, 55, 47, "1"); o->box(FL_FLAT_BOX); o->shortcut(0x31); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(1)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(245, 245, 55, 47, "2"); o->box(FL_FLAT_BOX); o->shortcut(0x32); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(2)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(305, 245, 55, 47, "3"); o->box(FL_FLAT_BOX); o->shortcut(0x33); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(3)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(365, 245, 55, 47, "+"); o->box(FL_FLAT_BOX); o->shortcut(0x2b); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(67)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(185, 193, 55, 47, "4"); o->box(FL_FLAT_BOX); o->shortcut(0x34); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(4)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(245, 193, 55, 47, "5"); o->box(FL_FLAT_BOX); o->shortcut(0x35); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(5)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(305, 193, 55, 47, "6"); o->box(FL_FLAT_BOX); o->shortcut(0x36); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(6)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(365, 193, 55, 47, "-"); o->box(FL_FLAT_BOX); o->shortcut(0x2d); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(68)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(185, 141, 55, 47, "7"); o->box(FL_FLAT_BOX); o->shortcut(0x37); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(7)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(245, 141, 55, 47, "8"); o->box(FL_FLAT_BOX); o->shortcut(0x38); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(8)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(305, 141, 55, 47, "9"); o->box(FL_FLAT_BOX); o->shortcut(0x39); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(9)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(365, 141, 55, 47, "x"); o->box(FL_FLAT_BOX); o->shortcut(0x2a); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(80)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(185, 297, 55, 47, "%"); o->box(FL_FLAT_BOX); o->shortcut(0x25); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(75)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(245, 89, 55, 47, "("); o->box(FL_FLAT_BOX); o->shortcut(0x28); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(65)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(305, 89, 55, 47, ")"); o->box(FL_FLAT_BOX); o->shortcut(0x29); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(66)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(365, 89, 55, 47, "/"); o->box(FL_FLAT_BOX); o->shortcut(0x2f); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(81)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(185, 89, 55, 47, "DEL"); o->box(FL_FLAT_BOX); o->shortcut(0xff08); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(13)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(50, 254, 40, 26, "\317\200"); o->box(FL_FLAT_BOX); o->shortcut(0x77); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(19)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(95, 286, 40, 26, "ln"); o->box(FL_FLAT_BOX); o->shortcut(0x64); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(132)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(5, 254, 40, 26, "^"); o->box(FL_FLAT_BOX); o->shortcut(0x71); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(96)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(5, 286, 40, 26, "log"); o->box(FL_FLAT_BOX); o->shortcut(0x61); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(131)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(50, 286, 40, 26, "10^x"); o->box(FL_FLAT_BOX); o->shortcut(0x73); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(112)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(125, 219, 55, 30, "EXP"); o->box(FL_FLAT_BOX); o->shortcut(0x6d); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(11)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(140, 286, 40, 26, "e^x"); o->box(FL_FLAT_BOX); o->shortcut(0x66); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(113)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(5, 219, 55, 30, "\342\210\232x"); o->box(FL_FLAT_BOX); o->shortcut(0x62); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(116)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(65, 219, 55, 30, "+/-"); o->box(FL_FLAT_BOX); o->shortcut(0x6e); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(12)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(95, 254, 40, 26, "^2"); o->box(FL_FLAT_BOX); o->shortcut(0x65); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(115)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(95, 119, 85, 25, "C"); o->box(FL_FLAT_BOX); o->shortcut(0x6c); o->down_box(FL_FLAT_BOX); o->color(FL_INACTIVE_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->labelcolor(FL_BACKGROUND2_COLOR); o->callback((Fl_Callback*)cb_all, (void*)(14)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(65, 89, 55, 25, "MR"); o->box(FL_FLAT_BOX); o->shortcut(0x6f); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(17)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(5, 89, 55, 25, "MS"); o->box(FL_FLAT_BOX); o->shortcut(0x69); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(16)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(125, 89, 55, 25, "M+"); o->box(FL_FLAT_BOX); o->shortcut(0x70); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(18)); } // Fl_Button* o { b_ac = new Fl_Button(5, 119, 85, 25, "AC"); b_ac->box(FL_FLAT_BOX); b_ac->shortcut(0x6b); b_ac->down_box(FL_FLAT_BOX); b_ac->color(FL_INACTIVE_COLOR); b_ac->selection_color((Fl_Color)17); b_ac->labelsize(15); b_ac->labelcolor(FL_BACKGROUND2_COLOR); b_ac->callback((Fl_Callback*)cb_all, (void*)(15)); } // Fl_Button* b_ac { Fl_Button* o = new Fl_Button(5, 184, 55, 30, "asin"); o->box(FL_FLAT_BOX); o->shortcut(0x67); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(122)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(65, 184, 55, 30, "acos"); o->box(FL_FLAT_BOX); o->shortcut(0x68); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(123)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(125, 184, 55, 30, "atan"); o->box(FL_FLAT_BOX); o->shortcut(0x6a); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(124)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(5, 149, 55, 30, "sin"); o->box(FL_FLAT_BOX); o->shortcut(0x74); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(119)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(65, 149, 55, 30, "cos"); o->box(FL_FLAT_BOX); o->shortcut(0x79); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(120)); } // Fl_Button* o { b_equal = new Fl_Button(365, 297, 55, 47, "="); b_equal->box(FL_FLAT_BOX); b_equal->shortcut(0xff0d); b_equal->down_box(FL_FLAT_BOX); b_equal->color(FL_BACKGROUND2_COLOR); b_equal->selection_color((Fl_Color)17); b_equal->labelsize(15); b_equal->callback((Fl_Callback*)cb_all, (void*)(64)); } // Fl_Button* b_equal { Fl_Button* o = new Fl_Button(125, 149, 55, 30, "tan"); o->box(FL_FLAT_BOX); o->shortcut(0x75); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(121)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(50, 318, 40, 26, "x!"); o->box(FL_FLAT_BOX); o->shortcut(0x78); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(118)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(95, 318, 40, 26, "y\342\210\232x"); o->box(FL_FLAT_BOX); o->shortcut(0x63); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(97)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(140, 254, 40, 26, "1/x"); o->box(FL_FLAT_BOX); o->shortcut(0x72); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(117)); } // Fl_Button* o { Fl_Button* o = new Fl_Button(140, 318, 40, 26, "3\342\210\232x"); o->box(FL_FLAT_BOX); o->shortcut(0x76); o->down_box(FL_FLAT_BOX); o->color(FL_BACKGROUND2_COLOR); o->selection_color((Fl_Color)17); o->labelsize(15); o->callback((Fl_Callback*)cb_all, (void*)(133)); } // Fl_Button* o { i_varea = new Fl_Input(5, 26, 415, 42); i_varea->box(FL_RFLAT_BOX); i_varea->color((Fl_Color)206); i_varea->labelfont(4); i_varea->textfont(FL_COURIER_ITALIC); i_varea->textsize(30); } // Fl_Input* i_varea { bx_brackets = new Fl_Box(350, 71, 50, 14); bx_brackets->color((Fl_Color)206); bx_brackets->labelfont(4); bx_brackets->labelsize(12); bx_brackets->align(Fl_Align(FL_ALIGN_INSIDE)); } // Fl_Box* bx_brackets { bx_fmod = new Fl_Box(310, 71, 35, 14); bx_fmod->color((Fl_Color)206); bx_fmod->labelfont(4); bx_fmod->labelsize(12); bx_fmod->align(Fl_Align(FL_ALIGN_INSIDE)); } // Fl_Box* bx_fmod { bx_tmod = new Fl_Box(230, 71, 35, 14, "DEG"); bx_tmod->color((Fl_Color)206); bx_tmod->labelfont(4); bx_tmod->labelsize(12); bx_tmod->align(Fl_Align(FL_ALIGN_INSIDE)); } // Fl_Box* bx_tmod { bx_mem = new Fl_Box(270, 71, 35, 14); bx_mem->color((Fl_Color)206); bx_mem->labelfont(4); bx_mem->labelsize(12); bx_mem->align(Fl_Align(FL_ALIGN_INSIDE)); } // Fl_Box* bx_mem { bx_hyp = new Fl_Box(190, 71, 35, 14); bx_hyp->color((Fl_Color)206); bx_hyp->labelfont(4); bx_hyp->labelsize(12); bx_hyp->align(Fl_Align(FL_ALIGN_INSIDE)); } // Fl_Box* bx_hyp menu_bar = new MyMenuBar(0, 0, 425, 20); m_win->size_range(425, 285); m_win->end(); } // Fl_Double_Window* m_win #ifdef __linux__ m_win->icon((Fl_RGB_Image*) w_icon); #elif defined WIN32 m_win->icon((char*)LoadIcon(fl_display, MAKEINTRESOURCE(IDI_ICON))); #endif menu_bar->menu(menu_); menu_bar->box(FL_FLAT_BOX); menu_bar->down_box(FL_FLAT_BOX); menu_bar->color(FL_BACKGROUND2_COLOR); float lw = (float)i_varea->w(); float fs = (float)i_varea->textsize(); int nrofdigits = floor(1.6 * lw / fs); i_varea->value(calc.width(nrofdigits).c_str()); Fl::add_handler(missed_events); m_win->show(argc, argv); return Fl::run(); }
//==== Add Parameter Picker ====// void GroupLayout::AddParmPicker( ParmPicker & parm_picker ) { assert( m_Group && m_Screen ); //==== Container Button ====// Fl_Button* button = new Fl_Button( m_X, m_Y, m_ChoiceButtonWidth, m_StdHeight, "Container" ); button->box( FL_THIN_UP_BOX ); button->labelfont( 1 ); button->labelsize( 12 ); button->labelcolor( FL_BLACK ); m_Group->add( button ); AddX( m_ChoiceButtonWidth ); //==== Container Picker ====// int choice_w = FitWidth( m_ChoiceButtonWidth, m_SliderWidth ); Fl_Choice* container_choice = new Fl_Choice( m_X, m_Y, choice_w, m_StdHeight ); container_choice->down_box( FL_BORDER_BOX ); container_choice->textfont( 1 ); container_choice->textsize( 12 ); container_choice->textcolor( FL_DARK_BLUE ); m_Group->add( container_choice ); AddX( choice_w ); AddY( m_StdHeight ); NewLineX(); //==== Group Button ====// button = new Fl_Button( m_X, m_Y, m_ChoiceButtonWidth, m_StdHeight, "Group" ); button->box( FL_THIN_UP_BOX ); button->labelfont( 1 ); button->labelsize( 12 ); button->labelcolor( FL_BLACK ); m_Group->add( button ); AddX( m_ChoiceButtonWidth ); //==== Group Picker ====// choice_w = FitWidth( m_ChoiceButtonWidth, m_SliderWidth ); Fl_Choice* group_choice = new Fl_Choice( m_X, m_Y, choice_w, m_StdHeight ); group_choice->down_box( FL_BORDER_BOX ); group_choice->textfont( 1 ); group_choice->textsize( 12 ); group_choice->textcolor( FL_DARK_BLUE ); m_Group->add( group_choice ); AddX( choice_w ); AddY( m_StdHeight ); NewLineX(); //==== Parm Button ====// button = new Fl_Button( m_X, m_Y, m_ChoiceButtonWidth, m_StdHeight, "Parm" ); button->box( FL_THIN_UP_BOX ); button->labelfont( 1 ); button->labelsize( 12 ); button->labelcolor( FL_BLACK ); m_Group->add( button ); AddX( m_ChoiceButtonWidth ); //==== Parm Picker ====// choice_w = FitWidth( m_ChoiceButtonWidth, m_SliderWidth ); Fl_Choice* parm_choice = new Fl_Choice( m_X, m_Y, choice_w, m_StdHeight ); parm_choice->down_box( FL_BORDER_BOX ); parm_choice->textfont( 1 ); parm_choice->textsize( 12 ); parm_choice->textcolor( FL_DARK_BLUE ); m_Group->add( parm_choice ); AddX( choice_w ); AddY( m_StdHeight ); NewLineX(); parm_picker.Init( m_Screen, container_choice, group_choice, parm_choice ); }
Fl_Group* LFOUI::make_window() { { lfoui = new Fl_Group(0, 0, 230, 70); lfoui->box(FL_FLAT_BOX); lfoui->color(FL_LIGHT1); lfoui->selection_color(FL_BACKGROUND_COLOR); lfoui->labeltype(FL_NO_LABEL); lfoui->labelfont(1); lfoui->labelsize(14); lfoui->labelcolor(FL_FOREGROUND_COLOR); lfoui->user_data((void*)(this)); lfoui->align(FL_ALIGN_TOP); lfoui->when(FL_WHEN_RELEASE); { lfoparamswindow = new Fl_Group(0, 0, 230, 70, "LFO"); lfoparamswindow->box(FL_PLASTIC_UP_BOX); lfoparamswindow->color(FL_CYAN); lfoparamswindow->labeltype(FL_ENGRAVED_LABEL); lfoparamswindow->labelsize(10); lfoparamswindow->align(FL_ALIGN_TOP|FL_ALIGN_INSIDE); { freq = new WidgetPDial(5, 20, 30, 30, "Freq."); freq->tooltip("LFO Frequency"); freq->box(FL_ROUND_UP_BOX); freq->color(FL_BACKGROUND_COLOR); freq->selection_color(FL_INACTIVE_COLOR); freq->labeltype(FL_NORMAL_LABEL); freq->labelfont(0); freq->labelsize(10); freq->labelcolor(FL_FOREGROUND_COLOR); freq->step(1e-005); freq->callback((Fl_Callback*)cb_freq); freq->align(FL_ALIGN_BOTTOM); freq->when(FL_WHEN_CHANGED); } // WidgetPDial* freq { intensity = new WidgetPDial(40, 20, 30, 30, "Depth"); intensity->tooltip("LFO Amount"); intensity->box(FL_ROUND_UP_BOX); intensity->color(FL_BACKGROUND_COLOR); intensity->selection_color(FL_INACTIVE_COLOR); intensity->labeltype(FL_NORMAL_LABEL); intensity->labelfont(0); intensity->labelsize(10); intensity->labelcolor(FL_FOREGROUND_COLOR); intensity->maximum(127); intensity->step(1); intensity->callback((Fl_Callback*)cb_intensity); intensity->align(FL_ALIGN_BOTTOM); intensity->when(FL_WHEN_CHANGED); } // WidgetPDial* intensity { delay = new WidgetPDial(110, 20, 30, 30, "Delay"); delay->tooltip("LFO delay"); delay->box(FL_ROUND_UP_BOX); delay->color(FL_BACKGROUND_COLOR); delay->selection_color(FL_INACTIVE_COLOR); delay->labeltype(FL_NORMAL_LABEL); delay->labelfont(0); delay->labelsize(10); delay->labelcolor(FL_FOREGROUND_COLOR); delay->maximum(127); delay->step(1); delay->callback((Fl_Callback*)cb_delay); delay->align(FL_ALIGN_BOTTOM); delay->when(FL_WHEN_CHANGED); } // WidgetPDial* delay { startphase = new WidgetPDial(75, 20, 30, 30, "Start"); startphase->tooltip("LFO Startphase (leftmost is Random)"); startphase->box(FL_ROUND_UP_BOX); startphase->color(FL_BACKGROUND_COLOR); startphase->selection_color(FL_INACTIVE_COLOR); startphase->labeltype(FL_NORMAL_LABEL); startphase->labelfont(0); startphase->labelsize(10); startphase->labelcolor(FL_FOREGROUND_COLOR); startphase->maximum(127); startphase->step(1); startphase->callback((Fl_Callback*)cb_startphase); startphase->align(FL_ALIGN_BOTTOM); startphase->when(FL_WHEN_CHANGED); } // WidgetPDial* startphase { randomness = new WidgetPDial(180, 7, 20, 20, "A.R."); randomness->tooltip("LFO Amplitude Randomness"); randomness->box(FL_ROUND_UP_BOX); randomness->color(FL_BACKGROUND_COLOR); randomness->selection_color(FL_INACTIVE_COLOR); randomness->labeltype(FL_NORMAL_LABEL); randomness->labelfont(0); randomness->labelsize(10); randomness->labelcolor(FL_FOREGROUND_COLOR); randomness->maximum(127); randomness->step(1); randomness->callback((Fl_Callback*)cb_randomness); randomness->align(FL_ALIGN_BOTTOM); randomness->when(FL_WHEN_CHANGED); } // WidgetPDial* randomness { LFOtype = new Fl_Choice(180, 40, 45, 15, "Type"); LFOtype->tooltip("LFO function"); LFOtype->down_box(FL_BORDER_BOX); LFOtype->labelsize(10); LFOtype->textsize(8); LFOtype->callback((Fl_Callback*)cb_LFOtype); LFOtype->align(FL_ALIGN_BOTTOM); LFOtype->menu(menu_LFOtype); } // Fl_Choice* LFOtype { continous = new Fl_Check_Button(165, 35, 15, 15, "C."); continous->tooltip("Continous LFO"); continous->down_box(FL_DOWN_BOX); continous->labelsize(10); continous->callback((Fl_Callback*)cb_continous); continous->align(FL_ALIGN_BOTTOM); } // Fl_Check_Button* continous { freqrand = new WidgetPDial(205, 7, 20, 20, "F.R."); freqrand->tooltip("LFO Frequency Randomness"); freqrand->box(FL_ROUND_UP_BOX); freqrand->color(FL_BACKGROUND_COLOR); freqrand->selection_color(FL_INACTIVE_COLOR); freqrand->labeltype(FL_NORMAL_LABEL); freqrand->labelfont(0); freqrand->labelsize(10); freqrand->labelcolor(FL_FOREGROUND_COLOR); freqrand->maximum(127); freqrand->step(1); freqrand->callback((Fl_Callback*)cb_freqrand); freqrand->align(FL_ALIGN_BOTTOM); freqrand->when(FL_WHEN_CHANGED); } // WidgetPDial* freqrand { stretch = new WidgetPDial(144, 30, 20, 20, "Str."); stretch->tooltip("LFO stretch"); stretch->box(FL_ROUND_UP_BOX); stretch->color(FL_BACKGROUND_COLOR); stretch->selection_color(FL_INACTIVE_COLOR); stretch->labeltype(FL_NORMAL_LABEL); stretch->labelfont(0); stretch->labelsize(10); stretch->labelcolor(FL_FOREGROUND_COLOR); stretch->maximum(127); stretch->step(1); stretch->callback((Fl_Callback*)cb_stretch); stretch->align(FL_ALIGN_BOTTOM); stretch->when(FL_WHEN_CHANGED); } // WidgetPDial* stretch { Fl_Button* o = new Fl_Button(145, 10, 15, 15, "C"); o->box(FL_THIN_UP_BOX); o->color((Fl_Color)179); o->labelfont(1); o->labelsize(10); o->labelcolor(FL_BACKGROUND2_COLOR); o->callback((Fl_Callback*)cb_C); } // Fl_Button* o { Fl_Button* o = new Fl_Button(162, 10, 15, 15, "P"); o->box(FL_THIN_UP_BOX); o->color((Fl_Color)179); o->labelfont(1); o->labelsize(10); o->labelcolor(FL_BACKGROUND2_COLOR); o->callback((Fl_Callback*)cb_P); } // Fl_Button* o lfoparamswindow->end(); } // Fl_Group* lfoparamswindow lfoui->end(); } // Fl_Group* lfoui return lfoui; }
Transport::Transport ( int X, int Y, int W, int H, const char *L ) : Fl_Pack( X, Y, W, H, L ) { recording = false; rolling = false; _stop_disables_record = true; bar = 0; beat = 0; tick = 0; beats_per_minute = 120; ticks_per_beat = 1920; beat_type = 4; beats_per_bar = 4; next_time = 0; frame_time =0; frame_rate = 48000; frame = 0; const int bw = W / 5; type( HORIZONTAL ); Fl_Button *o; _home_button = o = new Fl_Button( 0, 0, bw, 0, "@|<" ); o->labeltype( FL_EMBOSSED_LABEL ); o->callback( cb_button, this ); o->shortcut( FL_Home ); o->box( FL_UP_BOX ); _end_button = o = new Fl_Button( 0, 0, bw, 0, "@>|" ); o->labeltype( FL_EMBOSSED_LABEL ); o->callback( cb_button, this ); o->shortcut( FL_End ); _play_button = o = new Fl_Button( 0, 0, bw, 0, "@>" ); o->labeltype( FL_EMBOSSED_LABEL ); o->callback( cb_button, this ); o->shortcut( ' ' ); o->box( FL_UP_BOX ); _record_button = o = new Fl_Button( 0, 0, bw, 0, "@circle" ); o->type( FL_TOGGLE_BUTTON ); o->labeltype( FL_EMBOSSED_LABEL ); o->labelcolor( fl_color_average( FL_RED, FL_WHITE, 0.25f ) ); o->shortcut( 'R' ); o->callback( cb_button, this ); o->when( FL_WHEN_CHANGED ); o->box( FL_UP_BOX ); _punch_button = o = new Fl_Button( 0, 0, bw, 0, "Punch" ); o->type( FL_TOGGLE_BUTTON ); o->labelsize( 9 ); o->labeltype( FL_NORMAL_LABEL ); o->shortcut( 'P' ); o->callback( cb_button, this ); o->when( FL_WHEN_CHANGED ); o->color2( FL_RED ); o->box( FL_UP_BOX ); end(); }
Fl_Double_Window* ResonanceUI::make_window() { { resonancewindow = new Fl_Double_Window(780, 305, "Resonance"); resonancewindow->user_data((void*)(this)); { khzvalue = new Fl_Value_Output(415, 264, 45, 18, "kHz"); khzvalue->labelsize(12); khzvalue->minimum(0.001); khzvalue->maximum(48); khzvalue->step(0.01); khzvalue->textfont(1); khzvalue->textsize(12); khzvalue->align(FL_ALIGN_RIGHT); //this widget must be before the calling widgets } // Fl_Value_Output* khzvalue { dbvalue = new Fl_Value_Output(415, 282, 45, 18, "dB"); dbvalue->labelsize(12); dbvalue->minimum(-150); dbvalue->maximum(150); dbvalue->step(0.1); dbvalue->textfont(1); dbvalue->textsize(12); dbvalue->align(FL_ALIGN_RIGHT); //this widget must be before the calling widgets } // Fl_Value_Output* dbvalue { Fl_Group* o = new Fl_Group(6, 5, 768, 256); o->box(FL_BORDER_BOX); rg=new ResonanceGraph(o->x(),o->y(),o->w(),o->h(),""); rg->init(respar,khzvalue,dbvalue); rg->show(); o->end(); } // Fl_Group* o { Fl_Button* o = new Fl_Button(690, 283, 84, 17, "Close"); o->box(FL_THIN_UP_BOX); o->callback((Fl_Callback*)cb_Close); } // Fl_Button* o { Fl_Button* o = new Fl_Button(491, 264, 66, 15, "Zero"); o->tooltip("Clear the resonance function"); o->box(FL_THIN_UP_BOX); o->labelfont(1); o->labelsize(12); o->callback((Fl_Callback*)cb_Zero); } // Fl_Button* o { Fl_Button* o = new Fl_Button(491, 282, 66, 18, "Smooth"); o->tooltip("Smooth the resonance function"); o->box(FL_THIN_UP_BOX); o->labelfont(1); o->labelsize(12); o->callback((Fl_Callback*)cb_Smooth); } // Fl_Button* o { Fl_Check_Button* o = enabled = new Fl_Check_Button(6, 270, 78, 27, "Enable"); enabled->box(FL_THIN_UP_BOX); enabled->down_box(FL_DOWN_BOX); enabled->callback((Fl_Callback*)cb_enabled); o->value(respar->Penabled); } // Fl_Check_Button* enabled { maxdb = new Fl_Roller(90, 282, 84, 15); maxdb->type(1); maxdb->minimum(1); maxdb->maximum(90); maxdb->step(1); maxdb->value(30); maxdb->callback((Fl_Callback*)cb_maxdb); } // Fl_Roller* maxdb { Fl_Value_Output* o = maxdbvo = new Fl_Value_Output(126, 264, 24, 18, "Max."); maxdbvo->tooltip("The Maximum amplitude (dB)"); maxdbvo->labelsize(12); maxdbvo->minimum(1); maxdbvo->maximum(127); maxdbvo->step(1); maxdbvo->value(30); maxdbvo->textfont(1); maxdbvo->textsize(12); maxdbvo->callback((Fl_Callback*)cb_maxdbvo); o->value(respar->PmaxdB); } // Fl_Value_Output* maxdbvo { new Fl_Box(150, 264, 24, 18, "dB"); } // Fl_Box* o { Fl_Value_Output* o = centerfreqvo = new Fl_Value_Output(210, 264, 33, 18, "C.f."); centerfreqvo->tooltip("Center Frequency (kHz)"); centerfreqvo->labelsize(12); centerfreqvo->minimum(1); centerfreqvo->maximum(10); centerfreqvo->step(0.01); centerfreqvo->value(1); centerfreqvo->textfont(1); centerfreqvo->textsize(12); centerfreqvo->callback((Fl_Callback*)cb_centerfreqvo); centerfreqvo->when(3); o->value(respar->getcenterfreq()/1000.0); } // Fl_Value_Output* centerfreqvo { Fl_Value_Output* o = octavesfreqvo = new Fl_Value_Output(210, 282, 33, 18, "Oct."); octavesfreqvo->tooltip("No. of octaves"); octavesfreqvo->labelsize(12); octavesfreqvo->minimum(1); octavesfreqvo->maximum(127); octavesfreqvo->step(1); octavesfreqvo->value(30); octavesfreqvo->textfont(1); octavesfreqvo->textsize(12); octavesfreqvo->callback((Fl_Callback*)cb_octavesfreqvo); octavesfreqvo->when(3); o->value(respar->getoctavesfreq()); } // Fl_Value_Output* octavesfreqvo { Fl_Button* o = new Fl_Button(566, 276, 42, 12, "RND2"); o->tooltip("Randomize the resonance function"); o->box(FL_THIN_UP_BOX); o->labelfont(1); o->labelsize(10); o->callback((Fl_Callback*)cb_RND2); } // Fl_Button* o { Fl_Button* o = new Fl_Button(566, 264, 42, 12, "RND1"); o->tooltip("Randomize the resonance function"); o->box(FL_THIN_UP_BOX); o->labelfont(1); o->labelsize(10); o->callback((Fl_Callback*)cb_RND1); } // Fl_Button* o { Fl_Button* o = new Fl_Button(566, 288, 42, 12, "RND3"); o->tooltip("Randomize the resonance function"); o->box(FL_THIN_UP_BOX); o->labelfont(1); o->labelsize(10); o->callback((Fl_Callback*)cb_RND3); } // Fl_Button* o { Fl_Check_Button* o = p1st = new Fl_Check_Button(365, 285, 45, 15, "P.1st"); p1st->tooltip("Protect the fundamental frequency (do not damp the first harmonic)"); p1st->down_box(FL_DOWN_BOX); p1st->labelsize(10); p1st->callback((Fl_Callback*)cb_p1st); o->value(respar->Pprotectthefundamental); } // Fl_Check_Button* p1st { Fl_Button* o = new Fl_Button(365, 265, 46, 15, "InterpP"); o->tooltip("Interpolate the peaks"); o->box(FL_THIN_UP_BOX); o->labelfont(1); o->labelsize(10); o->callback((Fl_Callback*)cb_InterpP); } // Fl_Button* o { WidgetPDial* o = centerfreq = new WidgetPDial(master, 245, 265, 30, 30, "C.f."); centerfreq->box(FL_ROUND_UP_BOX); centerfreq->color(FL_BACKGROUND_COLOR); centerfreq->selection_color(FL_INACTIVE_COLOR); centerfreq->labeltype(FL_NORMAL_LABEL); centerfreq->labelfont(0); centerfreq->labelsize(10); centerfreq->labelcolor(FL_FOREGROUND_COLOR); centerfreq->maximum(127); centerfreq->step(1); centerfreq->callback((Fl_Callback*)cb_centerfreq); centerfreq->align(FL_ALIGN_BOTTOM); centerfreq->when(FL_WHEN_CHANGED); o->value(respar->Pcenterfreq); } // WidgetPDial* centerfreq { WidgetPDial* o = octavesfreq = new WidgetPDial(master, 280, 265, 30, 30, "Oct."); octavesfreq->box(FL_ROUND_UP_BOX); octavesfreq->color(FL_BACKGROUND_COLOR); octavesfreq->selection_color(FL_INACTIVE_COLOR); octavesfreq->labeltype(FL_NORMAL_LABEL); octavesfreq->labelfont(0); octavesfreq->labelsize(10); octavesfreq->labelcolor(FL_FOREGROUND_COLOR); octavesfreq->maximum(127); octavesfreq->step(1); octavesfreq->callback((Fl_Callback*)cb_octavesfreq); octavesfreq->align(FL_ALIGN_BOTTOM); octavesfreq->when(FL_WHEN_CHANGED); o->value(respar->Poctavesfreq); } // WidgetPDial* octavesfreq { Fl_Button* o = new Fl_Button(625, 275, 25, 15, "C"); o->box(FL_THIN_UP_BOX); o->color((Fl_Color)179); o->labelfont(1); o->labelsize(11); o->labelcolor(FL_BACKGROUND2_COLOR); o->callback((Fl_Callback*)cb_C); } // Fl_Button* o { Fl_Button* o = new Fl_Button(655, 275, 25, 15, "P"); o->box(FL_THIN_UP_BOX); o->color((Fl_Color)179); o->labelfont(1); o->labelsize(11); o->labelcolor(FL_BACKGROUND2_COLOR); o->callback((Fl_Callback*)cb_P); } // Fl_Button* o { applybutton = new Fl_Button(690, 265, 85, 15, "Apply"); applybutton->box(FL_THIN_UP_BOX); applybutton->labelfont(1); applybutton->labelsize(11); applybutton->callback((Fl_Callback*)cb_applybutton); } // Fl_Button* applybutton resonancewindow->end(); } // Fl_Double_Window* resonancewindow return resonancewindow; }