void GUIDoFreeField( VFIELD *field, a_radio_group **group ) { a_radio *radio; a_combo_box *combo_box; switch( field->typ ) { case FLD_HOT : GUIFreeHotSpot( field->u.hs ); break; case FLD_RADIO : radio = field->u.radio; if( ( group != NULL ) && ( *group != radio->group ) ) { FreeRadioGroup( radio->group ); *group = radio->group; } GUIFreeRadio( radio ); break; case FLD_CHECK : GUIFreeCheck( field->u.check ); break; case FLD_COMBOBOX : combo_box = field->u.combo; GUIFreeList( &combo_box->list, false ); FreeEdit( &combo_box->edit, false, true ); GUIMemFree( combo_box ); break; case FLD_EDIT : FreeEdit( field->u.edit, true, false ); break; case FLD_INVISIBLE_EDIT : FreeEdit( field->u.edit, true, true ); break; case FLD_EDIT_MLE: case FLD_LISTBOX : case FLD_PULLDOWN : GUIFreeList( field->u.list, true ); break; case FLD_FRAME : case FLD_TEXT : if( field->u.str != NULL ) { GUIMemFree( field->u.str ); } break; } }
bool GUIClearListBox( a_list *list ) { bool ret; GUIFreeList( list, FALSE ); ret = FillInEmptyList( list ); uiupdatelistbox( list ); return( ret ); }