Exemple #1
0
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 );
}
Exemple #3
0
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();
            }
        }
    }
}
Exemple #4
0
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 );
}