static bool GetList( gui_window *wnd, unsigned id, VFIELD **field, a_list **list ) { *field = GUIGetField( wnd, id ); if( *field == NULL ) { return( FALSE ); } *list = GUIGetList( *field ); if( *list == NULL ) { return( FALSE ); } return( TRUE ); }
static bool GetList( gui_window *wnd, gui_ctl_id id, VFIELD **field, a_list **list ) { *field = GUIGetField( wnd, id ); if( *field == NULL ) { return( false ); } *list = GUIGetList( *field ); if( *list == NULL ) { return( false ); } return( true ); }
void GUIRefreshControl( gui_window *wnd, unsigned id ) { a_dialog *ui_dlg_info; bool colours_set; VFIELD *field; field = GUIGetField( wnd, id ); if( field != NULL ) { ui_dlg_info = GUIGetDialog( wnd ); if( ui_dlg_info != NULL ) { colours_set = GUISetDialColours(); uiprintfield( ui_dlg_info, field ); if( colours_set ) { GUIResetDialColours(); } } } }
bool GUIDeleteField( gui_window *wnd, unsigned id ) { dialog_node *dlg_node; a_dialog *ui_dlg_info; int index; VFIELD *new_fields; VFIELD *field; int new_index; int i; gui_control *control; dlg_node = GUIGetDlgByWnd( wnd ); if( dlg_node == NULL ) { return( false ); } ui_dlg_info = dlg_node->ui_dlg_info; field = GUIGetField( wnd, id ); if( GetIndexOfField( ui_dlg_info, field, dlg_node->num_controls, &index ) ) { GUIDoFreeField( field, NULL ); new_fields = (VFIELD *)GUIMemAlloc( sizeof( VFIELD ) * dlg_node->num_controls ); for( i=0; i <= dlg_node->num_controls; i++ ) { new_index = i; if( i != index ) { if( i > index ) { new_index--; control = GUIGetControlByIndex( wnd, i ); if( control != NULL ) { control->index = new_index; } } memcpy( &new_fields[new_index], &ui_dlg_info->fields[i], sizeof( VFIELD ) ); } if( ui_dlg_info->other == &ui_dlg_info->fields[i] ) { if( i == index ) { ui_dlg_info->other = NULL; } else { ui_dlg_info->other = &new_fields[new_index]; } } if( ui_dlg_info->curr == &ui_dlg_info->fields[i] ) { if( i == index ) { ui_dlg_info->curr = NULL; } else { ui_dlg_info->curr = &new_fields[new_index]; } } if( ui_dlg_info->first == &ui_dlg_info->fields[i] ) { if( i == index ) { ui_dlg_info->first = NULL; } else { ui_dlg_info->first = &new_fields[new_index]; } } } GUIMemFree( ui_dlg_info->fields ); ui_dlg_info->fields = new_fields; dlg_node->num_controls--; return( true ); } return( false ); }