From 496ad5cc1cf55c73470e676a553b6d0d54747cad Mon Sep 17 00:00:00 2001 From: Rom Walton Date: Thu, 21 Jul 2005 09:43:40 +0000 Subject: [PATCH] *** empty log message *** svn path=/trunk/boinc/; revision=6725 --- checkin_notes | 21 +++++++++++++++++++++ clientgui/BOINCBaseView.cpp | 10 +++++++--- clientgui/BOINCBaseView.h | 6 +++++- clientgui/BOINCGUIApp.cpp | 4 ++++ clientgui/BOINCTaskCtrl.cpp | 6 +++++- clientgui/BOINCTaskCtrl.h | 2 +- clientgui/ViewMessages.cpp | 2 +- clientgui/ViewProjects.cpp | 2 +- clientgui/ViewResources.cpp | 2 +- clientgui/ViewStatistics.cpp | 2 +- clientgui/ViewTransfers.cpp | 2 +- clientgui/ViewWork.cpp | 2 +- clientgui/stdwx.h | 15 +++++++++++++++ win_build/boincmgr.vcproj | 6 ++++++ 14 files changed, 70 insertions(+), 12 deletions(-) diff --git a/checkin_notes b/checkin_notes index 726011b3c0..f2f8fbc84d 100755 --- a/checkin_notes +++ b/checkin_notes @@ -9330,3 +9330,24 @@ David 21 July 2005 sched/ main.C + +Rom 21 July 2005 + - After a false start here is an update that should allow screen readers + to read something useful. The wxWidget documentation and sample are + kinda stale and lead you believe that you have to define proxies for + the various controls, but in fact you can enable the context help + system in combination with the normal window name/title scheme and + skip the proxy creation. What started out being several hundred lines + of code shrunk down to 20 or so lines of code. + + clientgui/ + BOINCBaseView.cpp, .h + BOINCGUIApp.cpp + BOINCTaskCtrl.cpp, .h + stdwx.h + ViewMessages.cpp + ViewProjects.cpp + ViewResources.cpp + ViewStatistics.cpp + ViewTransfers.cpp + ViewWork.cpp diff --git a/clientgui/BOINCBaseView.cpp b/clientgui/BOINCBaseView.cpp index b554b1de58..f259b8b197 100644 --- a/clientgui/BOINCBaseView.cpp +++ b/clientgui/BOINCBaseView.cpp @@ -36,7 +36,7 @@ IMPLEMENT_DYNAMIC_CLASS(CBOINCBaseView, wxPanel) CBOINCBaseView::CBOINCBaseView() {} -CBOINCBaseView::CBOINCBaseView(wxNotebook* pNotebook) : +CBOINCBaseView::CBOINCBaseView(wxNotebook* pNotebook, wxString strName) : wxPanel(pNotebook, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL) { wxASSERT(pNotebook); @@ -50,12 +50,14 @@ CBOINCBaseView::CBOINCBaseView(wxNotebook* pNotebook) : m_pTaskPane = NULL; m_pListPane = NULL; + SetName(strName); + SetAutoLayout(TRUE); } CBOINCBaseView::CBOINCBaseView( - wxNotebook* pNotebook, wxWindowID iTaskWindowID, int iTaskWindowFlags, + wxNotebook* pNotebook, wxString strName, wxWindowID iTaskWindowID, int iTaskWindowFlags, wxWindowID iListWindowID, int iListWindowFlags ) : wxPanel(pNotebook, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL) { @@ -70,6 +72,8 @@ CBOINCBaseView::CBOINCBaseView( m_pTaskPane = NULL; m_pListPane = NULL; + SetName(strName); + SetAutoLayout(TRUE); wxFlexGridSizer* itemFlexGridSizer = new wxFlexGridSizer(2, 0, 0); @@ -100,7 +104,7 @@ CBOINCBaseView::~CBOINCBaseView() {} // If it has not been defined by the view "Undefined" is returned. // wxString CBOINCBaseView::GetViewName() { - return wxString(_T("Undefined")); + return wxString(wxT("Undefined")); } diff --git a/clientgui/BOINCBaseView.h b/clientgui/BOINCBaseView.h index 204ec106c9..8221494d22 100644 --- a/clientgui/BOINCBaseView.h +++ b/clientgui/BOINCBaseView.h @@ -75,9 +75,13 @@ class CBOINCBaseView : public wxPanel { public: CBOINCBaseView(); - CBOINCBaseView(wxNotebook* pNotebook); CBOINCBaseView( wxNotebook* pNotebook, + wxString strName + ); + CBOINCBaseView( + wxNotebook* pNotebook, + wxString strName, wxWindowID iTaskWindowID, int iTaskWindowFlags, wxWindowID iListWindowID, diff --git a/clientgui/BOINCGUIApp.cpp b/clientgui/BOINCGUIApp.cpp index 801110c0a8..26ad1f9415 100644 --- a/clientgui/BOINCGUIApp.cpp +++ b/clientgui/BOINCGUIApp.cpp @@ -152,6 +152,10 @@ bool CBOINCGUIApp::OnInit() { InitSupportedLanguages(); + // Note: JAWS for Windows will only speak the context-sensitive + // help if you use this help provider: + wxHelpProvider::Set(new wxHelpControllerHelpProvider()); + // Commandline parsing is done in wxApp::OnInit() if (!wxApp::OnInit()) { return false; diff --git a/clientgui/BOINCTaskCtrl.cpp b/clientgui/BOINCTaskCtrl.cpp index 7c311834bf..7ed7c41fe9 100644 --- a/clientgui/BOINCTaskCtrl.cpp +++ b/clientgui/BOINCTaskCtrl.cpp @@ -33,10 +33,12 @@ CBOINCTaskCtrl::CBOINCTaskCtrl() {} CBOINCTaskCtrl::CBOINCTaskCtrl(CBOINCBaseView* pView, wxWindowID iTaskWindowID, wxInt32 iTaskWindowFlags) : - wxPanel(pView, iTaskWindowID, wxDefaultPosition, wxSize(200, -1), iTaskWindowFlags) + wxScrolledWindow(pView, iTaskWindowID, wxDefaultPosition, wxSize(200, -1), iTaskWindowFlags) { m_pParent = pView; m_pBoxSizer = NULL; + + EnableScrolling(true, false); } @@ -128,6 +130,7 @@ wxInt32 CBOINCTaskCtrl::UpdateTask( CTaskItem* pItem, wxString strName, wxString pItem->m_strDescription = strDescription; pItem->m_pButton->SetLabel( strName ); + pItem->m_pButton->SetHelpText( strDescription ); #if wxUSE_TOOLTIPS pItem->m_pButton->SetToolTip( strDescription ); #endif @@ -170,6 +173,7 @@ wxInt32 CBOINCTaskCtrl::UpdateControls() { if (!pItem->m_pButton) { pItem->m_pButton = new wxButton; pItem->m_pButton->Create(this, pItem->m_iEventID, pItem->m_strName, wxDefaultPosition, wxDefaultSize, 0); + pItem->m_pButton->SetHelpText(pItem->m_strDescription); #if wxUSE_TOOLTIPS pItem->m_pButton->SetToolTip(pItem->m_strDescription); #endif diff --git a/clientgui/BOINCTaskCtrl.h b/clientgui/BOINCTaskCtrl.h index a858714b57..a040e5a9e6 100644 --- a/clientgui/BOINCTaskCtrl.h +++ b/clientgui/BOINCTaskCtrl.h @@ -29,7 +29,7 @@ class CTaskItem; class CTaskItemGroup; class CBOINCBaseView; -class CBOINCTaskCtrl : public wxPanel { +class CBOINCTaskCtrl : public wxScrolledWindow { DECLARE_DYNAMIC_CLASS( CBOINCTaskCtrl ) public: diff --git a/clientgui/ViewMessages.cpp b/clientgui/ViewMessages.cpp index fb664cc0b0..d4d34d0c4c 100644 --- a/clientgui/ViewMessages.cpp +++ b/clientgui/ViewMessages.cpp @@ -52,7 +52,7 @@ CViewMessages::CViewMessages() {} CViewMessages::CViewMessages(wxNotebook* pNotebook) : - CBOINCBaseView(pNotebook, ID_TASK_MESSAGESVIEW, DEFAULT_TASK_FLAGS, ID_LIST_MESSAGESVIEW, DEFAULT_LIST_MULTI_SEL_FLAGS) + CBOINCBaseView(pNotebook, GetViewName(), ID_TASK_MESSAGESVIEW, DEFAULT_TASK_FLAGS, ID_LIST_MESSAGESVIEW, DEFAULT_LIST_MULTI_SEL_FLAGS) { CTaskItemGroup* pGroup = NULL; CTaskItem* pItem = NULL; diff --git a/clientgui/ViewProjects.cpp b/clientgui/ViewProjects.cpp index c9ee765cc3..e63d8dc828 100644 --- a/clientgui/ViewProjects.cpp +++ b/clientgui/ViewProjects.cpp @@ -91,7 +91,7 @@ CViewProjects::CViewProjects() {} CViewProjects::CViewProjects(wxNotebook* pNotebook) : - CBOINCBaseView(pNotebook, ID_TASK_PROJECTSVIEW, DEFAULT_TASK_FLAGS, ID_LIST_PROJECTSVIEW, DEFAULT_LIST_SINGLE_SEL_FLAGS) + CBOINCBaseView(pNotebook, GetViewName(), ID_TASK_PROJECTSVIEW, DEFAULT_TASK_FLAGS, ID_LIST_PROJECTSVIEW, DEFAULT_LIST_SINGLE_SEL_FLAGS) { CTaskItemGroup* pGroup = NULL; CTaskItem* pItem = NULL; diff --git a/clientgui/ViewResources.cpp b/clientgui/ViewResources.cpp index 821e8959a4..54053786ea 100644 --- a/clientgui/ViewResources.cpp +++ b/clientgui/ViewResources.cpp @@ -59,7 +59,7 @@ CViewResources::CViewResources() {} CViewResources::CViewResources(wxNotebook* pNotebook) : - CBOINCBaseView(pNotebook, ID_TASK_RESOURCEUTILIZATIONVIEW, DEFAULT_TASK_FLAGS, ID_LIST_RESOURCEUTILIZATIONVIEW, DEFAULT_LIST_SINGLE_SEL_FLAGS) + CBOINCBaseView(pNotebook, GetViewName(), ID_TASK_RESOURCEUTILIZATIONVIEW, DEFAULT_TASK_FLAGS, ID_LIST_RESOURCEUTILIZATIONVIEW, DEFAULT_LIST_SINGLE_SEL_FLAGS) { wxASSERT(m_pTaskPane); wxASSERT(m_pListPane); diff --git a/clientgui/ViewStatistics.cpp b/clientgui/ViewStatistics.cpp index b57a920963..60c84f025b 100644 --- a/clientgui/ViewStatistics.cpp +++ b/clientgui/ViewStatistics.cpp @@ -284,7 +284,7 @@ CViewStatistics::CViewStatistics() {} CViewStatistics::CViewStatistics(wxNotebook* pNotebook) : - CBOINCBaseView(pNotebook) + CBOINCBaseView(pNotebook, GetViewName()) { CTaskItemGroup* pGroup = NULL; CTaskItem* pItem = NULL; diff --git a/clientgui/ViewTransfers.cpp b/clientgui/ViewTransfers.cpp index ff6eecabaf..600c7ee46a 100644 --- a/clientgui/ViewTransfers.cpp +++ b/clientgui/ViewTransfers.cpp @@ -76,7 +76,7 @@ CViewTransfers::CViewTransfers() {} CViewTransfers::CViewTransfers(wxNotebook* pNotebook) : - CBOINCBaseView(pNotebook, ID_TASK_TRANSFERSVIEW, DEFAULT_TASK_FLAGS, ID_LIST_TRANSFERSVIEW, DEFAULT_LIST_SINGLE_SEL_FLAGS) + CBOINCBaseView(pNotebook, GetViewName(), ID_TASK_TRANSFERSVIEW, DEFAULT_TASK_FLAGS, ID_LIST_TRANSFERSVIEW, DEFAULT_LIST_SINGLE_SEL_FLAGS) { CTaskItemGroup* pGroup = NULL; CTaskItem* pItem = NULL; diff --git a/clientgui/ViewWork.cpp b/clientgui/ViewWork.cpp index 2461db66df..95edd646e8 100644 --- a/clientgui/ViewWork.cpp +++ b/clientgui/ViewWork.cpp @@ -79,7 +79,7 @@ CViewWork::CViewWork() {} CViewWork::CViewWork(wxNotebook* pNotebook) : - CBOINCBaseView(pNotebook, ID_TASK_WORKVIEW, DEFAULT_TASK_FLAGS, ID_LIST_WORKVIEW, DEFAULT_LIST_SINGLE_SEL_FLAGS) + CBOINCBaseView(pNotebook, GetViewName(), ID_TASK_WORKVIEW, DEFAULT_TASK_FLAGS, ID_LIST_WORKVIEW, DEFAULT_LIST_SINGLE_SEL_FLAGS) { CTaskItemGroup* pGroup = NULL; CTaskItem* pItem = NULL; diff --git a/clientgui/stdwx.h b/clientgui/stdwx.h index 000db0699d..fb8fcd7dd8 100644 --- a/clientgui/stdwx.h +++ b/clientgui/stdwx.h @@ -89,6 +89,7 @@ #include #include #include +#include #ifndef NOTASKBAR #include // taskbar support @@ -99,7 +100,21 @@ // Windows Headers // +#include #include +#include +#include + +#if wxUSE_ACCESSIBILITY + #include +#endif // wxUSE_ACCESSIBILITY + +#include "wx/msw/ole/oleutils.h" +#include "wx/msw/winundef.h" + +#ifndef OBJID_CLIENT + #define OBJID_CLIENT 0xFFFFFFFC +#endif #endif diff --git a/win_build/boincmgr.vcproj b/win_build/boincmgr.vcproj index 980e86005c..c73c1466f7 100644 --- a/win_build/boincmgr.vcproj +++ b/win_build/boincmgr.vcproj @@ -364,6 +364,9 @@ + + @@ -376,6 +379,9 @@ + +