示例#1
0
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
}
示例#3
0
//==== 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();
}
示例#4
0
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
}
示例#5
0
/* 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();
}
示例#6
0
//==== 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();

}
示例#7
0
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;
}
示例#8
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;
}
示例#10
0
        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; 
            }
示例#11
0
// 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
    }
}
示例#12
0
//==== 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;
}
示例#14
0
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();
}
示例#15
0
            /**
             * 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;
                }
示例#16
0
文件: sparkline.cpp 项目: qartis/dori
 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));
 }
示例#17
0
文件: Mixer.C 项目: imv/non
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();
}
示例#18
0
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;
}
示例#21
0
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;
    }
}
示例#22
0
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;
}
示例#24
0
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();
}
示例#25
0
        /* 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;
            }