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