Kaydet (Commit) 0769d264 authored tarafından Caolán McNamara's avatar Caolán McNamara

default forward VclBuilder GetAccessibleName to its label

Change-Id: I54f1761a5151067cb28b1773a1a188dd92c66bd1
üst 9f53172a
......@@ -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
......
......@@ -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 );
......
......@@ -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,
......
......@@ -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 )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment