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

Last change on this file since 5087 was 2469, checked in by sandervl, 26 years ago

* empty log message *

File size: 3.5 KB
Line 
1/* $Id: win32wmdiclient.h,v 1.8 2000-01-18 20:08:17 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
67Win32BaseWindow** buildWindowArray(UINT bwaFlags,PUINT total);
68 void releaseWindowArray(Win32BaseWindow **wndArray);
69 void calcDefaultChildPos(WORD n,LPPOINT lpPos,INT delta);
70 BOOL cascade(UINT fuCascade);
71 BOOL tile(UINT fuTile);
72 BOOL augmentFrameMenu(Win32MDIChildWindow *child);
73 BOOL restoreFrameMenu(Win32MDIChildWindow *child);
74
75private:
76 Win32MDIChildWindow *maximizedChild;
77 Win32MDIChildWindow *activeChild;
78
79 HWND hWindowMenu;
80 int idFirstChild;
81
82 int nActiveChildren;
83 int nTotalCreated;
84 int sbRecalc;
85 LPSTR frameTitle;
86 DWORD mdiFlags;
87
88};
89//******************************************************************************
90//******************************************************************************
91BOOL MDICLIENT_Register();
92BOOL MDICLIENT_Unregister();
93
94#endif //__WIN32WMDICLIENT_H__
Note: See TracBrowser for help on using the repository browser.