Supported navigation between documents with keyboard
This commit is contained in:
parent
47dbfafd71
commit
0263408aef
|
@ -27,6 +27,7 @@ BEGIN_EVENT_TABLE ( MyNotebook, wxAuiNotebook )
|
|||
EVT_RIGHT_DOWN ( MyNotebook::OnRightDown )
|
||||
EVT_MENU ( ID_MENU_CLOSE, MyNotebook::OnMenuClose )
|
||||
EVT_MENU ( ID_MENU_CLOSE_ALL, MyNotebook::OnMenuCloseAll )
|
||||
//EVT_KEY_DOWN ( MyNotebook::OnKeyDown )
|
||||
END_EVENT_TABLE()
|
||||
|
||||
MyNotebook::MyNotebook (
|
||||
|
@ -37,6 +38,9 @@ MyNotebook::MyNotebook (
|
|||
int style ) : wxAuiNotebook ( parent, id, position, size, style )
|
||||
{
|
||||
rightClickPage = -1;
|
||||
|
||||
wxApp::GetInstance()->Connect ( wxEVT_KEY_DOWN,
|
||||
wxKeyEventHandler ( MyNotebook::OnKeyDown ), NULL, this );
|
||||
}
|
||||
|
||||
void MyNotebook::OnLeftDown ( wxMouseEvent& event )
|
||||
|
@ -104,3 +108,24 @@ void MyNotebook::OnMenuCloseAll ( wxCommandEvent& WXUNUSED ( event ) )
|
|||
wxCommandEvent e;
|
||||
frame->OnCloseAll ( e );
|
||||
}
|
||||
|
||||
void MyNotebook::OnKeyDown ( wxKeyEvent &event )
|
||||
{
|
||||
#if defined __WXGTK__
|
||||
if ( event.m_keyCode != WXK_TAB || !event.m_altDown )
|
||||
#elif defined __WXOSX__
|
||||
if ( event.m_uniChar != ',' || !event.m_controlDown )
|
||||
#else
|
||||
if ( event.m_keyCode != WXK_TAB || !event.m_controlDown )
|
||||
#endif
|
||||
{
|
||||
event.Skip();
|
||||
return;
|
||||
}
|
||||
|
||||
AdvanceSelection ( !event.m_shiftDown );
|
||||
|
||||
XmlDoc *doc = ( XmlDoc * ) GetCurrentPage();
|
||||
if ( doc != NULL )
|
||||
doc->SetFocus();
|
||||
}
|
||||
|
|
|
@ -43,6 +43,7 @@ class MyNotebook : public wxAuiNotebook
|
|||
void OnRightDown ( wxMouseEvent& event );
|
||||
void OnMenuClose ( wxCommandEvent& event );
|
||||
void OnMenuCloseAll ( wxCommandEvent& event );
|
||||
void OnKeyDown ( wxKeyEvent &event );
|
||||
private:
|
||||
int rightClickPage;
|
||||
DECLARE_EVENT_TABLE()
|
||||
|
|
|
@ -592,18 +592,18 @@ MyFrame::MyFrame (
|
|||
mainBook ( 0 ),
|
||||
restoreFocusToNotebook ( false )
|
||||
{
|
||||
#ifdef __WXDEBUG__
|
||||
wxLog::SetActiveTarget ( &logTarget );
|
||||
wxLog::SetLogLevel ( wxLOG_Max );
|
||||
#endif
|
||||
|
||||
manager.SetManagedWindow ( this );
|
||||
|
||||
lastPos = 0;
|
||||
htmlReport = NULL;
|
||||
lastDoc = NULL;
|
||||
|
||||
wxString defaultFont =
|
||||
#ifdef __WXMSW__
|
||||
_T ( "Arial" );
|
||||
#else
|
||||
_T ( "Bitstream Vera Sans" );
|
||||
#endif
|
||||
wxString defaultFont = wxSystemSettings::GetFont ( wxSYS_SYSTEM_FONT ).GetFaceName();
|
||||
|
||||
bool findMatchCase;
|
||||
|
||||
|
@ -850,6 +850,7 @@ MyFrame::MyFrame (
|
|||
long style = wxAUI_NB_TOP |
|
||||
wxAUI_NB_TAB_SPLIT |
|
||||
wxAUI_NB_TAB_MOVE |
|
||||
wxAUI_NB_SCROLL_BUTTONS |
|
||||
wxAUI_NB_WINDOWLIST_BUTTON |
|
||||
wxAUI_NB_CLOSE_ON_ALL_TABS |
|
||||
wxNO_BORDER;
|
||||
|
@ -987,6 +988,10 @@ MyFrame::MyFrame (
|
|||
|
||||
MyFrame::~MyFrame()
|
||||
{
|
||||
#ifdef __WXDEBUG__
|
||||
wxLog::SetActiveTarget ( NULL );
|
||||
#endif
|
||||
|
||||
std::vector<wxString>::iterator it;
|
||||
for ( it = tempFileVector.begin(); it != tempFileVector.end(); it++ )
|
||||
wxRemoveFile ( *it );
|
||||
|
|
|
@ -345,7 +345,11 @@ class MyFrame : public wxFrame
|
|||
wxLocale& myLocale;
|
||||
bool singleInstanceCheck;
|
||||
int lang, lastPos;
|
||||
#ifdef __WXDEBUG__
|
||||
wxLogStderr logTarget;
|
||||
#else
|
||||
wxLogNull logTarget;
|
||||
#endif
|
||||
std::auto_ptr<wxHtmlEasyPrinting> htmlPrinting;
|
||||
std::auto_ptr<wxFindReplaceDialog> findDialog;
|
||||
std::auto_ptr<wxHtmlHelpController> helpController;
|
||||
|
|
Loading…
Reference in New Issue