]> git.saurik.com Git - wxWidgets.git/blame_incremental - src/qt/mdi.cpp
Found bug that skrewed up display wrt horizontal
[wxWidgets.git] / src / qt / mdi.cpp
... / ...
CommitLineData
1/////////////////////////////////////////////////////////////////////////////
2// Name: mdi.cpp
3// Purpose: MDI classes
4// Author: AUTHOR
5// Modified by:
6// Created: ??/??/98
7// RCS-ID: $Id$
8// Copyright: (c) AUTHOR
9// Licence: wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
12#ifdef __GNUG__
13#pragma implementation "mdi.h"
14#endif
15
16#include "wx/mdi.h"
17
18extern wxList wxModelessWindows;
19
20IMPLEMENT_DYNAMIC_CLASS(wxMDIParentFrame, wxFrame)
21IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame, wxFrame)
22IMPLEMENT_DYNAMIC_CLASS(wxMDIClientWindow, wxWindow)
23
24BEGIN_EVENT_TABLE(wxMDIParentFrame, wxFrame)
25 EVT_SIZE(wxMDIParentFrame::OnSize)
26 EVT_ACTIVATE(wxMDIParentFrame::OnActivate)
27 EVT_SYS_COLOUR_CHANGED(wxMDIParentFrame::OnSysColourChanged)
28END_EVENT_TABLE()
29
30BEGIN_EVENT_TABLE(wxMDIClientWindow, wxWindow)
31 EVT_SCROLL(wxMDIClientWindow::OnScroll)
32END_EVENT_TABLE()
33
34
35// Parent frame
36
37wxMDIParentFrame::wxMDIParentFrame()
38{
39}
40
41bool wxMDIParentFrame::Create(wxWindow *parent,
42 wxWindowID id,
43 const wxString& title,
44 const wxPoint& pos,
45 const wxSize& size,
46 long style,
47 const wxString& name)
48{
49 if (!parent)
50 wxTopLevelWindows.Append(this);
51
52 SetName(name);
53 m_windowStyle = style;
54
55 if (parent) parent->AddChild(this);
56
57 if ( id > -1 )
58 m_windowId = id;
59 else
60 m_windowId = (int)NewControlId();
61
62 // TODO: create MDI parent frame
63
64 wxModelessWindows.Append(this);
65
66 return TRUE;
67}
68
69wxMDIParentFrame::~wxMDIParentFrame()
70{
71}
72
73// Get size *available for subwindows* i.e. excluding menu bar.
74void wxMDIParentFrame::GetClientSize(int *x, int *y) const
75{
76 // TODO
77}
78
79void wxMDIParentFrame::SetMenuBar(wxMenuBar *menu_bar)
80{
81 // TODO
82 if (!menu_bar)
83 {
84 m_frameMenuBar = NULL;
85 return;
86 }
87
88 if (menu_bar->m_menuBarFrame)
89 return;
90
91 m_frameMenuBar = menu_bar;
92}
93
94void wxMDIParentFrame::OnSize(wxSizeEvent& event)
95{
96#if wxUSE_CONSTRAINTS
97 if (GetAutoLayout())
98 Layout();
99#endif
100 int x = 0;
101 int y = 0;
102 int width, height;
103 GetClientSize(&width, &height);
104
105 if ( GetClientWindow() )
106 GetClientWindow()->SetSize(x, y, width, height);
107}
108
109void wxMDIParentFrame::OnActivate(wxActivateEvent& event)
110{
111 // Do nothing
112}
113
114// Returns the active MDI child window
115wxMDIChildFrame *wxMDIParentFrame::GetActiveChild() const
116{
117 // TODO
118 return NULL;
119}
120
121// Create the client window class (don't Create the window,
122// just return a new class)
123wxMDIClientWindow *wxMDIParentFrame::OnCreateClient()
124{
125 return new wxMDIClientWindow ;
126}
127
128// Responds to colour changes, and passes event on to children.
129void wxMDIParentFrame::OnSysColourChanged(wxSysColourChangedEvent& event)
130{
131 // TODO
132
133 // Propagate the event to the non-top-level children
134 wxFrame::OnSysColourChanged(event);
135}
136
137// MDI operations
138void wxMDIParentFrame::Cascade()
139{
140 // TODO
141}
142
143void wxMDIParentFrame::Tile()
144{
145 // TODO
146}
147
148void wxMDIParentFrame::ArrangeIcons()
149{
150 // TODO
151}
152
153void wxMDIParentFrame::ActivateNext()
154{
155 // TODO
156}
157
158void wxMDIParentFrame::ActivatePrevious()
159{
160 // TODO
161}
162
163// Child frame
164
165wxMDIChildFrame::wxMDIChildFrame()
166{
167}
168
169bool wxMDIChildFrame::Create(wxMDIParentFrame *parent,
170 wxWindowID id,
171 const wxString& title,
172 const wxPoint& pos,
173 const wxSize& size,
174 long style,
175 const wxString& name)
176{
177 SetName(name);
178
179 if ( id > -1 )
180 m_windowId = id;
181 else
182 m_windowId = (int)NewControlId();
183
184 if (parent) parent->AddChild(this);
185
186 // TODO: create child frame
187
188 wxModelessWindows.Append(this);
189 return FALSE;
190}
191
192wxMDIChildFrame::~wxMDIChildFrame()
193{
194}
195
196// Set the client size (i.e. leave the calculation of borders etc.
197// to wxWindows)
198void wxMDIChildFrame::SetClientSize(int width, int height)
199{
200 // TODO
201}
202
203void wxMDIChildFrame::GetPosition(int *x, int *y) const
204{
205 // TODO
206}
207
208void wxMDIChildFrame::SetMenuBar(wxMenuBar *menu_bar)
209{
210 // TODO
211 if (!menu_bar)
212 {
213 m_frameMenuBar = NULL;
214 return;
215 }
216
217 if (menu_bar->m_menuBarFrame)
218 return;
219 m_frameMenuBar = menu_bar;
220}
221
222// MDI operations
223void wxMDIChildFrame::Maximize()
224{
225 // TODO
226}
227
228void wxMDIChildFrame::Restore()
229{
230 // TODO
231}
232
233void wxMDIChildFrame::Activate()
234{
235 // TODO
236}
237
238// Client window
239
240wxMDIClientWindow::wxMDIClientWindow()
241{
242}
243
244wxMDIClientWindow::~wxMDIClientWindow()
245{
246}
247
248bool wxMDIClientWindow::CreateClient(wxMDIParentFrame *parent, long style)
249{
250 // TODO create client window
251 m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE);
252
253 return FALSE;
254}
255
256// Explicitly call default scroll behaviour
257void wxMDIClientWindow::OnScroll(wxScrollEvent& event)
258{
259 Default(); // Default processing
260}
261