MRESULT EXPENTRY ClkWndProc (HWND hwnd, ULONG usMsg, MPARAM mp1, MPARAM mp2) { switch (usMsg) { case WM_CREATE: ClkCreate (hwnd); return (WinDefWindowProc (hwnd, usMsg, mp1, mp2)); case WM_DESTROY: ClkDestroy (hwnd); return (WinDefWindowProc (hwnd, usMsg, mp1, mp2)); case WM_TIMER: ClkTimer (hwnd); if ( (BOOL) hDateTime) WinSendMsg (hDateTime, WM_TIMER, mp1, mp2); break; case WM_PAINT: ClkPaint (hwnd); break; case WM_MINMAXFRAME: ClkMinmax (hwnd, (PSWP)mp1); break; case WM_SIZE: ClkSize (hwnd); return (WinDefWindowProc (hwnd, usMsg, mp1, mp2)); case WM_COMMAND: ClkCommand (hwnd, mp1,mp2); break; case WM_BUTTON1DOWN: return WinSendMsg (hwndFrame, WM_TRACKFRAME, MPFROMSHORT((USHORT)mp2 | TF_MOVE), MPVOID); case WM_BUTTON1DBLCLK: if (cp.fControlsHidden) ClkShowFrameControls (hwndFrame); else ClkHideFrameControls (hwndFrame); break; case WM_TRANSLATEACCEL: return WinSendMsg(hwndFrame, usMsg, mp1, mp2); break; case WM_SAVEAPPLICATION: /***********************************************************\ * Task Manager option to Save Desktop sends this message. * Save window state (MIN/RESTORE) and position in OS2.INI \***********************************************************/ SaveApplication (hwndFrame); break; case WM_INITMENU: InitMenu(mp1, mp2); break; case HM_QUERY_KEYS_HELP: return (MRESULT)PANEL_HELPKEYS; /* return id of key help panel */ break; default: /* let default window procedure handle it. */ return (WinDefWindowProc (hwnd, usMsg, mp1, mp2)); } return (MRFROMLONG(0)); }
BOOL KappaCommand(HWND hWnd, unsigned message, WORD wParam, long lParam) { char stCommand[RET_BUFFER_LEN]; switch (message) { case IDM_NEW: if (in_wait_for_input) return FALSE; #ifndef RUNTIME if (lpKALView && (*lpKALView->Terminate)()) { PostMessage(hWndKappa, WM_COMMAND, IDM_NEW, 0L); return FALSE; } #endif KppNewApplication(hInstKappa); #ifdef RUNTIME if (!IsWindowVisible(hWnd) && !KppGetCompiledKALInit()) ShowWindow(hWnd, SW_SHOWNORMAL); #endif break; case IDM_NEWLOAD: if (in_wait_for_input) return FALSE; if (LOWORD(lParam)) KppSetAppChanged(FALSE); if (KppNewApplication(hInstKappa) && lParam) { GlobalGetAtomName(HIWORD(lParam), stCommand, RET_BUFFER_LEN); #ifdef RUNTIME { BOOL bNoShow = ProcessCmdLine(stCommand, KppIsMultiEnabled()); if (!IsWindowVisible(hWnd) && !bNoShow) ShowWindow(hWnd, SW_SHOWNORMAL); } #else ProcessCmdLine(stCommand, KppIsMultiEnabled()); #endif GlobalDeleteAtom(HIWORD(lParam)); } break; case IDM_OPEN: OpenApplication(hWnd); break; #ifndef LIMITED case IDM_SAVE: SaveApplication(hWnd, SAVE_MODE); break; case IDM_SAVEAS: SaveApplicationAs(hWnd); break; #endif case IDM_SETUPPRINT: ConfigurePrinter(); break; case IDM_EXIT: if (in_wait_for_input) return FALSE; #ifdef RUNTIME if (hWnd != KpsGetMainSessionWindow()) { ATOMID idWind = KpsGetWidgetFromWindow(hWnd); if (idWind) kpc_hide_window(idWind, hWnd); break; } #endif /* Postpone closing down until all DDE messages have * * been processed. */ if (KppDDEPendingQCB()) { WaitForInputCB(); PostMessage(hWnd, WM_COMMAND, message, lParam); return FALSE; } #ifndef RUNTIME if (lpKALView && (*lpKALView->Terminate)()) { PostMessage(hWnd, WM_COMMAND, IDM_EXIT, 0L); return FALSE; } #endif if (lParam == kEXIT_NOPROMPT) MarkAppAsUnmodifiedCB(); return KappaClose(hWnd); case IDM_ABOUT: KappaAbout(hWnd); break; #ifndef RUNTIME case IDM_HELP: KppDoWindowHelp(hWndKappa, "d_main"); break; #endif case IDM_ONLINEHELP: { HANDLE hKapHelp = GetModuleHandle("KAPHELP"); LPHELPFN lpfnKappaHelp = (LPHELPFN) GetProcAddress(hKapHelp, "KppKappaHelp"); if (lpfnKappaHelp) (*lpfnKappaHelp)(hWndKappa, hInstKappa); break; } #ifndef RUNTIME case IDM_UNDO: case IDM_CUT: case IDM_COPY: case IDM_PASTE: case IDM_CLEAR: EditControlCommand(hWnd, hWndComment, message, wParam, lParam); break; case IDM_RESET: ClearEditWindow(hWndInterpret); SendMessage(hWndInterpret, IDG_UPDATEINDEX, 1, 0L); break; case IDM_KTOOLS: #ifdef EDITORS KappaKToolsMode(bKToolsMode != TRUE, SW_SHOWNORMAL); #endif break; #endif case IDM_BROWSER: KappaBrowserMode(bBrowserMode != TRUE, SW_SHOWNORMAL); break; #ifndef RUNTIME #ifdef INFERENCE case IDM_INFERENCE: KappaInferenceMode(bInferenceMode != TRUE, SW_SHOWNORMAL); break; case IDM_RULEREL: KappaRuleRelMode(!bRuleRelMode, SW_SHOWNORMAL); break; case IDM_TRACE: KappaTraceMode(bTraceMode != TRUE, SW_SHOWNORMAL); break; #endif case IDM_EDITORS: AllEditorWnds(); break; case IDM_KAL: KappaInterpMode(!bInterpMode, SW_SHOWNORMAL); break; case IDM_FINDER: KappaFinderMode(!bFinderMode, SW_SHOWNORMAL); break; case IDM_KALVIEW: if (lpKALView) (*lpKALView->KALView)(!lpKALView->bKALViewMode, SW_SHOWNORMAL, hWndKappa, hInstKappa, kalviewIcon); break; case IDM_SESSION: KpsAllSessionWnd(); break; case IDM_COMMENT: bCommentShown = !bCommentShown; ShowComment(hWnd, bCommentShown); break; #endif case IDM_ENTERDEBUGGER: DebugBreak(); break; default: break; } return TRUE; }