diff --git a/clientgui/AdvancedFrame.cpp b/clientgui/AdvancedFrame.cpp index 77354f1a75d..32250e759e0 100644 --- a/clientgui/AdvancedFrame.cpp +++ b/clientgui/AdvancedFrame.cpp @@ -205,6 +205,8 @@ BEGIN_EVENT_TABLE (CAdvancedFrame, CBOINCBaseFrame) EVT_TIMER(ID_FRAMERENDERTIMER, CAdvancedFrame::OnFrameRender) EVT_NOTEBOOK_PAGE_CHANGED(ID_FRAMENOTEBOOK, CAdvancedFrame::OnNotebookSelectionChanged) EVT_MENU(ID_SELECTALL, CAdvancedFrame::OnSelectAll) + EVT_MENU(ID_NEXTPAGE, CAdvancedFrame::OnNextPage) + EVT_MENU(ID_PREVPAGE, CAdvancedFrame::OnPrevPage) EVT_SIZE(CAdvancedFrame::OnSize) EVT_MOVE(CAdvancedFrame::OnMove) #ifdef __WXMAC__ @@ -753,14 +755,17 @@ bool CAdvancedFrame::CreateMenus() { delete m_pOldMenubar; } - m_Shortcuts[0].Set(wxACCEL_CTRL, (int)'A', ID_SELECTALL); + m_Shortcuts[0].Set(wxACCEL_RAW_CTRL, (int)'A', ID_SELECTALL); + m_Shortcuts[1].Set(wxACCEL_RAW_CTRL, WXK_TAB, ID_NEXTPAGE); + m_Shortcuts[2].Set(wxACCEL_RAW_CTRL|wxACCEL_SHIFT, WXK_TAB, ID_PREVPAGE); + #ifdef __WXMAC__ // Set HELP key as keyboard shortcut - m_Shortcuts[1].Set(wxACCEL_NORMAL, WXK_HELP, ID_HELPBOINCMANAGER); + m_Shortcuts[3].Set(wxACCEL_NORMAL, WXK_HELP, ID_HELPBOINCMANAGER); #endif - m_pAccelTable = new wxAcceleratorTable(2, m_Shortcuts); + m_pAccelTable = new wxAcceleratorTable(4, m_Shortcuts); SetAcceleratorTable(*m_pAccelTable); wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::CreateMenu - Function End")); @@ -1979,6 +1984,38 @@ void CAdvancedFrame::OnSelectAll(wxCommandEvent& WXUNUSED(event)) { } +void CAdvancedFrame::OnNextPage(wxCommandEvent& WXUNUSED(event)) { + wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::OnNextPage - Function Begin")); + + wxWindow* pwndNotebookPage = m_pNotebook->GetPage(m_pNotebook->GetSelection()); + + if (pwndNotebookPage != NULL) { + m_pNotebook->AdvanceSelection(); + } + + wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::OnNextPage - Function End")); +} + + +void CAdvancedFrame::OnPrevPage(wxCommandEvent& WXUNUSED(event)) { + wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::OnPrevPage - Function Begin")); + + wxWindow* pwndNotebookPage = NULL; + int currentPage = m_pNotebook->GetSelection(); + int pageCount = m_pNotebook->GetPageCount(); + int selection = currentPage; + + if (currentPage == 0) selection = pageCount; + + pwndNotebookPage = m_pNotebook->GetPage(currentPage); + if (pwndNotebookPage != NULL) { + m_pNotebook->SetSelection(selection - 1); + } + + wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::OnPrevPage - Function End")); +} + + void CAdvancedFrame::UpdateActivityModeControls( CC_STATUS& status ) { wxMenuBar* pMenuBar = GetMenuBar(); wxASSERT(pMenuBar); diff --git a/clientgui/AdvancedFrame.h b/clientgui/AdvancedFrame.h index 376dbd2b60a..10dbaf50bb0 100644 --- a/clientgui/AdvancedFrame.h +++ b/clientgui/AdvancedFrame.h @@ -65,6 +65,8 @@ class CAdvancedFrame : public CBOINCBaseFrame void OnActivitySelection( wxCommandEvent& event ); void OnGPUSelection( wxCommandEvent& event ); void OnNetworkSelection( wxCommandEvent& event ); + void OnNextPage( wxCommandEvent &event ); + void OnPrevPage( wxCommandEvent &event ); void OnSelectAll( wxCommandEvent& event ); @@ -112,7 +114,7 @@ class CAdvancedFrame : public CBOINCBaseFrame protected: virtual int _GetCurrentViewPage(); - wxAcceleratorEntry m_Shortcuts[2]; // For keyboard shortcut + wxAcceleratorEntry m_Shortcuts[4]; // For keyboard shortcut wxAcceleratorTable* m_pAccelTable; private: diff --git a/clientgui/Events.h b/clientgui/Events.h index 58783cc9359..926e1eb648b 100644 --- a/clientgui/Events.h +++ b/clientgui/Events.h @@ -154,6 +154,8 @@ // Shortcuts #define ID_SELECTALL 9800 +#define ID_NEXTPAGE 9801 +#define ID_PREVPAGE 9802 // // Simple GUI