Exemplo n.º 1
0
void create_form_MainForm()
{
  FL_OBJECT *obj;
  MainForm = fl_bgn_form(FL_NO_BOX,280.0,180.0);
  obj = fl_add_box(FL_UP_BOX,0.0,0.0,280.0,180.0,"");
  QuitButton = obj = fl_add_button(FL_NORMAL_BUTTON,200.0,70.0,60.0,40.0,"Quit");
    fl_set_object_lsize(obj,FL_LARGE_FONT);
    fl_set_call_back(obj,QuitProc,0);
  DrawButton = obj = fl_add_button(FL_NORMAL_BUTTON,20.0,70.0,150.0,40.0,"New Line");
    fl_set_object_lsize(obj,FL_LARGE_FONT);
    fl_set_call_back(obj,DrawButtonProc,0);
  UndoButton = obj = fl_add_button(FL_NORMAL_BUTTON,20.0,20.0,90.0,40.0,"Undo");
    fl_set_object_lsize(obj,FL_LARGE_FONT);
    fl_set_call_back(obj,UndoButtonProc,0);
  VertexButton = obj = fl_add_lightbutton(FL_PUSH_BUTTON,130.0,20.0,130.0,40.0,"Vertices Only");
    fl_set_call_back(obj,VertexButtonProc,0);
  obj = fl_add_text(FL_NORMAL_TEXT,0.0,110.0,280.0,50.0,"Click RIGHT mouse button on an\n object to draw lines.");
    fl_set_object_lcol(obj,4);
    fl_set_object_align(obj,FL_ALIGN_CENTER);
    fl_set_object_lstyle(obj,FL_BOLD_STYLE);
  obj = fl_add_text(FL_NORMAL_TEXT,0.0,150.0,280.0,30.0,"GRAFFITI");
    fl_set_object_align(obj,FL_ALIGN_CENTER);
    fl_set_object_lstyle(obj,FL_BOLD_STYLE);
  fl_end_form();
}
Exemplo n.º 2
0
void create_form_MainForm(void)
{
  FL_OBJECT *obj;

  if (MainForm)
     return;

  MainForm = fl_bgn_form(FL_NO_BOX,300,240);
  obj = fl_add_box(FL_UP_BOX,0,0,300,240,"");
    fl_set_object_lsize(obj,11);
  obj = fl_add_text(FL_NORMAL_TEXT,10,10,280,40,"Tack Down");
    fl_set_object_boxtype(obj,FL_NO_BOX);
    fl_set_object_color(obj,FL_COL1,FL_COL1);
    fl_set_object_lcolor(obj,FL_RED);
    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_NORMAL_STYLE+FL_ENGRAVED_STYLE);
  obj = fl_add_text(FL_NORMAL_TEXT,10,40,280,30,"Click button to fix target object in its current");
    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);
  TransButton = obj = fl_add_lightbutton(FL_NORMAL_BUTTON,10,150,130,40,"Tack Down");
    fl_set_object_color(obj,39,FL_YELLOW);
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
    fl_set_object_lstyle(obj,FL_BOLD_STYLE);
    fl_set_object_callback(obj,TransButtonProc,0);
  obj = fl_add_button(FL_NORMAL_BUTTON,160,150,130,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);
  obj = fl_add_text(FL_NORMAL_TEXT,10,60,280,30,"location in the selected coordinate system");
    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);
  worldButton = obj = fl_add_button(FL_RADIO_BUTTON,0,200,150,40,"World Coordinates");
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
  obj = fl_add_button(FL_RADIO_BUTTON,150,200,150,40,"Universe Coordinates");
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
  obj = fl_add_text(FL_NORMAL_TEXT,10,90,280,30,"For best results, make sure normalization");
    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);
  obj = fl_add_text(FL_NORMAL_TEXT,10,110,280,30,"is off and the target object is not the world.");
    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);
  fl_end_form();

}
Exemplo n.º 3
0
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;
}
Exemplo n.º 4
0
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;
}