source: trunk/src/user32/win32wmdiclient.h@ 2013

Last change on this file since 2013 was 1429, checked in by sandervl, 26 years ago

MDI changes & fixes

File size: 3.0 KB
Line 
1/* $Id: win32wmdiclient.h,v 1.4 1999-10-24 12:30:29 sandervl Exp $ */
2/*
3 * Win32 MDI Client Window Class for OS/2
4 *
5 * Copyright 1999 Sander van Leeuwen (sandervl@xs4all.nl)
6 *
7 * Project Odin Software License can be found in LICENSE.TXT
8 *
9 */
10#ifndef __WIN32WMDICLIENT_H__
11#define __WIN32WMDICLIENT_H__
12
13#include <win32wbase.h>
14#include <win32wmdichild.h>
15#include <mdi.h>
16
17#define MDICLIENTCLASSNAMEA "MDICLIENT"
18#define MDICLIENTCLASSNAMEW L"MDICLIENT"
19
20#define MDIF_NEEDUPDATE 0x0001
21
22//******************************************************************************
23//******************************************************************************
24class Win32MDIClientWindow : public Win32BaseWindow
25{
26public:
27 Win32MDIClientWindow(CREATESTRUCTA *lpCreateStructA, ATOM classAtom, BOOL isUnicode);
28virtual ~Win32MDIClientWindow();
29
30virtual BOOL isMDIClient();
31
32 int incTotalCreated() { return ++nTotalCreated; };
33 int getFirstChildId() { return idFirstChild; };
34
35 HWND getMDIMenu() { return hWindowMenu; };
36
37Win32MDIChildWindow *getMaximizedChild() { return maximizedChild; };
38 void setMaximizedChild(Win32MDIChildWindow *newchild) { maximizedChild = newchild; };
39
40Win32MDIChildWindow *getActiveChild() { return activeChild; };
41 void setActiveChild(Win32MDIChildWindow *newchild) { activeChild = newchild; };
42
43Win32MDIChildWindow *getWindow(Win32MDIChildWindow *actchild, BOOL bNext, DWORD dwStyleMask);
44
45Win32MDIChildWindow *getChildByID(INT id);
46 void postUpdate(WORD recalc);
47
48 int getNrOfChildren() { return nActiveChildren; };
49 int incNrActiveChildren() { return ++nActiveChildren; };
50 int decNrActiveChildren() { return --nActiveChildren; };
51
52 int getMdiFlags() { return mdiFlags; };
53 void setMdiFlags(int newflags) { mdiFlags = newflags; };
54
55 void updateFrameText(BOOL repaint, LPCSTR lpTitle );
56
57 LONG childActivate(Win32MDIChildWindow *child);
58 void switchActiveChild(Win32MDIChildWindow *nextActiveChild, BOOL bNextWindow );
59 LRESULT destroyChild(Win32MDIChildWindow *child, BOOL flagDestroy );
60
61 LRESULT setMDIMenu(HMENU hmenuFrame, HMENU hmenuWindow);
62 LRESULT refreshMDIMenu(HMENU hmenuFrame, HMENU hmenuWindow);
63 BOOL restoreFrameMenu(Win32BaseWindow *child);
64
65 LRESULT MDIClientWndProc(UINT message, WPARAM wParam, LPARAM lParam);
66
67private:
68 Win32MDIChildWindow *maximizedChild;
69 Win32MDIChildWindow *activeChild;
70
71 HWND hWindowMenu;
72 int idFirstChild;
73
74 int nActiveChildren;
75 int nTotalCreated;
76 int sbRecalc;
77 LPSTR frameTitle;
78 DWORD mdiFlags;
79
80};
81//******************************************************************************
82//******************************************************************************
83BOOL MDICLIENT_Register();
84BOOL MDICLIENT_Unregister();
85
86#endif //__WIN32WMDICLIENT_H__
Note: See TracBrowser for help on using the repository browser.