]> git.saurik.com Git - wxWidgets.git/blame - include/wx/os2/frame.h
1. fixed bug with MDI child frames changign state when parent frame was
[wxWidgets.git] / include / wx / os2 / frame.h
CommitLineData
0e320a79
DW
1/////////////////////////////////////////////////////////////////////////////
2// Name: frame.h
3// Purpose: wxFrame class
21802234 4// Author: David Webster
0e320a79 5// Modified by:
29435d81 6// Created: 10/27/99
0e320a79 7// RCS-ID: $Id$
21802234 8// Copyright: (c) David Webster
29435d81 9// Licence: wxWindows license
0e320a79
DW
10/////////////////////////////////////////////////////////////////////////////
11
12#ifndef _WX_FRAME_H_
13#define _WX_FRAME_H_
14
61243a51
DW
15//
16// Get the default resource ID's for frames
17//
18#include "wx/os2/wxOs2.h"
19
f38374d0 20class WXDLLEXPORT wxFrame : public wxFrameBase
004fd0c8 21{
54da4255 22public:
f38374d0
DW
23 // construction
24 wxFrame() { Init(); }
178f951f
DW
25 wxFrame( wxWindow* pParent
26 ,wxWindowID vId
27 ,const wxString& rsTitle
28 ,const wxPoint& rPos = wxDefaultPosition
29 ,const wxSize& rSize = wxDefaultSize
30 ,long lStyle = wxDEFAULT_FRAME_STYLE
31 ,const wxString& rsName = wxFrameNameStr
32 )
21802234 33 {
f38374d0
DW
34 Init();
35
178f951f 36 Create(pParent, vId, rsTitle, rPos, rSize, lStyle, rsName);
21802234 37 }
0e320a79 38
178f951f
DW
39 bool Create( wxWindow* pParent
40 ,wxWindowID vId
41 ,const wxString& rsTitle
42 ,const wxPoint& rPos = wxDefaultPosition
43 ,const wxSize& rSize = wxDefaultSize
44 ,long lStyle = wxDEFAULT_FRAME_STYLE
45 ,const wxString& rsName = wxFrameNameStr
46 );
21802234 47
f38374d0 48 virtual ~wxFrame();
21802234 49
f38374d0 50 // implement base class pure virtuals
178f951f
DW
51 virtual void Maximize(bool bMaximize = TRUE);
52 virtual bool IsMaximized(void) const;
53 virtual void Iconize(bool bIconize = TRUE);
54 virtual bool IsIconized(void) const;
55 virtual void Restore(void);
56 virtual void SetMenuBar(wxMenuBar* pMenubar);
57 virtual void SetIcon(const wxIcon& rIcon);
58 virtual bool ShowFullScreen( bool bShow
59 ,long lStyle = wxFULLSCREEN_ALL
60 );
a885d89a 61 virtual bool IsFullScreen(void) const { return m_bFsIsShowing; };
178f951f 62
21802234 63
f38374d0
DW
64 // implementation only from now on
65 // -------------------------------
21802234 66
f38374d0 67 // override some more virtuals
178f951f 68 virtual bool Show(bool bShow = TRUE);
21802234 69
f38374d0 70 // event handlers
178f951f
DW
71 void OnActivate(wxActivateEvent& rEvent);
72 void OnSysColourChanged(wxSysColourChangedEvent& rEvent);
21802234
DW
73
74 // Toolbar
75#if wxUSE_TOOLBAR
178f951f
DW
76 virtual wxToolBar* CreateToolBar( long lStyle = wxNO_BORDER | wxTB_HORIZONTAL | wxTB_FLAT
77 ,wxWindowID vId = -1
78 ,const wxString& rsName = wxToolBarNameStr
79 );
21802234 80
178f951f 81 virtual void PositionToolBar(void);
21802234
DW
82#endif // wxUSE_TOOLBAR
83
21802234 84 // Status bar
f38374d0 85#if wxUSE_STATUSBAR
178f951f
DW
86 virtual wxStatusBar* OnCreateStatusBar( int nNumber = 1
87 ,long lStyle = wxST_SIZEGRIP
88 ,wxWindowID vId = 0
89 ,const wxString& rsName = wxStatusLineNameStr
90 );
91 virtual void PositionStatusBar(void);
21802234 92
f38374d0
DW
93 // Hint to tell framework which status bar to use: the default is to use
94 // native one for the platforms which support it (Win32), the generic one
95 // otherwise
21802234 96
21802234 97 // TODO: should this go into a wxFrameworkSettings class perhaps?
178f951f 98 static void UseNativeStatusBar(bool bUseNative)
80d83cbc 99 { m_bUseNativeStatusBar = bUseNative; };
f38374d0 100 static bool UsesNativeStatusBar()
80d83cbc 101 { return m_bUseNativeStatusBar; };
21802234
DW
102#endif // wxUSE_STATUSBAR
103
21802234
DW
104 WXHMENU GetWinMenu() const { return m_hMenu; }
105
106 // Returns the origin of client area (may be different from (0,0) if the
107 // frame has a toolbar)
108 virtual wxPoint GetClientAreaOrigin() const;
109
f38374d0 110 // event handlers
178f951f
DW
111 bool HandlePaint(void);
112 bool HandleSize( int nX
113 ,int nY
114 ,WXUINT uFlag
115 );
116 bool HandleCommand( WXWORD wId
117 ,WXWORD wCmd
118 ,WXHWND wControl
119 );
120 bool HandleMenuSelect( WXWORD wItem
121 ,WXWORD wFlags
122 ,WXHMENU hMenu
123 );
124
125 bool OS2Create( int nId
126 ,wxWindow* pParent
127 ,const wxChar* zWclass
128 ,wxWindow* pWxWin
129 ,const wxChar* zTitle
130 ,int nX
131 ,int nY
132 ,int nWidth
133 ,int nHeight
134 ,long nStyle
135 );
21802234 136
f38374d0 137 // tooltip management
21802234 138#if wxUSE_TOOLTIPS
a885d89a
DW
139 WXHWND GetToolTipCtrl(void) const { return m_hWndToolTip; }
140 void SetToolTipCtrl(WXHWND hHwndTT) { m_hWndToolTip = hHwndTT; }
21802234 141#endif // tooltips
0e320a79
DW
142
143protected:
f38374d0 144 // common part of all ctors
178f951f 145 void Init(void);
f38374d0
DW
146
147 // common part of Iconize(), Maximize() and Restore()
178f951f 148 void DoShowWindow(int nShowCmd);
f38374d0 149
21802234 150 // override base class virtuals
178f951f
DW
151 virtual void DoGetClientSize( int* pWidth
152 ,int* pHeight
153 ) const;
154 virtual void DoGetSize( int* pWidth
155 ,int* pHeight
156 ) const;
157 virtual void DoGetPosition( int* pX
158 ,int* pY
159 ) const;
160 virtual void DoSetClientSize( int nWidth
161 ,int nWeight
162 );
e6ebb514 163
f38374d0 164 // helper
178f951f 165 void DetachMenuBar(void);
f38374d0 166
21802234
DW
167 // a plug in for MDI frame classes which need to do something special when
168 // the menubar is set
178f951f 169 virtual void InternalSetMenuBar(void);
21802234
DW
170
171 // propagate our state change to all child frames
172 void IconizeChildFrames(bool bIconize);
173
174 // we add menu bar accel processing
175 bool OS2TranslateMessage(WXMSG* pMsg);
176
177 // window proc for the frames
178f951f
DW
178 MRESULT OS2WindowProc( WXUINT uMessage
179 ,WXWPARAM wParam
180 ,WXLPARAM lParam
181 );
21802234 182
178f951f
DW
183 bool m_bIconized;
184 WXHICON m_hDefaultIcon;
21802234
DW
185
186#if wxUSE_STATUSBAR
178f951f 187 static bool m_bUseNativeStatusBar;
21802234
DW
188#endif // wxUSE_STATUSBAR
189
178f951f
DW
190 // Data to save/restore when calling ShowFullScreen
191 long m_lFsStyle; // Passed to ShowFullScreen
192 wxRect m_vFsOldSize;
193 long m_lFsOldWindowStyle;
194 int m_nFsStatusBarFields; // 0 for no status bar
195 int m_nFsStatusBarHeight;
196 int m_nFsToolBarHeight;
197 bool m_bFsIsMaximized;
198 bool m_bFsIsShowing;
199
21802234
DW
200private:
201#if wxUSE_TOOLTIPS
80d83cbc 202 WXHWND m_hWndToolTip;
21802234
DW
203#endif // tooltips
204
205 DECLARE_EVENT_TABLE()
f38374d0 206 DECLARE_DYNAMIC_CLASS(wxFrame)
0e320a79
DW
207};
208
209#endif
210 // _WX_FRAME_H_
21802234 211