FD_sensing_form *create_form_sensing_form(void) { FL_OBJECT *obj; FD_sensing_form *fdui = (FD_sensing_form *) fl_calloc(1, sizeof(*fdui)); fdui->sensing_form = fl_bgn_form(FL_NO_BOX, 620, 600); obj = fl_add_box(FL_UP_BOX,0,0,620,600,""); fdui->spec_SN1 = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,70,50,500,100,"spectrum_plot_SN1"); fl_set_object_color(obj,FL_BLACK,FL_BLUE); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fdui->spec_SN2 = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,70,180,500,100,"spectrum_plot_SN2"); fl_set_object_color(obj,FL_BLACK,FL_BLUE); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fdui->spec_SN3 = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,70,310,500,100,"spectrum_plot_SN3"); fl_set_object_color(obj,FL_BLACK,FL_BLUE); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fdui->Secondary_Network_frequencies = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,70,460,500,100,"Secondary_Network_frequencies"); fl_set_object_color(obj,FL_BLACK,FL_GREEN); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_end_form(); fdui->sensing_form->fdui = fdui; return fdui; }
static void create_it( void ) { FL_OBJECT *text; if ( tip ) return; tip = fl_calloc( 1, sizeof *tip ); tip->fntstyle = FL_NORMAL_STYLE; tip->fntsize = FL_DEFAULT_SIZE; tip->boxtype = FL_BORDER_BOX; tip->lalign = fl_to_inside_lalign( FL_ALIGN_LEFT ); tip->textcolor = FL_BLACK; tip->background = FL_YELLOW; tip->tooltipper = fl_bgn_form( FL_NO_BOX, 5, 5 ); tip->text = text = fl_add_box( tip->boxtype, 0, 0, 5, 5, "" ); fl_set_object_bw( text, -1 ); fl_set_object_lstyle( text, tip->fntstyle ); fl_set_object_lsize( text, tip->fntsize ); fl_set_object_lcolor( text, tip->textcolor ); fl_set_object_lalign( text, tip->lalign ); fl_set_object_color( text, tip->background, tip->background ); 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_landmin *create_form_landmin(void) { FL_OBJECT *obj; FD_landmin *fdui = (FD_landmin *) fl_calloc(1, sizeof(*fdui)); fdui->landmin = fl_bgn_form(FL_NO_BOX, 330, 280); obj = fl_add_box(FL_UP_BOX,0,0,330,280,""); obj = fl_add_text(FL_NORMAL_TEXT,10,10,70,30,"Connect to :"); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); obj = fl_add_text(FL_NORMAL_TEXT,10,50,90,30,"Disconect from:"); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); obj = fl_add_button(FL_NORMAL_BUTTON,60,250,220,20,"Quit"); fl_set_object_callback(obj,cb_land_quitb,0); obj = fl_add_clock(FL_DIGITAL_CLOCK,140,225,70,20,""); fl_set_object_color(obj,FL_INACTIVE,FL_CYAN); fdui->host_listOB = obj = fl_add_browser(FL_NORMAL_BROWSER,40,100,270,120,"Connected to:"); fl_set_object_color(obj,FL_WHITE,FL_YELLOW); fl_set_object_lalign(obj,FL_ALIGN_TOP); fl_set_object_callback(obj,cb_landseld_hst,0); fdui->landnhOB = obj = fl_add_choice(FL_NORMAL_CHOICE2,110,10,200,30,""); fl_set_object_callback(obj,cb_land_nh,0); fl_set_choice_entries(obj, fdchoice_0); fl_set_choice(obj,1); fdui->landdhOB = obj = fl_add_choice(FL_NORMAL_CHOICE2,110,50,200,30,""); fl_set_object_callback(obj,cb_land_dh,0); fl_set_choice_entries(obj, fdchoice_1); fl_set_choice(obj,1); fl_end_form(); fdui->landmin->fdui = fdui; return fdui; }
static void init_cursors( void ) { static int ok; CurStruct *c; static char c_bits[ ] = { 0x00 }; if ( ok ) return; ok = 1; if ( ! cursors ) { cursors = fl_calloc( MAX_CURSORS, sizeof *c ); memcpy( cursors, prebuilt, sizeof prebuilt ); } for ( c = cursors; c->name; c++ ) c->cur[ c->ncursor++ ] = XCreateFontCursor( flx->display, c->name ); /* Create an invisible cursor */ add_cursor( FL_INVISIBLE_CURSOR, create_bitmap_cursor( c_bits, c_bits, 1, 1, 0, 0 ) ); /* Add the default cursor */ add_cursor( FL_DEFAULT_CURSOR, XCreateFontCursor( flx->display, fl_default_curname ) ); }
FD_chart_window *create_form_chart_window(void) { FL_OBJECT *obj; FD_chart_window *fdui = (FD_chart_window *) fl_calloc(1, sizeof(*fdui)); fdui->chart_window = fl_bgn_form(FL_NO_BOX, 570, 480); obj = fl_add_box(FL_UP_BOX,0,0,570,480,"Population Statistics"); fl_set_object_lsize(obj,FL_MEDIUM_SIZE); fl_set_object_lalign(obj,FL_ALIGN_TOP|FL_ALIGN_INSIDE); fl_set_object_lstyle(obj,FL_BOLD_STYLE); fdui->max_mass = obj = fl_add_chart(FL_BAR_CHART,10,40,140,120,"Bug Maximum Masses"); fl_set_object_boxtype(obj,FL_SHADOW_BOX); fl_set_object_lalign(obj,FL_ALIGN_TOP); fdui->plant_eff = obj = fl_add_chart(FL_BAR_CHART,150,40,140,120,"Bug Plant Efficiency"); fl_set_object_boxtype(obj,FL_SHADOW_BOX); fl_set_object_lalign(obj,FL_ALIGN_TOP); fdui->attack = obj = fl_add_chart(FL_BAR_CHART,290,40,140,120,"Bug Attack Capability"); fl_set_object_boxtype(obj,FL_SHADOW_BOX); fl_set_object_lalign(obj,FL_ALIGN_TOP); fdui->color1 = obj = fl_add_chart(FL_BAR_CHART,430,40,130,120,"Bug Color 1"); fl_set_object_boxtype(obj,FL_SHADOW_BOX); fl_set_object_lalign(obj,FL_ALIGN_TOP); fdui->color2 = obj = fl_add_chart(FL_BAR_CHART,10,180,140,130,"Bug Color 2"); fl_set_object_boxtype(obj,FL_SHADOW_BOX); fl_set_object_lalign(obj,FL_ALIGN_TOP); fdui->breeding_age = obj = fl_add_chart(FL_BAR_CHART,150,180,140,130,"Bug Minimum Breeding Age"); fl_set_object_boxtype(obj,FL_SHADOW_BOX); fl_set_object_lalign(obj,FL_ALIGN_TOP); fdui->breeding_energy = obj = fl_add_chart(FL_BAR_CHART,290,180,140,130,"Bug Minimum Breeding Energy"); fl_set_object_boxtype(obj,FL_SHADOW_BOX); fl_set_object_lalign(obj,FL_ALIGN_TOP); fdui->population = obj = fl_add_chart(FL_LINE_CHART,430,180,130,130,"Global Population"); fl_set_object_boxtype(obj,FL_SHADOW_BOX); fl_set_object_lalign(obj,FL_ALIGN_TOP); fdui->energy = obj = fl_add_chart(FL_BAR_CHART,10,330,140,130,"Bug Energy"); fl_set_object_boxtype(obj,FL_SHADOW_BOX); fl_set_object_lalign(obj,FL_ALIGN_TOP); fdui->mass = obj = fl_add_chart(FL_BAR_CHART,150,330,140,130,"Bug Mass"); fl_set_object_boxtype(obj,FL_SHADOW_BOX); fl_set_object_lalign(obj,FL_ALIGN_TOP); fdui->ok = obj = fl_add_button(FL_RETURN_BUTTON,460,370,80,30,"OK"); fdui->metabolism = obj = fl_add_chart(FL_BAR_CHART,290,330,140,130,"Bug Metabolism"); fl_set_object_boxtype(obj,FL_SHADOW_BOX); fl_set_object_lalign(obj,FL_ALIGN_TOP); fl_end_form(); fdui->chart_window->fdui = fdui; return fdui; }
FL_OBJECT * fl_create_generic_button( int objclass, int type, FL_Coord x, FL_Coord y, FL_Coord w, FL_Coord h, const char * label ) { FL_OBJECT *obj; FL_BUTTON_STRUCT *sp; int i; obj = fl_make_object( objclass, type, x, y, w, h, label, handle_button ); if ( type == FL_RADIO_BUTTON ) obj->radio = 1; if ( type == FL_RETURN_BUTTON || type == FL_HIDDEN_RET_BUTTON ) fl_set_object_shortcut( obj, "^M", 0 ); if ( type == FL_HIDDEN_BUTTON || type == FL_HIDDEN_RET_BUTTON ) obj->boxtype = FL_NO_BOX; if ( obj->type == FL_TOUCH_BUTTON ) { obj->want_update = 1; obj->how_return = FL_RETURN_CHANGED; } sp = obj->spec = fl_calloc( 1, sizeof *sp ); sp->event = FL_DRAW; sp->is_pushed = 0; sp->pixmap = sp->mask = sp->focus_pixmap = sp->focus_mask = None; sp->cspecv = NULL; sp-> filename = sp->focus_filename = NULL; sp->is_pushed = 0; sp->mousebut = 0; /* Per default a button (unfortunately) reacts to all mouse buttons */ for ( i = 0; i < 5; i++ ) sp->react_to[ i ] = 1; if ( fli_cntl.buttonLabelSize ) obj->lsize = fli_cntl.buttonLabelSize; return obj; }
FD_sens_sensor *create_form_sens_sensor(void) { FL_OBJECT *obj; FD_sens_sensor *fdui = (FD_sens_sensor *) fl_calloc(1, sizeof(*fdui)); fdui->sens_sensor = fl_bgn_form(FL_NO_BOX, 940, 280); obj = fl_add_box(FL_UP_BOX,0,0,940,280,""); fdui->local_sensing_results = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,30,30,880,210,"Local Sensing Results"); fl_set_object_color(obj,FL_BLACK,FL_BLUE); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_end_form(); fdui->sens_sensor->fdui = fdui; return fdui; }
FD_Secondary_Network_frequencies *create_form_Secondary_Network_frequencies(void) { FL_OBJECT *obj; FD_Secondary_Network_frequencies *fdui = (FD_Secondary_Network_frequencies *) fl_calloc(1, sizeof(*fdui)); fdui->Secondary_Network_frequencies = fl_bgn_form(FL_NO_BOX, 620, 200); obj = fl_add_box(FL_UP_BOX,0,0,620,200,""); fdui->Selected_frequencies = obj = fl_add_xyplot(FL_IMPULSE_XYPLOT,70,50,500,100,"Selected_frequencies"); fl_set_object_color(obj,FL_BLACK,FL_GREEN); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_end_form(); fdui->Secondary_Network_frequencies->fdui = fdui; return fdui; }
FD_splash_frm *create_form_splash_frm(void) { FL_OBJECT *obj; FD_splash_frm *fdui = (FD_splash_frm *) fl_calloc(1, sizeof(*fdui)); fdui->splash_frm = fl_bgn_form(FL_NO_BOX, 390, 280); obj = fl_add_box(FL_FLAT_BOX,0,0,390,280,""); obj = fl_add_pixmap(FL_NORMAL_PIXMAP,40,20,310,100,""); obj = fl_add_text(FL_NORMAL_TEXT,70,150,80,30,"text"); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fl_end_form(); fdui->splash_frm->fdui = fdui; return fdui; }
FD_unCeas *create_form_unCeas(void) { FL_OBJECT *obj; FD_unCeas *fdui = (FD_unCeas *) fl_calloc(1, sizeof(*fdui)); fdui->unCeas = fl_bgn_form(FL_NO_BOX, 140, 190); obj = fl_add_box(FL_UP_BOX,0,0,140,190,""); fdui->retOB = obj = fl_add_button(FL_NORMAL_BUTTON,15,150,110,30,"Return"); fl_set_object_callback(obj,unc_ret_cb,0); obj = fl_add_clock(FL_ANALOG_CLOCK,5,10,130,130,""); fl_set_object_color(obj,FL_INACTIVE,FL_WHITE); fl_end_form(); fdui->unCeas->fdui = fdui; return fdui; }
FD_mainWindow *create_form_mainWindow(void) { FL_OBJECT *obj; FD_mainWindow *fdui = (FD_mainWindow *) fl_calloc(1, sizeof(*fdui)); fdui->mainWindow = fl_bgn_form(FL_NO_BOX, 550, 490); obj = fl_add_box(FL_UP_BOX,0,0,550,490,""); fdui->mainCanvas = obj = fl_add_canvas(FL_NORMAL_CANVAS,10,40,510,420,""); fl_set_object_gravity(obj, FL_NorthWest, FL_SouthEast); fdui->scroll_h = obj = fl_add_scrollbar(FL_HOR_THIN_SCROLLBAR,10,465,510,20,""); fl_set_object_boxtype(obj,FL_DOWN_BOX); fl_set_object_gravity(obj, FL_SouthWest, FL_SouthEast); fl_set_scrollbar_step(obj, 0.1); fl_set_scrollbar_increment(obj, 0.1, 0.1); fdui->scroll_v = obj = fl_add_scrollbar(FL_VERT_THIN_SCROLLBAR,525,40,20,420,""); fl_set_object_boxtype(obj,FL_DOWN_BOX); fl_set_object_gravity(obj, FL_NorthEast, FL_SouthEast); fl_set_scrollbar_step(obj, 0.1); fl_set_scrollbar_increment(obj, 0.1, 0.1); fdui->pause = obj = fl_add_button(FL_NORMAL_BUTTON,410,5,80,30,"Pause"); fl_set_button_shortcut(obj,"Pp",1); fl_set_object_gravity(obj, FL_SouthEast, FL_SouthEast); fdui->step = obj = fl_add_button(FL_NORMAL_BUTTON,320,5,80,30,"Step (spc)"); fl_set_button_shortcut(obj," ",1); fl_set_object_gravity(obj, FL_SouthEast, FL_SouthEast); fdui->add_food = obj = fl_add_button(FL_NORMAL_BUTTON,140,5,80,30,"More Food (+)"); fl_set_button_shortcut(obj,"+",1); fl_set_object_gravity(obj, FL_SouthEast, FL_SouthEast); fdui->remove_food = obj = fl_add_button(FL_NORMAL_BUTTON,230,5,80,30,"Less Food (-)"); fl_set_button_shortcut(obj,"-",1); fl_set_object_gravity(obj, FL_SouthEast, FL_SouthEast); fdui->file_menu = obj = fl_add_menu(FL_PULLDOWN_MENU,10,10,50,20,"File"); fl_set_object_shortcut(obj,"Ff",1); fl_set_object_lalign(obj,FL_ALIGN_LEFT); fl_set_menu_entries(obj, fdmenu_file_menu_1); fdui->other_menu = obj = fl_add_menu(FL_PULLDOWN_MENU,60,10,60,20,"Other"); fl_set_object_shortcut(obj,"Oo",1); fl_set_object_lalign(obj,FL_ALIGN_LEFT); fl_set_menu_entries(obj, fdmenu_other_menu_2); fl_end_form(); fdui->mainWindow->fdui = fdui; 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_neural_net_plot *create_form_neural_net_plot(void) { FL_OBJECT *obj; FD_neural_net_plot *fdui = (FD_neural_net_plot *) fl_calloc(1, sizeof(*fdui)); fdui->neural_net_plot = fl_bgn_form(FL_NO_BOX, 480, 370); fdui->mainWindow = obj = fl_add_box(FL_UP_BOX,0,0,480,370,"Neural Net Plot"); 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); fdui->mainCanvas = obj = fl_add_canvas(FL_NORMAL_CANVAS,15,20,450,300,""); fdui->ok = obj = fl_add_button(FL_RETURN_BUTTON,370,330,90,30,"OK"); fl_set_object_lsize(obj,FL_NORMAL_SIZE); fl_set_object_lstyle(obj,FL_BOLD_STYLE); fl_end_form(); fdui->neural_net_plot->fdui = fdui; return fdui; }
FD_otg *create_form_otg(void) { FL_OBJECT *obj; FD_otg *fdui = (FD_otg *) fl_calloc(1, sizeof(*fdui)); fdui->otg = fl_bgn_form(FL_NO_BOX, 550, 550); obj = fl_add_box(FL_UP_BOX,0,0,900,700,""); fdui->owd = fl_add_xyplot(FL_NORMAL_XYPLOT,50,30,450,190,"Delay(ms)"); fl_set_object_color(fdui->owd,FL_BLACK,FL_YELLOW); fdui->throughput = fl_add_xyplot(FL_NORMAL_XYPLOT,50,300,450,190,"Throughput(Kbit/s)"); fl_set_object_color(fdui->throughput,FL_BLACK,FL_YELLOW); obj = fl_add_button(FL_NORMAL_BUTTON,250,510,50,30,"Exit"); fl_set_object_callback(obj, exit_cb, 0); fdui->loss_ratio=fl_add_text(FL_NORMAL_TEXT,5,510,220,20,"NB Loss pkts"); fdui->simu_time=fl_add_text(FL_NORMAL_TEXT,370,510,250,30,"Simulation Time"); fl_end_form(); fdui->otg->fdui = fdui; return fdui; }
FL_OBJECT * fl_create_formbrowser( int type, FL_Coord x, FL_Coord y, FL_Coord w, FL_Coord h, const char * label ) { FL_OBJECT *ob; FLI_FORMBROWSER_SPEC *sp; int absbw, oldu = fl_get_coordunit( ); int D; ob = fl_make_object( FL_FORMBROWSER, type, x, y, w, h, label, handle_formbrowser ); fl_set_coordunit( FL_COORD_PIXEL ); ob->boxtype = FL_FORMBROWSER_BOXTYPE; ob->align = FL_FORMBROWSER_ALIGN; ob->col1 = FL_FORMBROWSER_COL1; ob->col2 = FL_BLACK; ob->set_return = set_formbrowser_return; ob->spec = sp = fl_calloc( 1, sizeof *sp ); absbw = FL_abs( ob->bw ); sp->form = NULL; sp->parent = ob; sp->scroll = FL_SMOOTH_SCROLL; sp->vw_def = sp->hh_def = D = fli_get_default_scrollbarsize( ob ); sp->canvas = fl_create_canvas( FL_CANVAS, ob->x + absbw, ob->y + absbw, ob->w - 2 * absbw - sp->vw_def, ob->h - 2 * absbw - sp->hh_def, label ); sp->canvas->u_vdata = sp; fl_modify_canvas_prop( sp->canvas, NULL, NULL, canvas_cleanup ); fl_set_object_color( sp->canvas, ob->col1, ob->col2 ); fl_set_object_bw( sp->canvas, ob->bw ); fl_set_object_boxtype( sp->canvas, fli_boxtype2frametype( ob->boxtype ) ); fl_add_canvas_handler( sp->canvas, Expose, canvas_handler, NULL ); sp->v_pref = sp->h_pref = FL_AUTO; sp->hsl = fl_create_scrollbar( FL_HOR_THIN_SCROLLBAR, ob->x, y + h - D, w - D, D, "" ); fl_set_scrollbar_value( sp->hsl, sp->old_hval = 0.0 ); fl_set_object_boxtype( sp->hsl, ob->boxtype ); sp->hsl->visible = sp->h_pref == FL_ON; sp->hsl->resize = FL_RESIZE_X; fl_set_object_callback( sp->hsl, hcb, 0 ); sp->vsl = fl_create_scrollbar( FL_VERT_THIN_SCROLLBAR, x + w - D, y, D, h - D, "" ); fl_set_object_boxtype( sp->vsl, ob->boxtype ); sp->vsl->visible = sp->v_pref == FL_ON; fl_set_scrollbar_value( sp->vsl, sp->old_hval = 0.0 ); sp->vsl->resize = FL_RESIZE_Y; fl_set_object_callback( sp->vsl, vcb, 0 ); fl_add_child( ob, sp->canvas ); fl_add_child( ob, sp->hsl ); fl_add_child( ob, sp->vsl ); fl_set_coordunit( oldu ); /* Set default return policy for the object */ fl_set_object_return( ob, FL_RETURN_NONE ); return ob; }
SuperSPEC * spec_to_superspec( FL_OBJECT * obj ) { SuperSPEC *ssp; int i; int n; if ( ! obj->u_vdata ) { obj->u_vdata = ssp = fl_calloc( 1, sizeof *ssp ); ssp->content = NULL; ssp->shortcut = NULL; ssp->callback = NULL; ssp->mode = NULL; ssp->mval = NULL; ssp->misc_char = NULL; ssp->new_menuapi = 0; ssp->nlines = 0; } else ssp = obj->u_vdata; if ( obj->objclass == FL_BROWSER ) { FLI_BROWSER_SPEC *sp = obj->spec; ssp->h_pref = sp->h_pref; ssp->v_pref = sp->v_pref; for ( i = 1; i <= ssp->nlines; i++ ) fl_free( ssp->content[ i ] ); n = ssp->nlines = fl_get_browser_maxline( obj ); ssp->content = fl_realloc( ssp->content, ( n + 1 ) * sizeof *ssp->content ); for ( i = 1; i <= n; i++ ) ssp->content[ i ] = fl_strdup( fl_get_browser_line( obj, i ) ); } else if ( obj->objclass == FL_CHOICE ) { FLI_CHOICE_SPEC *sp = obj->spec; for ( i = 1; i <= ssp->nlines; i++ ) { fl_free( ssp->content[ i ] ); fl_free( ssp->shortcut[ i ] ); } n = ssp->nlines = sp->numitems; ssp->content = fl_realloc( ssp->content, ( n + 1 ) * sizeof *ssp->content ); ssp->shortcut = fl_realloc( ssp->shortcut, ( n + 1 ) * sizeof *ssp->shortcut ); ssp->mode = fl_realloc( ssp->mode, ( n + 1 ) * sizeof *ssp->mode ); ssp->align = sp->align; ssp->int_val = sp->val; for ( i = 1; i <= n; i++ ) { ssp->content[ i ] = fl_strdup( fl_get_choice_item_text( obj, i ) ); if ( sp->shortcut[ i ] ) ssp->shortcut[ i ] = fl_strdup( sp->shortcut[ i ] ); else ssp->shortcut[ i ] = NULL; } memcpy( ssp->mode, sp->mode, ( n + 1 ) * sizeof *ssp->mode ); } else if ( obj->objclass == FL_MENU ) { FLI_MENU_SPEC *sp = obj->spec; for ( i = 1; i <= ssp->nlines; i++ ) { fl_free( ssp->content[ i ] ); fl_free( ssp->shortcut[ i ] ); fl_free( ssp->callback[ i ] ); } n = ssp->nlines = sp->numitems; ssp->content = fl_realloc( ssp->content, ( n + 1 ) * sizeof *ssp->content ); ssp->shortcut = fl_realloc( ssp->shortcut, ( n + 1 ) * sizeof *ssp->shortcut ); ssp->callback = fl_realloc( ssp->callback, ( n + 1 ) * sizeof *ssp->callback ); ssp->mode = fl_realloc( ssp->mode, ( n + 1 ) * sizeof *ssp->mode ); ssp->mval = fl_realloc( ssp->mval, ( n + 1 ) * sizeof *ssp->mval ); for ( i = 1; i <= n; i++ ) { ssp->content[ i ] = fl_strdup( fl_get_menu_item_text( obj, sp->mval[ i ] ) ); if ( sp->shortcut[ i ] ) ssp->shortcut[ i ] = fl_strdup( sp->shortcut[ i ] ); else ssp->shortcut[ i ] = NULL; if ( sp->cb[ i ] ) ssp->callback[ i ] = fl_strdup( ( char * ) sp->cb[ i ] ); else ssp->callback[ i ] = NULL; } memcpy( ssp->mode, sp->mode, ( n + 1 ) * sizeof *ssp->mode ); memcpy( ssp->mval, sp->mval, ( n + 1 ) * sizeof *ssp->mval ); } else if ( obj->objclass == FL_SLIDER || obj->objclass == FL_VALSLIDER || obj->objclass == FL_THUMBWHEEL ) { FLI_SLIDER_SPEC *sp = obj->spec; ssp->val = sp->val; ssp->min = sp->min; ssp->max = sp->max; ssp->step = sp->step; ssp->prec = sp->prec; ssp->ldelta = sp->ldelta; ssp->rdelta = sp->rdelta; ssp->slsize = sp->slsize; } else if ( ISBUTTON( obj->objclass ) || obj->objclass == FL_PIXMAP || obj->objclass == FL_BITMAP ) { FL_BUTTON_SPEC *sp = obj->spec; ssp->mbuttons = 0; for ( i = 0; i < 5; i++ ) if ( sp->react_to[ i ] ) ssp->mbuttons |= 1 << i; ssp->int_val = sp->val; } else if ( obj->objclass == FL_POSITIONER ) { FLI_POSITIONER_SPEC *sp = obj->spec; ssp->xstep = sp->xstep; ssp->ystep = sp->ystep; ssp->xmin = sp->xmin; ssp->xmax = sp->xmax; ssp->xval = sp->xval; ssp->ymin = sp->ymin; ssp->ymax = sp->ymax; ssp->yval = sp->yval; } else if ( obj->objclass == FL_COUNTER ) { FLI_COUNTER_SPEC *sp = obj->spec; ssp->val = sp->val; ssp->lstep = sp->lstep; ssp->sstep = sp->sstep; ssp->min = sp->min; ssp->max = sp->max; ssp->prec = sp->prec; } else if ( obj->objclass == FL_DIAL ) { FLI_DIAL_SPEC *sp = obj->spec; ssp->min = sp->min; ssp->max = sp->max; ssp->val = sp->val; ssp->step = sp->step; ssp->thetai = sp->thetai; ssp->thetaf = sp->thetaf; ssp->direction = sp->direction; } else if ( obj->objclass == FL_XYPLOT ) { FLI_XYPLOT_SPEC *sp = obj->spec; ssp->xmajor = sp->xmajor; ssp->xminor = sp->xminor; ssp->ymajor = sp->ymajor; ssp->yminor = sp->yminor; ssp->xscale = sp->xscale; ssp->yscale = sp->yscale; ssp->xgrid = sp->xgrid; ssp->ygrid = sp->ygrid; ssp->grid_linestyle = sp->grid_linestyle; ssp->xbase = sp->xbase; ssp->ybase = sp->ybase; ssp->mark_active = sp->mark_active; } else if ( obj->objclass == FL_SCROLLBAR ) { FLI_SCROLLBAR_SPEC *scbsp = obj->spec; FLI_SLIDER_SPEC *sp = scbsp->slider->spec; ssp->val = sp->val; ssp->min = sp->min; ssp->max = sp->max; ssp->prec = sp->prec; ssp->step = sp->step; ssp->slsize = sp->slsize; ssp->ldelta = sp->ldelta; ssp->rdelta = sp->rdelta; } else if ( obj->objclass == FL_SPINNER ) { FLI_SPINNER_SPEC *sp = obj->spec; ssp->val = fl_get_spinner_value( obj ); fl_get_spinner_bounds( obj, &ssp->min, &ssp->max ); ssp->step = fl_get_spinner_step( obj ); ssp->prec = fl_get_spinner_precision( obj ); ssp->orient = sp->orient; } return ssp; }
FD_mpcview *create_form_mpcview(void) { FL_OBJECT *obj; FD_mpcview *fdui = (FD_mpcview *) fl_calloc(1, sizeof(*fdui)); fdui->mpcview = fl_bgn_form(FL_NO_BOX, 425, 535); fdui->formmpcview = obj = fl_add_box(FL_FLAT_BOX,0,0,425,535,""); fdui->scanchart = obj = fl_add_chart(FL_LINE_CHART,15,40,280,60,""); fl_set_object_boxtype(obj,FL_UP_BOX); fdui->scan = obj = fl_add_xyplot(FL_FILL_XYPLOT,5,35,300,140,""); fl_set_object_boxtype(obj,FL_UP_BOX); obj = fl_add_frame(FL_ENGRAVED_FRAME,5,345,415,155,""); obj = fl_add_frame(FL_ENGRAVED_FRAME,245,355,165,80,""); obj = fl_add_frame(FL_ENGRAVED_FRAME,15,355,225,135,""); fdui->button_err_0 = obj = fl_add_checkbutton(FL_PUSH_BUTTON,20,365,90,20,"Exceptional EP"); fl_set_object_lsize(obj,FL_TINY_SIZE); obj = fl_add_frame(FL_ENGRAVED_FRAME,5,180,415,160,""); fdui->browser = obj = fl_add_browser(FL_HOLD_BROWSER,10,200,325,135,""); fl_set_object_color(obj,FL_TOP_BCOL,FL_YELLOW); fdui->menubar = obj = fl_add_box(FL_UP_BOX,0,0,425,30,""); fdui->clock = obj = fl_add_clock(FL_ANALOG_CLOCK,345,35,75,65,""); fdui->logo = obj = fl_add_pixmap(FL_NORMAL_PIXMAP,345,105,70,70,""); fdui->all_objects = fl_bgn_group(); fdui->menufile = obj = fl_add_menu(FL_PULLDOWN_MENU,5,5,40,20,"File"); fl_set_object_shortcut(obj,"#F",1); fl_set_object_boxtype(obj,FL_FLAT_BOX); fl_set_object_gravity(obj, FL_North, FL_NoGravity); obj = fl_add_text(FL_NORMAL_TEXT,10,185,325,15,"This software is part of the MPC Parallel Machine project"); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fdui->average = obj = fl_add_valslider(FL_VERT_FILL_SLIDER,310,35,30,140,""); fl_set_object_color(obj,FL_COL1,FL_GREEN); fl_set_slider_return(obj, FL_RETURN_CHANGED); obj = fl_add_text(FL_NORMAL_TEXT,5,505,415,25,"Fast HSL Control Panel -- (c) LIP6/UPMC 1997-1998"); fl_set_object_boxtype(obj,FL_DOWN_BOX); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fl_end_group(); fdui->button_0 = obj = fl_add_lightbutton(FL_PUSH_BUTTON,340,200,35,30,"0"); fl_set_object_color(obj,FL_RED,FL_GREEN); fdui->button_2 = obj = fl_add_lightbutton(FL_PUSH_BUTTON,340,270,35,30,"2"); fl_set_object_color(obj,FL_RED,FL_GREEN); fdui->button_1 = obj = fl_add_lightbutton(FL_PUSH_BUTTON,340,235,35,30,"1"); fl_set_object_color(obj,FL_RED,FL_GREEN); fdui->button_3 = obj = fl_add_lightbutton(FL_PUSH_BUTTON,340,305,35,30,"3"); fl_set_object_color(obj,FL_RED,FL_GREEN); obj = fl_add_text(FL_NORMAL_TEXT,265,5,100,20,"MPC-View"); fl_set_object_lcol(obj,FL_DARKTOMATO); fl_set_object_lsize(obj,FL_LARGE_SIZE); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fl_set_object_lstyle(obj,FL_TIMESITALIC_STYLE+FL_EMBOSSED_STYLE); fdui->button_4 = obj = fl_add_lightbutton(FL_PUSH_BUTTON,380,200,35,30,"4"); fl_set_object_color(obj,FL_RED,FL_GREEN); fdui->button_5 = obj = fl_add_lightbutton(FL_PUSH_BUTTON,380,235,35,30,"5"); fl_set_object_color(obj,FL_RED,FL_GREEN); fdui->button_6 = obj = fl_add_lightbutton(FL_PUSH_BUTTON,380,270,35,30,"6"); fl_set_object_color(obj,FL_RED,FL_GREEN); fdui->button_7 = obj = fl_add_lightbutton(FL_PUSH_BUTTON,380,305,35,30,"7"); fl_set_object_color(obj,FL_RED,FL_GREEN); obj = fl_add_text(FL_NORMAL_TEXT,30,350,40,15,"Errors"); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fdui->button_err_1 = obj = fl_add_checkbutton(FL_PUSH_BUTTON,20,385,75,20,"CRC Header"); fl_set_object_lsize(obj,FL_TINY_SIZE); fdui->button_err_2 = obj = fl_add_checkbutton(FL_PUSH_BUTTON,20,405,70,20,"CRC Data"); fl_set_object_lsize(obj,FL_TINY_SIZE); fdui->button_err_3 = obj = fl_add_checkbutton(FL_PUSH_BUTTON,20,425,85,20,"End of Packet"); fl_set_object_lsize(obj,FL_TINY_SIZE); fdui->button_err_4 = obj = fl_add_checkbutton(FL_PUSH_BUTTON,20,445,70,20,"Timeout"); fl_set_object_lsize(obj,FL_TINY_SIZE); fdui->button_err_5 = obj = fl_add_checkbutton(FL_PUSH_BUTTON,20,465,75,20,"R3 Status"); fl_set_object_lsize(obj,FL_TINY_SIZE); fdui->button_err_6 = obj = fl_add_checkbutton(FL_PUSH_BUTTON,105,365,130,20,"Page Transmitted Overflow"); fl_set_object_lsize(obj,FL_TINY_SIZE); fdui->button_err_7 = obj = fl_add_checkbutton(FL_PUSH_BUTTON,105,385,130,20,"Message Received Overflow"); fl_set_object_lsize(obj,FL_TINY_SIZE); fdui->button_err_8 = obj = fl_add_checkbutton(FL_PUSH_BUTTON,105,405,120,20,"Sent Packet Overflow"); fl_set_object_lsize(obj,FL_TINY_SIZE); fdui->button_err_9 = obj = fl_add_checkbutton(FL_PUSH_BUTTON,105,425,130,20,"Received Packet Overflow"); fl_set_object_lsize(obj,FL_TINY_SIZE); fdui->button_err_10 = obj = fl_add_checkbutton(FL_PUSH_BUTTON,105,445,100,20,"Illegal LRM Access"); fl_set_object_lsize(obj,FL_TINY_SIZE); fdui->button_err_11 = obj = fl_add_checkbutton(FL_PUSH_BUTTON,105,465,80,20,"LMI Overflow"); fl_set_object_lsize(obj,FL_TINY_SIZE); obj = fl_add_text(FL_NORMAL_TEXT,325,370,75,15,"Tx/Rx Balance"); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); obj = fl_add_text(FL_NORMAL_TEXT,325,405,75,15,"Packet Length"); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); obj = fl_add_text(FL_NORMAL_TEXT,255,350,45,15,"Control"); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); obj = fl_add_frame(FL_ENGRAVED_FRAME,245,440,165,50,""); fdui->button_other_0 = obj = fl_add_checkbutton(FL_PUSH_BUTTON,250,445,80,20,"Tx"); fl_set_object_lsize(obj,FL_TINY_SIZE); fdui->button_other_1 = obj = fl_add_checkbutton(FL_PUSH_BUTTON,250,465,80,20,"Rx"); fl_set_object_lsize(obj,FL_TINY_SIZE); fdui->button_other_2 = obj = fl_add_checkbutton(FL_PUSH_BUTTON,325,445,80,20,"RCube"); fl_set_object_lsize(obj,FL_TINY_SIZE); fdui->button_other_3 = obj = fl_add_checkbutton(FL_PUSH_BUTTON,325,465,80,20,"Loopback"); fl_set_object_lsize(obj,FL_TINY_SIZE); fdui->tx_rx = obj = fl_add_valslider(FL_HOR_NICE_SLIDER,250,365,75,25,""); fl_set_slider_return(obj, FL_RETURN_CHANGED); fdui->pack_len = obj = fl_add_valslider(FL_HOR_NICE_SLIDER,250,400,75,25,""); fl_set_slider_return(obj, FL_RETURN_CHANGED); fl_end_form(); return fdui; }
static int BMP_description( FL_IMAGE * im ) { SPEC *sp = fl_calloc( 1, sizeof *sp ); char buf[ 40 ]; if ( fread( buf, 1, 2, im->fpin ) != 2 ) { im->error_message( im, "error while readin bmp file" ); fl_free( sp ); return -1; } sp->fsize = fli_fget4LSBF( im->fpin ); if ( fread( buf, 1, 4, im->fpin ) != 4 ) { im->error_message( im, "error while reading bmp file" ); fl_free( sp ); return -1; } sp->offset = fli_fget4LSBF( im->fpin ); sp->infosize = fli_fget4LSBF( im->fpin ); if ( sp->infosize != 40 && sp->infosize != 64 ) { im->error_message( im, "unsupported old obsolete bmp file" ); fl_free( sp ); return -1; } im->io_spec = sp; sp->w = fli_fget4LSBF( im->fpin ); sp->h = fli_fget4LSBF( im->fpin ); sp->planes = fli_fget2LSBF( im->fpin ); sp->bpp = fli_fget2LSBF( im->fpin ); sp->encode = fli_fget4LSBF( im->fpin ); sp->isize = fli_fget4LSBF( im->fpin ); sp->xres = fli_fget4LSBF( im->fpin ); sp->yres = fli_fget4LSBF(im->fpin); sp->col_used = fli_fget4LSBF( im->fpin ); sp->col_important = fli_fget4LSBF( im->fpin ); if ( bad_bpp( sp->bpp ) ) { flimage_error( im, "%s: bad bpp (%d)", im->infile, sp->bpp ); fl_free( im->io_spec ); im->io_spec = 0; return -1; } if ( sp->infosize != 40 ) { int skip = sp->infosize - 40; if ( skip < 0 || fread( buf, 1, skip, im->fpin ) != ( size_t ) skip ) { flimage_error( im, "%s: error while reading bmp file", im->infile ); fl_free( im->io_spec ); im->io_spec = 0; return -1; } } im->w = sp->w; im->h = sp->h; /* read colormap */ if ( sp->bpp != 24 ) { int i; if ( ( im->map_len = sp->col_used ) <= 0 ) im->map_len = 1 << sp->bpp; flimage_getcolormap( im ); for ( i = 0; i < im->map_len; i++ ) { im->blue_lut[ i ] = getc( im->fpin ); im->green_lut[ i ] = getc( im->fpin ); im->red_lut[ i ] = getc( im->fpin ); im->alpha_lut[ i ] = getc( im->fpin ); } } sp->bpl = ( sp->w * sp->bpp + 7 ) / 8; sp->pad = ( ( sp->bpl + 3 ) / 4 ) * 4 - sp->bpl; /* pad to 4 bytes */ if ( sp->bpp == 24 ) im->type = FL_IMAGE_RGB; else if ( sp->bpp == 1 ) im->type = FL_IMAGE_MONO; else im->type = FL_IMAGE_CI; #if BMPDEBUG dump_header( "after read", sp ); #endif if ( im->setup->header_info ) generate_header_info( im ); return 1; }
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 = (FD_main_frm *) fl_calloc(1, sizeof(*fdui)); 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_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,15,310,140,110,"CH TX1"); 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_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,180,310,140,110,"CH TX2"); 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->ch13_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,15,450,140,110,"CH TX3"); 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->ch14_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,180,450,140,110,"CH TX4"); 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_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,325,310,140,110,"CH TX1"); 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_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,490,310,140,110,"CH TX2"); 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->ch23_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,325,450,140,110,"CH TX3"); 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->ch24_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,490,450,140,110,"CH TX4"); 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,130,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_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); 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_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fl_set_object_lstyle(obj,FL_BOLD_STYLE); fdui->mode_lbl = obj = fl_add_text(FL_NORMAL_TEXT,640,160,90,20,"Mode: SGL"); 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_LEFT|FL_ALIGN_INSIDE); fl_set_object_lstyle(obj,FL_BOLD_STYLE); fdui->idx_lbl = obj = fl_add_text(FL_NORMAL_TEXT,730,160,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_RIGHT|FL_ALIGN_INSIDE); fl_set_object_lstyle(obj,FL_BOLD_STYLE); obj = fl_add_box(FL_ROUNDED_BOX,460,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_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->cap_xyp = obj = fl_add_xyplot(FL_NORMAL_XYPLOT,640,310,200,250,"Capacity"); 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->refresh_lbl = obj = fl_add_text(FL_NORMAL_TEXT,655,185,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_dial_bounds(obj, 0, 5); fl_set_dial_angles(obj, 45, 315); fl_set_dial_value(obj, 1); fl_set_dial_step(obj, 1); fl_set_dial_return(obj, FL_RETURN_CHANGED); obj = fl_add_box(FL_ROUNDED_BOX,860,460,140,140,""); 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,210,180,20,"BLER:: 0"); 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,235,180,20,"Rec'd frms: 0"); 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); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); 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); obj = fl_add_box(FL_ROUNDED_BOX,610,610,180,90,""); fl_set_object_color(obj,FL_WHEAT,FL_COL1); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fdui->terminal_mode_btn = obj = fl_add_button(FL_NORMAL_BUTTON,635,620,130,20,"terminal mode"); 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_callback(obj,terminal_mode_callback,0); fdui->single_led = obj = fl_add_box(FL_EMBOSSED_BOX,640,650,10,10,"Single user"); fl_set_object_color(obj,FL_RIGHT_BCOL,FL_COL1); fl_set_object_lsize(obj,FL_TINY_SIZE); fl_set_object_lalign(obj,FL_ALIGN_RIGHT); fdui->multi_led = obj = fl_add_box(FL_EMBOSSED_BOX,640,670,10,10,"Multi user"); fl_set_object_color(obj,FL_RIGHT_BCOL,FL_COL1); fl_set_object_lsize(obj,FL_TINY_SIZE); fl_set_object_lalign(obj,FL_ALIGN_RIGHT); fdui->mmse_btn = obj = fl_add_button(FL_PUSH_BUTTON,480,655,100,20,"MMSE"); 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_callback(obj,rx_mode_button_callback,1); fdui->ml_btn = obj = fl_add_button(FL_PUSH_BUTTON,480,675,100,20,"ML"); 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_callback(obj,rx_mode_button_callback,2); 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->file_index_dial = obj = fl_add_dial(FL_NORMAL_DIAL,890,485,80,70,"file index"); 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,file_index_callback,0); fl_set_dial_bounds(obj, 0, 100); fl_set_dial_angles(obj, 10, 350); fl_set_dial_value(obj, 0); fl_set_dial_step(obj, 10); obj = fl_add_button(FL_NORMAL_BUTTON,870,560,40,30,"+"); fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); fl_set_object_lstyle(obj,FL_BOLD_STYLE); fl_set_object_callback(obj,file_index_callback,1); obj = fl_add_button(FL_NORMAL_BUTTON,950,560,40,30,"-"); fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); fl_set_object_lstyle(obj,FL_BOLD_STYLE); fl_set_object_callback(obj,file_index_callback,-1); obj = fl_add_box(FL_ROUNDED_BOX,860,320,140,130,""); fl_set_object_color(obj,FL_PALEGREEN,FL_COL1); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fdui->num_sym_dial = obj = fl_add_dial(FL_NORMAL_DIAL,890,340,80,70,"number of symbols"); 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_dial_bounds(obj, 0, 5); fl_set_dial_angles(obj, 30, 360); fl_set_dial_value(obj, 0); fl_set_dial_step(obj, 0.5); 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_PUSH_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_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_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_callback(obj,config_btn_callback,0); obj = fl_add_box(FL_ROUNDED_BOX,250,610,200,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,270,650,40,40,"CH1"); fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); fl_set_object_lstyle(obj,FL_BOLD_STYLE); fl_set_object_callback(obj,terminal_button_callback,1); fdui->terminal_btn2 = obj = fl_add_button(FL_PUSH_BUTTON,310,650,40,40,"CH2"); fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); fl_set_object_lstyle(obj,FL_BOLD_STYLE); fl_set_object_callback(obj,terminal_button_callback,2); fdui->terminal_btn3 = obj = fl_add_button(FL_PUSH_BUTTON,350,650,40,40,"MR1"); fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); fl_set_object_lstyle(obj,FL_BOLD_STYLE); fl_set_object_callback(obj,terminal_button_callback,3); fdui->terminal_btn4 = obj = fl_add_button(FL_PUSH_BUTTON,390,650,40,40,"MR2"); fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); fl_set_object_lstyle(obj,FL_BOLD_STYLE); fl_set_object_callback(obj,terminal_button_callback,4); obj = fl_add_text(FL_NORMAL_TEXT,300,620,110,20,"terminal number"); fl_set_object_color(obj,FL_PALEGREEN,FL_MCOL); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); 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_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_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_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_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_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_callback(obj,noise_snr_callback,1); fdui->num_sym_plus = obj = fl_add_button(FL_NORMAL_BUTTON,870,415,40,30,"+"); fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); fl_set_object_lstyle(obj,FL_BOLD_STYLE); fdui->num_sym_minus = obj = fl_add_button(FL_NORMAL_BUTTON,950,415,40,30,"-"); fl_set_object_boxtype(obj,FL_ROUNDED3D_UPBOX); fl_set_object_color(obj,FL_LIGHTER_COL1,FL_COL1); fl_set_object_lstyle(obj,FL_BOLD_STYLE); fdui->rx_mode_lbl = obj = fl_add_text(FL_NORMAL_TEXT,650,260,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->single_btn = obj = fl_add_button(FL_PUSH_BUTTON,480,635,100,20,"SINGLE"); 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_callback(obj,rx_mode_button_callback,0); obj = fl_add_text(FL_NORMAL_TEXT,480,615,100,20,"receiver mode"); fl_set_object_boxtype(obj,FL_NO_BOX); fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE); fl_end_form(); fdui->main_frm->fdui = fdui; return fdui; }