Ejemplo n.º 1
0
Bool WdeFreeAllCustLibs ( void )
{
    LIST        *llist;
    WdeCustLib  *lib;

    if ( WdeCustomLibList != NULL ) {
        for ( llist = WdeCustomLibList; llist; llist = ListNext(llist) ) {
            lib = (WdeCustLib *) ListElement(llist);
            WdeFreeCustLib ( lib );
        }
        ListFree ( WdeCustomLibList );
        WdeCustomLibList = NULL;
    }

    if ( WdeLibList != NULL ) {
        for ( llist = WdeLibList; llist; llist = ListNext(llist) ) {
            lib = (WdeCustLib *) ListElement(llist);
            WdeFreeCustLib ( lib );
        }
        ListFree ( WdeLibList );
        WdeLibList = NULL;
    }

    return ( TRUE );
}
Ejemplo n.º 2
0
bool WdeRemoveResource( WdeResInfo *res_info )
{
    LIST *node;

    if( WdeResList == NULL ) {
        return( FALSE );
    }

    if( (node = ListFindElt( WdeResList, res_info )) != NULL ) {
        ListRemoveElt( &WdeResList, (void *)ListElement( node ) );
    } else {
        WdeWriteTrail( "WdeRemoveResource: res_info not found!" );
        return( FALSE );
    }

    if( WdeGetNumRes() == 1 ) {
        WdeOldStickyMode = WdeSetStickyMode( FALSE );
        WdeSetBaseObject( IDM_SELECT_MODE );
    }

    WdeFreeResInfo( res_info );

    if( WdeGetNumRes() == 1 ) {
        WdeSetAppMenuToRes( FALSE );
    }

    WdeDecNumRes();

    return( TRUE );
}
Ejemplo n.º 3
0
int WIsStringDialogMessage( MSG *msg, HACCEL accel_table )
{
    WHndlInfo   *hinfo;
    LIST        *l;
    int         ret;
    HWND        active;

    ret = FALSE;
    active = GetActiveWindow();

    for( l = WHndlList; l != NULL && !ret; l = ListNext( l ) ) {
        hinfo = ListElement( l );
        if( hinfo != NULL && hinfo->info->win == active ) {
            if( WDoesEditHaveFocus() ) {
                if( hinfo->info->edit_dlg != (HWND)NULL ) {
                    ret = IsDialogMessage( hinfo->info->edit_dlg, msg );
                }
                if( !ret ) {
                    ret = TranslateAccelerator( hinfo->info->win, accel_table, msg );
                }
            } else {
                ret = TranslateAccelerator( hinfo->info->win, accel_table, msg );
                if( !ret && hinfo->info->edit_dlg != (HWND)NULL ) {
                    ret = IsDialogMessage( hinfo->info->edit_dlg, msg );
                }
            }
        }
    }

    return( ret );
}
Ejemplo n.º 4
0
int main(int argc, char *argv[]) {
    /* Test the list implementation */
    struct ListElement* head = ListElement(0);
    append(head, 1);
    append(head, 2);
    append(head, 3);
    printList(head);
    deleteElem(&head, 2);
    puts("Aus der Mitte gelöscht:");
    printList(head);
    deleteElem(&head, 0);
    puts("Vom Anfang gelöscht:");
    printList(head);
    deleteElem(&head, 1);
    puts("Vom Ende gelöscht:");
    printList(head);
    freeAll(&head);
    /* Test the tree implementation */
    struct Node* root = Node(24);
    insert(&root, 23);
    insert(&root, 31);
    insert(&root, 19);
    insert(&root, 3);
    insert(&root, 84);
    insert(&root, 46);
    insert(&root, 12);
    printTree(root);
    freeTree(&root);
    return 0;
}
Ejemplo n.º 5
0
void WREFiniHints ( void )
{
    LIST             *plist;
    WREPopupListItem *p;

    for ( plist = WREPopupList; plist; plist = ListConsume ( plist ) ) {
        p = (WREPopupListItem *) ListElement ( plist );
        WREMemFree ( p );
    }
}
Ejemplo n.º 6
0
void WdeFiniHints( void )
{
    LIST             *plist;
    WdePopupListItem *p;

    for ( plist = WdePopupList; plist != NULL; plist = ListConsume ( plist ) ) {
        p = (WdePopupListItem *)ListElement( plist );
        WdeMemFree( p );
    }
}
Ejemplo n.º 7
0
OBJPTR FMEDITAPI FindOneObjPt( POINT pt )
/***************************************/
{
    LIST        *list;

    if( FindObjectsPt( pt, &list ) ) {
        return( ListElement( list ) );
    } else {
        return( NULL );
    }
}
Ejemplo n.º 8
0
void WdeHandleSizeToText( void )
{
    OBJPTR  obj;
    LIST    *l;

    l = WdeGetCurrObjectList();
    for( ; l != NULL; l = ListConsume( l ) ) {
        obj = ListElement( l );
        Forward( obj, SIZE_TO_TEXT, NULL, NULL );
    }
}
Ejemplo n.º 9
0
static WdeResDlgItem *WdeGetDlgItem( void )
{
    WdeResInfo          *rinfo;
    WdeResDlgItem       *ditem;

    ditem = NULL;
    rinfo = WdeGetCurrentRes();
    if( rinfo != NULL && rinfo->dlg_item_list != NULL ) {
        ditem = (WdeResDlgItem *)ListElement( rinfo->dlg_item_list );
    }

    return( ditem );
}
Ejemplo n.º 10
0
void WdeSOP( OBJPTR obj, OBJPTR parent )
{
    LIST       *ilist, *tlist, *clist;
    WdeResInfo *info;
    RECT        orect;
    OBJPTR      sib;
    OBJ_ID      id;
    bool        clear;
    POINT       origin;

    info = WdeGetCurrentRes();
    if( info == NULL ) {
        return;
    }
    GetClientRect( info->edit_win, &orect );

    GetOffset( &origin );
    OffsetRect( &orect, origin.x, origin.y );

    if( parent == NULL ) {
        GetObjectParent( obj, &parent );
        if( parent == NULL ) {
            return;
        }
    }

    Forward( parent, GET_SUBOBJ_LIST, &tlist, NULL );

    if( tlist != NULL && WdeFindObjectsInRect( &orect, &ilist, tlist ) && ilist != NULL ) {
        clist = NULL;
        tlist = NULL;
        for( ; ilist != NULL; ilist = ListConsume( ilist ) ) {
            sib = ListElement( ilist );
            if( (Forward( sib, IS_OBJECT_CLEAR, &clear, NULL ) && clear) ||
                (Forward( sib, IDENTIFY, &id, NULL ) && id == DIALOG_OBJ) ) {
                WdeInsertObject( &clist, sib );
            } else {
                WdeInsertObject( &tlist, sib );
            }
        }
        if( clist != NULL ) {
            WdeListConcat( &tlist, clist, 0 );
            ListFree( clist );
        }
        if( tlist != NULL ) {
            WdeReorderObjectWindows( tlist );
            ListFree( tlist );
        }
    }
}
Ejemplo n.º 11
0
void WdeShutdownToolBars( void )
{
    WdeToolBar  *tbar;
    LIST        *tlist;

    tlist = WdeListCopy( WdeToolBarList );
    for( ; tlist != NULL; tlist = ListConsume( tlist ) ) {
        tbar = ListElement( tlist );
        ToolBarDestroy( tbar->tbar );
    }
    ToolBarFini( NULL );

    ListFree( WdeToolBarList );
}
Ejemplo n.º 12
0
WHndlInfo *WFindHndlInfoR( WStringEditInfo *info )
{
    WHndlInfo   *hinfo;
    LIST        *l;

    for( l = WHndlList; l != NULL; l = ListNext( l ) ) {
        hinfo = ListElement( l );
        if( hinfo->info == info ) {
            return( hinfo );
        }
    }

    return( NULL );
}
Ejemplo n.º 13
0
WdeResDlgItem *WdeFindDialogInResInfo( WdeResInfo *res_info, int dlg )
{
    LIST            *dlist;

    if( dlg != -1 ) {
        for( dlist = res_info->dlg_item_list; dlist != NULL; dlist = ListNext( dlist ) ) {
            if( dlg-- == 0 ) {
                return( (WdeResDlgItem *)ListElement( dlist ) );
            }
        }
    }

    return( NULL );
}
Ejemplo n.º 14
0
WREPopupListItem *WREFindPopupListItem ( HMENU menu )
{
    LIST             *plist;
    WREPopupListItem *p;

    for ( plist = WREPopupList; plist; plist = ListNext ( plist ) ) {
        p = (WREPopupListItem *) ListElement ( plist );
        if ( p->menu == menu ) {
            return ( p );
        }
    }

    return ( NULL );
}
Ejemplo n.º 15
0
static OBJPTR WdeIsDialogInList( LIST *l )
{
    OBJ_ID  oid;
    OBJPTR  obj;

    for( ; l != NULL; l = ListNext( l ) ) {
        obj = ListElement( l );
        if( Forward( obj, IDENTIFY, &oid, NULL ) && oid == DIALOG_OBJ ) {
            return( obj );
        }
    }

    return( NULL );
}
Ejemplo n.º 16
0
WREAccelSession *WREFindResAccelSession( WREResInfo *rinfo )
{
    WREAccelSession *session;
    LIST            *slist;

    for( slist = WREAccSessions; slist != NULL; slist = ListNext( slist ) ) {
        session = (WREAccelSession *)ListElement( slist );
        if( session->rinfo == rinfo ) {
            return( session );
        }
    }

    return( NULL );
}
Ejemplo n.º 17
0
WREAccelSession *WREFindAccelSession( WAccelHandle hndl )
{
    WREAccelSession *session;
    LIST            *slist;

    for( slist = WREAccSessions; slist != NULL; slist = ListNext( slist ) ) {
        session = (WREAccelSession *)ListElement( slist );
        if( session->hndl == hndl ) {
            return( session );
        }
    }

    return( NULL );
}
Ejemplo n.º 18
0
WdeToolBar *WdeFindToolBar( HWND win )
{
    WdeToolBar *tbar;
    LIST       *tlist;

    for( tlist = WdeToolBarList; tlist != NULL; tlist = ListNext( tlist ) ) {
        tbar = ListElement( tlist );
        if( tbar->win == win ) {
            return( tbar );
        }
    }

    return( NULL );
}
Ejemplo n.º 19
0
WHndlInfo *WFindHndlInfo( WStringHandle hndl )
{
    WHndlInfo   *hinfo;
    LIST        *l;

    for( l = WHndlList; l != NULL; l = ListNext( l ) ) {
        hinfo = ListElement( l );
        if( hinfo->hndl == hndl ) {
            return( hinfo );
        }
    }

    return( NULL );
}
Ejemplo n.º 20
0
WREAccelSession *WREFindLangAccelSession( WResLangNode *lnode )
{
    WREAccelSession *session;
    LIST            *slist;

    for( slist = WREAccSessions; slist != NULL; slist = ListNext( slist ) ) {
        session = (WREAccelSession *)ListElement( slist );
        if( session->lnode == lnode ) {
            return( session );
        }
    }

    return( NULL );
}
Ejemplo n.º 21
0
void WdeFreeResList( void )
{
    LIST       *rlist;
    WdeResInfo *res_info;

    if( WdeResList != NULL ) {
        for( rlist = WdeResList; rlist != NULL; rlist = ListNext( rlist ) ) {
            res_info = (WdeResInfo *)ListElement( rlist );
            WdeSetCurrentRes( res_info );
            WdeFreeResInfo( res_info );
        }
        ListFree( WdeResList );
        WdeResList = NULL;
    }
}
Ejemplo n.º 22
0
void WdeFreeCustLibControls ( LIST **control_list )
{
    LIST           *clist;
    WdeCustControl *control;

    if ( (control_list != NULL) && (*control_list != NULL) ) {
        for ( clist = *control_list; clist; clist = ListNext(clist) ) {
            control = (WdeCustControl *) ListElement(clist);
            WdeFreeCustControl ( control );
        }
        ListFree ( *control_list );
        *control_list = NULL;
    } else {
        WdeWriteTrail("WdeFreeCustLibControls: NULL control_list!");
    }
}
Ejemplo n.º 23
0
WdeResInfo *WdeResInfoFromWin( HWND win )
{
    WdeResInfo  *info;
    LIST        *rlist;

    if( win != NULL ) {
        info = NULL;
        for( rlist = WdeResList; rlist != NULL; rlist = ListNext( rlist ) ) {
            info = (WdeResInfo *)ListElement( rlist );
            if( info->res_win == win ) {
                return( info );
            }
        }
    }

    return( NULL );
}
Ejemplo n.º 24
0
void WdeShowResourceWindows( int show )
{
    LIST        *rlist;
    WdeResInfo  *res_info;

    for( rlist = WdeResList; rlist != NULL; rlist = ListNext( rlist ) ) {
        res_info = (WdeResInfo *)ListElement( rlist );
        if( show == SW_HIDE ) {
            WdeSetEditMode( res_info, FALSE );
        }
        ShowWindow( res_info->res_win, show );
        EnableWindow( res_info->res_win, show != SW_HIDE );
        if( show != SW_HIDE ) {
            WdeSetEditMode( res_info, TRUE );
        }
    }
}
Ejemplo n.º 25
0
Bool WREIsResInfoWinMsg( LPMSG pmsg )
{
    WREResInfo *info;
    LIST       *rlist;

    info = NULL;
    for( rlist = WREResList; rlist != NULL; rlist = ListNext( rlist ) ) {
        info = (WREResInfo *)ListElement( rlist );
        if( info->info_win != (HWND)NULL ) {
            if( IsDialogMessage( info->info_win, pmsg ) ) {
                return( TRUE );
            }
        }
    }

    return( FALSE );
}
Ejemplo n.º 26
0
void WREFreeResList( void )
{
    LIST        *rlist;
    WREResInfo  *info;
    HWND        frame;

    if( WREResList != NULL ) {
        frame = WREGetMDIWindowHandle();
        for( rlist = WREResList; rlist != NULL; rlist = ListNext( rlist ) ) {
            info = (WREResInfo *)ListElement( rlist );
            SendMessage( frame, WM_MDIACTIVATE, (WPARAM)info->res_win, 0 );
            WREFreeResInfo( info );
        }
        ListFree( WREResList );
        WREResList = NULL;
        WRENumRes = 0;
    }
}
Ejemplo n.º 27
0
bool WdeFindObjectsInRect( RECT *r, LIST **obj_list, LIST *olist )
{
    OBJPTR   child;
    RECT     child_rect;
    RECT     irect;

    *obj_list = NULL;

    for( ; olist != NULL; olist = ListNext( olist ) ) {
        child = ListElement( olist );
        Location( child, &child_rect );
        if( IntersectRect( &irect, &child_rect, r ) ) {
            WdeInsertObject( obj_list, child );
        }
    }

    return( *obj_list != NULL );
}
Ejemplo n.º 28
0
Bool WREQueryKillApp( Bool fatal_exit )
{
    LIST        *rlist;
    WREResInfo  *info;
    Bool        kill_app;

    if( !WRENoInterface && WREResList != NULL ) {
        kill_app = TRUE;
        for( rlist = WREResList; rlist != NULL && kill_app; rlist = ListNext( rlist ) ) {
            info = (WREResInfo *)ListElement( rlist );
            kill_app = WREQuerySaveResOnDeleteRes( info, fatal_exit ) &&
                       WREQuerySaveSymOnDeleteRes( info, fatal_exit );
            kill_app = kill_app || fatal_exit;
        }
        if( !fatal_exit && !kill_app ) {
            return( FALSE );
        }
    }

    return( TRUE );
}
Ejemplo n.º 29
0
int WdeFindObjectPosInDialogList( WdeResInfo *res_info, OBJPTR obj )
{
    LIST            *dlist;
    WdeResDlgItem   *ditem;
    int             count;

    if( res_info == NULL || obj == NULL ) {
        return( -1 );
    }

    count = 0;
    for( dlist = res_info->dlg_item_list; dlist != NULL; dlist = ListNext( dlist ) ) {
        ditem = (WdeResDlgItem *)ListElement( dlist );
        if( ditem->object == obj ) {
            return( count );
        }
        count++;
    }

    return( -1 );
}
Ejemplo n.º 30
0
bool WdeQueryKillApp( bool fatal_exit )
{
    LIST        *rlist;
    WdeResInfo  *res_info;
    bool        kill_app;

    if( WdeResList != NULL ) {
        kill_app = TRUE;
        for( rlist = WdeResList; rlist != NULL && kill_app; rlist = ListNext( rlist ) ) {
            res_info = (WdeResInfo *)ListElement( rlist );
            kill_app = WdeQuerySaveResOnDeleteRes( res_info, fatal_exit ) &&
                       WdeQuerySaveSymOnDeleteRes( res_info, fatal_exit );
            kill_app = kill_app || fatal_exit;
            WdeHashClearSaveRejected( res_info->hash_table );
        }
        if( !fatal_exit && !kill_app ) {
            return( FALSE );
        }
    }

    return( TRUE );
}