summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacobo Aragunde Pérez <jaragunde@igalia.com>2014-02-03 19:08:31 +0100
committerMichael Meeks <michael.meeks@collabora.com>2014-02-04 13:08:57 +0000
commit2bb87dd6596f8e961f5618d8e7686fa12c64e2cf (patch)
tree3b473eec6bcaa2c168e18fe39a8497cfb34ceae8
parentac8cb745d7b385b24a3576aa6c40780fdcfe9b15 (diff)
fdo#39944: Add DOCUMENT_* accessibility UNO roles
Added a set of UNO accessibility roles for specific kinds of documents: * DOCUMENT_PRESENTATION for Impress * DOCUMENT_SPREADSHEET for Calc * DOCUMENT_TEXT for Writer The other applications still use the existing DOCUMENT role. These roles translates directly to ATK but in the other toolkits we keep using the same association that DOCUMENT role had. Change-Id: Ibac47527e5effdecb28d2314cde8558cf4fb010a Reviewed-on: https://gerrit.libreoffice.org/7847 Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Michael Meeks <michael.meeks@collabora.com>
-rw-r--r--offapi/com/sun/star/accessibility/AccessibleRole.idl24
-rw-r--r--offapi/com/sun/star/drawing/AccessibleDrawDocumentView.idl6
-rw-r--r--offapi/com/sun/star/sheet/AccessibleSpreadsheetDocumentView.idl2
-rw-r--r--offapi/com/sun/star/sheet/AccessibleSpreadsheetPageView.idl2
-rw-r--r--offapi/com/sun/star/text/AccessibleTextDocumentPageView.idl2
-rw-r--r--offapi/com/sun/star/text/AccessibleTextDocumentView.idl2
-rw-r--r--sc/source/ui/Accessibility/AccessibleDocumentBase.cxx2
-rw-r--r--sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx5
-rw-r--r--svx/source/accessibility/AccessibleShape.cxx5
-rw-r--r--sw/source/core/access/acccontext.cxx6
-rw-r--r--sw/source/core/access/accdoc.cxx2
-rw-r--r--vcl/osx/a11yrolehelper.mm8
-rw-r--r--vcl/unx/gtk/a11y/atkwrapper.cxx5
-rw-r--r--winaccessibility/source/UAccCOM/MAccessible.cxx3
-rw-r--r--winaccessibility/source/service/AccObjectWinManager.cxx5
-rw-r--r--winaccessibility/source/service/AccTopWindowListener.cxx5
16 files changed, 67 insertions, 17 deletions
diff --git a/offapi/com/sun/star/accessibility/AccessibleRole.idl b/offapi/com/sun/star/accessibility/AccessibleRole.idl
index 2baa6a992611..ca3b79bb8b5c 100644
--- a/offapi/com/sun/star/accessibility/AccessibleRole.idl
+++ b/offapi/com/sun/star/accessibility/AccessibleRole.idl
@@ -705,6 +705,30 @@ constants AccessibleRole
*/
const short COMMENT_END = 82;
+ /** View of an presentation document.
+
+ <p>It's an specific variation of DOCUMENT for presentations.</p>
+
+ @since LibreOffice 4.3
+ */
+ const short DOCUMENT_PRESENTATION = 83;
+
+ /** View of an spreadsheet document.
+
+ <p>It's an specific variation of DOCUMENT for spreadsheets.</p>
+
+ @since LibreOffice 4.3
+ */
+ const short DOCUMENT_SPREADSHEET = 84;
+
+ /** View of an text document.
+
+ <p>It's an specific variation of DOCUMENT for text.</p>
+
+ @since LibreOffice 4.3
+ */
+ const short DOCUMENT_TEXT = 85;
+
};
}; }; }; };
diff --git a/offapi/com/sun/star/drawing/AccessibleDrawDocumentView.idl b/offapi/com/sun/star/drawing/AccessibleDrawDocumentView.idl
index 1c3c3fa289fd..9dcf863142b0 100644
--- a/offapi/com/sun/star/drawing/AccessibleDrawDocumentView.idl
+++ b/offapi/com/sun/star/drawing/AccessibleDrawDocumentView.idl
@@ -69,8 +69,10 @@ service AccessibleDrawDocumentView
<p>You can access the following information:
<ul>
- <li>Role: The object's role is
- com::sun::star::accessibility::AccessibleRole::DOCUMENT.</li>
+ <li>Role: The object's role might be
+ com::sun::star::accessibility::AccessibleRole::DOCUMENT or
+ com::sun::star::accessibility::AccessibleRole::DOCUMENT_PRESENTATION
+ , the former for a Draw and the latter for an Impress document.</li>
<li>Name: Its name is "AccessibleDrawDocumentView",
"AccessibleOutlineView", or "slide window".</li>
<li>Description: The description is "Draw Document", "Accessible
diff --git a/offapi/com/sun/star/sheet/AccessibleSpreadsheetDocumentView.idl b/offapi/com/sun/star/sheet/AccessibleSpreadsheetDocumentView.idl
index 77939c957f83..7b0d7fe51771 100644
--- a/offapi/com/sun/star/sheet/AccessibleSpreadsheetDocumentView.idl
+++ b/offapi/com/sun/star/sheet/AccessibleSpreadsheetDocumentView.idl
@@ -92,7 +92,7 @@ service AccessibleSpreadsheetDocumentView
</ul>
<li>The description is ???.</li>
<li>The name is Spreadsheet Document View with a unique number.</li>
- <li>The role is ::com::sun::star::accessibility::AccessibleRole::DOCUMENT</li>
+ <li>The role is ::com::sun::star::accessibility::AccessibleRole::DOCUMENT_SPREADSHEET</li>
<li>There are no relations.</li>
<li>The following states are supported:
<ul>
diff --git a/offapi/com/sun/star/sheet/AccessibleSpreadsheetPageView.idl b/offapi/com/sun/star/sheet/AccessibleSpreadsheetPageView.idl
index 767392718a92..6ff4454b04be 100644
--- a/offapi/com/sun/star/sheet/AccessibleSpreadsheetPageView.idl
+++ b/offapi/com/sun/star/sheet/AccessibleSpreadsheetPageView.idl
@@ -96,7 +96,7 @@ service AccessibleSpreadsheetPageView
<li>The description is ???.</li>
<li>The name is Spreadsheet Document Page Preview.</li>
<li>The role is
- ::com::sun::star::accessibility::AccessibleRole::DOCUMENT</li>
+ ::com::sun::star::accessibility::AccessibleRole::DOCUMENT_SPREADSHEET</li>
<li>There are no relations.</li>
<li>The following states are supported:
<ul>
diff --git a/offapi/com/sun/star/text/AccessibleTextDocumentPageView.idl b/offapi/com/sun/star/text/AccessibleTextDocumentPageView.idl
index cfe22fe76e99..5a6ace720b0b 100644
--- a/offapi/com/sun/star/text/AccessibleTextDocumentPageView.idl
+++ b/offapi/com/sun/star/text/AccessibleTextDocumentPageView.idl
@@ -47,7 +47,7 @@ service AccessibleTextDocumentPageView
returns an object that supports one of the service
::com::sun::star::text::AccessiblePageView.
<li>The role is
- ::com::sun::star::accessibility::AccessibleRole::DOCUMENT.
+ ::com::sun::star::accessibility::AccessibleRole::DOCUMENT_TEXT.
<li>The name is "document view" (or the equivalent term
in application's language).
<li>The description also is "document view" (or the equivalent term
diff --git a/offapi/com/sun/star/text/AccessibleTextDocumentView.idl b/offapi/com/sun/star/text/AccessibleTextDocumentView.idl
index 4d4acf4a151f..818b18eeea53 100644
--- a/offapi/com/sun/star/text/AccessibleTextDocumentView.idl
+++ b/offapi/com/sun/star/text/AccessibleTextDocumentView.idl
@@ -129,7 +129,7 @@ service AccessibleTextDocumentView
but also keep the z order.
</ul>
<li>The role is
- ::com::sun::star::accessibility::AccessibleRole::DOCUMENT.
+ ::com::sun::star::accessibility::AccessibleRole::DOCUMENT_TEXT.
<li>The name is "document view" (or the equivalent term
in application's language).
<li>The description also is "document view" (or the equivalent term
diff --git a/sc/source/ui/Accessibility/AccessibleDocumentBase.cxx b/sc/source/ui/Accessibility/AccessibleDocumentBase.cxx
index 12435ea038b1..3b32481933a1 100644
--- a/sc/source/ui/Accessibility/AccessibleDocumentBase.cxx
+++ b/sc/source/ui/Accessibility/AccessibleDocumentBase.cxx
@@ -28,7 +28,7 @@ using namespace ::com::sun::star::accessibility;
ScAccessibleDocumentBase::ScAccessibleDocumentBase(
const uno::Reference<XAccessible>& rxParent)
- : ScAccessibleContextBase(rxParent, AccessibleRole::DOCUMENT)
+ : ScAccessibleContextBase(rxParent, AccessibleRole::DOCUMENT_SPREADSHEET)
{
}
diff --git a/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx b/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
index 1d5815dfd0c9..ab724dba287d 100644
--- a/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
+++ b/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
@@ -63,7 +63,10 @@ AccessibleDocumentViewBase::AccessibleDocumentViewBase (
::sd::ViewShell* pViewShell,
const uno::Reference<frame::XController>& rxController,
const uno::Reference<XAccessible>& rxParent)
- : AccessibleContextBase (rxParent, AccessibleRole::DOCUMENT),
+ : AccessibleContextBase (rxParent,
+ pViewShell->GetDoc()->GetDocumentType() == DOCUMENT_TYPE_IMPRESS ?
+ AccessibleRole::DOCUMENT_PRESENTATION :
+ AccessibleRole::DOCUMENT),
mpWindow (pSdWindow),
mxController (rxController),
mxModel (NULL),
diff --git a/svx/source/accessibility/AccessibleShape.cxx b/svx/source/accessibility/AccessibleShape.cxx
index 523b084b2fda..2eee09be2c6e 100644
--- a/svx/source/accessibility/AccessibleShape.cxx
+++ b/svx/source/accessibility/AccessibleShape.cxx
@@ -1511,7 +1511,10 @@ throw (uno::RuntimeException)
}
::com::sun::star::uno::Reference<XAccessibleContext> xParentContext = xParent->getAccessibleContext();
- if( xParentContext->getAccessibleRole() == AccessibleRole::DOCUMENT)//Document
+ if( xParentContext->getAccessibleRole() == AccessibleRole::DOCUMENT ||
+ xParentContext->getAccessibleRole() == AccessibleRole::DOCUMENT_PRESENTATION ||
+ xParentContext->getAccessibleRole() == AccessibleRole::DOCUMENT_SPREADSHEET ||
+ xParentContext->getAccessibleRole() == AccessibleRole::DOCUMENT_TEXT )//Document
{
Reference< XAccessibleGroupPosition > xGroupPosition( xParent,uno::UNO_QUERY );
if ( xGroupPosition.is() )
diff --git a/sw/source/core/access/acccontext.cxx b/sw/source/core/access/acccontext.cxx
index 44af38c64875..a2cd3fc46e75 100644
--- a/sw/source/core/access/acccontext.cxx
+++ b/sw/source/core/access/acccontext.cxx
@@ -548,7 +548,7 @@ sal_Int32 SAL_CALL SwAccessibleContext::getAccessibleChildCount( void )
CHECK_FOR_DEFUNC( XAccessibleContext )
//Notify the frame is a document
- if( nRole == AccessibleRole::DOCUMENT )
+ if( nRole == AccessibleRole::DOCUMENT_TEXT )
bIsAccDocUse = sal_True;
return bDisposing ? 0 : GetChildCount( *(GetMap()) );
@@ -563,7 +563,7 @@ uno::Reference< XAccessible> SAL_CALL
CHECK_FOR_DEFUNC( XAccessibleContext )
//Notify the frame is a document
- if( nRole == AccessibleRole::DOCUMENT )
+ if( nRole == AccessibleRole::DOCUMENT_TEXT )
bIsAccDocUse = sal_True;
const SwAccessibleChild aChild( GetChild( *(GetMap()), nIndex ) );
@@ -582,7 +582,7 @@ uno::Reference< XAccessible> SAL_CALL
::rtl::Reference < SwAccessibleContext > xChildImpl(
GetMap()->GetContextImpl( aChild.GetSwFrm(), !bDisposing ) );
//Send out accessible event when begin load.
- if( bBeginDocumentLoad && nRole == AccessibleRole::DOCUMENT )
+ if( bBeginDocumentLoad && nRole == AccessibleRole::DOCUMENT_TEXT )
{
FireStateChangedEvent( AccessibleStateType::FOCUSABLE,sal_True );
diff --git a/sw/source/core/access/accdoc.cxx b/sw/source/core/access/accdoc.cxx
index 646bc4db54da..643a1fc116cc 100644
--- a/sw/source/core/access/accdoc.cxx
+++ b/sw/source/core/access/accdoc.cxx
@@ -72,7 +72,7 @@ using lang::IndexOutOfBoundsException;
// SwAccessiblePreview
SwAccessibleDocumentBase::SwAccessibleDocumentBase ( SwAccessibleMap *_pMap ) :
- SwAccessibleContext( _pMap, AccessibleRole::DOCUMENT,
+ SwAccessibleContext( _pMap, AccessibleRole::DOCUMENT_TEXT,
_pMap->GetShell()->GetLayout() ),
mxParent( _pMap->GetShell()->GetWin()->GetAccessibleParentWindow()->GetAccessible() ),
mpChildWin( 0 )
diff --git a/vcl/osx/a11yrolehelper.mm b/vcl/osx/a11yrolehelper.mm
index 2940a4b2f7aa..ae2391fd83d2 100644
--- a/vcl/osx/a11yrolehelper.mm
+++ b/vcl/osx/a11yrolehelper.mm
@@ -122,6 +122,10 @@ using namespace ::com::sun::star::uno;
MAP( AccessibleRole::TREE_ITEM, NSAccessibilityUnknownRole );
MAP( AccessibleRole::TREE_TABLE, NSAccessibilityUnknownRole );
+ MAP( AccessibleRole::DOCUMENT_PRESENTATION, NSAccessibilityGroupRole );
+ MAP( AccessibleRole::DOCUMENT_SPREADSHEET, NSAccessibilityGroupRole );
+ MAP( AccessibleRole::DOCUMENT_TEXT, NSAccessibilityGroupRole );
+
#undef MAP
default:
break;
@@ -249,6 +253,10 @@ using namespace ::com::sun::star::uno;
MAP( AccessibleRole::TREE_ITEM, @"" );
MAP( AccessibleRole::TREE_TABLE, @"" );
+ MAP( AccessibleRole::DOCUMENT_PRESENTATION, @"" );
+ MAP( AccessibleRole::DOCUMENT_SPREADSHEET, @"" );
+ MAP( AccessibleRole::DOCUMENT_TEXT, @"" );
+
#undef MAP
default:
break;
diff --git a/vcl/unx/gtk/a11y/atkwrapper.cxx b/vcl/unx/gtk/a11y/atkwrapper.cxx
index a03729eaaf98..5b5a446e0598 100644
--- a/vcl/unx/gtk/a11y/atkwrapper.cxx
+++ b/vcl/unx/gtk/a11y/atkwrapper.cxx
@@ -270,7 +270,10 @@ static AtkRole mapToAtkRole( sal_Int16 nRole )
ATK_ROLE_UNKNOWN, // TREE_ITEM - registered below
ATK_ROLE_TREE_TABLE,
ATK_ROLE_SCROLL_PANE, // COMMENT - mapped to atk_role_scroll_pane
- ATK_ROLE_UNKNOWN // COMMENT_END - mapped to atk_role_unknown
+ ATK_ROLE_UNKNOWN, // COMMENT_END - mapped to atk_role_unknown
+ ATK_ROLE_DOCUMENT_PRESENTATION,
+ ATK_ROLE_DOCUMENT_SPREADSHEET,
+ ATK_ROLE_DOCUMENT_TEXT
};
static bool initialized = false;
diff --git a/winaccessibility/source/UAccCOM/MAccessible.cxx b/winaccessibility/source/UAccCOM/MAccessible.cxx
index 4a1e3331b22c..e5c5eb09bc03 100644
--- a/winaccessibility/source/UAccCOM/MAccessible.cxx
+++ b/winaccessibility/source/UAccCOM/MAccessible.cxx
@@ -1965,7 +1965,8 @@ STDMETHODIMP CMAccessible:: get_groupPosition(long __RPC_FAR *groupLevel,long __
*similarItemsInGroup = 0;
*positionInGroup = 0;
- if (Role != AccessibleRole::DOCUMENT)
+ if (Role != AccessibleRole::DOCUMENT && Role != AccessibleRole::DOCUMENT_PRESENTATION &&
+ Role != AccessibleRole::DOCUMENT_SPREADSHEET && Role != AccessibleRole::DOCUMENT_TEXT)
{
Reference< XAccessibleGroupPosition > xGroupPosition( pRContext, UNO_QUERY );
if ( xGroupPosition.is() )
diff --git a/winaccessibility/source/service/AccObjectWinManager.cxx b/winaccessibility/source/service/AccObjectWinManager.cxx
index dc87c451db4e..32c155e87977 100644
--- a/winaccessibility/source/service/AccObjectWinManager.cxx
+++ b/winaccessibility/source/service/AccObjectWinManager.cxx
@@ -601,7 +601,10 @@ sal_Bool AccObjectWinManager::InsertChildrenAccObj( com::sun::star::accessibilit
short role = pRContext->getAccessibleRole();
- if(com::sun::star::accessibility::AccessibleRole::DOCUMENT == role )
+ if(com::sun::star::accessibility::AccessibleRole::DOCUMENT == role ||
+ com::sun::star::accessibility::AccessibleRole::DOCUMENT_PRESENTATION == role ||
+ com::sun::star::accessibility::AccessibleRole::DOCUMENT_SPREADSHEET == role ||
+ com::sun::star::accessibility::AccessibleRole::DOCUMENT_TEXT == role)
{
if(IsStateManageDescendant(pXAcc))
{
diff --git a/winaccessibility/source/service/AccTopWindowListener.cxx b/winaccessibility/source/service/AccTopWindowListener.cxx
index db87f23f0bf5..df30a1a4dcd1 100644
--- a/winaccessibility/source/service/AccTopWindowListener.cxx
+++ b/winaccessibility/source/service/AccTopWindowListener.cxx
@@ -156,7 +156,10 @@ void AccTopWindowListener::AddAllListeners(com::sun::star::accessibility::XAcces
short role = pAccessibleContext->getAccessibleRole();
- if(com::sun::star::accessibility::AccessibleRole::DOCUMENT == role )
+ if(com::sun::star::accessibility::AccessibleRole::DOCUMENT == role ||
+ com::sun::star::accessibility::AccessibleRole::DOCUMENT_PRESENTATION == role ||
+ com::sun::star::accessibility::AccessibleRole::DOCUMENT_SPREADSHEET == role ||
+ com::sun::star::accessibility::AccessibleRole::DOCUMENT_TEXT == role)
{
if(accManagerAgent.IsStateManageDescendant(pAccessible))
{