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 ); }
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 ); }
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 ); }
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; }
void WREFiniHints ( void ) { LIST *plist; WREPopupListItem *p; for ( plist = WREPopupList; plist; plist = ListConsume ( plist ) ) { p = (WREPopupListItem *) ListElement ( plist ); WREMemFree ( p ); } }
void WdeFiniHints( void ) { LIST *plist; WdePopupListItem *p; for ( plist = WdePopupList; plist != NULL; plist = ListConsume ( plist ) ) { p = (WdePopupListItem *)ListElement( plist ); WdeMemFree( p ); } }
OBJPTR FMEDITAPI FindOneObjPt( POINT pt ) /***************************************/ { LIST *list; if( FindObjectsPt( pt, &list ) ) { return( ListElement( list ) ); } else { return( NULL ); } }
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 ); } }
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 ); }
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 ); } } }
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 ); }
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 ); }
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 ); }
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 ); }
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 ); }
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 ); }
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 ); }
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 ); }
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 ); }
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 ); }
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; } }
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!"); } }
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 ); }
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 ); } } }
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 ); }
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; } }
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 ); }
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 ); }
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 ); }
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 ); }