]> git.saurik.com Git - wxWidgets.git/blame - include/wx/osx/frame.h
Allow custom wxDataViewCtrl renderers to easily use attributes.
[wxWidgets.git] / include / wx / osx / frame.h
CommitLineData
6762286d
SC
1/////////////////////////////////////////////////////////////////////////////
2// Name: frame.h
3// Purpose: wxFrame class
4// Author: Stefan Csomor
5// Modified by:
6// Created: 1998-01-01
7// RCS-ID: $Id$
8// Copyright: (c) Stefan Csomor
9// Licence: wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
12#ifndef _WX_FRAME_H_
13#define _WX_FRAME_H_
14
15#include "wx/window.h"
16#include "wx/toolbar.h"
17#include "wx/accel.h"
18#include "wx/icon.h"
19
20WXDLLIMPEXP_DATA_CORE(extern const char) wxToolBarNameStr[];
21
22class WXDLLIMPEXP_FWD_CORE wxMenuBar;
23class WXDLLIMPEXP_FWD_CORE wxStatusBar;
24class WXDLLIMPEXP_FWD_CORE wxMacToolTip ;
25
03647350 26class WXDLLIMPEXP_CORE wxFrame: public wxFrameBase
6762286d
SC
27{
28public:
29 // construction
30 wxFrame() { Init(); }
31 wxFrame(wxWindow *parent,
32 wxWindowID id,
33 const wxString& title,
34 const wxPoint& pos = wxDefaultPosition,
35 const wxSize& size = wxDefaultSize,
36 long style = wxDEFAULT_FRAME_STYLE,
37 const wxString& name = wxFrameNameStr)
38 {
39 Init();
40
41 Create(parent, id, title, pos, size, style, name);
42 }
43
44 bool Create(wxWindow *parent,
45 wxWindowID id,
46 const wxString& title,
47 const wxPoint& pos = wxDefaultPosition,
48 const wxSize& size = wxDefaultSize,
49 long style = wxDEFAULT_FRAME_STYLE,
50 const wxString& name = wxFrameNameStr);
51
52 virtual ~wxFrame();
53
54 // implementation only from now on
55 // -------------------------------
56
57 // get the origin of the client area (which may be different from (0, 0)
58 // if the frame has a toolbar) in client coordinates
59 virtual wxPoint GetClientAreaOrigin() const;
60
61 // override some more virtuals
8e6efd1f 62 virtual bool Enable(bool enable = true) ;
6762286d
SC
63
64 // event handlers
65 void OnActivate(wxActivateEvent& event);
66 void OnSysColourChanged(wxSysColourChangedEvent& event);
67
68 // Toolbar
69#if wxUSE_TOOLBAR
70 virtual wxToolBar* CreateToolBar(long style = -1,
71 wxWindowID id = -1,
72 const wxString& name = wxToolBarNameStr);
73
74 virtual void SetToolBar(wxToolBar *toolbar);
75#endif // wxUSE_TOOLBAR
76
77 // Status bar
78#if wxUSE_STATUSBAR
79 virtual wxStatusBar* OnCreateStatusBar(int number = 1,
c4c178c1 80 long style = wxSTB_DEFAULT_STYLE,
6762286d
SC
81 wxWindowID id = 0,
82 const wxString& name = wxStatusLineNameStr);
83#endif // wxUSE_STATUSBAR
84
85 // called by wxWindow whenever it gets focus
86 void SetLastFocus(wxWindow *win) { m_winLastFocused = win; }
87 wxWindow *GetLastFocus() const { return m_winLastFocused; }
88
89 void PositionBars();
90
91protected:
92 // common part of all ctors
93 void Init();
94
95#if wxUSE_TOOLBAR
96 virtual void PositionToolBar();
5c6eb3a8 97#endif
6762286d
SC
98#if wxUSE_STATUSBAR
99 virtual void PositionStatusBar();
100#endif
101
102 // override base class virtuals
103 virtual void DoGetClientSize(int *width, int *height) const;
104 virtual void DoSetClientSize(int width, int height);
105
106#if wxUSE_MENUS
107 virtual void DetachMenuBar();
108 virtual void AttachMenuBar(wxMenuBar *menubar);
109#endif
110
111 // osx specific event handling common for all osx-ports
112 virtual void HandleResized( double timestampsec );
113
114protected:
115 // the last focused child: we restore focus to it on activation
116 wxWindow *m_winLastFocused;
117
118 virtual bool MacIsChildOfClientArea( const wxWindow* child ) const ;
119
120private:
121 DECLARE_EVENT_TABLE()
122 DECLARE_DYNAMIC_CLASS(wxFrame)
123};
124
125#endif
126 // _WX_FRAME_H_