Do... fixes and OnMenuHighlight correction (so MDI sample now works)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4236 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -56,14 +56,6 @@ public:
|
|||||||
|
|
||||||
virtual bool Destroy();
|
virtual bool Destroy();
|
||||||
|
|
||||||
void GetClientSize(int *width, int *height) const;
|
|
||||||
void GetSize(int *width, int *height) const ;
|
|
||||||
void GetPosition(int *x, int *y) const ;
|
|
||||||
|
|
||||||
wxSize GetSize() const { return wxWindow::GetSize(); }
|
|
||||||
wxPoint GetPosition() const { return wxWindow::GetPosition(); }
|
|
||||||
wxSize GetClientSize() const { return wxWindow::GetClientSize(); }
|
|
||||||
|
|
||||||
void ClientToScreen(int *x, int *y) const;
|
void ClientToScreen(int *x, int *y) const;
|
||||||
wxPoint ClientToScreen(const wxPoint& pt) const { return wxWindow::ClientToScreen(pt); }
|
wxPoint ClientToScreen(const wxPoint& pt) const { return wxWindow::ClientToScreen(pt); }
|
||||||
|
|
||||||
@@ -174,6 +166,11 @@ public:
|
|||||||
|
|
||||||
bool PreResize();
|
bool PreResize();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void DoGetClientSize(int *width, int *height) const;
|
||||||
|
void DoGetSize(int *width, int *height) const ;
|
||||||
|
void DoGetPosition(int *x, int *y) const ;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
wxMenuBar * m_frameMenuBar;
|
wxMenuBar * m_frameMenuBar;
|
||||||
wxStatusBar * m_frameStatusBar;
|
wxStatusBar * m_frameStatusBar;
|
||||||
|
@@ -65,15 +65,10 @@ public:
|
|||||||
void OnSize(wxSizeEvent& event);
|
void OnSize(wxSizeEvent& event);
|
||||||
void OnActivate(wxActivateEvent& event);
|
void OnActivate(wxActivateEvent& event);
|
||||||
void OnSysColourChanged(wxSysColourChangedEvent& event);
|
void OnSysColourChanged(wxSysColourChangedEvent& event);
|
||||||
|
void OnMenuHighlight(wxMenuEvent& event);
|
||||||
|
|
||||||
void SetMenuBar(wxMenuBar *menu_bar);
|
void SetMenuBar(wxMenuBar *menu_bar);
|
||||||
|
|
||||||
// Gets the size available for subwindows after menu size, toolbar size
|
|
||||||
// and status bar size have been subtracted. If you want to manage your own
|
|
||||||
// toolbar(s), don't call SetToolBar.
|
|
||||||
void GetClientSize(int *width, int *height) const;
|
|
||||||
wxSize GetClientSize() const { return wxWindow::GetClientSize(); }
|
|
||||||
|
|
||||||
// Get the active MDI child window
|
// Get the active MDI child window
|
||||||
wxMDIChildFrame *GetActiveChild() const ;
|
wxMDIChildFrame *GetActiveChild() const ;
|
||||||
|
|
||||||
@@ -110,6 +105,10 @@ protected:
|
|||||||
int sizeFlags = wxSIZE_AUTO);
|
int sizeFlags = wxSIZE_AUTO);
|
||||||
virtual void DoSetClientSize(int width, int height);
|
virtual void DoSetClientSize(int width, int height);
|
||||||
|
|
||||||
|
// Gets the size available for subwindows after menu size, toolbar size
|
||||||
|
// and status bar size have been subtracted. If you want to manage your own
|
||||||
|
// toolbar(s), don't call SetToolBar.
|
||||||
|
void DoGetClientSize(int *width, int *height) const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
@@ -151,10 +150,6 @@ public:
|
|||||||
void SetMenuBar(wxMenuBar *menu_bar);
|
void SetMenuBar(wxMenuBar *menu_bar);
|
||||||
void SetTitle(const wxString& title);
|
void SetTitle(const wxString& title);
|
||||||
|
|
||||||
void GetClientSize(int *width, int *height) const;
|
|
||||||
void GetSize(int *width, int *height) const;
|
|
||||||
void GetPosition(int *x, int *y) const ;
|
|
||||||
|
|
||||||
// Set icon
|
// Set icon
|
||||||
virtual void SetIcon(const wxIcon& icon);
|
virtual void SetIcon(const wxIcon& icon);
|
||||||
|
|
||||||
@@ -199,6 +194,10 @@ protected:
|
|||||||
int width, int height,
|
int width, int height,
|
||||||
int sizeFlags = wxSIZE_AUTO);
|
int sizeFlags = wxSIZE_AUTO);
|
||||||
virtual void DoSetClientSize(int width, int height);
|
virtual void DoSetClientSize(int width, int height);
|
||||||
|
|
||||||
|
void DoGetClientSize(int *width, int *height) const;
|
||||||
|
void DoGetSize(int *width, int *height) const;
|
||||||
|
void DoGetPosition(int *x, int *y) const ;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* The client window is a child of the parent MDI frame, and itself
|
/* The client window is a child of the parent MDI frame, and itself
|
||||||
@@ -221,10 +220,6 @@ public:
|
|||||||
|
|
||||||
~wxMDIClientWindow();
|
~wxMDIClientWindow();
|
||||||
|
|
||||||
void GetClientSize(int *width, int *height) const;
|
|
||||||
void GetSize(int *width, int *height) const ;
|
|
||||||
void GetPosition(int *x, int *y) const ;
|
|
||||||
|
|
||||||
// Note: this is virtual, to allow overridden behaviour.
|
// Note: this is virtual, to allow overridden behaviour.
|
||||||
virtual bool CreateClient(wxMDIParentFrame *parent, long style = wxVSCROLL | wxHSCROLL);
|
virtual bool CreateClient(wxMDIParentFrame *parent, long style = wxVSCROLL | wxHSCROLL);
|
||||||
|
|
||||||
@@ -240,6 +235,11 @@ protected:
|
|||||||
int sizeFlags = wxSIZE_AUTO);
|
int sizeFlags = wxSIZE_AUTO);
|
||||||
virtual void DoSetClientSize(int width, int height);
|
virtual void DoSetClientSize(int width, int height);
|
||||||
|
|
||||||
|
void DoGetClientSize(int *width, int *height) const;
|
||||||
|
void DoGetSize(int *width, int *height) const ;
|
||||||
|
void DoGetPosition(int *x, int *y) const ;
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
};
|
};
|
||||||
|
@@ -400,7 +400,7 @@ wxFrame::~wxFrame()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get size *available for subwindows* i.e. excluding menu bar, toolbar etc.
|
// Get size *available for subwindows* i.e. excluding menu bar, toolbar etc.
|
||||||
void wxFrame::GetClientSize(int *x, int *y) const
|
void wxFrame::DoGetClientSize(int *x, int *y) const
|
||||||
{
|
{
|
||||||
Dimension xx, yy;
|
Dimension xx, yy;
|
||||||
XtVaGetValues((Widget) m_workArea, XmNwidth, &xx, XmNheight, &yy, NULL);
|
XtVaGetValues((Widget) m_workArea, XmNwidth, &xx, XmNheight, &yy, NULL);
|
||||||
@@ -488,14 +488,14 @@ void wxFrame::DoSetClientSize(int width, int height)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxFrame::GetSize(int *width, int *height) const
|
void wxFrame::DoGetSize(int *width, int *height) const
|
||||||
{
|
{
|
||||||
Dimension xx, yy;
|
Dimension xx, yy;
|
||||||
XtVaGetValues((Widget) m_frameShell, XmNwidth, &xx, XmNheight, &yy, NULL);
|
XtVaGetValues((Widget) m_frameShell, XmNwidth, &xx, XmNheight, &yy, NULL);
|
||||||
*width = xx; *height = yy;
|
*width = xx; *height = yy;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxFrame::GetPosition(int *x, int *y) const
|
void wxFrame::DoGetPosition(int *x, int *y) const
|
||||||
{
|
{
|
||||||
Window parent_window = XtWindow((Widget) m_frameShell),
|
Window parent_window = XtWindow((Widget) m_frameShell),
|
||||||
next_parent = XtWindow((Widget) m_frameShell),
|
next_parent = XtWindow((Widget) m_frameShell),
|
||||||
|
@@ -47,6 +47,7 @@ BEGIN_EVENT_TABLE(wxMDIParentFrame, wxFrame)
|
|||||||
EVT_SIZE(wxMDIParentFrame::OnSize)
|
EVT_SIZE(wxMDIParentFrame::OnSize)
|
||||||
EVT_ACTIVATE(wxMDIParentFrame::OnActivate)
|
EVT_ACTIVATE(wxMDIParentFrame::OnActivate)
|
||||||
EVT_SYS_COLOUR_CHANGED(wxMDIParentFrame::OnSysColourChanged)
|
EVT_SYS_COLOUR_CHANGED(wxMDIParentFrame::OnSysColourChanged)
|
||||||
|
EVT_MENU_HIGHLIGHT_ALL(wxMDIParentFrame::OnMenuHighlight)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE(wxMDIClientWindow, wxNotebook)
|
BEGIN_EVENT_TABLE(wxMDIClientWindow, wxNotebook)
|
||||||
@@ -131,9 +132,9 @@ void wxMDIParentFrame::OnSize(wxSizeEvent& WXUNUSED(event))
|
|||||||
GetClientWindow()->SetSize(x, y, width, height);
|
GetClientWindow()->SetSize(x, y, width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxMDIParentFrame::GetClientSize(int *width, int *height) const
|
void wxMDIParentFrame::DoGetClientSize(int *width, int *height) const
|
||||||
{
|
{
|
||||||
wxFrame::GetClientSize(width, height);
|
wxFrame::DoGetClientSize(width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxMDIParentFrame::OnActivate(wxActivateEvent& WXUNUSED(event))
|
void wxMDIParentFrame::OnActivate(wxActivateEvent& WXUNUSED(event))
|
||||||
@@ -283,6 +284,30 @@ void wxMDIParentFrame::ActivatePrevious()
|
|||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Default menu selection behaviour - display a help string
|
||||||
|
void wxMDIParentFrame::OnMenuHighlight(wxMenuEvent& event)
|
||||||
|
{
|
||||||
|
if (GetStatusBar())
|
||||||
|
{
|
||||||
|
if (event.GetMenuId() == -1)
|
||||||
|
SetStatusText("");
|
||||||
|
else
|
||||||
|
{
|
||||||
|
wxMenuBar *menuBar = (wxMenuBar*) NULL;
|
||||||
|
if (GetActiveChild())
|
||||||
|
menuBar = GetActiveChild()->GetMenuBar();
|
||||||
|
else
|
||||||
|
menuBar = GetMenuBar();
|
||||||
|
if (menuBar)
|
||||||
|
{
|
||||||
|
wxString helpString(menuBar->GetHelpString(event.GetMenuId()));
|
||||||
|
if (helpString != "")
|
||||||
|
SetStatusText(helpString);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Child frame
|
// Child frame
|
||||||
|
|
||||||
wxMDIChildFrame::wxMDIChildFrame()
|
wxMDIChildFrame::wxMDIChildFrame()
|
||||||
@@ -453,9 +478,9 @@ void wxMDIChildFrame::DoSetClientSize(int width, int height)
|
|||||||
wxWindow::DoSetClientSize(width, height);
|
wxWindow::DoSetClientSize(width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxMDIChildFrame::GetClientSize(int* width, int* height) const
|
void wxMDIChildFrame::DoGetClientSize(int* width, int* height) const
|
||||||
{
|
{
|
||||||
wxWindow::GetSize(width, height);
|
wxWindow::DoGetSize(width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxMDIChildFrame::DoSetSize(int x, int y, int width, int height, int sizeFlags)
|
void wxMDIChildFrame::DoSetSize(int x, int y, int width, int height, int sizeFlags)
|
||||||
@@ -463,14 +488,14 @@ void wxMDIChildFrame::DoSetSize(int x, int y, int width, int height, int sizeFla
|
|||||||
wxWindow::DoSetSize(x, y, width, height, sizeFlags);
|
wxWindow::DoSetSize(x, y, width, height, sizeFlags);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxMDIChildFrame::GetSize(int* width, int* height) const
|
void wxMDIChildFrame::DoGetSize(int* width, int* height) const
|
||||||
{
|
{
|
||||||
wxWindow::GetSize(width, height);
|
wxWindow::DoGetSize(width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxMDIChildFrame::GetPosition(int *x, int *y) const
|
void wxMDIChildFrame::DoGetPosition(int *x, int *y) const
|
||||||
{
|
{
|
||||||
wxWindow::GetPosition(x, y);
|
wxWindow::DoGetPosition(x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxMDIChildFrame::Show(bool show)
|
bool wxMDIChildFrame::Show(bool show)
|
||||||
@@ -614,19 +639,19 @@ void wxMDIClientWindow::DoSetClientSize(int width, int height)
|
|||||||
wxWindow::DoSetClientSize(width, height);
|
wxWindow::DoSetClientSize(width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxMDIClientWindow::GetClientSize(int *width, int *height) const
|
void wxMDIClientWindow::DoGetClientSize(int *width, int *height) const
|
||||||
{
|
{
|
||||||
wxWindow::GetClientSize(width, height);
|
wxWindow::DoGetClientSize(width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxMDIClientWindow::GetSize(int *width, int *height) const
|
void wxMDIClientWindow::DoGetSize(int *width, int *height) const
|
||||||
{
|
{
|
||||||
wxWindow::GetSize(width, height);
|
wxWindow::DoGetSize(width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxMDIClientWindow::GetPosition(int *x, int *y) const
|
void wxMDIClientWindow::DoGetPosition(int *x, int *y) const
|
||||||
{
|
{
|
||||||
wxWindow::GetPosition(x, y);
|
wxWindow::DoGetPosition(x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Explicitly call default scroll behaviour
|
// Explicitly call default scroll behaviour
|
||||||
|
Reference in New Issue
Block a user