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 }
fltkImage2DViewerGUI::fltkImage2DViewerGUI() { { externalWindow = new Fl_Double_Window(450, 365); externalWindow->user_data((void*)(this)); { imageViewer = new fltk::Image2DViewerWindow(0, 0, 450, 365); imageViewer->box(FL_NO_BOX); imageViewer->color(FL_BACKGROUND_COLOR); imageViewer->selection_color(FL_BACKGROUND_COLOR); imageViewer->labeltype(FL_NORMAL_LABEL); imageViewer->labelfont(0); imageViewer->labelsize(14); imageViewer->labelcolor(FL_FOREGROUND_COLOR); imageViewer->align(Fl_Align(FL_ALIGN_CENTER)); imageViewer->when(FL_WHEN_RELEASE); } // fltk::Image2DViewerWindow* imageViewer externalWindow->end(); externalWindow->resizable(externalWindow); } // Fl_Double_Window* externalWindow { intensityWindow = new Fl_Double_Window(501, 52, "Intensity Windowing"); intensityWindow->user_data((void*)(this)); { minimumSlider = new Fl_Value_Slider(33, 7, 460, 16, "Min "); minimumSlider->type(1); minimumSlider->labelsize(12); minimumSlider->callback((Fl_Callback*)cb_minimumSlider); minimumSlider->align(Fl_Align(FL_ALIGN_LEFT)); } // Fl_Value_Slider* minimumSlider { maximumSlider = new Fl_Value_Slider(33, 24, 460, 17, "Max "); maximumSlider->type(1); maximumSlider->labelsize(12); maximumSlider->callback((Fl_Callback*)cb_maximumSlider); maximumSlider->align(Fl_Align(FL_ALIGN_LEFT)); } // Fl_Value_Slider* maximumSlider intensityWindow->end(); } // Fl_Double_Window* intensityWindow }
//==== Create & Init Index Selector ====// void GroupLayout::AddIndexSelector( IndexSelector& selector ) { assert( m_Group && m_Screen ); int butw = 5 * m_ButtonWidth / 6; Fl_Button* but_ll = new Fl_Button( m_X, m_Y, butw, m_StdHeight, "<<" ); but_ll->box( FL_THIN_UP_BOX ); but_ll->labelfont( 1 ); but_ll->labelsize( 20 ); but_ll->labelcolor( ( Fl_Color )4 ); but_ll->align( Fl_Align( FL_ALIGN_CLIP ) ); AddX( butw ); Fl_Button* but_l = new Fl_Button( m_X, m_Y, butw, m_StdHeight, "<" ); but_l->box( FL_THIN_UP_BOX ); but_l->labelfont( 1 ); but_l->labelsize( 20 ); but_l->labelcolor( ( Fl_Color )4 ); but_l->align( Fl_Align( FL_ALIGN_CLIP ) ); AddX( butw ); int iw = FitWidth( 4 * butw, m_InputWidth ); Fl_Int_Input* int_inp = new Fl_Int_Input( m_X + 4, m_Y, iw - 8, m_StdHeight ); int_inp->type( 2 ); int_inp->box( FL_THIN_DOWN_BOX ); int_inp->labelfont( 1 ); int_inp->textsize( 14 ); int_inp->align( Fl_Align( FL_ALIGN_CENTER ) ); int_inp->when( FL_WHEN_ENTER_KEY | FL_WHEN_RELEASE ); AddX( iw ); Fl_Button* but_r = new Fl_Button( m_X, m_Y, butw, m_StdHeight, ">" ); but_r->box( FL_THIN_UP_BOX ); but_r->labelfont( 1 ); but_r->labelsize( 20 ); but_r->labelcolor( ( Fl_Color )4 ); but_r->align( Fl_Align( FL_ALIGN_CLIP ) ); AddX( butw ); Fl_Button* but_rr = new Fl_Button( m_X, m_Y, butw, m_StdHeight, ">>" ); but_rr->box( FL_THIN_UP_BOX ); but_rr->labelfont( 1 ); but_rr->labelsize( 20 ); but_rr->labelcolor( ( Fl_Color )4 ); but_rr->align( Fl_Align( FL_ALIGN_CLIP ) ); AddX( butw ); selector.Init( m_Screen, but_ll, but_l, int_inp, but_r, but_rr ); AddY( m_StdHeight ); NewLineX(); }
ImageWindow::ImageWindow() { Fl_Double_Window* w; { Fl_Double_Window* o = new Fl_Double_Window(930, 580, "Total Counts"); w = o; o->user_data((void*)(this)); { new Fl_Button(30, 190, 285, 30, "Save Image"); } // Fl_Button* o { new Fl_Button(30, 240, 285, 30, "Reset Image"); } // Fl_Button* o { new Fl_Light_Button(85, 492, 175, 40, "Analyze Pointing"); } // Fl_Light_Button* o { new Fl_Value_Output(127, 384, 115, 25, "RA"); } // Fl_Value_Output* o { new Fl_Value_Output(127, 419, 115, 25, "Dec"); } // Fl_Value_Output* o { new Fl_Value_Output(127, 455, 115, 25, "Roll"); } // Fl_Value_Output* o { Fl_Box* o = new Fl_Box(25, 359, 300, 214, "Current Pointing"); o->box(FL_THIN_UP_FRAME); o->labelfont(1); o->align(Fl_Align(FL_ALIGN_TOP)); } // Fl_Box* o { Fl_Choice* o = new Fl_Choice(456, 535, 155, 25, "Image Scaling"); o->down_box(FL_BORDER_BOX); } // Fl_Choice* o { new Fl_Value_Output(199, 55, 115, 25, "Total Counts"); } // Fl_Value_Output* o { Fl_Value_Output* o = new Fl_Value_Output(199, 97, 115, 25, "Average Count Rate"); o->align(Fl_Align(132)); } // Fl_Value_Output* o { Fl_Value_Output* o = new Fl_Value_Output(199, 140, 115, 25, "Bright Pixel Count Rate"); o->align(Fl_Align(132)); } // Fl_Value_Output* o { Fl_Box* o = new Fl_Box(23, 37, 300, 258, "Image Statistics"); o->box(FL_THIN_UP_FRAME); o->labelfont(1); o->align(Fl_Align(FL_ALIGN_TOP)); } // Fl_Box* o { new Fl_Progress(30, 540, 290, 30); } // Fl_Progress* o { Fl_Box* o = new Fl_Box(365, 40, 530, 475, "Detector Image"); o->box(FL_THIN_UP_FRAME); o->labelfont(1); o->align(Fl_Align(FL_ALIGN_TOP)); } // Fl_Box* o { Fl_Choice* o = new Fl_Choice(760, 535, 155, 25, "Pixel Arrangement"); o->down_box(FL_BORDER_BOX); } // Fl_Choice* o plot = new plotWindow (100,100,500,500); o->end(); w->show(); } // Fl_Double_Window* o }
/* Requires the x,y coordinates of the new CreateMesh_Widget. */ ViewModeGroup::ViewModeGroup(int x, int y) : Fl_Group(x, y, 110, 115, "Viewing Modes") { /* Group for how to draw the mesh. */ this->box(FL_ENGRAVED_FRAME); this->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE)); /* Display wire frame button. */ this->wireframeB = new Fl_Round_Button(x+10, y+20, 89, 24, "Wireframe"); this->wireframeB->type(102); this->wireframeB->down_box(FL_ROUND_DOWN_BOX); /* Display solid button. */ this->solidB = new Fl_Round_Button(x+10, y+50, 89, 24, "Solid"); this->solidB->type(102); this->solidB->down_box(FL_ROUND_DOWN_BOX); /* Display both button. */ this->bothB = new Fl_Round_Button(x+10, y+80, 89, 24, "Both"); this->bothB->value(1); this->bothB->type(102); this->bothB->down_box(FL_ROUND_DOWN_BOX); this->end(); }
//==== Add Sub Group Layout At Current Position ====// void GroupLayout::AddCounter( Counter & count, const char* label ) { assert( m_Group && m_Screen ); //==== Counter Button ====// VspButton* button = NULL; if ( strcmp( label, "" ) != 0 ) { VspButton* button = AddParmButton( label ); button->align( Fl_Align( FL_ALIGN_CLIP ) ); } //==== Counter ====// int counter_w = FitWidth( m_ButtonWidth, m_SliderWidth ); Fl_Counter* fl_counter = new Fl_Counter( m_X, m_Y, counter_w, m_StdHeight ); fl_counter->type( FL_SIMPLE_COUNTER ); fl_counter->minimum( 0 ); fl_counter->maximum( 10000 ); fl_counter->step( 1 ); m_Group->add( fl_counter ); AddX( counter_w ); count.Init( m_Screen, fl_counter, button ); AddY( m_StdHeight ); NewLineX(); }
int main(int argc, char **argv) { ThemeLoader::init(); IconLoader::init(); win = new EdeWindow(455, 485, "Theme demo"); win->begin(); { Fl_Button* o = new Fl_Button(355, 450, 90, 25, "Load"); o->tooltip("Load predefined theme"); o->callback(load_theme_cb); } // Fl_Button* o { Fl_Menu_Bar* o = new Fl_Menu_Bar(0, 0, 455, 25); o->menu(menu_); } // Fl_Menu_Bar* o { Fl_Round_Button* o = new Fl_Round_Button(5, 285, 90, 25, "round"); o->down_box(FL_ROUND_DOWN_BOX); } // Fl_Round_Button* o { new Fl_Return_Button(5, 195, 90, 25, "button"); } // Fl_Return_Button* o { new Fl_Input(160, 196, 285, 25, "input:"); } // Fl_Input* o { Fl_Output* o = new Fl_Output(160, 225, 285, 25, "output:"); o->value("Some output value"); } // Fl_Output* o { Fl_File_Browser* o = new Fl_File_Browser(5, 30, 210, 125); o->load("/"); } // Fl_File_Browser* o { Fl_Check_Browser* o = new Fl_Check_Browser(220, 30, 225, 125); o->add("foo"); o->add("foo"); o->add("foo"); } // Fl_Check_Browser* o { Fl_Progress* o = new Fl_Progress(5, 160, 210, 25, "progress bar"); o->value(50); } // Fl_Progress* o { Fl_Slider* o = new Fl_Slider(220, 160, 225, 25); o->type(1); o->align(Fl_Align(FL_ALIGN_TOP_LEFT)); } // Fl_Slider* o { new Fl_Light_Button(5, 225, 90, 25, "button"); } // Fl_Light_Button* o { Fl_Check_Button* o = new Fl_Check_Button(5, 255, 90, 25, "check"); o->down_box(FL_DOWN_BOX); } // Fl_Check_Button* o { Fl_File_Input* o = new Fl_File_Input(160, 256, 285, 35, "file:"); o->value("/home/foo/baz/taz.txt"); } // Fl_File_Input* o { Fl_Text_Editor* o = new Fl_Text_Editor(160, 325, 285, 115, "Text editor"); o->buffer(new Fl_Text_Buffer()); } // Fl_Text_Editor* o { Fl_Box* o = new Fl_Box(25, 328, 80, 80, "image"); IconLoader::set(o, "utilities-terminal", ICON_SIZE_MEDIUM); } // Fl_Box* o win->end(); win->show(argc, argv); Fl::run(); ThemeLoader::shutdown(); IconLoader::shutdown(); return 0; }
void MapsWindow::MapArea::MapInfoWin::draw() { draw_box(FL_BORDER_BOX, 0, 0, w(), h(), Fl_Tooltip::color()); fl_color(Fl_Tooltip::textcolor()); fl_font(Fl_Tooltip::font(), Fl_Tooltip::size()); int X = MARGIN; int Y = MARGIN; int W = w() - (MARGIN*2); int H = h() - (MARGIN*2); fl_draw(info_.c_str(), X, Y, W, H, Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_WRAP)); }
/* Creates the group for the timeline and its controls and returns it. */ Fl_Group* AnimatedSGWindow::makeFrameControlG(const int x, const int y) { Fl_Group* frameControlG = new Fl_Group(x, y, 200, 50); /* Create the frame rate spinner. */ this->framerateSpinner = new Fl_Spinner(x, y, 50, 25, "Frame rate"); this->framerateSpinner->box(FL_UP_BOX); this->framerateSpinner->maximum(60); this->framerateSpinner->value(10); this->framerateSpinner->align(Fl_Align(FL_ALIGN_TOP)); /* Create the number of frames spinner. */ this->numFramesSpinner = new Fl_Spinner(x+100, y, 70, 25, "Number of Frames"); this->numFramesSpinner->box(FL_UP_BOX); this->numFramesSpinner->maximum(999); this->numFramesSpinner->value(20); this->numFramesSpinner->align(Fl_Align(FL_ALIGN_TOP)); this->numFramesSpinner->callback(AnimatedSGWindow::numFramesCB, this); frameControlG->end(); return frameControlG; }
internals_graphics::Drawable2DObject * Plot2DAxes::inserted(Fl_Group * & optionWin, int reqWidth) { /* create the option window */ optionWin = new Fl_Group(0, 0, reqWidth,60); // create the option group _gradButton = new Fl_Check_Button(25, 10, 90, 15, "Graduations."); _gradButton->labelfont(0); _gradButton->labelsize(11); _gradButton->color2(FL_RED); _gradButton->callback(_gradButtonCB_static, this); _gradButton->when(FL_WHEN_CHANGED); _gradButton->value(_gradStatus ? 1 : 0); _numButton = new Fl_Check_Button(25, 35, 90, 15, "Numbers."); _numButton->labelfont(0); _numButton->labelsize(11); _numButton->color2(FL_RED); _numButton->callback(_numButtonCB_static, this); _numButton->when(FL_WHEN_CHANGED); _numButton->value(_numStatus ? 1 : 0); _gradColorButton = new Fl_Button(10, 10, 15, 15); _gradColorButton->color2(_gradColor); _gradColorButton->color(_gradColor); _gradColorButton->callback(_gradColorButtonCB_static, this); _numColorButton = new Fl_Button(10, 35, 15, 15); _numColorButton->color2(_numColor); _numColorButton->color(_numColor); _numColorButton->callback(_numColorButtonCB_static, this); _scaleSlider = new Fl_Value_Slider(reqWidth - 150, 30, 140, 15); _scaleSlider->align(Fl_Align(FL_ALIGN_TOP)); _scaleSlider->box(FL_FLAT_BOX); _scaleSlider->type(FL_HOR_NICE_SLIDER); _scaleSlider->range(0.1, 5.0); _scaleSlider->step(0.1); _scaleSlider->value(_scaling); _scaleSlider->color2(FL_RED); _scaleSlider->callback(_scaleSliderCB_static, this); auto b = new Fl_Box(reqWidth - 105, 10, 80, 15, "scaling"); b->labelfont(0); b->labelsize(11); optionWin->end(); return this; }
// Fltk draw void MyButton::draw() { Fl_OpButton::draw(); // NOT CONNECTED, AND CONSTANT SET? // Show its value to the left of the button. // if ( !IsConnected() && const_val != "" ) { int fontsize = 18; int align = FL_ALIGN_RIGHT|FL_ALIGN_INSIDE; // right justified fl_color(0xf0d0a000); fl_font(FL_HELVETICA_BOLD, fontsize); int X = x() - 40; int Y = y() + 2; int W = 40 - 5; int H = fontsize; fl_draw(const_val.c_str(), X,Y,W,H, Fl_Align(align)); // draw the constant next to the button } }
//==== Create & Init Gui ToggleButton ====// void GroupLayout::AddButton( CheckButtonBit& cbutton, const char* label, int value ) { assert( m_Group && m_Screen ); //==== Add Check Button ====// int bw = FitWidth( 0, m_ButtonWidth ); Fl_Light_Button* flbutton = new Fl_Light_Button( m_X, m_Y, bw, m_StdHeight, label ); flbutton->labelfont( 1 ); flbutton->labelsize( 12 ); flbutton->align( Fl_Align( 132 | FL_ALIGN_INSIDE ) ); flbutton->labelcolor( FL_DARK_BLUE ); flbutton->copy_label( label ); m_Group->add( flbutton ); AddX( bw ); AddY( m_StdHeight ); NewLineX(); cbutton.Init( m_Screen, flbutton, value ); }
/* Creates the group for the timeline and its controls and returns it. */ Fl_Group* AnimatedSGWindow::makeTimelineG(const int x, const int y) { Fl_Group* timelineG = new Fl_Group(x, y, 750, 70); /* Create the back buttons */ this->backB = new Fl_Button(x, y+30, 40, 40, "<<"); this->backB->box(FL_PLASTIC_UP_BOX); this->backB->callback(AnimatedSGWindow::backCB, this); /* Create the play buttons */ this->playB = new Fl_Button(x+50, y+30, 40, 40, "\342\226\272"); this->playB->box(FL_PLASTIC_UP_BOX); this->playB->color((Fl_Color)2); this->playB->callback(AnimatedSGWindow::playbuttonCB, this); /* Create the forwards buttons */ this->forwardB = new Fl_Button(x+100, y+30, 40, 40, ">>"); this->forwardB->box(FL_PLASTIC_UP_BOX); this->forwardB->callback(AnimatedSGWindow::forwardCB, this); /* Create the timeline sliders. */ this->timeline = new Fl_Value_Slider(x+150, y+30, 540, 40, "Timeline"); this->timeline->type(5); this->timeline->box(FL_PLASTIC_UP_BOX); this->timeline->maximum(this->numFramesSpinner->value()-1); this->timeline->step(1); this->timeline->align(Fl_Align(FL_ALIGN_TOP)); this->timeline->callback(AnimatedSGWindow::timelineCB, this); /* Create the loop buttons. */ this->loopB = new Fl_Light_Button(x+700, y+30, 60, 40, "Loop"); this->loopB->box(FL_PLASTIC_UP_BOX); this->loopB->selection_color(FL_GREEN); timelineG->end(); return timelineG; }
WindowLoading::WindowLoading(Context* context) : Fl_Window(350, 140, _("Please Wait")) { this->context = context; this->align(Fl_Align(FL_ALIGN_CLIP|FL_ALIGN_INSIDE)); progress_bar_dir = new Fl_Progress(20, 20, 320, 30, _("Scanning directories...")); progress_bar_dir->selection_color(DEFAULT_FOREGROUND_COLOR); progress_bar_file = new Fl_Progress(20, 70, 320, 30, _("Loading files...")); progress_bar_file->selection_color(DEFAULT_FOREGROUND_COLOR); Fl_Button* button_cancel = new Fl_Button(280, 110, 70, 25, _("Cancel")); util_adjust_width(button_cancel, 10); button_cancel->clear_visible_focus(); button_cancel->callback([](Fl_Widget *w, void *u) { SignalCancelSync.emit(); }); SignalCancelSync.connect(sigc::mem_fun(this, &WindowLoading::cancel)); set_modal(); }
/** * Override of the inserted method **/ virtual internals_graphics::Drawable2DObject * inserted(Fl_Group * & optionWin, int reqWidth) { /* create the option window */ optionWin = new Fl_Group(0, 0, reqWidth, 110); // create the option group Fl_Group * gr1 = new Fl_Group(0, 0, reqWidth, 110); // create the option group _checkButtonColor = new Fl_Round_Button(10, 5, reqWidth - 20, 15, "Use the getColor() method."); _checkButtonColor->align(Fl_Align(FL_ALIGN_INSIDE | FL_ALIGN_LEFT)); _checkButtonColor->labelfont(0); _checkButtonColor->labelsize(11); _checkButtonColor->color2(FL_RED); _checkButtonColor->type(102); _checkButtonColor->callback(_roundButtonCB_static, this); _checkButtonColor->when(FL_WHEN_CHANGED); _checkButtonImage = new Fl_Round_Button(10, 85, reqWidth - 20, 15, "Use the getImage() method."); _checkButtonImage->align(Fl_Align(FL_ALIGN_INSIDE | FL_ALIGN_LEFT)); _checkButtonImage->labelfont(0); _checkButtonImage->labelsize(11); _checkButtonImage->color2(FL_RED); _checkButtonImage->type(102); _checkButtonImage->callback(_roundButtonCB_static, this); _checkButtonImage->when(FL_WHEN_CHANGED); if (_LD->imageType() == _LD->TYPEIMAGE) { _checkButtonImage->setonly(); } else { _checkButtonColor->setonly(); } if (!_LD->hasImage()) _checkButtonImage->deactivate(); gr1->end(); auto label1 = new Fl_Box(30, 25, 50, 15, "Opacify"); label1->align(Fl_Align(FL_ALIGN_INSIDE | FL_ALIGN_LEFT)); label1->labelfont(0); label1->labelsize(11); _opacifySlider = new Fl_Value_Slider(80, 25, reqWidth - 80 - 30, 15, nullptr); _opacifySlider->labelfont(0); _opacifySlider->labelsize(11); _opacifySlider->align(Fl_Align(FL_ALIGN_RIGHT)); _opacifySlider->box(FL_FLAT_BOX); _opacifySlider->type(FL_HOR_NICE_SLIDER); _opacifySlider->range(1.0, 4.0); _opacifySlider->step(0.05); _opacifySlider->value(_LD->opacify()); _opacifySlider->color2(FL_RED); _opacifySlider->callback(_opacifySliderCB_static, this); auto label2 = new Fl_Box(30, 45, 145, 15, "Remove transparent pixels :"); label2->align(Fl_Align(FL_ALIGN_INSIDE | FL_ALIGN_LEFT)); label2->labelfont(0); label2->labelsize(11); int rem = _LD->transparentColor(); _checkWhite = new Fl_Check_Button(180, 45, reqWidth - 175 - 30, 15, "white"); _checkWhite->align(Fl_Align(FL_ALIGN_INSIDE | FL_ALIGN_LEFT)); _checkWhite->labelfont(0); _checkWhite->labelsize(11); _checkWhite->value((rem == REMOVE_WHITE) ? 1 : 0); _checkWhite->callback(_checkWhiteCB_static, this); _checkBlack = new Fl_Check_Button(180, 65, reqWidth - 175 - 30, 15, "black"); _checkBlack->align(Fl_Align(FL_ALIGN_INSIDE | FL_ALIGN_LEFT)); _checkBlack->labelfont(0); _checkBlack->labelsize(11); _checkBlack->value((rem == REMOVE_BLACK) ? 1 : 0); _checkBlack->callback(_checkBlackCB_static, this); optionWin->end(); return _LD; }
void draw() { draw_box(FL_BORDER_BOX, 0, 0, w(), h(), Fl_Color(175)); fl_color(FL_BLACK); fl_font(labelfont(), labelsize()); fl_draw(tip, 3, 3, w()-6, h()-6, Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_WRAP)); }
Mixer::Mixer ( int X, int Y, int W, int H, const char *L ) : Fl_Group( X, Y, W, H, L ) { Loggable::dirty_callback( &Mixer::handle_dirty, this ); _rows = 1; box( FL_FLAT_BOX ); labelsize( 96 ); { Fl_Group *o = new Fl_Group( X, Y, W, 24 ); { Fl_Menu_Bar *o = menubar = new Fl_Menu_Bar( X, Y, W, 24 ); o->add( "&Project/&New" ); o->add( "&Project/&Open" ); o->add( "&Project/&Save", FL_CTRL + 's', 0, 0 ); o->add( "&Project/&Quit", FL_CTRL + 'q', 0, 0 ); o->add( "&Mixer/&Add Strip", 'a', 0, 0 ); o->add( "&Mixer/Add &N Strips" ); o->add( "&Mixer/&Import Strip" ); o->add( "&Mixer/&Rows/One", '1', 0, 0 ); o->add( "&Mixer/&Rows/Two", '2', 0, 0 ); o->add( "&Mixer/&Rows/Three", '3', 0, 0 ); o->add( "&View/&Theme", 0, 0, 0 ); o->add( "_&Options/&Display/&Knobs/&Arc", 0, 0, 0, FL_MENU_RADIO ); o->add( "_&Options/&Display/&Knobs/&Burnished", 0, 0, 0, FL_MENU_RADIO ); o->add( "_&Options/&Display/&Knobs/&Plastic", 0, 0, 0, FL_MENU_RADIO | FL_MENU_VALUE ); o->add( "_&Options/&Display/&Sliders/&Nice", 0, 0, 0, FL_MENU_RADIO | FL_MENU_VALUE ); o->add( "_&Options/&Display/&Sliders/&Fill", 0, 0, 0, FL_MENU_RADIO ); o->add( "_&Options/&Display/&Sliders/&Simple", 0, 0, 0, FL_MENU_RADIO ); o->add( "_&Options/&Display/&Colors/&System", 0, 0, 0, FL_MENU_RADIO ); o->add( "&Help/&Manual" ); o->add( "&Help/&About" ); o->callback( cb_menu, this ); } { Fl_Box *o = project_name = new Fl_Box( X + 150, Y, W, 24 ); o->labelfont( FL_HELVETICA_ITALIC ); o->label( 0 ); o->align( FL_ALIGN_INSIDE | FL_ALIGN_CENTER ); o->labeltype( FL_SHADOW_LABEL ); Fl_Group::current()->resizable( o ); } { sm_blinker = new Fl_Button( ( X + W) - 37, Y + 4, 35, 15, "SM"); sm_blinker->box(FL_ROUNDED_BOX); sm_blinker->down_box(FL_ROUNDED_BOX); sm_blinker->color(FL_DARK2); sm_blinker->selection_color((Fl_Color)93); sm_blinker->labeltype(FL_NORMAL_LABEL); sm_blinker->labelfont(3); sm_blinker->labelsize(14); sm_blinker->labelcolor(FL_DARK3); sm_blinker->align(Fl_Align(FL_ALIGN_CENTER)); sm_blinker->when(FL_WHEN_RELEASE); sm_blinker->deactivate(); } // Fl_Blink_Button* sm_blinker o->end(); } { Fl_Scroll *o = scroll = new Fl_Scroll( X, Y + 24, W, H - 24 ); o->box( FL_FLAT_BOX ); // o->type( Fl_Scroll::HORIZONTAL_ALWAYS ); // o->box( Fl_Scroll::BOTH ); { Fl_Flowpack *o = mixer_strips = new Fl_Flowpack( X, Y + 24, W, H - 18 - 24 ); // label( "Non-Mixer" ); align( (Fl_Align)(FL_ALIGN_CENTER | FL_ALIGN_INSIDE) ); o->box( FL_FLAT_BOX ); o->type( Fl_Pack::HORIZONTAL ); o->hspacing( 2 ); o->vspacing( 2 ); o->end(); Fl_Group::current()->resizable( o ); } o->end(); Fl_Group::current()->resizable( o ); } end(); // Fl::add_timeout( STATUS_UPDATE_FREQ, update_cb, this ); update_menu(); load_options(); }
Fl_Window * make_window() { Fl_Window * w; { Fl_Window * o = main_window = new Fl_Window(741, 622, "ASF/AMC Motion Capture Player"); w = o; { Fl_Group * o = new Fl_Group(10, 485, 615, 140); { Fl_Button * o = loadSkeleton_button = new Fl_Button(10, 495, 120, 40, "Load Skeleton");//*** o->callback((Fl_Callback *)load_callback); } { Fl_Button * o = loadMotion_button = new Fl_Button(140, 495, 120, 40, "Load Motion"); //*** o->callback((Fl_Callback *)load_callback); } // "Reload motion" always reload the last skeleton loaded { Fl_Button * o = reloadMotion_button = new Fl_Button(270, 495, 120, 40, "Reload Motion");//*** o->callback((Fl_Callback *)reload_callback); } { Fl_Button * o = resetScene_button = new Fl_Button(400, 495, 120, 40, "Reset Scene"); o->callback((Fl_Callback *)resetScene_callback); } { Fl_Light_Button* o = record_button = new Fl_Light_Button(380, 575, 40, 25, "R"); o->callback((Fl_Callback *)record_callback, (void*)(0)); } { Fl_Button * o = screenShot_button = new Fl_Button(280, 575, 90, 25, "ScreenShot"); o->callback((Fl_Callback *)saveScreenToFile_callback); } { Fl_Button * o = pause_button = new Fl_Button(430, 575, 35, 25, "@||"); o->labeltype(FL_SYMBOL_LABEL); o->labelsize(12); o->callback((Fl_Callback *)play_callback); } { Fl_Button* o = rewind_button = new Fl_Button(465, 575, 35, 25, "@|<"); o->labeltype(FL_SYMBOL_LABEL); o->labelsize(12); o->callback((Fl_Callback *)play_callback); } { Fl_Button* o = play_button = new Fl_Button(500, 575, 35, 25, "@>"); o->labeltype(FL_SYMBOL_LABEL); o->labelsize(12); o->callback((Fl_Callback *)play_callback, (void*)(0)); } { Fl_Button* o = minusOne_button = new Fl_Button(535, 575, 35, 25, "-1"); o->labeltype(FL_SYMBOL_LABEL); o->labelsize(12); o->callback((Fl_Callback *)play_callback, (void*)(0)); } { Fl_Button* o = plusOne_button = new Fl_Button(570, 575, 35, 25, "+1"); o->labeltype(FL_SYMBOL_LABEL); o->labelsize(12); o->callback((Fl_Callback *)play_callback, (void*)(0)); } { Fl_Button* o = repeat_button = new Fl_Button(605, 575, 35, 25, "@<->"); o->labeltype(FL_SYMBOL_LABEL); o->labelsize(12); o->callback((Fl_Callback *)play_callback, (void*)(0)); } o->end(); } // FL_group { Player_Gl_Window * o = glwindow = new Player_Gl_Window(5, 5, 640, 480, "label"); o->box(FL_DOWN_FRAME); o->labeltype(FL_NO_LABEL); } { Fl_Value_Slider* o = frame_slider = new Fl_Value_Slider(10, 545, 630, 20); // slider o->type(5); o->labelsize(18); o->minimum(1); o->maximum(60000); o->step(1); o->callback((Fl_Callback*)fslider_callback, (void*)(0)); o->align(197); } { Fl_Value_Input* o = speedUp = new Fl_Value_Input(65, 575, 40, 25, "Speed"); o->minimum(0); o->value(1); o->callback((Fl_Callback*)playSpeed_callback); } { Fl_Value_Input * o = sub_input = new Fl_Value_Input(690, 55, 45, 25, "Skeleton ID:"); o->callback((Fl_Callback*)skeletonID_callback); sub_input->align(Fl_Align(FL_ALIGN_TOP_RIGHT)); } { Fl_Value_Input * o = tx_input = new Fl_Value_Input(690, 95, 45, 25, "tx:"); o->callback((Fl_Callback*)tx_callback); } { Fl_Value_Input * o = ty_input = new Fl_Value_Input(690, 122, 45, 25, "ty:"); o->callback((Fl_Callback*)ty_callback); } { Fl_Value_Input * o = tz_input = new Fl_Value_Input(690, 152, 45, 25, "tz:"); o->callback((Fl_Callback*)tz_callback); } { Fl_Value_Input * o = rx_input = new Fl_Value_Input(690, 190, 45, 25, "rx:"); o->callback((Fl_Callback*)rx_callback); } { Fl_Value_Input * o = ry_input = new Fl_Value_Input(690, 217, 45, 25, "ry:"); o->callback((Fl_Callback*)ry_callback); } { Fl_Value_Input * o = rz_input = new Fl_Value_Input(690, 247, 45, 25, "rz:"); o->callback((Fl_Callback*)rz_callback); } { Fl_Value_Input * o = joint_idx = new Fl_Value_Input(195, 575, 45, 25, "Show Joint"); o->maximum(30); o->step(1); o->value(-1); o->callback((Fl_Callback*)spotJoint_callback); } { Fl_Light_Button * o = groundPlane_button = new Fl_Light_Button(650, 315, 85, 25, "Ground"); o->callback((Fl_Callback*)renderGroundPlane_callback, (void*)(0)); o->align(FL_ALIGN_INSIDE); } { Fl_Light_Button * o = fog_button = new Fl_Light_Button(650, 345, 85, 25, "Fog"); o->callback((Fl_Callback*)useFog_callback, (void*)(0)); o->align(FL_ALIGN_INSIDE); } { Fl_Light_Button * o = worldAxes_button = new Fl_Light_Button(650, 375, 85, 25, "Axes"); o->callback((Fl_Callback*)renderWorldAxes_callback, (void*)(0)); o->align(FL_ALIGN_INSIDE); } { Fl_Button * o = aboutPlayer_button = new Fl_Button(650, 420, 85, 25, "About"); o->callback((Fl_Callback *)aboutPlayer_callback); o->align(FL_ALIGN_INSIDE); } o->end(); } return w; }
Fl_Double_Window* IntersectionInterface::make_window() { { m_intersectionWindow = new Fl_Double_Window(420, 265, "Intersection UI"); m_intersectionWindow->user_data((void*)(this)); { Fl_Group* o = new Fl_Group(5, 25, 145, 30); o->end(); } // Fl_Group* o { m_iShapeType = new Fl_Choice(5, 25, 145, 30, "Object type"); m_iShapeType->down_box(FL_BORDER_BOX); m_iShapeType->align(Fl_Align(FL_ALIGN_TOP_LEFT)); m_iShapeType->menu(menu_m_iShapeType); } // Fl_Choice* m_iShapeType { m_dXAt = new Fl_Value_Slider(5, 75, 200, 25, "At x pos"); m_dXAt->type(5); m_dXAt->minimum(-1.5); m_dXAt->maximum(1.5); m_dXAt->callback((Fl_Callback*)cb_m_dXAt); m_dXAt->align(Fl_Align(FL_ALIGN_TOP_LEFT)); } // Fl_Value_Slider* m_dXAt { m_dYAt = new Fl_Value_Slider(5, 115, 200, 25, "At y pos"); m_dYAt->type(5); m_dYAt->minimum(-1.5); m_dYAt->maximum(1.5); m_dYAt->callback((Fl_Callback*)cb_m_dYAt); m_dYAt->align(Fl_Align(FL_ALIGN_TOP_LEFT)); } // Fl_Value_Slider* m_dYAt { m_dZAt = new Fl_Value_Slider(5, 155, 200, 25, "At z pos"); m_dZAt->type(5); m_dZAt->minimum(-1.5); m_dZAt->maximum(1.5); m_dZAt->callback((Fl_Callback*)cb_m_dZAt); m_dZAt->align(Fl_Align(FL_ALIGN_TOP_LEFT)); } // Fl_Value_Slider* m_dZAt { m_dTheta = new Fl_Value_Slider(5, 195, 200, 25, "Vec theta"); m_dTheta->type(5); m_dTheta->maximum(360); m_dTheta->step(1); m_dTheta->callback((Fl_Callback*)cb_m_dTheta); m_dTheta->align(Fl_Align(FL_ALIGN_TOP_LEFT)); } // Fl_Value_Slider* m_dTheta { m_dPhi = new Fl_Value_Slider(5, 235, 200, 25, "Vec phi"); m_dPhi->type(5); m_dPhi->minimum(-90); m_dPhi->maximum(90); m_dPhi->step(1); m_dPhi->value(45); m_dPhi->callback((Fl_Callback*)cb_m_dPhi); m_dPhi->align(Fl_Align(FL_ALIGN_TOP_LEFT)); } // Fl_Value_Slider* m_dPhi { Fl_Button* o = new Fl_Button(330, 25, 85, 25, "Write test"); o->callback((Fl_Callback*)cb_Write); } // Fl_Button* o { m_dXRot = new Fl_Value_Slider(215, 75, 200, 25, "View rotation"); m_dXRot->type(5); m_dXRot->maximum(360); m_dXRot->step(1); m_dXRot->callback((Fl_Callback*)cb_m_dXRot); m_dXRot->align(Fl_Align(FL_ALIGN_TOP_LEFT)); } // Fl_Value_Slider* m_dXRot { m_dYRot = new Fl_Value_Slider(215, 115, 200, 25, "View height"); m_dYRot->type(5); m_dYRot->minimum(-90); m_dYRot->maximum(90); m_dYRot->step(1); m_dYRot->callback((Fl_Callback*)cb_m_dYRot); m_dYRot->align(Fl_Align(FL_ALIGN_TOP_LEFT)); } // Fl_Value_Slider* m_dYRot { m_bGrid = new Fl_Check_Button(215, 155, 25, 25, "Show grid"); m_bGrid->down_box(FL_DOWN_BOX); m_bGrid->value(1); m_bGrid->callback((Fl_Callback*)cb_m_bGrid); } // Fl_Check_Button* m_bGrid { m_bRay = new Fl_Check_Button(215, 195, 25, 25, "Show ray"); m_bRay->down_box(FL_DOWN_BOX); m_bRay->value(1); m_bRay->callback((Fl_Callback*)cb_m_bRay); } // Fl_Check_Button* m_bRay { m_bRayShadow = new Fl_Check_Button(215, 235, 25, 25, "Show ray shadow"); m_bRayShadow->down_box(FL_DOWN_BOX); m_bRayShadow->value(1); m_bRayShadow->callback((Fl_Callback*)cb_m_bRayShadow); } // Fl_Check_Button* m_bRayShadow { m_iSeed = new Fl_Value_Input(240, 30, 85, 20, "Seed"); } // Fl_Value_Input* m_iSeed m_intersectionWindow->end(); m_intersectionWindow->resizable(m_intersectionWindow); } // Fl_Double_Window* m_intersectionWindow return m_intersectionWindow; }
Fl_Double_Window* make_window() { Fl_Double_Window* w; { Fl_Double_Window* o = new Fl_Double_Window(400, 605); w = o; { undobutton = new Fl_Button(6, 25, 40, 25, "Undo"); undobutton->down_box(FL_DOWN_BOX); undobutton->callback((Fl_Callback*)undo_cb); } // Fl_Button* undobutton { forceslider = new Fl_Slider(206, 25, 75, 25, "Force"); forceslider->type(5); forceslider->selection_color((Fl_Color)1); forceslider->minimum(0.05); forceslider->value(0.5); forceslider->callback((Fl_Callback*)lerp_cb); forceslider->align(Fl_Align(FL_ALIGN_RIGHT)); } // Fl_Slider* forceslider { rgbmode = new Fl_Button(331, 25, 35, 25, "HSB"); rgbmode->labelsize(12); rgbmode->callback((Fl_Callback*)rgbmode_cb); rgbmode->align(Fl_Align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE)); } // Fl_Button* rgbmode { fnamebox = new Fl_Input(31, 60, 355, 25, "File:"); fnamebox->labeltype(FL_ENGRAVED_LABEL); fnamebox->labelsize(12); fnamebox->callback((Fl_Callback*)input_cb); fnamebox->when(FL_WHEN_ENTER_KEY_ALWAYS); } // Fl_Input* fnamebox { cshow.hsblbls[0] = new Fl_Box(30, 219, 80, 20, "Hue (L)"); cshow.hsblbls[0]->box(FL_FLAT_BOX); cshow.hsblbls[0]->color((Fl_Color)34); cshow.hsblbls[0]->labelfont(1); cshow.hsblbls[0]->labelsize(12); cshow.hsblbls[0]->labelcolor((Fl_Color)3); } // Fl_Box* cshow.hsblbls[0] { cshow.hsblbls[1] = new Fl_Box(115, 219, 75, 20, "Sat(M)"); cshow.hsblbls[1]->box(FL_FLAT_BOX); cshow.hsblbls[1]->color((Fl_Color)34); cshow.hsblbls[1]->labelfont(1); cshow.hsblbls[1]->labelsize(12); cshow.hsblbls[1]->labelcolor((Fl_Color)2); } // Fl_Box* cshow.hsblbls[1] { cshow.hsblbls[2] = new Fl_Box(195, 219, 75, 20, "Bright(R)"); cshow.hsblbls[2]->box(FL_FLAT_BOX); cshow.hsblbls[2]->color((Fl_Color)34); cshow.hsblbls[2]->labelfont(1); cshow.hsblbls[2]->labelsize(12); cshow.hsblbls[2]->labelcolor((Fl_Color)235); } // Fl_Box* cshow.hsblbls[2] { Fl_Box* o = new Fl_Box(275, 219, 80, 20, "Alpha(shift)"); o->box(FL_FLAT_BOX); o->color((Fl_Color)34); o->labelfont(1); o->labelsize(12); o->labelcolor(FL_BACKGROUND2_COLOR); } // Fl_Box* o { cmedit = new class CMedit(5, 239, 380, 270); cmedit->box(FL_FLAT_BOX); cmedit->color(FL_BACKGROUND_COLOR); cmedit->selection_color(FL_BACKGROUND_COLOR); cmedit->labeltype(FL_NORMAL_LABEL); cmedit->labelfont(0); cmedit->labelsize(14); cmedit->labelcolor(FL_FOREGROUND_COLOR); cmedit->align(Fl_Align(FL_ALIGN_CENTER)); cmedit->when(FL_WHEN_RELEASE); Fl_Group::current()->resizable(cmedit); } // class CMedit* cmedit { cshow.color = new colorpatch(62, 515, 50, 40); cshow.color->box(FL_DOWN_BOX); cshow.color->color(FL_BACKGROUND_COLOR); cshow.color->selection_color(FL_BACKGROUND_COLOR); cshow.color->labeltype(FL_NO_LABEL); cshow.color->labelfont(0); cshow.color->labelsize(14); cshow.color->labelcolor(FL_FOREGROUND_COLOR); cshow.color->align(Fl_Align(FL_ALIGN_CENTER)); cshow.color->when(FL_WHEN_RELEASE); } // colorpatch* cshow.color { cshow.cindex = new Fl_Value_Input(7, 530, 50, 25, " (index"); cshow.cindex->box(FL_FLAT_BOX); cshow.cindex->color((Fl_Color)16); cshow.cindex->maximum(0); cshow.cindex->step(1); cshow.cindex->textsize(12); cshow.cindex->callback((Fl_Callback*)report_cb); cshow.cindex->align(Fl_Align(FL_ALIGN_TOP)); } // Fl_Value_Input* cshow.cindex { cshow.hsba = new Fl_Output(117, 530, 120, 25, "HSBA"); cshow.hsba->box(FL_FLAT_BOX); cshow.hsba->color((Fl_Color)16); cshow.hsba->textsize(11); cshow.hsba->align(Fl_Align(FL_ALIGN_TOP)); } // Fl_Output* cshow.hsba { cshow.rgba = new Fl_Output(247, 530, 125, 25, "rgb"); cshow.rgba->box(FL_FLAT_BOX); cshow.rgba->color((Fl_Color)16); cshow.rgba->textsize(11); cshow.rgba->align(Fl_Align(FL_ALIGN_TOP)); } // Fl_Output* cshow.rgba { cshow.postscalein = new Fl_Value_Input(317, 570, 65, 25, "* Amax"); cshow.postscalein->callback((Fl_Callback*)ascale_cb); cshow.postscalein->align(Fl_Align(FL_ALIGN_TOP_LEFT)); } // Fl_Value_Input* cshow.postscalein { cshow.postexponin = new Fl_Value_Input(237, 570, 75, 25, "** expon )"); cshow.postexponin->callback((Fl_Callback*)ascale_cb); cshow.postexponin->align(Fl_Align(FL_ALIGN_TOP_LEFT)); } // Fl_Value_Input* cshow.postexponin { cshow.cmentin = new Fl_Value_Input(7, 570, 55, 25, "cmapsize"); cshow.cmentin->box(FL_ENGRAVED_BOX); cshow.cmentin->color((Fl_Color)25); cshow.cmentin->callback((Fl_Callback*)ncment_cb); cshow.cmentin->align(Fl_Align(FL_ALIGN_TOP_LEFT)); cshow.cmentin->when(FL_WHEN_RELEASE); } // Fl_Value_Input* cshow.cmentin { cshow.scaleout = new Fl_Output(137, 570, 95, 25, " Aout = ( Ain"); cshow.scaleout->box(FL_FLAT_BOX); cshow.scaleout->color((Fl_Color)16); cshow.scaleout->align(Fl_Align(FL_ALIGN_TOP_LEFT)); } // Fl_Output* cshow.scaleout { Fl_Menu_Bar* o = new Fl_Menu_Bar(0, 0, 400, 20); o->color((Fl_Color)46); o->menu(menu_); } // Fl_Menu_Bar* o o->end(); } // Fl_Double_Window* o return w; }
void custom_graphics(ValueType vt, float val,int W,int H) { int x0,y0,i; int _w, _h; float x,y,p; custom_graph_dimensions(vt, _w, _h); x0 = W / 2 - (_w / 2); y0 = H; switch(vt) { case VC_FilterVelocitySense: { p = powf(8.0f,(64.0f-(int)val)/64.0f); /* Grid */ grid(x0,y0,_w,_h, 4); /*Function curve*/ fl_color(FL_BLUE); if ((int)val == 127) { // in this case velF will always return 1.0 y = y0 - _h; fl_line(x0, y, x0 + _w, y); } else { fl_begin_line(); for(i = 0; i < _w; i++) { x = (float)i / (float)_w; y = powf(x,p) * _h; fl_vertex((float)x0 + i, (float)y0 - y); } fl_end_line(); } break; } case VC_FormFilterClearness: { p = powf(10.0f, (val - 32.0f) / 48.0f); //clearness param grid(x0,y0,_w,_h,10); fl_color(FL_BLUE); fl_begin_line(); x = 0; float frac = 1.0f / (float)_w; for(i = 0; i < _w; i++) { y = (atanf((x * 2.0f - 1.0f) * p) / atanf(p) + 1.0f) * 0.5f * _h; fl_vertex((float)x0 + i, (float)y0 - y); x += frac; } fl_end_line(); break; } case VC_SubBandwidthScale: { /* The scale centers around the factor 1 vertically and is logarithmic in both dimensions. */ int margin = 28; _h -= margin; _w -= margin * 2; x0 += margin * 1.25; y0 -= margin * 0.75; float cy = y0 - _h / 2; int j = 1; const float lg1020 = log10(20); /* Lower bound = 20hz*/ const float rx = _w / (log10(20000) - lg1020); /* log. width ratio */ const float ry = (_h / 2) / log10(100000); string hzMarkers[] = {"20", "100", "1k", "10k"}; string xMarkers[] = {"x10","x100","x1k","x10k","10%","1%","0.1%","0.01%"}; /* Scale lines */ fl_font(fl_font(),8); fl_line_style(0); for(i = 0; i < 4; i++) /* 10x / 10%, 100x / 1% ... */ { y = ry * (i + 1); fl_color(169,169,169); fl_line(x0, cy - y, x0 + _w, cy - y); fl_line(x0, cy + y, x0 + _w, cy + y); fl_color(0,0,0); fl_draw(xMarkers[i].c_str(), x0 - 28, (cy - y - 4), 24, 12, Fl_Align(FL_ALIGN_RIGHT)); fl_draw(xMarkers[i + 4].c_str(), x0 - 28, (cy + y - 4), 24, 12, Fl_Align(FL_ALIGN_RIGHT)); } /* Hz lines */ fl_color(196,196,196); /* Lighter inner lines*/ for(i = 10;i != 0; i *= 10) { for(j = 2; j < 10; j++) { x = x0 + rx * (log10(i * j) - lg1020) + 1; fl_line(x, y0, x, y0 - _h); if(i * j >= 20000) { i = 0; break; } } } fl_font(fl_font(),10); for(i = 0; i < 4; i++) /* 20, 100, 1k, 10k */ { x = x0 + (i == 0 ? 0 : ((float)i + 1 - lg1020) * rx); fl_color(127,127,127); /* Darker boundary lines */ fl_line(x, y0, x, y0 - _h); fl_color(FL_BLACK); fl_draw(hzMarkers[i].c_str(), x - 20, y0 + 4, 40, 12, Fl_Align(FL_ALIGN_CENTER)); } /* Unit marker at the lower right of the graph */ fl_draw("Hz", x0 + _w, y0 + 4, 20, 12, Fl_Align(FL_ALIGN_LEFT)); /* Vertical center line */ fl_color(64,64,64); fl_line(x0 - margin, cy, x0 + _w, cy); /* Function curve */ fl_color(FL_BLUE); if((int)val == 0) { fl_line(x0, cy, x0 + _w, cy); } else { const float p = ((int)val / 64.0f) * 3.0; /* Cairo not necessary, but makes it easier to read the graph */ cairo_t *cr; cairo_surface_t* Xsurface = cairo_xlib_surface_create (fl_display, fl_window, fl_visual->visual, Fl_Window::current()->w(), Fl_Window::current()->h()); cr = cairo_create (Xsurface); cairo_set_source_rgb(cr, 1, 0, 0); cairo_set_line_width(cr, 1.5); cairo_move_to(cr, x0, cy - ry * log10(powf(50, p))); cairo_line_to(cr, x0 + _w, cy - ry * log10(powf(0.05, p))); cairo_stroke(cr); cairo_surface_destroy(Xsurface); cairo_destroy(cr); } break; } default: break; } }
void TooltipWin::draw() { draw_box(FL_BORDER_BOX, 0, 0, w(), h(), Fl_Tooltip::color()); fl_color(Fl_Tooltip::textcolor()); fl_font(Fl_Tooltip::font(), Fl_Tooltip::size()); fl_draw(tip, 3, 3, w()-6, h()-6, Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_WRAP)); }
Fl_Double_Window* make_zoom_panel() { { zoom_panel_window = new Fl_Double_Window(670, 490, "Zoom Panel Window"); { Fl_Group* o = new Fl_Group(0, 6, 417, 148); o->box(FL_UP_BOX); o->color((Fl_Color)92); { Fl_Group* o = new Fl_Group(22, 6, 380, 118); { x_cmap_range_min_box = new Fl_Value_Input(163, 44, 89, 25, "Cmap Range(X): Min"); x_cmap_range_min_box->callback((Fl_Callback*)x_cmap_range_min_box_cb); x_cmap_range_min_box->when(FL_WHEN_RELEASE); } // Fl_Value_Input* x_cmap_range_min_box { x_cmap_range_max_box = new Fl_Value_Input(302, 44, 95, 25, "Max"); x_cmap_range_max_box->value(1); x_cmap_range_max_box->callback((Fl_Callback*)x_cmap_range_max_box_cb); x_cmap_range_max_box->when(FL_WHEN_RELEASE); } // Fl_Value_Input* x_cmap_range_max_box { x_display_range_min_box = new Fl_Value_Input(163, 74, 89, 25, "Display Range(X): Min"); x_display_range_min_box->callback((Fl_Callback*)x_display_range_min_box_cb); x_display_range_min_box->when(FL_WHEN_RELEASE); } // Fl_Value_Input* x_display_range_min_box { x_display_range_max_box = new Fl_Value_Input(302, 74, 95, 25, "Max"); x_display_range_max_box->value(1); x_display_range_max_box->callback((Fl_Callback*)x_display_range_max_box_cb); x_display_range_max_box->when(FL_WHEN_RELEASE); } // Fl_Value_Input* x_display_range_max_box { x_hist_range_max_box = new Fl_Output(302, 15, 95, 25, "Max"); x_hist_range_max_box->color((Fl_Color)31); } // Fl_Output* x_hist_range_max_box { x_hist_range_min_box = new Fl_Output(163, 15, 89, 25, "Hist Range(X): Min"); x_hist_range_min_box->color((Fl_Color)31); x_hist_range_min_box->selection_color(FL_BACKGROUND2_COLOR); } // Fl_Output* x_hist_range_min_box { x_display_range_min_slider = new Fl_Slider(137, 101, 115, 19); x_display_range_min_slider->type(5); x_display_range_min_slider->callback((Fl_Callback*)x_display_range_min_slider_cb); x_display_range_min_slider->align(Fl_Align(FL_ALIGN_LEFT)); } // Fl_Slider* x_display_range_min_slider { Fl_Slider* o = x_display_range_max_slider = new Fl_Slider(277, 102, 120, 18); x_display_range_max_slider->type(5); x_display_range_max_slider->callback((Fl_Callback*)x_display_range_max_slider_cb); o->value(o->maximum()); } // Fl_Slider* x_display_range_max_slider o->end(); } // Fl_Group* o { Fl_Box* o = new Fl_Box(402, 18, 5, 84); Fl_Group::current()->resizable(o); } // Fl_Box* o o->end(); } // Fl_Group* o { Fl_Group* o = new Fl_Group(420, 5, 245, 455); o->box(FL_UP_BOX); o->color((Fl_Color)214); { y_hist_range_max_box = new Fl_Output(562, 12, 93, 25, "Hist Range(Y) Max:"); y_hist_range_max_box->color(FL_DARK1); y_hist_range_max_box->callback((Fl_Callback*)y_hist_range_max_box_cf); } // Fl_Output* y_hist_range_max_box { y_hist_range_min_box = new Fl_Output(517, 421, 95, 25, "Min:"); y_hist_range_min_box->color((Fl_Color)46); y_hist_range_min_box->callback((Fl_Callback*)y_hist_range_min_box_cf); } // Fl_Output* y_hist_range_min_box { y_cmap_range_max_box = new Fl_Value_Input(446, 88, 70, 20, "Cmap Range(Y) \nMax:"); y_cmap_range_max_box->callback((Fl_Callback*)y_cmap_range_max_box_cb); y_cmap_range_max_box->align(Fl_Align(FL_ALIGN_TOP)); } // Fl_Value_Input* y_cmap_range_max_box { y_cmap_range_min_box = new Fl_Value_Input(446, 372, 70, 20, "Min:"); y_cmap_range_min_box->callback((Fl_Callback*)y_cmap_range_min_box_cb); y_cmap_range_min_box->align(Fl_Align(FL_ALIGN_TOP)); } // Fl_Value_Input* y_cmap_range_min_box { y_display_range_max_box = new Fl_Value_Input(565, 88, 72, 19, "Display Range(Y)\nMax:"); y_display_range_max_box->callback((Fl_Callback*)y_display_range_max_box_cb); y_display_range_max_box->align(Fl_Align(FL_ALIGN_TOP)); } // Fl_Value_Input* y_display_range_max_box { y_display_range_min_box = new Fl_Value_Input(565, 371, 72, 19, "Min:"); y_display_range_min_box->callback((Fl_Callback*)y_display_range_min_box_cb); y_display_range_min_box->align(Fl_Align(FL_ALIGN_TOP)); } // Fl_Value_Input* y_display_range_min_box { y_cmap_range_max_slider = new Fl_Slider(470, 122, 20, 98); y_cmap_range_max_slider->type(4); y_cmap_range_max_slider->callback((Fl_Callback*)y_cmap_range_max_slider_cb); } // Fl_Slider* y_cmap_range_max_slider { Fl_Slider* o = y_display_range_min_slider = new Fl_Slider(590, 234, 20, 98); y_display_range_min_slider->type(4); y_display_range_min_slider->callback((Fl_Callback*)y_display_range_min_slider_cb); o->value(o->minimum()); } // Fl_Slider* y_display_range_min_slider { Fl_Slider* o = y_cmap_range_min_slider = new Fl_Slider(470, 235, 20, 98); y_cmap_range_min_slider->type(4); y_cmap_range_min_slider->callback((Fl_Callback*)y_cmap_range_min_slider_cb); o->value(o->minimum()); } // Fl_Slider* y_cmap_range_min_slider { y_display_range_max_slider = new Fl_Slider(590, 120, 20, 98); y_display_range_max_slider->type(4); y_display_range_max_slider->callback((Fl_Callback*)y_display_range_max_slider_cb); } // Fl_Slider* y_display_range_max_slider o->end(); } // Fl_Group* o zoom_panel_window->end(); } // Fl_Double_Window* zoom_panel_window return zoom_panel_window; }
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(); }
/* called when we are inserted */ void Plotter2DObj::_inserted(pnot cb, RangeManager * rm, void * data, void * data2, int hintWidth) { MTOOLS_ASSERT(isFltkThread()); // the owner should be calling from the fltk thread ! if (((pnot)_ownercb) != nullptr) // we are already inserted, detach before going further { MTOOLS_DEBUG("Plotter2DObj::_inserted, already inserted, we detach before going any further"); MTOOLS_ASSERT(((pnot)_ownercb) != cb); // make sure it is a different owner. detach(); // ok, we detach from the previous owner. } _ownercb = cb; //save the callback _data = data; //save the data _data2 = data2;// and the additional data _rm = rm; //save the range manager Fl_Group::current(0); // prevent adding to option window to some other window. _extOptionWin = nullptr; _di = inserted(_optionWin, hintWidth); // get the drawable object and the option window MTOOLS_ASSERT((Drawable2DInterface*)_di != nullptr); // the drawable object should exist. Fl_Group::current(0); // close the FL_group if needed. /* we create the window */ int ow = (_optionWin == nullptr) ? hintWidth : _optionWin->w(); // extended option window _extOptionWin = new Fl_Group(0, 0, ow,40); // create the extended group _extOptionWin->box(FL_UP_BOX); _titleBox = new Fl_Box(0, 0, ow, 40); _titleBox->color(fl_lighter(FL_BACKGROUND_COLOR)); _titleBox->box(FL_UP_BOX); _nameBox = new Fl_Button(55, 0, ow - 55, 20, _name.c_str()); _nameBox->color(fl_lighter(FL_BACKGROUND_COLOR)); _nameBox->labelcolor(FL_BLACK); _nameBox->box(FL_UP_BOX); _nameBox->labelfont(0); _nameBox->labelsize(16); _nameBox->callback(_nameColorCB_static, this); setNameWidgetColor(); _upButton = new Fl_Button(0, 0, 20, 20, "@#8->"); _upButton->labelcolor(FL_BLACK); _upButton->box(FL_UP_BOX); _upButton->callback(_upButtonCB_static, this); _downButton = new Fl_Button(20, 0, 20, 20, "@#2->"); _downButton->labelcolor(FL_BLACK); _downButton->box(FL_UP_BOX); _downButton->callback(_downButtonCB_static, this); _onOffButton = new Fl_Light_Button(40, 0, 15, 20); _onOffButton->color2(FL_RED); _onOffButton->box(FL_UP_BOX); _onOffButton->value(1); _onOffButton->callback(_onOffButtonCB_static, this); _useRangeX = new Fl_Button(2, 22, 15, 16, "X"); _useRangeX->color(fl_lighter(FL_BACKGROUND_COLOR)); _useRangeX->labelcolor(FL_BLACK); _useRangeX->box(FL_UP_BOX); _useRangeX->labelfont(10); _useRangeX->labelsize(10); _useRangeX->callback(_useRangeXCB_static, this); if (!hasFavouriteRangeX()) { _useRangeX->deactivate(); } _useRangeY = new Fl_Button(2 + 15, 22, 15, 16, "Y"); _useRangeY->color(fl_lighter(FL_BACKGROUND_COLOR)); _useRangeY->labelcolor(FL_BLACK); _useRangeY->box(FL_UP_BOX); _useRangeY->labelfont(10); _useRangeY->labelsize(10); _useRangeY->callback(_useRangeYCB_static, this); if (!hasFavouriteRangeY()) { _useRangeY->deactivate(); } _useRangeXY = new Fl_Button(2 + 30, 22, 23, 16, "X/Y"); _useRangeXY->color(fl_lighter(FL_BACKGROUND_COLOR)); _useRangeXY->labelcolor(FL_BLACK); _useRangeXY->box(FL_UP_BOX); _useRangeXY->labelfont(10); _useRangeXY->labelsize(10); _useRangeXY->callback(_useRangeXYCB_static, this); if (!(hasFavouriteRangeX() && hasFavouriteRangeY())) { _useRangeXY->deactivate(); } _opacitySlider = new Fl_Value_Slider(60, 23, ow - 105 - 80, 14); _opacitySlider->labelfont(0); _opacitySlider->labelsize(11); _opacitySlider->color(fl_lighter(FL_BACKGROUND_COLOR)); _opacitySlider->align(Fl_Align(FL_ALIGN_LEFT)); _opacitySlider->box(FL_FLAT_BOX); _opacitySlider->type(FL_HOR_NICE_SLIDER); _opacitySlider->range(0, 1.0); _opacitySlider->step(0.01); _opacitySlider->value(_opacity); _opacitySlider->color2(FL_RED); _opacitySlider->callback(_opacitySliderCB_static, this); _progBar = nullptr; _nbthl = nullptr; if (((Drawable2DInterface*)_di)->nbThreads()>0) // check if the object uses threads { _nbth = ((Drawable2DInterface*)_di)->nbThreads(); _nbthl = new Fl_Box(ow - 105 - 15, 23, 14, 14); _nbthl->labelsize(10); _nbthl->box(FL_FLAT_BOX); _nbthl->color(fl_darker(FL_GRAY)); _nbthl->copy_label(mtools::toString(_nbth).c_str()); _progBar = new Fl_Progress(ow - 105, 22, 84, 16); _progBar->minimum(0.0); _progBar->maximum(100.0); _progBar->value(100.0); _progBar->color(fl_darker(FL_GRAY)); _progBar->labelcolor(FL_WHITE); _progBar->selection_color(FL_RED); _progBar->labelsize(11); _progVal = -1; _progBar->copy_label("stopped"); // and add the timer Fl::add_timeout(0.1, _timerCB_static, this); } _unrollButton = new Fl_Button(ow - 20, 22, 16, 16, "@-42>>"); _unrollButton->labelcolor(fl_lighter(FL_BLACK)); _unrollButton->box(FL_UP_BOX); _unrollButton->callback(_unrollButtonCB_static, this); if (_optionWin == nullptr) { _unrollButton->deactivate(); } _extOptionWin->end(); _extOptionWin->resizable(0); if (!_drawOn) // deactivate widget if object not enabled { _nameBox->deactivate(); _useRangeX->deactivate(); _useRangeY->deactivate(); _useRangeXY->deactivate(); _opacitySlider->deactivate(); if (_progBar != nullptr) _progBar->deactivate(); if (_optionWin != nullptr) _optionWin->deactivate(); } setParam(rm->getRange(), rm->getWinSize()); // save the parameters for the range of the drawing which will be applied when we enable the object enable(_drawOn); // so maybe right now, or later on... return; }