home *** CD-ROM | disk | FTP | other *** search
- /*
- TOPLEVEL.CPP - Generic Handling of TopLevel-Windows
- (C) 1990 by Joachim Kainz 'On a mission from Bhudda'
- */
- #include "toplevel.hpp"
- #include "about.hpp"
-
- METHOD TOPLEVEL::WMClose ()
- {
- DestroyWindow (GetWindowHandle ());
-
- return 0l;
- }
- EXPORT TOPLEVEL::TOPLEVEL (
- int nCmdShow,
- int x,
- int y,
- int cx,
- int cy,
- long lStyle,
- LPSTR lpName,
- LPSTR lpMenu,
- long lExStyle,
- WORD wStyle,
- HCURSOR hCursor,
- HICON hIcon,
- HBRUSH hBackGrnd,
- WORD wClsExtra,
- WORD wWndExtra,
- LPSTR lpParam,
- LPSTR lpClass,
- FARPROC2 lpFnProc
- ) :
- WINDOW (
- SW_HIDE,
- x,
- y,
- cx,
- cy,
- lStyle,
- "",
- NULL,
- NULL,
- lExStyle,
- wStyle,
- hCursor,
- hIcon,
- hBackGrnd,
- wClsExtra,
- wWndExtra,
- lpParam,
- lpClass,
- lpFnProc
- )
- {
- HMENU hMenu = NULL;
-
- bHelpActive = FALSE;
-
- if (lpMenu)
- hMenu = LoadMenu (GetInstance (), lpMenu);
-
- if (hMenu)
- SetMenu (GetWindowHandle (), hMenu);
-
- SetWindowText (self, lpName );
- ShowWindow (self, nCmdShow);
- }
-
-
- METHOD TOPLEVEL::WMCommand (WORD wID, WORD wMsg, HWND hCtl)
- {
- switch (wID) {
-
- case ID_FILE_EXIT:
- return SendMessage (self, WM_CLOSE, 0, 0L);
-
- case ID_HELP_ABOUT:
- ABOUT about (MAKEINTRESOURCE (ID_HELP_ABOUT), GetWindowHandle ());
-
- about.SetItemText (
- ID_APPNAME,
- MAKEINTRESOURCE (ID_APPNAME)
- );
- about.modal ();
-
- return 0l;
-
- case HELP_HELPONHELP:
- if (WinHelp (GetWindowHandle (), "", HELP_HELPONHELP, 0l))
- bHelpActive = TRUE;
-
- return 0l;
-
- }
- return NULL;
- }
-
- METHOD TOPLEVEL::WMDestroy ()
- {
- if (bHelpActive)
- WinHelp (GetWindowHandle (), "", HELP_QUIT, 0l);
-
- return WINDOW::WMDestroy ();
- }
-
- METHOD TOPLEVEL::WMSysCommand (WORD wID, POINT pt)
- {
- return DefWindowProc (
- GetWindowHandle (),
- WM_SYSCOMMAND,
- wID,
- *(long*)&pt
- );
- }
-
- METHOD TOPLEVEL::WndDlgProc (WORD wMsg, WORD wParam, long lParam)
- {
- switch (wMsg) {
-
- case WM_COMMAND:
- return WMCommand (
- wParam,
- HIWORD (lParam),
- LOWORD (lParam)
- );
-
- case WM_SYSCOMMAND:
- return WMSysCommand (wParam, MAKEPOINT (lParam));
-
- case WM_TIMER:
- return WMTimer (wParam, (FARPROC) lParam);
-
- case WM_HSCROLL:
- return WMHScroll (wParam, HIWORD (lParam));
-
- case WM_VSCROLL:
- return WMVScroll (wParam, HIWORD (lParam));
-
- case WM_INITMENU:
- return WMInitMenu (wParam);
-
- case WM_INITDIALOG:
- return WMInitDialog (lParam);
-
- case WM_INITMENUPOPUP:
- return WMInitMenuPopUp (
- wParam,
- LOWORD (lParam),
- HIWORD (lParam)
- );
-
- case WM_MENUSELECT:
- return WMMenuSelect (wParam, LOWORD (lParam));
-
- case WM_MENUCHAR:
- return WMMenuChar (
- wParam,
- HIWORD (lParam),
- LOWORD (lParam)
- );
-
- case WM_ENTERIDLE:
- return WMEnterIdle (wParam, LOWORD (lParam));
-
- }
-
- return DefWindowProc (GetWindowHandle (), wMsg, wParam, lParam);
- }