*** empty log message ***

svn path=/trunk/boinc/; revision=6725
This commit is contained in:
Rom Walton 2005-07-21 09:43:40 +00:00
parent bb7f1e24b5
commit 496ad5cc1c
14 changed files with 70 additions and 12 deletions

View File

@ -9330,3 +9330,24 @@ David 21 July 2005
sched/ sched/
main.C 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

View File

@ -36,7 +36,7 @@ IMPLEMENT_DYNAMIC_CLASS(CBOINCBaseView, wxPanel)
CBOINCBaseView::CBOINCBaseView() {} CBOINCBaseView::CBOINCBaseView() {}
CBOINCBaseView::CBOINCBaseView(wxNotebook* pNotebook) : CBOINCBaseView::CBOINCBaseView(wxNotebook* pNotebook, wxString strName) :
wxPanel(pNotebook, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL) wxPanel(pNotebook, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL)
{ {
wxASSERT(pNotebook); wxASSERT(pNotebook);
@ -50,12 +50,14 @@ CBOINCBaseView::CBOINCBaseView(wxNotebook* pNotebook) :
m_pTaskPane = NULL; m_pTaskPane = NULL;
m_pListPane = NULL; m_pListPane = NULL;
SetName(strName);
SetAutoLayout(TRUE); SetAutoLayout(TRUE);
} }
CBOINCBaseView::CBOINCBaseView( CBOINCBaseView::CBOINCBaseView(
wxNotebook* pNotebook, wxWindowID iTaskWindowID, int iTaskWindowFlags, wxNotebook* pNotebook, wxString strName, wxWindowID iTaskWindowID, int iTaskWindowFlags,
wxWindowID iListWindowID, int iListWindowFlags wxWindowID iListWindowID, int iListWindowFlags
) : wxPanel(pNotebook, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL) { ) : wxPanel(pNotebook, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL) {
@ -70,6 +72,8 @@ CBOINCBaseView::CBOINCBaseView(
m_pTaskPane = NULL; m_pTaskPane = NULL;
m_pListPane = NULL; m_pListPane = NULL;
SetName(strName);
SetAutoLayout(TRUE); SetAutoLayout(TRUE);
wxFlexGridSizer* itemFlexGridSizer = new wxFlexGridSizer(2, 0, 0); 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. // If it has not been defined by the view "Undefined" is returned.
// //
wxString CBOINCBaseView::GetViewName() { wxString CBOINCBaseView::GetViewName() {
return wxString(_T("Undefined")); return wxString(wxT("Undefined"));
} }

View File

@ -75,9 +75,13 @@ class CBOINCBaseView : public wxPanel {
public: public:
CBOINCBaseView(); CBOINCBaseView();
CBOINCBaseView(wxNotebook* pNotebook);
CBOINCBaseView( CBOINCBaseView(
wxNotebook* pNotebook, wxNotebook* pNotebook,
wxString strName
);
CBOINCBaseView(
wxNotebook* pNotebook,
wxString strName,
wxWindowID iTaskWindowID, wxWindowID iTaskWindowID,
int iTaskWindowFlags, int iTaskWindowFlags,
wxWindowID iListWindowID, wxWindowID iListWindowID,

View File

@ -152,6 +152,10 @@ bool CBOINCGUIApp::OnInit() {
InitSupportedLanguages(); 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() // Commandline parsing is done in wxApp::OnInit()
if (!wxApp::OnInit()) { if (!wxApp::OnInit()) {
return false; return false;

View File

@ -33,10 +33,12 @@ CBOINCTaskCtrl::CBOINCTaskCtrl() {}
CBOINCTaskCtrl::CBOINCTaskCtrl(CBOINCBaseView* pView, wxWindowID iTaskWindowID, wxInt32 iTaskWindowFlags) : 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_pParent = pView;
m_pBoxSizer = NULL; m_pBoxSizer = NULL;
EnableScrolling(true, false);
} }
@ -128,6 +130,7 @@ wxInt32 CBOINCTaskCtrl::UpdateTask( CTaskItem* pItem, wxString strName, wxString
pItem->m_strDescription = strDescription; pItem->m_strDescription = strDescription;
pItem->m_pButton->SetLabel( strName ); pItem->m_pButton->SetLabel( strName );
pItem->m_pButton->SetHelpText( strDescription );
#if wxUSE_TOOLTIPS #if wxUSE_TOOLTIPS
pItem->m_pButton->SetToolTip( strDescription ); pItem->m_pButton->SetToolTip( strDescription );
#endif #endif
@ -170,6 +173,7 @@ wxInt32 CBOINCTaskCtrl::UpdateControls() {
if (!pItem->m_pButton) { if (!pItem->m_pButton) {
pItem->m_pButton = new wxButton; pItem->m_pButton = new wxButton;
pItem->m_pButton->Create(this, pItem->m_iEventID, pItem->m_strName, wxDefaultPosition, wxDefaultSize, 0); pItem->m_pButton->Create(this, pItem->m_iEventID, pItem->m_strName, wxDefaultPosition, wxDefaultSize, 0);
pItem->m_pButton->SetHelpText(pItem->m_strDescription);
#if wxUSE_TOOLTIPS #if wxUSE_TOOLTIPS
pItem->m_pButton->SetToolTip(pItem->m_strDescription); pItem->m_pButton->SetToolTip(pItem->m_strDescription);
#endif #endif

View File

@ -29,7 +29,7 @@ class CTaskItem;
class CTaskItemGroup; class CTaskItemGroup;
class CBOINCBaseView; class CBOINCBaseView;
class CBOINCTaskCtrl : public wxPanel { class CBOINCTaskCtrl : public wxScrolledWindow {
DECLARE_DYNAMIC_CLASS( CBOINCTaskCtrl ) DECLARE_DYNAMIC_CLASS( CBOINCTaskCtrl )
public: public:

View File

@ -52,7 +52,7 @@ CViewMessages::CViewMessages() {}
CViewMessages::CViewMessages(wxNotebook* pNotebook) : 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; CTaskItemGroup* pGroup = NULL;
CTaskItem* pItem = NULL; CTaskItem* pItem = NULL;

View File

@ -91,7 +91,7 @@ CViewProjects::CViewProjects() {}
CViewProjects::CViewProjects(wxNotebook* pNotebook) : 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; CTaskItemGroup* pGroup = NULL;
CTaskItem* pItem = NULL; CTaskItem* pItem = NULL;

View File

@ -59,7 +59,7 @@ CViewResources::CViewResources() {}
CViewResources::CViewResources(wxNotebook* pNotebook) : 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_pTaskPane);
wxASSERT(m_pListPane); wxASSERT(m_pListPane);

View File

@ -284,7 +284,7 @@ CViewStatistics::CViewStatistics() {}
CViewStatistics::CViewStatistics(wxNotebook* pNotebook) : CViewStatistics::CViewStatistics(wxNotebook* pNotebook) :
CBOINCBaseView(pNotebook) CBOINCBaseView(pNotebook, GetViewName())
{ {
CTaskItemGroup* pGroup = NULL; CTaskItemGroup* pGroup = NULL;
CTaskItem* pItem = NULL; CTaskItem* pItem = NULL;

View File

@ -76,7 +76,7 @@ CViewTransfers::CViewTransfers() {}
CViewTransfers::CViewTransfers(wxNotebook* pNotebook) : 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; CTaskItemGroup* pGroup = NULL;
CTaskItem* pItem = NULL; CTaskItem* pItem = NULL;

View File

@ -79,7 +79,7 @@ CViewWork::CViewWork() {}
CViewWork::CViewWork(wxNotebook* pNotebook) : 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; CTaskItemGroup* pGroup = NULL;
CTaskItem* pItem = NULL; CTaskItem* pItem = NULL;

View File

@ -89,6 +89,7 @@
#include <wx/process.h> #include <wx/process.h>
#include <wx/dynlib.h> #include <wx/dynlib.h>
#include <wx/dialup.h> #include <wx/dialup.h>
#include <wx/cshelp.h>
#ifndef NOTASKBAR #ifndef NOTASKBAR
#include <wx/taskbar.h> // taskbar support #include <wx/taskbar.h> // taskbar support
@ -99,7 +100,21 @@
// Windows Headers // Windows Headers
// //
#include <windows.h>
#include <crtdbg.h> #include <crtdbg.h>
#include <ole2.h>
#include <oleauto.h>
#if wxUSE_ACCESSIBILITY
#include <oleacc.h>
#endif // wxUSE_ACCESSIBILITY
#include "wx/msw/ole/oleutils.h"
#include "wx/msw/winundef.h"
#ifndef OBJID_CLIENT
#define OBJID_CLIENT 0xFFFFFFFC
#endif
#endif #endif

View File

@ -364,6 +364,9 @@
<File <File
RelativePath="..\clientgui\BOINCBaseView.h"> RelativePath="..\clientgui\BOINCBaseView.h">
</File> </File>
<File
RelativePath="..\clientgui\BOINCBaseViewAccessible.h">
</File>
<File <File
RelativePath="..\clientgui\BOINCGUIApp.h"> RelativePath="..\clientgui\BOINCGUIApp.h">
</File> </File>
@ -376,6 +379,9 @@
<File <File
RelativePath="..\clientgui\BOINCTaskCtrl.h"> RelativePath="..\clientgui\BOINCTaskCtrl.h">
</File> </File>
<File
RelativePath="..\clientgui\BOINCTaskCtrlAccessible.h">
</File>
<File <File
RelativePath="..\lib\diagnostics.h"> RelativePath="..\lib\diagnostics.h">
</File> </File>