void sample_dialog( void ) { ui_event ui_ev; a_dialog *ui_dlg_info; static ui_event events[] = { __rend__, EV_ENTER, EV_ESCAPE, EV_SCREWUP, __end__ }; ui_dlg_info = uibegdialog( "TEST", FieldDialog, 12, 74, 0, 0 ); uipushlist( events ); for( ;; ) { ui_ev = uidialog( ui_dlg_info ); if( ui_ev == EV_ESCAPE || ui_ev == EV_ENTER ) { break; } else if( ui_ev == EV_SCREWUP ) { list_box.data_handle = list_data; uiupdatelistbox( &list_box ); } } uipoplist( /* events */ ); uienddialog( ui_dlg_info ); }
bool GUIListBoxDeleteItem( a_list *list, int choice ) { int size; char **data; int i; size = GUIListSize( list ); if( choice >= size ) { return( FALSE ); } data = (char **)list->data; list->data = (char ** )GUIMemAlloc( sizeof( char * ) * size ); if( list->data == NULL ) { list->data = data; return( FALSE ); } for( i = 0; i < choice; i++ ) { ((char**)list->data)[i] = data[i]; } GUIMemFree( data[choice] ); for( i = choice; i < size; i++ ) { ((char **)list->data)[i] = data[i+1]; } GUIMemFree( data ); if( choice >= GUIListSize( list ) ) { list->choice = 0; } uiupdatelistbox( list ); return( TRUE ); }
bool GUIListBoxAddTextList( a_list *list, unsigned items, void *handle, char *(*getstring)(void*,unsigned) ) { int i; char *curr_str; char **old_data; char **data; int choice; old_data = (char **)list->data; choice = -1; data = ResizeList( list, items, &choice ); if( data == NULL ) { return( FALSE ); } for( i = 0; i < items; ++i ) { curr_str = getstring( handle, i ); if( !AddString( data, curr_str, choice + i ) ) { return( FALSE ); } } GUIMemFree( old_data ); list->data = (void *)data; uiupdatelistbox( list ); return( TRUE ); }
bool GUIListBoxDeleteItem( a_list *list, gui_ctl_idx choice ) { gui_ctl_idx size; lb_data old_data; lb_data new_data; gui_ctl_idx i; size = GUIListSize( list ); if( choice >= size ) { return( false ); } new_data = (lb_data)GUIMemAlloc( sizeof( char * ) * size ); if( new_data == NULL ) { return( false ); } old_data = (lb_data)list->data_handle; for( i = 0; i < choice; i++ ) { new_data[i] = old_data[i]; } GUIMemFree( (void *)old_data[choice] ); for( i = choice; i < size; i++ ) { new_data[i] = old_data[i + 1]; } GUIMemFree( (void *)old_data ); list->data_handle = (const void *)new_data; if( choice >= GUIListSize( list ) ) { list->choice = 0; } uiupdatelistbox( list ); return( true ); }
bool GUIClearListBox( a_list *list ) { bool ret; GUIFreeList( list, FALSE ); ret = FillInEmptyList( list ); uiupdatelistbox( list ); return( ret ); }
static void fillListBox( char *name ) { unsigned index; index = HelpFindFirst( searchHdl, name, NULL ); listBox.choice = index; listBox.box->line = index; listBox.box->row = index; uiupdatelistbox( &listBox ); }
bool GUIListBoxTopIndex( a_list *list, int choice, bool set, int *ret ) { if( list->box == NULL ) { return( FALSE ); } if( set ) { list->box->line = choice; uiupdatelistbox( list ); } else { *ret = list->box->line; } return( TRUE ); }
bool GUIListBoxTopIndex( a_list *list, gui_ctl_idx choice, bool set, gui_ctl_idx *ret ) { if( list->box == NULL ) { return( false ); } if( set ) { list->box->line = choice; uiupdatelistbox( list ); } else { *ret = list->box->line; } return( true ); }
bool GUIListBoxAddText( a_list *list, char *text, int choice ) { char **data; char **old_data; old_data = (char **)list->data; data = ResizeList( list, 1, &choice ); if( data == NULL ) { return( FALSE ); } if( !AddString( data, text, choice ) ) { return( FALSE ); } GUIMemFree( old_data ); list->data = (void *)data; uiupdatelistbox( list ); return( TRUE ); }
bool GUIListBoxAddText( a_list *list, const char *text, gui_ctl_idx choice ) { lb_data new_data; lb_data old_data; old_data = (lb_data)list->data_handle; new_data = ResizeList( list, 1, &choice ); if( new_data == NULL ) { return( false ); } if( !AddString( new_data, text, choice ) ) { return( false ); } GUIMemFree( (void *)old_data ); list->data_handle = (const void *)new_data; uiupdatelistbox( list ); return( true ); }
bool GUIListCurr( a_list *list, gui_ctl_idx choice, bool set, gui_ctl_idx *ret ) { if( set ) { /* set */ if( list->get == NULL ) { list->get = uigetlistelement; } if( GUIListSize( list ) >= choice ) { list->choice = choice; uiupdatelistbox( list ); return( true ); } else { return( false ); } } else { /* get */ *ret = list->choice; return( true ); } }
bool GUIListCurr( a_list *list, int choice, bool set, int *ret ) { if( set ) { /* set */ if( list->get == NULL ) { list->get = ( bool (*) ( void *, unsigned, char *, unsigned ) ) uigetlistelement; } if( GUIListSize( list ) >= choice ) { list->choice = choice; uiupdatelistbox( list ); return( TRUE ); } else { return( FALSE ); } } else { /* get */ *ret = list->choice; return( TRUE ); } }
bool GUIListBoxAddTextList( a_list *list, int items, const void *data_handle, GUIPICKGETTEXT *getstring ) { int item; lb_data old_data; lb_data new_data; gui_ctl_idx choice; choice = -1; old_data = (lb_data)list->data_handle; new_data = ResizeList( list, items, &choice ); if( new_data == NULL ) { return( false ); } for( item = 0; item < items; ++item ) { if( !AddString( new_data, getstring( data_handle, item ), choice + item ) ) { return( false ); } } GUIMemFree( (void *)old_data ); list->data_handle = (const void *)new_data; uiupdatelistbox( list ); return( true ); }