summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2013-01-22 16:20:08 +0000
committerCaolán McNamara <caolanm@redhat.com>2013-01-22 16:29:41 +0000
commit0769d264934210fe2bcae3024a137c3c9f19da1a (patch)
treed83c359e595e481a461c50835067919e30147573 /vcl
parent9f53172abd921d03bb7b1c5b0e5cf29f2cd65965 (diff)
default forward VclBuilder GetAccessibleName to its label
Change-Id: I54f1761a5151067cb28b1773a1a188dd92c66bd1
Diffstat (limited to 'vcl')
-rw-r--r--vcl/inc/vcl/layout.hxx1
-rw-r--r--vcl/inc/vcl/window.hxx1
-rw-r--r--vcl/source/window/layout.cxx8
-rw-r--r--vcl/source/window/window.cxx100
4 files changed, 59 insertions, 51 deletions
diff --git a/vcl/inc/vcl/layout.hxx b/vcl/inc/vcl/layout.hxx
index 2e48cd8d6ad2..b91534d151e3 100644
--- a/vcl/inc/vcl/layout.hxx
+++ b/vcl/inc/vcl/layout.hxx
@@ -450,6 +450,7 @@ public:
protected:
virtual Size calculateRequisition() const;
virtual void setAllocation(const Size &rAllocation);
+ virtual OUString getDefaultAccessibleName() const;
};
class VCL_DLLPUBLIC VclAlignment : public VclBin
diff --git a/vcl/inc/vcl/window.hxx b/vcl/inc/vcl/window.hxx
index 88f39b5222f7..ccd599a4a344 100644
--- a/vcl/inc/vcl/window.hxx
+++ b/vcl/inc/vcl/window.hxx
@@ -581,6 +581,7 @@ protected:
// Let Label override the code part of GetAccessibleRelationLabelFor
virtual Window* getAccessibleRelationLabelFor() const;
virtual sal_uInt16 getDefaultAccessibleRole() const;
+ virtual OUString getDefaultAccessibleName() const;
public:
// Single argument ctors shall be explicit.
explicit Window( Window* pParent, WinBits nStyle = 0 );
diff --git a/vcl/source/window/layout.cxx b/vcl/source/window/layout.cxx
index 5ebffdc884a7..87c87d4c1b63 100644
--- a/vcl/source/window/layout.cxx
+++ b/vcl/source/window/layout.cxx
@@ -1070,6 +1070,14 @@ void VclFrame::set_label(const rtl::OUString &rLabel)
pLabel->SetText(rLabel);
}
+OUString VclFrame::getDefaultAccessibleName() const
+{
+ const Window *pLabel = get_label_widget();
+ if (pLabel)
+ return pLabel->GetAccessibleName();
+ return VclBin::getDefaultAccessibleName();
+}
+
Size VclAlignment::calculateRequisition() const
{
Size aRet(m_nLeftPadding + m_nRightPadding,
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 842c94c11a34..6767fde3701b 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -8882,64 +8882,62 @@ void Window::SetAccessibleName( const String& rName )
String Window::GetAccessibleName() const
{
- String aAccessibleName;
- if ( mpWindowImpl->mpAccessibleInfos && mpWindowImpl->mpAccessibleInfos->pAccessibleName )
- {
- aAccessibleName = *mpWindowImpl->mpAccessibleInfos->pAccessibleName;
- }
- else
+ if (mpWindowImpl->mpAccessibleInfos && mpWindowImpl->mpAccessibleInfos->pAccessibleName)
+ return *mpWindowImpl->mpAccessibleInfos->pAccessibleName;
+ return getDefaultAccessibleName();
+}
+
+OUString Window::getDefaultAccessibleName() const
+{
+ OUString aAccessibleName;
+ switch ( GetType() )
{
- switch ( GetType() )
- {
- case WINDOW_MULTILINEEDIT:
- case WINDOW_PATTERNFIELD:
- case WINDOW_NUMERICFIELD:
- case WINDOW_METRICFIELD:
- case WINDOW_CURRENCYFIELD:
- case WINDOW_LONGCURRENCYFIELD:
- case WINDOW_CALCINPUTLINE:
- case WINDOW_EDIT:
-
- case WINDOW_DATEBOX:
- case WINDOW_TIMEBOX:
- case WINDOW_CURRENCYBOX:
- case WINDOW_LONGCURRENCYBOX:
- case WINDOW_DATEFIELD:
- case WINDOW_TIMEFIELD:
- case WINDOW_SPINFIELD:
-
- case WINDOW_COMBOBOX:
- case WINDOW_LISTBOX:
- case WINDOW_MULTILISTBOX:
- case WINDOW_TREELISTBOX:
- case WINDOW_METRICBOX:
- {
- Window *pLabel = GetAccessibleRelationLabeledBy();
- if ( pLabel && pLabel != this )
- aAccessibleName = pLabel->GetText();
- }
- break;
+ case WINDOW_MULTILINEEDIT:
+ case WINDOW_PATTERNFIELD:
+ case WINDOW_NUMERICFIELD:
+ case WINDOW_METRICFIELD:
+ case WINDOW_CURRENCYFIELD:
+ case WINDOW_LONGCURRENCYFIELD:
+ case WINDOW_CALCINPUTLINE:
+ case WINDOW_EDIT:
- case WINDOW_IMAGEBUTTON:
- case WINDOW_PUSHBUTTON:
- aAccessibleName = GetText();
- if ( !aAccessibleName.Len() )
- {
- aAccessibleName = GetQuickHelpText();
- if ( !aAccessibleName.Len() )
- aAccessibleName = GetHelpText();
- }
- break;
+ case WINDOW_DATEBOX:
+ case WINDOW_TIMEBOX:
+ case WINDOW_CURRENCYBOX:
+ case WINDOW_LONGCURRENCYBOX:
+ case WINDOW_DATEFIELD:
+ case WINDOW_TIMEFIELD:
+ case WINDOW_SPINFIELD:
- default:
- aAccessibleName = GetText();
- break;
+ case WINDOW_COMBOBOX:
+ case WINDOW_LISTBOX:
+ case WINDOW_MULTILISTBOX:
+ case WINDOW_TREELISTBOX:
+ case WINDOW_METRICBOX:
+ {
+ Window *pLabel = GetAccessibleRelationLabeledBy();
+ if ( pLabel && pLabel != this )
+ aAccessibleName = pLabel->GetText();
}
+ break;
- aAccessibleName = GetNonMnemonicString( aAccessibleName );
+ case WINDOW_IMAGEBUTTON:
+ case WINDOW_PUSHBUTTON:
+ aAccessibleName = GetText();
+ if (aAccessibleName.isEmpty())
+ {
+ aAccessibleName = GetQuickHelpText();
+ if (aAccessibleName.isEmpty())
+ aAccessibleName = GetHelpText();
+ }
+ break;
+
+ default:
+ aAccessibleName = GetText();
+ break;
}
- return aAccessibleName;
+ return GetNonMnemonicString( aAccessibleName );
}
void Window::SetAccessibleDescription( const String& rDescription )