Exemplo n.º 1
0
void create_form_HelpForm(void)
{
  FL_OBJECT *obj;

  if (HelpForm)
     return;

  HelpForm = fl_bgn_form(FL_NO_BOX,530,340);
  obj = fl_add_box(FL_UP_BOX,0,0,530,340,"");
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
  HelpBrowser = obj = fl_add_browser(FL_NORMAL_BROWSER,10,35,510,275,"");
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
  obj = fl_add_text(FL_NORMAL_TEXT,10,10,435,20,"Not Knot: The Software   Interactive Hyperbolic Flythrough");
    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_NORMAL_SIZE);
    fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
    fl_set_object_lstyle(obj,FL_BOLD_STYLE);
  Done = obj = fl_add_button(FL_NORMAL_BUTTON,455,10,60,20,"Done");
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
    fl_set_object_callback(obj,DoneProc,0);

  DiagramGroup = fl_bgn_group();
  EucDiag = obj = fl_add_button(FL_RADIO_BUTTON,95,310,140,25,"Euclidean Diagram");
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
    fl_set_object_callback(obj,DiagProc,EUC);
  HypDiag = obj = fl_add_button(FL_RADIO_BUTTON,305,310,150,25,"Hyperbolic Diagram");
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
    fl_set_object_callback(obj,DiagProc,HYP);
  fl_end_group();

  fl_end_form();

}
Exemplo n.º 2
0
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;
}
Exemplo n.º 3
0
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;
}
Exemplo n.º 4
0
NeoWindow::NeoWindow( char **args, Neoterics *owner ) : neo( owner ), mainWin( NULL ), options_box( NULL ),
                         nnet_plot( NULL ), chart_wind( NULL ) { //, portal( NULL ) {
#undef int
   int tmp = (int) 1;
   if ( ! neo->dontShowDisplayAtAll ) fl_initialize( &tmp, args, args[0], 0, 0 );
#define int short
   pixmap = NULL;
   display = XOpenDisplay( "" );
   if ( display == NULL ) throw( "cannot connect to server" );
   screen = DefaultScreen( display );
   mainWin = create_form_mainWindow();
   fl_show_form( mainWin->mainWindow, FL_PLACE_MOUSE | FL_FREE_SIZE, FL_TRANSIENT, neo->programName );
   ::XFlush( display );
   Window window = FL_ObjWin( mainWin->mainCanvas );
   if ( window == (Window) NULL ) throw( "cannot open window" );
   destination = window;
   gc = ::XCreateGC( display, window, 0, 0 );
   changed = true; // Why it has to be here and not at the top, I dont know

   fl_add_canvas_handler( mainWin->mainCanvas, Expose, expose_callback, (void *) this );
   fl_add_canvas_handler( mainWin->mainCanvas, ButtonPress, buttonRelease_callback, (void *) this );
   fl_add_canvas_handler( mainWin->mainCanvas, ButtonRelease, buttonRelease_callback, (void *) this );
   fl_set_scrollbar_return( mainWin->scroll_h, FL_RETURN_CHANGED );
   fl_set_scrollbar_return( mainWin->scroll_v, FL_RETURN_CHANGED );
   fl_set_object_callback( mainWin->scroll_h, scroll_callback, (long) this );
   fl_set_object_callback( mainWin->scroll_v, scroll_callback, (long) this );
   cmap = fl_get_canvas_colormap( mainWin->mainCanvas );

   action_color[moveForward].red = 0x0000; //  Forward color
   action_color[moveForward].green = 0x0000;
   action_color[moveForward].blue = 0xFFFF;
   action_color[turnRight].red = 0x0000; //  Turn Right
   action_color[turnRight].green = 0x0000;
   action_color[turnRight].blue = 0xFFFF;
   action_color[turnLeft].red = 0x0000; //  Turn Left
   action_color[turnLeft].green = 0x0000;
   action_color[turnLeft].blue = 0xFFFF;
   action_color[eat].red = 0x0000; //  Eat
   action_color[eat].green = 0xFFFF;
   action_color[eat].blue = 0xFFFF;
   action_color[breed].red = 0xFFFF; //  Breed
   action_color[breed].green = 0x0000;
   action_color[breed].blue = 0xFFFF;
   action_color[fight].red = 0xFFFF; //  Fight
   action_color[fight].green = 0xFFFF;
   action_color[fight].blue = 0x0000;   

   if ( ! neo->startoffDisplaying ) neo->keepDrawing = false;

#define offscreen
#ifdef offscreen
   pixmap = XCreatePixmap( display, window, mainWin->mainCanvas->w, mainWin->mainCanvas->h,
			   DefaultDepth( display, screen ) );
#endif
}
Exemplo n.º 5
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.º 6
0
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;
}
Exemplo n.º 7
0
int
main( int    argc,
      char * argv[ ] )
{
    FL_FORM *form;
    FL_OBJECT *obj;

    fl_initialize( &argc, argv, "FormDemo", 0, 0 );

    form = fl_bgn_form( FL_UP_BOX, 360, 140);

    obj = fl_add_button( FL_TOUCH_BUTTON, 50, 30, 40, 30, "@<<" );
    fl_set_object_boxtype( obj, FL_FRAME_BOX );
    fl_set_object_color( obj, FL_COL1, FL_INDIANRED );
    fl_set_object_callback( obj, show_val, -5 );
    fl_set_button_shortcut( obj, "1", 0 );

    obj = fl_add_button( FL_TOUCH_BUTTON, 90, 30, 40, 30, "@<" );
    fl_set_object_boxtype( obj, FL_FRAME_BOX );
    fl_set_object_color( obj, FL_COL1, FL_INDIANRED );
    fl_set_object_callback( obj,  show_val, -1 );
    fl_set_button_shortcut( obj, "2",  0 );

    valobj = obj = fl_add_box( FL_BORDER_BOX, 130, 30, 100, 30, "" );
    fl_set_object_color( obj, FL_LEFT_BCOL, FL_LEFT_BCOL );

    obj = fl_add_button( FL_TOUCH_BUTTON, 230, 30, 40, 30, "@>" );
    fl_set_object_boxtype( obj, FL_FRAME_BOX );
    fl_set_object_color( obj, FL_COL1, FL_INDIANRED );
    fl_set_object_callback( obj, show_val, 1 );
    fl_set_button_shortcut( obj, "3", 0 );

    obj = fl_add_button( FL_TOUCH_BUTTON, 270, 30, 40, 30, "@>>" );
    fl_set_object_boxtype( obj, FL_FRAME_BOX );
    fl_set_object_callback( obj, show_val, 5 );
    fl_set_object_color( obj, FL_COL1, FL_INDIANRED );
    fl_set_button_shortcut( obj, "4", 0 );

    fl_add_button( FL_NORMAL_BUTTON, 220, 90, 100, 30, "Exit" );

    fl_end_form( );

    fl_show_form( form, FL_PLACE_CENTER, FL_NOBORDER, "Touch Buttons" );

    fl_do_forms( );
    fl_finish( );

    return 0;
}
Exemplo n.º 8
0
void create_form_clock(void)
{
   FL_OBJECT *obj;

   if (fclock)
       return;

   fclock = fl_bgn_form(FL_NO_BOX,500,350);
   obj = fl_add_box(FL_UP_BOX,0,0,500,350,"");

   obj = fl_add_clock(FL_DIGITAL_CLOCK,185,20,150,35,"");
   fl_set_object_boxtype(obj,FL_ROUNDED_BOX); 
   fl_set_object_color(obj,FL_COL1,FL_BLACK);
   fl_set_object_lsize(obj,FL_MEDIUM_SIZE);
   fl_set_object_lstyle(obj,FL_BOLD_STYLE);

   obj = fl_add_clock(FL_ANALOG_CLOCK,30,70,220,200,"");
   fl_set_object_boxtype(obj,FL_UP_BOX);

   obj = fl_add_clock(FL_ANALOG_CLOCK,260,70,220,200,"");
   fl_set_object_boxtype(obj,FL_OVAL3D_UPBOX);
   obj = fl_add_button(FL_NORMAL_BUTTON,375,300,110,35,"Exit");
   fl_set_object_callback(obj, exit_cb, 0);
   fl_end_form();

   fl_scale_form(fclock, 0.7, 0.7);
}
Exemplo n.º 9
0
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;
}
Exemplo n.º 10
0
int main(int argc, char *argv[]){

   FL_FORM *form;
   FL_OBJECT *obj;
  
  fl_initialize(&argc, argv, "FormDemo", 0, 0);
  form = fl_bgn_form(FL_UP_BOX,320,120);
    fl_add_box(FL_NO_BOX,160,40,0,0,"Welcome to LanAdmin");
    obj = fl_add_button(FL_NORMAL_BUTTON,40,70,80,30,"Connect");
    fl_set_object_callback(obj, connect_cback,0);
    obj = fl_add_button(FL_NORMAL_BUTTON,200,70,80,30,"Leave");
    fl_set_object_callback(obj, leave_cback,0);
  fl_end_form();

  fl_show_form(form,FL_PLACE_MOUSE,FL_TRANSIENT,"LanAdmin");

  fl_do_forms();
  return 0;
}
Exemplo n.º 11
0
static void g3d_create_dof2_counter(void){
  p3d_rob *robotPt;

  robotPt = (p3d_rob*) p3d_get_desc_curid(P3D_ROBOT);
  g3d_create_counter(&DOF2_COUNTER,FL_SIMPLE_COUNTER,50,15,"dof2",(void**)&PATH_DEFORM_FORM,1);
  fl_set_counter_precision(DOF2_COUNTER, 0);
  fl_set_counter_bounds(DOF2_COUNTER, 0, robotPt->nb_user_dof-1);
  fl_set_counter_step(DOF2_COUNTER, 1, 1);
  fl_set_counter_value (DOF2_COUNTER,  p3d_get_dof2());
  fl_set_object_callback(DOF2_COUNTER,CB_dof2_counter,0);
}
Exemplo n.º 12
0
void anim_reactive_collision_interface(AnimProb * AnimProbPt) {

  int NofCoef;

  NofCoef = XYZ_ANIM.animation[0]->nof_coef;
  ZANIM = AnimProbPt;
  
  if (ARCI != NULL) {
    fl_hide_form(ARCI);
    fl_free_form(ARCI);
    ARCI = NULL;
  }
  
  ARCI = fl_bgn_form(FL_UP_BOX, 200, 370);

  ARCI_REAC_TIME = fl_add_valslider (FL_HOR_SLIDER, 10, 10, 180, 20, "Reaction Time");
  fl_set_slider_bounds (ARCI_REAC_TIME, 0, 3);
  fl_set_slider_value  (ARCI_REAC_TIME, 1);
  fl_set_slider_step   (ARCI_REAC_TIME, 0.1);

  ARCI_CONST_BLOCKS =  fl_add_button(FL_NORMAL_BUTTON, 10, 50, 180, 20, "Constitute Blocks");
  fl_set_object_callback(ARCI_CONST_BLOCKS, anim_arci_cb, 10);
  
  ARCI_NOF_BLOCK = fl_add_text(FL_NORMAL_TEXT, 10, 80, 180, 20, "");
  anim_udpate_nof_blocks();

  ARCI_NOF_ATTEMPTS = fl_add_valslider (FL_HOR_SLIDER, 10, 110, 180, 20, "Number of Attempt for Solving Collisions");
  fl_set_slider_bounds (ARCI_NOF_ATTEMPTS, 0, 1000);
  fl_set_slider_value  (ARCI_NOF_ATTEMPTS, 100);
  fl_set_slider_step   (ARCI_NOF_ATTEMPTS, 10);

  ARCI_SOLVE_COL = fl_add_button(FL_NORMAL_BUTTON, 10, 150, 180, 20, "Solve Blocks");
  fl_set_object_callback(ARCI_SOLVE_COL, anim_arci_cb, 11);

  ARCI_SOLVED = fl_add_text(FL_NORMAL_TEXT, 10, 180, 180, 20, "");
  anim_udpate_solved();

  ARCI_SHOW_SOL = fl_add_button(FL_NORMAL_BUTTON, 10, 210, 180, 20, "Show Solution(s)");
  fl_set_object_callback(ARCI_SHOW_SOL, anim_arci_cb, 12);
      
  ARCI_OPTIM = fl_add_button(FL_NORMAL_BUTTON, 10, 240, 180, 20, "Optimize Solution(s)");
  fl_set_object_callback(ARCI_OPTIM, anim_arci_cb, 13);

  ARCI_OPTIMIZED = fl_add_text(FL_NORMAL_TEXT, 10, 270, 180, 20, "");
  anim_udpate_optimized();

  ARCI_SHOW_OPTIM = fl_add_button(FL_NORMAL_BUTTON, 10, 300, 180, 20, "Show Optimized Solution(s)");
  fl_set_object_callback(ARCI_SHOW_OPTIM, anim_arci_cb, 14);

  ARCI_CLOSE = fl_add_button(FL_NORMAL_BUTTON, 10, 330, 180, 20, "Close");
  fl_set_object_callback(ARCI_CLOSE, anim_arci_cb, 15);
  
  fl_end_form();
  fl_show_form (ARCI, FL_PLACE_SIZE, FL_FULLBORDER, "Reactive collisions");
}
Exemplo n.º 13
0
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;
}
Exemplo n.º 14
0
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;   
}
Exemplo n.º 15
0
void create_form_Example(void)
{
  FL_OBJECT *obj;

  if (Example)
     return;

  Example = fl_bgn_form(FL_NO_BOX,340,130);
  obj = fl_add_box(FL_UP_BOX,0,0,340,130,"");
    fl_set_object_lsize(obj,11);
  VelocitySlider = obj = fl_add_slider(FL_HOR_SLIDER,10,60,320,30,"Velocity");
    fl_set_object_lsize(obj,FL_LARGE_SIZE);
    fl_set_object_callback(obj,VelocityProc,0);
  obj = fl_add_text(FL_NORMAL_TEXT,10,10,320,30,"EXAMPLE");
    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_NORMAL_STYLE+FL_ENGRAVED_STYLE);
  fl_end_form();

}
Exemplo n.º 16
0
FD_lte_phy_scope_enb *create_lte_phy_scope_enb( void ) {

    FL_OBJECT *obj;
    FD_lte_phy_scope_enb *fdui = fl_malloc( sizeof *fdui );
    
    // Define form
    fdui->lte_phy_scope_enb = fl_bgn_form( FL_NO_BOX, 800, 600 );

    // This the whole UI box
    obj = fl_add_box( FL_BORDER_BOX, 0, 0, 800, 600, "" );
    fl_set_object_color( obj, FL_BLACK, FL_BLACK );

    // Received signal
    fdui->rxsig_t = fl_add_xyplot( FL_NORMAL_XYPLOT, 20, 20, 370, 100, "Received Signal (Time-Domain, dB)" );
    fl_set_object_boxtype( fdui->rxsig_t, FL_EMBOSSED_BOX );
    fl_set_object_color( fdui->rxsig_t, FL_BLACK, FL_RED );
    fl_set_object_lcolor( fdui->rxsig_t, FL_WHITE ); // Label color
    fl_set_xyplot_ybounds(fdui->rxsig_t,30,70);

    // Time-domain channel response
    fdui->chest_t = fl_add_xyplot( FL_NORMAL_XYPLOT, 410, 20, 370, 100, "Channel Impulse Response (samples, abs)" );
    fl_set_object_boxtype( fdui->chest_t, FL_EMBOSSED_BOX );
    fl_set_object_color( fdui->chest_t, FL_BLACK, FL_RED );
    fl_set_object_lcolor( fdui->chest_t, FL_WHITE ); // Label color

    // Frequency-domain channel response
    fdui->chest_f = fl_add_xyplot( FL_IMPULSE_XYPLOT, 20, 140, 760, 100, "Channel Frequency  Response (RE, dB)" );
    fl_set_object_boxtype( fdui->chest_f, FL_EMBOSSED_BOX );
    fl_set_object_color( fdui->chest_f, FL_BLACK, FL_RED );
    fl_set_object_lcolor( fdui->chest_f, FL_WHITE ); // Label color
    fl_set_xyplot_ybounds( fdui->chest_f,30,70);

    // LLR of PUSCH
    fdui->pusch_llr = fl_add_xyplot( FL_POINTS_XYPLOT, 20, 260, 500, 200, "PUSCH Log-Likelihood Ratios (LLR, mag)" );
    fl_set_object_boxtype( fdui->pusch_llr, FL_EMBOSSED_BOX );
    fl_set_object_color( fdui->pusch_llr, FL_BLACK, FL_YELLOW );
    fl_set_object_lcolor( fdui->pusch_llr, FL_WHITE ); // Label color
    fl_set_xyplot_symbolsize( fdui->pusch_llr,2);    

    // I/Q PUSCH comp
    fdui->pusch_comp = fl_add_xyplot( FL_POINTS_XYPLOT, 540, 260, 240, 200, "PUSCH I/Q of MF Output" );
    fl_set_object_boxtype( fdui->pusch_comp, FL_EMBOSSED_BOX );
    fl_set_object_color( fdui->pusch_comp, FL_BLACK, FL_YELLOW );
    fl_set_object_lcolor( fdui->pusch_comp, FL_WHITE ); // Label color
    fl_set_xyplot_symbolsize( fdui->pusch_comp,2);
    fl_set_xyplot_xgrid( fdui->pusch_llr,FL_GRID_MAJOR);
    
    // Throughput on PUSCH
    fdui->pusch_tput = fl_add_xyplot( FL_NORMAL_XYPLOT, 20, 480, 500, 100, "PUSCH Throughput [frame]/[kbit/s]" );
    fl_set_object_boxtype( fdui->pusch_tput, FL_EMBOSSED_BOX );
    fl_set_object_color( fdui->pusch_tput, FL_BLACK, FL_WHITE );
    fl_set_object_lcolor( fdui->pusch_tput, FL_WHITE ); // Label color

    // Generic eNB Button
    fdui->button_0 = fl_add_button( FL_PUSH_BUTTON, 540, 480, 240, 40, "" );
    fl_set_object_lalign(fdui->button_0, FL_ALIGN_CENTER );
    fl_set_button(fdui->button_0,0);
    otg_enabled = 0;
    fl_set_object_label(fdui->button_0, "DL Traffic OFF");
    fl_set_object_color(fdui->button_0, FL_RED, FL_RED);  
    fl_set_object_callback(fdui->button_0, dl_traffic_on_off, 0 );

    fl_end_form( );
    fdui->lte_phy_scope_enb->fdui = fdui;

    return fdui;
}
Exemplo n.º 17
0
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;
}
Exemplo n.º 18
0
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();

}
Exemplo n.º 19
0
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;
}
Exemplo n.º 20
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;
}
Exemplo n.º 21
0
void create_form_MainForm(void)
{
  FL_OBJECT *obj;

  if (MainForm)
     return;

  MainForm = fl_bgn_form(FL_NO_BOX,240,340);
  obj = fl_add_box(FL_UP_BOX,0,0,240,340,"");
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
  DodecScale = obj = fl_add_valslider(FL_HOR_SLIDER,10,313,226,22,"Scale Dodecahedron");
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
    fl_set_object_lalign(obj,FL_ALIGN_TOP);
    fl_set_object_lstyle(obj,FL_BOLD_STYLE);
    fl_set_object_callback(obj,ScaleProc,0);
  obj = fl_add_text(FL_NORMAL_TEXT,0,25,245,20,"Interactive Hyperbolic Flythrough");
    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_NORMAL_SIZE);
    fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
    fl_set_object_lstyle(obj,FL_BOLD_STYLE);
  obj = fl_add_text(FL_NORMAL_TEXT,0,215,80,30,"LAYERS");
    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_set_object_lstyle(obj,FL_BOLD_STYLE);
  obj = fl_add_text(FL_NORMAL_TEXT,5,140,230,15,"PATH");
    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_set_object_lstyle(obj,FL_BOLD_STYLE);
  Quit = obj = fl_add_button(FL_NORMAL_BUTTON,190,50,40,30,"Quit");
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
    fl_set_object_callback(obj,QuitProc,0);
  obj = fl_add_box(FL_SHADOW_BOX,0,285,245,5,"");
    fl_set_object_color(obj,FL_BLUE,FL_BLUE);
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
  obj = fl_add_box(FL_SHADOW_BOX,0,210,245,5,"");
    fl_set_object_color(obj,FL_BLUE,FL_BLUE);
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
  Info = obj = fl_add_button(FL_PUSH_BUTTON,10,50,170,30,"What's going on?");
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
    fl_set_object_callback(obj,InfoProc,0);
  obj = fl_add_box(FL_SHADOW_BOX,0,130,245,5,"");
    fl_set_object_color(obj,FL_BLUE,FL_BLUE);
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);

  PathGroup = fl_bgn_group();
  Direct = obj = fl_add_roundbutton(FL_RADIO_BUTTON,125,150,30,30,"Direct");
    fl_set_object_color(obj,FL_WHITE,FL_YELLOW);
    fl_set_object_lcolor(obj,223);
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
    fl_set_object_lstyle(obj,FL_BOLD_STYLE);
    fl_set_object_callback(obj,PathProc,DIRECT);
  Equi = obj = fl_add_roundbutton(FL_RADIO_BUTTON,125,175,30,30,"Equidistant");
    fl_set_object_color(obj,FL_WHITE,FL_YELLOW);
    fl_set_object_lcolor(obj,248);
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
    fl_set_object_lstyle(obj,FL_BOLD_STYLE);
    fl_set_object_callback(obj,PathProc,EQUI);
  Quarter = obj = fl_add_roundbutton(FL_RADIO_BUTTON,5,175,30,30,"Quarter Turn");
    fl_set_object_color(obj,FL_WHITE,FL_YELLOW);
    fl_set_object_lcolor(obj,135);
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
    fl_set_object_lstyle(obj,FL_BOLD_STYLE);
    fl_set_object_callback(obj,PathProc,QUARTER);
  Loop = obj = fl_add_roundbutton(FL_RADIO_BUTTON,5,150,30,30,"Full Loop");
    fl_set_object_color(obj,FL_WHITE,FL_YELLOW);
    fl_set_object_lcolor(obj,135);
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
    fl_set_object_lstyle(obj,FL_BOLD_STYLE);
    fl_set_object_callback(obj,PathProc,LOOP);
  fl_end_group();

  obj = fl_add_text(FL_NORMAL_TEXT,0,255,60,30,"STEPS");
    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_set_object_lstyle(obj,FL_BOLD_STYLE);
  obj = fl_add_box(FL_SHADOW_BOX,0,248,245,5,"");
    fl_set_object_color(obj,FL_BLUE,FL_BLUE);
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);

  GoGroup = fl_bgn_group();
  Go = obj = fl_add_roundbutton(FL_RADIO_BUTTON,20,88,55,45,"GO");
    fl_set_object_color(obj,FL_WHITE,FL_GREEN);
    fl_set_object_lcolor(obj,FL_GREEN);
    fl_set_object_lsize(obj,FL_LARGE_SIZE);
    fl_set_object_lstyle(obj,FL_BOLD_STYLE);
    fl_set_object_callback(obj,GoProc,1);
  Stop = obj = fl_add_roundbutton(FL_RADIO_BUTTON,110,88,55,45,"STOP");
    fl_set_object_color(obj,FL_WHITE,FL_RED);
    fl_set_object_lcolor(obj,FL_RED);
    fl_set_object_lsize(obj,FL_LARGE_SIZE);
    fl_set_object_lstyle(obj,FL_BOLD_STYLE);
    fl_set_object_callback(obj,GoProc,0);
  fl_end_group();


  TileGroup = fl_bgn_group();
  Level3 = obj = fl_add_roundbutton(FL_RADIO_BUTTON,195,215,30,30,"3");
    fl_set_object_color(obj,FL_WHITE,FL_YELLOW);
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
    fl_set_object_callback(obj,TilingProc,3);
  Level2 = obj = fl_add_roundbutton(FL_RADIO_BUTTON,155,215,30,30,"2");
    fl_set_object_color(obj,FL_WHITE,FL_YELLOW);
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
    fl_set_object_callback(obj,TilingProc,2);
  Level1 = obj = fl_add_roundbutton(FL_RADIO_BUTTON,115,215,30,30,"1");
    fl_set_object_color(obj,FL_WHITE,FL_YELLOW);
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
    fl_set_object_callback(obj,TilingProc,1);
  Level0 = obj = fl_add_roundbutton(FL_RADIO_BUTTON,75,215,30,30,"0");
    fl_set_object_color(obj,FL_WHITE,FL_YELLOW);
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
    fl_set_object_callback(obj,TilingProc,0);
  fl_end_group();


  SpeedGroup = fl_bgn_group();
  Speed2 = obj = fl_add_roundbutton(FL_RADIO_BUTTON,100,255,30,30,"20");
    fl_set_object_color(obj,FL_WHITE,FL_YELLOW);
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
    fl_set_object_callback(obj,SpeedProc,2);
  Speed3 = obj = fl_add_roundbutton(FL_RADIO_BUTTON,145,255,30,30,"40");
    fl_set_object_color(obj,FL_WHITE,FL_YELLOW);
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
    fl_set_object_callback(obj,SpeedProc,3);
  Speed4 = obj = fl_add_roundbutton(FL_RADIO_BUTTON,190,255,30,30,"80");
    fl_set_object_color(obj,FL_WHITE,FL_YELLOW);
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
    fl_set_object_callback(obj,SpeedProc,4);
  Speed1 = obj = fl_add_roundbutton(FL_RADIO_BUTTON,55,255,30,30,"10");
    fl_set_object_color(obj,FL_WHITE,FL_YELLOW);
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
    fl_set_object_callback(obj,SpeedProc,1);
  fl_end_group();

  obj = fl_add_text(FL_NORMAL_TEXT,5,5,240,20,"Not Knot: The Software");
    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_NORMAL_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_SHADOW_BOX,0,84,245,5,"");
    fl_set_object_color(obj,FL_BLUE,FL_BLUE);
    fl_set_object_lsize(obj,FL_NORMAL_SIZE);
  fl_end_form();

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