1
/////////////////////////////////////////////////////////////////////////////
2
// Name: wx/msw/frame.h
3
// Purpose: wxFrame class
4
// Author: Julian Smart
7
// RCS-ID: $Id: frame.h 70511 2012-02-05 14:18:22Z VZ $
8
// Copyright: (c) Julian Smart
9
// Licence: wxWindows licence
10
/////////////////////////////////////////////////////////////////////////////
15
class WXDLLIMPEXP_CORE wxFrame : public wxFrameBase
20
wxFrame(wxWindow *parent,
22
const wxString& title,
23
const wxPoint& pos = wxDefaultPosition,
24
const wxSize& size = wxDefaultSize,
25
long style = wxDEFAULT_FRAME_STYLE,
26
const wxString& name = wxFrameNameStr)
30
Create(parent, id, title, pos, size, style, name);
33
bool Create(wxWindow *parent,
35
const wxString& title,
36
const wxPoint& pos = wxDefaultPosition,
37
const wxSize& size = wxDefaultSize,
38
long style = wxDEFAULT_FRAME_STYLE,
39
const wxString& name = wxFrameNameStr);
43
// implement base class pure virtuals
44
virtual bool ShowFullScreen(bool show, long style = wxFULLSCREEN_ALL);
46
// implementation only from now on
47
// -------------------------------
50
void OnSysColourChanged(wxSysColourChangedEvent& event);
54
virtual wxToolBar* CreateToolBar(long style = -1,
55
wxWindowID id = wxID_ANY,
56
const wxString& name = wxToolBarNameStr);
57
#endif // wxUSE_TOOLBAR
61
virtual wxStatusBar* OnCreateStatusBar(int number = 1,
62
long style = wxSTB_DEFAULT_STYLE,
64
const wxString& name = wxStatusLineNameStr);
66
// Hint to tell framework which status bar to use: the default is to use
67
// native one for the platforms which support it (Win32), the generic one
70
// TODO: should this go into a wxFrameworkSettings class perhaps?
71
static void UseNativeStatusBar(bool useNative)
72
{ m_useNativeStatusBar = useNative; }
73
static bool UsesNativeStatusBar()
74
{ return m_useNativeStatusBar; }
75
#endif // wxUSE_STATUSBAR
78
bool HandleSize(int x, int y, WXUINT flag);
79
bool HandleCommand(WXWORD id, WXWORD cmd, WXHWND control);
80
bool HandleMenuSelect(WXWORD nItem, WXWORD nFlags, WXHMENU hMenu);
84
WXHWND GetToolTipCtrl() const { return m_hwndToolTip; }
85
void SetToolTipCtrl(WXHWND hwndTT) { m_hwndToolTip = hwndTT; }
88
// override the base class function to handle iconized/maximized frames
89
virtual void SendSizeEvent(int flags = 0);
91
virtual wxPoint GetClientAreaOrigin() const;
93
// override base class version to add menu bar accel processing
94
virtual bool MSWTranslateMessage(WXMSG *msg)
96
return MSWDoTranslateMessage(this, msg);
99
// window proc for the frames
100
virtual WXLRESULT MSWWindowProc(WXUINT message,
105
// get the currently active menu: this is the same as the frame menu for
106
// normal frames but is overridden by wxMDIParentFrame
107
virtual WXHMENU MSWGetActiveMenu() const { return m_hMenu; }
108
#endif // wxUSE_MENUS
111
// common part of all ctors
114
// override base class virtuals
115
virtual void DoGetClientSize(int *width, int *height) const;
116
virtual void DoSetClientSize(int width, int height);
118
#if wxUSE_MENUS_NATIVE
119
// perform MSW-specific action when menubar is changed
120
virtual void AttachMenuBar(wxMenuBar *menubar);
122
// a plug in for MDI frame classes which need to do something special when
123
// the menubar is set
124
virtual void InternalSetMenuBar();
125
#endif // wxUSE_MENUS_NATIVE
127
// propagate our state change to all child frames
128
void IconizeChildFrames(bool bIconize);
130
// the real implementation of MSWTranslateMessage(), also used by
132
bool MSWDoTranslateMessage(wxFrame *frame, WXMSG *msg);
135
// handle WM_EXITMENULOOP message for Win95 only
136
bool HandleExitMenuLoop(WXWORD isPopup);
138
// handle WM_(UN)INITMENUPOPUP message to generate wxEVT_MENU_OPEN/CLOSE
139
bool HandleMenuPopup(wxEventType evtType, WXHMENU hMenu);
141
// Command part of HandleMenuPopup() and HandleExitMenuLoop().
142
bool DoSendMenuOpenCloseEvent(wxEventType evtType, wxMenu* menu, bool popup);
143
#endif // wxUSE_MENUS
146
virtual bool IsMDIChild() const { return false; }
148
// get default (wxWidgets) icon for the frame
149
virtual WXHICON GetDefaultIcon() const;
152
virtual void PositionToolBar();
153
#endif // wxUSE_TOOLBAR
156
virtual void PositionStatusBar();
158
static bool m_useNativeStatusBar;
159
#endif // wxUSE_STATUSBAR
162
// frame menu, NULL if none
164
#endif // wxUSE_MENUS
168
WXHWND m_hwndToolTip;
171
// used by IconizeChildFrames(), see comments there
174
DECLARE_EVENT_TABLE()
175
DECLARE_DYNAMIC_CLASS_NO_COPY(wxFrame)