]> git.saurik.com Git - wxWidgets.git/blame - include/wx/gtk/mdi.h
Bo's patch for generic code, more sorting code, WIP
[wxWidgets.git] / include / wx / gtk / mdi.h
CommitLineData
c801d85f 1/////////////////////////////////////////////////////////////////////////////
cb8cc250 2// Name: wx/gtk/mdi.h
c801d85f
KB
3// Purpose:
4// Author: Robert Roebling
58614078
RR
5// Id: $Id$
6// Copyright: (c) 1998 Robert Roebling
65571936 7// Licence: wxWindows licence
c801d85f
KB
8/////////////////////////////////////////////////////////////////////////////
9
0416c418
PC
10#ifndef _WX_GTK_MDI_H_
11#define _WX_GTK_MDI_H_
c801d85f 12
0416c418 13#include "wx/frame.h"
c801d85f
KB
14
15//-----------------------------------------------------------------------------
16// wxMDIParentFrame
17//-----------------------------------------------------------------------------
18
20123d49 19class WXDLLIMPEXP_CORE wxMDIParentFrame: public wxFrame
c801d85f 20{
ab2b3dd4 21public:
f6bcfd97
BP
22 wxMDIParentFrame() { Init(); }
23 wxMDIParentFrame(wxWindow *parent,
24 wxWindowID id,
25 const wxString& title,
26 const wxPoint& pos = wxDefaultPosition,
27 const wxSize& size = wxDefaultSize,
28 long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL,
29 const wxString& name = wxFrameNameStr)
30 {
31 Init();
32
33 (void)Create(parent, id, title, pos, size, style, name);
34 }
35
d3c7fc99 36 virtual ~wxMDIParentFrame();
8487f887 37 bool Create( wxWindow *parent,
40d432c4
VZ
38 wxWindowID id,
39 const wxString& title,
40 const wxPoint& pos = wxDefaultPosition,
41 const wxSize& size = wxDefaultSize,
42 long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL,
43 const wxString& name = wxFrameNameStr );
c801d85f 44
ab2b3dd4 45 wxMDIChildFrame *GetActiveChild() const;
f6bcfd97
BP
46
47 wxMDIClientWindow *GetClientWindow() const;
ab2b3dd4 48 virtual wxMDIClientWindow *OnCreateClient();
f6bcfd97 49
ab2b3dd4 50 virtual void Cascade() {}
0d97c090 51 virtual void Tile(wxOrientation WXUNUSED(orient) = wxHORIZONTAL) {}
ab2b3dd4
RR
52 virtual void ArrangeIcons() {}
53 virtual void ActivateNext();
54 virtual void ActivatePrevious();
716b7364 55
f6bcfd97 56 // implementation
ab2b3dd4
RR
57
58 wxMDIClientWindow *m_clientWindow;
59 bool m_justInserted;
60
b5e31cc8 61 virtual void GtkOnSize();
ab2b3dd4 62 virtual void OnInternalIdle();
f6bcfd97
BP
63
64protected:
65 void Init();
1d66b099 66 virtual bool HasVisibleMenubar() const;
f6bcfd97 67
8487f887
RR
68private:
69 friend class wxMDIChildFrame;
f6bcfd97 70
8487f887 71 DECLARE_DYNAMIC_CLASS(wxMDIParentFrame)
c801d85f
KB
72};
73
74//-----------------------------------------------------------------------------
75// wxMDIChildFrame
76//-----------------------------------------------------------------------------
77
20123d49 78class WXDLLIMPEXP_CORE wxMDIChildFrame: public wxFrame
c801d85f 79{
8487f887 80public:
ab2b3dd4 81 wxMDIChildFrame();
c801d85f 82 wxMDIChildFrame( wxMDIParentFrame *parent,
885df446
VZ
83 wxWindowID id,
84 const wxString& title,
85 const wxPoint& pos = wxDefaultPosition,
86 const wxSize& size = wxDefaultSize,
87 long style = wxDEFAULT_FRAME_STYLE,
88 const wxString& name = wxFrameNameStr );
89
90 virtual ~wxMDIChildFrame();
c801d85f 91 bool Create( wxMDIParentFrame *parent,
885df446
VZ
92 wxWindowID id,
93 const wxString& title,
94 const wxPoint& pos = wxDefaultPosition,
95 const wxSize& size = wxDefaultSize,
96 long style = wxDEFAULT_FRAME_STYLE,
97 const wxString& name = wxFrameNameStr );
f6bcfd97 98
8487f887
RR
99 virtual void SetMenuBar( wxMenuBar *menu_bar );
100 virtual wxMenuBar *GetMenuBar() const;
c801d85f 101
8487f887 102 virtual void AddChild( wxWindowBase *child );
debe6624 103
8487f887 104 virtual void Activate();
f6bcfd97 105
dcf924a3 106#if wxUSE_STATUSBAR
cf4219e7 107 // no status bars
8487f887 108 virtual wxStatusBar* CreateStatusBar( int WXUNUSED(number) = 1,
f6bcfd97 109 long WXUNUSED(style) = 1,
e90c1d2a
VZ
110 wxWindowID WXUNUSED(id) = 1,
111 const wxString& WXUNUSED(name) = wxEmptyString)
8487f887 112 { return (wxStatusBar*)NULL; }
e90c1d2a 113
8487f887
RR
114 virtual wxStatusBar *GetStatusBar() const { return (wxStatusBar*)NULL; }
115 virtual void SetStatusText( const wxString &WXUNUSED(text), int WXUNUSED(number)=0 ) {}
116 virtual void SetStatusWidths( int WXUNUSED(n), const int WXUNUSED(widths_field)[] ) {}
dcf924a3 117#endif
cf4219e7
RR
118
119 // no size hints
571f6981 120 virtual void DoSetSizeHints( int WXUNUSED(minW),
cb8cc250
WS
121 int WXUNUSED(minH),
122 int WXUNUSED(maxW) = wxDefaultCoord,
123 int WXUNUSED(maxH) = wxDefaultCoord,
124 int WXUNUSED(incW) = wxDefaultCoord,
125 int WXUNUSED(incH) = wxDefaultCoord) {}
f6bcfd97 126
dcf924a3 127#if wxUSE_TOOLBAR
05c3f0fc 128 // no toolbar
885df446
VZ
129 virtual wxToolBar* CreateToolBar( long WXUNUSED(style),
130 wxWindowID WXUNUSED(id),
131 const wxString& WXUNUSED(name) )
132 { return (wxToolBar*)NULL; }
8487f887 133 virtual wxToolBar *GetToolBar() const { return (wxToolBar*)NULL; }
d11e8786 134#endif // wxUSE_TOOLBAR
f6bcfd97 135
cf4219e7 136 // no icon
05c3f0fc
VZ
137 virtual void SetIcons(const wxIconBundle& icons )
138 { wxTopLevelWindowBase::SetIcons(icons); }
f6bcfd97
BP
139
140 // no title
cb8cc250 141 virtual void SetTitle( const wxString &title );
f6bcfd97 142
cf4219e7 143 // no maximize etc
d11e8786
VZ
144 virtual void Maximize( bool WXUNUSED(maximize) = true ) { }
145 virtual bool IsMaximized() const { return true; }
146 virtual void Iconize(bool WXUNUSED(iconize) = true) { }
147 virtual bool IsIconized() const { return false; }
8487f887 148 virtual void Restore() {}
f6bcfd97 149
d11e8786 150 virtual bool IsTopLevel() const { return false; }
f6bcfd97 151
3811dacb
RR
152 virtual bool Destroy();
153
f6bcfd97
BP
154 void OnActivate( wxActivateEvent& event );
155 void OnMenuHighlight( wxMenuEvent& event );
156
157 // implementation
158
716b7364 159 wxMenuBar *m_menuBar;
716b7364 160 GtkNotebookPage *m_page;
ab2b3dd4 161 bool m_justInserted;
f6bcfd97 162
885df446 163protected:
ac0c857a
RR
164 // override wxFrame methods to not do anything
165 virtual void DoSetSize(int x, int y,
166 int width, int height,
167 int sizeFlags = wxSIZE_AUTO);
885df446 168
8487f887 169private:
f6bcfd97 170 DECLARE_EVENT_TABLE()
8487f887 171 DECLARE_DYNAMIC_CLASS(wxMDIChildFrame)
c801d85f
KB
172};
173
174//-----------------------------------------------------------------------------
175// wxMDIClientWindow
176//-----------------------------------------------------------------------------
177
20123d49 178class WXDLLIMPEXP_CORE wxMDIClientWindow: public wxWindow
c801d85f 179{
ab2b3dd4 180public:
fd9811b1 181 wxMDIClientWindow();
debe6624 182 wxMDIClientWindow( wxMDIParentFrame *parent, long style = 0 );
d3c7fc99 183 virtual ~wxMDIClientWindow();
debe6624 184 virtual bool CreateClient( wxMDIParentFrame *parent, long style = wxVSCROLL | wxHSCROLL );
8487f887
RR
185
186private:
187 DECLARE_DYNAMIC_CLASS(wxMDIClientWindow)
c801d85f
KB
188};
189
0416c418 190#endif // _WX_GTK_MDI_H_