/* * StartupProc - callback routine for startup modeless dialog */ BOOL WINEXP StartupProc( HWND hwnd, UINT msg, UINT wparam, LONG lparam ) { lparam = lparam; wparam = wparam; hwnd = hwnd; switch( msg ) { // Allow Easy Flash Screen suppression. W.Briscoe 20041112 #if 1 RECT r; int maxx, maxy; int width; int height; int newx, newy; static char vers[] = banner1p2( _VI_VERSION_ ); case WM_INITDIALOG: GetWindowRect( hwnd, &r ); maxx = GetSystemMetrics( SM_CXSCREEN ); maxy = GetSystemMetrics( SM_CYSCREEN ); width = r.right - r.left; height = r.bottom - r.top; newx = (maxx - width) / 2; newy = (maxy - height) / 2; SetWindowPos( hwnd, HWND_TOPMOST, newx, newy, 0, 0, SWP_NOSIZE ); SetDlgItemText( hwnd, STARTUP_VERSION, vers ); SetDlgItemText( hwnd, STARTUP_EDITORNAME, WATCOM_ABOUT_EDITOR ); #endif return( TRUE ); } return( FALSE ); } /* StartupProc */
LRESULT WINEXPORT WREMainWndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ) { HMENU menu; LRESULT ret; Bool pass_to_def; WREResInfo *res_info; WORD wp; about_info ai; if( WRECleanupStarted && message != WM_CLOSE ) { if( message == WM_DESTROY ) { PostQuitMessage( 0 ); } return( DefFrameProc( hWnd, WREMDIWin, message, wParam, lParam ) ); } pass_to_def = TRUE; ret = FALSE; res_info = WREGetCurrentRes(); menu = WREGetMenuHandle(); switch( message ) { case WM_DESTROYCLIPBOARD: WRForgetBitmapName(); break; case WM_INITMENU: if( wParam == (WPARAM)GetMenu( hWnd ) ) { WRESetCopyMenuItem( hWnd ); WRESetPasteMenuItem( hWnd ); } break; case WM_MENUSELECT: WREHandleMenuSelect( wParam, lParam ); break; case WM_MOVE: if( IsZoomed( hWnd ) ) { WRESetOption( WREOptScreenMax, TRUE ); } else if( !IsIconic( hWnd ) ) { WREUpdateScreenPosOpt(); WRESetOption( WREOptScreenMax, FALSE ); } break; case WM_SIZE: if( wParam == SIZE_MAXIMIZED ) { WRESetOption( WREOptScreenMax, TRUE ); } else if( wParam == SIZE_MINIMIZED ) { WREHideSessions( FALSE ); WREIsMinimized = TRUE; } else { WREUpdateScreenPosOpt(); WRESetOption( WREOptScreenMax, FALSE ); } if( wParam != SIZE_MINIMIZED && WREIsMinimized ) { WREHideSessions( TRUE ); BringWindowToTop( hWnd ); WREIsMinimized = FALSE; } WREResizeWindows(); pass_to_def = FALSE; break; case ACCEL_I_HAVE_CLOSED: WREEndEditAccelResource( (WAccelHandle)lParam ); if( WRENoInterface ) { WRERemoveResource( res_info ); } pass_to_def = FALSE; break; case ACCEL_PLEASE_SAVEME: WRESaveEditAccelResource( (WAccelHandle)lParam ); pass_to_def = FALSE; break; case MENU_I_HAVE_CLOSED: WREEndEditMenuResource( (WMenuHandle)lParam ); if( WRENoInterface ) { WRERemoveResource( res_info ); } pass_to_def = FALSE; break; case MENU_PLEASE_SAVEME: WRESaveEditMenuResource( (WMenuHandle)lParam ); pass_to_def = FALSE; break; case STRING_I_HAVE_CLOSED: WREEndEditStringResource( (WStringHandle)lParam ); if( WRENoInterface ) { WRERemoveResource( res_info ); } pass_to_def = FALSE; break; case STRING_PLEASE_SAVEME: WRESaveEditStringResource( (WStringHandle)lParam ); pass_to_def = FALSE; break; case ACCEL_PLEASE_OPENME: case MENU_PLEASE_OPENME: case STRING_PLEASE_OPENME: ret = pleaseOpenFile( message ); pass_to_def = FALSE; break; case WM_COMMAND: wp = LOWORD( wParam ); switch( wp ) { case IDM_OPTIONS: pass_to_def = FALSE; break; case IDM_LOAD_SYMBOLS: WRELoadResourceSymbols( res_info ); pass_to_def = FALSE; break; case IDM_EDIT_SYMBOLS: WREEditResourceSymbols( res_info ); pass_to_def = FALSE; break; case IDM_SAVE_SYMBOLS: WREResourceSaveSymbols( res_info ); pass_to_def = FALSE; break; case IDM_NEW: WRECreateNewResource( NULL ); pass_to_def = FALSE; break; case IDM_OPEN: WREOpenResource( NULL ); pass_to_def = FALSE; break; case IDM_SAVE: WRESaveResource( res_info, FALSE ); pass_to_def = FALSE; break; case IDM_SAVEAS: WRESaveResource( res_info, TRUE ); pass_to_def = FALSE; break; case IDM_DELETE: WREDeleteCurrResource( FALSE ); pass_to_def = FALSE; break; case IDM_PASTE: WREPasteResource( hWnd ); pass_to_def = FALSE; break; case IDM_CUT: WREClipCurrentResource( hWnd, TRUE ); pass_to_def = FALSE; break; case IDM_COPY: WREClipCurrentResource( hWnd, FALSE ); pass_to_def = FALSE; break; case IDM_NEW_CURSOR: WRENewImageResource( CursorService, (uint_16)RT_GROUP_CURSOR ); break; case IDM_NEW_BITMAP: WRENewImageResource( BitmapService, (uint_16)RT_BITMAP ); break; case IDM_NEW_ICON: WRENewImageResource( IconService, (uint_16)RT_GROUP_ICON ); break; case IDM_NEW_DIALOG: WRENewDialogResource(); break; case IDM_NEW_FONT: case IDM_NEW_RCDATA: pass_to_def = FALSE; break; case IDM_NEW_ACCELERATOR: WRENewAccelResource(); pass_to_def = FALSE; break; case IDM_NEW_MENU: WRENewMenuResource(); pass_to_def = FALSE; break; case IDM_NEW_STRING: WRENewStringResource(); pass_to_def = FALSE; break; case IDM_RES_SAVEAS: case IDM_RES_SAVE_INTO: if( res_info != NULL ) { if( res_info->current_type == (uint_16)RT_STRING ) { SaveMultObjects( wp == IDM_RES_SAVE_INTO ); } else { SaveObject( wp == IDM_RES_SAVE_INTO ); } } pass_to_def = FALSE; break; case IDM_RES_EDIT: WREHandleResEdit(); pass_to_def = FALSE; break; case IDM_RES_MEM_FLAGS: WREChangeMemFlags(); pass_to_def = FALSE; break; case IDM_RES_RENAME: WRERenameResource(); pass_to_def = FALSE; break; case IDM_MDI_CASCADE: case IDM_MDI_TILEV: case IDM_MDI_TILEH: case IDM_MDI_ARRANGE: WREHandleMDIArrangeEvents( wp ); pass_to_def = FALSE; break; case IDM_EXIT: /* clean up before we exit */ PostMessage( WREMainWin, WM_CLOSE, 0, 0 ); break; case IDM_SHOW_RIBBON: WREShowRibbon( menu ); pass_to_def = FALSE; break; case IDM_HELP: WREHelpRoutine(); pass_to_def = FALSE; break; case IDM_HELP_SEARCH: WREHelpSearchRoutine(); pass_to_def = FALSE; break; case IDM_HELP_ON_HELP: WREHelpOnHelpRoutine(); pass_to_def = FALSE; break; case IDM_ABOUT: ai.owner = hWnd; ai.inst = WREInst; ai.name = AllocRCString( WRE_ABOUT_NAME ); ai.version = banner1p2( _RESEDIT_VERSION_ ); ai.first_cr_year = AllocRCString( WRE_ABOUT_COPYRIGHT_YEAR ); ai.title = AllocRCString( WRE_ABOUT_TITLE ); DoAbout( &ai ); FreeRCString( ai.name ); FreeRCString( ai.first_cr_year ); FreeRCString( ai.title ); pass_to_def = FALSE; break; } break; case WM_DESTROY: WWinHelp( WREMainWin, "resedt.hlp", HELP_QUIT, 0 ); PostQuitMessage( 0 ); break; case WRE_FATAL_EXIT: WREFatalExit = TRUE; WREQueryKillApp( TRUE ); PostMessage( WREMainWin, WM_CLOSE, 0, 0 ); break; case WM_ENDSESSION: if( !wParam ) { WREFatalExit = FALSE; } break; case WM_QUERYENDSESSION: if( ret = WREQueryKillApp( FALSE ) ) { WREFatalExit = TRUE; } pass_to_def = FALSE; break; case WM_CLOSE: /* clean up before we exit */ if( WRECleanupStarted ) { pass_to_def = FALSE; break; } WRECleanupStarted = TRUE; if( !WRECleanup( WREFatalExit ) ) { WRECleanupStarted = FALSE; pass_to_def = FALSE; } } if( pass_to_def ) { ret = DefFrameProc( hWnd, WREMDIWin, message, wParam, lParam ); } return( ret ); }
LRESULT WINEXPORT WMainWndProc( HWND hWnd, UINT message, WPARAM wParam, volatile LPARAM lParam ) { HMENU menu; #if 0 HWND win; #endif LRESULT ret; Bool pass_to_def; WAccelEditInfo *einfo; WORD wp; MINMAXINFO *minmax; about_info ai; pass_to_def = TRUE; ret = FALSE; einfo = (WAccelEditInfo *)GetWindowLong( hWnd, 0 ); WSetCurrentEditInfo( einfo ); if( einfo != NULL && einfo->getting_key ) { if( WGetKeyPressProc( einfo, message, wParam, lParam ) ) { einfo->getting_key = FALSE; DestroyWindow( einfo->key_info.text_win ); ReleaseCapture(); WHandleChange( einfo ); pass_to_def = FALSE; } } switch( message ) { case WM_ACTIVATE: if( GET_WM_ACTIVATE_FACTIVE( wParam, lParam ) && !GET_WM_ACTIVATE_FMINIMIZED( wParam, lParam ) && einfo != NULL && einfo->edit_dlg != (HWND)NULL ) { SetFocus( einfo->edit_dlg ); pass_to_def = FALSE; } break; case WM_INITMENU: if( wParam == (WPARAM)GetMenu( hWnd ) ) { // set the cut and copy menu items ret = SendDlgItemMessage( einfo->edit_dlg, IDM_ACCEDLIST, LB_GETCURSEL, 0, 0 ); if( ret != LB_ERR ) { EnableMenuItem( (HMENU)wParam, IDM_ACC_CUT, MF_ENABLED ); EnableMenuItem( (HMENU)wParam, IDM_ACC_COPY, MF_ENABLED ); } else { EnableMenuItem( (HMENU)wParam, IDM_ACC_CUT, MF_GRAYED ); EnableMenuItem( (HMENU)wParam, IDM_ACC_COPY, MF_GRAYED ); } // set the paste menu item if( OpenClipboard( hWnd ) ) { if( //IsClipboardFormatAvailable( WClipbdFormat ) || IsClipboardFormatAvailable( WItemClipbdFormat ) ) { EnableMenuItem( (HMENU)wParam, IDM_ACC_PASTE, MF_ENABLED ); } else { EnableMenuItem( (HMENU)wParam, IDM_ACC_PASTE, MF_GRAYED ); } CloseClipboard(); } ret = FALSE; } break; case WM_CREATE: einfo = ((CREATESTRUCT *)lParam)->lpCreateParams; SetWindowLong( hWnd, 0, (LONG)einfo ); break; case WM_MENUSELECT: if( einfo != NULL ) { menu = WGetMenuHandle( einfo ); WHandleMenuSelect( einfo->wsb, menu, wParam, lParam ); setLastMenuSelect( einfo, wParam, lParam ); } break; case WM_GETMINMAXINFO: minmax = (MINMAXINFO *)lParam; minmax->ptMinTrackSize.x = appWidth; minmax->ptMinTrackSize.y = appHeight; break; case WM_MOVE: if( einfo != NULL ) { if( IsZoomed( hWnd ) ) { WSetOption( WOptScreenMax, TRUE ); } else if( !IsIconic( hWnd ) ) { WUpdateScreenPosOpt( hWnd ); WSetOption( WOptScreenMax, FALSE ); } } break; case WM_SIZE: if( einfo != NULL ) { if( wParam == SIZE_MAXIMIZED ) { WSetOption( WOptScreenMax, TRUE ); } else if( wParam != SIZE_MINIMIZED ) { WUpdateScreenPosOpt( hWnd ); WSetOption( WOptScreenMax, FALSE ); } WResizeWindows( einfo ); } break; #if 0 case WM_ACTIVATE: if( GET_WM_ACTIVATE_FACTIVE( wParam, lParam ) != WA_INACTIVE ) { einfo = (WAccelEditInfo *)GetWindowLong( hWnd, 0 ); if( einfo != NULL && einfo->edit_dlg != (HWND)NULL ) { SetFocus( einfo->edit_dlg ); } WSetCurrentEditInfo( einfo ); } else { WSetCurrentEditInfo( NULL ); } break; #endif case WM_COMMAND: wp = LOWORD( wParam ); switch( wp ) { case IDM_ACC_CLEAR: WHandleClear( einfo ); pass_to_def = FALSE; break; case IDM_ACC_UPDATE: SendMessage( einfo->info->parent, ACCEL_PLEASE_SAVEME, 0, (LPARAM)einfo->hndl ); pass_to_def = FALSE; break; case IDM_ACC_OPEN: pass_to_def = FALSE; if( einfo->info->modified ) { ret = WQuerySave( einfo, FALSE ); if( !ret ) { break; } } ret = SendMessage( einfo->info->parent, ACCEL_PLEASE_OPENME, 0, (LPARAM)einfo->hndl ); ret = FALSE; break; case IDM_ACC_SAVE: WSaveObject( einfo, FALSE, FALSE ); pass_to_def = FALSE; break; case IDM_ACC_SAVEAS: WSaveObject( einfo, TRUE, FALSE ); pass_to_def = FALSE; break; case IDM_ACC_SAVEINTO: WSaveObject( einfo, TRUE, TRUE ); pass_to_def = FALSE; break; case IDM_ACC_EXIT: /* clean up before we exit */ PostMessage( einfo->win, WM_CLOSE, 0, 0 ); break; case IDM_ACC_PASTE: WPasteAccelItem( einfo ); pass_to_def = FALSE; break; case IDM_ACC_COPY: case IDM_ACC_CUT: WClipAccelItem( einfo, wp == IDM_ACC_CUT ); pass_to_def = FALSE; break; case IDM_ACC_DELETE: WDeleteAccelEntry( einfo ); pass_to_def = FALSE; break; case IDM_ACC_NEWITEM: WInsertAccelEntry( einfo ); pass_to_def = FALSE; break; case IDM_ACC_KEYVALUE: WSetStatusByID( einfo->wsb, W_GETTINGKEYS, -1 ); WHandleGetKeyValue( einfo, einfo->last_menu_select == IDM_ACC_KEYVALUE ); WSetStatusReadyText( einfo->wsb ); pass_to_def = FALSE; break; case IDM_ACC_SYMBOLS: handleSymbols( einfo ); pass_to_def = FALSE; break; case IDM_ACC_LOAD_SYMBOLS: handleLoadSymbols( einfo ); pass_to_def = FALSE; break; case IDM_ACC_SHOWRIBBON: menu = WGetMenuHandle( einfo ); WShowRibbon( einfo, menu ); pass_to_def = FALSE; break; case IDM_ACC_MEM_FLAGS: WSetStatusByID( einfo->wsb, W_CHANGEACCELMEMFLAGS, -1 ); einfo->info->modified |= WChangeMemFlags( einfo->win, &einfo->info->MemFlags, einfo->info->res_name, WGetEditInstance(), WAccHelpRoutine ); pass_to_def = FALSE; WSetStatusReadyText( einfo->wsb ); break; case IDM_ACC_RENAME: WHandleRename( einfo ); pass_to_def = FALSE; break; case IDM_HELP: WAccHelpRoutine(); pass_to_def = FALSE; break; case IDM_HELP_SEARCH: WAccHelpSearchRoutine(); pass_to_def = FALSE; break; case IDM_HELP_ON_HELP: WAccHelpOnHelpRoutine(); pass_to_def = FALSE; break; case IDM_ACC_ABOUT: ai.owner = hWnd; ai.inst = WGetEditInstance(); ai.name = AllocRCString( W_ABOUT_NAME ); ai.version = banner1p2( _RESEDIT_VERSION_ ); ai.first_cr_year = AllocRCString( W_ABOUT_COPYRIGHT_YEAR ); ai.title = AllocRCString( W_ABOUT_TITLE ); DoAbout( &ai ); FreeRCString( ai.name ); FreeRCString( ai.first_cr_year ); FreeRCString( ai.title ); pass_to_def = FALSE; break; } break; case WM_DESTROY: WWinHelp( hWnd, "resacc.hlp", HELP_QUIT, 0 ); WCleanup( einfo ); break; case WM_CLOSE: ret = TRUE; pass_to_def = WHandleWM_CLOSE( einfo, (Bool)wParam ); wParam = 0; break; } if( pass_to_def ) { ret = DefWindowProc( hWnd, message, wParam, lParam ); } return( ret ); }