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; }
FD_mainWindow *create_form_mainWindow(void) { FL_OBJECT *obj; FD_mainWindow *fdui = (FD_mainWindow *) fl_calloc(1, sizeof(*fdui)); fdui->mainWindow = fl_bgn_form(FL_NO_BOX, 550, 490); obj = fl_add_box(FL_UP_BOX,0,0,550,490,""); fdui->mainCanvas = obj = fl_add_canvas(FL_NORMAL_CANVAS,10,40,510,420,""); fl_set_object_gravity(obj, FL_NorthWest, FL_SouthEast); fdui->scroll_h = obj = fl_add_scrollbar(FL_HOR_THIN_SCROLLBAR,10,465,510,20,""); fl_set_object_boxtype(obj,FL_DOWN_BOX); fl_set_object_gravity(obj, FL_SouthWest, FL_SouthEast); fl_set_scrollbar_step(obj, 0.1); fl_set_scrollbar_increment(obj, 0.1, 0.1); fdui->scroll_v = obj = fl_add_scrollbar(FL_VERT_THIN_SCROLLBAR,525,40,20,420,""); fl_set_object_boxtype(obj,FL_DOWN_BOX); fl_set_object_gravity(obj, FL_NorthEast, FL_SouthEast); fl_set_scrollbar_step(obj, 0.1); fl_set_scrollbar_increment(obj, 0.1, 0.1); fdui->pause = obj = fl_add_button(FL_NORMAL_BUTTON,410,5,80,30,"Pause"); fl_set_button_shortcut(obj,"Pp",1); fl_set_object_gravity(obj, FL_SouthEast, FL_SouthEast); fdui->step = obj = fl_add_button(FL_NORMAL_BUTTON,320,5,80,30,"Step (spc)"); fl_set_button_shortcut(obj," ",1); fl_set_object_gravity(obj, FL_SouthEast, FL_SouthEast); fdui->add_food = obj = fl_add_button(FL_NORMAL_BUTTON,140,5,80,30,"More Food (+)"); fl_set_button_shortcut(obj,"+",1); fl_set_object_gravity(obj, FL_SouthEast, FL_SouthEast); fdui->remove_food = obj = fl_add_button(FL_NORMAL_BUTTON,230,5,80,30,"Less Food (-)"); fl_set_button_shortcut(obj,"-",1); fl_set_object_gravity(obj, FL_SouthEast, FL_SouthEast); fdui->file_menu = obj = fl_add_menu(FL_PULLDOWN_MENU,10,10,50,20,"File"); fl_set_object_shortcut(obj,"Ff",1); fl_set_object_lalign(obj,FL_ALIGN_LEFT); fl_set_menu_entries(obj, fdmenu_file_menu_1); fdui->other_menu = obj = fl_add_menu(FL_PULLDOWN_MENU,60,10,60,20,"Other"); fl_set_object_shortcut(obj,"Oo",1); fl_set_object_lalign(obj,FL_ALIGN_LEFT); fl_set_menu_entries(obj, fdmenu_other_menu_2); fl_end_form(); fdui->mainWindow->fdui = fdui; return fdui; }
static FD_yesno * create_yesno( void ) { FD_yesno *fdui = malloc( sizeof *fdui ); int oldy = fli_inverted_y; int oldu = fl_get_coordunit( ); fli_inverted_y = 0; fl_set_coordunit( FL_COORD_PIXEL ); fdui->form = fl_bgn_form( FL_FLAT_BOX, 460, 130 ); fl_set_form_title( fdui->form, "Question" ); fdui->str = fl_add_box( FL_FLAT_BOX, 20, 15, 420, 65, "" ); fdui->yes = fl_add_button( FL_NORMAL_BUTTON, 85, 90, 80, 27, "Yes" ); fl_set_button_shortcut( fdui->yes, "Yy", 1 ); fdui->no = fl_add_button( FL_NORMAL_BUTTON, 295, 90, 80, 27, "No" ); fl_set_button_shortcut( fdui->no, "Nn", 1 ); fli_add_q_icon( 10, 20, 33, 33 ); fl_end_form( ); fl_register_raw_callback( fdui->form, FL_ALL_EVENT, fli_goodies_preemptive ); fl_set_form_atclose( fdui->form, fl_goodies_atclose, fdui->no ); if ( fli_cntl.buttonFontSize != FL_DEFAULT_SIZE ) fl_fit_object_label( fdui->no, 22, 2 ); fli_inverted_y = oldy; fl_set_coordunit( oldu ); return fdui; }
int fl_show_question( const char * str, int ans ) { FL_OBJECT *retobj; char shortcut[ 4 ]; int k = 0; if ( fd_yesno ) { fl_hide_form( fd_yesno->form ); fl_free_form( fd_yesno->form ); fl_free( fd_yesno ); } else fl_deactivate_all_forms( ); fd_yesno = create_yesno( ); default_ans = ans; fli_parse_goodies_label( fd_yesno->yes, FLQuestionYesLabel ); fli_parse_goodies_label( fd_yesno->no, FLQuestionNoLabel ); /* We don't set a shortcut if the first letter of the "yes" label is identical to all letters in the "no" label */ while ( fd_yesno->no->label[ k ] && tolower( ( int ) fd_yesno->yes->label[ 0 ] ) == tolower( ( int ) fd_yesno->yes->label[ k ] ) ) k++; if ( fd_yesno->no->label[ k ] ) { shortcut[ 0 ] = fd_yesno->yes->label[ 0 ]; shortcut[ 1 ] = tolower( ( int ) fd_yesno->yes->label[ 0 ] ); shortcut[ 2 ] = toupper( ( int ) fd_yesno->yes->label[ 0 ] ); shortcut[ 3 ] = '\0'; fl_set_button_shortcut( fd_yesno->yes, shortcut, 1 ); shortcut[ 0 ] = fd_yesno->no->label[ k ]; shortcut[ 1 ] = toupper( ( int ) fd_yesno->no->label[ k ] ); shortcut[ 2 ] = tolower( ( int ) fd_yesno->no->label[ k ] ); fl_set_button_shortcut( fd_yesno->no, shortcut, 1 ); } fli_get_goodie_title( fd_yesno->form, FLQuestionTitle ); fli_handle_goodie_font( fd_yesno->yes, fd_yesno->str ); fli_handle_goodie_font( fd_yesno->no, NULL ); fl_set_object_label( fd_yesno->str, str ); if ( ans == 1 ) fl_set_form_hotobject( fd_yesno->form, fd_yesno->yes ); else if ( ans == 0 ) fl_set_form_hotobject( fd_yesno->form, fd_yesno->no ); else fl_set_form_hotspot( fd_yesno->form, -1, -1 ); fl_show_form( fd_yesno->form, FL_PLACE_HOTSPOT, FL_TRANSIENT, fd_yesno->form->label ); fl_update_display( 0 ); while ( ( retobj = fl_do_only_forms( ) ) != fd_yesno->yes && retobj != fd_yesno->no ) /* empty */; k = retobj == fd_yesno->yes; fl_hide_form( fd_yesno->form ); fl_free_form( fd_yesno->form ); fli_safe_free( fd_yesno ); fl_activate_all_forms( ); return k; }