]> git.saurik.com Git - wxWidgets.git/blob - include/wx/gtk/frame.h
788761d769254c869c460df0a53c323b209789bf
[wxWidgets.git] / include / wx / gtk / frame.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: frame.h
3 // Purpose:
4 // Author: Robert Roebling
5 // Created: 01/02/97
6 // Id:
7 // Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem
8 // Licence: wxWindows licence
9 /////////////////////////////////////////////////////////////////////////////
10
11
12 #ifndef __GTKFRAMEH__
13 #define __GTKFRAMEH__
14
15 #ifdef __GNUG__
16 #pragma interface
17 #endif
18
19 #include "wx/defs.h"
20 #include "wx/object.h"
21 #include "wx/window.h"
22 #include "wx/menu.h"
23 #include "wx/statusbr.h"
24 #include "wx/toolbar.h"
25
26 //-----------------------------------------------------------------------------
27 // classes
28 //-----------------------------------------------------------------------------
29
30 class wxMDIChildFrame;
31
32 class wxFrame;
33
34 //-----------------------------------------------------------------------------
35 // global data
36 //-----------------------------------------------------------------------------
37
38 extern const char *wxFrameNameStr;
39
40 //-----------------------------------------------------------------------------
41 // wxFrame
42 //-----------------------------------------------------------------------------
43
44 class wxFrame: public wxWindow
45 {
46 DECLARE_DYNAMIC_CLASS(wxFrame)
47 public:
48
49 wxFrame();
50 wxFrame( wxWindow *parent, wxWindowID id, const wxString &title,
51 const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
52 long style = wxDEFAULT_FRAME_STYLE, const wxString &name = wxFrameNameStr );
53 bool Create( wxWindow *parent, wxWindowID id, const wxString &title,
54 const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
55 long style = wxDEFAULT_FRAME_STYLE, const wxString &name = wxFrameNameStr );
56 ~wxFrame();
57 bool Destroy();
58
59 virtual bool Show( bool show );
60 virtual void Enable( bool enable );
61
62 virtual void GetClientSize( int *width, int *height ) const;
63
64 // set minimal/maxmimal size for the frame
65 virtual void SetSizeHints( int minW, int minH, int maxW, int maxH, int incW = -1 );
66
67 virtual wxStatusBar* CreateStatusBar(int number=1, long style = wxST_SIZEGRIP, wxWindowID id = 0,
68 const wxString& name = "statusBar");
69 virtual wxStatusBar *GetStatusBar();
70 virtual void SetStatusText( const wxString &text, int number = 0 );
71 virtual void SetStatusWidths( int n, int *width );
72
73 virtual wxToolBar* CreateToolBar( long style = wxNO_BORDER|wxTB_HORIZONTAL, wxWindowID id = -1,
74 const wxString& name = wxToolBarNameStr);
75 virtual wxToolBar *GetToolBar();
76
77 virtual void SetMenuBar( wxMenuBar *menuBar );
78 virtual wxMenuBar *GetMenuBar();
79
80 void SetTitle( const wxString &title );
81 wxString GetTitle() const { return m_title; }
82
83 void SetIcon( const wxIcon &icon );
84
85 void OnActivate( wxActivateEvent &WXUNUSED(event) ) { } // called from docview.cpp
86 void OnSize( wxSizeEvent &event );
87 void OnCloseWindow( wxCloseEvent& event );
88 void OnIdle(wxIdleEvent& event);
89
90 virtual void AddChild( wxWindow *child );
91 virtual void GtkOnSize( int x, int y, int width, int height );
92
93 private:
94 friend wxWindow;
95 friend wxMDIChildFrame;
96
97 // update frame's menus (called from OnIdle)
98 void DoMenuUpdates();
99 void DoMenuUpdates(wxMenu* menu);
100
101 GtkWidget *m_mainWindow;
102 wxMenuBar *m_frameMenuBar;
103 wxStatusBar *m_frameStatusBar;
104 wxToolBar *m_frameToolBar;
105 int m_toolBarHeight;
106 bool m_doingOnSize;
107 bool m_addPrivateChild; // for toolbar (and maybe menubar)
108 wxString m_title;
109 wxIcon m_icon;
110
111 DECLARE_EVENT_TABLE()
112 };
113
114 #endif // __GTKFRAMEH__