openoffice-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From stev...@apache.org
Subject svn commit: r1526782 [1/6] - in /openoffice/branches/ia2/main: accessibility/source/extended/ accessibility/source/standard/ cui/source/customize/ cui/source/inc/ editeng/inc/editeng/ editeng/source/accessibility/ editeng/source/editeng/ filter/source/...
Date Fri, 27 Sep 2013 03:21:47 GMT
Author: steve_y
Date: Fri Sep 27 03:21:44 2013
New Revision: 1526782

URL: http://svn.apache.org/r1526782
Log:
AOO IA2 enabled draft version 1

Modified:
    openoffice/branches/ia2/main/accessibility/source/extended/AccessibleBrowseBoxHeaderCell.cxx
    openoffice/branches/ia2/main/accessibility/source/extended/accessiblelistbox.cxx
    openoffice/branches/ia2/main/accessibility/source/extended/textwindowaccessibility.cxx
    openoffice/branches/ia2/main/accessibility/source/standard/vclxaccessiblebox.cxx
    openoffice/branches/ia2/main/cui/source/customize/macropg.cxx
    openoffice/branches/ia2/main/cui/source/inc/headertablistbox.hxx
    openoffice/branches/ia2/main/editeng/inc/editeng/editrids.hrc
    openoffice/branches/ia2/main/editeng/source/accessibility/AccessibleEditableTextPara.cxx
    openoffice/branches/ia2/main/editeng/source/accessibility/accessibility.src
    openoffice/branches/ia2/main/editeng/source/editeng/impedit.hxx
    openoffice/branches/ia2/main/filter/source/pdf/impdialog.cxx
    openoffice/branches/ia2/main/sc/inc/chgtrack.hxx
    openoffice/branches/ia2/main/sc/inc/detfunc.hxx
    openoffice/branches/ia2/main/sc/inc/document.hxx
    openoffice/branches/ia2/main/sc/inc/dptablecache.hxx
    openoffice/branches/ia2/main/sc/inc/drwlayer.hxx
    openoffice/branches/ia2/main/sc/inc/table.hxx
    openoffice/branches/ia2/main/sc/source/core/data/documen2.cxx
    openoffice/branches/ia2/main/sc/source/core/data/document.cxx
    openoffice/branches/ia2/main/sc/source/core/data/dpsave.cxx
    openoffice/branches/ia2/main/sc/source/core/data/dptablecache.cxx
    openoffice/branches/ia2/main/sc/source/core/data/drwlayer.cxx
    openoffice/branches/ia2/main/sc/source/core/data/table2.cxx
    openoffice/branches/ia2/main/sc/source/core/tool/dbcolect.cxx
    openoffice/branches/ia2/main/sc/source/core/tool/detfunc.cxx
    openoffice/branches/ia2/main/sc/source/ui/Accessibility/AccessibleCell.cxx
    openoffice/branches/ia2/main/sc/source/ui/Accessibility/AccessibleCellBase.cxx
    openoffice/branches/ia2/main/sc/source/ui/Accessibility/AccessibleDataPilotControl.cxx
    openoffice/branches/ia2/main/sc/source/ui/Accessibility/AccessibleDocument.cxx
    openoffice/branches/ia2/main/sc/source/ui/Accessibility/AccessibleDocumentBase.cxx
    openoffice/branches/ia2/main/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx
    openoffice/branches/ia2/main/sc/source/ui/Accessibility/AccessibleEditObject.cxx
    openoffice/branches/ia2/main/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
    openoffice/branches/ia2/main/sc/source/ui/Accessibility/AccessibleTableBase.cxx
    openoffice/branches/ia2/main/sc/source/ui/Accessibility/AccessibleText.cxx
    openoffice/branches/ia2/main/sc/source/ui/dbgui/dbnamdlg.cxx
    openoffice/branches/ia2/main/sc/source/ui/docshell/docsh.cxx
    openoffice/branches/ia2/main/sc/source/ui/drawfunc/fudraw.cxx
    openoffice/branches/ia2/main/sc/source/ui/inc/AccessibleCell.hxx
    openoffice/branches/ia2/main/sc/source/ui/inc/AccessibleCellBase.hxx
    openoffice/branches/ia2/main/sc/source/ui/inc/AccessibleDocument.hxx
    openoffice/branches/ia2/main/sc/source/ui/inc/AccessibleDocumentBase.hxx
    openoffice/branches/ia2/main/sc/source/ui/inc/AccessibleDocumentPagePreview.hxx
    openoffice/branches/ia2/main/sc/source/ui/inc/AccessibleEditObject.hxx
    openoffice/branches/ia2/main/sc/source/ui/inc/AccessibleSpreadsheet.hxx
    openoffice/branches/ia2/main/sc/source/ui/inc/AccessibleTableBase.hxx
    openoffice/branches/ia2/main/sc/source/ui/inc/AccessibleText.hxx
    openoffice/branches/ia2/main/sc/source/ui/inc/content.hxx
    openoffice/branches/ia2/main/sc/source/ui/inc/dbnamdlg.hxx
    openoffice/branches/ia2/main/sc/source/ui/inc/docsh.hxx
    openoffice/branches/ia2/main/sc/source/ui/inc/drawview.hxx
    openoffice/branches/ia2/main/sc/source/ui/inc/gridwin.hxx
    openoffice/branches/ia2/main/sc/source/ui/inc/preview.hxx
    openoffice/branches/ia2/main/sc/source/ui/inc/scuitphfedit.hxx
    openoffice/branches/ia2/main/sc/source/ui/inc/tabview.hxx
    openoffice/branches/ia2/main/sc/source/ui/inc/tabvwsh.hxx
    openoffice/branches/ia2/main/sc/source/ui/inc/tphfedit.hxx
    openoffice/branches/ia2/main/sc/source/ui/inc/validate.hxx
    openoffice/branches/ia2/main/sc/source/ui/inc/viewfunc.hxx
    openoffice/branches/ia2/main/sc/source/ui/miscdlgs/highred.cxx
    openoffice/branches/ia2/main/sc/source/ui/miscdlgs/solveroptions.cxx
    openoffice/branches/ia2/main/sc/source/ui/navipi/content.cxx
    openoffice/branches/ia2/main/sc/source/ui/navipi/navipi.cxx
    openoffice/branches/ia2/main/sc/source/ui/pagedlg/scuitphfedit.cxx
    openoffice/branches/ia2/main/sc/source/ui/pagedlg/tphfedit.cxx
    openoffice/branches/ia2/main/sc/source/ui/view/drawview.cxx
    openoffice/branches/ia2/main/sc/source/ui/view/gridwin.cxx
    openoffice/branches/ia2/main/sc/source/ui/view/gridwin3.cxx
    openoffice/branches/ia2/main/sc/source/ui/view/gridwin5.cxx
    openoffice/branches/ia2/main/sc/source/ui/view/output.cxx
    openoffice/branches/ia2/main/sc/source/ui/view/preview.cxx
    openoffice/branches/ia2/main/sc/source/ui/view/select.cxx
    openoffice/branches/ia2/main/sc/source/ui/view/tabview2.cxx
    openoffice/branches/ia2/main/sc/source/ui/view/tabvwsh.cxx
    openoffice/branches/ia2/main/sc/source/ui/view/tabvwsh4.cxx
    openoffice/branches/ia2/main/sc/source/ui/view/tabvwshe.cxx
    openoffice/branches/ia2/main/sc/source/ui/view/viewfun2.cxx
    openoffice/branches/ia2/main/sd/inc/drawdoc.hxx
    openoffice/branches/ia2/main/sd/inc/glob.hxx
    openoffice/branches/ia2/main/sd/source/core/drawdoc.cxx
    openoffice/branches/ia2/main/sd/source/core/drawdoc2.cxx
    openoffice/branches/ia2/main/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
    openoffice/branches/ia2/main/sd/source/ui/accessibility/AccessibleDrawDocumentView.cxx
    openoffice/branches/ia2/main/sd/source/ui/accessibility/AccessibleOutlineEditSource.cxx
    openoffice/branches/ia2/main/sd/source/ui/accessibility/AccessibleOutlineView.cxx
    openoffice/branches/ia2/main/sd/source/ui/accessibility/AccessiblePresentationGraphicShape.cxx
    openoffice/branches/ia2/main/sd/source/ui/accessibility/AccessiblePresentationOLEShape.cxx
    openoffice/branches/ia2/main/sd/source/ui/accessibility/AccessiblePresentationShape.cxx
    openoffice/branches/ia2/main/sd/source/ui/accessibility/AccessibleSlideSorterObject.cxx
    openoffice/branches/ia2/main/sd/source/ui/accessibility/AccessibleSlideSorterView.cxx
    openoffice/branches/ia2/main/sd/source/ui/accessibility/accessibility.hrc
    openoffice/branches/ia2/main/sd/source/ui/accessibility/accessibility.src
    openoffice/branches/ia2/main/sd/source/ui/dlg/navigatr.cxx
    openoffice/branches/ia2/main/sd/source/ui/dlg/sdtreelb.cxx
    openoffice/branches/ia2/main/sd/source/ui/docshell/docshel4.cxx
    openoffice/branches/ia2/main/sd/source/ui/func/fudraw.cxx
    openoffice/branches/ia2/main/sd/source/ui/func/fuediglu.cxx
    openoffice/branches/ia2/main/sd/source/ui/func/fusel.cxx
    openoffice/branches/ia2/main/sd/source/ui/inc/AccessibleDocumentViewBase.hxx
    openoffice/branches/ia2/main/sd/source/ui/inc/AccessibleDrawDocumentView.hxx
    openoffice/branches/ia2/main/sd/source/ui/inc/AccessibleOutlineView.hxx
    openoffice/branches/ia2/main/sd/source/ui/inc/AccessiblePresentationGraphicShape.hxx
    openoffice/branches/ia2/main/sd/source/ui/inc/AccessiblePresentationOLEShape.hxx
    openoffice/branches/ia2/main/sd/source/ui/inc/AccessiblePresentationShape.hxx
    openoffice/branches/ia2/main/sd/source/ui/inc/AccessibleSlideSorterView.hxx
    openoffice/branches/ia2/main/sd/source/ui/inc/AccessibleSlideView.hxx
    openoffice/branches/ia2/main/sd/source/ui/inc/DrawController.hxx
    openoffice/branches/ia2/main/sd/source/ui/inc/DrawDocShell.hxx
    openoffice/branches/ia2/main/sd/source/ui/inc/DrawViewShell.hxx
    openoffice/branches/ia2/main/sd/source/ui/inc/OutlineViewShell.hxx
    openoffice/branches/ia2/main/sd/source/ui/inc/SdUnoDrawView.hxx
    openoffice/branches/ia2/main/sd/source/ui/inc/SlideSorterViewShell.hxx
    openoffice/branches/ia2/main/sd/source/ui/inc/SlideViewShell.hxx
    openoffice/branches/ia2/main/sd/source/ui/inc/TabControl.hxx
    openoffice/branches/ia2/main/sd/source/ui/inc/ViewShell.hxx
    openoffice/branches/ia2/main/sd/source/ui/inc/Window.hxx
    openoffice/branches/ia2/main/sd/source/ui/inc/fuediglu.hxx
    openoffice/branches/ia2/main/sd/source/ui/inc/fusel.hxx
    openoffice/branches/ia2/main/sd/source/ui/inc/navigatr.hxx
    openoffice/branches/ia2/main/sd/source/ui/inc/sdtreelb.hxx
    openoffice/branches/ia2/main/sd/source/ui/slideshow/showwin.cxx
    openoffice/branches/ia2/main/sd/source/ui/slideshow/showwindow.hxx
    openoffice/branches/ia2/main/sd/source/ui/slideshow/slideshow.cxx
    openoffice/branches/ia2/main/sd/source/ui/slideshow/slideshowimpl.cxx
    openoffice/branches/ia2/main/sd/source/ui/slidesorter/controller/SlsFocusManager.cxx
    openoffice/branches/ia2/main/sd/source/ui/slidesorter/shell/SlideSorterViewShell.cxx
    openoffice/branches/ia2/main/sd/source/ui/unoidl/DrawController.cxx
    openoffice/branches/ia2/main/sd/source/ui/unoidl/SdUnoDrawView.cxx
    openoffice/branches/ia2/main/sd/source/ui/view/Outliner.cxx
    openoffice/branches/ia2/main/sd/source/ui/view/drviews4.cxx
    openoffice/branches/ia2/main/sd/source/ui/view/drviews5.cxx
    openoffice/branches/ia2/main/sd/source/ui/view/outlnvsh.cxx
    openoffice/branches/ia2/main/sd/source/ui/view/sdwindow.cxx
    openoffice/branches/ia2/main/sd/source/ui/view/tabcontr.cxx
    openoffice/branches/ia2/main/sd/source/ui/view/viewshel.cxx
    openoffice/branches/ia2/main/sfx2/inc/sfx2/dinfdlg.hxx
    openoffice/branches/ia2/main/sfx2/inc/sfx2/viewsh.hxx
    openoffice/branches/ia2/main/sfx2/source/dialog/newstyle.cxx
    openoffice/branches/ia2/main/sfx2/source/menu/mnuitem.cxx
    openoffice/branches/ia2/main/sfx2/source/view/viewfrm.cxx
    openoffice/branches/ia2/main/soldep/source/soldep.cxx
    openoffice/branches/ia2/main/svtools/source/control/accessibleruler.cxx
    openoffice/branches/ia2/main/svx/inc/svx/AccessibleTableShape.hxx
    openoffice/branches/ia2/main/svx/inc/svx/nbdtmg.hxx
    openoffice/branches/ia2/main/svx/source/accessibility/AccessibleTextHelper.cxx
    openoffice/branches/ia2/main/svx/source/accessibility/ChildrenManagerImpl.cxx
    openoffice/branches/ia2/main/svx/source/sidebar/nbdtmg.cxx
    openoffice/branches/ia2/main/svx/source/table/accessiblecell.cxx
    openoffice/branches/ia2/main/sw/source/core/access/accdoc.cxx
    openoffice/branches/ia2/main/sw/source/core/access/accfield.cxx
    openoffice/branches/ia2/main/sw/source/core/access/accframebase.hxx
    openoffice/branches/ia2/main/sw/source/core/access/accpara.cxx
    openoffice/branches/ia2/main/sw/source/core/access/acctable.cxx
    openoffice/branches/ia2/main/sw/source/core/access/acctextframe.cxx
    openoffice/branches/ia2/main/sw/source/core/edit/ednumber.cxx
    openoffice/branches/ia2/main/sw/source/filter/ww8/wrtw8esh.cxx
    openoffice/branches/ia2/main/sw/source/ui/shells/txtnum.cxx
    openoffice/branches/ia2/main/sw/source/ui/table/tabledlg.cxx
    openoffice/branches/ia2/main/vcl/inc/vcl/vclevent.hxx
    openoffice/branches/ia2/main/vcl/source/app/svapp.cxx

Modified: openoffice/branches/ia2/main/accessibility/source/extended/AccessibleBrowseBoxHeaderCell.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/accessibility/source/extended/AccessibleBrowseBoxHeaderCell.cxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/accessibility/source/extended/AccessibleBrowseBoxHeaderCell.cxx (original)
+++ openoffice/branches/ia2/main/accessibility/source/extended/AccessibleBrowseBoxHeaderCell.cxx Fri Sep 27 03:21:44 2013
@@ -65,7 +65,7 @@ AccessibleBrowseBoxHeaderCell::Accessibl
 		// SHOWING done with mxParent
 		if( implIsShowing() )
 			pStateSetHelper->AddState( AccessibleStateType::SHOWING );
-		mpBrowseBox->FillAccessibleStateSet( *pStateSetHelper, getType() ); //Added by yangzhh for SODC_2056
+		mpBrowseBox->FillAccessibleStateSet( *pStateSetHelper, getType() );
 		BBSolarGuard aSolarGuard;
 		pStateSetHelper->AddState( AccessibleStateType::VISIBLE );
 		pStateSetHelper->AddState( AccessibleStateType::FOCUSABLE );

Modified: openoffice/branches/ia2/main/accessibility/source/extended/accessiblelistbox.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/accessibility/source/extended/accessiblelistbox.cxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/accessibility/source/extended/accessiblelistbox.cxx (original)
+++ openoffice/branches/ia2/main/accessibility/source/extended/accessiblelistbox.cxx Fri Sep 27 03:21:44 2013
@@ -429,7 +429,6 @@ namespace accessibility
 		if ( pEntry )
 		{
 			if( pEntry->HasChildsOnDemand() || getListBox()->GetChildCount(pEntry) > 0  )
-			//end add by duan mei hua, 2007/01/27, for sodc_6862
 			{
 				nCase = 1;
 				return nCase;

Modified: openoffice/branches/ia2/main/accessibility/source/extended/textwindowaccessibility.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/accessibility/source/extended/textwindowaccessibility.cxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/accessibility/source/extended/textwindowaccessibility.cxx (original)
+++ openoffice/branches/ia2/main/accessibility/source/extended/textwindowaccessibility.cxx Fri Sep 27 03:21:44 2013
@@ -1047,7 +1047,6 @@ Document::retrieveCharacterAttributes(
 	{
 		aAttribs[i].Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharColor"));
 		aAttribs[i].Handle = -1;
-		// Sym2_6109, 
 		//aAttribs[i].Value = mapFontColor( aFont.GetColor() );
 		aAttribs[i].Value = mapFontColor( m_rEngine.GetTextColor() );
 		aAttribs[i].State = ::css::beans::PropertyState_DIRECT_VALUE;
@@ -1154,7 +1153,7 @@ Document::retrieveCharacterAttributes(
 
     ::css::uno::Sequence< ::css::beans::PropertyValue > aRes = convertHashMapToSequence( aCharAttrSeq );
 
-	// Sym2_6109, sort the attributes
+	// sort the attributes
 	sal_Int32 nLength = aRes.getLength();
 	const ::css::beans::PropertyValue* pPairs = aRes.getConstArray();
 	sal_Int32* pIndices = new sal_Int32[nLength];

Modified: openoffice/branches/ia2/main/accessibility/source/standard/vclxaccessiblebox.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/accessibility/source/standard/vclxaccessiblebox.cxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/accessibility/source/standard/vclxaccessiblebox.cxx (original)
+++ openoffice/branches/ia2/main/accessibility/source/standard/vclxaccessiblebox.cxx Fri Sep 27 03:21:44 2013
@@ -269,7 +269,7 @@ void VCLXAccessibleBox::ProcessWindowEve
 		// MT: Not sending VCLEVENT_LISTBOX_STATEUPDATE, see comment in ListBox::SelectEntryPos
 		case VCLEVENT_LISTBOX_STATEUPDATE:
 		{
-			// Need to update the INDETERMINATE state sometimes, Sym2_1986
+			// Need to update the INDETERMINATE state sometimes
 			if (m_bIsDropDownBox && m_aBoxType==LISTBOX)
 			{
 				sal_Int32 nSelectedEntryCount = 0;

Modified: openoffice/branches/ia2/main/cui/source/customize/macropg.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/cui/source/customize/macropg.cxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/cui/source/customize/macropg.cxx (original)
+++ openoffice/branches/ia2/main/cui/source/customize/macropg.cxx Fri Sep 27 03:21:44 2013
@@ -166,6 +166,9 @@ _HeaderTabListBox::_HeaderTabListBox( Wi
     maHeaderBar( this, WB_BUTTONSTYLE | WB_BOTTOMBORDER )
 {
     maListBox.SetHelpId( HID_MACRO_HEADERTABLISTBOX );
+
+	// enable the cell focus to show visible focus
+	maListBox.EnableCellFocus();
 }
 
 _HeaderTabListBox::~_HeaderTabListBox()

Modified: openoffice/branches/ia2/main/cui/source/inc/headertablistbox.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/cui/source/inc/headertablistbox.hxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/cui/source/inc/headertablistbox.hxx (original)
+++ openoffice/branches/ia2/main/cui/source/inc/headertablistbox.hxx Fri Sep 27 03:21:44 2013
@@ -31,8 +31,8 @@
 class _HeaderTabListBox : public Control
 {
 private:
-	SvHeaderTabListBox			maListBox;
 	HeaderBar					maHeaderBar;
+	SvHeaderTabListBox			maListBox;
 protected:
 	DECL_LINK( HeaderEndDrag_Impl, HeaderBar* );
 	virtual long				Notify( NotifyEvent& rNEvt );

Modified: openoffice/branches/ia2/main/editeng/inc/editeng/editrids.hrc
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/editeng/inc/editeng/editrids.hrc?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/editeng/inc/editeng/editrids.hrc (original)
+++ openoffice/branches/ia2/main/editeng/inc/editeng/editrids.hrc Fri Sep 27 03:21:44 2013
@@ -373,8 +373,10 @@
 #define RID_STR_WORD						(RID_EDIT_START + 313)
 #define RID_SVXSTR_A11Y_IMAGEBULLET_DESCRIPTION	(RID_EDIT_START + 314)
 #define RID_SVXSTR_A11Y_IMAGEBULLET_NAME		(RID_EDIT_START + 315)
+#define RID_SVXSTR_A11Y_PARAGRAPH_DESCRIPTION	(RID_EDIT_START + 316)
+#define RID_SVXSTR_A11Y_PARAGRAPH_NAME			(RID_EDIT_START + 317)
 
-#if 315 > (RID_EDIT_END-RID_EDIT_START)
+#if 317 > (RID_EDIT_END-RID_EDIT_START)
 #error Resource-Ueberlauf in #line, #file
 #endif
 

Modified: openoffice/branches/ia2/main/editeng/source/accessibility/AccessibleEditableTextPara.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/editeng/source/accessibility/AccessibleEditableTextPara.cxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/editeng/source/accessibility/AccessibleEditableTextPara.cxx (original)
+++ openoffice/branches/ia2/main/editeng/source/accessibility/AccessibleEditableTextPara.cxx Fri Sep 27 03:21:44 2013
@@ -77,13 +77,14 @@
 
 #include <svtools/colorcfg.hxx>
 //IAccessibility2 Implementation 2009-----
-#ifndef _ACCESSIBLEHYPERLINK_HXX
-#include <Accessiblehyperlink.hxx>
-#endif
 #include <algorithm>
 using namespace std;
-//-----IAccessibility2 Implementation 2009
+#include "editeng.hrc"
+#include <editeng/eerdll.hxx>
 #include <editeng/numitem.hxx>
+#include <sfx2/viewfrm.hxx>
+#include <sfx2/viewsh.hxx>
+//-----IAccessibility2 Implementation 2009
 
 using namespace ::com::sun::star;
 using namespace ::com::sun::star::beans;
@@ -99,8 +100,6 @@ using namespace ::com::sun::star::access
 namespace accessibility
 {
 //IAccessibility2 Implementation 2009-----
-	//Window* GetCurrentEditorWnd();
-//-----IAccessibility2 Implementation 2009
 
     const SvxItemPropertySet* ImplGetSvxCharAndParaPropertiesSet()
     {
@@ -942,19 +941,67 @@ namespace accessibility
     ::rtl::OUString SAL_CALL AccessibleEditableTextPara::getAccessibleDescription() throw (uno::RuntimeException)
     {
         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
+	//IAccessibility2 Implementation 2009-----
+        ::vos::OGuard aGuard( Application::GetSolarMutex() );
 
-//        ::vos::OGuard aGuard( Application::GetSolarMutex() );
+        // append first 40 characters from text, or first line, if shorter
+        // (writer takes first sentence here, but that's not supported
+        // from EditEngine)
+        // throws if defunc
+        ::rtl::OUString aLine;
+
+        if( getCharacterCount() )
+            aLine = getTextAtIndex(0, AccessibleTextType::LINE).SegmentText;
+
+        // Get the string from the resource for the specified id.
+        String sStr = ::rtl::OUString( String( EditResId (RID_SVXSTR_A11Y_PARAGRAPH_DESCRIPTION ) ) );
+        String sParaIndex = ::rtl::OUString::valueOf( GetParagraphIndex() );
+		sStr.SearchAndReplace( String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "$(ARG)" )),
+                               sParaIndex );
+
+        if( aLine.getLength() > MaxDescriptionLen )
+        {
+            ::rtl::OUString aCurrWord;
+            sal_Int32 i;
+
+            // search backward from MaxDescriptionLen for previous word start
+            for( aCurrWord=getTextAtIndex(MaxDescriptionLen, AccessibleTextType::WORD).SegmentText,
+                     i=MaxDescriptionLen,
+                     aLine=::rtl::OUString();
+                 i>=0;
+                 --i )
+            {
+                if( getTextAtIndex(i, AccessibleTextType::WORD).SegmentText != aCurrWord )
+                {
+                    if( i == 0 )
+                        // prevent completely empty string
+                        aLine = getTextAtIndex(0, AccessibleTextType::WORD).SegmentText;
+                    else
+                        aLine = getTextRange(0, i);
+                }
+            }
+        }
 
-        return ::rtl::OUString();
+        return ::rtl::OUString( sStr ) + aLine;
+	//-----IAccessibility2 Implementation 2009
     }
 
     ::rtl::OUString SAL_CALL AccessibleEditableTextPara::getAccessibleName() throw (uno::RuntimeException)
     {
         DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
 
-//        ::vos::OGuard aGuard( Application::GetSolarMutex() );
+        ::vos::OGuard aGuard( Application::GetSolarMutex() );
+
+        // throws if defunc
+        sal_Int32 nPara( GetParagraphIndex() );
 
-        return ::rtl::OUString();
+        // Get the string from the resource for the specified id.
+        String sStr = ::rtl::OUString( String( EditResId (RID_SVXSTR_A11Y_PARAGRAPH_NAME) ) );
+        String sParaIndex = ::rtl::OUString::valueOf( nPara );
+		sStr.SearchAndReplace( String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "$(ARG)" )),
+                               sParaIndex );
+
+        return ::rtl::OUString( sStr );
     }
 
     uno::Reference< XAccessibleRelationSet > SAL_CALL AccessibleEditableTextPara::getAccessibleRelationSet() throw (uno::RuntimeException)
@@ -1383,14 +1430,14 @@ namespace accessibility
 		case SVX_PAGEFIELD:
 			strFldType = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("page-number"));
 			break;
-		//Sym2_8508, support the sheet name & pages fields
+		//support the sheet name & pages fields
 		case SVX_PAGESFIELD:
 				strFldType = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("page-count"));
 			break;
 		case SVX_TABLEFIELD:
 				strFldType = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sheet-name"));
 			break;
-		//End of Sym2_8508
+		//End
 		case SVX_TIMEFIELD:
 			strFldType = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("time"));
 			break;
@@ -1435,7 +1482,6 @@ namespace accessibility
 		if (nIndex != 0)
 			CheckIndex(nIndex);	// may throw IndexOutOfBoundsException
 
-		// refactored by Steve Yin
 		bool bSupplementalMode = false;
 		uno::Sequence< ::rtl::OUString > aPropertyNames = rRequestedAttributes;
 		if (aPropertyNames.getLength() == 0)
@@ -1986,8 +2032,7 @@ namespace accessibility
 				bExtend = sal_True;
 			}
 			if( bExtend )
-			{
-				//Modified by yanjun for sym2_7393
+			{				
 				//If there is a bullet before the field, should add the bullet length into the segment.
 				EBulletInfo aBulletInfo = rCacheTF.GetBulletInfo(sal_uInt16(nParaIndex));
 				int nBulletLen = aBulletInfo.aText.Len();
@@ -2003,8 +2048,7 @@ namespace accessibility
 						Segment.SegmentStart -= nBulletLen;
 				}
 				else
-					Segment.SegmentText = GetTextRange(Segment.SegmentStart, Segment.SegmentEnd);
-				//End
+					Segment.SegmentText = GetTextRange(Segment.SegmentStart, Segment.SegmentEnd);				
 			}
 		}
 		return bExtend;

Modified: openoffice/branches/ia2/main/editeng/source/accessibility/accessibility.src
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/editeng/source/accessibility/accessibility.src?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/editeng/source/accessibility/accessibility.src (original)
+++ openoffice/branches/ia2/main/editeng/source/accessibility/accessibility.src Fri Sep 27 03:21:44 2013
@@ -33,4 +33,14 @@ String RID_SVXSTR_A11Y_IMAGEBULLET_NAME
 	Text [ en-US ] = "Image bullet" ;
 };
 
+String RID_SVXSTR_A11Y_PARAGRAPH_DESCRIPTION
+{
+	Text [ en-US ] = "Paragraph: $(ARG) " ;
+};
+
+String RID_SVXSTR_A11Y_PARAGRAPH_NAME
+{
+	Text [ en-US ] = "Paragraph $(ARG)" ;
+};
+
 

Modified: openoffice/branches/ia2/main/editeng/source/editeng/impedit.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/editeng/source/editeng/impedit.hxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/editeng/source/editeng/impedit.hxx (original)
+++ openoffice/branches/ia2/main/editeng/source/editeng/impedit.hxx Fri Sep 27 03:21:44 2013
@@ -480,7 +480,7 @@ private:
 	sal_Bool			bInSelection;
 	sal_Bool			bIsInUndo;
 	sal_Bool			bUpdate;
-	//Sym2_5587, IAccessible2 migration fix
+	// IAccessible2 migration fix
 	sal_Bool			bUpdateForAcc;
 	sal_Bool			bUndoEnabled;
 	sal_Bool			bOwnerOfRefDev;

Modified: openoffice/branches/ia2/main/filter/source/pdf/impdialog.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/filter/source/pdf/impdialog.cxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/filter/source/pdf/impdialog.cxx (original)
+++ openoffice/branches/ia2/main/filter/source/pdf/impdialog.cxx Fri Sep 27 03:21:44 2013
@@ -643,7 +643,7 @@ SfxTabPage*  ImpPDFTabGeneralPage::Creat
 IMPL_LINK( ImpPDFTabGeneralPage, TogglePagesHdl, void*, EMPTYARG )
 {
     maEdPages.Enable( maRbRange.IsChecked() );
-    //Sym2_5805, When the control is disabled, it is also readonly. So here, it is not necessary to set it as readonly.
+    //When the control is disabled, it is also readonly. So here, it is not necessary to set it as readonly.
     //maEdPages.SetReadOnly( !maRbRange.IsChecked() );
     return 0;
 }

Modified: openoffice/branches/ia2/main/sc/inc/chgtrack.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/sc/inc/chgtrack.hxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/sc/inc/chgtrack.hxx (original)
+++ openoffice/branches/ia2/main/sc/inc/chgtrack.hxx Fri Sep 27 03:21:44 2013
@@ -44,8 +44,25 @@
 #endif
 
 #define DEBUG_CHANGETRACK 0
+//IAccessibility2 Implementation 2009-----
+class ScChangeAction;
+class ScAppOptions;
+class ScActionColorChanger
+{
+private:
+	const ScAppOptions&		rOpt;
+	const ScStrCollection&	rUsers;
+	String					aLastUserName;
+	sal_uInt16					nLastUserIndex;
+	ColorData				nColor;
 
-
+public:
+				ScActionColorChanger( const ScChangeTrack& rTrack );
+				~ScActionColorChanger() {}
+				void		Update( const ScChangeAction& rAction );
+				ColorData	GetColor() const	{ return nColor; }
+};
+//-----IAccessibility2 Implementation 2009
 class ScBaseCell;
 class ScDocument;
 

Modified: openoffice/branches/ia2/main/sc/inc/detfunc.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/sc/inc/detfunc.hxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/sc/inc/detfunc.hxx (original)
+++ openoffice/branches/ia2/main/sc/inc/detfunc.hxx Fri Sep 27 03:21:44 2013
@@ -155,6 +155,9 @@ public:
 	static ColorData GetCommentColor();
 	static void InitializeColors();
 	static sal_Bool	IsColorsInitialized();
+//IAccessibility2 Implementation 2009-----
+	static void AppendChangTrackNoteSeparator(String &str);
+//-----IAccessibility2 Implementation 2009
 };
 
 

Modified: openoffice/branches/ia2/main/sc/inc/document.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/sc/inc/document.hxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/sc/inc/document.hxx (original)
+++ openoffice/branches/ia2/main/sc/inc/document.hxx Fri Sep 27 03:21:44 2013
@@ -440,7 +440,23 @@ private:
 
     sal_Int16           mnNamedRangesLockCount;
 
+//IAccessibility2 Implementation 2009-----
+	String msDocAccTitle;
 public:
+	// SC_DLLPUBLIC sal_Bool RowHidden( SCROW nRow, SCTAB nTab );
+	//inline sal_Bool 		RowHidden( SCROW nRow, SCTAB nTab );		// FillInfo
+	virtual void setDocAccTitle( const String& rTitle ) { msDocAccTitle = rTitle; }
+	virtual const String getDocAccTitle() const { return msDocAccTitle; }
+
+private:	
+	sal_Bool bReadOnly;  // MT: Really needed???
+
+public:
+	virtual void setDocReadOnly( sal_Bool b){ bReadOnly = b; }
+	virtual sal_Bool getDocReadOnly() const { return bReadOnly; }
+	sal_Bool IsCellInChangeTrack(const ScAddress &cell,Color *pColCellBoder);
+	void GetCellChangeTrackNote( const ScAddress &cell,String &strTrackText,sal_Bool &pbLeftEdge);
+//-----IAccessibility2 Implementation 2009
 	SC_DLLPUBLIC sal_uLong			GetCellCount() const;		// alle Zellen
     SCSIZE          GetCellCount(SCTAB nTab, SCCOL nCol) const;
 	sal_uLong			GetWeightedCount() const;	// Formeln und Edit staerker gewichtet
@@ -466,6 +482,9 @@ public:
 	SC_DLLPUBLIC void			InitDrawLayer( SfxObjectShell* pDocShell = NULL );
 	XColorListSharedPtr GetColorTable();
 
+//IAccessibility2 Implementation 2009-----
+	ScTable*      GetTableByIndex(sal_Int32 nIndex);
+//-----IAccessibility2 Implementation 2009
 	SC_DLLPUBLIC sfx2::LinkManager*		GetLinkManager() const;
 
 	SC_DLLPUBLIC const ScDocOptions&		GetDocOptions() const;

Modified: openoffice/branches/ia2/main/sc/inc/dptablecache.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/sc/inc/dptablecache.hxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/sc/inc/dptablecache.hxx (original)
+++ openoffice/branches/ia2/main/sc/inc/dptablecache.hxx Fri Sep 27 03:21:44 2013
@@ -22,14 +22,11 @@
 
 #ifndef DPTABLECACHE_HXX
 #define DPTABLECACHE_HXX
-// Wang Xu Ming -- 12/21/2008
 // Add Data Cache Support.
 #ifndef SC_SCGLOB_HXX
 #include "global.hxx"
 #endif
-//Added by PengYunQuan for SODC_16015
 #include <svl/zforlist.hxx>
-//end
 #include <vector>
 #include "dpglobal.hxx"
 

Modified: openoffice/branches/ia2/main/sc/inc/drwlayer.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/sc/inc/drwlayer.hxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/sc/inc/drwlayer.hxx (original)
+++ openoffice/branches/ia2/main/sc/inc/drwlayer.hxx Fri Sep 27 03:21:44 2013
@@ -230,6 +230,10 @@ public:
 							const Point& rWinPoint, const Window& rCmpWnd );
 
     static ScMacroInfo* GetMacroInfo( SdrObject* pObj, sal_Bool bCreate = sal_False );
+//IAccessibility2 Implementation 2009-----
+	virtual ImageMap* GetImageMapForObject(SdrObject* pObj);
+	virtual sal_Int32 GetHyperlinkCount(SdrObject* pObj);
+//-----IAccessibility2 Implementation 2009
 
 private:
 	static SfxObjectShell* pGlobalDrawPersist;			// fuer AllocModel

Modified: openoffice/branches/ia2/main/sc/inc/table.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/sc/inc/table.hxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/sc/inc/table.hxx (original)
+++ openoffice/branches/ia2/main/sc/inc/table.hxx Fri Sep 27 03:21:44 2013
@@ -937,6 +937,11 @@ private:
         SCROW mnCurRow;
         SCROW mnUBound;
     };
+
+//IAccessibility2 Implementation 2009-----
+public :
+	ScColumn* GetColumnByIndex(sal_Int32 index);
+//-----IAccessibility2 Implementation 2009
 };
 
 

Modified: openoffice/branches/ia2/main/sc/source/core/data/documen2.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/sc/source/core/data/documen2.cxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/sc/source/core/data/documen2.cxx (original)
+++ openoffice/branches/ia2/main/sc/source/core/data/documen2.cxx Fri Sep 27 03:21:44 2013
@@ -87,6 +87,11 @@
 #include "recursionhelper.hxx"
 #include "lookupcache.hxx"
 #include "externalrefmgr.hxx"
+//IAccessibility2 Implementation 2009-----
+#include "appoptio.hxx"
+#include "scmod.hxx"
+#include "../../ui/inc/viewutil.hxx"
+//-----IAccessibility2 Implementation 2009
 #include "tabprotection.hxx"
 #include "formulaparserpool.hxx"
 #include "clipparam.hxx"
@@ -211,6 +216,9 @@ ScDocument::ScDocument( ScDocumentMode	e
         eGrammar( formula::FormulaGrammar::GRAM_NATIVE ),
         bStyleSheetUsageInvalid( sal_True ),
         mbUndoEnabled( true ),
+//IAccessibility2 Implementation 2009-----
+		bReadOnly(sal_False),
+//-----IAccessibility2 Implementation 2009
         mbAdjustHeightEnabled( true ),
         mbExecuteLinkEnabled( true ),
         mbChangeReadOnlyEnabled( false ),
@@ -1295,3 +1303,158 @@ void ScDocument::ClearLookupCaches()
     if( pLookupCacheMapImpl )
         pLookupCacheMapImpl->clear();
 }
+//IAccessibility2 Implementation 2009-----
+sal_Bool ScDocument::IsCellInChangeTrack(const ScAddress &cell,Color *pColCellBoder)
+{
+	ScChangeTrack* pTrack = GetChangeTrack();
+	ScChangeViewSettings* pSettings = GetChangeViewSettings();
+	if ( !pTrack || !pTrack->GetFirst() || !pSettings || !pSettings->ShowChanges() )
+		return sal_False;			// nix da oder abgeschaltet
+	ScActionColorChanger aColorChanger(*pTrack);
+	//	Clipping passiert von aussen
+	//!	ohne Clipping, nur betroffene Zeilen painten ??!??!?
+	const ScChangeAction* pAction = pTrack->GetFirst();
+	while (pAction)
+	{
+		ScChangeActionType eType;
+		if ( pAction->IsVisible() )
+		{
+			eType = pAction->GetType();
+			const ScBigRange& rBig = pAction->GetBigRange();
+			if ( rBig.aStart.Tab() == cell.Tab())
+			{
+				ScRange aRange = rBig.MakeRange();
+				if ( eType == SC_CAT_DELETE_ROWS )
+					aRange.aEnd.SetRow( aRange.aStart.Row() );
+				else if ( eType == SC_CAT_DELETE_COLS )
+					aRange.aEnd.SetCol( aRange.aStart.Col() );
+				if (ScViewUtil::IsActionShown( *pAction, *pSettings, *this ) )
+				{
+					if (aRange.In(cell))
+					{
+						if (pColCellBoder != NULL)
+						{
+							aColorChanger.Update( *pAction );
+							Color aColor( aColorChanger.GetColor() );
+							*pColCellBoder = aColor;
+						}
+						return sal_True;
+					}
+				}
+			}
+			if ( eType == SC_CAT_MOVE &&
+				((const ScChangeActionMove*)pAction)->
+				GetFromRange().aStart.Tab() == cell.Col() )
+			{
+				ScRange aRange = ((const ScChangeActionMove*)pAction)->
+					GetFromRange().MakeRange();
+				if (ScViewUtil::IsActionShown( *pAction, *pSettings, *this ) )
+				{
+					if (aRange.In(cell))
+					{
+						if (pColCellBoder != NULL)
+						{
+							aColorChanger.Update( *pAction );
+							Color aColor( aColorChanger.GetColor() );
+							*pColCellBoder = aColor;
+						}
+						return sal_True;
+					}
+				}
+			}
+		}
+		pAction = pAction->GetNext();
+	}
+	return sal_False;
+}
+void ScDocument::GetCellChangeTrackNote( const ScAddress &aCellPos,String &aTrackText,sal_Bool &bLeftEdge)
+{
+	aTrackText=String();
+	//	Change-Tracking
+	ScChangeTrack* pTrack = GetChangeTrack();
+	ScChangeViewSettings* pSettings = GetChangeViewSettings();
+	if ( pTrack && pTrack->GetFirst() && pSettings && pSettings->ShowChanges())
+	{
+		const ScChangeAction* pFound = NULL;
+		const ScChangeAction* pFoundContent = NULL;
+		const ScChangeAction* pFoundMove = NULL;
+		long nModified = 0;
+		const ScChangeAction* pAction = pTrack->GetFirst();
+		while (pAction)
+		{
+			if ( pAction->IsVisible() &&
+				 ScViewUtil::IsActionShown( *pAction, *pSettings, *this ) )
+			{
+				ScChangeActionType eType = pAction->GetType();
+				const ScBigRange& rBig = pAction->GetBigRange();
+				if ( rBig.aStart.Tab() == aCellPos.Tab())
+				{
+					ScRange aRange = rBig.MakeRange();
+					if ( eType == SC_CAT_DELETE_ROWS )
+						aRange.aEnd.SetRow( aRange.aStart.Row() );
+					else if ( eType == SC_CAT_DELETE_COLS )
+						aRange.aEnd.SetCol( aRange.aStart.Col() );
+					if ( aRange.In( aCellPos ) )
+					{
+						pFound = pAction;		// der letzte gewinnt
+						switch ( eType )
+						{
+							case SC_CAT_CONTENT :
+								pFoundContent = pAction;
+							break;
+							case SC_CAT_MOVE :
+								pFoundMove = pAction;
+							break;
+							default:
+								break;
+						}
+						++nModified;
+					}
+				}
+				if ( eType == SC_CAT_MOVE )
+				{
+					ScRange aRange =
+						((const ScChangeActionMove*)pAction)->
+						GetFromRange().MakeRange();
+					if ( aRange.In( aCellPos ) )
+					{
+						pFound = pAction;
+						++nModified;
+					}
+				}
+			}
+			pAction = pAction->GetNext();
+		}
+		if ( pFound )
+		{
+			if ( pFoundContent && pFound->GetType() != SC_CAT_CONTENT )
+				pFound = pFoundContent;		// Content gewinnt
+			if ( pFoundMove && pFound->GetType() != SC_CAT_MOVE &&
+					pFoundMove->GetActionNumber() >
+					pFound->GetActionNumber() )
+				pFound = pFoundMove;		// Move gewinnt
+			//	bei geloeschten Spalten: Pfeil auf die linke Seite der Zelle
+			if ( pFound->GetType() == SC_CAT_DELETE_COLS )
+				bLeftEdge = sal_True;
+			DateTime aDT = pFound->GetDateTime();
+			aTrackText  = pFound->GetUser();
+			aTrackText.AppendAscii(RTL_CONSTASCII_STRINGPARAM( ", " ));
+            aTrackText += ScGlobal::pLocaleData->getDate(aDT);
+			aTrackText += ' ';
+            aTrackText += ScGlobal::pLocaleData->getTime(aDT);
+			aTrackText.AppendAscii(RTL_CONSTASCII_STRINGPARAM( ":\n" ));
+			String aComStr=pFound->GetComment();
+			if(aComStr.Len()>0)
+			{
+				aTrackText += aComStr;
+				aTrackText.AppendAscii(RTL_CONSTASCII_STRINGPARAM( "\n( " ));
+			}
+			pFound->GetDescription( aTrackText, this );
+			if(aComStr.Len()>0)
+			{
+				aTrackText +=')';
+			}
+		}
+	}
+}
+//-----IAccessibility2 Implementation 2009

Modified: openoffice/branches/ia2/main/sc/source/core/data/document.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/sc/source/core/data/document.cxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/sc/source/core/data/document.cxx (original)
+++ openoffice/branches/ia2/main/sc/source/core/data/document.cxx Fri Sep 27 03:21:44 2013
@@ -200,6 +200,15 @@ sal_Bool ScDocument::GetTable( const Str
 	return sal_False;
 }
 
+//IAccessibility2 Implementation 2009-----
+ScTable* ScDocument::GetTableByIndex(sal_Int32 nIndex)
+{
+  if ( nIndex <= MAXTAB && nIndex >= 0)
+     return  pTab[nIndex];
+
+  return NULL;
+}
+//-----IAccessibility2 Implementation 2009
 
 sal_Bool ScDocument::ValidTabName( const String& rName ) const
 {

Modified: openoffice/branches/ia2/main/sc/source/core/data/dpsave.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/sc/source/core/data/dpsave.cxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/sc/source/core/data/dpsave.cxx (original)
+++ openoffice/branches/ia2/main/sc/source/core/data/dpsave.cxx Fri Sep 27 03:21:44 2013
@@ -1506,7 +1506,6 @@ void ScDPSaveDimension::Refresh( const c
         };
 
         //remove unused members
-        //SODC_19124
         for (MemberList::iterator i=maMemberList.begin(); i != maMemberList.end() ; )
         {
             rtl::OUString aMemberName = (*i)->GetName();

Modified: openoffice/branches/ia2/main/sc/source/core/data/dptablecache.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/sc/source/core/data/dptablecache.cxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/sc/source/core/data/dptablecache.cxx (original)
+++ openoffice/branches/ia2/main/sc/source/core/data/dptablecache.cxx Fri Sep 27 03:21:44 2013
@@ -196,8 +196,8 @@ ScDPItemData::ScDPItemData( ScDocument* 
 
 	if ( pCell && pCell->GetCellType() == CELLTYPE_FORMULA && ((ScFormulaCell*)pCell)->GetErrCode() )
     {
-        SetString ( aDocStr );      //[SODC_19347] add liyi
-        //bErr = sal_True;              //[SODC_19347] del liyi
+        SetString ( aDocStr );      
+        //bErr = sal_True;
         mbFlag |= MK_ERR;
     }
 	else if ( pDoc->HasValueData( nCol, nRow, nDocTab ) )
@@ -293,8 +293,7 @@ sal_Int32 ScDPItemData::Compare( const S
     else
         return ScGlobal::GetCollator()->compareString( rA.aString, rB.aString );
 }
-//
-//Wang Xu Ming SODC_17561
+
 #ifdef DEBUG
 void	ScDPItemData::dump() const
 {
@@ -304,7 +303,6 @@ void	ScDPItemData::dump() const
 	DBG_TRACE1( "mbFlag= %d", mbFlag);
 }
 #endif
-//End
 
 TypedStrData*  ScDPItemData::CreateTypeString( )
 {
@@ -740,9 +738,8 @@ bool ScDPTableDataCache::ValidQuery( SCR
 						if ( bMatchWholeCell )
 						{
                         				bOk = pTransliteration->isEqual( aCellStr, *rEntry.pStr );
-							//Added by zhaosz,for sodc_2702,20060808
+							
 							String aStr = *rEntry.pStr;//"f*"
-							//modified by weihuaw,for SODC_16698
 							//use another way to find "*" in aStr
 							sal_Bool bHasStar = sal_False;
 							xub_StrLen nIndex;
@@ -1044,7 +1041,7 @@ const ScDPItemData* ScDPTableDataCache::
 
 SCCOL ScDPTableDataCache::GetDimensionIndex(String sName) const
 {
-	for ( size_t n = 1; n < mrLabelNames.size(); n ++ ) //defects, label name map wrong SODC_17590, SODC_18932,SODC_18827,SODC_18960,SODC_18923
+	for ( size_t n = 1; n < mrLabelNames.size(); n ++ ) //defects, label name map wrong
 	{
 		if ( mrLabelNames[n]->GetString() == sName )
 			return (SCCOL)(n-1);

Modified: openoffice/branches/ia2/main/sc/source/core/data/drwlayer.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/sc/source/core/data/drwlayer.cxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/sc/source/core/data/drwlayer.cxx (original)
+++ openoffice/branches/ia2/main/sc/source/core/data/drwlayer.cxx Fri Sep 27 03:21:44 2013
@@ -2027,7 +2027,27 @@ ScMacroInfo* ScDrawLayer::GetMacroInfo( 
     }
     return 0;
 }
+//IAccessibility2 Implementation 2009-----
+ImageMap* ScDrawLayer::GetImageMapForObject(SdrObject* pObj)
+{
+	ScIMapInfo* pIMapInfo = const_cast<ScIMapInfo*>( GetIMapInfo( pObj ) );
+	if ( pIMapInfo )
+	{
+		return const_cast<ImageMap*>( &(pIMapInfo->GetImageMap()) );
+	}
+	return NULL;
+}
 
+sal_Int32 ScDrawLayer::GetHyperlinkCount(SdrObject* pObj)
+{
+	sal_Int32 nHLCount = 0;
+	ScMacroInfo* pMacroInfo = GetMacroInfo(pObj, sal_False);
+	if (pMacroInfo)
+		// MT IA2: GetHlink*( doesn|t exist in DEV300 anymore...
+		nHLCount = 0; // pMacroInfo->GetHlink().getLength() > 0 ? 1 : 0;
+	return nHLCount;
+}
+//-----IAccessibility2 Implementation 2009
 void ScDrawLayer::SetGlobalDrawPersist(SfxObjectShell* pPersist)			// static
 {
 	DBG_ASSERT(!pGlobalDrawPersist,"SetGlobalDrawPersist mehrfach");

Modified: openoffice/branches/ia2/main/sc/source/core/data/table2.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/sc/source/core/data/table2.cxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/sc/source/core/data/table2.cxx (original)
+++ openoffice/branches/ia2/main/sc/source/core/data/table2.cxx Fri Sep 27 03:21:44 2013
@@ -3308,3 +3308,14 @@ sal_uLong ScTable::GetColOffset( SCCOL n
 	return n;
 }
 
+//IAccessibility2 Implementation 2009-----
+ScColumn* ScTable::GetColumnByIndex(sal_Int32 index)
+{
+	if( index <= MAXCOL && index >= 0 )
+	{
+		return &(aCol[index]);
+	}
+	return NULL;
+}
+//-----IAccessibility2 Implementation 2009
+

Modified: openoffice/branches/ia2/main/sc/source/core/tool/dbcolect.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/sc/source/core/tool/dbcolect.cxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/sc/source/core/tool/dbcolect.cxx (original)
+++ openoffice/branches/ia2/main/sc/source/core/tool/dbcolect.cxx Fri Sep 27 03:21:44 2013
@@ -948,20 +948,20 @@ ScDBData* ScDBCollection::GetDBAtTable(S
         for (unsigned short i = 0; i < nCount; i++)
         {
             ScDBData* pDBTemp = (ScDBData*)pItems[i];
-            if ( pDBTemp->nTable == nTab )						//Sym2_7885 mod
+            if ( pDBTemp->nTable == nTab )
             {
                 sal_Bool bImport = pDBTemp->HasImportParam();
                 sal_Bool bFilter = pDBTemp->HasAutoFilter() || pDBTemp->HasQueryParam();
                 sal_Bool bSort = pDBTemp->HasSortParam();
                 sal_Bool bSubtotal = pDBTemp->HasSubTotalParam();
                 sal_Bool bAnyParam = bImport || bFilter || bSort || bSubtotal;
-                if ( ((eMode == SC_DB_MAKE_SORT)    && bSort && !bFilter) ||      //Sym2_7334 mod 20100420
+                if ( ((eMode == SC_DB_MAKE_SORT)    && bSort && !bFilter) ||
                     ((eMode == SC_DB_MAKE_SUBTOTAL) && bSubtotal && !bFilter ) ||
                     ((eMode == SC_DB_MAKE_FILTER || eMode == SC_DB_OLD_FILTER) && bFilter ) )
                 {
                     return pDBTemp;
                 }
-                else if ( pDBTemp->IsBuildin() && !bAnyParam )	//Sym2_7885 mod
+                else if ( pDBTemp->IsBuildin() && !bAnyParam )
                 {
                     pDataEmpty = pDBTemp;
                 }

Modified: openoffice/branches/ia2/main/sc/source/core/tool/detfunc.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/sc/source/core/tool/detfunc.cxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/sc/source/core/tool/detfunc.cxx (original)
+++ openoffice/branches/ia2/main/sc/source/core/tool/detfunc.cxx Fri Sep 27 03:21:44 2013
@@ -1706,3 +1706,10 @@ sal_Bool ScDetectiveFunc::IsColorsInitia
 	return bColorsInitialized;
 }
 
+//IAccessibility2 Implementation 2009-----
+void ScDetectiveFunc::AppendChangTrackNoteSeparator(String &aDisplay)
+{
+	aDisplay.AppendAscii( RTL_CONSTASCII_STRINGPARAM("\n--------\n") );	
+}
+//-----IAccessibility2 Implementation 2009
+

Modified: openoffice/branches/ia2/main/sc/source/ui/Accessibility/AccessibleCell.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/sc/source/ui/Accessibility/AccessibleCell.cxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/sc/source/ui/Accessibility/AccessibleCell.cxx (original)
+++ openoffice/branches/ia2/main/sc/source/ui/Accessibility/AccessibleCell.cxx Fri Sep 27 03:21:44 2013
@@ -40,7 +40,9 @@
 #include "editsrc.hxx"
 #include "dociter.hxx"
 #include "cell.hxx"
-
+//IAccessibility2 Implementation 2009-----
+#include "validat.hxx"
+//-----IAccessibility2 Implementation 2009
 #ifndef _UTL_ACCESSIBLESTATESETHELPER_HXX
 #include <unotools/accessiblestatesethelper.hxx>
 #endif
@@ -58,6 +60,9 @@
 #include <comphelper/sequence.hxx>
 #include <float.h>
 
+//IAccessibility2 Implementation 2009-----
+#include "AccessibleSpreadsheet.hxx"
+//-----IAccessibility2 Implementation 2009
 using namespace	::com::sun::star;
 using namespace	::com::sun::star::accessibility;
 
@@ -117,11 +122,11 @@ void SAL_CALL ScAccessibleCell::disposin
 
 	//=====  XInterface  =====================================================
 
-IMPLEMENT_FORWARD_XINTERFACE2( ScAccessibleCell, ScAccessibleCellBase, AccessibleStaticTextBase )
+IMPLEMENT_FORWARD_XINTERFACE3( ScAccessibleCell, ScAccessibleCellBase, AccessibleStaticTextBase, ScAccessibleCellAttributeImpl )
 
     //=====  XTypeProvider  ===================================================
 
-IMPLEMENT_FORWARD_XTYPEPROVIDER2( ScAccessibleCell, ScAccessibleCellBase, AccessibleStaticTextBase )
+IMPLEMENT_FORWARD_XTYPEPROVIDER3( ScAccessibleCell, ScAccessibleCellBase, AccessibleStaticTextBase, ScAccessibleCellAttributeImpl )
 
 	//=====  XAccessibleComponent  ============================================
 
@@ -240,6 +245,25 @@ uno::Reference<XAccessibleStateSet> SAL_
 		pStateSet->AddState(AccessibleStateType::DEFUNC);
     else
     {
+//IAccessibility2 Implementation 2009-----
+		if (IsFormulaMode())
+		{
+			pStateSet->AddState(AccessibleStateType::ENABLED);
+		    pStateSet->AddState(AccessibleStateType::MULTI_LINE);
+			pStateSet->AddState(AccessibleStateType::MULTI_SELECTABLE);
+			if (IsOpaque(xParentStates))
+				pStateSet->AddState(AccessibleStateType::OPAQUE);
+			pStateSet->AddState(AccessibleStateType::SELECTABLE);
+			if (IsSelected())
+				pStateSet->AddState(AccessibleStateType::SELECTED);
+			if (isShowing())
+				pStateSet->AddState(AccessibleStateType::SHOWING);
+			pStateSet->AddState(AccessibleStateType::TRANSIENT);
+			if (isVisible())
+				pStateSet->AddState(AccessibleStateType::VISIBLE);
+			return pStateSet;
+		}
+//-----IAccessibility2 Implementation 2009
 	    if (IsEditable(xParentStates))
 	    {
 		    pStateSet->AddState(AccessibleStateType::EDITABLE);
@@ -248,6 +272,9 @@ uno::Reference<XAccessibleStateSet> SAL_
 	    pStateSet->AddState(AccessibleStateType::ENABLED);
 	    pStateSet->AddState(AccessibleStateType::MULTI_LINE);
 	    pStateSet->AddState(AccessibleStateType::MULTI_SELECTABLE);
+//IAccessibility2 Implementation 2009-----
+	    pStateSet->AddState(AccessibleStateType::FOCUSABLE);
+//-----IAccessibility2 Implementation 2009
 	    if (IsOpaque(xParentStates))
 		    pStateSet->AddState(AccessibleStateType::OPAQUE);
 	    pStateSet->AddState(AccessibleStateType::SELECTABLE);
@@ -344,6 +371,17 @@ sal_Bool ScAccessibleCell::IsOpaque(
 
 sal_Bool ScAccessibleCell::IsSelected()
 {
+//IAccessibility2 Implementation 2009-----
+	if (IsFormulaMode())
+	{
+		const ScAccessibleSpreadsheet *pSheet =static_cast<const ScAccessibleSpreadsheet*>(mxParent.get());
+		if (pSheet)
+		{
+			return pSheet->IsScAddrFormulaSel(maCellAddress);
+		}
+		return sal_False;
+	}
+//-----IAccessibility2 Implementation 2009
 	sal_Bool bResult(sal_False);
 	if (mpViewShell && mpViewShell->GetViewData())
 	{
@@ -363,6 +401,12 @@ ScDocument* ScAccessibleCell::GetDocumen
 
 ::std::auto_ptr< SvxEditSource > ScAccessibleCell::CreateEditSource(ScTabViewShell* pViewShell, ScAddress aCell, ScSplitPos eSplitPos)
 {
+//IAccessibility2 Implementation 2009-----
+	if (IsFormulaMode())
+	{
+		return ::std::auto_ptr< SvxEditSource >();
+	}
+//-----IAccessibility2 Implementation 2009
 	::std::auto_ptr < ScAccessibleTextData > pAccessibleCellTextData
         ( new ScAccessibleCellTextData( pViewShell, aCell, eSplitPos, this ) );
 	::std::auto_ptr< SvxEditSource > pEditSource (new ScAccessibilityEditSource(pAccessibleCellTextData));
@@ -453,3 +497,146 @@ void ScAccessibleCell::AddRelation(const
 		pRelationSet->AddRelation(aRelation);
 	}
 }
+//IAccessibility2 Implementation 2009-----
+::rtl::OUString ReplaceOneChar(::rtl::OUString oldOUString, ::rtl::OUString replacedChar, ::rtl::OUString replaceStr)
+{
+	int iReplace = -1;
+	iReplace = oldOUString.lastIndexOf(replacedChar);
+	if (iReplace > -1)
+	{
+		for(;iReplace>-1;)
+		{
+			oldOUString = oldOUString.replaceAt(iReplace,1, replaceStr);
+			iReplace=oldOUString.lastIndexOf(replacedChar,iReplace);
+		}
+	}
+	return oldOUString;
+}
+::rtl::OUString ReplaceFourChar(::rtl::OUString oldOUString)
+{
+	oldOUString = ReplaceOneChar(oldOUString,::rtl::OUString::createFromAscii("\\"),::rtl::OUString::createFromAscii("\\\\"));
+	oldOUString = ReplaceOneChar(oldOUString,::rtl::OUString::createFromAscii(";"),::rtl::OUString::createFromAscii("\\;"));
+	oldOUString = ReplaceOneChar(oldOUString,::rtl::OUString::createFromAscii("="),::rtl::OUString::createFromAscii("\\="));
+	oldOUString = ReplaceOneChar(oldOUString,::rtl::OUString::createFromAscii(","),::rtl::OUString::createFromAscii("\\,"));
+	oldOUString = ReplaceOneChar(oldOUString,::rtl::OUString::createFromAscii(":"),::rtl::OUString::createFromAscii("\\:"));
+	return oldOUString;
+}
+
+uno::Any SAL_CALL ScAccessibleCell::getExtendedAttributes() 
+		throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) 
+{
+	uno::Any strRet;
+	if (mpViewShell)
+	{
+		const ::rtl::OUString strAttr(::rtl::OUString::createFromAscii(":"));
+		const ::rtl::OUString strSplit(::rtl::OUString::createFromAscii(";"));
+		::rtl::OUString strFor = mpViewShell->GetFormula(maCellAddress) ;
+		strFor = strFor.replaceAt(0,1,::rtl::OUString::createFromAscii(""));
+		strFor = ReplaceFourChar(strFor);
+		strFor =::rtl::OUString::createFromAscii("Formula:") + strFor;		
+		strFor +=strSplit; 
+		strFor +=::rtl::OUString::createFromAscii("Note:");
+		strFor +=ReplaceFourChar(GetAllDisplayNote());		
+		strFor +=strSplit; 
+		strFor += getShadowAttrs();//the string returned contains the spliter ";"
+		strFor += getBorderAttrs();//the string returned contains the spliter ";"
+		//end of cell attributes
+		if( mpDoc )
+		{
+			strFor += ::rtl::OUString::createFromAscii("isdropdown:");			
+			if( IsDropdown() ) 
+				strFor+= ::rtl::OUString::createFromAscii("true");
+			else
+				strFor+= ::rtl::OUString::createFromAscii("false");
+			strFor += ::rtl::OUString::createFromAscii(";");
+		}
+		strRet <<= strFor ;
+	}	
+	return strRet;
+}
+
+// cell has its own ParaIndent property, so when calling character attributes on cell, the ParaIndent should replace the ParaLeftMargin if its value is not zero.
+uno::Sequence< beans::PropertyValue > SAL_CALL ScAccessibleCell::getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRequestedAttributes ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+{
+	uno::Sequence< beans::PropertyValue > aAttribs = AccessibleStaticTextBase::getCharacterAttributes( nIndex, aRequestedAttributes );
+	beans::PropertyValue *pAttribs = aAttribs.getArray();
+
+	sal_uInt16 nParaIndent = static_cast< const SfxUInt16Item* >( mpDoc->GetAttr( maCellAddress.Col(), maCellAddress.Row(), maCellAddress.Tab(), ATTR_INDENT ) )->GetValue();
+	if (nParaIndent > 0)
+	{
+		::rtl::OUString sLeftMarginName (::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaLeftMargin")));		
+		for (int i = 0; i < aAttribs.getLength(); ++i)
+		{
+			if (sLeftMarginName == pAttribs[i].Name)
+			{
+				pAttribs[i].Value = uno::makeAny( nParaIndent );
+				break;
+			}
+		}
+	}
+	return aAttribs;
+}
+
+sal_Bool ScAccessibleCell::IsFormulaMode()
+{
+	ScAccessibleSpreadsheet* pSheet =static_cast<ScAccessibleSpreadsheet*>(mxParent.get());
+	if (pSheet)
+	{
+		return pSheet->IsFormulaMode();
+	}
+	return sal_False;	
+}
+sal_Bool ScAccessibleCell::IsDropdown()
+{	
+	sal_uInt16 nPosX = maCellAddress.Col();
+	sal_uInt16 nPosY = sal_uInt16(maCellAddress.Row());
+	sal_uInt16 nTab = maCellAddress.Tab();
+	//IAccessibility2 Implementation 2009-----
+	sal_uInt32 nValidation = static_cast< const SfxUInt32Item* >( mpDoc->GetAttr( nPosX, nPosY, nTab, ATTR_VALIDDATA ) )->GetValue();
+    if( nValidation )
+    {
+        const ScValidationData* pData = mpDoc->GetValidationEntry( nValidation );
+        if( pData && pData->HasSelectionList() )
+            return sal_True;
+    }
+	//-----IAccessibility2 Implementation 2009
+	ScMergeFlagAttr* pAttr;
+	pAttr = (ScMergeFlagAttr*)mpDoc->GetAttr( nPosX, nPosY, nTab, ATTR_MERGE_FLAG );
+	if( pAttr->HasAutoFilter() )
+	{
+		return sal_True;	
+	}
+	else
+	{
+		sal_uInt16 nTabCount = mpDoc->GetTableCount();
+		if ( nTab+1<nTabCount && mpDoc->IsScenario(nTab+1) && !mpDoc->IsScenario(nTab) )
+		{
+			sal_uInt16 i;
+			ScMarkData aMarks;
+			for (i=nTab+1; i<nTabCount && mpDoc->IsScenario(i); i++)
+				mpDoc->MarkScenario( i, nTab, aMarks, sal_False, SC_SCENARIO_SHOWFRAME );
+			ScRangeList aRanges;
+			aMarks.FillRangeListWithMarks( &aRanges, sal_False );
+			sal_Bool bHasScenario;
+			sal_uInt16 nRangeCount = (sal_uInt16)aRanges.Count();
+			for (i=0; i<nRangeCount; i++)
+			{
+				ScRange aRange = *aRanges.GetObject(i);
+				mpDoc->ExtendTotalMerge( aRange );
+				sal_Bool bTextBelow = ( aRange.aStart.Row() == 0 );
+				// MT IA2: Not used: sal_Bool bIsInScen = sal_False;
+				if ( bTextBelow )
+				{
+					bHasScenario = (aRange.aStart.Col() == nPosX && aRange.aEnd.Row() == nPosY-1);
+				}
+				else
+				{
+					bHasScenario = (aRange.aStart.Col() == nPosX && aRange.aStart.Row() == nPosY+1);
+				}
+				if( bHasScenario ) return sal_True;
+			}
+		}
+	}
+	return sal_False;
+}
+//-----IAccessibility2 Implementation 2009

Modified: openoffice/branches/ia2/main/sc/source/ui/Accessibility/AccessibleCellBase.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/sc/source/ui/Accessibility/AccessibleCellBase.cxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/sc/source/ui/Accessibility/AccessibleCellBase.cxx (original)
+++ openoffice/branches/ia2/main/sc/source/ui/Accessibility/AccessibleCellBase.cxx Fri Sep 27 03:21:44 2013
@@ -38,7 +38,10 @@
 #include "sc.hrc"
 #endif
 #include "unonames.hxx"
-
+//IAccessibility2 Implementation 2009-----
+#include "detfunc.hxx"
+#include "chgtrack.hxx"
+//-----IAccessibility2 Implementation 2009
 #ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLEROLE_HPP_
 #include <com/sun/star/accessibility/AccessibleRole.hpp>
 #endif
@@ -52,6 +55,11 @@
 #include <rtl/uuid.h>
 #include <comphelper/sequence.hxx>
 #include <sfx2/objsh.hxx>
+//IAccessibility2 Implementation 2009-----
+#include <com/sun/star/sheet/XSheetAnnotation.hpp>
+#include <com/sun/star/sheet/XSheetAnnotationAnchor.hpp>
+#include <com/sun/star/text/XSimpleText.hpp>
+//-----IAccessibility2 Implementation 2009
 
 #include <float.h>
 
@@ -226,17 +234,20 @@ sal_Int32
     ScAccessibleCellBase::createAccessibleName(void)
     throw (uno::RuntimeException)
 {
-	String sName( ScResId(STR_ACC_CELL_NAME) );
+//IAccessibility2 Implementation 2009-----
+	//String sName( ScResId(STR_ACC_CELL_NAME) );
 	String sAddress;
 	// Document not needed, because only the cell address, but not the tablename is needed
 	// always us OOO notation
 	maCellAddress.Format( sAddress, SCA_VALID, NULL );
-	sName.SearchAndReplaceAscii("%1", sAddress);
+	//sName.SearchAndReplaceAscii("%1", sAddress);
     /*  #i65103# ZoomText merges cell address and contents, e.g. if value 2 is
         contained in cell A1, ZT reads "cell A twelve" instead of "cell A1 - 2".
         Simple solution: Append a space character to the cell address. */
-    sName.Append( ' ' );
-    return rtl::OUString(sName);
+    //sName.Append( ' ' );
+    //return rtl::OUString(sName);
+    return rtl::OUString(sAddress);
+//-----IAccessibility2 Implementation 2009
 }
 
 	//=====  XAccessibleValue  ================================================
@@ -249,8 +260,14 @@ uno::Any SAL_CALL
     IsObjectValid();
 	uno::Any aAny;
 	if (mpDoc)
-		aAny <<= mpDoc->GetValue(maCellAddress);
-
+//IAccessibility2 Implementation 2009-----
+		//aAny <<= mpDoc->GetValue(maCellAddress);
+	{
+		String valStr;
+		mpDoc->GetString(maCellAddress.Col(),maCellAddress.Row(),maCellAddress.Tab(), valStr);
+		aAny <<= rtl::OUString(valStr);
+	}
+//-----IAccessibility2 Implementation 2009
 	return aAny;
 }
 
@@ -339,3 +356,305 @@ sal_Bool ScAccessibleCellBase::IsEditabl
 		bEditable = sal_True;
 	return bEditable;
 }
+//IAccessibility2 Implementation 2009-----
+::rtl::OUString SAL_CALL ScAccessibleCellBase::GetNote(void)
+								throw (::com::sun::star::uno::RuntimeException)
+{
+	ScUnoGuard aGuard;
+    IsObjectValid();
+    rtl::OUString msNote;
+    if (mpDoc)
+    {
+        SfxObjectShell* pObjSh = mpDoc->GetDocumentShell();
+        if ( pObjSh )
+        {
+            uno::Reference <sheet::XSpreadsheetDocument> xSpreadDoc( pObjSh->GetModel(), uno::UNO_QUERY );
+            if ( xSpreadDoc.is() )
+            {
+                uno::Reference<sheet::XSpreadsheets> xSheets = xSpreadDoc->getSheets();
+                uno::Reference<container::XIndexAccess> xIndex( xSheets, uno::UNO_QUERY );
+                if ( xIndex.is() )
+                {
+                    uno::Any aTable = xIndex->getByIndex(maCellAddress.Tab());
+                    uno::Reference<sheet::XSpreadsheet> xTable;
+                    if (aTable>>=xTable)
+                    {
+                        uno::Reference<table::XCell> xCell = xTable->getCellByPosition(maCellAddress.Col(), maCellAddress.Row());
+                        if (xCell.is())
+                        {
+							uno::Reference <sheet::XSheetAnnotationAnchor> xAnnotationAnchor ( xCell, uno::UNO_QUERY);
+							if(xAnnotationAnchor.is())
+							{
+								uno::Reference <sheet::XSheetAnnotation> xSheetAnnotation = xAnnotationAnchor->getAnnotation();
+								if (xSheetAnnotation.is())
+								{
+									uno::Reference <text::XSimpleText> xText (xSheetAnnotation, uno::UNO_QUERY);
+									if (xText.is())
+									{
+										msNote = xText->getString();
+									}
+								}
+							}
+                        }
+                    }
+                }
+            }
+        }
+    }
+	return msNote;
+}
+#ifndef _COM_SUN_STAR_TABLE_SHADOWFORMAT_HPP_
+#include <com/sun/star/table/ShadowFormat.hpp>
+#endif
+::rtl::OUString SAL_CALL ScAccessibleCellBase::getShadowAttrs(void)
+										throw (::com::sun::star::uno::RuntimeException)
+{
+	ScUnoGuard aGuard;
+	IsObjectValid();
+	table::ShadowFormat aShadowFmt;
+	if (mpDoc)
+	{
+		SfxObjectShell* pObjSh = mpDoc->GetDocumentShell();
+		if ( pObjSh )
+		{
+			uno::Reference <sheet::XSpreadsheetDocument> xSpreadDoc( pObjSh->GetModel(), uno::UNO_QUERY );
+			if ( xSpreadDoc.is() )
+			{
+				uno::Reference<sheet::XSpreadsheets> xSheets = xSpreadDoc->getSheets();
+				uno::Reference<container::XIndexAccess> xIndex( xSheets, uno::UNO_QUERY );
+				if ( xIndex.is() )
+				{
+					uno::Any aTable = xIndex->getByIndex(maCellAddress.Tab());
+					uno::Reference<sheet::XSpreadsheet> xTable;
+					if (aTable>>=xTable)
+					{
+						uno::Reference<table::XCell> xCell = xTable->getCellByPosition(maCellAddress.Col(), maCellAddress.Row());
+						if (xCell.is())
+						{
+							uno::Reference<beans::XPropertySet> xCellProps(xCell, uno::UNO_QUERY);
+							if (xCellProps.is())
+							{
+								uno::Any aAny = xCellProps->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SC_UNONAME_SHADOW)));
+								aAny >>= aShadowFmt;
+							}
+						}
+					}
+				}
+			}
+		}
+	}
+	//construct shadow attributes string
+	rtl::OUString sShadowAttrs( RTL_CONSTASCII_USTRINGPARAM("Shadow:") );
+	rtl::OUString sInnerSplit( RTL_CONSTASCII_USTRINGPARAM(",") );
+	rtl::OUString sOuterSplit( RTL_CONSTASCII_USTRINGPARAM(";") );
+	sal_Int32 nLocationVal = 0;
+	switch( aShadowFmt.Location )
+	{
+	case table::ShadowLocation_TOP_LEFT:
+		nLocationVal = 1;
+		break;
+	case table::ShadowLocation_TOP_RIGHT:
+		nLocationVal = 2;
+		break;
+	case table::ShadowLocation_BOTTOM_LEFT:
+		nLocationVal = 3;
+		break;
+	case table::ShadowLocation_BOTTOM_RIGHT:
+		nLocationVal = 4;
+		break;
+	default:
+		break;
+	}
+	//if there is no shadow property for the cell
+	if ( nLocationVal == 0 )
+	{
+		sShadowAttrs += sOuterSplit;
+		return sShadowAttrs;
+	}
+	//else return all the shadow properties
+	sShadowAttrs += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Location=") );
+	sShadowAttrs += rtl::OUString::valueOf( (sal_Int32)nLocationVal );
+	sShadowAttrs += sInnerSplit;
+	sShadowAttrs += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ShadowWidth=") );
+	sShadowAttrs += rtl::OUString::valueOf( (sal_Int32)aShadowFmt.ShadowWidth ) ;
+	sShadowAttrs += sInnerSplit;
+	sShadowAttrs += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("IsTransparent=") );
+	sShadowAttrs += rtl::OUString::valueOf( (sal_Bool)aShadowFmt.IsTransparent ) ;
+	sShadowAttrs += sInnerSplit;
+	sShadowAttrs += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Color=") );
+	sShadowAttrs += rtl::OUString::valueOf( (sal_Int32)aShadowFmt.Color );
+	sShadowAttrs += sOuterSplit;
+	return sShadowAttrs;
+}
+#ifndef _COM_SUN_STAR_TABLE_BORDERLINE_HPP_
+#include <com/sun/star/table/BorderLine.hpp>
+#endif
+::rtl::OUString SAL_CALL ScAccessibleCellBase::getBorderAttrs(void) 
+										throw (::com::sun::star::uno::RuntimeException)
+{
+	ScUnoGuard aGuard;
+	IsObjectValid();
+	table::BorderLine aTopBorder;
+	table::BorderLine aBottomBorder;
+	table::BorderLine aLeftBorder;
+	table::BorderLine aRightBorder;
+	if (mpDoc)
+	{
+		SfxObjectShell* pObjSh = mpDoc->GetDocumentShell();
+		if ( pObjSh )
+		{
+			uno::Reference <sheet::XSpreadsheetDocument> xSpreadDoc( pObjSh->GetModel(), uno::UNO_QUERY );
+			if ( xSpreadDoc.is() )
+			{
+				uno::Reference<sheet::XSpreadsheets> xSheets = xSpreadDoc->getSheets();
+				uno::Reference<container::XIndexAccess> xIndex( xSheets, uno::UNO_QUERY );
+				if ( xIndex.is() )
+				{
+					uno::Any aTable = xIndex->getByIndex(maCellAddress.Tab());
+					uno::Reference<sheet::XSpreadsheet> xTable;
+					if (aTable>>=xTable)
+					{
+						uno::Reference<table::XCell> xCell = xTable->getCellByPosition(maCellAddress.Col(), maCellAddress.Row());
+						if (xCell.is())
+						{
+							uno::Reference<beans::XPropertySet> xCellProps(xCell, uno::UNO_QUERY);
+							if (xCellProps.is())
+							{
+								uno::Any aAny = xCellProps->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SC_UNONAME_TOPBORDER)));
+								aAny >>= aTopBorder;
+								aAny = xCellProps->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SC_UNONAME_BOTTBORDER)));
+								aAny >>= aBottomBorder;
+								aAny = xCellProps->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SC_UNONAME_LEFTBORDER)));
+								aAny >>= aLeftBorder;
+								aAny = xCellProps->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SC_UNONAME_RIGHTBORDER)));
+								aAny >>= aRightBorder;
+							}
+						}
+					}
+				}
+			}
+		}
+	}
+
+	Color aColor;
+	sal_Bool bIn = mpDoc ? mpDoc->IsCellInChangeTrack(maCellAddress,&aColor) : sal_False;
+	if (bIn)
+	{
+		aTopBorder.Color = aColor.GetColor();
+		aBottomBorder.Color = aColor.GetColor();
+		aLeftBorder.Color = aColor.GetColor();
+		aRightBorder.Color = aColor.GetColor();
+		aTopBorder.OuterLineWidth =2;
+		aBottomBorder.OuterLineWidth =2;
+		aLeftBorder.OuterLineWidth =2;
+		aRightBorder.OuterLineWidth =2;
+	}
+
+	//construct border attributes string
+	rtl::OUString sBorderAttrs;
+	rtl::OUString sInnerSplit( RTL_CONSTASCII_USTRINGPARAM(",") );
+	rtl::OUString sOuterSplit( RTL_CONSTASCII_USTRINGPARAM(";") );
+	//top border
+	//if top of the cell has no border
+	if ( aTopBorder.InnerLineWidth == 0 && aTopBorder.OuterLineWidth == 0 )
+	{
+		sBorderAttrs += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("TopBorder:;") );
+	}
+	else//add all the border properties to the return string.
+	{
+		sBorderAttrs += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("TopBorder:Color=") );
+		sBorderAttrs += rtl::OUString::valueOf( (sal_Int32)aTopBorder.Color );
+		sBorderAttrs += sInnerSplit;
+		sBorderAttrs += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("InnerLineWidth=") );
+		sBorderAttrs += rtl::OUString::valueOf( (sal_Int32)aTopBorder.InnerLineWidth );
+		sBorderAttrs += sInnerSplit;
+		sBorderAttrs += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("OuterLineWidth=") );
+		sBorderAttrs += rtl::OUString::valueOf( (sal_Int32)aTopBorder.OuterLineWidth );
+		sBorderAttrs += sInnerSplit;
+		sBorderAttrs += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("LineDistance=") );
+		sBorderAttrs += rtl::OUString::valueOf( (sal_Int32)aTopBorder.LineDistance );
+		sBorderAttrs += sOuterSplit;
+	}
+	//bottom border
+	if ( aBottomBorder.InnerLineWidth == 0 && aBottomBorder.OuterLineWidth == 0 )
+	{
+		sBorderAttrs += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("BottomBorde:;") );
+	}
+	else
+	{
+		sBorderAttrs += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("BottomBorder:Color=") );
+		sBorderAttrs += rtl::OUString::valueOf( (sal_Int32)aBottomBorder.Color );
+		sBorderAttrs += sInnerSplit;
+		sBorderAttrs += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("InnerLineWidth=") );
+		sBorderAttrs += rtl::OUString::valueOf( (sal_Int32)aBottomBorder.InnerLineWidth );
+		sBorderAttrs += sInnerSplit;
+		sBorderAttrs += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("OuterLineWidth=") );
+		sBorderAttrs += rtl::OUString::valueOf( (sal_Int32)aBottomBorder.OuterLineWidth );
+		sBorderAttrs += sInnerSplit;
+		sBorderAttrs += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("LineDistance=") );
+		sBorderAttrs += rtl::OUString::valueOf( (sal_Int32)aBottomBorder.LineDistance );
+		sBorderAttrs += sOuterSplit;
+	}
+	//left border
+	if ( aLeftBorder.InnerLineWidth == 0 && aLeftBorder.OuterLineWidth == 0 )
+	{
+		sBorderAttrs += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("LeftBorder:;") );
+	}
+	else
+	{
+		sBorderAttrs += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("LeftBorder:Color=") );
+		sBorderAttrs += rtl::OUString::valueOf( (sal_Int32)aLeftBorder.Color );
+		sBorderAttrs += sInnerSplit;
+		sBorderAttrs += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("InnerLineWidth=") );
+		sBorderAttrs += rtl::OUString::valueOf( (sal_Int32)aLeftBorder.InnerLineWidth );
+		sBorderAttrs += sInnerSplit;
+		sBorderAttrs += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("OuterLineWidth=") );
+		sBorderAttrs += rtl::OUString::valueOf( (sal_Int32)aLeftBorder.OuterLineWidth );
+		sBorderAttrs += sInnerSplit;
+		sBorderAttrs += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("LineDistance=") );
+		sBorderAttrs += rtl::OUString::valueOf( (sal_Int32)aLeftBorder.LineDistance );
+		sBorderAttrs += sOuterSplit;
+	}
+	//right border
+	if ( aRightBorder.InnerLineWidth == 0 && aRightBorder.OuterLineWidth == 0 )
+	{
+		sBorderAttrs += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightBorder:;") );
+	}
+	else
+	{
+		sBorderAttrs += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightBorder:Color=") );
+		sBorderAttrs += rtl::OUString::valueOf( (sal_Int32)aRightBorder.Color );
+		sBorderAttrs += sInnerSplit;
+		sBorderAttrs += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("InnerLineWidth=") );
+		sBorderAttrs += rtl::OUString::valueOf( (sal_Int32)aRightBorder.InnerLineWidth );
+		sBorderAttrs += sInnerSplit;
+		sBorderAttrs += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("OuterLineWidth=") );
+		sBorderAttrs += rtl::OUString::valueOf( (sal_Int32)aRightBorder.OuterLineWidth );
+		sBorderAttrs += sInnerSplit;
+		sBorderAttrs += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("LineDistance=") );
+		sBorderAttrs += rtl::OUString::valueOf( (sal_Int32)aRightBorder.LineDistance );
+		sBorderAttrs += sOuterSplit;
+	}
+	return sBorderAttrs;
+}
+//end of cell attributes
+
+::rtl::OUString SAL_CALL ScAccessibleCellBase::GetAllDisplayNote(void)
+	throw (::com::sun::star::uno::RuntimeException)
+{
+	::rtl::OUString strNote;
+	String strTrackText;
+	if (mpDoc)
+	{
+		sal_Bool bLeftedge=sal_False;
+		mpDoc->GetCellChangeTrackNote(maCellAddress,strTrackText,bLeftedge);
+	}	
+	if (strTrackText.Len() > 0 )
+	{
+		ScDetectiveFunc::AppendChangTrackNoteSeparator(strTrackText);
+		strNote = strTrackText;
+	}
+	strNote += GetNote();
+	return strNote;
+}
+//-----IAccessibility2 Implementation 2009

Modified: openoffice/branches/ia2/main/sc/source/ui/Accessibility/AccessibleDataPilotControl.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/sc/source/ui/Accessibility/AccessibleDataPilotControl.cxx?rev=1526782&r1=1526781&r2=1526782&view=diff
==============================================================================
--- openoffice/branches/ia2/main/sc/source/ui/Accessibility/AccessibleDataPilotControl.cxx (original)
+++ openoffice/branches/ia2/main/sc/source/ui/Accessibility/AccessibleDataPilotControl.cxx Fri Sep 27 03:21:44 2013
@@ -31,17 +31,32 @@
 #include <com/sun/star/accessibility/AccessibleStateType.hpp>
 #include <com/sun/star/accessibility/AccessibleEventId.hpp>
 
+//IAccessibility2 Implementation 2009-----
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+#include <comphelper/accessiblekeybindinghelper.hxx>
+#include <com/sun/star/awt/KeyModifier.hpp>
+#include <vcl/keycodes.hxx>
+//-----IAccessibility2 Implementation 2009
+#ifndef _UTL_ACCESSIBLESTATESETHELPER_HXX
 #include <unotools/accessiblestatesethelper.hxx>
+#endif
 #include <rtl/uuid.h>
 #include <tools/gen.hxx>
 #include <toolkit/helper/convert.hxx>
 #include <tools/debug.hxx>
 
+//IAccessibility2 Implementation 2009-----
+#include <com/sun/star/accessibility/AccessibleRelationType.hpp>
+#include <unotools/accessiblerelationsethelper.hxx>
+//-----IAccessibility2 Implementation 2009
 using namespace	::com::sun::star;
 using namespace	::com::sun::star::accessibility;
 
 class ScAccessibleDataPilotButton
 	:	public ScAccessibleContextBase
+//IAccessibility2 Implementation 2009-----
+	, public ::com::sun::star::accessibility::XAccessibleAction
+//-----IAccessibility2 Implementation 2009
 {
 public:
 	//=====  internal  ========================================================
@@ -63,6 +78,19 @@ public:
 protected:
 	virtual ~ScAccessibleDataPilotButton(void);
 public:
+//IAccessibility2 Implementation 2009-----
+	// XAccessibleAction
+	virtual sal_Int32 SAL_CALL getAccessibleActionCount( ) throw (::com::sun::star::uno::RuntimeException);
+	virtual sal_Bool SAL_CALL doAccessibleAction ( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+	virtual ::rtl::OUString SAL_CALL getAccessibleActionDescription ( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+	virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleKeyBinding > SAL_CALL getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+	///=====  XInterface  =====================================================
+	virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( 
+		::com::sun::star::uno::Type const & rType ) 
+		throw (::com::sun::star::uno::RuntimeException);
+	virtual void SAL_CALL acquire() throw ();
+	virtual void SAL_CALL release() throw ();
+//-----IAccessibility2 Implementation 2009
 	///=====  XAccessibleComponent  ============================================
 
     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
@@ -104,7 +132,10 @@ public:
             ::com::sun::star::accessibility::XAccessibleStateSet> SAL_CALL
     	getAccessibleStateSet(void)
         throw (::com::sun::star::uno::RuntimeException);
-
+//IAccessibility2 Implementation 2009-----
+	::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > 
+		SAL_CALL getAccessibleRelationSet(	) throw (::com::sun::star::uno::RuntimeException);
+//-----IAccessibility2 Implementation 2009
 	///=====  XServiceInfo  ====================================================
 
     /**	Returns an identifier for the implementation of this object.
@@ -296,6 +327,10 @@ void ScAccessibleDataPilotControl::GotFo
     {
         DBG_ASSERT(mpFieldWindow->GetFieldCount() == maChildren.size(), "did not recognize a child count change");
 
+//IAccessibility2 Implementation 2009-----
+		if(maChildren.size()==0)
+			return ;
+//-----IAccessibility2 Implementation 2009
         sal_Int32 nIndex(mpFieldWindow->GetSelectedIndex());
         uno::Reference < XAccessible > xTempAcc = maChildren[nIndex].xWeakAcc;
         if (xTempAcc.is() && maChildren[nIndex].pAcc)
@@ -308,7 +343,10 @@ void ScAccessibleDataPilotControl::LostF
     if (mpFieldWindow)
     {
         DBG_ASSERT(mpFieldWindow->GetFieldCount() == maChildren.size(), "did not recognize a child count change");
-
+//IAccessibility2 Implementation 2009-----
+		if(maChildren.size()==0)
+			return ;
+//-----IAccessibility2 Implementation 2009
         sal_Int32 nIndex(mpFieldWindow->GetSelectedIndex());
         uno::Reference < XAccessible > xTempAcc = maChildren[nIndex].xWeakAcc;
         if (xTempAcc.is() && maChildren[nIndex].pAcc)
@@ -518,7 +556,11 @@ ScAccessibleDataPilotButton::ScAccessibl
         ::com::sun::star::accessibility::XAccessible>& rxParent,
         ScPivotFieldWindow* pFieldWindow,
         sal_Int32 nIndex)
-    : ScAccessibleContextBase(rxParent, AccessibleRole::PUSH_BUTTON),
+//IAccessibility2 Implementation 2009-----
+//change role frome PUSH_BUTTON to BUTTON_MENU
+    //: ScAccessibleContextBase(rxParent, AccessibleRole::PUSH_BUTTON),
+    : ScAccessibleContextBase(rxParent, AccessibleRole::BUTTON_MENU),
+//-----IAccessibility2 Implementation 2009
     mpFieldWindow(pFieldWindow),
     mnIndex(nIndex)
 {
@@ -657,7 +699,23 @@ uno::Reference<XAccessibleStateSet> SAL_
 
     return pStateSet;
 }
+//IAccessibility2 Implementation 2009-----
+::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > 
+	SAL_CALL ScAccessibleDataPilotButton::getAccessibleRelationSet(	) throw (::com::sun::star::uno::RuntimeException)
+{
+	utl::AccessibleRelationSetHelper* pRelationSetHelper = new utl::AccessibleRelationSetHelper;
+	uno::Reference< accessibility::XAccessibleRelationSet > xSet = pRelationSetHelper;
+	if(mxParent.is())
+	{
+		uno::Sequence< uno::Reference< uno::XInterface > > aSequence(1);
+		aSequence[0] = mxParent;
+		pRelationSetHelper->AddRelation( accessibility::AccessibleRelation( accessibility::AccessibleRelationType::MEMBER_OF, aSequence ) );
+	}
+
+	return xSet;
 
+}
+//-----IAccessibility2 Implementation 2009
 	///=====  XServiceInfo  ====================================================
 
 ::rtl::OUString SAL_CALL ScAccessibleDataPilotButton::getImplementationName(void)
@@ -685,6 +743,10 @@ uno::Sequence<sal_Int8> SAL_CALL ScAcces
 ::rtl::OUString SAL_CALL ScAccessibleDataPilotButton::createAccessibleDescription(void)
         throw (::com::sun::star::uno::RuntimeException)
 {
+//IAccessibility2 Implementation 2009-----
+	 if (mpFieldWindow)
+        return mpFieldWindow->GetHelpText();
+//-----IAccessibility2 Implementation 2009
     return rtl::OUString();
 }
 
@@ -721,3 +783,67 @@ Rectangle ScAccessibleDataPilotButton::G
     else
         return Rectangle();
 }
+//IAccessibility2 Implementation 2009-----
+// -----------------------------------------------------------------------------
+// XAccessibleAction
+// -----------------------------------------------------------------------------
+sal_Int32 ScAccessibleDataPilotButton::getAccessibleActionCount( ) throw (uno::RuntimeException)
+{
+	return 1;
+}
+// -----------------------------------------------------------------------------
+sal_Bool ScAccessibleDataPilotButton::doAccessibleAction ( sal_Int32 nIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+{
+	if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+        throw lang::IndexOutOfBoundsException();
+	return sal_True;
+}
+// -----------------------------------------------------------------------------
+::rtl::OUString ScAccessibleDataPilotButton::getAccessibleActionDescription ( sal_Int32 nIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
+{
+	if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+        throw lang::IndexOutOfBoundsException();
+	return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(  "press" ) );
+}
+// -----------------------------------------------------------------------------
+::com::sun::star::uno::Reference< XAccessibleKeyBinding > ScAccessibleDataPilotButton::getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+{
+    if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+		throw lang::IndexOutOfBoundsException();
+	  comphelper::OAccessibleKeyBindingHelper* pKeyBindingHelper = new comphelper::OAccessibleKeyBindingHelper();
+    ::com::sun::star::uno::Reference< XAccessibleKeyBinding > xKeyBinding = pKeyBindingHelper;
+    ScPivotFieldWindow* pWindow = mpFieldWindow;
+    if ( pWindow )
+    {
+        awt::KeyStroke aKeyStroke;
+        aKeyStroke.Modifiers = 0;
+        aKeyStroke.KeyCode = KEY_SPACE;
+        pKeyBindingHelper->AddKeyBinding( aKeyStroke );
+    }
+    return xKeyBinding;
+}
+//=====  XInterface  =====================================================
+uno::Any SAL_CALL ScAccessibleDataPilotButton::queryInterface( uno::Type const & rType )
+	throw (::com::sun::star::uno::RuntimeException)
+{
+	uno::Any aAny (ScAccessibleContextBase::queryInterface(rType));
+	if(!aAny.hasValue())
+	{
+	  aAny = ::cppu::queryInterface (rType,
+            static_cast<XAccessibleAction*>(this)
+            );
+	}
+    return aAny;
+}
+void SAL_CALL ScAccessibleDataPilotButton::acquire() 
+	throw ()
+{
+	ScAccessibleContextBase::acquire();
+}
+void SAL_CALL ScAccessibleDataPilotButton::release()
+	throw ()
+{
+	ScAccessibleContextBase::release();
+}
+//-----IAccessibility2 Implementation 2009
+



Mime
View raw message