allow the user to press Esc to close preview frame wherever the focus is, not only if it's on the canvas itself (patch 1719276)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48841 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2007-09-20 23:11:22 +00:00
parent 0edeeb6d96
commit 043c67059f
2 changed files with 23 additions and 14 deletions

View File

@ -388,8 +388,10 @@ protected:
wxWindowDisabler* m_windowDisabler;
private:
DECLARE_CLASS(wxPreviewFrame)
void OnChar(wxKeyEvent& event);
DECLARE_EVENT_TABLE()
DECLARE_CLASS(wxPreviewFrame)
DECLARE_NO_COPY_CLASS(wxPreviewFrame)
};

View File

@ -878,20 +878,14 @@ void wxPreviewCanvas::OnSysColourChanged(wxSysColourChangedEvent& event)
void wxPreviewCanvas::OnChar(wxKeyEvent &event)
{
wxPreviewControlBar* controlBar = ((wxPreviewFrame*) GetParent())->GetControlBar();
if (event.GetKeyCode() == WXK_ESCAPE)
switch (event.GetKeyCode())
{
((wxPreviewFrame*) GetParent())->Close(true);
return;
}
else if (event.GetKeyCode() == WXK_TAB)
{
controlBar->OnGoto();
return;
}
else if (event.GetKeyCode() == WXK_RETURN)
{
controlBar->OnPrint();
return;
case WXK_TAB:
controlBar->OnGoto();
return;
case WXK_RETURN:
controlBar->OnPrint();
return;
}
if (!event.ControlDown())
@ -1224,9 +1218,22 @@ int wxPreviewControlBar::GetZoomControl()
IMPLEMENT_CLASS(wxPreviewFrame, wxFrame)
BEGIN_EVENT_TABLE(wxPreviewFrame, wxFrame)
EVT_CHAR_HOOK(wxPreviewFrame::OnChar)
EVT_CLOSE(wxPreviewFrame::OnCloseWindow)
END_EVENT_TABLE()
void wxPreviewFrame::OnChar(wxKeyEvent &event)
{
if ( event.GetKeyCode() == WXK_ESCAPE )
{
Close(true);
}
else
{
event.Skip();
}
}
wxPreviewFrame::wxPreviewFrame(wxPrintPreviewBase *preview, wxWindow *parent, const wxString& title,
const wxPoint& pos, const wxSize& size, long style, const wxString& name):
wxFrame(parent, wxID_ANY, title, pos, size, style, name)