Пример #1
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
}
Пример #2
0
    window(int x, int y, int w, int h, const char *label = 0)
        : Fl_Window(x, y, w, h, label)
    {
        Fl_Box *o = new Fl_Box(10, 10, 300, 25,
            "Open CSV file to convert to HTML -->");
        o->box(FL_BORDER_BOX);
        o->align(FL_ALIGN_INSIDE | FL_ALIGN_WRAP| FL_ALIGN_CENTER);
        o->color((Fl_Color)215);
        o->labelfont(FL_HELVETICA_BOLD);

        Fl_Button *but = new Fl_Button(320, 10, 80, 25, "Pick Files");
        but->callback(on_pick_button_click, this);

        encode_check = new Fl_Check_Button(10, 40, 280, 25,
            "Escape special HTML characters.");
        encode_check->value(1);

        open_file_check = new Fl_Check_Button(10, 65, 280, 25,
            "Open HTML in browser.");
        open_file_check->value(1);

        Fl_Button *author = new Fl_Button(320, 65, 80, 25, "Mingjie Li");
        author->box(FL_FLAT_BOX);
        author->align(FL_ALIGN_INSIDE | FL_ALIGN_RIGHT);
        author->labelsize(12);
        author->labelcolor(fl_rgb_color(128, 128, 128));
        author->callback(on_author_click, this);
    }
void ModelerApplication::Init(ModelerViewCreator_f createView, 
                              const ModelerControl controls[], unsigned numControls)
{
    int i;

	m_animating   = false;
	m_numControls = numControls;

    // ********************************************************
    // Create the FLTK user interface
    // ********************************************************
    
    m_ui = new ModelerUserInterface();
    
    // Store pointers to the controls for manipulation
    m_controlLabelBoxes   = new Fl_Box*[numControls];
    m_controlValueSliders = new Fl_Value_Slider*[numControls];
    
    // Constants for user interface setup
    const int textHeight    = 20;
    const int sliderHeight  = 20;
    const int packWidth     = m_ui->m_controlsPack->w();

	m_ui->m_controlsPack->begin();
    // For each control, add appropriate objects to the user interface
    for (i=0; i<m_numControls; i++)
    {
        // Add the entry to the selection box
        m_ui->m_controlsBrowser->add(controls[i].m_name);

        // Add the label (but make it invisible for now)
        Fl_Box *box = new Fl_Box(0, 0, packWidth, textHeight, controls[i].m_name);
		box->labelsize(10);
		box->hide();
		box->box(FL_FLAT_BOX); // otherwise, Fl_Scroll messes up (ehsu)
        m_controlLabelBoxes[i] = box;

        // Add the slider (but make it invisible for now)
        Fl_Value_Slider *slider = new Fl_Value_Slider(0, 0, packWidth, sliderHeight,0);
        slider->type(1);
        slider->range(controls[i].m_minimum, controls[i].m_maximum);
        slider->step(controls[i].m_stepsize);
        slider->value(controls[i].m_value);
        slider->hide(); 
        m_controlValueSliders[i] = slider;
        slider->callback((Fl_Callback*)ModelerApplication::SliderCallback);
    }
    m_ui->m_controlsPack->end();

	// Make sure that we remove the view from the
	// Fl_Group, otherwise, it'll blow up 
	// THIS BUG FIXED 04-18-01 ehsu
	m_ui->m_modelerWindow->remove(*(m_ui->m_modelerView));
	delete m_ui->m_modelerView;

	m_ui->m_modelerWindow->begin();
	m_ui->m_modelerView = createView(0, 0, m_ui->m_modelerWindow->w(), m_ui->m_modelerWindow->h() ,NULL);
	Fl_Group::current()->resizable(m_ui->m_modelerView);
	m_ui->m_modelerWindow->end();
}
Пример #4
0
Fl_Window* make_about_panel(const char *copyright) {
  Fl_Window* w;
   {Fl_Window* o = about_panel = new Fl_Window(330, 276, _("About eFluid"));
    w = o;
    o->type(240);
    o->selection_color((Fl_Color)47);
    o->shortcut(0xff1b);
     {Fl_Group* o = display_group = new Fl_Group(0, 0, 330, 240);
       {Fl_Group* o = new Fl_Group(5, 5, 320, 55, _("eFluid"));
        o->box(FL_ENGRAVED_BOX);
        o->label_font(fl_fonts+1);
        o->label_type(FL_EMBOSSED_LABEL);
        o->color((Fl_Color)0xb3b3be00);
        o->label_color((Fl_Color)32);
        o->selection_color((Fl_Color)47);
        o->label_size(40);
        o->align(FL_ALIGN_INSIDE);
        o->end();
      }
       {Fl_Button* o = new Fl_Button(5, 165, 320, 70, _("\302\251""2002-2003\nClick here for more information"));
        o->box(FL_ENGRAVED_BOX);
        o->label_font(fl_fonts+1);
        o->color((Fl_Color)0xb3b3be00);
        o->label_color((Fl_Color)32);
        o->highlight_color((Fl_Color)0x9d9da700);
        o->highlight_label_color((Fl_Color)55);
        o->label_size(14);
        o->callback((Fl_Callback*)cb_2002);
        o->align(FL_ALIGN_WRAP);
      }
       {Fl_Box* o = new Fl_Box(5, 60, 320, 105, _("EFLTK User Interface Designer\nVersion 2.0.3"));
        o->box(FL_ENGRAVED_BOX);
        o->label_font(fl_fonts+1);
        o->label_type(FL_EMBOSSED_LABEL);
        o->color((Fl_Color)0xb3b3be00);
        o->label_color((Fl_Color)32);
        o->selection_color((Fl_Color)47);
        o->label_size(18);
      }
      o->end();
    }
     {Fl_Box* o = copyright_box = new Fl_Box(0, 0, 330, 240);
      o->label_size(10);
      o->align(FL_ALIGN_TOP|FL_ALIGN_LEFT|FL_ALIGN_INSIDE|FL_ALIGN_CLIP|FL_ALIGN_WRAP);
      o->hide();
      o->label(copyright);
    }
     {Fl_Return_Button* o = new Fl_Return_Button(5, 245, 320, 25, _("OK"));
      o->label_size(10);
      o->shortcut(0xff0d);
      o->callback((Fl_Callback*)cb_OK);
    }
    o->end();
  }
  return  w;
}
Пример #5
0
Fl_Group* SUBnoteharmonic::make_window() {
  { harmonic = new Fl_Group(0, 0, 90, 225);
    harmonic->box(FL_FLAT_BOX);
    harmonic->color(FL_BACKGROUND_COLOR);
    harmonic->selection_color(FL_BACKGROUND_COLOR);
    harmonic->labeltype(FL_NO_LABEL);
    harmonic->labelfont(0);
    harmonic->labelsize(14);
    harmonic->labelcolor(FL_FOREGROUND_COLOR);
    harmonic->user_data((void*)(this));
    harmonic->align(FL_ALIGN_TOP);
    harmonic->when(FL_WHEN_RELEASE);
    { Fl_Slider* o = mag = new Fl_Slider(0, 15, 10, 115);
      mag->tooltip("harmonic\'s magnitude");
      mag->type(4);
      mag->box(FL_FLAT_BOX);
      mag->selection_color((Fl_Color)222);
      mag->maximum(127);
      mag->step(1);
      mag->value(127);
      mag->callback((Fl_Callback*)cb_mag);
      o->value(127-pars->Phmag[n]);
      if (pars->Phmag[n]==0) o->selection_color(0);
    } // Fl_Slider* mag
    { Fl_Slider* o = bw = new Fl_Slider(0, 135, 10, 75);
      bw->tooltip("harmonic\'s bandwidth");
      bw->type(4);
      bw->box(FL_FLAT_BOX);
      bw->selection_color((Fl_Color)222);
      bw->maximum(127);
      bw->step(1);
      bw->value(64);
      bw->callback((Fl_Callback*)cb_bw);
      o->value(127-pars->Phrelbw[n]);
    } // Fl_Slider* bw
    { Fl_Box* o = new Fl_Box(10, 170, 5, 5);
      o->box(FL_FLAT_BOX);
      o->color(FL_DARK2);
      if (n+1==MAX_SUB_HARMONICS) o->hide();
    } // Fl_Box* o
    { Fl_Box* o = new Fl_Box(0, 210, 10, 15, "01");
      o->labelfont(1);
      o->labelsize(9);
      o->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
      char tmp[10];snprintf(tmp,10,"%d",n+1);o->label(strdup(tmp));
    } // Fl_Box* o
    { Fl_Box* o = new Fl_Box(0, 0, 10, 15, "01");
      o->labelfont(1);
      o->labelsize(9);
      o->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
      char tmp[10];snprintf(tmp,10,"%d",n+1);o->label(strdup(tmp));
    } // Fl_Box* o
    harmonic->end();
  } // Fl_Group* harmonic
  return harmonic;
}
Пример #6
0
int main(int argc, char **argv)
{
	Fl_Window *window = new Fl_Window(340,180);
	Fl_Box *box = new Fl_Box(20,40,300,100,"Hello, World!");
	box->box(FL_UP_BOX);
	box->labelfont(FL_BOLD+FL_ITALIC);
	box->labelsize(36);
	box->labeltype(FL_SHADOW_LABEL);
	window->end();
	window->show(argc, argv);
	return Fl::run();
}
Пример #7
0
int main(int argc, char *argv[]) {
    	Fl_Window *window = new Fl_Window (800,700,"TETRIS");
	window->color(56);
	Board *b = new Board();
	Fl_Box *scorebox = new Fl_Box(tilesize*xmaxtiles+10,50,300,200,"Score: 0\0");
	scorebox->box(FL_UP_BOX);
	scorebox->labelfont(FL_BOLD+FL_ITALIC);
    scorebox->labelsize(36);
    scorebox->labeltype(FL_ENGRAVED_LABEL);
	b->setScoreBox(&scorebox); 
	Fl_Box *exi = new Fl_Box(tilesize*2,ymaxtiles*15,300,200,"Press Escape to Exit");
	exi->box(FL_UP_BOX);
	exi->labelfont(FL_BOLD+FL_ITALIC);
	exi->labelsize(36);
	exi->labeltype(FL_ENGRAVED_LABEL);
	window->end(); 
   	window->show();
   	
	Fl::add_timeout(0.1, timeractions,b);
    	return(Fl::run());
}
Пример #8
0
int main() {
	Fl_Window* win = new Fl_Window(290, 180, "Icon chooser test");
	win->begin();
	Fl_Box* ibox = image_box = new Fl_Box(80, 10, 135, 110);
	ibox->box(FL_THIN_DOWN_BOX);
	Fl_Button* run = new Fl_Button(95, 145, 90, 25, "&Run");
	run->callback(run_cb);
	Fl_Button* close = new Fl_Button(190, 145, 90, 25, "&Close");
	close->callback(close_cb, win);
	win->end();
	win->show();
	return  Fl::run();
}
Пример #9
0
int main(int argc, char **argv)
{
    Fl_Window *window = new Fl_Window(20,20,300,180);

    //Set type to DIALOG
    window->window_type(Fl_WM::DIALOG);

    window->begin();
    Fl_Box *box = new Fl_Box(20,40,260,100,"Hello World");
    box->box(FL_UP_BOX);
    box->label_font(FL_HELVETICA_BOLD_ITALIC);
    box->label_size(36);
    box->label_type(FL_SHADOW_LABEL);
    window->end();
    window->show(argc, argv);

    return Fl::run();
}
Пример #10
0
int main(int argc, char **argv) {
  Fl_Window *window = new Fl_Window(340,180,"世界へようこそ!");
  Fl_Box *box = new Fl_Box(20,40,300,100,"ようこそ、世界!"); 
  Fl::set_font(FL_HELVETICA, "Kochi Mincho");

  window->begin();

  // Fl_Widget(x, y, width, height, label)

  //box->box(FL_UP_BOX);
  box->box(FL_NO_BOX);
  box->labelsize(36);
  box->labeltype(FL_SHADOW_LABEL);

  window->end();
  window->show(argc, argv);

  return Fl::run();
}
Пример #11
0
//==== Create & Init Box Divider  ====//
void GroupLayout::AddDividerBox( const string& text, int used_w )
{
    assert( m_Group && m_Screen );

    //==== Add Divider Box ====//
    int dw = FitWidth( used_w, m_ButtonWidth );

    Fl_Box* flbox = new Fl_Box( m_X, m_Y, dw, m_DividerHeight );
    flbox->box( FL_BORDER_BOX );
    flbox->color( ( Fl_Color )12 );
    flbox->labelfont( 1 );
    flbox->labelcolor( FL_BACKGROUND2_COLOR );
    flbox->copy_label( text.c_str() );
    m_Group->add( flbox );
    AddX( dw );

    AddY( m_DividerHeight );
    NewLineX();
}
Пример #12
0
void bt(const char *name)
{
  int x = N%COLS;
  int y = N/COLS;
  N++;
  x = x*W+10;
  y = y*H+10;

  Fl_Box *a = new Fl_Box(x,y,W-20,H-20,name);
  a->user_data((void*)(name+1));
  a->align(FL_ALIGN_BOTTOM);
  a->label_size(11);

  Fl_Box *b = new Fl_Box(x,y,W-20,H-20,name);
  b->user_data((void*)(name+1));
  b->align(FL_ALIGN_CLIP);
  b->box(FL_THIN_UP_BOX);
  b->label_type(FL_SYMBOL_LABEL);
  b->label_color(FL_DARK3);
}
Пример #13
0
//-----------------------------------------------------------------------------
void XYZDlg::create_dlg()
{
	wnd = new Fl_Double_Window(325, 125, mgl_gettext("Change data sizes"));
	box = new Fl_Box(10, 10, 305, 40);
	box->box(UDAV_THIN_UP_BOX);
	box->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);

	mx = new Fl_Spinner(30, 55, 75, 25, "mx");
	mx->tooltip(mgl_gettext("New size of data on 1st dimension (x-direction)"));
	my = new Fl_Spinner(135, 55, 75, 25, "my");
	my->tooltip(mgl_gettext("New size of data on 2nd dimension (y-direction)"));
	mz = new Fl_Spinner(240, 55, 75, 25, "mz");
	mz->tooltip(mgl_gettext("New size of data on 3d dimension (z-direction)"));
	ch = new Fl_Check_Button(15, 90, 95, 25);

	Fl_Button *o;
	o = new Fl_Button(125, 90, 85, 25, mgl_gettext("Cancel"));	o->callback(close_dlg_cb,wnd);
	o->box(UDAV_UP_BOX);	o->down_box(UDAV_DOWN_BOX);
	o->tooltip(mgl_gettext("Do nothing and close this window"));
	o = new Fl_Return_Button(230, 90, 85, 25, mgl_gettext("Change"));o->callback(xyz_dlg_cb,wnd);
	o->box(UDAV_UP_BOX);	o->down_box(UDAV_DOWN_BOX);
	o->tooltip(mgl_gettext("Change (resize) data"));
	wnd->end();
}
Пример #14
0
void ModelerUI::addControl(const char* szName, float fMin, float fMax, float fStepSize, float fInitVal) 
{
	Fl_Group* pgrpCurrBak = Fl_Group::current();
	Fl_Group::current(m_ppckPack);
	
	const int k_iTextHeight = 20;
	const int k_iSliderHeight = 20;

	// Setup the label box
	Fl_Box* box = new Fl_Box(0, 0, m_ppckPack->w(), k_iTextHeight, szName);
	box->labelsize(10);
	box->hide();
	box->box(FL_FLAT_BOX); // otherwise, Fl_Scroll messes up (ehsu)
		
	// Setup the slider
	Fl_Value_Slider *slider = new Fl_Value_Slider(0, 0, m_ppckPack->w(), k_iSliderHeight, 0);
	slider->type(1);
	slider->hide();
	slider->user_data(this);
	slider->callback(cb_sliders);
	slider->range(fMin, fMax);
	slider->step(fStepSize);
	slider->value(fInitVal);

	Fl_Group::current(pgrpCurrBak);

	// Add this entry to the browser
	string strName = "@C0"; // FLTK color encoding, we'll use @C0~@C6
	strName += szName;
	m_pbrsBrowser->add(strName.c_str());
	
	// Setup the curve
	m_pwndGraphWidget->addCurve(fInitVal, fMin, fMax);

	++m_iCurrControlCount;
}
Пример #15
0
void EDE_Calendar::update_calendar() {
	unsigned int i;
	
	// Find first day of week
	edelib::Date d=active_date_;
	d.set(d.year(), d.month(), 1);
	int day_of_week = d.day_of_week()-1;
	
	// Show/hide first filler
	if (day_of_week>0)
		m_filler[0]->show();
	else
		m_filler[0]->hide();
	
	// Days
	int row=2;
	for (i=0; i<d.days_in_month(); i++) {
		Fl_Box* btn = m_dayButtons[i]; // shortcut
		btn->show();
		
		// Set button color
		Fl_Color daycolor = color(); // base color is the color of calendar

		if (day_of_week==0) // Special color for sunday
			daycolor = fl_color_average(daycolor, FL_BLUE, 0.8);
		
		if (i==(uint)today_date_.day()-1 && d.month()==today_date_.month() && d.year()==today_date_.year()) 
			btn->color(fl_color_average(daycolor, FL_RED, 0.5)); // today
		else if (i==(uint)active_date_.day()-1)
			btn->color(fl_lighter(daycolor));
		else
			btn->color(daycolor);
		
		// Set downbox for active day
		if (i==(uint)active_date_.day()-1)
			btn->box(FL_DOWN_BOX);
		else
			btn->box(FL_FLAT_BOX);

		day_of_week++;
		if (day_of_week==7) { day_of_week=0; row++; }
	}
	
	// Hide remaining buttons
	for (i=d.days_in_month(); i<31; i++)
		m_dayButtons[i]->hide();
	
	// Show/hide second filler
	if (day_of_week<6)
		m_filler[1]->show();
	else
		m_filler[1]->hide();
		
	// Show/hide third filler
	if (row<7)
		m_filler[2]->show();
	else
		m_filler[2]->hide();
	
	// Set title
	static char title[30]; // No month name should be larger than 24 chars, even when localized
			// and we can't show it anyway cause the box is too small
	snprintf (title, 30, "%s, %d", d.month_name(), d.year());
	m_monthNameBox->copy_label(title);
	
	
	// Calculate tooltip (distance between today and active date)
	static char tooltip_str[1024];
	tooltip_str[0] = '\0';
	
	if (today_date_ != active_date_) {
		long dist = date_distance(today_date_, active_date_);
		long weeks = dist/7;
		int wdays = dist%7;
		int months=0;
		int mdays=0;
		int years=0;
		int ymonths=0;
		
		// Find lower date, first part of tooltip
		edelib::Date d1,d2;
		if (today_date_ < active_date_) {
			d1=today_date_;
			d2=active_date_;
			snprintf(tooltip_str, 1023, _("In %ld days"), dist);
		} else {
			d2=today_date_;
			d1=active_date_;
			snprintf(tooltip_str, 1023, _("%ld days ago"), dist);
		}
		
		// If necessary, calculate distance in m/d and y/m/d format
		if (dist>30) {
			months = d2.month() - d1.month() + (d2.year() - d1.year())*12; 
			mdays = d2.day() - d1.day();
			if (mdays<1) {
				mdays += d2.days_in_month();
				months--;
			}
		}
		if (months>11) {
			years = months/12;
			ymonths = months%12;
		}
	
		// Append those strings using snprintf
		if (weeks) {
			char* tmp = strdup(tooltip_str);
			snprintf(tooltip_str, 1023, _("%s\n%ld weeks and %d days"), tmp, weeks, wdays);
			free(tmp);
		}
		
		if (months) {
			char* tmp = strdup(tooltip_str);
			snprintf(tooltip_str, 1023, _("%s\n%d months and %d days"), tmp, months, mdays);
			free(tmp);
		}
		
		if (years) {
			char* tmp = strdup(tooltip_str);
			snprintf(tooltip_str, 1023, _("%s\n%d years, %d months and %d days"), tmp, years, ymonths, mdays);
			free(tmp);
		}
	}
	
	tooltip(tooltip_str);
	
	layout(x(),y(),w(),h()); // relayout buttons if neccessary
	redraw();
}
Пример #16
0
Fl_Double_Window* make_window() {
  Fl_Double_Window* w;
   {Fl_Double_Window* o = new Fl_Double_Window(560, 489);
    w = o;
    o->type(241);
     {Fl_Box* o = imbox = new Fl_Box(5, 30, 385, 455);
      o->box(FL_ENGRAVED_BOX);
      o->align(FL_ALIGN_CLIP);
      Fl_Group::current()->resizable(o);
    }
     {Fl_Box* o = filename_box = new Fl_Box(5, 5, 385, 20, "No file loaded...");
      o->box(FL_THIN_DOWN_BOX);
      o->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
    }
     {Fl_Group* o = new Fl_Group(395, 5, 160, 480);
      o->box(FL_THIN_DOWN_BOX);
       {Fl_Button* o = new Fl_Button(10, 10, 140, 25, "Load File");
        o->box(FL_THIN_UP_BOX);
        o->callback((Fl_Callback*)cb_Load);
      }
       {Fl_Button* o = new Fl_Button(10, 40, 140, 25, "Exit");
        o->box(FL_THIN_UP_BOX);
        o->callback((Fl_Callback*)cb_Exit);
      }
      new Fl_Divider(10, 75, 140, 15, "label");
       {Fl_Button* o = new Fl_Button(10, 100, 140, 25, "Fit To Box");
        o->type(Fl_Button::TOGGLE);
        o->box(FL_THIN_UP_BOX);
        o->callback((Fl_Callback*)cb_Fit);
      }
       {Fl_Button* o = new Fl_Button(10, 130, 140, 25, "Tile");
        o->type(Fl_Button::TOGGLE);
        o->box(FL_THIN_UP_BOX);
        o->callback((Fl_Callback*)cb_Tile);
      }
       {Fl_Choice* o = filter_choice = new Fl_Choice(10, 335, 140, 25, "Filter:"); o->begin();
        o->align(FL_ALIGN_TOP | FL_ALIGN_LEFT);
        o->tooltip("Choose filter");
         {Fl_Item* o = new Fl_Item("None");
          o->user_data((void*)(0));
        }
         {Fl_Item* o = new Fl_Item("Brightness");
          o->user_data((void*)(FILTER_BRIGHTNESS));
        }
         {Fl_Item* o = new Fl_Item("Contrast");
          o->user_data((void*)(FILTER_CONTRAST));
        }
         {Fl_Item* o = new Fl_Item("Grayscale");
          o->user_data((void*)(FILTER_GRAYSCALE));
        }
         {Fl_Item* o = new Fl_Item("Gamma");
          o->user_data((void*)(FILTER_GAMMA));
        }
         {Fl_Item* o = new Fl_Item("Fore Blend");
          o->user_data((void*)(FILTER_FOREBLEND));
        }
         {Fl_Item* o = new Fl_Item("Back Blend");
          o->user_data((void*)(FILTER_BACKBLEND));
        }
        o->end();
      }
       {Fl_Box* o = new Fl_Box(10, 160, 140, 160);
        o->parent()->resizable(o);
      }
       {Fl_Value_Slider* o = Rslider = new Fl_Value_Slider(25, 380, 125, 15, "R");
        o->type(Fl_Value_Slider::HORIZONTAL);
        o->label_size(10);
        o->text_size(10);
        o->minimum(-3);
        o->maximum(3);
        o->value(1);
        o->slider_size(5);
        o->align(FL_ALIGN_LEFT);
        o->tooltip("Red value for filter");
      }
       {Fl_Value_Slider* o = Gslider = new Fl_Value_Slider(25, 400, 125, 15, "G");
        o->type(Fl_Value_Slider::HORIZONTAL);
        o->label_size(10);
        o->text_size(10);
        o->minimum(-3);
        o->maximum(3);
        o->value(1);
        o->slider_size(5);
        o->align(FL_ALIGN_LEFT);
        o->tooltip("Green value for filter");
      }
       {Fl_Value_Slider* o = Bslider = new Fl_Value_Slider(25, 420, 125, 15, "B");
        o->type(Fl_Value_Slider::HORIZONTAL);
        o->label_size(10);
        o->text_size(10);
        o->minimum(-3);
        o->maximum(3);
        o->value(1);
        o->slider_size(5);
        o->align(FL_ALIGN_LEFT);
        o->tooltip("Blue value for filter");
      }
       {Fl_Button* o = new Fl_Button(10, 445, 140, 25, "Apply");
        o->box(FL_THIN_UP_BOX);
        o->callback((Fl_Callback*)cb_Apply);
        o->tooltip("Apply current selected filter");
      }
       {Fl_Check_Button* o = lock = new Fl_Check_Button(10, 365, 140, 15, "Lock sliders");
        o->label_size(10);
        o->callback((Fl_Callback*)cb_lock);
        o->tooltip("Lock slider, RGB values taken from R slider ");
      }
      o->end();
    }
    o->end();
  }
  return  w;
}
Пример #17
0
SciCalc::SciCalc() {
  Fl_Window* w;
   {Fl_Window* o = win = new Fl_Window(181, 262, "eCalc");
    w = o;
    o->label_type(FL_NO_LABEL);
    o->shortcut(0xff1b);
    o->user_data((void*)(this));
    o->align();
     {Fl_Box* o = leddisplay = new Fl_Box(2, 2, 176, 24, "Welcome");
      o->box(FL_THIN_DOWN_BOX);
      o->label_font(fl_fonts+4);
      o->color((Fl_Color)207);
      o->label_color((Fl_Color)59);
      o->label_size(14);
      o->callback((Fl_Callback*)cb_leddisplay);
      o->align(FL_ALIGN_RIGHT|FL_ALIGN_INSIDE);
    }
     {Fl_Box* o = box_DEGRAD = new Fl_Box(24, 28, 35, 16);
      o->box(FL_THIN_DOWN_BOX);
      o->label_color((Fl_Color)1);
      o->label_size(9);
      o->callback((Fl_Callback*)cb_box_DEGRAD);
      o->align(FL_ALIGN_INSIDE);
    }
     {Fl_Box* o = box_bracket = new Fl_Box(59, 28, 65, 16);
      o->box(FL_THIN_DOWN_BOX);
      o->label_color((Fl_Color)1);
      o->label_size(9);
      o->align(FL_ALIGN_INSIDE);
    }
     {Fl_Box* o = box_M = new Fl_Box(124, 28, 35, 16);
      o->box(FL_THIN_DOWN_BOX);
      o->label_color((Fl_Color)1);
      o->label_size(9);
      o->callback((Fl_Callback*)cb_box_M);
      o->align(FL_ALIGN_INSIDE);
    }
     {Fl_Group* o = new Fl_Group(46, 46, 93, 22);
      o->color((Fl_Color)46);
       {Fl_Button* o = radio_2 = new Fl_Button(3, 3, 20, 15, "2");
        o->type(Fl_Button::RADIO);
        o->label_color((Fl_Color)1);
        o->label_size(10);
        o->shortcut(0x40062);
        o->callback((Fl_Callback*)cb_radio_2);
        o->tooltip("Binary mode");
      }
       {Fl_Button* o = radio_8 = new Fl_Button(24, 3, 21, 15, "8");
        o->type(Fl_Button::RADIO);
        o->label_color((Fl_Color)1);
        o->label_size(10);
        o->shortcut(0x4006f);
        o->callback((Fl_Callback*)cb_radio_8);
        o->tooltip("Octal mode");
      }
       {Fl_Button* o = radio_10 = new Fl_Button(46, 3, 21, 15, "10");
        o->type(Fl_Button::RADIO);
        o->label_color((Fl_Color)1);
        o->label_size(10);
        o->shortcut(0x40064);
        o->value(1);
        o->callback((Fl_Callback*)cb_radio_10);
        o->tooltip("Decimal mode");
      }
       {Fl_Button* o = radio_16 = new Fl_Button(68, 3, 21, 15, "16");
        o->type(Fl_Button::RADIO);
        o->label_color((Fl_Color)1);
        o->label_size(10);
        o->shortcut(0x40068);
        o->callback((Fl_Callback*)cb_radio_16);
        o->tooltip("Hex mode");
      }
      o->end();
    }
     {Fl_Group* o = new Fl_Group(3, 163, 107, 94);
      o->box(FL_BORDER_BOX);
      o->color((Fl_Color)43);
       {Fl_Button* o = but_7 = new Fl_Button(3, 4, 32, 20, "7");
        o->label_font(fl_fonts+1);
        o->label_size(14);
        o->shortcut(0x37);
        o->callback((Fl_Callback*)cb_but_7);
      }
       {Fl_Button* o = but_8 = new Fl_Button(38, 4, 32, 20, "8");
        o->label_font(fl_fonts+1);
        o->label_size(14);
        o->shortcut(0x38);
        o->callback((Fl_Callback*)cb_but_8);
      }
       {Fl_Button* o = but_9 = new Fl_Button(72, 4, 32, 20, "9");
        o->label_font(fl_fonts+1);
        o->label_size(14);
        o->shortcut(0x39);
        o->callback((Fl_Callback*)cb_but_9);
      }
       {Fl_Button* o = but_4 = new Fl_Button(3, 26, 32, 20, "4");
        o->label_font(fl_fonts+1);
        o->label_size(14);
        o->shortcut(0x34);
        o->callback((Fl_Callback*)cb_but_4);
      }
       {Fl_Button* o = but_5 = new Fl_Button(38, 26, 32, 20, "5");
        o->label_font(fl_fonts+1);
        o->label_size(14);
        o->shortcut(0x35);
        o->callback((Fl_Callback*)cb_but_5);
      }
       {Fl_Button* o = but_6 = new Fl_Button(72, 26, 32, 20, "6");
        o->label_font(fl_fonts+1);
        o->label_size(14);
        o->shortcut(0x36);
        o->callback((Fl_Callback*)cb_but_6);
      }
       {Fl_Button* o = but_1 = new Fl_Button(3, 48, 32, 20, "1");
        o->label_font(fl_fonts+1);
        o->label_size(14);
        o->shortcut(0x31);
        o->callback((Fl_Callback*)cb_but_1);
      }
       {Fl_Button* o = but_2 = new Fl_Button(38, 48, 32, 20, "2");
        o->label_font(fl_fonts+1);
        o->label_size(14);
        o->shortcut(0x32);
        o->callback((Fl_Callback*)cb_but_2);
      }
       {Fl_Button* o = but_3 = new Fl_Button(72, 48, 32, 20, "3");
        o->label_font(fl_fonts+1);
        o->label_size(14);
        o->shortcut(0x33);
        o->callback((Fl_Callback*)cb_but_3);
      }
       {Fl_Button* o = but_0 = new Fl_Button(3, 70, 32, 20, "0");
        o->label_font(fl_fonts+1);
        o->label_size(14);
        o->shortcut(0x30);
        o->callback((Fl_Callback*)cb_but_0);
      }
       {Fl_Button* o = but_dot = new Fl_Button(38, 70, 32, 20, ".");
        o->label_font(fl_fonts+1);
        o->label_size(14);
        o->shortcut(0x2e);
        o->callback((Fl_Callback*)cb_but_dot);
      }
       {Fl_Button* o = but_sign = new Fl_Button(72, 70, 32, 20, "+/-");
        o->label_font(fl_fonts+1);
        o->label_size(14);
        o->callback((Fl_Callback*)cb_but_sign);
      }
      o->end();
    }
     {Fl_Button* o = but_C = new Fl_Button(112, 167, 31, 20, "C");
      o->label_font(fl_fonts+1);
      o->label_size(14);
      o->callback((Fl_Callback*)cb_but_C);
    }
     {Fl_Button* o = but_AC = new Fl_Button(146, 167, 30, 20, "AC");
      o->label_font(fl_fonts+1);
      o->label_size(14);
      o->callback((Fl_Callback*)cb_but_AC);
    }
     {Fl_Button* o = but_X = new Fl_Button(112, 189, 31, 20, "x");
      o->label_font(fl_fonts+1);
      o->label_size(14);
      o->shortcut(0x2a);
      o->callback((Fl_Callback*)cb_but_X);
    }
     {Fl_Button* o = but_div = new Fl_Button(146, 189, 30, 20, "/");
      o->label_font(fl_fonts+1);
      o->label_size(14);
      o->shortcut(0x2f);
      o->callback((Fl_Callback*)cb_but_div);
    }
     {Fl_Button* o = but_plus = new Fl_Button(112, 211, 31, 20, "+");
      o->label_font(fl_fonts+1);
      o->label_size(14);
      o->shortcut(0x2b);
      o->callback((Fl_Callback*)cb_but_plus);
    }
     {Fl_Button* o = but_minus = new Fl_Button(146, 211, 30, 20, "-");
      o->label_font(fl_fonts+1);
      o->label_size(14);
      o->shortcut(0x2d);
      o->callback((Fl_Callback*)cb_but_minus);
    }
     {Fl_Button* o = but_pi = new Fl_Button(112, 233, 31, 20, "e/p");
      o->label_font(fl_fonts+12);
      o->label_size(16);
      o->callback((Fl_Callback*)cb_but_pi);
    }
     {Fl_Button* o = but_eval = new Fl_Button(146, 233, 30, 20, "=");
      o->label_font(fl_fonts+1);
      o->label_size(14);
      o->shortcut(0x3d);
      o->callback((Fl_Callback*)cb_but_eval);
    }
     {Fl_Button* o = but_eval_hidden = new Fl_Button(147, 253, 6, 7);
      o->box(FL_NO_BOX);
      o->label_font(fl_fonts+1);
      o->label_size(16);
      o->shortcut(0xff0d);
      o->callback((Fl_Callback*)cb_but_eval_hidden);
    }
     {Fl_Button* o = but_eval_hidden2 = new Fl_Button(157, 263, 6, 7);
      o->box(FL_NO_BOX);
      o->label_font(fl_fonts+1);
      o->label_size(16);
      o->shortcut(0xff8d);
      o->callback((Fl_Callback*)cb_but_eval_hidden2);
    }
     {Fl_Button* o = but_sqrt = new Fl_Button(6, 70, 32, 21, "sqrt");
      o->label_color((Fl_Color)4);
      o->label_size(11);
      o->callback((Fl_Callback*)cb_but_sqrt);
    }
     {Fl_Button* o = but_pow = new Fl_Button(41, 70, 32, 21, "x^y");
      o->label_color((Fl_Color)4);
      o->label_size(11);
      o->callback((Fl_Callback*)cb_but_pow);
    }
     {Fl_Button* o = but_sin = new Fl_Button(76, 70, 31, 21, "sin");
      o->label_color((Fl_Color)4);
      o->label_size(11);
      o->callback((Fl_Callback*)cb_but_sin);
    }
     {Fl_Button* o = but_cos = new Fl_Button(110, 70, 31, 21, "cos");
      o->label_color((Fl_Color)4);
      o->label_size(11);
      o->callback((Fl_Callback*)cb_but_cos);
    }
     {Fl_Button* o = but_tan = new Fl_Button(144, 70, 30, 21, "tan");
      o->label_color((Fl_Color)4);
      o->label_size(11);
      o->callback((Fl_Callback*)cb_but_tan);
    }
     {Fl_Button* o = but_log = new Fl_Button(6, 93, 32, 21, "log");
      o->label_color((Fl_Color)4);
      o->label_size(11);
      o->callback((Fl_Callback*)cb_but_log);
    }
     {Fl_Button* o = but_ln = new Fl_Button(41, 93, 32, 21, "ln");
      o->label_color((Fl_Color)4);
      o->label_size(11);
      o->callback((Fl_Callback*)cb_but_ln);
    }
     {Fl_Button* o = but_int = new Fl_Button(76, 93, 31, 21, "int");
      o->label_color((Fl_Color)4);
      o->label_size(11);
      o->callback((Fl_Callback*)cb_but_int);
    }
     {Fl_Button* o = but_dr = new Fl_Button(110, 93, 31, 21, "d->r");
      o->label_color((Fl_Color)4);
      o->label_size(10);
      o->callback((Fl_Callback*)cb_but_dr);
    }
     {Fl_Button* o = but_drg = new Fl_Button(144, 93, 30, 21, "d-r-g");
      o->label_size(9);
      o->callback((Fl_Callback*)cb_but_drg);
    }
     {Fl_Button* o = but_leftbr = new Fl_Button(6, 116, 32, 21, "[");
      o->label_size(11);
      o->shortcut(0x28);
      o->callback((Fl_Callback*)cb_but_leftbr);
    }
     {Fl_Button* o = but_rightbr = new Fl_Button(41, 116, 32, 21, "]");
      o->label_size(11);
      o->shortcut(0x29);
      o->callback((Fl_Callback*)cb_but_rightbr);
    }
     {Fl_Button* o = but_exch = new Fl_Button(76, 116, 31, 21, "exch");
      o->label_size(11);
      o->callback((Fl_Callback*)cb_but_exch);
    }
     {Fl_Button* o = but_invx = new Fl_Button(110, 116, 31, 21, "1/x");
      o->label_size(11);
      o->callback((Fl_Callback*)cb_but_invx);
    }
     {Fl_Button* o = but_fact = new Fl_Button(144, 116, 30, 21, "x!");
      o->label_size(11);
      o->callback((Fl_Callback*)cb_but_fact);
    }
     {Fl_Button* o = but_Mplus = new Fl_Button(6, 139, 32, 21, "M+");
      o->color((Fl_Color)0xffb30000);
      o->label_color((Fl_Color)4);
      o->callback((Fl_Callback*)cb_but_Mplus);
    }
     {Fl_Button* o = but_Mmult = new Fl_Button(41, 139, 32, 21, "M*");
      o->color((Fl_Color)0xffb30000);
      o->label_color((Fl_Color)4);
      o->callback((Fl_Callback*)cb_but_Mmult);
    }
     {Fl_Button* o = but_Mclear = new Fl_Button(76, 139, 31, 21, "MC");
      o->color((Fl_Color)0xffb30000);
      o->label_color((Fl_Color)4);
      o->callback((Fl_Callback*)cb_but_Mclear);
    }
     {Fl_Button* o = but_Mst = new Fl_Button(110, 139, 31, 21, "Mst");
      o->color((Fl_Color)0xffb30000);
      o->callback((Fl_Callback*)cb_but_Mst);
    }
     {Fl_Button* o = but_Mrc = new Fl_Button(144, 139, 30, 21, "Mrc");
      o->color((Fl_Color)0xffb30000);
      o->callback((Fl_Callback*)cb_but_Mrc);
    }
     {Fl_Button* o = check_inv = new Fl_Button(6, 47, 32, 20, "inv");
      o->type(Fl_Button::TOGGLE);
      o->label_color((Fl_Color)4);
      o->label_size(11);
      o->callback((Fl_Callback*)cb_check_inv);
    }
     {Fl_Button* o = but_quit = new Fl_Button(144, 47, 30, 20, "Exit");
      o->label_font(fl_fonts+1);
      o->label_color((Fl_Color)33);
      o->shortcut(0x40071);
      o->callback((Fl_Callback*)cb_but_quit);
    }
    o->end();
  }
  init_value(0);
  	drgmode = 1;
  	base = 10;
  	currentbrkt = 0;
  	startbrkt[0] = 0;
  
  	set_memdisp();
  	set_brktdisp();
  	radio_10->value(1);
  	set_drgdisp();
  	set_display(0.0,NONE);
}
Пример #18
0
void MainWindow::createComponents()
{
    Fl_Group* grpSequence = new Fl_Group(10,20,150,120, "Sequence :");
    if ( grpSequence != NULL )
    {
        grpSequence->box(FL_DOWN_BOX);
        grpSequence->align(Fl_Align(FL_ALIGN_TOP_LEFT));
        grpSequence->labelsize(DEFAULT_FONT_SIZE);
        grpSequence->begin();

        seqPreparing = new Fl_Box(20,30,130,20,"1. Preparing update ...");
        if ( seqPreparing != NULL )
        {
            seqPreparing->align( FL_ALIGN_LEFT | FL_ALIGN_INSIDE );
            seqPreparing->labelsize(DEFAULT_FONT_SIZE);
            seqPreparing->deactivate();
        }

        seqRetrieving = new Fl_Box(20,50,130,20,"2. Retrieving data ...");
        if ( seqRetrieving != NULL )
        {
            seqRetrieving->align( FL_ALIGN_LEFT | FL_ALIGN_INSIDE );
            seqRetrieving->labelsize(DEFAULT_FONT_SIZE);
            seqRetrieving->deactivate();
        }

        seqProcessing = new Fl_Box(20,70,130,20,"3. Processing data ...");
        if ( seqProcessing != NULL )
        {
            seqProcessing->align( FL_ALIGN_LEFT | FL_ALIGN_INSIDE );
            seqProcessing->labelsize(DEFAULT_FONT_SIZE);
            seqProcessing->deactivate();
        }

        seqUpdating = new Fl_Box(20,90,130,20,"4. Updating ...");
        if ( seqUpdating != NULL )
        {
            seqUpdating->align( FL_ALIGN_LEFT | FL_ALIGN_INSIDE );
            seqUpdating->labelsize(DEFAULT_FONT_SIZE);
            seqUpdating->deactivate();
        }

        seqFinalizing = new Fl_Box(20,110,130,20,"5. Finalizing ...");
        if ( seqFinalizing != NULL )
        {
            seqFinalizing->align( FL_ALIGN_LEFT | FL_ALIGN_INSIDE );
            seqFinalizing->labelsize(DEFAULT_FONT_SIZE);
            seqFinalizing->deactivate();
        }

        grpSequence->end();

        progBar = new Fl_Progress(10,150,150,10);
        if ( progBar != NULL )
        {
            progBar->color2(FL_BLUE);
            progBar->maximum(5);
            progBar->minimum(0);
            progBar->value(0);
        }

        mli_info = new Fl_Box(170,20,220,140,"");
        if ( mli_info != NULL )
        {
            mli_info->box( FL_DOWN_BOX );
            mli_info->align( FL_ALIGN_TOP_LEFT | FL_ALIGN_INSIDE );
            mli_info->labelsize(DEFAULT_FONT_SIZE);
        }

        Fl_Box* boxCopyright = new Fl_Box(10,165,380,35);
        if ( boxCopyright != NULL )
        {
            boxCopyright->box(FL_DOWN_BOX);
            boxCopyright->align( FL_ALIGN_TOP_LEFT | FL_ALIGN_INSIDE );
            boxCopyright->labelsize(COPYRIGHT_FONT_SIZE);
            boxCopyright->label("Automatic Updater, (C)Copyright 2013 Rageworx freeware.\n"
                                "All rights reserved, [email protected]");
        }

    }
}
Пример #19
0
classificationEditor::classificationEditor() : selected(0)
{
  opt_mesh_lines(0, GMSH_SET | GMSH_GUI, 1.);

  drawContext::global()->draw();

  int BBB = (int)(1.4 * BB);
  const int width = (int)(3.15 * BBB), height = (int)(9.5 * BH);

  window = new paletteWindow
    (width, height, CTX::instance()->nonModalWindows ? true : false, "Reclassify 2D");
  window->box(GMSH_WINDOW_BOX);

  int x = WB, y = WB;
  {
    Fl_Box *b = new Fl_Box
      (x, y, width, BH, "1. Select mesh elements on which to perform edge detection");
    b->align(FL_ALIGN_LEFT | FL_ALIGN_INSIDE);

    x += WB;
    y += BH;
    buttons[CLASS_BUTTON_SELECT_ELEMENTS] = new Fl_Button
      (x, y, BBB, BH, "Select elements");
    buttons[CLASS_BUTTON_SELECT_ELEMENTS]->callback(select_elements_cb, this);

    buttons[CLASS_BUTTON_SELECT_ALL_ELEMENTS] = new Fl_Button
      (x + BBB + WB, y, (int)(0.5 * BBB) - WB, BH, "All");
    buttons[CLASS_BUTTON_SELECT_ALL_ELEMENTS]->callback(select_elements_cb, this);

    toggles[CLASS_TOGGLE_HIDE] = new Fl_Check_Button
      ((int)(x + 1.5 * BBB + WB), y, (int)(width - 1.5 * BBB - x - 2 * WB), BH,
       "Hide unselected elements");
    toggles[CLASS_TOGGLE_HIDE]->type(FL_TOGGLE_BUTTON);
    toggles[CLASS_TOGGLE_HIDE]->callback(hide_cb, this);

    x -= WB;
  }
  {
    y += BH / 2;
    Fl_Box* b = new Fl_Box(x, y + BH - WB, width - 2 * WB, 2);
    b->box(FL_ENGRAVED_FRAME);
    b->labeltype(FL_NO_LABEL);
  }
  {
    y += BH;
    Fl_Box *b = new Fl_Box
      (x, y, width, BH, "2. Fine-tune edge selection");
    b->align(FL_ALIGN_LEFT | FL_ALIGN_INSIDE);

    x += WB;
    y += BH;
    inputs[CLASS_VALUE_ANGLE] = new Fl_Value_Input
      (x, y, 2 * BBB / 3, BH, "Threshold angle");
    inputs[CLASS_VALUE_ANGLE]->value(40);
    inputs[CLASS_VALUE_ANGLE]->maximum(180);
    inputs[CLASS_VALUE_ANGLE]->minimum(0);
    inputs[CLASS_VALUE_ANGLE]->align(FL_ALIGN_RIGHT);
    inputs[CLASS_VALUE_ANGLE]->step(1);
    inputs[CLASS_VALUE_ANGLE]->when(FL_WHEN_RELEASE);
    inputs[CLASS_VALUE_ANGLE]->callback(update_edges_cb, this);

    toggles[CLASS_TOGGLE_SHOW_ONLY_EDGES] = new Fl_Check_Button
      ((int)(x + 1.5 * BBB + WB), y, (int)(width - x - 1.5 * BBB - 2 * WB), BH,
       "Show only edges");
    toggles[CLASS_TOGGLE_SHOW_ONLY_EDGES]->type(FL_TOGGLE_BUTTON);
    toggles[CLASS_TOGGLE_SHOW_ONLY_EDGES]->callback(show_only_edges_cb, this);

    y += BH;
    toggles[CLASS_TOGGLE_BOUNDARY] = new Fl_Check_Button
      (x, y, width - x - 2 * WB, BH, "Include edges on boundary (closure)");
    toggles[CLASS_TOGGLE_BOUNDARY]->type(FL_TOGGLE_BUTTON);
    toggles[CLASS_TOGGLE_BOUNDARY]->callback(update_edges_cb, this);

    y += BH;
    buttons[CLASS_BUTTON_DELETE_FROM_SELECTION] = new Fl_Button
      (x, y, (int)(1.5 * BBB), BH, "Delete edges from selection");
    buttons[CLASS_BUTTON_DELETE_FROM_SELECTION]->callback(delete_edge_cb, this);
    buttons[CLASS_BUTTON_DELETE_FROM_SELECTION]->deactivate();

    buttons[CLASS_BUTTON_RESET_SELECTION] = new Fl_Button
      (x + (int)(1.5 * BBB + WB), y, BBB, BH, "Reset selection");
    buttons[CLASS_BUTTON_RESET_SELECTION]->callback(reset_selection_cb, this);
    buttons[CLASS_BUTTON_RESET_SELECTION]->deactivate();

    x -= WB;
  }
  {
    y += BH / 2;
    Fl_Box* b = new Fl_Box(x, y + BH - WB, width - 2 * WB, 2);
    b->box(FL_ENGRAVED_FRAME);
    b->labeltype(FL_NO_LABEL);
  }
  {
    y += BH;
    Fl_Box *b = new Fl_Box
      (x, y, width, BH, "3. Reclassify surfaces using selected edges");
    b->align(FL_ALIGN_LEFT | FL_ALIGN_INSIDE);

    x += WB;
    y += BH;

    buttons[CLASS_BUTTON_SELECT_SURFACES] = new Fl_Button
      (x, y, BBB, BH, "Select surfaces");
    buttons[CLASS_BUTTON_SELECT_SURFACES]->callback(select_surfaces_cb, this);

    buttons[CLASS_BUTTON_SELECT_ALL_SURFACES] = new Fl_Button
      (x + BBB + WB, y, (int)(0.5 * BBB) - WB, BH, "All");
    buttons[CLASS_BUTTON_SELECT_ALL_SURFACES]->callback(select_surfaces_cb, this);

    buttons[CLASS_BUTTON_CLASSIFY] = new Fl_Return_Button
      ((int)(x + 1.5 * BBB + WB), y, BBB, BH, "Reclassify");
    buttons[CLASS_BUTTON_CLASSIFY]->callback(classify_cb, this);
    buttons[CLASS_BUTTON_CLASSIFY]->deactivate();

    x -= WB;
  }

  window->end();
  window->hotspot(window);

  NoElementsSelectedMode(this);
}
void SynthModular::LoadPlugins (string pluginPath) {
     int Width  = 35;
     int Height = 35;
     int SWidth  = 256;
     int SHeight = 256;
     Fl_Pixmap pic (SSM_xpm);
     Fl_Double_Window* Splash = new Fl_Double_Window ((Fl::w()/2) - (SWidth/2), (Fl::h()/2) - (SHeight/2),
                                                       SWidth, SHeight, "SSM");
     Splash->border(0);
     Fl_Box* pbut = new Fl_Box (0, 8, SWidth, SHeight, "");
     pbut->box (FL_NO_BOX);
     pic.label (pbut);
     Fl_Box *splashtext = new Fl_Box (5, SHeight-20, 200, 20, "Loading...");
     splashtext->labelsize (10);
     splashtext->box (FL_NO_BOX);
     splashtext->align (FL_ALIGN_INSIDE | FL_ALIGN_LEFT);
     Splash->add (pbut);
     Splash->add (splashtext);
     Splash->show();
     int ID=-1;
     vector<string> PluginVector;
     if (SpiralInfo::USEPLUGINLIST) PluginVector = SpiralInfo::PLUGINVEC;
     else {
        if (pluginPath.empty()) PluginVector = BuildPluginList (SpiralInfo::PLUGIN_PATH);
        else {
           string::iterator i = pluginPath.end() - 1;
           if (*i != '/') pluginPath += '/';
           PluginVector = BuildPluginList (pluginPath);
        }
     }
     for (vector<string>::iterator i=PluginVector.begin(); i!=PluginVector.end(); i++) {
         string Fullpath;
         if (pluginPath=="") Fullpath=SpiralInfo::PLUGIN_PATH+*i;
         else Fullpath = pluginPath + *"/" + *i;
         ID = PluginManager::Get()->LoadPlugin (Fullpath.c_str());
         if (ID!=PluginError) {
            #ifdef DEBUG_PLUGINS
            cerr << ID << " = Plugin [" << *i << "]" << endl;
            #endif
            Fl_ToolButton *NewButton = new Fl_ToolButton (0, 0, Width, Height, "");
            // we can't set user data, because the callback uses it
            // NewButton->user_data ((void*)(this));
            NewButton->labelsize (1);
            Fl_Pixmap *tPix = new Fl_Pixmap (PluginManager::Get()->GetPlugin(ID)->GetIcon());
            NewButton->image(tPix->copy(tPix->w(),tPix->h()));
            delete tPix;
            const char * gName = PluginManager::Get()->GetPlugin(ID)->GetGroupName();
            string GroupName(gName);
            Fl_Pack* the_group=NULL;
            // find or create this group, and add an icon
            map<string,Fl_Pack*>::iterator gi = m_PluginGroupMap.find (GroupName);
            if (gi == m_PluginGroupMap.end()) {
               the_group = new Fl_Pack (m_GroupTab->x(), 16, m_GroupTab->w(), m_GroupTab->h() - 15, gName);
               the_group->type(FL_HORIZONTAL);
               the_group->labelsize(8);
               the_group->color(SpiralInfo::GUICOL_Button);
               the_group->user_data((void*)(this));
               //m_GroupTab->add(the_group);
               m_GroupTab->value(the_group);
               m_PluginGroupMap[GroupName]=the_group;
            }
            else the_group = gi->second;
            NewButton->type (0);
            NewButton->box (FL_NO_BOX);
            NewButton->down_box (FL_NO_BOX);
            //NewButton->color(SpiralInfo::GUICOL_Button);
            //NewButton->selection_color(SpiralInfo::GUICOL_Button);
            the_group->add (NewButton);

            // we need to keep tooltips stored outside their widgets - widgets just have a pointer
            // I haven't done anything about cleaning up these strings - which may cause memory leaks?
            // But m_DeviceVec - which, I assume, would be used to keep track of / clean up the dynamicly
            //     created NewButton widgets isn't cleaned up either, so we might have 2 memory leaks
            //     involved? - but then again, they might be automatically deallocated because they're
            //     in another widget, in which case there's just one memory leak to deal with. (andy)
            string* PluginName = new string (*i);
            // find the first slash, if there is one, and get rid of everything before and including it
            unsigned int p = PluginName->find ('/');
            if (p < PluginName->length()) PluginName->erase (0, p);
            // find last . and get rid of everything after and including it
            p = PluginName->rfind ('.');
            unsigned int l = PluginName->length ();
            if (p < l) PluginName->erase (p, l);
            NewButton->tooltip (PluginName->c_str());
            // Slashes have significance to the menu widgets, remove them from the GroupName
            while ((p = GroupName.find ('/')) < PluginName->length())
                  GroupName = GroupName.replace (p, 1, " and ");
            string MenuEntry = "Plugins/" + GroupName + "/" + *PluginName;
            m_MainMenu->add (MenuEntry.c_str(), 0, cb_NewDeviceFromMenu, &Numbers[ID], 0);
            // when help is working better - this will put the plugins into the help menu
            // MenuEntry = "Help/" + MenuEntry;
            // m_MainMenu->add (MenuEntry.c_str(), 0, NULL, &Numbers[ID], 0);

            // Add the plugins to the canvas menu
            m_Canvas->AddPluginName (MenuEntry, PluginManager::Get()->GetPlugin(ID)->ID);
            // this overwrites the widget's user_data with that specified for the callback
            // so we can't use it for other purposes
            NewButton->callback ((Fl_Callback*)cb_NewDevice, &Numbers[ID]);
            NewButton->show();
            // Nothing else ever touches m_DeviceVec - is this right??? (andy)
            m_DeviceVec.push_back (NewButton);
            the_group->redraw();
            // m_NextPluginButton++;
            Fl::check();
            splashtext->label (PluginName->c_str());
            Splash->redraw();
         }
     }
     map<string,Fl_Pack*>::iterator PlugGrp;
     for (PlugGrp = m_PluginGroupMap.begin(); PlugGrp!= m_PluginGroupMap.end(); ++PlugGrp) {
         m_GroupTab->add (PlugGrp->second);
         PlugGrp->second->add (new Fl_Box (0, 0, 600, 100, ""));
     }
     // try to show the SpiralSound group
     PlugGrp = m_PluginGroupMap.find("SpiralSound");
     // can't find it - show the first plugin group
     if (PlugGrp==m_PluginGroupMap.end()) PlugGrp=m_PluginGroupMap.begin();
     m_GroupTab->value(PlugGrp->second);
     bool found_dummy;
     int i;
     do {
        found_dummy = false;
        for (i=0; i<m_MainMenu->size(); i++) {
            if (m_MainMenu->text (i) != NULL) {
               found_dummy = (strcmp ("dummy", m_MainMenu->text (i)) == 0);
               if (found_dummy) break;
            }
        }
        if (found_dummy) m_MainMenu->remove (i);
     } while (found_dummy);
     Splash->hide();
     delete Splash;
}
Пример #21
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();
}
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;
}
Пример #23
0
int main(int argc, char** argv)
{
	// Check config option, if showing is disabled, exit
	Fl_Config conf("EDE Team", "etip");
	if(argc == 2 && (!strcmp(argv[1], "-f") || !strcmp(argv[1], "--force")))
	{
		// nothing, to simplify omiting those '!'
	}
	else
	{
		bool show = true;
		conf.set_section("Tips");
		conf.read("Show", show, true);
		if (!show)
			return 0;
	}
	
	conf_global = &conf;
	srand(time(NULL));
	fl_init_locale_support("etip", PREFIX"/share/locale");

	Fl_Window* win = new Fl_Window(420, 169, _("Tips..."));
	win->shortcut(0xff1b);
	win->begin();

	Fl_Group* gr = new Fl_Group(5, 5, 410, 130);
	gr->box(FL_DOWN_BOX);
	Fl_Box* img = new Fl_Box(5, 5, 70, 65);
	Fl_Image pix(hint_xpm);
	img->image(pix);

	Fl_Box* title = new Fl_Box(80, 10, 320, 25, random_txt(title_tips, TITLE_TIPS_NUM));
	title->label_font(fl_fonts+1);
	title->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
	title->box(FL_FLAT_BOX);

	Fl_Box* tiptxt = new Fl_Box(80, 45, 320, 75, random_txt(tiplist, TIPS_NUM));
	tiptxt->align(FL_ALIGN_LEFT|FL_ALIGN_TOP|FL_ALIGN_INSIDE|FL_ALIGN_WRAP);
	tiptxt->box(FL_FLAT_BOX);
	gr->end();

	Fl_Check_Button* ch = new Fl_Check_Button(5, 140, 150, 25, _(" Do not bother me"));
	show_check = ch;

	Fl_Button* prev = new Fl_Button(160, 140, 80, 25, "<-");
	prev->label_font(fl_fonts+1);
	prev->callback(prev_cb, tiptxt);

	Fl_Button* next = new Fl_Button(245, 140, 80, 25, "->");
	next->label_font(fl_fonts+1);
	next->callback(next_cb, tiptxt);
	
	Fl_Button* close = new Fl_Button(335, 140, 80, 25, _("&Close"));
	close->callback(close_cb, win);

	win->end();

	win->set_modal();
	win->show();
	return Fl::run();
}
Пример #24
0
highOrderToolsWindow::highOrderToolsWindow(int deltaFontSize)
{
  getMeshInfoForHighOrder(GModel::current(), meshOrder, complete, CAD);
  FL_NORMAL_SIZE -= deltaFontSize;

  int width = 3 * IW + 4 * WB;
  int height = 24 * BH;

  win = new paletteWindow
    (width, height, CTX::instance()->nonModalWindows ? true : false, "High order tools");
  win->box(GMSH_WINDOW_BOX);

  int y = WB;
  int x = 2 * WB;

  box[0] = new Fl_Box(x, y, width - 4 * WB, BH);
  box[0]->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);

  y += BH;

  butt[1] = new Fl_Check_Button
    (x, y, width - 4 * WB, BH, "Only apply high order tools to visible entities");
  butt[1]->type(FL_TOGGLE_BUTTON);
  butt[1]->value(1);

  y += BH;

  butt[3] = new Fl_Check_Button
    (x, y, width - 4 * WB, BH, "Show detailed log messages");
  butt[3]->type(FL_TOGGLE_BUTTON);
  butt[3]->value(1);

  {
    y += BH / 2;
    Fl_Box* b = new Fl_Box(x, y + BH - WB, width - 4 * WB, 2);
    b->box(FL_ENGRAVED_FRAME);
    b->labeltype(FL_NO_LABEL);
  }

  {
    y += BH;
    Fl_Box *b = new Fl_Box
      (x - WB, y, width, BH, "1. Generation of high order vertices");
    b->align(FL_ALIGN_LEFT | FL_ALIGN_INSIDE);
  }

  y += BH;

  value[0] = new Fl_Value_Input
    (x, y, IW, BH, "Polynomial order");
  value[0]->minimum(1);
  value[0]->maximum(10);
  value[0]->step(1);
  value[0]->align(FL_ALIGN_RIGHT);
  value[0]->value(meshOrder);

  y += BH;

  butt[0] = new Fl_Check_Button
    (x, y, width - 4 * WB, BH, "Use incomplete elements");
  butt[0]->type(FL_TOGGLE_BUTTON);
  butt[0]->value(!complete);
  butt[0]->callback(change_completeness_cb);

  y += BH;

  butt[2] = new Fl_Check_Button
    (x, y, width - 4 * WB, BH, "Use CAD model to curve mesh");
  butt[2]->type(FL_TOGGLE_BUTTON);
  butt[2]->value(1);

  y += BH;

  push[0] = new Fl_Button
    (width - BB - 2 * WB, y, BB, BH, "Generate");
  push[0]->callback(highordertools_runp_cb);

  {
    y += BH / 2;
    Fl_Box* b = new Fl_Box(x, y + BH - WB, width - 4 * WB, 2);
    b->box(FL_ENGRAVED_FRAME);
    b->labeltype(FL_NO_LABEL);
  }

  {
    y += BH;
    Fl_Box *b = new Fl_Box
      (x - WB, y, width, BH, "2. Regularization of high order elements");
    b->align(FL_ALIGN_LEFT | FL_ALIGN_INSIDE);
  }

  y += BH;
  static Fl_Menu_Item menu_method[] = {
    {"Optimization", 0, 0, 0},
    {"Elastic Analogy", 0, 0, 0},
    {"Fast Curving", 0, 0, 0},
    {0}
  };
  choice[2] = new Fl_Choice
    (x, y, IW, BH, "Algorithm");
  choice[2]->align(FL_ALIGN_RIGHT);
  choice[2]->menu(menu_method);
  choice[2]->callback(chooseopti_cb);

  y += BH;
  value[1] = new Fl_Value_Input
    (x, y, IW/2.0, BH);
  value[1]->minimum(0);
  value[1]->maximum(1);
  value[1]->step(.01);
  value[1]->align(FL_ALIGN_RIGHT);
  value[1]->value(CTX::instance()->mesh.hoThresholdMin);

  value[8] = new Fl_Value_Input
    (x+IW/2.0,y, IW/2.0, BH, "Target Jacobian range");
  value[8]->minimum(1);
  value[8]->maximum(10);
  value[8]->step(.01);
  value[8]->align(FL_ALIGN_RIGHT);
  value[8]->value(CTX::instance()->mesh.hoThresholdMax);

  y += BH;
  value[2] = new Fl_Value_Input
    (x, y, IW, BH, "Number of layers");
  value[2]->minimum(1);
  value[2]->maximum(20);
  value[2]->step(1);
  value[2]->align(FL_ALIGN_RIGHT);
  value[2]->value(CTX::instance()->mesh.hoNLayers);

  y += BH;
  value[7] = new Fl_Value_Input
    (x, y, IW, BH, "Distance factor");
  value[7]->minimum(1);
  value[7]->maximum(20000);
  value[7]->step(1);
  value[7]->align(FL_ALIGN_RIGHT);
  value[7]->value(12);

  y += BH;
  static Fl_Menu_Item menu_objf[] = {
    {"Fixed", 0, 0, 0},
    {"Free", 0, 0, 0},
    {0}
  };
  choice[0] = new Fl_Choice
    (x, y, IW, BH, "Boundary vertices");
  choice[0]->menu(menu_objf);
  choice[0]->align(FL_ALIGN_RIGHT);

  y += BH;
  value[5] = new Fl_Value_Input
    (x, y, IW/2, BH);
  value[5]->align(FL_ALIGN_RIGHT);
  value[5]->value(1000.);
  value[6] = new Fl_Value_Input
    (x+IW/2,y, IW/2, BH, "W fixed / W free");
  value[6]->align(FL_ALIGN_RIGHT);
  value[6]->value(1.);

  y += BH;
  value[3] = new Fl_Value_Input
    (x, y, IW, BH, "Maximum number of iterations");
  value[3]->minimum(1);
  value[3]->maximum(10000);
  value[3]->step(10);
  value[3]->align(FL_ALIGN_RIGHT);
  value[3]->value(300);

  y += BH;
  value[4] = new Fl_Value_Input
    (x, y, IW, BH, "Max. number of optimization passes");
  value[4]->minimum(1);
  value[4]->maximum(100);
  value[4]->step(1);
  value[4]->align(FL_ALIGN_RIGHT);
  value[4]->value(50);

  static Fl_Menu_Item menu_strategy[] = {
    {"Connected blobs", 0, 0, 0},
    {"Adaptive one-by-one", 0, 0, 0},
    {0}
  };

  y += BH;
  choice[3] = new Fl_Choice
    (x, y, IW, BH, "Strategy");
  choice[3]->menu(menu_strategy);
  choice[3]->align(FL_ALIGN_RIGHT);
  choice[3]->callback(chooseopti_strategy);

  y += BH;
  value[9] = new Fl_Value_Input
    (x, y, IW, BH, "Max. number of blob adaptation iter.");
  value[9]->minimum(1);
  value[9]->maximum(100);
  value[9]->step(1);
  value[9]->align(FL_ALIGN_RIGHT);
  value[9]->value(2);
  value[9]->deactivate();

  y += BH;
  value[10] = new Fl_Value_Input
    (x, y, IW, BH, "Num. layer adaptation factor");
  value[10]->align(FL_ALIGN_RIGHT);
  value[10]->minimum(1);
  value[10]->maximum(100);
  value[10]->step(1);
  value[10]->value(2);
  value[10]->deactivate();

  y += BH;
  value[11] = new Fl_Value_Input
    (x, y, IW, BH, "Distance adaptation factor");
  value[11]->align(FL_ALIGN_RIGHT);
  value[11]->minimum(1.);
  value[11]->maximum(100.);
  value[11]->value(2.);
  value[11]->deactivate();

  y += 1.5*BH;
  push[1] = new Fl_Button
    (width - BB - 2 * WB, y, BB, BH, "Regularize");
  push[1]->callback(highordertools_runopti_cb);

  // win->resizable(o);
  win->position(CTX::instance()->hotPosition[0], CTX::instance()->hotPosition[1]);
  win->end();
  FL_NORMAL_SIZE += deltaFontSize;
}
Пример #25
0
int main(int argc, char **argv) {
    // Check command-line options
    char *p;
    int a = 1;
    Fl::args(argc, argv, a);
    Fl::scheme(NULL);  // NULL causes libr. to look up style in .Xdefaults

    memset(ExprEntry_str, '\0', sizeof(ExprEntry_str));
    clear_content();

/*    
    printf("fround(0.0) is %1.2lf\n", fround(0.0));
    printf("fround(0.1) is %1.2lf\n", fround(0.1));
    printf("fround(0.49) is %1.2lf\n", fround(0.49));
    printf("fround(0.50) is %1.2lf\n", fround(0.50));
    printf("fround(0.51) is %1.2lf\n", fround(0.51));
    printf("fround(0.9) is %1.2lf\n", fround(0.9));
    printf("fround(1.0) is %1.2lf\n", fround(1.0));
    printf("fround(1.1) is %1.2lf\n", fround(1.1));
    printf("fround(-0.1) is %1.2lf\n", fround(-0.1));
    printf("fround(-0.4) is %1.2lf\n", fround(-0.4));
    printf("fround(-0.5) is %1.2lf\n", fround(-0.5));
    printf("fround(-0.51) is %1.2lf\n", fround(-0.51));
    printf("fround(-0.9) is %1.2lf\n", fround(-0.9));
    printf("fround(-1.0) is %1.2lf\n", fround(-1.0));
    printf("fround(-1.1) is %1.2lf\n", fround(-1.1));
    printf("fround(-1.4) is %1.2lf\n", fround(-1.4));
    printf("fround(-1.5) is %1.2lf\n", fround(-1.5));
    printf("fround(-1.6) is %1.2lf\n", fround(-1.6));
    printf("fround(-1.9) is %1.2lf\n", fround(-1.9));
    printf("\n");
    
    printf("123.34 has %d significant digits\n", sig_digits(123.45));
    printf("7 has %d significant digits\n", sig_digits(7));
    printf("654.00001 has %d significant digits\n", sig_digits(654.00001));
    printf("-123.34 has %d significant digits\n", sig_digits(-123.45));
    printf("-7 has %d significant digits\n", sig_digits(-7));
    printf("-654.00001 has %d significant digits\n", sig_digits(-654.00001));
    printf("1.234e10 has %d significant digits\n", sig_digits(1.234e10));
    printf("0.0001200560000 has %d significant digits\n", sig_digits(0.0001200560000));
    printf("-1.20056e-4 has %d significant digits\n", sig_digits(-1.20056e-4));

    //return 0;
*/    
    char num_str[8];
    int i;
    for(i = 0; i < MAXENTRY; i++) {
        sprintf(num_str, "%d\n", i);
        strcat(RowLabels_str, num_str);
    }

    //printf("argc is %d\n", argc); fflush(0);
    char cmdline_expr[MAXENTRYLEN] = "";
    char expr_prepped_str[MAXENTRYLEN] = "";
    while (a < argc) {
        p = argv[a];
        if (*p == '-' && *(p+1) == '-') {
            // OK, it's some kind of option
            char option = *(p+2);
            if (option == 't') {
                // Change terseness/verbosity threshold
                if (*(p+3)) {
                    SayThreshold = *(p+3) - '0';
                    SAY(1, "Terseness level is %d\n", SayThreshold); 
                }
                else if (a+1 < argc) {
                    a++;
                    p = argv[a];
                    SayThreshold = *p - '0';
                    SAY(1, "Terseness level is %d\n", SayThreshold); 
                }
            }
            else if (option == 'd') {
                // Change angle encoding to degrees 
                AngleUnitsAreDegrees = 1;
                SAY(1, "Angles expressed as degrees\n"); 
            }
            else if (option == 'r') {
                // Change angle encoding to radians 
                AngleUnitsAreDegrees = 0;
                SAY(1, "Angles expressed as radians\n"); 
            }
            else if (option == 'p') {
                // Switch to Reverse Polish Notation (RPN) entry syntax
                InputMode = RPN_INPUT;
                SAY(1, "Input syntanx mode is RPN (Reverse Polish Notation)\n"); fflush(0);
            }
            else if (option == 'v') {
                // Print name and version 
                update_main_win_title();
                printf("%s\n", Title_str); fflush(0);
            }
            else if (option == 'f') {
                // Pre-load a specific workspace content file 
                char filespec_str[MAXENTRYLEN] = "";
                if (*(p+3)) {
                    strcpy (CurrentFileSpec_str, (p+3));
                }
                else {
                    a++;
                    if (*argv[a]) {
                        strcpy (CurrentFileSpec_str, argv[a]);
                    }
                }
                if (!*CurrentFileSpec_str) {
                    fl_alert("File not specified!\n");
                }
            }
            a++;
        }
        else {
            // assume the remainder of command-line is math expression
            while (a < argc) {
                strncat(cmdline_expr, argv[a], 32);
                strcat(cmdline_expr, " ");
                a++;
            }
            SAY(1, "Commandline expression is '%s'\n", cmdline_expr);
            if (strlen(cmdline_expr)) {
                int rc = calculate_expr(cmdline_expr, ExprEntry_str[Result], Result);
                if (rc == CALC_SUCCESS) {
                    char result_str[64];
                    render_item(result_str, &ResultList[Result]);
                    printf("%s = %s\n", ExprEntry_str[Result], result_str);
                    return 0;
                }
                else {
                    if (rc == CALC_UNBALANCED) {
                        printf("Expression is unbalanced! Check parentheses carefully.\n");
                    }
                    else if (rc == CALC_ERROR) {
                        printf("Expression cannot be calculated!\n");
                    }
                    return 1;
                }
            }
        }
    }
    //fl_register_images();
    update_main_win_title();
    MainWin_p = new Fl_Window(560,352, Title_str);

    MainWin_p->begin();
    
    Fl_Scroll expr_win_scroll(6, 12, 546, 258);
    expr_win_scroll.begin();    
    Fl_Pack expr_win_group(6, 12, 546, 1024);
    expr_win_group.type(FL_HORIZONTAL);
    expr_win_group.begin();
  
    RowLabels_p = new Fl_Multiline_Output(6, 12,  30, 1024 );
    RowLabels_p->box(FL_FLAT_BOX);
    RowLabels_p->color(FL_BACKGROUND_COLOR);
    RowLabels_p->align(FL_ALIGN_RIGHT);
    RowLabels_p->value(RowLabels_str);
    
    WorkArea_p = new Fl_Multiline_Input(40, 10,  500, 1024 );
    WorkArea_p->box(FL_FLAT_BOX);
    WorkArea_p->label("");
    WorkArea_p->when(FL_WHEN_ENTER_KEY);
    WorkArea_p->callback(workarea_callback);
    WorkArea_p->take_focus();
    update_results_display();
    WorkArea_p->position(0,0);
    expr_win_group.end();
    expr_win_scroll.end();
    
    QuitBtn_p =  new Fl_Button(30, 280, 60, 30, "Quit");
    QuitBtn_p->callback(quit_callback);
    QuitBtn_p->shortcut(FL_Escape);
        
    OpenBtn_p =  new Fl_Button(120, 280, 60, 30, "Open...");
    OpenBtn_p->callback(open_callback);
    OpenBtn_p->shortcut(FL_CTRL + 'o');
        
    SaveBtn_p =  new Fl_Button(210, 280, 60, 30, "Save...");
    SaveBtn_p->callback(save_callback);
    SaveBtn_p->deactivate();
    SaveBtn_p->shortcut(FL_CTRL + 's');
        
    ClearBtn_p =  new Fl_Button(300, 280, 60, 30, "Clear");
    ClearBtn_p->callback(clear_callback);
    ClearBtn_p->shortcut(FL_CTRL + 'c');

    HintBtn_p =  new Fl_Button(420, 280, 30, 30, "!");
    HintBtn_p->callback(hint_callback);
    HintBtn_p->tooltip("Hints");
    HintBtn_p->shortcut(FL_CTRL + 'i');

    AboutBtn_p =  new Fl_Button(460, 280, 30, 30, "a");
    AboutBtn_p->callback(about_callback);
    AboutBtn_p->tooltip("About Flume");
    AboutBtn_p->shortcut(FL_CTRL + 'a');

    HelpBtn_p =  new Fl_Button(500, 280, 30, 30, "?");
    HelpBtn_p->callback(help_callback);
    HelpBtn_p->tooltip("Help (F1)");
    HelpBtn_p->shortcut(FL_F + 1);

    Fl_Box* pAngleLabel = new Fl_Box(20, 325, 40, 12, "Angles:");
    pAngleLabel->box(FL_FLAT_BOX);
    RadAngleBtn_p = new Fl_Round_Button(72, 324, 80, 16, "Radians");
    RadAngleBtn_p->value(AngleUnitsAreDegrees ? 0 : 1);
    RadAngleBtn_p->callback(radians_callback);

    DegAngleBtn_p = new Fl_Round_Button(152, 324, 80, 16, "Degrees");
    DegAngleBtn_p->value(AngleUnitsAreDegrees ? 1 : 0);
    DegAngleBtn_p->callback(degrees_callback);
    
    RpnModeChk_p = new Fl_Check_Button(280, 324, 96, 16, "RPN mode");
    RpnModeChk_p->value((InputMode == RPN_INPUT) ? 1 : 0);
    RpnModeChk_p->callback(rpn_callback);
    
    TrackSigChk_p = new Fl_Check_Button(392, 324, 140, 16, "Track significance");
    TrackSigChk_p->value(TrackSignificance);
    TrackSigChk_p->callback(track_sig_callback);
    
    MainWin_p->end();
    
    if (*CurrentFileSpec_str) {
        if (!load_content(CurrentFileSpec_str)) {
            fl_alert("File not loadable!\n");
        }
    }
    
    MainWin_p->show(argc, argv);
    Running = 1;
    while(Running && Fl::wait());
    return 0;
}
Пример #26
0
void ModelerUserInterface::pickGroupProperty(GroupProperty* group) {
	// Remove the event listeners for old controls
	// TODO: we really need to have a PropertyEditor class that handles this
	// automatically...
	if (currentGroup) {
		PropertyList* props = currentGroup->getProperties();
		for (PropertyList::iterator iter = props->begin();
			 iter != props->end();
			 iter++)
		{
			if (RangeProperty* prop = dynamic_cast<RangeProperty*>(*iter)) {
				prop->unlisten((SignalListener)updateRangeSlider);
			} else if (RGBProperty* prop = dynamic_cast<RGBProperty*>(*iter)) {
				prop->unlisten((SignalListener)updateColorChooser);
			} else if (BooleanProperty* prop = dynamic_cast<BooleanProperty*>(*iter)) {
				prop->unlisten((SignalListener)updateCheckbox);
			} else if (ChoiceProperty* prop = dynamic_cast<ChoiceProperty*>(*iter)) {
				prop->unlisten((SignalListener)updateChoice);
			}
		}

		// Clear out the old controls
		m_controlsPack->clear();

		currentGroup = NULL;
	}

	// Reset the scrollbar
	m_controlsScroll->position(0, 0);

	// If there's no group, exit
	if (!group) {
		m_controlsScroll->redraw();
		return;
	}

	// Constants for slider dimensions
	const int packWidth = m_controlsPack->w();
	const int textHeight = 20;
	const int sliderHeight = 20;
	const int chooserHeight = 100;
	const int buttonHeight = 20;

	// Show them
	// For each control, add appropriate objects to the user interface
	currentGroup = group;
	PropertyList* props = group->getProperties();
	for (PropertyList::iterator iter = props->begin();
		 iter != props->end();
		 iter++)
    {
		// Ignore it if it's a group property (those belong in the tree).
		if (dynamic_cast<GroupProperty*>(*iter))
			continue;

		// And now we'll create a UI element for the property.
		// The big if-statement below uses dynamic_cast<PropertyType*>(ptr),
		// to see if a property has a given type.  dynamic_cast will
		// return 0 if ptr is not of type PropertyType.

		// Add a slider if the property is a RangeProperty
		if (RangeProperty* prop = dynamic_cast<RangeProperty*>(*iter)) {
			// Add the label
			Fl_Box *box = new Fl_Box(0, 0, packWidth, textHeight, (*iter)->getName());
			box->labelsize(14);
			box->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
			box->box(FL_FLAT_BOX); // otherwise, Fl_Scroll messes up (ehsu)
			m_controlsPack->add(box);

			// Add the slider
			Fl_Value_Slider *slider = new Fl_Value_Slider(0, 0, packWidth, sliderHeight);
			slider->type(1);
			slider->range(prop->getMin(), prop->getMax());
			slider->step(prop->getStep());
			slider->value(prop->getValue());
			m_controlsPack->add(slider);

			// Use the step size to determine the number of decimal places
			// shown in the slider's label.
			if (prop->getStep() > 0) {
			  slider->precision((int)-log(prop->getStep()));
			}

			// Have the slider notify the program when it changes
			slider->callback((Fl_Callback*)SliderCallback, (void*) prop);

			

			// Have the property notify the slider when it changes
			prop->listen((SignalListener)updateRangeSlider, (void*) slider);

		// Add a color picker if the property is an RGB property
		} else if (RGBProperty* prop = dynamic_cast<RGBProperty*>(*iter)) {
			// Add the label
			Fl_Box *box = new Fl_Box(0, 0, packWidth, textHeight, (*iter)->getName());
			box->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
			box->labelsize(14);
			box->box(FL_FLAT_BOX); // otherwise, Fl_Scroll messes up (ehsu)
			m_controlsPack->add(box);

			// Add a color chooser
			Fl_Color_Chooser* chooser = new Fl_Color_Chooser(0, 0, packWidth,
				chooserHeight);
			chooser->rgb(prop->getRed(), prop->getGreen(), prop->getBlue());
			m_controlsPack->add(chooser);

			// Have the chooser notify the program when it changes
			chooser->callback((Fl_Callback*)ColorPickerCallback, (void*) prop);

			// Remove any existing color chooser listeners on the property
			prop->unlisten((SignalListener)updateColorChooser);

			// Have the property notify the chooser when it changes
			prop->listen((SignalListener)updateColorChooser, (void*) chooser);

		// Add a checkbox if the property is a boolean property
		} else if (BooleanProperty* prop = dynamic_cast<BooleanProperty*>(*iter)) {
			// Add the checkbox -- no label needed!
			Fl_Check_Button* btn = new Fl_Check_Button(0, 0, packWidth, buttonHeight,
				prop->getName());
			btn->labelsize(14);
			btn->type(FL_TOGGLE_BUTTON);
			btn->value(prop->getValue());
			m_controlsPack->add(btn);

			// Have the button notify the program when it changes
			btn->callback((Fl_Callback*)ButtonCallback, (void*) prop);

			// Remove any existing color chooser listeners on the property
			prop->unlisten((SignalListener)updateCheckbox);

			// Have the property notify the chooser when it changes
			prop->listen((SignalListener)updateCheckbox, (void*) btn);

		// Add radio buttons if the property is a choice property
		} else if (ChoiceProperty* prop = dynamic_cast<ChoiceProperty*>(*iter)) {
			// Add the label
			Fl_Box *box = new Fl_Box(0, 0, packWidth, textHeight, (*iter)->getName());
			box->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
			box->labelsize(14);
			box->box(FL_FLAT_BOX); // otherwise, Fl_Scroll messes up (ehsu)
			m_controlsPack->add(box);

			// Add a group
			Fl_Pack* pack = new Fl_Pack(0, 0, packWidth, buttonHeight);
			pack->type(Fl_Pack::VERTICAL);
			pack->box(FL_THIN_DOWN_FRAME);
			pack->user_data((void*) prop);

			// Add the radio buttons
			const char* choices = prop->getLabels();
			int start = 0, end = -1, index = 0;
			do {
				end++;
				if (choices[end] == 0 || choices[end] == '|') {
					string str(choices, start, end - start);
					Fl_Button* btn = new Fl_Round_Button(0, 0, packWidth, buttonHeight,
						prop->getName());
					btn->type(FL_RADIO_BUTTON);
					btn->copy_label(str.c_str());
					btn->value(prop->getValue() == index);

					// Have the button notify the program when it changes
					btn->callback((Fl_Callback*)ChoiceCallback, (void*)index);

					index++;
					start = end + 1;
				}
			} while (choices[end] != 0);

			pack->end();
			m_controlsPack->add(pack);

			// Remove any existing choce listeners on the property
			prop->unlisten((SignalListener)updateChoice);

			// Have the property update the choices when it changes
			prop->listen((SignalListener)updateChoice, (void*) pack);
		}
    }
	m_controlsScroll->redraw();
}
Пример #27
0
Fl_Font_Browser::Fl_Font_Browser():Fl_Window(100,100,550-60,332-5,"Font Browser") 
{
      lst_Font = new Fl_Browser(15, 55-5, 195, 159);
      lst_Font->labelsize(12);
      lst_Font->textsize(12);
      lst_Font->callback((Fl_Callback*)cb_FontName_Selected, (void*)(lst_Font->parent()));
      lst_Font->type(FL_HOLD_BROWSER);
    
      txt_InputFont = new Fl_Input(15, 31-5, 195, 24, "Font:");
      txt_InputFont->labelsize(12);
      txt_InputFont->textsize(12);
      txt_InputFont->align(FL_ALIGN_TOP_LEFT);
      txt_InputFont->when(FL_WHEN_ENTER_KEY);
      txt_InputFont->callback((Fl_Callback*)cb_txtInputFontName, (void*)(txt_InputFont->parent()));
    
      lst_Style = new Fl_Browser(215, 56-5, 155-60, 159);
      lst_Style->labelsize(12);
      lst_Style->type(FL_HOLD_BROWSER);
      lst_Style->textsize(12); 
      lst_Style->callback((Fl_Callback*)cb_StyleSelected, (void*)(lst_Style->parent()));   
       
      txt_InputStyle = new Fl_Input(215, 32-5, 155-60, 24, "Syle:");
      txt_InputStyle->labelsize(12);
      txt_InputStyle->align(FL_ALIGN_TOP_LEFT);
      txt_InputStyle->textsize(12);    
      txt_InputStyle->callback((Fl_Callback*)cb_txtInputFontStyle, (void*)(txt_InputStyle->parent()));
      
      lst_Size = new Fl_Browser(375-60, 56-5, 75, 159);
      lst_Size->labelsize(12);
      lst_Size->type(FL_HOLD_BROWSER);
      lst_Size->textsize(12); 
      lst_Size->callback((Fl_Callback*)cb_FontSize_Selected, (void*)(lst_Size->parent()));   
      
      txt_InputSize = new Fl_Input(375-60, 32-5, 75, 24, "Size:");
      txt_InputSize->labelsize(12);
      txt_InputSize->align(FL_ALIGN_TOP_LEFT);
      txt_InputSize->textsize(12);    
      txt_InputSize->callback((Fl_Callback*)cb_txtInputFontSize, (void*)(txt_InputSize->parent()));
      
      btn_OK =new Fl_Button(475-60, 35-5, 64, 20, "&OK");
      btn_OK->shortcut(0x8006f);
      btn_OK->labelfont(1);
      btn_OK->labelsize(12);
      btn_OK->callback((Fl_Callback*)cb_okBtn_Red );
         
      btn_Cancel =new Fl_Button(475-60, 60-5, 64, 20, "Cancel");
      btn_Cancel->labelsize(12);
      btn_Cancel->callback((Fl_Callback*)cb_Cancel, (void *)(btn_Cancel->parent()));
    
    
       Fl_Box* o = new Fl_Box(15, 220-5, 20, 10, "Properties");
       
       o->box(FL_BORDER_FRAME);
       o->labelsize(12);
       o->align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE);
      
        btn_Check1= new Fl_Check_Button(40-20, 250-5-5, 100, 15, "Strikethrough");
        btn_Check1->down_box(FL_DOWN_BOX);
        btn_Check1->labelsize(12);
        btn_Check1->callback((Fl_Callback*)cb_Strikethrough, (void *)(btn_Check1->parent()));
      
        btn_Check2 = new Fl_Check_Button(40-20, 270-5-5, 100, 15, "Underline");
        btn_Check2->down_box(FL_DOWN_BOX);
        btn_Check2->labelsize(12);
        btn_Check2->callback((Fl_Callback*)cb_UnderLine, (void *)(btn_Check2->parent()));
    
        btn_Color = new Fl_Button(40-20, 307-10-5, 90, 23, "Color:");
        btn_Color->down_box(FL_BORDER_BOX);
        btn_Color->labelsize(12);
        btn_Color->align(FL_ALIGN_TOP_LEFT);
        btn_Color->color(FL_BLACK);
        btn_Color->callback((Fl_Callback*)cb_Color_Select, (void *)(lst_Size->parent()));

     
    { Fl_Group* o = new Fl_Group(130, 220-5, 256+180, 82, "Example");
      o->box(FL_BORDER_FRAME);
      o->labelsize(12);
      o->align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE);
      { box_Example = new Fl_Font_Preview_Box(132-10, 241-5, 227+50+35+10, 48, "AaBbCcDdEeFfGgHhIi");
        box_Example->box(FL_DOWN_BOX);
        box_Example->labelsize(12);
        box_Example->align(FL_ALIGN_WRAP|FL_ALIGN_CLIP|FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
      }
      o->end();
    }
     set_modal();
     end();
 // Initializations 
  pickedsize = 14; // Font Size to be used
          //
  int k =   Fl::set_fonts(0); // Nr of fonts available on the server
  
  for(int i= 0; i < k; i++) 
  {
    int t;
    const char *name = Fl::get_font_name((Fl_Font)i,&t);
    char buffer[128];

// Load the font list .. Ignore the bold and italic types of the font
     if(!((t & FL_BOLD) ||(t & FL_ITALIC)))
     {
        sprintf(buffer, "%s",name);
        lst_Font->add(buffer);
     }
  }
     /* FL_Browser uses the symbol "@" as a formating char. There are some fonts that there 
      names starts with char "@".       We need to disable this     
   */  
     lst_Font->format_char(0);
       
  
  // Sort the font Alphabetically
  ForwardSort(lst_Font);
  
  lst_Font->value(1); // Select the first font in the list
  lst_Style->value(1);  
  lst_Font->do_callback();  // Do font selected callback .. to draw the preview
  lst_Style->do_callback();
  this->callback_ = 0;  // Initialize Widgets callback 
  this->data_ = 0;      // And the data
}
Пример #28
0
stereogui::stereogui() {
  { stereo_calibration = new Fl_Window(785, 400, "Stereo Calibration");
    stereo_calibration->labelsize(11);
    stereo_calibration->user_data((void*)(this));
    { Fl_Group* o = new Fl_Group(10, 10, 850, 355);
      { window_tab = new Fl_Tabs(10, 10, 665, 285);
        window_tab->box(FL_UP_BOX);
        window_tab->labeltype(FL_NO_LABEL);
        { tab0 = new Fl_Group(25, 55, 660, 250, "Stereo               ");
          tab0->labelsize(11);
          tab0->user_data((void*)(-1));
          { Fl_Group* o = new Fl_Group(30, 55, 645, 245);
            { Fl_Group* o = new Fl_Group(30, 55, 320, 245);
              { Fl_Box* o = new Fl_Box(30, 55, 320, 240);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calLeft0 = new calImageWindow(30, 55, 320, 240);
                calLeft0->box(FL_NO_BOX);
                calLeft0->color(FL_BACKGROUND_COLOR);
                calLeft0->selection_color(FL_BACKGROUND_COLOR);
                calLeft0->labeltype(FL_NO_LABEL);
                calLeft0->labelfont(0);
                calLeft0->labelsize(14);
                calLeft0->labelcolor(FL_FOREGROUND_COLOR);
                calLeft0->align(FL_ALIGN_CENTER);
                calLeft0->when(FL_WHEN_RELEASE);
              } // calImageWindow* calLeft0
              o->end();
            } // Fl_Group* o
            { Fl_Group* o = new Fl_Group(355, 55, 320, 245);
              { Fl_Box* o = new Fl_Box(355, 55, 320, 240);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calRight0 = new calImageWindow(355, 55, 320, 240);
                calRight0->box(FL_NO_BOX);
                calRight0->color(FL_BACKGROUND_COLOR);
                calRight0->selection_color(FL_BACKGROUND_COLOR);
                calRight0->labeltype(FL_NO_LABEL);
                calRight0->labelfont(0);
                calRight0->labelsize(14);
                calRight0->labelcolor(FL_FOREGROUND_COLOR);
                calRight0->align(FL_ALIGN_CENTER);
                calRight0->when(FL_WHEN_RELEASE);
              } // calImageWindow* calRight0
              o->end();
            } // Fl_Group* o
            o->end();
          } // Fl_Group* o
          tab0->end();
        } // Fl_Group* tab0
        { tab1 = new Fl_Group(15, 45, 660, 250, " 1 ");
          tab1->labelsize(11);
          tab1->user_data((void*)(0));
          tab1->hide();
          tab1->deactivate();
          { Fl_Group* o = new Fl_Group(20, 45, 645, 245);
            { Fl_Group* o = new Fl_Group(20, 45, 320, 245);
              { Fl_Box* o = new Fl_Box(20, 45, 320, 240);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calLeft1 = new calImageWindow(20, 45, 320, 240);
                calLeft1->box(FL_NO_BOX);
                calLeft1->color(FL_BACKGROUND_COLOR);
                calLeft1->selection_color(FL_BACKGROUND_COLOR);
                calLeft1->labeltype(FL_NO_LABEL);
                calLeft1->labelfont(0);
                calLeft1->labelsize(14);
                calLeft1->labelcolor(FL_FOREGROUND_COLOR);
                calLeft1->align(FL_ALIGN_CENTER);
                calLeft1->when(FL_WHEN_RELEASE);
              } // calImageWindow* calLeft1
              o->end();
            } // Fl_Group* o
            { Fl_Group* o = new Fl_Group(345, 45, 320, 245);
              { Fl_Box* o = new Fl_Box(345, 45, 320, 240);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calRight1 = new calImageWindow(345, 45, 320, 240);
                calRight1->box(FL_NO_BOX);
                calRight1->color(FL_BACKGROUND_COLOR);
                calRight1->selection_color(FL_BACKGROUND_COLOR);
                calRight1->labeltype(FL_NO_LABEL);
                calRight1->labelfont(0);
                calRight1->labelsize(14);
                calRight1->labelcolor(FL_FOREGROUND_COLOR);
                calRight1->align(FL_ALIGN_CENTER);
                calRight1->when(FL_WHEN_RELEASE);
              } // calImageWindow* calRight1
              o->end();
            } // Fl_Group* o
            o->end();
          } // Fl_Group* o
          tab1->end();
        } // Fl_Group* tab1
        { tab2 = new Fl_Group(15, 35, 660, 260, " 2");
          tab2->labelsize(11);
          tab2->user_data((void*)(1));
          tab2->hide();
          { Fl_Group* o = new Fl_Group(20, 45, 645, 245);
            { Fl_Group* o = new Fl_Group(20, 45, 320, 245);
              { Fl_Box* o = new Fl_Box(20, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calLeft2 = new calImageWindow(20, 45, 320, 240);
                calLeft2->box(FL_NO_BOX);
                calLeft2->color(FL_BACKGROUND_COLOR);
                calLeft2->selection_color(FL_BACKGROUND_COLOR);
                calLeft2->labeltype(FL_NO_LABEL);
                calLeft2->labelfont(0);
                calLeft2->labelsize(14);
                calLeft2->labelcolor(FL_FOREGROUND_COLOR);
                calLeft2->align(FL_ALIGN_CENTER);
                calLeft2->when(FL_WHEN_RELEASE);
              } // calImageWindow* calLeft2
              o->end();
            } // Fl_Group* o
            { Fl_Group* o = new Fl_Group(345, 45, 320, 240);
              { Fl_Box* o = new Fl_Box(345, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calRight2 = new calImageWindow(345, 45, 320, 240);
                calRight2->box(FL_NO_BOX);
                calRight2->color(FL_BACKGROUND_COLOR);
                calRight2->selection_color(FL_BACKGROUND_COLOR);
                calRight2->labeltype(FL_NO_LABEL);
                calRight2->labelfont(0);
                calRight2->labelsize(14);
                calRight2->labelcolor(FL_FOREGROUND_COLOR);
                calRight2->align(FL_ALIGN_CENTER);
                calRight2->when(FL_WHEN_RELEASE);
              } // calImageWindow* calRight2
              o->end();
            } // Fl_Group* o
            o->end();
          } // Fl_Group* o
          tab2->end();
        } // Fl_Group* tab2
        { tab3 = new Fl_Group(15, 35, 660, 260, " 3");
          tab3->labelsize(11);
          tab3->user_data((void*)(2));
          tab3->hide();
          { Fl_Group* o = new Fl_Group(20, 45, 645, 245);
            { Fl_Group* o = new Fl_Group(20, 45, 320, 245);
              { Fl_Box* o = new Fl_Box(20, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calLeft3 = new calImageWindow(20, 45, 320, 240);
                calLeft3->box(FL_NO_BOX);
                calLeft3->color(FL_BACKGROUND_COLOR);
                calLeft3->selection_color(FL_BACKGROUND_COLOR);
                calLeft3->labeltype(FL_NO_LABEL);
                calLeft3->labelfont(0);
                calLeft3->labelsize(14);
                calLeft3->labelcolor(FL_FOREGROUND_COLOR);
                calLeft3->align(FL_ALIGN_CENTER);
                calLeft3->when(FL_WHEN_RELEASE);
              } // calImageWindow* calLeft3
              o->end();
            } // Fl_Group* o
            { Fl_Group* o = new Fl_Group(345, 45, 320, 240);
              { Fl_Box* o = new Fl_Box(345, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calRight3 = new calImageWindow(345, 45, 320, 240);
                calRight3->box(FL_NO_BOX);
                calRight3->color(FL_BACKGROUND_COLOR);
                calRight3->selection_color(FL_BACKGROUND_COLOR);
                calRight3->labeltype(FL_NO_LABEL);
                calRight3->labelfont(0);
                calRight3->labelsize(14);
                calRight3->labelcolor(FL_FOREGROUND_COLOR);
                calRight3->align(FL_ALIGN_CENTER);
                calRight3->when(FL_WHEN_RELEASE);
              } // calImageWindow* calRight3
              o->end();
            } // Fl_Group* o
            o->end();
          } // Fl_Group* o
          tab3->end();
        } // Fl_Group* tab3
        { tab4 = new Fl_Group(15, 35, 660, 260, " 4");
          tab4->labelsize(11);
          tab4->user_data((void*)(3));
          tab4->hide();
          { Fl_Group* o = new Fl_Group(20, 45, 645, 245);
            { Fl_Group* o = new Fl_Group(20, 45, 320, 245);
              { Fl_Box* o = new Fl_Box(20, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calLeft4 = new calImageWindow(20, 45, 320, 240);
                calLeft4->box(FL_NO_BOX);
                calLeft4->color(FL_BACKGROUND_COLOR);
                calLeft4->selection_color(FL_BACKGROUND_COLOR);
                calLeft4->labeltype(FL_NO_LABEL);
                calLeft4->labelfont(0);
                calLeft4->labelsize(14);
                calLeft4->labelcolor(FL_FOREGROUND_COLOR);
                calLeft4->align(FL_ALIGN_CENTER);
                calLeft4->when(FL_WHEN_RELEASE);
              } // calImageWindow* calLeft4
              o->end();
            } // Fl_Group* o
            { Fl_Group* o = new Fl_Group(345, 45, 320, 240);
              { Fl_Box* o = new Fl_Box(345, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calRight4 = new calImageWindow(345, 45, 320, 240);
                calRight4->box(FL_NO_BOX);
                calRight4->color(FL_BACKGROUND_COLOR);
                calRight4->selection_color(FL_BACKGROUND_COLOR);
                calRight4->labeltype(FL_NO_LABEL);
                calRight4->labelfont(0);
                calRight4->labelsize(14);
                calRight4->labelcolor(FL_FOREGROUND_COLOR);
                calRight4->align(FL_ALIGN_CENTER);
                calRight4->when(FL_WHEN_RELEASE);
              } // calImageWindow* calRight4
              o->end();
            } // Fl_Group* o
            o->end();
          } // Fl_Group* o
          tab4->end();
        } // Fl_Group* tab4
        { tab5 = new Fl_Group(15, 35, 660, 260, " 5");
          tab5->labelsize(11);
          tab5->user_data((void*)(4));
          tab5->hide();
          { Fl_Group* o = new Fl_Group(20, 45, 645, 245);
            { Fl_Group* o = new Fl_Group(20, 45, 320, 245);
              { Fl_Box* o = new Fl_Box(20, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calLeft5 = new calImageWindow(20, 45, 320, 240);
                calLeft5->box(FL_NO_BOX);
                calLeft5->color(FL_BACKGROUND_COLOR);
                calLeft5->selection_color(FL_BACKGROUND_COLOR);
                calLeft5->labeltype(FL_NO_LABEL);
                calLeft5->labelfont(0);
                calLeft5->labelsize(14);
                calLeft5->labelcolor(FL_FOREGROUND_COLOR);
                calLeft5->align(FL_ALIGN_CENTER);
                calLeft5->when(FL_WHEN_RELEASE);
              } // calImageWindow* calLeft5
              o->end();
            } // Fl_Group* o
            { Fl_Group* o = new Fl_Group(345, 45, 320, 240);
              { Fl_Box* o = new Fl_Box(345, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calRight5 = new calImageWindow(345, 45, 320, 240);
                calRight5->box(FL_NO_BOX);
                calRight5->color(FL_BACKGROUND_COLOR);
                calRight5->selection_color(FL_BACKGROUND_COLOR);
                calRight5->labeltype(FL_NO_LABEL);
                calRight5->labelfont(0);
                calRight5->labelsize(14);
                calRight5->labelcolor(FL_FOREGROUND_COLOR);
                calRight5->align(FL_ALIGN_CENTER);
                calRight5->when(FL_WHEN_RELEASE);
              } // calImageWindow* calRight5
              o->end();
            } // Fl_Group* o
            o->end();
          } // Fl_Group* o
          tab5->end();
        } // Fl_Group* tab5
        { tab6 = new Fl_Group(15, 35, 660, 260, " 6");
          tab6->labelsize(11);
          tab6->user_data((void*)(5));
          tab6->hide();
          { Fl_Group* o = new Fl_Group(20, 45, 645, 245);
            { Fl_Group* o = new Fl_Group(20, 45, 320, 245);
              { Fl_Box* o = new Fl_Box(20, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calLeft6 = new calImageWindow(20, 45, 320, 240);
                calLeft6->box(FL_NO_BOX);
                calLeft6->color(FL_BACKGROUND_COLOR);
                calLeft6->selection_color(FL_BACKGROUND_COLOR);
                calLeft6->labeltype(FL_NO_LABEL);
                calLeft6->labelfont(0);
                calLeft6->labelsize(14);
                calLeft6->labelcolor(FL_FOREGROUND_COLOR);
                calLeft6->align(FL_ALIGN_CENTER);
                calLeft6->when(FL_WHEN_RELEASE);
              } // calImageWindow* calLeft6
              o->end();
            } // Fl_Group* o
            { Fl_Group* o = new Fl_Group(345, 45, 320, 240);
              { Fl_Box* o = new Fl_Box(345, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calRight6 = new calImageWindow(345, 45, 320, 240);
                calRight6->box(FL_NO_BOX);
                calRight6->color(FL_BACKGROUND_COLOR);
                calRight6->selection_color(FL_BACKGROUND_COLOR);
                calRight6->labeltype(FL_NO_LABEL);
                calRight6->labelfont(0);
                calRight6->labelsize(14);
                calRight6->labelcolor(FL_FOREGROUND_COLOR);
                calRight6->align(FL_ALIGN_CENTER);
                calRight6->when(FL_WHEN_RELEASE);
              } // calImageWindow* calRight6
              o->end();
            } // Fl_Group* o
            o->end();
          } // Fl_Group* o
          tab6->end();
        } // Fl_Group* tab6
        { tab7 = new Fl_Group(15, 35, 660, 260, " 7");
          tab7->labelsize(11);
          tab7->user_data((void*)(6));
          tab7->hide();
          { Fl_Group* o = new Fl_Group(20, 45, 645, 245);
            { Fl_Group* o = new Fl_Group(20, 45, 320, 245);
              { Fl_Box* o = new Fl_Box(20, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calLeft7 = new calImageWindow(20, 45, 320, 240);
                calLeft7->box(FL_NO_BOX);
                calLeft7->color(FL_BACKGROUND_COLOR);
                calLeft7->selection_color(FL_BACKGROUND_COLOR);
                calLeft7->labeltype(FL_NO_LABEL);
                calLeft7->labelfont(0);
                calLeft7->labelsize(14);
                calLeft7->labelcolor(FL_FOREGROUND_COLOR);
                calLeft7->align(FL_ALIGN_CENTER);
                calLeft7->when(FL_WHEN_RELEASE);
              } // calImageWindow* calLeft7
              o->end();
            } // Fl_Group* o
            { Fl_Group* o = new Fl_Group(345, 45, 320, 240);
              { Fl_Box* o = new Fl_Box(345, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calRight7 = new calImageWindow(345, 45, 320, 240);
                calRight7->box(FL_NO_BOX);
                calRight7->color(FL_BACKGROUND_COLOR);
                calRight7->selection_color(FL_BACKGROUND_COLOR);
                calRight7->labeltype(FL_NO_LABEL);
                calRight7->labelfont(0);
                calRight7->labelsize(14);
                calRight7->labelcolor(FL_FOREGROUND_COLOR);
                calRight7->align(FL_ALIGN_CENTER);
                calRight7->when(FL_WHEN_RELEASE);
              } // calImageWindow* calRight7
              o->end();
            } // Fl_Group* o
            o->end();
          } // Fl_Group* o
          tab7->end();
        } // Fl_Group* tab7
        { tab8 = new Fl_Group(15, 35, 660, 260, " 8");
          tab8->labelsize(11);
          tab8->user_data((void*)(7));
          tab8->hide();
          { Fl_Group* o = new Fl_Group(20, 45, 645, 245);
            { Fl_Group* o = new Fl_Group(20, 45, 320, 245);
              { Fl_Box* o = new Fl_Box(20, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calLeft8 = new calImageWindow(20, 45, 320, 240);
                calLeft8->box(FL_NO_BOX);
                calLeft8->color(FL_BACKGROUND_COLOR);
                calLeft8->selection_color(FL_BACKGROUND_COLOR);
                calLeft8->labeltype(FL_NO_LABEL);
                calLeft8->labelfont(0);
                calLeft8->labelsize(14);
                calLeft8->labelcolor(FL_FOREGROUND_COLOR);
                calLeft8->align(FL_ALIGN_CENTER);
                calLeft8->when(FL_WHEN_RELEASE);
              } // calImageWindow* calLeft8
              o->end();
            } // Fl_Group* o
            { Fl_Group* o = new Fl_Group(345, 45, 320, 240);
              { Fl_Box* o = new Fl_Box(345, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calRight8 = new calImageWindow(345, 45, 320, 240);
                calRight8->box(FL_NO_BOX);
                calRight8->color(FL_BACKGROUND_COLOR);
                calRight8->selection_color(FL_BACKGROUND_COLOR);
                calRight8->labeltype(FL_NO_LABEL);
                calRight8->labelfont(0);
                calRight8->labelsize(14);
                calRight8->labelcolor(FL_FOREGROUND_COLOR);
                calRight8->align(FL_ALIGN_CENTER);
                calRight8->when(FL_WHEN_RELEASE);
              } // calImageWindow* calRight8
              o->end();
            } // Fl_Group* o
            o->end();
          } // Fl_Group* o
          tab8->end();
        } // Fl_Group* tab8
        { tab9 = new Fl_Group(15, 35, 660, 260, " 9");
          tab9->labelsize(11);
          tab9->user_data((void*)(8));
          tab9->hide();
          { Fl_Group* o = new Fl_Group(20, 45, 645, 245);
            { Fl_Group* o = new Fl_Group(20, 45, 320, 245);
              { Fl_Box* o = new Fl_Box(20, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calLeft9 = new calImageWindow(20, 45, 320, 240);
                calLeft9->box(FL_NO_BOX);
                calLeft9->color(FL_BACKGROUND_COLOR);
                calLeft9->selection_color(FL_BACKGROUND_COLOR);
                calLeft9->labeltype(FL_NO_LABEL);
                calLeft9->labelfont(0);
                calLeft9->labelsize(14);
                calLeft9->labelcolor(FL_FOREGROUND_COLOR);
                calLeft9->align(FL_ALIGN_CENTER);
                calLeft9->when(FL_WHEN_RELEASE);
              } // calImageWindow* calLeft9
              o->end();
            } // Fl_Group* o
            { Fl_Group* o = new Fl_Group(345, 45, 320, 240);
              { Fl_Box* o = new Fl_Box(345, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calRight9 = new calImageWindow(345, 45, 320, 240);
                calRight9->box(FL_NO_BOX);
                calRight9->color(FL_BACKGROUND_COLOR);
                calRight9->selection_color(FL_BACKGROUND_COLOR);
                calRight9->labeltype(FL_NO_LABEL);
                calRight9->labelfont(0);
                calRight9->labelsize(14);
                calRight9->labelcolor(FL_FOREGROUND_COLOR);
                calRight9->align(FL_ALIGN_CENTER);
                calRight9->when(FL_WHEN_RELEASE);
              } // calImageWindow* calRight9
              o->end();
            } // Fl_Group* o
            o->end();
          } // Fl_Group* o
          tab9->end();
        } // Fl_Group* tab9
        { tab10 = new Fl_Group(15, 35, 660, 260, " 10");
          tab10->labelsize(11);
          tab10->user_data((void*)(9));
          tab10->hide();
          { Fl_Group* o = new Fl_Group(20, 45, 645, 245);
            { Fl_Group* o = new Fl_Group(20, 45, 320, 245);
              { Fl_Box* o = new Fl_Box(20, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calLeft10 = new calImageWindow(20, 45, 320, 240);
                calLeft10->box(FL_NO_BOX);
                calLeft10->color(FL_BACKGROUND_COLOR);
                calLeft10->selection_color(FL_BACKGROUND_COLOR);
                calLeft10->labeltype(FL_NO_LABEL);
                calLeft10->labelfont(0);
                calLeft10->labelsize(14);
                calLeft10->labelcolor(FL_FOREGROUND_COLOR);
                calLeft10->align(FL_ALIGN_CENTER);
                calLeft10->when(FL_WHEN_RELEASE);
              } // calImageWindow* calLeft10
              o->end();
            } // Fl_Group* o
            { Fl_Group* o = new Fl_Group(345, 45, 320, 240);
              { Fl_Box* o = new Fl_Box(345, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calRight10 = new calImageWindow(345, 45, 320, 240);
                calRight10->box(FL_NO_BOX);
                calRight10->color(FL_BACKGROUND_COLOR);
                calRight10->selection_color(FL_BACKGROUND_COLOR);
                calRight10->labeltype(FL_NO_LABEL);
                calRight10->labelfont(0);
                calRight10->labelsize(14);
                calRight10->labelcolor(FL_FOREGROUND_COLOR);
                calRight10->align(FL_ALIGN_CENTER);
                calRight10->when(FL_WHEN_RELEASE);
              } // calImageWindow* calRight10
              o->end();
            } // Fl_Group* o
            o->end();
          } // Fl_Group* o
          tab10->end();
        } // Fl_Group* tab10
        { tab11 = new Fl_Group(15, 35, 660, 260, " 11");
          tab11->labelsize(11);
          tab11->user_data((void*)(10));
          tab11->hide();
          { Fl_Group* o = new Fl_Group(20, 45, 645, 245);
            { Fl_Group* o = new Fl_Group(20, 45, 320, 245);
              { Fl_Box* o = new Fl_Box(20, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calLeft11 = new calImageWindow(20, 45, 320, 240);
                calLeft11->box(FL_NO_BOX);
                calLeft11->color(FL_BACKGROUND_COLOR);
                calLeft11->selection_color(FL_BACKGROUND_COLOR);
                calLeft11->labeltype(FL_NO_LABEL);
                calLeft11->labelfont(0);
                calLeft11->labelsize(14);
                calLeft11->labelcolor(FL_FOREGROUND_COLOR);
                calLeft11->align(FL_ALIGN_CENTER);
                calLeft11->when(FL_WHEN_RELEASE);
              } // calImageWindow* calLeft11
              o->end();
            } // Fl_Group* o
            { Fl_Group* o = new Fl_Group(345, 45, 320, 240);
              { Fl_Box* o = new Fl_Box(345, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calRight11 = new calImageWindow(345, 45, 320, 240);
                calRight11->box(FL_NO_BOX);
                calRight11->color(FL_BACKGROUND_COLOR);
                calRight11->selection_color(FL_BACKGROUND_COLOR);
                calRight11->labeltype(FL_NO_LABEL);
                calRight11->labelfont(0);
                calRight11->labelsize(14);
                calRight11->labelcolor(FL_FOREGROUND_COLOR);
                calRight11->align(FL_ALIGN_CENTER);
                calRight11->when(FL_WHEN_RELEASE);
              } // calImageWindow* calRight11
              o->end();
            } // Fl_Group* o
            o->end();
          } // Fl_Group* o
          tab11->end();
        } // Fl_Group* tab11
        { tab12 = new Fl_Group(15, 35, 660, 260, " 12");
          tab12->labelsize(11);
          tab12->user_data((void*)(11));
          tab12->hide();
          { Fl_Group* o = new Fl_Group(20, 45, 645, 245);
            { Fl_Group* o = new Fl_Group(20, 45, 320, 245);
              { Fl_Box* o = new Fl_Box(20, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calLeft12 = new calImageWindow(20, 45, 320, 240);
                calLeft12->box(FL_NO_BOX);
                calLeft12->color(FL_BACKGROUND_COLOR);
                calLeft12->selection_color(FL_BACKGROUND_COLOR);
                calLeft12->labeltype(FL_NO_LABEL);
                calLeft12->labelfont(0);
                calLeft12->labelsize(14);
                calLeft12->labelcolor(FL_FOREGROUND_COLOR);
                calLeft12->align(FL_ALIGN_CENTER);
                calLeft12->when(FL_WHEN_RELEASE);
              } // calImageWindow* calLeft12
              o->end();
            } // Fl_Group* o
            { Fl_Group* o = new Fl_Group(345, 45, 320, 240);
              { Fl_Box* o = new Fl_Box(345, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calRight12 = new calImageWindow(345, 45, 320, 240);
                calRight12->box(FL_NO_BOX);
                calRight12->color(FL_BACKGROUND_COLOR);
                calRight12->selection_color(FL_BACKGROUND_COLOR);
                calRight12->labeltype(FL_NO_LABEL);
                calRight12->labelfont(0);
                calRight12->labelsize(14);
                calRight12->labelcolor(FL_FOREGROUND_COLOR);
                calRight12->align(FL_ALIGN_CENTER);
                calRight12->when(FL_WHEN_RELEASE);
              } // calImageWindow* calRight12
              o->end();
            } // Fl_Group* o
            o->end();
          } // Fl_Group* o
          tab12->end();
        } // Fl_Group* tab12
        { tab13 = new Fl_Group(15, 35, 660, 260, " 13");
          tab13->labelsize(11);
          tab13->user_data((void*)(12));
          tab13->hide();
          { Fl_Group* o = new Fl_Group(20, 45, 645, 245);
            { Fl_Group* o = new Fl_Group(20, 45, 320, 245);
              { Fl_Box* o = new Fl_Box(20, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calLeft13 = new calImageWindow(20, 45, 320, 240);
                calLeft13->box(FL_NO_BOX);
                calLeft13->color(FL_BACKGROUND_COLOR);
                calLeft13->selection_color(FL_BACKGROUND_COLOR);
                calLeft13->labeltype(FL_NO_LABEL);
                calLeft13->labelfont(0);
                calLeft13->labelsize(14);
                calLeft13->labelcolor(FL_FOREGROUND_COLOR);
                calLeft13->align(FL_ALIGN_CENTER);
                calLeft13->when(FL_WHEN_RELEASE);
              } // calImageWindow* calLeft13
              o->end();
            } // Fl_Group* o
            { Fl_Group* o = new Fl_Group(345, 45, 320, 240);
              { Fl_Box* o = new Fl_Box(345, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calRight13 = new calImageWindow(345, 45, 320, 240);
                calRight13->box(FL_NO_BOX);
                calRight13->color(FL_BACKGROUND_COLOR);
                calRight13->selection_color(FL_BACKGROUND_COLOR);
                calRight13->labeltype(FL_NO_LABEL);
                calRight13->labelfont(0);
                calRight13->labelsize(14);
                calRight13->labelcolor(FL_FOREGROUND_COLOR);
                calRight13->align(FL_ALIGN_CENTER);
                calRight13->when(FL_WHEN_RELEASE);
              } // calImageWindow* calRight13
              o->end();
            } // Fl_Group* o
            o->end();
          } // Fl_Group* o
          tab13->end();
        } // Fl_Group* tab13
        { tab14 = new Fl_Group(15, 35, 660, 260, " 14");
          tab14->labelsize(11);
          tab14->user_data((void*)(13));
          tab14->hide();
          { Fl_Group* o = new Fl_Group(20, 45, 645, 245);
            { Fl_Group* o = new Fl_Group(20, 45, 320, 245);
              { Fl_Box* o = new Fl_Box(20, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calLeft14 = new calImageWindow(20, 45, 320, 240);
                calLeft14->box(FL_NO_BOX);
                calLeft14->color(FL_BACKGROUND_COLOR);
                calLeft14->selection_color(FL_BACKGROUND_COLOR);
                calLeft14->labeltype(FL_NO_LABEL);
                calLeft14->labelfont(0);
                calLeft14->labelsize(14);
                calLeft14->labelcolor(FL_FOREGROUND_COLOR);
                calLeft14->align(FL_ALIGN_CENTER);
                calLeft14->when(FL_WHEN_RELEASE);
              } // calImageWindow* calLeft14
              o->end();
            } // Fl_Group* o
            { Fl_Group* o = new Fl_Group(345, 45, 320, 240);
              { Fl_Box* o = new Fl_Box(345, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calRight14 = new calImageWindow(345, 45, 320, 240);
                calRight14->box(FL_NO_BOX);
                calRight14->color(FL_BACKGROUND_COLOR);
                calRight14->selection_color(FL_BACKGROUND_COLOR);
                calRight14->labeltype(FL_NO_LABEL);
                calRight14->labelfont(0);
                calRight14->labelsize(14);
                calRight14->labelcolor(FL_FOREGROUND_COLOR);
                calRight14->align(FL_ALIGN_CENTER);
                calRight14->when(FL_WHEN_RELEASE);
              } // calImageWindow* calRight14
              o->end();
            } // Fl_Group* o
            o->end();
          } // Fl_Group* o
          tab14->end();
        } // Fl_Group* tab14
        { tab15 = new Fl_Group(15, 35, 660, 260, " 15");
          tab15->labelsize(11);
          tab15->user_data((void*)(14));
          tab15->hide();
          { Fl_Group* o = new Fl_Group(20, 45, 645, 245);
            { Fl_Group* o = new Fl_Group(20, 45, 320, 245);
              { Fl_Box* o = new Fl_Box(20, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calLeft15 = new calImageWindow(20, 45, 320, 240);
                calLeft15->box(FL_NO_BOX);
                calLeft15->color(FL_BACKGROUND_COLOR);
                calLeft15->selection_color(FL_BACKGROUND_COLOR);
                calLeft15->labeltype(FL_NO_LABEL);
                calLeft15->labelfont(0);
                calLeft15->labelsize(14);
                calLeft15->labelcolor(FL_FOREGROUND_COLOR);
                calLeft15->align(FL_ALIGN_CENTER);
                calLeft15->when(FL_WHEN_RELEASE);
              } // calImageWindow* calLeft15
              o->end();
            } // Fl_Group* o
            { Fl_Group* o = new Fl_Group(345, 45, 320, 240);
              { Fl_Box* o = new Fl_Box(345, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calRight15 = new calImageWindow(345, 45, 320, 240);
                calRight15->box(FL_NO_BOX);
                calRight15->color(FL_BACKGROUND_COLOR);
                calRight15->selection_color(FL_BACKGROUND_COLOR);
                calRight15->labeltype(FL_NO_LABEL);
                calRight15->labelfont(0);
                calRight15->labelsize(14);
                calRight15->labelcolor(FL_FOREGROUND_COLOR);
                calRight15->align(FL_ALIGN_CENTER);
                calRight15->when(FL_WHEN_RELEASE);
              } // calImageWindow* calRight15
              o->end();
            } // Fl_Group* o
            o->end();
          } // Fl_Group* o
          tab15->end();
        } // Fl_Group* tab15
        { tab16 = new Fl_Group(15, 35, 660, 260, " 16");
          tab16->labelsize(11);
          tab16->user_data((void*)(15));
          tab16->hide();
          { Fl_Group* o = new Fl_Group(20, 45, 645, 245);
            { Fl_Group* o = new Fl_Group(20, 45, 320, 245);
              { Fl_Box* o = new Fl_Box(20, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calLeft16 = new calImageWindow(20, 45, 320, 240);
                calLeft16->box(FL_NO_BOX);
                calLeft16->color(FL_BACKGROUND_COLOR);
                calLeft16->selection_color(FL_BACKGROUND_COLOR);
                calLeft16->labeltype(FL_NO_LABEL);
                calLeft16->labelfont(0);
                calLeft16->labelsize(14);
                calLeft16->labelcolor(FL_FOREGROUND_COLOR);
                calLeft16->align(FL_ALIGN_CENTER);
                calLeft16->when(FL_WHEN_RELEASE);
              } // calImageWindow* calLeft16
              o->end();
            } // Fl_Group* o
            { Fl_Group* o = new Fl_Group(345, 45, 320, 240);
              { Fl_Box* o = new Fl_Box(345, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calRight16 = new calImageWindow(345, 45, 320, 240);
                calRight16->box(FL_NO_BOX);
                calRight16->color(FL_BACKGROUND_COLOR);
                calRight16->selection_color(FL_BACKGROUND_COLOR);
                calRight16->labeltype(FL_NO_LABEL);
                calRight16->labelfont(0);
                calRight16->labelsize(14);
                calRight16->labelcolor(FL_FOREGROUND_COLOR);
                calRight16->align(FL_ALIGN_CENTER);
                calRight16->when(FL_WHEN_RELEASE);
              } // calImageWindow* calRight16
              o->end();
            } // Fl_Group* o
            o->end();
          } // Fl_Group* o
          tab16->end();
        } // Fl_Group* tab16
        { tab17 = new Fl_Group(15, 35, 660, 260, " 17");
          tab17->labelsize(11);
          tab17->user_data((void*)(16));
          tab17->hide();
          { Fl_Group* o = new Fl_Group(20, 45, 645, 245);
            { Fl_Group* o = new Fl_Group(20, 45, 320, 245);
              { Fl_Box* o = new Fl_Box(20, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calLeft17 = new calImageWindow(20, 45, 320, 240);
                calLeft17->box(FL_NO_BOX);
                calLeft17->color(FL_BACKGROUND_COLOR);
                calLeft17->selection_color(FL_BACKGROUND_COLOR);
                calLeft17->labeltype(FL_NO_LABEL);
                calLeft17->labelfont(0);
                calLeft17->labelsize(14);
                calLeft17->labelcolor(FL_FOREGROUND_COLOR);
                calLeft17->align(FL_ALIGN_CENTER);
                calLeft17->when(FL_WHEN_RELEASE);
              } // calImageWindow* calLeft17
              o->end();
            } // Fl_Group* o
            { Fl_Group* o = new Fl_Group(345, 45, 320, 240);
              { Fl_Box* o = new Fl_Box(345, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calRight17 = new calImageWindow(345, 45, 320, 240);
                calRight17->box(FL_NO_BOX);
                calRight17->color(FL_BACKGROUND_COLOR);
                calRight17->selection_color(FL_BACKGROUND_COLOR);
                calRight17->labeltype(FL_NO_LABEL);
                calRight17->labelfont(0);
                calRight17->labelsize(14);
                calRight17->labelcolor(FL_FOREGROUND_COLOR);
                calRight17->align(FL_ALIGN_CENTER);
                calRight17->when(FL_WHEN_RELEASE);
              } // calImageWindow* calRight17
              o->end();
            } // Fl_Group* o
            o->end();
          } // Fl_Group* o
          tab17->end();
        } // Fl_Group* tab17
        { tab18 = new Fl_Group(15, 35, 660, 260, " 18");
          tab18->labelsize(11);
          tab18->user_data((void*)(17));
          tab18->hide();
          { Fl_Group* o = new Fl_Group(20, 45, 645, 245);
            { Fl_Group* o = new Fl_Group(20, 45, 320, 245);
              { Fl_Box* o = new Fl_Box(20, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calLeft18 = new calImageWindow(20, 45, 320, 240);
                calLeft18->box(FL_NO_BOX);
                calLeft18->color(FL_BACKGROUND_COLOR);
                calLeft18->selection_color(FL_BACKGROUND_COLOR);
                calLeft18->labeltype(FL_NO_LABEL);
                calLeft18->labelfont(0);
                calLeft18->labelsize(14);
                calLeft18->labelcolor(FL_FOREGROUND_COLOR);
                calLeft18->align(FL_ALIGN_CENTER);
                calLeft18->when(FL_WHEN_RELEASE);
              } // calImageWindow* calLeft18
              o->end();
            } // Fl_Group* o
            { Fl_Group* o = new Fl_Group(345, 45, 320, 240);
              { Fl_Box* o = new Fl_Box(345, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calRight18 = new calImageWindow(345, 45, 320, 240);
                calRight18->box(FL_NO_BOX);
                calRight18->color(FL_BACKGROUND_COLOR);
                calRight18->selection_color(FL_BACKGROUND_COLOR);
                calRight18->labeltype(FL_NO_LABEL);
                calRight18->labelfont(0);
                calRight18->labelsize(14);
                calRight18->labelcolor(FL_FOREGROUND_COLOR);
                calRight18->align(FL_ALIGN_CENTER);
                calRight18->when(FL_WHEN_RELEASE);
              } // calImageWindow* calRight18
              o->end();
            } // Fl_Group* o
            o->end();
          } // Fl_Group* o
          tab18->end();
        } // Fl_Group* tab18
        { tab19 = new Fl_Group(15, 35, 660, 260, " 19");
          tab19->labelsize(11);
          tab19->user_data((void*)(18));
          tab19->hide();
          { Fl_Group* o = new Fl_Group(20, 45, 645, 245);
            { Fl_Group* o = new Fl_Group(20, 45, 320, 245);
              { Fl_Box* o = new Fl_Box(20, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calLeft19 = new calImageWindow(20, 45, 320, 240);
                calLeft19->box(FL_NO_BOX);
                calLeft19->color(FL_BACKGROUND_COLOR);
                calLeft19->selection_color(FL_BACKGROUND_COLOR);
                calLeft19->labeltype(FL_NO_LABEL);
                calLeft19->labelfont(0);
                calLeft19->labelsize(14);
                calLeft19->labelcolor(FL_FOREGROUND_COLOR);
                calLeft19->align(FL_ALIGN_CENTER);
                calLeft19->when(FL_WHEN_RELEASE);
              } // calImageWindow* calLeft19
              o->end();
            } // Fl_Group* o
            { Fl_Group* o = new Fl_Group(345, 45, 320, 240);
              { Fl_Box* o = new Fl_Box(345, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calRight19 = new calImageWindow(345, 45, 320, 240);
                calRight19->box(FL_NO_BOX);
                calRight19->color(FL_BACKGROUND_COLOR);
                calRight19->selection_color(FL_BACKGROUND_COLOR);
                calRight19->labeltype(FL_NO_LABEL);
                calRight19->labelfont(0);
                calRight19->labelsize(14);
                calRight19->labelcolor(FL_FOREGROUND_COLOR);
                calRight19->align(FL_ALIGN_CENTER);
                calRight19->when(FL_WHEN_RELEASE);
              } // calImageWindow* calRight19
              o->end();
            } // Fl_Group* o
            o->end();
          } // Fl_Group* o
          tab19->end();
        } // Fl_Group* tab19
        { tab20 = new Fl_Group(15, 35, 660, 260, " 20");
          tab20->labelsize(11);
          tab20->user_data((void*)(19));
          tab20->hide();
          { Fl_Group* o = new Fl_Group(20, 45, 645, 245);
            { Fl_Group* o = new Fl_Group(20, 45, 320, 245);
              { Fl_Box* o = new Fl_Box(20, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calLeft20 = new calImageWindow(20, 45, 320, 240);
                calLeft20->box(FL_NO_BOX);
                calLeft20->color(FL_BACKGROUND_COLOR);
                calLeft20->selection_color(FL_BACKGROUND_COLOR);
                calLeft20->labeltype(FL_NO_LABEL);
                calLeft20->labelfont(0);
                calLeft20->labelsize(14);
                calLeft20->labelcolor(FL_FOREGROUND_COLOR);
                calLeft20->align(FL_ALIGN_CENTER);
                calLeft20->when(FL_WHEN_RELEASE);
              } // calImageWindow* calLeft20
              o->end();
            } // Fl_Group* o
            { Fl_Group* o = new Fl_Group(345, 45, 320, 240);
              { Fl_Box* o = new Fl_Box(345, 50, 320, 235);
                o->box(FL_EMBOSSED_FRAME);
                o->labeltype(FL_NO_LABEL);
              } // Fl_Box* o
              { calRight20 = new calImageWindow(345, 45, 320, 240);
                calRight20->box(FL_NO_BOX);
                calRight20->color(FL_BACKGROUND_COLOR);
                calRight20->selection_color(FL_BACKGROUND_COLOR);
                calRight20->labeltype(FL_NO_LABEL);
                calRight20->labelfont(0);
                calRight20->labelsize(14);
                calRight20->labelcolor(FL_FOREGROUND_COLOR);
                calRight20->align(FL_ALIGN_CENTER);
                calRight20->when(FL_WHEN_RELEASE);
              } // calImageWindow* calRight20
              o->end();
            } // Fl_Group* o
            o->end();
          } // Fl_Group* o
          tab20->end();
        } // Fl_Group* tab20
        window_tab->end();
      } // Fl_Tabs* window_tab
      { Fl_Group* o = new Fl_Group(410, 30, 450, 300);
        { Fl_Button* o = load_button = new Fl_Button(685, 110, 90, 25, "Load both");
          load_button->down_box(FL_DOWN_BOX);
          load_button->labelsize(11);
          load_button->callback((Fl_Callback*)cal_load_cb);
          o->user_data((void *)this);
        } // Fl_Button* load_button
        { Fl_Button* o = save_button = new Fl_Button(685, 180, 90, 25, "Save");
          save_button->down_box(FL_DOWN_BOX);
          save_button->labelsize(11);
          save_button->callback((Fl_Callback*)cal_save_image_cb);
          o->user_data((void *)this);
        } // Fl_Button* save_button
        { Fl_Button* o = capture_button = new Fl_Button(685, 45, 90, 25, "Capture");
          capture_button->down_box(FL_DOWN_BOX);
          capture_button->labelsize(11);
          capture_button->callback((Fl_Callback*)cal_capture_cb);
          o->user_data((void *)this);
        } // Fl_Button* capture_button
        { Fl_Button* o = save_all_button = new Fl_Button(685, 205, 90, 25, "Save All");
          save_all_button->down_box(FL_DOWN_BOX);
          save_all_button->labelsize(11);
          save_all_button->callback((Fl_Callback*)cal_save_all_cb);
          o->user_data((void *)this);
        } // Fl_Button* save_all_button
        { Fl_Button* o = delete_button = new Fl_Button(685, 245, 90, 25, "Delete");
          delete_button->down_box(FL_DOWN_BOX);
          delete_button->labelsize(11);
          delete_button->callback((Fl_Callback*)cal_delete_image);
          o->user_data((void *)this);
        } // Fl_Button* delete_button
        { Fl_Button* o = load_left_button = new Fl_Button(685, 85, 45, 25, "Load L");
          load_left_button->down_box(FL_DOWN_BOX);
          load_left_button->labelsize(11);
          load_left_button->callback((Fl_Callback*)cal_load_left_cb);
          o->user_data((void *)this);
        } // Fl_Button* load_left_button
        { Fl_Button* o = load_right_button = new Fl_Button(730, 85, 45, 25, "Load R");
          load_right_button->down_box(FL_DOWN_BOX);
          load_right_button->labelsize(11);
          load_right_button->callback((Fl_Callback*)cal_load_right_cb);
          o->user_data((void *)this);
        } // Fl_Button* load_right_button
        { Fl_Button* o = load_seq_button = new Fl_Button(685, 135, 90, 25, "Load sequence");
          load_seq_button->down_box(FL_DOWN_BOX);
          load_seq_button->labelsize(11);
          load_seq_button->callback((Fl_Callback*)cal_load_seq_cb);
          o->user_data((void *)this);
        } // Fl_Button* load_seq_button
        { Fl_Button* o = stereo_button = new Fl_Button(685, 305, 90, 25, "Stereo");
          stereo_button->down_box(FL_DOWN_BOX);
          stereo_button->labelsize(11);
          stereo_button->callback((Fl_Callback*)do_stereo_cb);
          o->user_data((void *)this);
        } // Fl_Button* stereo_button
        o->end();
      } // Fl_Group* o
      o->end();
    } // Fl_Group* o
    { info_message = new Fl_Output(20, 305, 490, 25);
      info_message->box(FL_BORDER_BOX);
      info_message->color(FL_BACKGROUND_COLOR);
      info_message->labelsize(11);
      info_message->textsize(11);
    } // Fl_Output* info_message
    { Fl_Group* o = new Fl_Group(20, 305, 655, 85);
      { Fl_Button* o = calibrate_button = new Fl_Button(525, 305, 75, 25, "Calibrate");
        calibrate_button->down_box(FL_DOWN_BOX);
        calibrate_button->labelsize(11);
        calibrate_button->callback((Fl_Callback*)cal_calibrate_cb);
        o->user_data((void *)this);
      } // Fl_Button* calibrate_button
      { Fl_Button* o = save_params_button = new Fl_Button(610, 305, 65, 25, "Save params");
        save_params_button->down_box(FL_DOWN_BOX);
        save_params_button->labelsize(11);
        save_params_button->callback((Fl_Callback*)cal_save_params_cb);
        o->user_data((void *)this);
      } // Fl_Button* save_params_button
      { Fl_Button* o = done_button = new Fl_Button(525, 335, 60, 25, "Done");
        done_button->down_box(FL_DOWN_BOX);
        done_button->labelsize(11);
        done_button->callback((Fl_Callback*)cal_ok_cb);
        o->user_data((void *)this);
      } // Fl_Button* done_button
      { Fl_Button* o = epi_button = new Fl_Button(610, 335, 60, 25, "Epi check");
        epi_button->down_box(FL_DOWN_BOX);
        epi_button->labelsize(11);
        epi_button->callback((Fl_Callback*)cal_epipolar_cb);
        o->user_data((void *)this);
      } // Fl_Button* epi_button
      o->end();
    } // Fl_Group* o
    { Fl_Group* o = new Fl_Group(20, 340, 490, 60);
      { Fl_Box* o = new Fl_Box(20, 340, 290, 50);
        o->box(FL_ENGRAVED_FRAME);
      } // Fl_Box* o
      { fixed_aspect_button = new Fl_Check_Button(215, 340, 25, 25, "Fixed Aspect");
        fixed_aspect_button->down_box(FL_DOWN_BOX);
        fixed_aspect_button->value(1);
        fixed_aspect_button->labelsize(11);
        fixed_aspect_button->callback((Fl_Callback*)cal_fixed_aspect_cb);
      } // Fl_Check_Button* fixed_aspect_button
      { fixed_kappa2_button = new Fl_Check_Button(30, 345, 25, 25, "Kappa2");
        fixed_kappa2_button->down_box(FL_DOWN_BOX);
        fixed_kappa2_button->value(1);
        fixed_kappa2_button->labelsize(11);
        fixed_kappa2_button->callback((Fl_Callback*)cal_fixed_kappa2_cb);
      } // Fl_Check_Button* fixed_kappa2_button
      { fixed_kappa3_button = new Fl_Check_Button(85, 345, 25, 25, "Kappa3");
        fixed_kappa3_button->down_box(FL_DOWN_BOX);
        fixed_kappa3_button->labelsize(11);
        fixed_kappa3_button->callback((Fl_Callback*)cal_fixed_kappa3_cb);
      } // Fl_Check_Button* fixed_kappa3_button
      { fixed_tau_button = new Fl_Check_Button(140, 345, 25, 25, "Tau1, Tau2");
        fixed_tau_button->down_box(FL_DOWN_BOX);
        fixed_tau_button->labelsize(11);
        fixed_tau_button->callback((Fl_Callback*)cal_fixed_tau_cb);
      } // Fl_Check_Button* fixed_tau_button
      { zero_disparity_button = new Fl_Check_Button(215, 355, 25, 25, "Zero disparity");
        zero_disparity_button->down_box(FL_DOWN_BOX);
        zero_disparity_button->value(1);
        zero_disparity_button->labelsize(11);
        zero_disparity_button->callback((Fl_Callback*)cal_zero_disparity_cb);
      } // Fl_Check_Button* zero_disparity_button
      o->end();
    } // Fl_Group* o
    { Fl_Group* o = new Fl_Group(345, 340, 175, 270);
      { Fl_Box* o = new Fl_Box(345, 340, 150, 50, "label");
        o->box(FL_ENGRAVED_FRAME);
        o->labeltype(FL_NO_LABEL);
      } // Fl_Box* o
      { user_check_size = new Fl_Value_Input(360, 360, 30, 20, "Size mm");
        user_check_size->labelsize(11);
        user_check_size->maximum(1000);
        user_check_size->step(1);
        user_check_size->value(100);
        user_check_size->textsize(11);
        user_check_size->callback((Fl_Callback*)cal_check_size_cb);
        user_check_size->align(FL_ALIGN_TOP);
      } // Fl_Value_Input* user_check_size
      { user_check_x = new Fl_Value_Input(405, 360, 30, 20, "Ints X");
        user_check_x->labelsize(11);
        user_check_x->maximum(100);
        user_check_x->step(1);
        user_check_x->value(8);
        user_check_x->textsize(11);
        user_check_x->callback((Fl_Callback*)cal_check_x_cb);
        user_check_x->align(FL_ALIGN_TOP);
      } // Fl_Value_Input* user_check_x
      { user_check_y = new Fl_Value_Input(445, 360, 30, 20, "Ints Y");
        user_check_y->labelsize(11);
        user_check_y->maximum(100);
        user_check_y->step(1);
        user_check_y->value(6);
        user_check_y->textsize(11);
        user_check_y->callback((Fl_Callback*)cal_check_y_cb);
        user_check_y->align(FL_ALIGN_TOP);
      } // Fl_Value_Input* user_check_y
      o->end();
    } // Fl_Group* o
    stereo_calibration->end();
  } // Fl_Window* stereo_calibration
}
Пример #29
0
InputWindow::InputWindow(int w, int h, const char *label, 
	const char *defaultName, InputWindowType type, int folderIndex) : 
	Fl_Window(MAX(w, 445), h, label), cbUseDefaultNames(NULL), ctFileChooser(NULL), 
	userWindowStatus(OK), fileSelectionIndex(-1)
{	
    string = (char*)malloc(sizeof(char)*90);
    color(GUI_WINDOW_BGCOLOR);
    set_modal();
    windowType = type;
    inputText = (char *) malloc(MAX_BUFFER_SIZE * sizeof(char));

    if(type == InputWindow::FILE_INPUT) {
    	    strncpy(inputText, defaultName, MAX_BUFFER_SIZE - 1);
	    inputText[MAX_BUFFER_SIZE - 1] = '\0';
	    char *extPtr = strrchr(inputText, '.');
	    if(extPtr != NULL) {
	         *extPtr = '\0';
	    }
	    char *filenameStartPtr = strrchr(inputText, '/');
	    int fnameStartPos;
	    if(filenameStartPtr != NULL) {
	         fnameStartPos = filenameStartPtr - inputText;
	    }
	    else {
		 fnameStartPos = 0;
	    }
	    char saveDirInfo[MAX_BUFFER_SIZE];
	    snprintf(saveDirInfo, fnameStartPos + 1, "%s", inputText);
	    sprintf(string, "Export to Directory: %s", saveDirInfo);
	    input = new Fl_Input(25, 50, 235, 30);
	    input->when(FL_WHEN_ENTER_KEY);
	    input->value(filenameStartPtr + 1);
	    Fl_Box *box = new Fl_Box(110, 20, 100, 30, (const char*)string);
	    box->box(FL_NO_BOX);
	    box->align(FL_ALIGN_CENTER);
	    Fl_Box *fileExtBox = new Fl_Box(260,50,30,30,".csv");
	    Fl_Button *button = new Fl_Button(305, 50, 110, 30, "Export to CSV @->");
	    button->callback(InputCallback, (void*)0);
	    button->set_active();
	    input->callback(InputCallback, (void*)0);
	    callback(CloseCallback);
    }
    else if(type == InputWindow::FOLDER_INPUT) {    
	    std::string actualStructName = 
		        ExtractStructureNameFromCTName(defaultName);
            const char *actualStructNameCStr = actualStructName.c_str();
            strncpy(inputText, actualStructNameCStr, actualStructName.size() + 1);
            ConfigParser::nullTerminateString(inputText, actualStructName.size());

	    sprintf(string, "Creating new folder for the CT structure %s", defaultName);
	    input = new Fl_Input(160, 50, 250, 30, "@fileopen  New Folder Name:");
	    input->when(FL_WHEN_ENTER_KEY);
            input->maximum_size(60);
	    input->value(inputText);
	    input->color(GUI_BGCOLOR);
	    input->textcolor(GUI_BTEXT_COLOR);
	    Fl_Box *box = new Fl_Box(50, 1, 350, 40, (const char*) string);
	    box->box(FL_OSHADOW_BOX);
	    box->align(FL_ALIGN_CENTER | FL_ALIGN_INSIDE | FL_ALIGN_WRAP);
	    box->color(GUI_BGCOLOR);
	    box->labelcolor(GUI_BTEXT_COLOR);
	    Fl_Button *button = new Fl_Button(340, 50, 100, 30, "Add Folder @|>");
	    button->callback(InputCallback, (void*)0);
	    button->labelcolor(GUI_BTEXT_COLOR);
	    button->set_active();
	    input->callback(InputCallback, (void*)0);
	    input->labelcolor(GUI_TEXT_COLOR);
	    const char *cbText = " Use only default names for structure folders";
	    cbUseDefaultNames = new Fl_Check_Button(30, 100, 375, 30, cbText);
	    cbUseDefaultNames->box(FL_ROUND_UP_BOX);
	    cbUseDefaultNames->color(GUI_BGCOLOR);
	    cbUseDefaultNames->labelcolor(GUI_BTEXT_COLOR);
	    cbUseDefaultNames->down_color(GUI_WINDOW_BGCOLOR);
	    cbUseDefaultNames->align(FL_ALIGN_LEFT | FL_ALIGN_INSIDE | FL_ALIGN_CENTER);
	    callback(CloseCallback);
	}
        else { 
	    
	    const char *windowDisplayMsg = "Which CT file structure for the organism\ndo you want to display?";
	    Fl_Box *box = new Fl_Box(75, 5, 300, 40, windowDisplayMsg);
	    box->box(FL_RSHADOW_BOX);
	    box->align(FL_ALIGN_CENTER | FL_ALIGN_INSIDE | FL_ALIGN_WRAP);
	    box->color(GUI_BGCOLOR);
	    box->labelcolor(GUI_BTEXT_COLOR);
	    Fl_Button *displayButton = new Fl_Button(100, 100, 200, 30, "Display Zoomed Region @|>");
	    displayButton->callback(DisplayCTFileCallback, (void*)0);
	    displayButton->color(GUI_BGCOLOR);
	    displayButton->labelcolor(GUI_BTEXT_COLOR);
	    displayButton->set_active();
	    //displayButton->shortcut(FL_Enter);
	    Fl_Button *cancelButton = new Fl_Button(310, 100, 75, 30, "Cancel @1+");
            cancelButton->callback(CancelCallback); 
	    cancelButton->color(GUI_BGCOLOR);
	    cancelButton->labelcolor(GUI_BTEXT_COLOR);
            
	    ctFileChooser = new Fl_Choice(175, 55, 215, 30, "Choose CT Structure: ");
            ctFileChooser->color(GUI_BGCOLOR);
	    ctFileChooser->labelcolor(GUI_BTEXT_COLOR);

	    StructureManager *structManager = RNAStructViz::GetInstance()->GetStructureManager();
	    Folder *curFolder = structManager->GetFolderAt(folderIndex);
	    for(int s = 0; s < curFolder->structCount; s++) { 
                 RNAStructure *rnaStruct = structManager->GetStructure(curFolder->folderStructs[s]);
		 const char *ctFileName = rnaStruct->GetFilename();
		 ctFileChooser->add(ctFileName);
	    }
	    ctFileChooser->value(0);
	
	}
        show();
        if(type != InputWindow::FOLDER_INPUT || !GUI_USE_DEFAULT_FOLDER_NAMES) { 
            show();
	}
	else {
	    show();
	    InputCallback((Fl_Widget *) cbUseDefaultNames, (void *) NULL);
	}
}