void create_form_ClipPanel(void) { FL_OBJECT *obj; if (ClipPanel) return; ClipPanel = fl_bgn_form(FL_NO_BOX,200,320); obj = fl_add_box(FL_UP_BOX,0,0,200,320,""); fl_set_object_lsize(obj,FL_NORMAL_SIZE); SliceButton = obj = fl_add_button(FL_NORMAL_BUTTON,70,220,50,30,"Slice!"); fl_set_object_lcolor(obj,FL_RED); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_set_object_lstyle(obj,FL_BOLD_STYLE); obj = fl_add_text(FL_NORMAL_TEXT,20,195,140,20,"ax + by + cz = d"); fl_set_object_boxtype(obj,FL_NO_BOX); fl_set_object_color(obj,FL_COL1,FL_COL1); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE); ExitButton = obj = fl_add_button(FL_NORMAL_BUTTON,145,5,50,30,"Exit"); fl_set_object_lsize(obj,FL_NORMAL_SIZE); InfoButton = obj = fl_add_button(FL_NORMAL_BUTTON,10,220,50,30,"Info"); fl_set_object_lsize(obj,FL_NORMAL_SIZE); obj = fl_add_text(FL_NORMAL_TEXT,50,10,90,30,"Ginsu!"); fl_set_object_boxtype(obj,FL_NO_BOX); fl_set_object_color(obj,FL_COL1,FL_COL1); fl_set_object_lcolor(obj,FL_BLUE); fl_set_object_lsize(obj,FL_LARGE_SIZE); fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE); fl_set_object_lstyle(obj,FL_BOLD_STYLE+FL_ENGRAVED_STYLE); TargInput = obj = fl_add_input(FL_NORMAL_INPUT,10,260,175,30,"TARGET CLIP OBJECT"); fl_set_object_color(obj,FL_INDIANRED,FL_PALEGREEN); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_set_object_lalign(obj,FL_ALIGN_BOTTOM); fl_set_object_lstyle(obj,FL_BOLD_STYLE); Ainput = obj = fl_add_input(FL_NORMAL_INPUT,10,40,165,30,"a"); fl_set_object_color(obj,FL_BOTTOM_BCOL,FL_MAGENTA); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_set_object_lalign(obj,FL_ALIGN_RIGHT); Binput = obj = fl_add_input(FL_NORMAL_INPUT,10,80,165,30,"b"); fl_set_object_color(obj,FL_BOTTOM_BCOL,FL_MAGENTA); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_set_object_lalign(obj,FL_ALIGN_RIGHT); Cinput = obj = fl_add_input(FL_NORMAL_INPUT,10,120,165,30,"c"); fl_set_object_color(obj,FL_BOTTOM_BCOL,FL_MAGENTA); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_set_object_lalign(obj,FL_ALIGN_RIGHT); Dinput = obj = fl_add_input(FL_NORMAL_INPUT,10,160,165,30,"d"); fl_set_object_color(obj,FL_BOTTOM_BCOL,FL_MAGENTA); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_set_object_lalign(obj,FL_ALIGN_RIGHT); EditButton = obj = fl_add_button(FL_PUSH_BUTTON,130,220,50,30,"Edit"); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_end_form(); }
static FD_input * create_input( const char * str1, const char * defstr ) { FD_input *fdui = fl_calloc( 1, sizeof *fdui ); int oldy = fli_inverted_y; int oldu = fl_get_coordunit( ); fli_inverted_y = 0; fl_set_coordunit( FL_COORD_PIXEL ); fdui->form = fl_bgn_form( FL_FLAT_BOX, 460, 130 ); fdui->input = fl_add_input( FL_NORMAL_INPUT, 30, 50, 400, 30, str1 ); fl_set_input( fdui->input, defstr ); fdui->but = fl_add_button( FL_RETURN_BUTTON, 185, 94, 90, 27, "OK" ); fli_parse_goodies_label( fdui->but, FLOKLabel ); fl_set_form_hotobject( fdui->form, fdui->but ); fl_end_form( ); fli_handle_goodie_font( fdui->but, fdui->input ); fl_register_raw_callback( fdui->form, FL_ALL_EVENT, fli_goodies_preemptive ); fl_set_form_atclose( fdui->form, fl_goodies_atclose, fdui->but ); fli_inverted_y = oldy; fl_set_coordunit( oldu ); return fdui; }
FD_config_dialog * create_form_config_dialog( void ) { FL_OBJECT *obj; FD_config_dialog *fdui = fl_malloc( sizeof *fdui ); fdui->vdata = fdui->cdata = NULL; fdui->ldata = 0; fdui->config_dialog = fl_bgn_form( FL_NO_BOX, 410, 120 ); obj = fl_add_box( FL_UP_BOX, 0, 0, 410, 120, "" ); fdui->cancel_btn = obj = fl_add_button( FL_NORMAL_BUTTON, 80, 75, 100, 30, "Cancel" ); fl_set_object_lalign( obj, FL_ALIGN_CENTER ); fl_set_object_callback( obj, get_dir_callback, -1 ); fdui->ok_btn = obj = fl_add_button( FL_RETURN_BUTTON, 225, 75, 100, 30, "OK" ); fl_set_object_lalign( obj, FL_ALIGN_CENTER ); fl_set_object_callback( obj, get_dir_callback, 0 ); fdui->dir_input = obj = fl_add_input( FL_NORMAL_INPUT, 80, 30, 300, 30, "Directory" ); fl_set_object_return( obj, FL_RETURN_END_CHANGED ); fl_end_form( ); fdui->config_dialog->fdui = fdui; return fdui; }
FD_dialattrib * create_form_dialattrib( void ) { FL_OBJECT *obj; FD_dialattrib *fdui = ( FD_dialattrib * ) fl_malloc( sizeof *fdui ); int old_bw = fl_get_border_width( ); fl_set_border_width( -1 ); fdui->vdata = fdui->cdata = NULL; fdui->ldata = 0; fdui->dialattrib = fl_bgn_form( FL_NO_BOX, 540, 280 ); fdui->background = obj = fl_add_box( FL_FLAT_BOX, 0, 0, 540, 280, "" ); fdui->returnsetting = obj = fl_add_menu( FL_PULLDOWN_MENU, 305, 90, 138, 24, "Return Setting" ); fl_set_object_boxtype( obj, FL_UP_BOX ); fl_set_object_callback( obj, dial_returnsetting_change, 0 ); fdui->minval = obj = fl_add_input( FL_FLOAT_INPUT, 195, 45, 92, 24, "Dial Min" ); fl_set_object_lsize( obj, FL_NORMAL_SIZE ); fl_set_object_callback( obj, dial_minmax_change, 0 ); fdui->maxval = obj = fl_add_input( FL_FLOAT_INPUT, 195, 77, 92, 24, "DialMax" ); fl_set_object_lsize( obj, FL_NORMAL_SIZE ); fl_set_object_callback( obj, dial_minmax_change, 0 ); fdui->initialval = obj = fl_add_input( FL_FLOAT_INPUT, 195, 109, 92, 24, "Initial Value" ); fl_set_object_lsize( obj, FL_NORMAL_SIZE ); fl_set_object_callback( obj, dial_initialvalue_change, 0 ); fdui->step = obj = fl_add_input( FL_FLOAT_INPUT, 195, 141, 92, 24, "Dial Step" ); fl_set_object_lsize( obj, FL_NORMAL_SIZE ); fl_set_object_callback( obj, dial_stepchange_cb, 0 ); fdui->thetai = obj = fl_add_input( FL_FLOAT_INPUT, 195, 173, 92, 24, "Min. Angle" ); fl_set_object_lsize( obj, FL_NORMAL_SIZE ); fl_set_object_callback( obj, dial_thetachange_cb, 0 ); fdui->thetaf = obj = fl_add_input( FL_FLOAT_INPUT, 195, 205, 92, 24, "Max. Angle" ); fl_set_object_lsize( obj, FL_NORMAL_SIZE ); fl_set_object_callback( obj, dial_thetachange_cb, 1 ); fdui->dir = obj = fl_add_choice( FL_NORMAL_CHOICE2, 306, 155, 134, 25, "Direction" ); fl_set_object_lalign( obj, FL_ALIGN_TOP ); fl_set_object_callback( obj, dir_cb, 0 ); obj = fl_add_labelframe( FL_ENGRAVED_FRAME, 30, 15, 480, 240, "Dial Attributes" ); fl_set_object_lcolor( obj, FL_DARKVIOLET ); fl_set_object_lsize( obj, FL_MEDIUM_SIZE ); fl_set_object_lstyle( obj, FL_TIMESBOLD_STYLE + FL_EMBOSSED_STYLE ); fl_end_form( ); fdui->dialattrib->fdui = fdui; fl_set_border_width( old_bw ); return fdui; }
FD_config_dialog *create_form_config_dialog(void) { FL_OBJECT *obj; FD_config_dialog *fdui = (FD_config_dialog *) fl_calloc(1, sizeof(*fdui)); fdui->config_dialog = fl_bgn_form(FL_NO_BOX, 410, 120); obj = fl_add_box(FL_UP_BOX,0,0,410,120,""); fdui->cancel_btn = obj = fl_add_button(FL_NORMAL_BUTTON,80,75,100,30,"Cancel"); fl_set_object_callback(obj,get_dir_callback,-1); fdui->ok_btn = obj = fl_add_button(FL_RETURN_BUTTON,225,75,100,30,"OK"); fl_set_object_callback(obj,get_dir_callback,0); fdui->dir_input = obj = fl_add_input(FL_NORMAL_INPUT,80,30,300,30,"Directory"); fl_end_form(); fdui->config_dialog->fdui = fdui; return fdui; }
FD_xyplotattrib * create_form_xyplotattrib( void ) { FL_OBJECT *obj; FD_xyplotattrib *fdui = ( FD_xyplotattrib * ) fl_malloc( sizeof *fdui ); int old_bw = fl_get_border_width( ); fl_set_border_width( -1 ); fdui->vdata = fdui->cdata = NULL; fdui->ldata = 0; fdui->xyplotattrib = fl_bgn_form( FL_NO_BOX, 520, 270 ); obj = fl_add_box( FL_FLAT_BOX, 0, 0, 520, 270, "" ); obj = fl_add_labelframe( FL_ENGRAVED_FRAME, 10, 20, 500, 240, "XYPlot Attributes" ); fl_set_object_lsize( obj, FL_NORMAL_SIZE ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); fdui->xgrid = obj = fl_add_choice( FL_NORMAL_CHOICE2, 70, 60, 85, 23, "XGrid" ); fl_set_object_callback( obj, grid_change_cb, 0 ); fdui->ygrid = obj = fl_add_choice( FL_NORMAL_CHOICE2, 70, 90, 85, 23, "YGrid" ); fl_set_object_callback( obj, grid_change_cb, 0 ); fdui->xscale = obj = fl_add_choice( FL_NORMAL_CHOICE2, 70, 170, 85, 23, "XScale" ); fl_set_object_callback( obj, xscale_change_cb, 0 ); fdui->yscale = obj = fl_add_choice( FL_NORMAL_CHOICE2, 70, 210, 85, 23, "YScale" ); fl_set_object_callback( obj, yscale_change_cb, 0 ); fdui->ymajor = obj = fl_add_counter( FL_NORMAL_COUNTER, 370, 160, 115, 20, "YMajor" ); fl_set_object_callback( obj, ymajorminor_change_cb, 0 ); fl_set_counter_precision( obj, 0 ); fl_set_counter_bounds( obj, -1, 20 ); fl_set_counter_value( obj, 1 ); fl_set_counter_step( obj, 1, 2 ); fdui->yminor = obj = fl_add_counter( FL_NORMAL_COUNTER, 370, 200, 115, 20, "YMinor" ); fl_set_object_callback( obj, ymajorminor_change_cb, 0 ); fl_set_counter_precision( obj, 0 ); fl_set_counter_bounds( obj, 0, 10 ); fl_set_counter_value( obj, 1 ); fl_set_counter_step( obj, 1, 2 ); fdui->xmajor = obj = fl_add_counter( FL_NORMAL_COUNTER, 370, 70, 115, 20, "XMajor" ); fl_set_object_callback( obj, xmajorminor_change_cb, 0 ); fl_set_counter_precision( obj, 0 ); fl_set_counter_bounds( obj, -1, 20 ); fl_set_counter_value( obj, 1 ); fl_set_counter_step( obj, 1, 2 ); fdui->xminor = obj = fl_add_counter( FL_NORMAL_COUNTER, 370, 110, 115, 20, "XMinor" ); fl_set_object_callback( obj, xmajorminor_change_cb, 0 ); fl_set_counter_precision( obj, 0 ); fl_set_counter_bounds( obj, 0, 10 ); fl_set_counter_value( obj, 1 ); fl_set_counter_step( obj, 1, 2 ); fdui->xbase = obj = fl_add_input( FL_FLOAT_INPUT, 160, 170, 39, 23, "xbase" ); fl_set_object_lalign( obj, FL_ALIGN_RIGHT ); fl_set_object_callback( obj, xscale_change_cb, 0 ); fdui->ybase = obj = fl_add_input( FL_FLOAT_INPUT, 158, 210, 39, 23, "ybase" ); fl_set_object_lalign( obj, FL_ALIGN_RIGHT ); fl_set_object_callback( obj, yscale_change_cb, 0 ); fdui->how_return = obj = fl_add_menu( FL_PULLDOWN_MENU, 193, 29, 150, 22, "Return Setting" ); fl_set_object_boxtype( obj, FL_UP_BOX ); fl_set_object_callback( obj, xyplot_returnsetting_change, 0 ); fdui->gridstyle = obj = fl_add_choice( FL_NORMAL_CHOICE2, 70, 120, 85, 23, "Style" ); fl_set_object_callback( obj, gridstyle_change_cb, 0 ); fdui->mark_active = obj = fl_add_checkbutton( FL_PUSH_BUTTON, 230, 80, 100, 25, "MarkActive" ); fl_set_object_callback( obj, markactive_change_cb, 0 ); fl_end_form( ); fdui->xyplotattrib->fdui = fdui; fl_set_border_width( old_bw ); return fdui; }
void create_form_MainForm(void) { FL_OBJECT *obj; if (MainForm) return; MainForm = fl_bgn_form(FL_NO_BOX,360,370); obj = fl_add_box(FL_UP_BOX,0,0,360,370,""); fl_set_object_lsize(obj,FL_NORMAL_SIZE); obj = fl_add_button(FL_RETURN_BUTTON,20,310,160,40,"Make Sweep"); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_set_object_lstyle(obj,FL_BOLD_STYLE); fl_set_object_callback(obj,GoButtonProc,0); obj = fl_add_button(FL_NORMAL_BUTTON,180,310,160,40,"Quit"); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_set_object_lstyle(obj,FL_BOLD_STYLE); fl_set_object_callback(obj,QuitButtonProc,0); TransGroup = fl_bgn_group(); obj = fl_add_box(FL_ROUNDED_BOX,20,70,320,230,""); fl_set_object_lsize(obj,FL_NORMAL_SIZE); obj = fl_add_text(FL_NORMAL_TEXT,20,100,130,30,"Length of sweep:"); fl_set_object_boxtype(obj,FL_NO_BOX); fl_set_object_color(obj,FL_COL1,FL_COL1); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fl_set_object_lstyle(obj,FL_BOLD_STYLE); obj = fl_add_text(FL_NORMAL_TEXT,20,200,160,30,"Direction of sweep:"); fl_set_object_boxtype(obj,FL_NO_BOX); fl_set_object_color(obj,FL_COL1,FL_COL1); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fl_set_object_lstyle(obj,FL_BOLD_STYLE); Translength = obj = fl_add_input(FL_NORMAL_INPUT,120,130,50,30,"Units"); fl_set_object_color(obj,FL_LEFT_BCOL,FL_LEFT_BCOL); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_set_object_lalign(obj,FL_ALIGN_RIGHT); Transxdir = obj = fl_add_input(FL_NORMAL_INPUT,120,230,50,30,"x:"); fl_set_object_color(obj,FL_LEFT_BCOL,FL_LEFT_BCOL); fl_set_object_lsize(obj,FL_NORMAL_SIZE); Transydir = obj = fl_add_input(FL_NORMAL_INPUT,200,230,50,30,"y:"); fl_set_object_color(obj,FL_LEFT_BCOL,FL_LEFT_BCOL); fl_set_object_lsize(obj,FL_NORMAL_SIZE); Transzdir = obj = fl_add_input(FL_NORMAL_INPUT,280,230,50,30,"z:"); fl_set_object_color(obj,FL_LEFT_BCOL,FL_LEFT_BCOL); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_end_group(); TypeGroup = fl_bgn_group(); RotSweep = obj = fl_add_button(FL_RADIO_BUTTON,180,20,160,40,"Rotational Sweep"); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_set_object_lstyle(obj,FL_BOLD_STYLE); fl_set_object_callback(obj,RotSweepProc,0); TransSweep = obj = fl_add_button(FL_RADIO_BUTTON,20,20,160,40,"Translational Sweep"); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_set_object_lstyle(obj,FL_BOLD_STYLE); fl_set_object_callback(obj,TransSweepProc,0); fl_end_group(); RotGroup = fl_bgn_group(); obj = fl_add_box(FL_ROUNDED_BOX,20,70,320,230,""); fl_set_object_lsize(obj,FL_NORMAL_SIZE); obj = fl_add_text(FL_NORMAL_TEXT,20,80,90,30,"Arc length:"); fl_set_object_boxtype(obj,FL_NO_BOX); fl_set_object_color(obj,FL_COL1,FL_COL1); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fl_set_object_lstyle(obj,FL_BOLD_STYLE); Rotlength = obj = fl_add_input(FL_NORMAL_INPUT,120,80,50,30,""); fl_set_object_color(obj,FL_LEFT_BCOL,FL_LEFT_BCOL); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_set_object_lalign(obj,FL_ALIGN_RIGHT); DegButton = obj = fl_add_button(FL_RADIO_BUTTON,190,80,70,30,"Degrees"); fl_set_object_lsize(obj,FL_NORMAL_SIZE); RadButton = obj = fl_add_button(FL_RADIO_BUTTON,260,80,70,30,"Radians"); fl_set_object_lsize(obj,FL_NORMAL_SIZE); obj = fl_add_text(FL_NORMAL_TEXT,20,120,90,30,"End of axis:"); fl_set_object_boxtype(obj,FL_NO_BOX); fl_set_object_color(obj,FL_COL1,FL_COL1); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fl_set_object_lstyle(obj,FL_BOLD_STYLE); Rotendz = obj = fl_add_input(FL_NORMAL_INPUT,280,140,50,30,"z:"); fl_set_object_color(obj,FL_LEFT_BCOL,FL_LEFT_BCOL); fl_set_object_lsize(obj,FL_NORMAL_SIZE); Rotendy = obj = fl_add_input(FL_NORMAL_INPUT,200,140,50,30,"y:"); fl_set_object_color(obj,FL_LEFT_BCOL,FL_LEFT_BCOL); fl_set_object_lsize(obj,FL_NORMAL_SIZE); Rotendx = obj = fl_add_input(FL_NORMAL_INPUT,120,140,50,30,"x:"); fl_set_object_color(obj,FL_LEFT_BCOL,FL_LEFT_BCOL); fl_set_object_lsize(obj,FL_NORMAL_SIZE); obj = fl_add_text(FL_NORMAL_TEXT,20,180,130,30,"Direction of axis:"); fl_set_object_boxtype(obj,FL_NO_BOX); fl_set_object_color(obj,FL_COL1,FL_COL1); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fl_set_object_lstyle(obj,FL_BOLD_STYLE); Rotdirz = obj = fl_add_input(FL_NORMAL_INPUT,280,210,50,30,"z:"); fl_set_object_color(obj,FL_LEFT_BCOL,FL_LEFT_BCOL); fl_set_object_lsize(obj,FL_NORMAL_SIZE); Rotdiry = obj = fl_add_input(FL_NORMAL_INPUT,200,210,50,30,"y:"); fl_set_object_color(obj,FL_LEFT_BCOL,FL_LEFT_BCOL); fl_set_object_lsize(obj,FL_NORMAL_SIZE); Rotdirx = obj = fl_add_input(FL_NORMAL_INPUT,120,210,50,30,"x:"); fl_set_object_color(obj,FL_LEFT_BCOL,FL_LEFT_BCOL); fl_set_object_lsize(obj,FL_NORMAL_SIZE); obj = fl_add_text(FL_NORMAL_TEXT,20,260,90,30,"Divisions:"); fl_set_object_boxtype(obj,FL_NO_BOX); fl_set_object_color(obj,FL_COL1,FL_COL1); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fl_set_object_lstyle(obj,FL_BOLD_STYLE); Rotdivisions = obj = fl_add_input(FL_NORMAL_INPUT,120,260,50,30,""); fl_set_object_color(obj,FL_LEFT_BCOL,FL_LEFT_BCOL); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_set_object_lalign(obj,FL_ALIGN_RIGHT); fl_end_group(); fl_end_form(); }
FD_options *create_form_options(void) { FL_OBJECT *obj; FD_options *fdui = (FD_options *) fl_calloc(1, sizeof(*fdui)); fdui->options = fl_bgn_form(FL_NO_BOX, 470, 530); obj = fl_add_box(FL_UP_BOX,0,0,470,530,"Options"); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_set_object_lalign(obj,FL_ALIGN_TOP|FL_ALIGN_INSIDE); fl_set_object_lstyle(obj,FL_BOLD_STYLE); obj = fl_add_frame(FL_EMBOSSED_FRAME,20,370,210,130,""); obj = fl_add_frame(FL_EMBOSSED_FRAME,240,370,220,110,""); obj = fl_add_frame(FL_EMBOSSED_FRAME,20,190,440,170,""); fdui->prob_mutation = obj = fl_add_valslider(FL_HOR_BROWSER_SLIDER,35,250,200,20,"Probabiliy of Mutation:"); fl_set_object_lsize(obj,FL_DEFAULT_SIZE); fl_set_object_lalign(obj,FL_ALIGN_TOP); fl_set_slider_precision(obj, 3); fl_set_slider_value(obj, 0.008); fl_set_slider_size(obj, 0.10); fl_set_slider_step(obj, 0.001); fl_set_slider_increment(obj, 0.001, 0.001); fdui->prob_crossover = obj = fl_add_valslider(FL_HOR_BROWSER_SLIDER,250,250,200,20,"Probabiliy of Crossover:"); fl_set_object_lsize(obj,FL_DEFAULT_SIZE); fl_set_object_lalign(obj,FL_ALIGN_TOP); fl_set_slider_precision(obj, 3); fl_set_slider_value(obj, 0.002); fl_set_slider_size(obj, 0.10); fl_set_slider_step(obj, 0.001); fl_set_slider_increment(obj, 0.001, 0.001); fdui->max_pop = obj = fl_add_valslider(FL_HOR_BROWSER_SLIDER,250,210,200,20,"Maximum Population:"); fl_set_object_lsize(obj,FL_DEFAULT_SIZE); fl_set_object_lalign(obj,FL_ALIGN_TOP); fl_set_slider_precision(obj, 0); fl_set_slider_bounds(obj, 0, 10000); fl_set_slider_value(obj, 2000); fl_set_slider_size(obj, 0.10); fl_set_slider_step(obj, 1); fl_set_slider_increment(obj, 10, 10); fdui->maintain_min_pop = obj = fl_add_checkbutton(FL_PUSH_BUTTON,260,380,20,20,"Maintain a Minimum Population?"); fdui->age_factor = obj = fl_add_valslider(FL_HOR_BROWSER_SLIDER,35,290,200,20,"Age Factor:"); fl_set_object_lsize(obj,FL_DEFAULT_SIZE); fl_set_object_lalign(obj,FL_ALIGN_TOP); fl_set_slider_precision(obj, 0); fl_set_slider_bounds(obj, 0, 15); fl_set_slider_value(obj, 9); fl_set_slider_size(obj, 0.10); fl_set_slider_step(obj, 1); fl_set_slider_increment(obj, 1, 1); fdui->carcass_decay_rate = obj = fl_add_valslider(FL_HOR_BROWSER_SLIDER,250,290,200,20,"Carcass Decay Rate:"); fl_set_object_lsize(obj,FL_DEFAULT_SIZE); fl_set_object_lalign(obj,FL_ALIGN_TOP); fl_set_slider_precision(obj, 0); fl_set_slider_bounds(obj, 0, 100000); fl_set_slider_value(obj, 10000); fl_set_slider_size(obj, 0.10); fl_set_slider_step(obj, 100); fl_set_slider_increment(obj, 100, 100); fdui->save_sim = obj = fl_add_checkbutton(FL_PUSH_BUTTON,45,380,20,20,"Save Simulation Every N Steps?"); fdui->save_every = obj = fl_add_valslider(FL_HOR_BROWSER_SLIDER,40,420,170,20,"Save Every N Steps:"); fl_set_object_lsize(obj,FL_DEFAULT_SIZE); fl_set_object_lalign(obj,FL_ALIGN_TOP); fl_set_slider_precision(obj, 0); fl_set_slider_bounds(obj, 0, 100000); fl_set_slider_value(obj, 50000); fl_set_slider_size(obj, 0.12); fl_set_slider_step(obj, 100); fl_set_slider_increment(obj, 100, 100); fdui->file_name = obj = fl_add_input(FL_NORMAL_INPUT,40,465,170,20,"Default File Name:"); fl_set_object_lalign(obj,FL_ALIGN_TOP); fdui->ok = obj = fl_add_button(FL_RETURN_BUTTON,360,490,80,30,"OK"); fdui->initial_params_frame = obj = fl_add_frame(FL_ENGRAVED_FRAME,20,20,440,160,"Initial Parameters"); fl_set_object_lalign(obj,FL_ALIGN_TOP); fl_set_object_lstyle(obj,FL_BOLD_STYLE); fdui->scale = obj = fl_add_valslider(FL_HOR_BROWSER_SLIDER,35,210,200,20,"Display Scale Factor:"); fl_set_object_lsize(obj,FL_DEFAULT_SIZE); fl_set_object_lalign(obj,FL_ALIGN_TOP); fl_set_slider_precision(obj, 0); fl_set_slider_bounds(obj, 1, 32); fl_set_slider_value(obj, 5); fl_set_slider_size(obj, 0.10); fl_set_slider_step(obj, 1); fl_set_slider_increment(obj, 1, 1); fdui->min_pop = obj = fl_add_valslider(FL_HOR_BROWSER_SLIDER,265,420,170,20,"Minimum Population:"); fl_set_object_lsize(obj,FL_DEFAULT_SIZE); fl_set_object_lalign(obj,FL_ALIGN_TOP); fl_set_slider_precision(obj, 0); fl_set_slider_bounds(obj, 0, 100); fl_set_slider_value(obj, 5); fl_set_slider_size(obj, 0.12); fl_set_slider_step(obj, 1); fl_set_slider_increment(obj, 1, 1); fdui->use_survivor = obj = fl_add_checkbutton(FL_PUSH_BUTTON,280,450,20,20,"Use Survivor for Minimum?"); fdui->initial_parameters_group = fl_bgn_group(); fdui->terrain_size = obj = fl_add_choice(FL_NORMAL_CHOICE2,340,135,100,30,"Terrain Size (cells):"); fl_set_choice_entries(obj, fdchoice_terrain_size_0); fl_set_choice(obj,4); fdui->initial_pop = obj = fl_add_valslider(FL_HOR_BROWSER_SLIDER,35,60,200,20,"Initial Population:"); fl_set_object_lsize(obj,FL_DEFAULT_SIZE); fl_set_object_lalign(obj,FL_ALIGN_TOP); fl_set_slider_precision(obj, 0); fl_set_slider_bounds(obj, 0, 2000); fl_set_slider_value(obj, 200); fl_set_slider_size(obj, 0.10); fl_set_slider_step(obj, 1); fl_set_slider_increment(obj, 10, 10); fdui->initial_plant = obj = fl_add_valslider(FL_HOR_BROWSER_SLIDER,35,100,200,20,"Number of Initial Plant Locations:"); fl_set_object_lsize(obj,FL_DEFAULT_SIZE); fl_set_object_lalign(obj,FL_ALIGN_TOP); fl_set_slider_precision(obj, 0); fl_set_slider_bounds(obj, 0, 10000); fl_set_slider_value(obj, 1000); fl_set_slider_size(obj, 0.10); fl_set_slider_step(obj, 100); fl_set_slider_increment(obj, 100, 100); fdui->initial_flesh = obj = fl_add_valslider(FL_HOR_BROWSER_SLIDER,250,100,200,20,"Number of Initial Flesh Locations:"); fl_set_object_lsize(obj,FL_DEFAULT_SIZE); fl_set_object_lalign(obj,FL_ALIGN_TOP); fl_set_slider_precision(obj, 0); fl_set_slider_bounds(obj, 0, 10000); fl_set_slider_value(obj, 1000); fl_set_slider_size(obj, 0.10); fl_set_slider_step(obj, 100); fl_set_slider_increment(obj, 100, 100); fdui->give_head_start = obj = fl_add_checkbutton(FL_PUSH_BUTTON,290,55,20,20,"Give A Head Start?"); fl_set_button(obj, 1); fdui->allow_asex = obj = fl_add_checkbutton(FL_PUSH_BUTTON,70,150,20,20,"Allow Asexual Reproduction?"); fl_set_button(obj, 1); fdui->allow_sex = obj = fl_add_checkbutton(FL_PUSH_BUTTON,70,130,20,20,"Allow Sexual Reproduction?"); fl_set_button(obj, 1); fl_end_group(); fdui->waste_decay_rate = obj = fl_add_valslider(FL_HOR_BROWSER_SLIDER,35,330,200,20,"Waste Decay Rate:"); fl_set_object_lsize(obj,FL_DEFAULT_SIZE); fl_set_object_lalign(obj,FL_ALIGN_TOP); fl_set_slider_precision(obj, 0); fl_set_slider_bounds(obj, 0, 10000); fl_set_slider_value(obj, 20); fl_set_slider_size(obj, 0.10); fl_set_slider_step(obj, 5); fl_set_slider_increment(obj, 10, 10); fdui->poison_decay_rate = obj = fl_add_valslider(FL_HOR_BROWSER_SLIDER,250,330,200,20,"Poison Decay Rate:"); fl_set_object_lsize(obj,FL_DEFAULT_SIZE); fl_set_object_lalign(obj,FL_ALIGN_TOP); fl_set_slider_precision(obj, 0); fl_set_slider_bounds(obj, 0, 10000); fl_set_slider_value(obj, 20); fl_set_slider_size(obj, 0.10); fl_set_slider_step(obj, 5); fl_set_slider_increment(obj, 10, 10); fl_end_form(); fdui->options->fdui = fdui; return fdui; }
FD_main_frm * create_form_main_frm( void ) { FL_OBJECT *obj; FD_main_frm *fdui = fl_malloc( sizeof *fdui ); fdui->vdata = fdui->cdata = NULL; fdui->ldata = 0; fdui->main_frm = fl_bgn_form( FL_NO_BOX, 1010, 710 ); obj = fl_add_box( FL_FLAT_BOX, 0, 0, 1010, 710, "Main form" ); fl_set_object_color( obj, FL_LIGHTER_COL1, FL_MCOL ); fl_set_object_lalign( obj, FL_ALIGN_TOP ); obj = fl_add_box( FL_ROUNDED_BOX, 10, 610, 230, 90, "" ); fl_set_object_color( obj, FL_DARKER_COL1, FL_COL1 ); fl_set_object_lalign( obj, FL_ALIGN_LEFT | FL_ALIGN_INSIDE ); obj = fl_add_box( FL_ROUNDED3D_DOWNBOX, 5, 5, 850, 600, "" ); fl_set_object_color( obj, FL_BLACK, FL_BLACK ); fdui->sync_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 635, 15, 40, 20, "sync" ); fl_set_object_boxtype( obj, FL_ROUNDED_BOX ); fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); fdui->rec_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 720, 15, 40, 20, "rec" ); fl_set_object_boxtype( obj, FL_ROUNDED_BOX ); fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); fdui->pwr1_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 20, 45, 300, 110, "Power" ); fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_TOP ); fdui->pwr2_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 330, 45, 300, 110, "Power" ); fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_TOP ); fdui->rx2_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 345, 10, 80, 40, "RX 2" ); fl_set_object_color( obj, FL_BLACK, FL_MCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lsize( obj, FL_HUGE_SIZE ); fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); fdui->noise1_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 20, 170, 300, 110, "N0/SNR" ); fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_TOP ); fdui->noise2_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 330, 170, 300, 110, "N0/SNR" ); fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_TOP ); fdui->ch11_sec0_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 10, 325, 140, 110, "CH 11" ); fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_TOP ); fdui->ch12_sec0_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 145, 325, 140, 110, "CH 12" ); fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_TOP ); fdui->ch21_sec0_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 10, 455, 140, 110, "CH 21" ); fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_TOP ); fdui->ch22_sec0_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 145, 455, 140, 110, "CH 22" ); fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_TOP ); fdui->ch11_sec1_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 290, 325, 140, 110, "CH 11" ); fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_TOP ); fdui->ch12_sec1_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 430, 325, 140, 110, "CH 12" ); fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_TOP ); fdui->ch21_sec1_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 290, 455, 140, 110, "CH 21" ); fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_TOP ); fdui->ch22_sec1_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 430, 455, 140, 110, "CH 22" ); fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_TOP ); fdui->error_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 680, 15, 40, 20, "error" ); fl_set_object_boxtype( obj, FL_ROUNDED_BOX ); fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); fdui->gps_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 640, 65, 60, 30, "gps" ); fl_set_object_boxtype( obj, FL_ROUNDED_BOX ); fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); fdui->date_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 655, 120, 170, 30, "date: " ); fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); fdui->gps_lat_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 700, 65, 150, 30, "lat: 0" ); fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); fdui->gps_lon_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 700, 95, 150, 30, "lon: 0" ); fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); fdui->idx_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 685, 150, 110, 20, "Idx: " ); fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); obj = fl_add_box( FL_ROUNDED_BOX, 485, 610, 140, 90, "" ); fl_set_object_color( obj, FL_DARKCYAN, FL_COL1 ); fl_set_object_lalign( obj, FL_ALIGN_LEFT | FL_ALIGN_INSIDE ); fdui->power_btn = obj = fl_add_button( FL_NORMAL_BUTTON, 130, 620, 100, 70, "PWR" ); fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); fl_set_object_lsize( obj, FL_MEDIUM_SIZE ); fl_set_object_lalign( obj, FL_ALIGN_CENTER ); fl_set_object_callback( obj, power_callback, 0 ); fdui->buffer_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 760, 15, 90, 20, "Buffer: 100%" ); fl_set_object_boxtype( obj, FL_ROUNDED_BOX ); fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lsize( obj, FL_TINY_SIZE ); fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); fdui->refresh_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 655, 175, 170, 20, "Refresh interval: 1s" ); fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); obj = fl_add_box( FL_ROUNDED_BOX, 860, 90, 140, 220, "" ); fl_set_object_color( obj, FL_DARKER_COL1, FL_COL1 ); fl_set_object_lalign( obj, FL_ALIGN_LEFT | FL_ALIGN_INSIDE ); fdui->refresh_dial = obj = fl_add_dial( FL_NORMAL_DIAL, 890, 110, 80, 70, "screen refresh rate" ); fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); fl_set_object_color( obj, FL_LIGHTER_COL1, FL_RIGHT_BCOL ); fl_set_object_lsize( obj, FL_TINY_SIZE ); fl_set_object_lalign( obj, FL_ALIGN_TOP ); fl_set_object_callback( obj, refresh_callback, 0 ); fl_set_object_return( obj, FL_RETURN_CHANGED ); fl_set_dial_bounds( obj, 0, 5 ); fl_set_dial_angles( obj, 45, 315 ); fl_set_dial_value( obj, 1 ); fl_set_dial_step( obj, 1 ); obj = fl_add_box( FL_ROUNDED_BOX, 860, 528, 137, 72, "" ); fl_set_object_color( obj, FL_INDIANRED, FL_COL1 ); fl_set_object_lalign( obj, FL_ALIGN_LEFT | FL_ALIGN_INSIDE ); fdui->bler_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 650, 200, 180, 20, "BLER:" ); fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); fdui->n_recd_frames_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 650, 225, 180, 20, "Rec'd frms:" ); fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); fdui->msg_text = obj = fl_add_text( FL_NORMAL_TEXT, 25, 570, 810, 30, "" ); fl_set_object_color( obj, FL_BLACK, FL_MCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); obj = fl_add_pixmapbutton( FL_NORMAL_BUTTON, 860, 5, 140, 70, "" ); fl_set_object_boxtype( obj, FL_ROUNDED_BOX ); fl_set_object_color( obj, FL_WHITE, FL_YELLOW ); fl_set_pixmapbutton_file( obj, "Eurecom_Logo.xpm" ); fdui->rx1_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 35, 10, 80, 40, "RX 1" ); fl_set_object_color( obj, FL_BLACK, FL_MCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lsize( obj, FL_HUGE_SIZE ); fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); fdui->alamouti_btn = obj = fl_add_button( FL_PUSH_BUTTON, 505, 655, 100, 20, "2: ALAMOUTI" ); fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); fl_set_object_lsize( obj, FL_TINY_SIZE ); fl_set_object_lalign( obj, FL_ALIGN_CENTER ); fl_set_object_callback( obj, rx_mode_button_callback, 2 ); fdui->precoding_btn = obj = fl_add_button( FL_PUSH_BUTTON, 505, 675, 100, 20, "6: PRECODING" ); fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); fl_set_object_lsize( obj, FL_TINY_SIZE ); fl_set_object_lalign( obj, FL_ALIGN_CENTER ); fl_set_object_callback( obj, rx_mode_button_callback, 6 ); fdui->cbmimo_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 665, 40, 70, 20, "cbmimo" ); fl_set_object_boxtype( obj, FL_ROUNDED_BOX ); fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); fdui->fix_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 640, 95, 60, 30, "NO" ); fl_set_object_boxtype( obj, FL_ROUNDED_BOX ); fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); obj = fl_add_box( FL_ROUNDED_BOX, 800, 610, 200, 90, "" ); fl_set_object_color( obj, FL_INDIANRED, FL_COL1 ); fl_set_object_lalign( obj, FL_ALIGN_LEFT | FL_ALIGN_INSIDE ); fdui->rec_btn = obj = fl_add_button( FL_NORMAL_BUTTON, 820, 620, 160, 70, "Record" ); fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); fl_set_object_lsize( obj, FL_TINY_SIZE ); fl_set_object_lalign( obj, FL_ALIGN_CENTER ); fl_set_object_callback( obj, record_callback, 0 ); fdui->exit_btn = obj = fl_add_button( FL_NORMAL_BUTTON, 20, 660, 90, 30, "exit" ); fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); fl_set_object_color( obj, FL_TOMATO, FL_COL1 ); fl_set_object_lsize( obj, FL_TINY_SIZE ); fl_set_object_lalign( obj, FL_ALIGN_CENTER ); fl_set_object_callback( obj, exit_callback, 0 ); fdui->config_btn = obj = fl_add_button( FL_NORMAL_BUTTON, 20, 620, 90, 30, "config" ); fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); fl_set_object_lsize( obj, FL_TINY_SIZE ); fl_set_object_lalign( obj, FL_ALIGN_CENTER ); fl_set_object_callback( obj, config_btn_callback, 0 ); obj = fl_add_button( FL_NORMAL_BUTTON, 870, 180, 40, 30, "+" ); fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); fl_set_object_lalign( obj, FL_ALIGN_CENTER ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); fl_set_object_callback( obj, refresh_callback, 1 ); obj = fl_add_button( FL_NORMAL_BUTTON, 950, 180, 40, 30, "-" ); fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); fl_set_object_lalign( obj, FL_ALIGN_CENTER ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); fl_set_object_callback( obj, refresh_callback, -1 ); fdui->time_domain_btn = obj = fl_add_button( FL_PUSH_BUTTON, 870, 235, 60, 20, "time" ); fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); fl_set_object_lsize( obj, FL_TINY_SIZE ); fl_set_object_lalign( obj, FL_ALIGN_CENTER ); fl_set_object_callback( obj, time_freq_callback, 0 ); fdui->freq_domain_btn = obj = fl_add_button( FL_PUSH_BUTTON, 930, 235, 60, 20, "freq" ); fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); fl_set_object_lsize( obj, FL_TINY_SIZE ); fl_set_object_lalign( obj, FL_ALIGN_CENTER ); fl_set_object_callback( obj, time_freq_callback, 1 ); obj = fl_add_text( FL_NORMAL_TEXT, 875, 215, 110, 20, "channel display" ); fl_set_object_color( obj, FL_DARKER_COL1, FL_MCOL ); fl_set_object_lsize( obj, FL_TINY_SIZE ); fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); fdui->refresh_timer = obj = fl_add_timer( FL_HIDDEN_TIMER, 810, 720, 10, 10, "timer" ); fl_set_object_callback( obj, refresh_timer_callback, 0 ); obj = fl_add_text( FL_NORMAL_TEXT, 875, 260, 110, 20, "N0/SNR" ); fl_set_object_color( obj, FL_DARKER_COL1, FL_MCOL ); fl_set_object_lsize( obj, FL_TINY_SIZE ); fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); fdui->n0_btn = obj = fl_add_button( FL_PUSH_BUTTON, 870, 280, 60, 20, "N0" ); fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); fl_set_object_lsize( obj, FL_TINY_SIZE ); fl_set_object_lalign( obj, FL_ALIGN_CENTER ); fl_set_object_callback( obj, noise_snr_callback, 0 ); fdui->snr_btn = obj = fl_add_button( FL_PUSH_BUTTON, 930, 280, 60, 20, "SNR" ); fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); fl_set_object_lsize( obj, FL_TINY_SIZE ); fl_set_object_lalign( obj, FL_ALIGN_CENTER ); fl_set_object_callback( obj, noise_snr_callback, 1 ); fdui->rx_mode_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 650, 250, 180, 20, "RX mode:" ); fl_set_object_color( obj, FL_BLACK, FL_TOP_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); fdui->siso_btn = obj = fl_add_button( FL_PUSH_BUTTON, 505, 635, 100, 20, "1: SISO" ); fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); fl_set_object_lsize( obj, FL_TINY_SIZE ); fl_set_object_lalign( obj, FL_ALIGN_CENTER ); fl_set_object_callback( obj, rx_mode_button_callback, 1 ); obj = fl_add_text( FL_NORMAL_TEXT, 505, 615, 100, 20, "TX mode" ); fl_set_object_boxtype( obj, FL_NO_BOX ); fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); fdui->ch11_sec2_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 570, 325, 140, 110, "CH 11" ); fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_TOP ); fdui->ch12_sec2_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 710, 325, 140, 110, "CH 12" ); fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_TOP ); fdui->ch21_sec2_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 570, 455, 140, 110, "CH 21" ); fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_TOP ); fdui->ch22_sec2_xyp = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 710, 455, 140, 110, "CH 22" ); fl_set_object_color( obj, FL_BLACK, FL_RIGHT_BCOL ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lalign( obj, FL_ALIGN_TOP ); fdui->sec0_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 85, 285, 140, 20, "Sector 0" ); fl_set_object_color( obj, FL_BLACK, FL_BLACK ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lsize( obj, FL_MEDIUM_SIZE ); fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); fdui->sec1_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 380, 285, 140, 20, "Sector 1" ); fl_set_object_color( obj, FL_BLACK, FL_BLACK ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lsize( obj, FL_MEDIUM_SIZE ); fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); fdui->sec2_lbl = obj = fl_add_text( FL_NORMAL_TEXT, 650, 285, 140, 20, "Sector 2" ); fl_set_object_color( obj, FL_BLACK, FL_BLACK ); fl_set_object_lcolor( obj, FL_RIGHT_BCOL ); fl_set_object_lsize( obj, FL_MEDIUM_SIZE ); fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); obj = fl_add_box( FL_ROUNDED_BOX, 250, 610, 130, 90, "" ); fl_set_object_color( obj, FL_PALEGREEN, FL_COL1 ); fl_set_object_lalign( obj, FL_ALIGN_LEFT | FL_ALIGN_INSIDE ); fdui->terminal_btn1 = obj = fl_add_button( FL_PUSH_BUTTON, 265, 650, 40, 40, "eNb" ); fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); fl_set_object_lalign( obj, FL_ALIGN_CENTER ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); fl_set_object_callback( obj, terminal_button_callback, 1 ); fdui->terminal_btn3 = obj = fl_add_button( FL_PUSH_BUTTON, 320, 650, 40, 40, "UE" ); fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); fl_set_object_lalign( obj, FL_ALIGN_CENTER ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); fl_set_object_callback( obj, terminal_button_callback, 3 ); obj = fl_add_text( FL_NORMAL_TEXT, 260, 620, 110, 20, "terminal type" ); fl_set_object_color( obj, FL_PALEGREEN, FL_MCOL ); fl_set_object_lalign( obj, FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); obj = fl_add_box( FL_ROUNDED_BOX, 630, 610, 160, 90, "" ); fl_set_object_color( obj, FL_WHEAT, FL_COL1 ); fl_set_object_lalign( obj, FL_ALIGN_LEFT | FL_ALIGN_INSIDE ); obj = fl_add_button( FL_NORMAL_BUTTON, 645, 660, 90, 30, "Checkpoint" ); fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); fl_set_object_lsize( obj, FL_TINY_SIZE ); fl_set_object_lalign( obj, FL_ALIGN_CENTER ); fl_set_object_callback( obj, checkpoint_callback, 0 ); obj = fl_add_button( FL_NORMAL_BUTTON, 740, 620, 40, 30, "+" ); fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); fl_set_object_lalign( obj, FL_ALIGN_CENTER ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); fl_set_object_callback( obj, checkpoint_callback, 1 ); obj = fl_add_button( FL_NORMAL_BUTTON, 740, 660, 40, 30, "-" ); fl_set_object_boxtype( obj, FL_ROUNDED3D_UPBOX ); fl_set_object_color( obj, FL_LIGHTER_COL1, FL_COL1 ); fl_set_object_lalign( obj, FL_ALIGN_CENTER ); fl_set_object_lstyle( obj, FL_BOLD_STYLE ); fl_set_object_callback( obj, checkpoint_callback, -1 ); fdui->next_cp = obj = fl_add_text( FL_NORMAL_TEXT, 650, 625, 90, 20, "Next CP: 1" ); fl_set_object_color( obj, FL_WHEAT, FL_MCOL ); obj = fl_add_box( FL_ROUNDED_BOX, 860, 320, 142, 199, "" ); fl_set_object_color( obj, FL_PALEGREEN, FL_COL1 ); fdui->rf_gain_txt = obj = fl_add_input( FL_NORMAL_INPUT, 925, 340, 60, 20, "RF gain" ); fl_set_object_lsize( obj, FL_TINY_SIZE ); fl_set_object_callback( obj, input_callback, 0 ); fl_set_object_return( obj, FL_RETURN_END_CHANGED ); fdui->digital_gain_txt = obj = fl_add_input( FL_NORMAL_INPUT, 925, 374, 60, 20, "digital gain" ); fl_set_object_lsize( obj, FL_TINY_SIZE ); fl_set_object_callback( obj, input_callback, 0 ); fl_set_object_return( obj, FL_RETURN_END_CHANGED ); fdui->rf_mode_txt = obj = fl_add_input( FL_NORMAL_INPUT, 925, 409, 60, 20, "RF mode" ); fl_set_object_lsize( obj, FL_TINY_SIZE ); fl_set_object_callback( obj, input_callback, 0 ); fl_set_object_return( obj, FL_RETURN_END_CHANGED ); obj = fl_add_box( FL_ROUNDED_BOX, 390, 610, 90, 90, "" ); fl_set_object_color( obj, FL_DARKCYAN, FL_COL1 ); fl_set_object_lalign( obj, FL_ALIGN_LEFT | FL_ALIGN_INSIDE ); fdui->la_btn = obj = fl_add_lightbutton( FL_PUSH_BUTTON, 405, 645, 60, 40, "LA" ); fl_set_object_callback( obj, link_adpt_callback, 0 ); fl_set_button( obj, 1 ); obj = fl_add_text( FL_NORMAL_TEXT, 400, 620, 70, 20, "link adpt." ); fl_set_object_color( obj, FL_DARKCYAN, FL_MCOL ); fdui->label_input = obj = fl_add_input( FL_NORMAL_INPUT, 880, 569, 100, 20, "" ); fl_set_object_lsize( obj, FL_TINY_SIZE ); fl_set_object_lalign( obj, FL_ALIGN_TOP ); fl_set_object_callback( obj, label_callback, 0 ); fl_set_object_return( obj, FL_RETURN_END_CHANGED ); fdui->label_button = obj = fl_add_checkbutton( FL_PUSH_BUTTON, 877, 539, 60, 30, "manual label" ); fl_set_object_callback( obj, label_btn_callback, 0 ); fdui->freq_txt = obj = fl_add_input( FL_NORMAL_INPUT, 925, 444, 60, 20, "frequency" ); fl_set_object_lsize( obj, FL_TINY_SIZE ); fl_set_object_callback( obj, input_callback, 0 ); fl_set_object_return( obj, FL_RETURN_END_CHANGED ); fdui->tcxo_txt = obj = fl_add_input( FL_NORMAL_INPUT, 925, 479, 60, 20, "TCXO" ); fl_set_object_lsize( obj, FL_TINY_SIZE ); fl_set_object_callback( obj, input_callback, 0 ); fl_set_object_return( obj, FL_RETURN_END_CHANGED ); fl_end_form( ); fdui->main_frm->fdui = fdui; return fdui; }