From 07376825f175027bf48da824e2c355b7d26d3c8d Mon Sep 17 00:00:00 2001 From: winkies Date: Sat, 3 Oct 2020 16:31:02 +0200 Subject: [PATCH 1/3] boincmgr: add CTRL+TAB shortcut --- clientgui/AdvancedFrame.cpp | 22 ++++++++++++++++++++-- clientgui/AdvancedFrame.h | 3 ++- clientgui/Events.h | 1 + 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/clientgui/AdvancedFrame.cpp b/clientgui/AdvancedFrame.cpp index 77354f1a75d..8fe68e73731 100644 --- a/clientgui/AdvancedFrame.cpp +++ b/clientgui/AdvancedFrame.cpp @@ -205,6 +205,7 @@ 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_NEXT_PAGE, CAdvancedFrame::OnNextPage) EVT_SIZE(CAdvancedFrame::OnSize) EVT_MOVE(CAdvancedFrame::OnMove) #ifdef __WXMAC__ @@ -754,13 +755,14 @@ bool CAdvancedFrame::CreateMenus() { } m_Shortcuts[0].Set(wxACCEL_CTRL, (int)'A', ID_SELECTALL); + m_Shortcuts[1].Set(wxACCEL_CTRL, WXK_TAB, ID_NEXT_PAGE); #ifdef __WXMAC__ // Set HELP key as keyboard shortcut - m_Shortcuts[1].Set(wxACCEL_NORMAL, WXK_HELP, ID_HELPBOINCMANAGER); + m_Shortcuts[2].Set(wxACCEL_NORMAL, WXK_HELP, ID_HELPBOINCMANAGER); #endif - m_pAccelTable = new wxAcceleratorTable(2, m_Shortcuts); + m_pAccelTable = new wxAcceleratorTable(3, m_Shortcuts); SetAcceleratorTable(*m_pAccelTable); wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::CreateMenu - Function End")); @@ -1979,6 +1981,22 @@ void CAdvancedFrame::OnSelectAll(wxCommandEvent& WXUNUSED(event)) { } +void CAdvancedFrame::OnNextPage( wxCommandEvent& event) { + wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::OnNextPage - Function Begin")); + + wxWindow* pwndNotebookPage = NULL; + int selection = event.GetSelection(); + + pwndNotebookPage = m_pNotebook->GetPage(selection); + + if ( pwndNotebookPage != NULL ) { + m_pNotebook->AdvanceSelection(true); + } + + wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::OnNextPage - 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..f3374969a58 100644 --- a/clientgui/AdvancedFrame.h +++ b/clientgui/AdvancedFrame.h @@ -65,6 +65,7 @@ class CAdvancedFrame : public CBOINCBaseFrame void OnActivitySelection( wxCommandEvent& event ); void OnGPUSelection( wxCommandEvent& event ); void OnNetworkSelection( wxCommandEvent& event ); + void OnNextPage( wxCommandEvent &event); void OnSelectAll( wxCommandEvent& event ); @@ -112,7 +113,7 @@ class CAdvancedFrame : public CBOINCBaseFrame protected: virtual int _GetCurrentViewPage(); - wxAcceleratorEntry m_Shortcuts[2]; // For keyboard shortcut + wxAcceleratorEntry m_Shortcuts[3]; // For keyboard shortcut wxAcceleratorTable* m_pAccelTable; private: diff --git a/clientgui/Events.h b/clientgui/Events.h index 58783cc9359..fe87102f596 100644 --- a/clientgui/Events.h +++ b/clientgui/Events.h @@ -154,6 +154,7 @@ // Shortcuts #define ID_SELECTALL 9800 +#define ID_NEXT_PAGE 9801 // // Simple GUI From cbd87af9f19501ff306d54aeb44e12249f2a56d6 Mon Sep 17 00:00:00 2001 From: winkies Date: Tue, 12 Jan 2021 21:24:01 +0100 Subject: [PATCH 2/3] boincmgr: add CTRL+Shift+TAB shortcut --- clientgui/AdvancedFrame.cpp | 39 +++++++++++++++++++++++++++---------- clientgui/AdvancedFrame.h | 5 +++-- clientgui/Events.h | 3 ++- 3 files changed, 34 insertions(+), 13 deletions(-) diff --git a/clientgui/AdvancedFrame.cpp b/clientgui/AdvancedFrame.cpp index 8fe68e73731..2b9e167017c 100644 --- a/clientgui/AdvancedFrame.cpp +++ b/clientgui/AdvancedFrame.cpp @@ -205,7 +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_NEXT_PAGE, CAdvancedFrame::OnNextPage) + EVT_MENU(ID_NEXTPAGE, CAdvancedFrame::OnNextPage) + EVT_MENU(ID_PREVPAGE, CAdvancedFrame::OnPrevPage) EVT_SIZE(CAdvancedFrame::OnSize) EVT_MOVE(CAdvancedFrame::OnMove) #ifdef __WXMAC__ @@ -755,14 +756,16 @@ bool CAdvancedFrame::CreateMenus() { } m_Shortcuts[0].Set(wxACCEL_CTRL, (int)'A', ID_SELECTALL); - m_Shortcuts[1].Set(wxACCEL_CTRL, WXK_TAB, ID_NEXT_PAGE); + m_Shortcuts[1].Set(wxACCEL_CTRL, WXK_TAB, ID_NEXTPAGE); + m_Shortcuts[2].Set(wxACCEL_CTRL|wxACCEL_SHIFT, WXK_TAB, ID_PREVPAGE); + #ifdef __WXMAC__ // Set HELP key as keyboard shortcut - m_Shortcuts[2].Set(wxACCEL_NORMAL, WXK_HELP, ID_HELPBOINCMANAGER); + m_Shortcuts[3].Set(wxACCEL_NORMAL, WXK_HELP, ID_HELPBOINCMANAGER); #endif - m_pAccelTable = new wxAcceleratorTable(3, m_Shortcuts); + m_pAccelTable = new wxAcceleratorTable(4, m_Shortcuts); SetAcceleratorTable(*m_pAccelTable); wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::CreateMenu - Function End")); @@ -1981,19 +1984,35 @@ void CAdvancedFrame::OnSelectAll(wxCommandEvent& WXUNUSED(event)) { } -void CAdvancedFrame::OnNextPage( wxCommandEvent& 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 selection = event.GetSelection(); + int currentPage = m_pNotebook->GetSelection(); + int pageCount = m_pNotebook->GetPageCount(); + int selection = currentPage; - pwndNotebookPage = m_pNotebook->GetPage(selection); + if (currentPage == 0) selection = pageCount; - if ( pwndNotebookPage != NULL ) { - m_pNotebook->AdvanceSelection(true); + pwndNotebookPage = m_pNotebook->GetPage(currentPage); + if (pwndNotebookPage != NULL) { + m_pNotebook->SetSelection(selection - 1); } - wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::OnNextPage - Function End")); + wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::OnPrevPage - Function End")); } diff --git a/clientgui/AdvancedFrame.h b/clientgui/AdvancedFrame.h index f3374969a58..10dbaf50bb0 100644 --- a/clientgui/AdvancedFrame.h +++ b/clientgui/AdvancedFrame.h @@ -65,7 +65,8 @@ class CAdvancedFrame : public CBOINCBaseFrame void OnActivitySelection( wxCommandEvent& event ); void OnGPUSelection( wxCommandEvent& event ); void OnNetworkSelection( wxCommandEvent& event ); - void OnNextPage( wxCommandEvent &event); + void OnNextPage( wxCommandEvent &event ); + void OnPrevPage( wxCommandEvent &event ); void OnSelectAll( wxCommandEvent& event ); @@ -113,7 +114,7 @@ class CAdvancedFrame : public CBOINCBaseFrame protected: virtual int _GetCurrentViewPage(); - wxAcceleratorEntry m_Shortcuts[3]; // 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 fe87102f596..926e1eb648b 100644 --- a/clientgui/Events.h +++ b/clientgui/Events.h @@ -154,7 +154,8 @@ // Shortcuts #define ID_SELECTALL 9800 -#define ID_NEXT_PAGE 9801 +#define ID_NEXTPAGE 9801 +#define ID_PREVPAGE 9802 // // Simple GUI From 746d58f25f1f35a5f5a1d68a405bbda00766e5e8 Mon Sep 17 00:00:00 2001 From: winkies Date: Tue, 19 Jan 2021 14:33:30 +0100 Subject: [PATCH 3/3] boincmgr: use wxACCEL_RAW_CTRL instead of wxACCEL_CTRL to fit with real Ctrl key on macOS --- clientgui/AdvancedFrame.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/clientgui/AdvancedFrame.cpp b/clientgui/AdvancedFrame.cpp index 2b9e167017c..32250e759e0 100644 --- a/clientgui/AdvancedFrame.cpp +++ b/clientgui/AdvancedFrame.cpp @@ -755,9 +755,9 @@ bool CAdvancedFrame::CreateMenus() { delete m_pOldMenubar; } - m_Shortcuts[0].Set(wxACCEL_CTRL, (int)'A', ID_SELECTALL); - m_Shortcuts[1].Set(wxACCEL_CTRL, WXK_TAB, ID_NEXTPAGE); - m_Shortcuts[2].Set(wxACCEL_CTRL|wxACCEL_SHIFT, WXK_TAB, ID_PREVPAGE); + 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__