openoffice-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From stev...@apache.org
Subject svn commit: r1541847 [7/18] - in /openoffice/trunk: ./ main/accessibility/inc/accessibility/extended/ main/accessibility/inc/accessibility/helper/ main/accessibility/inc/accessibility/standard/ main/accessibility/source/extended/ main/accessibility/sou...
Date Thu, 14 Nov 2013 08:18:14 GMT
Modified: openoffice/trunk/main/sc/source/ui/Accessibility/AccessibleText.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/Accessibility/AccessibleText.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/Accessibility/AccessibleText.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/Accessibility/AccessibleText.cxx Thu Nov 14 08:18:05 2013
@@ -1058,8 +1058,10 @@ ScDocShell* ScAccessibleCellTextData::Ge
 
 
 // ============================================================================
-
-ScAccessibleEditObjectTextData::ScAccessibleEditObjectTextData(EditView* pEditView, Window* pWin)
+//IAccessibility2 Implementation 2009-----
+//ScAccessibleEditObjectTextData::ScAccessibleEditObjectTextData(EditView* pEditView, Window* pWin)
+ScAccessibleEditObjectTextData::ScAccessibleEditObjectTextData(EditView* pEditView, Window* pWin, sal_Bool isClone)
+//-----IAccessibility2 Implementation 2009
 	:
 	mpViewForwarder(NULL),
 	mpEditViewForwarder(NULL),
@@ -1068,13 +1070,22 @@ ScAccessibleEditObjectTextData::ScAccess
     mpForwarder(NULL),
     mpWindow(pWin)
 {
-    if (mpEditEngine)
+//IAccessibility2 Implementation 2009-----
+	// Solution: If the object is cloned, do NOT add notify hdl.
+	mbIsCloned = isClone;
+    //if (mpEditEngine)
+    if (mpEditEngine && !mbIsCloned)
+//-----IAccessibility2 Implementation 2009
         mpEditEngine->SetNotifyHdl( LINK(this, ScAccessibleEditObjectTextData, NotifyHdl) );
 }
 
 ScAccessibleEditObjectTextData::~ScAccessibleEditObjectTextData()
 {
-    if (mpEditEngine)
+//IAccessibility2 Implementation 2009-----
+	// Solution: If the object is cloned, do NOT set notify hdl.
+    //if (mpEditEngine)
+    if (mpEditEngine && !mbIsCloned)
+//-----IAccessibility2 Implementation 2009
         mpEditEngine->SetNotifyHdl(Link());
 	if (mpViewForwarder)
 		delete mpViewForwarder;
@@ -1106,7 +1117,11 @@ void ScAccessibleEditObjectTextData::Not
 
 ScAccessibleTextData* ScAccessibleEditObjectTextData::Clone() const
 {
-	return new ScAccessibleEditObjectTextData(mpEditView, mpWindow);
+//IAccessibility2 Implementation 2009-----
+	// Solution: Add para to indicate the object is cloned
+	//return new ScAccessibleEditObjectTextData(mpEditView, mpWindow);
+	return new ScAccessibleEditObjectTextData(mpEditView, mpWindow,sal_True);
+//-----IAccessibility2 Implementation 2009
 }
 
 SvxTextForwarder* ScAccessibleEditObjectTextData::GetTextForwarder()
@@ -1115,7 +1130,11 @@ SvxTextForwarder* ScAccessibleEditObject
 	{
         if (!mpEditEngine)
             mpEditEngine = mpEditView->GetEditEngine();
-        if (mpEditEngine && !mpEditEngine->GetNotifyHdl().IsSet())
+//IAccessibility2 Implementation 2009-----
+			// Solution: If the object is cloned, do NOT add notify hdl.
+        //if (mpEditEngine && !mpEditEngine->GetNotifyHdl().IsSet())
+	if (mpEditEngine && !mpEditEngine->GetNotifyHdl().IsSet()&&!mbIsCloned)
+//-----IAccessibility2 Implementation 2009
             mpEditEngine->SetNotifyHdl( LINK(this, ScAccessibleEditObjectTextData, NotifyHdl) );
         if(!mpForwarder)
             mpForwarder = new SvxEditEngineForwarder(*mpEditEngine);

Modified: openoffice/trunk/main/sc/source/ui/dbgui/dbnamdlg.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/dbgui/dbnamdlg.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/dbgui/dbnamdlg.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/dbgui/dbnamdlg.cxx Thu Nov 14 08:18:05 2013
@@ -180,6 +180,11 @@ ScDbNameDlg::ScDbNameDlg( SfxBindings* p
 						aBtnDoSize, aBtnKeepFmt, aBtnStripData, theCurArea );
 	Init();
 	FreeResource();
+	//IAccessibility2 Implementation 2009-----
+	SynFocusTimer.SetTimeout(150);
+	SynFocusTimer.SetTimeoutHdl(LINK( this, ScDbNameDlg, FocusToComoboxHdl));
+	SynFocusTimer.Start();
+	//-----IAccessibility2 Implementation 2009
 	aRbAssign.SetAccessibleRelationMemberOf(&aFlAssign);
 }
 
@@ -716,8 +721,37 @@ IMPL_LINK( ScDbNameDlg, AssModifyHdl, vo
 	String aText = aEdAssign.GetText();
 	if ( aTmpRange.ParseAny( aText, pDoc, aAddrDetails ) & SCA_VALID )
 		theCurArea = aTmpRange;
-
+//IAccessibility2 Implementation 2009-----
+    if( aText.Len() > 0 && aEdName.GetText().Len() > 0 )
+    {
+		aBtnAdd.Enable();
+		aBtnHeader.Enable();
+		aBtnDoSize.Enable();
+		aBtnKeepFmt.Enable();
+		aBtnStripData.Enable();
+		aFTSource.Enable();
+		aFTOperations.Enable();
+    }
+    else
+    {
+		aBtnAdd.Disable();
+		aBtnHeader.Disable();
+		aBtnDoSize.Disable();
+		aBtnKeepFmt.Disable();
+		aBtnStripData.Disable();
+		aFTSource.Disable();
+		aFTOperations.Disable();
+    }
+//-----IAccessibility2 Implementation 2009
 	return 0;
 }
 
-
+//IAccessibility2 Implementation 2009-----
+IMPL_LINK( ScDbNameDlg, FocusToComoboxHdl, Timer*, pTi)
+{	
+	(void)pTi;
+	// CallEventListeners is still protected - figure out if we need to make it public, or if the focus stuff can be handled better in VCL directly. First see what AT is expecting...
+	// aEdName.CallEventListeners( VCLEVENT_CONTROL_GETFOCUS );
+	return 0;
+}
+//-----IAccessibility2 Implementation 2009

Modified: openoffice/trunk/main/sc/source/ui/docshell/docsh.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/docshell/docsh.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/docshell/docsh.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/docshell/docsh.cxx Thu Nov 14 08:18:05 2013
@@ -121,6 +121,9 @@
 
 #include "docsh.hxx"
 #include "docshimp.hxx"
+//IAccessibility2 Implementation 2009-----
+#include <sfx2/viewfrm.hxx>
+//-----IAccessibility2 Implementation 2009
 #include <rtl/logfile.hxx>
 
 #include <comphelper/processfactory.hxx>
@@ -1587,6 +1590,23 @@ sal_Bool __EXPORT ScDocShell::SaveAs( Sf
 
     PrepareSaveGuard aPrepareGuard( *this);
 
+//IAccessibility2 Implementation 2009-----
+	aDocument.setDocAccTitle(String());
+	// SfxViewFrame* pFrame1 = SfxViewFrame::GetFirst( this, TYPE(SfxTopViewFrame));
+	SfxViewFrame* pFrame1 = SfxViewFrame::GetFirst( this );
+	if (pFrame1)
+	{
+		Window* pWindow = &pFrame1->GetWindow();
+		if ( pWindow )
+		{
+			Window* pSysWin = pWindow->GetSystemWindow();
+			if ( pSysWin )
+			{
+				pSysWin->SetAccessibleName(String());
+			}
+		}
+	}
+//-----IAccessibility2 Implementation 2009
 	//	wait cursor is handled with progress bar
     sal_Bool bRet = SfxObjectShell::SaveAs( rMedium );
 	if( bRet )

Modified: openoffice/trunk/main/sc/source/ui/drawfunc/fudraw.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/drawfunc/fudraw.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/drawfunc/fudraw.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/drawfunc/fudraw.cxx Thu Nov 14 08:18:05 2013
@@ -354,10 +354,16 @@ sal_Bool __EXPORT FuDraw::KeyInput(const
 					// changeover to the next object
 					if(!pView->MarkNextObj( !aCode.IsShift() ))
 					{
+//IAccessibility2 Implementation 2009-----
+						//If there is only one object, don't do the UnmarkAlllObj() & MarkNextObj(). 
+						if ( pView->GetMarkableObjCount() > 1 && pView->HasMarkableObj() )
+						{
+//-----IAccessibility2 Implementation 2009
 						// #97016# No next object: go over open end and
 						// get first from the other side
 						pView->UnmarkAllObj();
 						pView->MarkNextObj(!aCode.IsShift());
+						}
 					}
 
 					// #97016# II

Modified: openoffice/trunk/main/sc/source/ui/inc/AccessibleCell.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/inc/AccessibleCell.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/inc/AccessibleCell.hxx (original)
+++ openoffice/trunk/main/sc/source/ui/inc/AccessibleCell.hxx Thu Nov 14 08:18:05 2013
@@ -32,17 +32,28 @@
 #include <unotools/accessiblerelationsethelper.hxx>
 #include <editeng/AccessibleStaticTextBase.hxx>
 #include <comphelper/uno3.hxx>
+//IAccessibility2 Implementation 2009-----
+#ifndef _COM_SUN_STAR_ACCESSIBILITY_XAccessibleExtendedAttributes_HPP_
+#include <com/sun/star/accessibility/XAccessibleExtendedAttributes.hpp>
+#endif
+//-----IAccessibility2 Implementation 2009
 
 class ScTabViewShell;
 class ScAccessibleDocument;
 
+typedef cppu::ImplHelper1< ::com::sun::star::accessibility::XAccessibleExtendedAttributes>
+					ScAccessibleCellAttributeImpl;
+
 /**	@descr
         This base class provides an implementation of the
         <code>AccessibleCell</code> service.
 */
 class ScAccessibleCell
 	:	public	ScAccessibleCellBase,
-        public  accessibility::AccessibleStaticTextBase
+        public  accessibility::AccessibleStaticTextBase,
+//IAccessibility2 Implementation 2009-----
+		public  ScAccessibleCellAttributeImpl
+//-----IAccessibility2 Implementation 2009
 {
 public:
 	//=====  internal  ========================================================
@@ -134,6 +145,14 @@ public:
     	getSupportedServiceNames(void)
         throw (::com::sun::star::uno::RuntimeException);
 
+//IAccessibility2 Implementation 2009-----
+    virtual ::com::sun::star::uno::Any SAL_CALL getExtendedAttributes() 
+		throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) ;
+
+	// Override this method to handle cell's ParaIndent attribute specially.
+    virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRequestedAttributes ) 
+		throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+//-----IAccessibility2 Implementation 2009
 private:
 	ScTabViewShell* mpViewShell;
     ScAccessibleDocument* mpAccDoc;
@@ -163,6 +182,10 @@ private:
 	void AddRelation(const ScRange& rRange,
 		const sal_uInt16 aRelationType,
 		::utl::AccessibleRelationSetHelper* pRelationSet);
+//IAccessibility2 Implementation 2009-----
+	sal_Bool IsFormulaMode();
+	sal_Bool IsDropdown();
+//-----IAccessibility2 Implementation 2009
 };
 
 

Modified: openoffice/trunk/main/sc/source/ui/inc/AccessibleCellBase.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/inc/AccessibleCellBase.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/inc/AccessibleCellBase.hxx (original)
+++ openoffice/trunk/main/sc/source/ui/inc/AccessibleCellBase.hxx Thu Nov 14 08:18:05 2013
@@ -142,6 +142,21 @@ private:
 	virtual sal_Bool IsEditable(
 		const com::sun::star::uno::Reference<
 		::com::sun::star::accessibility::XAccessibleStateSet>& rxParentStates);
+//IAccessibility2 Implementation 2009-----
+protected:
+	virtual ::rtl::OUString SAL_CALL GetNote(void)
+        throw (::com::sun::star::uno::RuntimeException);
+
+	virtual ::rtl::OUString SAL_CALL GetAllDisplayNote(void)
+        throw (::com::sun::star::uno::RuntimeException);
+	virtual ::rtl::OUString SAL_CALL getShadowAttrs(void) 
+		throw (::com::sun::star::uno::RuntimeException);
+	virtual ::rtl::OUString SAL_CALL getBorderAttrs(void) 
+		throw (::com::sun::star::uno::RuntimeException);
+public:
+	const ScAddress& GetCellAddress() const { return maCellAddress; }
+	sal_Bool IsCellInChangeTrack(const ScAddress &cell,Color *pColCellBoder);
+//-----IAccessibility2 Implementation 2009
 };
 	
 

Modified: openoffice/trunk/main/sc/source/ui/inc/AccessibleDocument.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/inc/AccessibleDocument.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/inc/AccessibleDocument.hxx (original)
+++ openoffice/trunk/main/sc/source/ui/inc/AccessibleDocument.hxx Thu Nov 14 08:18:05 2013
@@ -29,7 +29,12 @@
 #include "viewdata.hxx"
 #include <com/sun/star/accessibility/XAccessibleSelection.hpp>
 #include <com/sun/star/view/XSelectionChangeListener.hpp>
-#include <cppuhelper/implbase2.hxx>
+//IAccessibility2 Implementation 2009-----
+//#include <cppuhelper/implbase2.hxx>
+#include <cppuhelper/implbase3.hxx>
+#include <com/sun/star/accessibility/XAccessibleExtendedAttributes.hpp>
+#include <com/sun/star/accessibility/XAccessibleGetAccFlowTo.hpp>
+//-----IAccessibility2 Implementation 2009
 #include <svx/IAccessibleViewForwarder.hxx>
 
 class ScTabViewShell;
@@ -51,13 +56,19 @@ namespace utl
         <code>AccessibleContext</code> service.
 */
 
-typedef cppu::ImplHelper2< ::com::sun::star::accessibility::XAccessibleSelection,
+//IAccessibility2 Implementation 2009-----
+typedef cppu::ImplHelper3< ::com::sun::star::accessibility::XAccessibleSelection,
+							::com::sun::star::accessibility::XAccessibleExtendedAttributes,
+//-----IAccessibility2 Implementation 2009
 							::com::sun::star::view::XSelectionChangeListener >
 					ScAccessibleDocumentImpl;
 
 class ScAccessibleDocument
 	:	public ScAccessibleDocumentBase,
 		public ScAccessibleDocumentImpl,
+//IAccessibility2 Implementation 2009-----
+	       public com::sun::star::accessibility::XAccessibleGetAccFlowTo,
+//-----IAccessibility2 Implementation 2009
         public accessibility::IAccessibleViewForwarder
 {
 public:
@@ -124,6 +135,14 @@ public:
     	getAccessibleStateSet(void)
         throw (::com::sun::star::uno::RuntimeException);
 
+//IAccessibility2 Implementation 2009-----
+	virtual ::rtl::OUString SAL_CALL
+		getAccessibleName(void)
+		throw (::com::sun::star::uno::RuntimeException);
+
+	virtual ::com::sun::star::uno::Any SAL_CALL getExtendedAttributes() 
+		throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) ;
+//-----IAccessibility2 Implementation 2009
 	///=====  XAccessibleSelection  ===========================================
 
     virtual void SAL_CALL 
@@ -318,6 +337,24 @@ private:
     rtl::OUString GetCurrentCellDescription() const;
 
     Rectangle GetVisibleArea_Impl() const;
+//IAccessibility2 Implementation 2009-----
+    com::sun::star::uno::Sequence< com::sun::star::uno::Any > GetScAccFlowToSequence();
+public:
+	ScDocument *GetDocument() const ;
+	ScAddress   GetCurCellAddress() const;
+	//=====  XAccessibleGetAccFromXShape  ============================================
+	::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >
+		SAL_CALL get_AccFlowTo(const ::com::sun::star::uno::Any& rAny, sal_Int32 nType)
+		throw ( ::com::sun::star::uno::RuntimeException );
+	
+	 virtual sal_Int32 SAL_CALL getForeground(  ) 
+        throw (::com::sun::star::uno::RuntimeException);
+
+    virtual sal_Int32 SAL_CALL getBackground(  ) 
+        throw (::com::sun::star::uno::RuntimeException);
+protected:
+	void SwitchViewFireFocus();
+//-----IAccessibility2 Implementation 2009
 };
 
 

Modified: openoffice/trunk/main/sc/source/ui/inc/AccessibleDocumentBase.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/inc/AccessibleDocumentBase.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/inc/AccessibleDocumentBase.hxx (original)
+++ openoffice/trunk/main/sc/source/ui/inc/AccessibleDocumentBase.hxx Thu Nov 14 08:18:05 2013
@@ -37,6 +37,9 @@ public:
 	ScAccessibleDocumentBase(
         const ::com::sun::star::uno::Reference<
         ::com::sun::star::accessibility::XAccessible>& rxParent);
+//IAccessibility2 Implementation 2009-----
+	virtual void SwitchViewFireFocus();
+//-----IAccessibility2 Implementation 2009
 protected:
 	virtual ~ScAccessibleDocumentBase	(void);
 };

Modified: openoffice/trunk/main/sc/source/ui/inc/AccessibleDocumentPagePreview.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/inc/AccessibleDocumentPagePreview.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/inc/AccessibleDocumentPagePreview.hxx (original)
+++ openoffice/trunk/main/sc/source/ui/inc/AccessibleDocumentPagePreview.hxx Thu Nov 14 08:18:05 2013
@@ -85,6 +85,10 @@ public:
     	getAccessibleStateSet(void)
         throw (::com::sun::star::uno::RuntimeException);
 
+//IAccessibility2 Implementation 2009-----
+	virtual ::rtl::OUString SAL_CALL getAccessibleName(void)
+		throw (::com::sun::star::uno::RuntimeException);
+//-----IAccessibility2 Implementation 2009
 	///=====  XServiceInfo  ====================================================
 
     /**	Returns an identifier for the implementation of this object.

Modified: openoffice/trunk/main/sc/source/ui/inc/AccessibleEditObject.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/inc/AccessibleEditObject.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/inc/AccessibleEditObject.hxx (original)
+++ openoffice/trunk/main/sc/source/ui/inc/AccessibleEditObject.hxx Thu Nov 14 08:18:05 2013
@@ -27,6 +27,10 @@
 
 #include "AccessibleContextBase.hxx"
 
+//IAccessibility2 Implementation 2009-----
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+#include "global.hxx"
+//-----IAccessibility2 Implementation 2009
 namespace accessibility
 {
     class AccessibleTextHelper;
@@ -46,7 +50,10 @@ enum EditObjectType
         <code>AccessibleCell</code> service.
 */
 class ScAccessibleEditObject
-	:	public	ScAccessibleContextBase
+	:	public	ScAccessibleContextBase,
+//IAccessibility2 Implementation 2009-----
+        public ::com::sun::star::accessibility::XAccessibleSelection 
+//-----IAccessibility2 Implementation 2009
 {
 public:
 	//=====  internal  ========================================================
@@ -71,7 +78,17 @@ public:
     virtual void LostFocus();
 
     virtual void GotFocus();
+//IAccessibility2 Implementation 2009-----
+///=====  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 >
@@ -110,6 +127,32 @@ public:
     	getAccessibleStateSet(void)
         throw (::com::sun::star::uno::RuntimeException);
 
+	//=====  XAccessibleSelection  ============================================
+		
+		virtual void SAL_CALL selectAccessibleChild( 
+			sal_Int32 nChildIndex ) 
+			throw ( ::com::sun::star::lang::IndexOutOfBoundsException, 
+			::com::sun::star::uno::RuntimeException );
+		virtual sal_Bool SAL_CALL isAccessibleChildSelected( 
+			sal_Int32 nChildIndex ) 
+			throw ( ::com::sun::star::lang::IndexOutOfBoundsException, 
+			::com::sun::star::uno::RuntimeException );
+		virtual void SAL_CALL clearAccessibleSelection(  ) 
+			throw ( ::com::sun::star::uno::RuntimeException );
+		virtual void SAL_CALL selectAllAccessibleChildren(  ) 
+			throw ( ::com::sun::star::uno::RuntimeException );
+		virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount(  ) 
+			throw ( ::com::sun::star::uno::RuntimeException );
+		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( 
+			sal_Int32 nSelectedChildIndex ) 
+			throw ( ::com::sun::star::lang::IndexOutOfBoundsException, 
+			::com::sun::star::uno::RuntimeException);
+		virtual void SAL_CALL deselectAccessibleChild( 
+			sal_Int32 nSelectedChildIndex ) 
+			throw ( ::com::sun::star::lang::IndexOutOfBoundsException, 
+			::com::sun::star::uno::RuntimeException );
+    virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet(  ) throw (::com::sun::star::uno::RuntimeException);
+//-----IAccessibility2 Implementation 2009
 protected:
     ///	Return this object's description.
 	virtual ::rtl::OUString SAL_CALL
@@ -168,6 +211,20 @@ private:
 		::com::sun::star::accessibility::XAccessibleStateSet>& rxParentStates);
 
 	void CreateTextHelper();
+//IAccessibility2 Implementation 2009-----
+	ScDocument *m_pScDoc;
+	ScAddress m_curCellAddress;
+
+
+	///=====  XAccessibleComponent  ============================================
+    virtual sal_Int32 SAL_CALL getForeground(  ) 
+        throw (::com::sun::star::uno::RuntimeException);
+
+    virtual sal_Int32 SAL_CALL getBackground(  ) 
+        throw (::com::sun::star::uno::RuntimeException);
+
+	sal_Int32 GetFgBgColor(  const rtl::OUString &strPropColor) ;
+//-----IAccessibility2 Implementation 2009
 };
 
 

Modified: openoffice/trunk/main/sc/source/ui/inc/AccessibleSpreadsheet.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/inc/AccessibleSpreadsheet.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/inc/AccessibleSpreadsheet.hxx (original)
+++ openoffice/trunk/main/sc/source/ui/inc/AccessibleSpreadsheet.hxx Thu Nov 14 08:18:05 2013
@@ -30,6 +30,10 @@
 
 #include <vector>
 
+//IAccessibility2 Implementation 2009-----
+#include "rangelst.hxx"
+#include <map>
+//-----IAccessibility2 Implementation 2009
 class ScMyAddress : public ScAddress
 {
 public:
@@ -239,6 +243,17 @@ public:
         	const ::com::sun::star::uno::Reference<
                 ::com::sun::star::accessibility::XAccessibleEventListener>& xListener)
         throw (com::sun::star::uno::RuntimeException);
+//IAccessibility2 Implementation 2009-----
+	//=====  XAccessibleTableSelection  ============================================
+	virtual sal_Bool SAL_CALL selectRow( sal_Int32 row ) 
+		throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) ;
+    virtual sal_Bool SAL_CALL selectColumn( sal_Int32 column ) 
+		throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) ;
+    virtual sal_Bool SAL_CALL unselectRow( sal_Int32 row ) 
+		throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) ;
+    virtual sal_Bool SAL_CALL unselectColumn( sal_Int32 column ) 
+		throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) ;
+//-----IAccessibility2 Implementation 2009
 
 protected:
     ///	Return the object's current bounding box relative to the desktop.
@@ -279,6 +294,55 @@ private:
 	ScDocument* GetDocument(ScTabViewShell* pViewShell);
 	Rectangle	GetVisArea(ScTabViewShell* pViewShell, ScSplitPos eSplitPos);
 	Rectangle	GetVisCells(const Rectangle& rVisArea);
+//IAccessibility2 Implementation 2009-----
+	//void CreateSortedMarkedCells();
+	//void AddMarkedRange(const ScRange& rRange);
+	typedef std::vector<ScMyAddress> VEC_MYADDR;
+
+	typedef std::map<ScMyAddress,com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > > 
+		MAP_ADDR_XACC;
+	MAP_ADDR_XACC m_mapSelectionSend;
+	void RemoveSelection(ScMarkData &refScMarkData);
+	sal_Bool IsSameMarkCell();
+	void CommitFocusCell(const ScAddress &aNewCell);
+public:
+	void FireFirstCellFocus();
+private:
+	sal_Bool m_bFormulaMode;
+	sal_Bool m_bFormulaLastMode;
+	ScAddress m_aFormulaActiveCell;
+	MAP_ADDR_XACC m_mapFormulaSelectionSend;
+	VEC_MYADDR m_vecFormulaLastMyAddr;
+    ScAccessibleCell*   m_pAccFormulaCell;
+	sal_uInt16 m_nMinX;
+	sal_uInt16 m_nMaxX;
+	sal_Int32 m_nMinY;
+	sal_Int32 m_nMaxY;
+	sal_Int32 GetRowAll() const { return m_nMaxY - m_nMinY + 1 ; }
+	sal_uInt16  GetColAll() const { return m_nMaxX - m_nMinX + 1; }
+	void NotifyRefMode();
+	void RemoveFormulaSelection(sal_Bool bRemoveAll =sal_False);
+	sal_Bool CheckChildIndex(sal_Int32)const ;
+	ScAddress GetChildIndexAddress(sal_Int32) const;
+    sal_Int32 GetAccessibleIndexFormula( sal_Int32 nRow, sal_Int32 nColumn );
+	sal_Bool GetFormulaCurrentFocusCell(ScAddress &addr);
+public:
+	sal_Bool IsScAddrFormulaSel (const ScAddress &addr) const ;
+	sal_Bool IsFormulaMode() ;
+	::com::sun::star::uno::Reference < ::com::sun::star::accessibility::XAccessible > GetActiveCell();
+	ScRange m_aLastWithInMarkRange;
+    String m_strCurCellValue;
+    ScRangeList m_LastMarkedRanges;
+    typedef std::vector<ScRange*> VEC_RANGE;
+    VEC_RANGE m_vecTempRange;
+    typedef std::pair<sal_uInt16,sal_uInt16> PAIR_COL;
+    typedef std::vector<PAIR_COL> VEC_COL;
+    VEC_COL m_vecTempCol;
+    ScMyAddress CalcScAddressFromRangeList(ScRangeList *pMarkedRanges,sal_Int32 nSelectedChildIndex);
+	sal_Bool CalcScRangeDifferenceMax(ScRange *pSrc,ScRange *pDest,int nMax,VEC_MYADDR &vecRet,int &nSize);
+	sal_Bool CalcScRangeListDifferenceMax(ScRangeList *pSrc,ScRangeList *pDest,int nMax,VEC_MYADDR &vecRet);
+	String m_strOldTabName;
+//-----IAccessibility2 Implementation 2009
 };
 
 

Modified: openoffice/trunk/main/sc/source/ui/inc/AccessibleTableBase.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/inc/AccessibleTableBase.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/inc/AccessibleTableBase.hxx (original)
+++ openoffice/trunk/main/sc/source/ui/inc/AccessibleTableBase.hxx Thu Nov 14 08:18:05 2013
@@ -30,6 +30,9 @@
 #include "address.hxx"
 #include <com/sun/star/accessibility/XAccessibleTable.hpp>
 #include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+//IAccessibility2 Implementation 2009-----
+#include <com/sun/star/accessibility/XAccessibleTableSelection.hpp>
+//-----IAccessibility2 Implementation 2009
 #include <cppuhelper/implbase2.hxx>
 
 class ScTabViewShell;
@@ -45,6 +48,9 @@ typedef cppu::ImplHelper2< ::com::sun::s
 
 class ScAccessibleTableBase :
 			public ScAccessibleContextBase,
+//IAccessibility2 Implementation 2009-----
+			public	 ::com::sun::star::accessibility::XAccessibleTableSelection,
+//-----IAccessibility2 Implementation 2009
 			public ScAccessibleTableBaseImpl
 {
 public:
@@ -199,6 +205,16 @@ public:
     	getAccessibleChild(sal_Int32 nIndex)
         throw (::com::sun::star::uno::RuntimeException,
 				::com::sun::star::lang::IndexOutOfBoundsException);
+//IAccessibility2 Implementation 2009-----
+	virtual sal_Bool SAL_CALL selectRow( sal_Int32 row ) 
+		throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) ;
+    virtual sal_Bool SAL_CALL selectColumn( sal_Int32 column ) 
+		throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) ;
+    virtual sal_Bool SAL_CALL unselectRow( sal_Int32 row ) 
+		throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) ;
+    virtual sal_Bool SAL_CALL unselectColumn( sal_Int32 column ) 
+		throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) ;
+//-----IAccessibility2 Implementation 2009
 
 protected:
     ///	Return this object's description.

Modified: openoffice/trunk/main/sc/source/ui/inc/AccessibleText.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/inc/AccessibleText.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/inc/AccessibleText.hxx (original)
+++ openoffice/trunk/main/sc/source/ui/inc/AccessibleText.hxx Thu Nov 14 08:18:05 2013
@@ -132,7 +132,11 @@ private:
 class ScAccessibleEditObjectTextData : public ScAccessibleTextData
 {
 public:
-						ScAccessibleEditObjectTextData(EditView* pEditView, Window* pWin);
+//IAccessibility2 Implementation 2009-----
+	// Solution: Add a para to indicate whether the object is cloned
+						//ScAccessibleEditObjectTextData(EditView* pEditView, Window* pWin);
+						ScAccessibleEditObjectTextData(EditView* pEditView, Window* pWin, sal_Bool isClone=sal_False);
+//-----IAccessibility2 Implementation 2009
 	virtual				~ScAccessibleEditObjectTextData();
 
 	virtual	ScAccessibleTextData* Clone() const;
@@ -155,6 +159,9 @@ protected:
     EditEngine* mpEditEngine;
     SvxEditEngineForwarder*	mpForwarder;
     Window* mpWindow;
+//IAccessibility2 Implementation 2009-----
+    sal_Bool mbIsCloned;
+//-----IAccessibility2 Implementation 2009
 };
 
 

Modified: openoffice/trunk/main/sc/source/ui/inc/content.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/inc/content.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/inc/content.hxx (original)
+++ openoffice/trunk/main/sc/source/ui/inc/content.hxx Thu Nov 14 08:18:05 2013
@@ -34,6 +34,9 @@ class ScNavigatorSettings;
 class ScDocument;
 class ScDocShell;
 class ScAreaLink;
+//IAccessibility2 Implementation 2009-----
+class SdrPage;
+//-----IAccessibility2 Implementation 2009
 
 #define SC_CONTENT_ROOT			0
 #define SC_CONTENT_TABLE		1
@@ -64,6 +67,10 @@ class ScContentTree : public SvTreeListB
 	String				aHiddenName;		// URL zum Laden
 	String				aHiddenTitle;		// fuer Anzeige
 	ScDocument*			pHiddenDocument;	// temporaer
+//IAccessibility2 Implementation 2009-----
+    sal_Bool                           bisInNavigatoeDlg;
+	String 				sKeyString;
+//-----IAccessibility2 Implementation 2009
 
 	sal_uInt16				pPosList[SC_CONTENT_COUNT];		// fuer die Reihenfolge
 
@@ -112,7 +119,12 @@ class ScContentTree : public SvTreeListB
 
     DECL_LINK( ContentDoubleClickHdl, ScContentTree* );
 	DECL_STATIC_LINK( ScContentTree, ExecDragHdl, void* );
+//IAccessibility2 Implementation 2009-----
+public:
+	SvLBoxEntry* pTmpEntry;
 
+	bool m_bFirstPaint;
+//-----IAccessibility2 Implementation 2009
 protected:
 //	virtual sal_Bool	Drop( const DropEvent& rEvt );
 //	virtual sal_Bool	QueryDrop( DropEvent& rEvt );
@@ -126,11 +138,21 @@ protected:
 
 	virtual void	Command( const CommandEvent& rCEvt );
 	virtual void	RequestHelp( const HelpEvent& rHEvt );
-
+//IAccessibility2 Implementation 2009-----
+	virtual void 	InitEntry(SvLBoxEntry*,const XubString&,const Image&,const Image&, SvLBoxButtonKind);
+//-----IAccessibility2 Implementation 2009
 public:
 			ScContentTree( Window* pParent, const ResId& rResId );
 			~ScContentTree();
 
+//IAccessibility2 Implementation 2009-----
+    String			getAltLongDescText( SvLBoxEntry* pEntry , sal_Bool isAltText) const;
+    String  		GetEntryAltText( SvLBoxEntry* pEntry ) const;
+    String  		GetEntryLongDescription( SvLBoxEntry* pEntry ) const;
+
+	void     ObjectFresh( sal_uInt16 nType,SvLBoxEntry* pEntry = NULL);
+	sal_Bool     SetNavigatorDlgFlag(sal_Bool isInNavigatoeDlg){ return bisInNavigatoeDlg=isInNavigatoeDlg;};
+//-----IAccessibility2 Implementation 2009
     virtual void    MouseButtonDown( const MouseEvent& rMEvt );
     virtual void    KeyInput( const KeyEvent& rKEvt );
 

Modified: openoffice/trunk/main/sc/source/ui/inc/dbnamdlg.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/inc/dbnamdlg.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/inc/dbnamdlg.hxx (original)
+++ openoffice/trunk/main/sc/source/ui/inc/dbnamdlg.hxx Thu Nov 14 08:18:05 2013
@@ -100,6 +100,10 @@ private:
 	ScDBCollection	aLocalDbCol;
 	ScRange			theCurArea;
 	List			aRemoveList;
+	//IAccessibility2 Implementation 2009-----
+	Timer		SynFocusTimer;
+	DECL_LINK( FocusToComoboxHdl, Timer* );
+	//-----IAccessibility2 Implementation 2009
 
 #ifdef _DBNAMDLG_CXX
 private:

Modified: openoffice/trunk/main/sc/source/ui/inc/docsh.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/inc/docsh.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/inc/docsh.hxx (original)
+++ openoffice/trunk/main/sc/source/ui/inc/docsh.hxx Thu Nov 14 08:18:05 2013
@@ -406,6 +406,14 @@ public:
 
     const ScOptSolverSave* GetSolverSaveData() const    { return pSolverSaveData; }     // may be null
     void            SetSolverSaveData( const ScOptSolverSave& rData );
+
+//IAccessibility2 Implementation 2009-----
+	virtual void setDocAccTitle( const String& rTitle ) { aDocument.setDocAccTitle( rTitle ); }
+	virtual const String getDocAccTitle() const { return aDocument.getDocAccTitle(); }
+	void setDocReadOnly( sal_Bool b){ aDocument.setDocReadOnly(b);}
+	sal_Bool getDocReadOnly() const { return aDocument.getDocReadOnly(); }
+//-----IAccessibility2 Implementation 2009
+
 	//<!--Added by PengYunQuan for Validity Cell Range Picker
 	sal_Bool		AcceptStateUpdate() const;
 	//-->Added by PengYunQuan for Validity Cell Range Picker

Modified: openoffice/trunk/main/sc/source/ui/inc/drawview.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/inc/drawview.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/inc/drawview.hxx (original)
+++ openoffice/trunk/main/sc/source/ui/inc/drawview.hxx Thu Nov 14 08:18:05 2013
@@ -155,6 +155,11 @@ public:
 	SdrEndTextEditKind	ScEndTextEdit();	// ruft SetDrawTextUndo(0)
 //UNUSED2009-05 void                    CaptionTextDirection(sal_uInt16 nSlot);
     ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::XTransferable > CopyToTransferable();
+//IAccessibility2 Implementation 2009-----
+	SdrObject*  GetObjectByName(const String& rName);
+	sal_Bool           GetObjectIsMarked(  SdrObject * pObject );
+	sal_Bool           SelectCurrentViewObject( const String& rName );
+//-----IAccessibility2 Implementation 2009
 };
 
 

Modified: openoffice/trunk/main/sc/source/ui/inc/gridwin.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/inc/gridwin.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/inc/gridwin.hxx (original)
+++ openoffice/trunk/main/sc/source/ui/inc/gridwin.hxx Thu Nov 14 08:18:05 2013
@@ -239,7 +239,9 @@ private:
 	void			ExecPageFieldSelect( SCCOL nCol, SCROW nRow, sal_Bool bHasSelection, const String& rStr );
 
 	sal_Bool			HasScenarioButton( const Point& rPosPixel, ScRange& rScenRange );
-
+//IAccessibility2 Implementation 2009-----
+	sal_Bool			HasScenarioRange( sal_uInt16 nCol, sal_Int32 nRow, ScRange& rScenRange ); 
+//-----IAccessibility2 Implementation 2009
 	sal_Bool			DropScroll( const Point& rMousePos );
 
 	sal_Int8		AcceptPrivateDrop( const AcceptDropEvent& rEvt );
@@ -388,6 +390,9 @@ public:
 	void			DoInvertRect( const Rectangle& rPixel );
 
 	void			CheckNeedsRepaint();
+//IAccessibility2 Implementation 2009-----
+	virtual void SwitchView();
+//-----IAccessibility2 Implementation 2009
 
     void            UpdateDPFromFieldPopupMenu();
 

Modified: openoffice/trunk/main/sc/source/ui/inc/preview.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/inc/preview.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/inc/preview.hxx (original)
+++ openoffice/trunk/main/sc/source/ui/inc/preview.hxx Thu Nov 14 08:18:05 2013
@@ -158,6 +158,9 @@ public:
 	static void StaticInvalidate();
 
     FmFormView* GetDrawView() { return pDrawView; }
+//IAccessibility2 Implementation 2009-----
+	virtual void SwitchView();
+//-----IAccessibility2 Implementation 2009
 };
 
 

Modified: openoffice/trunk/main/sc/source/ui/inc/scuitphfedit.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/inc/scuitphfedit.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/inc/scuitphfedit.hxx (original)
+++ openoffice/trunk/main/sc/source/ui/inc/scuitphfedit.hxx Thu Nov 14 08:18:05 2013
@@ -91,6 +91,9 @@ private:
 
 	sal_uInt16			nWhich;
 	String			aCmdArr[6];
+	//IAccessibility2 Implementation 2009-----
+	DECL_LINK( ObjectSelectHdl, ScEditWindow* );
+	//-----IAccessibility2 Implementation 2009
 
 private:
 #ifdef _TPHFEDIT_CXX

Modified: openoffice/trunk/main/sc/source/ui/inc/tabview.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/inc/tabview.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/inc/tabview.hxx (original)
+++ openoffice/trunk/main/sc/source/ui/inc/tabview.hxx Thu Nov 14 08:18:05 2013
@@ -472,7 +472,7 @@ public:
                                 sal_Bool bCols = sal_False, sal_Bool bRows = sal_False, sal_Bool bCellSelection = sal_False );
 	void			InitBlockMode( SCCOL nCurX, SCROW nCurY, SCTAB nCurZ,
 									sal_Bool bTestNeg = sal_False,
-									sal_Bool bCols = sal_False, sal_Bool bRows = sal_False );
+									sal_Bool bCols = sal_False, sal_Bool bRows = sal_False, sal_Bool bForceNeg = sal_False );
 	void			InitOwnBlockMode();
 	void			DoneBlockMode( sal_Bool bContinue = sal_False );
 

Modified: openoffice/trunk/main/sc/source/ui/inc/tabvwsh.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/inc/tabvwsh.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/inc/tabvwsh.hxx (original)
+++ openoffice/trunk/main/sc/source/ui/inc/tabvwsh.hxx Thu Nov 14 08:18:05 2013
@@ -161,7 +161,9 @@ private:
 	sal_Bool					bPrintSelected;				// for result of SvxPrtQryBox
 
 	sal_Bool					bReadOnly;					// um Status-Aenderungen zu erkennen
-
+//IAccessibility2 Implementation 2009-----	
+	sal_Bool 					bIsActive;
+//-----IAccessibility2 Implementation 2009
 	SbxObject*				pScSbxObject;
 
 //UNUSED2008-05  sal_Bool                    bChartDlgIsEdit;            // Datenbereich aendern
@@ -423,6 +425,11 @@ public:
     bool    ExecuteRetypePassDlg(ScPasswordHash eDesiredHash);
 
     using ScTabView::ShowCursor;
+//IAccessibility2 Implementation 2009-----
+	sal_Bool IsActive(){ return bIsActive; }
+	rtl::OUString GetFormula(ScAddress& rAddress);
+	const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > & GetForms() const;
+//-----IAccessibility2 Implementation 2009
 };
 
 //==================================================================

Modified: openoffice/trunk/main/sc/source/ui/inc/tphfedit.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/inc/tphfedit.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/inc/tphfedit.hxx (original)
+++ openoffice/trunk/main/sc/source/ui/inc/tphfedit.hxx Thu Nov 14 08:18:05 2013
@@ -78,6 +78,9 @@ public:
 	virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > CreateAccessible();
 
 	inline ScHeaderEditEngine*  GetEditEngine() const {return pEdEngine;}
+	//IAccessibility2 Implementation 2009-----
+	void 			SetObjectSelectHdl( const Link& aLink){ aObjectSelectLink = aLink; };
+	//-----IAccessibility2 Implementation 2009
 protected:
 	virtual void	Paint( const Rectangle& rRec );
 	virtual void	MouseMove( const MouseEvent& rMEvt );
@@ -96,6 +99,11 @@ private:
 
     com::sun::star::uno::WeakReference< ::com::sun::star::accessibility::XAccessible > xAcc;
     ScAccessibleEditObject* pAcc;
+
+	//IAccessibility2 Implementation 2009-----
+    Link				aObjectSelectLink;
+	//-----IAccessibility2 Implementation 2009
+
 };
 
 //===================================================================

Modified: openoffice/trunk/main/sc/source/ui/inc/validate.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/inc/validate.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/inc/validate.hxx (original)
+++ openoffice/trunk/main/sc/source/ui/inc/validate.hxx Thu Nov 14 08:18:05 2013
@@ -93,9 +93,8 @@ class ScValidationDlg :public ScRefHdlrI
 	//<!--Added by PengYunQuan for Validity Cell Range Picker
 	typedef ScRefHdlrImpl<ScValidationDlg, SfxTabDialog, false>	ScValidationDlgBase;
 
-	//Start_Moddify by liliang 03/26/2008 SODC_13677_2
 	DECL_LINK( OkHdl, Button * );
-	//End_Moddify by liliang 03/26/2008 SODC_13677_2
+
 	bool	m_bOwnRefHdlr:1;
 
 	ScTabViewShell *m_pTabVwSh;

Modified: openoffice/trunk/main/sc/source/ui/inc/viewfunc.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/inc/viewfunc.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/inc/viewfunc.hxx (original)
+++ openoffice/trunk/main/sc/source/ui/inc/viewfunc.hxx Thu Nov 14 08:18:05 2013
@@ -251,8 +251,11 @@ public:
 	ScAutoFormatData* CreateAutoFormatData();
 	void			AutoFormat( sal_uInt16 nFormatNo, sal_Bool bRecord = sal_True );
 
-	void			SearchAndReplace( const SvxSearchItem* pSearchItem,
+//IAccessibility2 Implementation 2009-----
+//	void			SearchAndReplace( const SvxSearchItem* pSearchItem,
+	sal_Bool			SearchAndReplace( const SvxSearchItem* pSearchItem,
 										sal_Bool bAddUndo, sal_Bool bIsApi );
+//-----IAccessibility2 Implementation 2009
 
 	void			Solve( const ScSolveParam& rParam );
 	void			TabOp( const ScTabOpParam& rParam,  sal_Bool bRecord = sal_True );

Modified: openoffice/trunk/main/sc/source/ui/miscdlgs/highred.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/miscdlgs/highred.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/miscdlgs/highred.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/miscdlgs/highred.cxx Thu Nov 14 08:18:05 2013
@@ -105,6 +105,7 @@ ScHighlightChgDlg::ScHighlightChgDlg( Sf
 
 	Init();
 
+	aFilterCtr.SetAccessibleRelationMemberOf(&aFlFilter);
 }
 
 ScHighlightChgDlg::~ScHighlightChgDlg()
@@ -257,6 +258,9 @@ IMPL_LINK( ScHighlightChgDlg, RefHandle,
 		aEdAssign.Show();
 		aRbAssign.Show();
 		aEdAssign.SetText(aFilterCtr.GetRange());
+		//IAccessibility2 Implementation 2009-----
+		aEdAssign.GrabFocus();
+		//-----IAccessibility2 Implementation 2009
 		ScAnyRefDlg::RefInputStart(&aEdAssign,&aRbAssign);
 	}
 	return 0;

Modified: openoffice/trunk/main/sc/source/ui/miscdlgs/solveroptions.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/miscdlgs/solveroptions.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/miscdlgs/solveroptions.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/miscdlgs/solveroptions.cxx Thu Nov 14 08:18:05 2013
@@ -84,10 +84,34 @@ public:
 
     void      SetDoubleValue( double fNew ) { mbIsDouble = true; mfDoubleValue = fNew; }
     void      SetIntValue( sal_Int32 nNew ) { mbIsDouble = false; mnIntValue = nNew; }
-
+	//IAccessibility2 Implementation 2009-----
+// MT: Commented out SV_ITEM_ID_EXTENDRLBOXSTRING and GetExtendText() in svlbitem.hxx - needed?
+//	virtual USHORT IsA() {return SV_ITEM_ID_EXTENDRLBOXSTRING;}
+//	virtual XubString GetExtendText() const;
+	//-----IAccessibility2 Implementation 2009
     virtual void Paint( const Point& rPos, SvLBox& rDev, sal_uInt16 nFlags, SvLBoxEntry* pEntry );
 };
 
+//IAccessibility2 Implementation 2009-----
+// MT: Commented out SV_ITEM_ID_EXTENDRLBOXSTRING and GetExtendText() in svlbitem.hxx - needed?
+/*
+XubString ScSolverOptionsString::GetExtendText() const
+{
+	String aNormalStr( GetText() );
+	aNormalStr.Append( (sal_Unicode) ':' );
+	String sTxt( ' ' );
+    if ( mbIsDouble )
+        sTxt += (String)rtl::math::doubleToUString( mfDoubleValue,
+            rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
+            ScGlobal::GetpLocaleData()->getNumDecimalSep().GetChar(0), true );
+    else
+        sTxt += String::CreateFromInt32( mnIntValue );
+	aNormalStr.Append(sTxt);
+	return aNormalStr;
+}
+*/
+//-----IAccessibility2 Implementation 2009
+
 void ScSolverOptionsString::Paint( const Point& rPos, SvLBox& rDev, sal_uInt16, SvLBoxEntry* /* pEntry */ )
 {
     //! move position? (SvxLinguTabPage: aPos.X() += 20)

Modified: openoffice/trunk/main/sc/source/ui/navipi/content.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/navipi/content.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/navipi/content.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/navipi/content.cxx Thu Nov 14 08:18:05 2013
@@ -64,6 +64,10 @@
 #include "navicfg.hxx"
 #include "navsett.hxx"
 #include "postit.hxx"
+//IAccessibility2 Implementation 2009-----
+#include "tabvwsh.hxx"
+#include "drawview.hxx"
+//-----IAccessibility2 Implementation 2009
 #include "clipparam.hxx"
 
 using namespace com::sun::star;
@@ -126,7 +130,10 @@ ScContentTree::ScContentTree( Window* pP
 	aHCEntryImages	( ScResId( RID_IMAGELIST_H_NAVCONT ) ),
 	nRootType		( SC_CONTENT_ROOT ),
 	bHiddenDoc		( sal_False ),
-	pHiddenDocument	( NULL )
+	pHiddenDocument	( NULL ),
+//IAccessibility2 Implementation 2009-----
+    bisInNavigatoeDlg  ( sal_False )
+//-----IAccessibility2 Implementation 2009
 {
 	sal_uInt16 i;
 	for (i=0; i<SC_CONTENT_COUNT; i++)
@@ -142,12 +149,80 @@ ScContentTree::ScContentTree( Window* pP
 
     SetDoubleClickHdl( LINK( this, ScContentTree, ContentDoubleClickHdl ) );
 
+	//IAccessibility2 Implementation 2009-----
+	pTmpEntry= NULL;
+	m_bFirstPaint=true;
+	//-----IAccessibility2 Implementation 2009
+
     SetStyle( GetStyle() | WB_QUICK_SEARCH );
 }
 
 ScContentTree::~ScContentTree()
 {
 }
+//IAccessibility2 Implementation 2009-----
+// helper function for 	GetEntryAltText and GetEntryLongDescription
+String ScContentTree::getAltLongDescText( SvLBoxEntry* pEntry , sal_Bool isAltText) const
+{
+	SdrObject* pFound = NULL;	
+
+	sal_uInt16 nType;
+	sal_uLong nChild;	
+	GetEntryIndexes( nType, nChild, pEntry );
+	switch( nType )
+	{
+	case SC_CONTENT_OLEOBJECT:
+	case SC_CONTENT_GRAPHIC:
+	case SC_CONTENT_DRAWING:
+		{
+			ScDocument* pDoc = ( const_cast< ScContentTree* >(this) )->GetSourceDocument();
+			SdrIterMode eIter = ( nType == SC_CONTENT_DRAWING ) ? IM_FLAT : IM_DEEPNOGROUPS;
+			ScDrawLayer* pDrawLayer = pDoc->GetDrawLayer();
+			SfxObjectShell* pShell = pDoc->GetDocumentShell();
+			if (pDrawLayer && pShell)
+			{
+				sal_uInt16 nTabCount = pDoc->GetTableCount();
+				for (sal_uInt16 nTab=0; nTab<nTabCount; nTab++)
+				{
+					SdrPage* pPage = pDrawLayer->GetPage(nTab);
+					DBG_ASSERT(pPage,"Page ?");
+					if (pPage)
+					{
+						SdrObjListIter aIter( *pPage, eIter );
+						SdrObject* pObject = aIter.Next();	
+						while (pObject)
+						{
+							if( ScDrawLayer::GetVisibleName( pObject ) == GetEntryText( pEntry ) )
+							{
+								pFound = pObject;
+								break;
+							}
+							pObject = aIter.Next();
+						}
+					}
+				}
+			}
+			 if( pFound )
+			 {
+			 	if( isAltText )
+			 		return pFound->GetTitle();
+				else
+					return pFound->GetDescription();
+			 }
+		}
+		break;
+	}
+	return String();
+}
+String  ScContentTree::GetEntryAltText( SvLBoxEntry* pEntry ) const
+{
+	return getAltLongDescText( pEntry, sal_True );
+}
+String ScContentTree::GetEntryLongDescription( SvLBoxEntry* pEntry ) const
+{
+	return getAltLongDescText( pEntry, sal_False);
+}
+//-----IAccessibility2 Implementation 2009
 
 void ScContentTree::InitRoot( sal_uInt16 nType )
 {
@@ -175,7 +250,17 @@ void ScContentTree::InitRoot( sal_uInt16
 
 void ScContentTree::ClearAll()
 {
+//IAccessibility2 Implementation 2009-----
+    //There are one method in Control::SetUpdateMode(), and one override method SvTreeListBox::SetUpdateMode(). Here although 
+    //SvTreeListBox::SetUpdateMode() is called in refresh method, it only call SvTreeListBox::SetUpdateMode(), not Control::SetUpdateMode(). 
+    //In SvTreeList::Clear(), Broadcast( LISTACTION_CLEARED ) will be called and finally, it will be trapped into the event yield() loop. And 
+    //the InitRoot() method won't be called. Then if a user click or press key to update the navigator tree, crash happens.
+    //So the solution is to disable the UpdateMode of Control, then call Clear(), then recover the update mode
+    sal_Bool bOldUpdate = Control::IsUpdateMode();
+    Control::SetUpdateMode(sal_False);
 	Clear();
+    Control::SetUpdateMode(bOldUpdate);
+//-----IAccessibility2 Implementation 2009
 	for (sal_uInt16 i=1; i<SC_CONTENT_COUNT; i++)
 		InitRoot(i);
 }
@@ -403,10 +488,85 @@ void ScContentTree::KeyInput( const KeyE
             break;
 		}
 	}
-    StoreSettings();
+//IAccessibility2 Implementation 2009-----
+	//Solution: Make KEY_SPACE has same function as DoubleClick 
+	if ( bisInNavigatoeDlg )
+	{
+		if(aCode.GetCode() == KEY_SPACE )
+		{			
+			bUsed = sal_True;
+		    sal_uInt16 nType;
+		    sal_uLong nChild;
+		    SvLBoxEntry* pEntry = GetCurEntry();
+		    GetEntryIndexes( nType, nChild, pEntry );
+		    if( pEntry && (nType != SC_CONTENT_ROOT) && (nChild != SC_CONTENT_NOCHILD) )
+			{
+				if ( bHiddenDoc )
+					return ;				//! spaeter...
+		              String aText( GetEntryText( pEntry ) );
+				sKeyString = aText;
+				if ( aManualDoc.Len() )
+					pParentWindow->SetCurrentDoc( aManualDoc );
+				switch( nType )
+				{
+				    case SC_CONTENT_OLEOBJECT:
+					case SC_CONTENT_GRAPHIC:
+					case SC_CONTENT_DRAWING:
+					{
+						Window* pWindow=(Window*)GetParent(pEntry);
+						ScNavigatorDlg* pScNavigatorDlg = (ScNavigatorDlg*)pWindow;
+						ScTabViewShell* pScTabViewShell = NULL;
+						ScDrawView* pScDrawView = NULL;
+						if (pScNavigatorDlg!=NULL)
+							  pScTabViewShell=pScNavigatorDlg->GetTabViewShell();
+						if(pScTabViewShell !=NULL)
+							  pScDrawView =pScTabViewShell->GetViewData()->GetScDrawView();
+						if(pScDrawView!=NULL)
+						 {
+							pScDrawView->SelectCurrentViewObject(aText );
+							sal_Bool bHasMakredObject = sal_False;
+							SvLBoxEntry* pParent = pRootNodes[nType];
+							SvLBoxEntry* pBeginEntry = NULL;
+							if( pParent )
+								pBeginEntry = FirstChild(pParent);
+							while( pBeginEntry )
+							{
+								String aTempText( GetEntryText( pBeginEntry ) );
+								 if( pScDrawView->GetObjectIsMarked( pScDrawView->GetObjectByName( aTempText ) ) )
+								 {
+									bHasMakredObject = sal_True;
+									break;
+								  }
+								pBeginEntry =  Next( pBeginEntry );
+							}
+							if(  !bHasMakredObject && pScTabViewShell)
+								pScTabViewShell->SetDrawShell(sal_False);
+							ObjectFresh( nType,pEntry );
+						}							 	       					
+					}				
+		            break;
+			     }
+			}
+		   }
+	   }
+    //StoreSettings();
+    //-----IAccessibility2 Implementation 2009
 
     if( !bUsed )
+    //IAccessibility2 Implementation 2009-----
+	{
+		if(aCode.GetCode() == KEY_F5 )
+		{
+			StoreSettings();
 		SvTreeListBox::KeyInput(rKEvt);
+		}
+		else
+		{
+			SvTreeListBox::KeyInput(rKEvt);
+			StoreSettings();
+		}
+	}
+    //-----IAccessibility2 Implementation 2009
 }
 
 //sal_Bool __EXPORT ScContentTree::Drop( const DropEvent& rEvt )
@@ -607,6 +767,56 @@ ScDocument* ScContentTree::GetSourceDocu
 	return NULL;
 }
 
+//IAccessibility2 Implementation 2009-----
+//Solution: move along and draw "*" sign .
+void ScContentTree::ObjectFresh( sal_uInt16 nType,SvLBoxEntry* pEntry )
+{
+	if ( bHiddenDoc && !pHiddenDocument )
+		return;		// anderes Dokument angezeigt
+      if(nType ==SC_CONTENT_GRAPHIC||nType ==SC_CONTENT_OLEOBJECT||nType ==SC_CONTENT_DRAWING)
+      	{
+		SetUpdateMode(sal_False);
+		ClearType( nType );
+		/*sal_uInt16 nId = OBJ_GRAF;
+		switch( nType ) 
+		{
+			case SC_CONTENT_OLEOBJECT:
+				nId = OBJ_OLE2;
+				break;
+			case SC_CONTENT_DRAWING:
+				nId = OBJ_GRUP;
+				break;
+		}*/
+		GetDrawNames( nType/*, nId*/ );
+		if( !pEntry )
+			ApplySettings();  
+		SetUpdateMode(sal_True);
+		if( pEntry )
+		{
+			SvLBoxEntry* pParent = pRootNodes[nType];
+			SvLBoxEntry* pBeginEntry = NULL;
+			SvLBoxEntry* pOldEntry = NULL;
+			if( pParent )
+				pBeginEntry = FirstChild(pParent);
+			while( pBeginEntry )
+			{
+				String aTempText( GetEntryText( pBeginEntry ) );
+				 if( aTempText ==  sKeyString )
+				 {
+					pOldEntry = pBeginEntry;
+					break;
+				  }
+				pBeginEntry =  Next( pBeginEntry );
+			}
+			if( pOldEntry )
+			{
+				Expand(pParent);
+				Select( pOldEntry,sal_True);
+			}
+		}
+      	}	
+}
+//-----IAccessibility2 Implementation 2009
 void ScContentTree::Refresh( sal_uInt16 nType )
 {
 	if ( bHiddenDoc && !pHiddenDocument )
@@ -793,9 +1003,46 @@ void ScContentTree::GetDrawNames( sal_uI
 					{
 						String aName = ScDrawLayer::GetVisibleName( pObject );
 						if (aName.Len())
-							InsertContent( nType, aName );
+						{
+							//IAccessibility2 Implementation 2009-----
+							//InsertContent( nType, aName );
+							if( bisInNavigatoeDlg )
+							{
+								if (nType >= SC_CONTENT_COUNT)
+								{
+									DBG_ERROR("ScContentTree::InsertContent mit falschem Typ");
+									return;
 					}
-
+								SvLBoxEntry* pParent = pRootNodes[nType];
+								if (pParent)
+								{
+									SvLBoxEntry* pChild=InsertEntry( aName, pParent );
+									if(pChild)
+											pChild->SetMarked( sal_False);
+									Window* pWindow=NULL;
+									ScTabViewShell* pScTabViewShell=NULL;
+									ScDrawView* pScDrawView=NULL;
+									ScNavigatorDlg* pScNavigatorDlg=NULL;
+									if(pChild)
+										 pWindow=(Window*)GetParent(pChild);
+									if(pWindow)
+											pScNavigatorDlg = (ScNavigatorDlg*)pWindow;
+									if (pScNavigatorDlg!=NULL)
+										  pScTabViewShell=pScNavigatorDlg->GetTabViewShell();
+									if(pScTabViewShell !=NULL)
+										  pScDrawView =pScTabViewShell->GetViewData()->GetScDrawView();
+									if(pScDrawView!=NULL)
+									 {
+										 sal_Bool bMarked =pScDrawView->GetObjectIsMarked(pObject);
+										 pChild->SetMarked( bMarked );
+									  }									 	       
+								}//end if parent						
+								else
+									DBG_ERROR("InsertContent ohne Parent");
+							}
+						}
+					}
+					//-----IAccessibility2 Implementation 2009
 					pObject = aIter.Next();
 				}
 			}
@@ -1515,7 +1762,50 @@ void ScContentTree::StoreSettings() cons
     }
 }
 
+//IAccessibility2 Implementation 2009-----
+class ScContentLBoxString : public SvLBoxString
+{
+public:
+	ScContentLBoxString( SvLBoxEntry* pEntry, sal_uInt16 nFlags,
+		const String& rStr ) : SvLBoxString(pEntry,nFlags,rStr)	{}
 
+	virtual void Paint( const Point& rPos, SvLBox& rDev, sal_uInt16 nFlags,
+		SvLBoxEntry* pEntry);
+};
+void ScContentTree::InitEntry(SvLBoxEntry* pEntry,
+		const XubString& rStr ,const Image& rImg1,const Image& rImg2, SvLBoxButtonKind eButtonKind)
+{
+	sal_uInt16 nColToHilite = 1; //0==Bitmap;1=="Spalte1";2=="Spalte2"
+	SvTreeListBox::InitEntry( pEntry, rStr, rImg1, rImg2, eButtonKind );
+	SvLBoxString* pCol = (SvLBoxString*)pEntry->GetItem( nColToHilite );
+	ScContentLBoxString* pStr = new ScContentLBoxString( pEntry, 0, pCol->GetText() );
+	pEntry->ReplaceItem( pStr, nColToHilite );
+}
+void ScContentLBoxString::Paint( const Point& rPos, SvLBox& rDev, sal_uInt16 nFlags,
+	SvLBoxEntry* pEntry )
+{
+	// IA2 CWS. MT: Removed for now (also in SvLBoxEntry) - only used in Sw/Sd/ScContentLBoxString, they should decide if they need this
+	/*
+	if (pEntry->IsMarked())
+	{
+			rDev.DrawText( rPos, GetText() );
+			XubString str;
+			str = XubString::CreateFromAscii("*");
+			Point rPosStar(rPos.X()-6,rPos.Y());
+			Font aOldFont( rDev.GetFont());
+			Font aFont(aOldFont);
+			Color aCol( aOldFont.GetColor() );
+			aCol.DecreaseLuminance( 200 );
+			aFont.SetColor( aCol );
+			rDev.SetFont( aFont );
+			rDev.DrawText( rPosStar, str);
+			rDev.SetFont( aOldFont );
+	}
+	else 
+	*/
+		SvLBoxString::Paint( rPos, rDev, nFlags, pEntry);
+}
+//-----IAccessibility2 Implementation 2009
 //
 //------------------------------------------------------------------------
 //

Modified: openoffice/trunk/main/sc/source/ui/navipi/navipi.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/navipi/navipi.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/navipi/navipi.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/navipi/navipi.cxx Thu Nov 14 08:18:05 2013
@@ -785,6 +785,9 @@ ScNavigatorDlg::ScNavigatorDlg( SfxBindi
         aTbxCmd.Select(IID_ZOOMOUT);
         aTbxCmd.RemoveItem(aTbxCmd.GetItemPos(IID_ZOOMOUT));
     }
+	//IAccessibility2 Implementation 2009-----
+	aLbEntries.SetNavigatorDlgFlag(sal_True);
+	//-----IAccessibility2 Implementation 2009
 }
 
 //------------------------------------------------------------------------
@@ -983,7 +986,13 @@ void __EXPORT ScNavigatorDlg::Notify( Sf
 				case FID_ANYDATACHANGED:
 					aContentTimer.Start();		// Notizen nicht sofort suchen
 					break;
-
+				//IAccessibility2 Implementation 2009-----
+				case FID_KILLEDITVIEW:
+					aLbEntries.ObjectFresh( SC_CONTENT_OLEOBJECT );
+					aLbEntries.ObjectFresh( SC_CONTENT_DRAWING );
+					aLbEntries.ObjectFresh( SC_CONTENT_GRAPHIC );
+				      break;
+				//-----IAccessibility2 Implementation 2009
 				default:
 					break;
 			}

Modified: openoffice/trunk/main/sc/source/ui/pagedlg/scuitphfedit.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/pagedlg/scuitphfedit.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/pagedlg/scuitphfedit.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/pagedlg/scuitphfedit.cxx Thu Nov 14 08:18:05 2013
@@ -166,6 +166,18 @@ ScHFEditPage::ScHFEditPage( Window* 			p
 	aWndCenter. SetFont( aPatAttr );
 	aWndRight.	SetFont( aPatAttr );
 
+	//IAccessibility2 Implementation 2009-----
+	aWndLeft.SetObjectSelectHdl( LINK(this,ScHFEditPage,ObjectSelectHdl) );
+	aWndCenter.SetObjectSelectHdl( LINK(this,ScHFEditPage,ObjectSelectHdl) );
+	aWndRight.SetObjectSelectHdl( LINK(this,ScHFEditPage,ObjectSelectHdl) );
+	aBtnText.SetAccessibleRelationMemberOf( &maFtCustomHF );
+	aBtnFile.SetAccessibleRelationMemberOf( &maFtCustomHF );
+	aBtnTable.SetAccessibleRelationMemberOf( &maFtCustomHF );
+	aBtnPage.SetAccessibleRelationMemberOf( &maFtCustomHF );
+	aBtnLastPage.SetAccessibleRelationMemberOf( &maFtCustomHF );
+	aBtnDate.SetAccessibleRelationMemberOf( &maFtCustomHF );
+	aBtnTime.SetAccessibleRelationMemberOf( &maFtCustomHF );	
+	//-----IAccessibility2 Implementation 2009
 	FillCmdArr();
 
 	aWndLeft.GrabFocus();
@@ -174,6 +186,14 @@ ScHFEditPage::ScHFEditPage( Window* 			p
 
 	FreeResource();
 }
+	//IAccessibility2 Implementation 2009-----
+    IMPL_LINK( ScHFEditPage, ObjectSelectHdl, ScEditWindow*, pEdit )
+	{
+		(void)pEdit;
+	    aBtnText.GrabFocus();
+	    return NULL;	
+	}
+	//-----IAccessibility2 Implementation 2009
 
 // -----------------------------------------------------------------------
 

Modified: openoffice/trunk/main/sc/source/ui/pagedlg/tphfedit.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/pagedlg/tphfedit.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/pagedlg/tphfedit.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/pagedlg/tphfedit.cxx Thu Nov 14 08:18:05 2013
@@ -553,6 +553,10 @@ void __EXPORT ScEditWindow::Paint( const
 	Control::Paint(	rRec );
 
 	pEdView->Paint( rRec );
+	//IAccessibility2 Implementation 2009-----
+	if( HasFocus() )
+		pEdView->ShowCursor(sal_True,sal_True);
+	//-----IAccessibility2 Implementation 2009
 }
 
 // -----------------------------------------------------------------------
@@ -594,6 +598,14 @@ void __EXPORT ScEditWindow::KeyInput( co
 	{
 		Control::KeyInput( rKEvt );
 	}
+	//IAccessibility2 Implementation 2009-----
+	else if ( !rKEvt.GetKeyCode().IsMod1() && !rKEvt.GetKeyCode().IsShift() &&
+		    	rKEvt.GetKeyCode().IsMod2() && rKEvt.GetKeyCode().GetCode() == KEY_DOWN )
+	{
+		if (aObjectSelectLink.IsSet() )			
+			aObjectSelectLink.Call(this);
+	}
+	//-----IAccessibility2 Implementation 2009
 }
 
 // -----------------------------------------------------------------------
@@ -607,6 +619,9 @@ void ScEditWindow::Command( const Comman
 
 void __EXPORT ScEditWindow::GetFocus()
 {
+	//IAccessibility2 Implementation 2009-----
+	pEdView->ShowCursor(sal_True,sal_True);
+	//-----IAccessibility2 Implementation 2009
 	pActiveEdWnd = this;
 
     ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > xTemp = xAcc;

Modified: openoffice/trunk/main/sc/source/ui/view/drawview.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/view/drawview.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/view/drawview.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/view/drawview.cxx Thu Nov 14 08:18:05 2013
@@ -689,6 +689,90 @@ void __EXPORT ScDrawView::UpdateUserView
 #pragma optimize ( "", on )
 #endif
 
+//IAccessibility2 Implementation 2009-----
+SdrObject* ScDrawView::GetObjectByName(const String& rName)
+{
+	SfxObjectShell*	pShell = pDoc->GetDocumentShell();
+	if (pShell)
+	{
+		SdrModel* pDrawLayer = GetModel();
+		sal_uInt16 nTabCount = pDoc->GetTableCount();
+		for (sal_uInt16 i=0; i<nTabCount; i++)
+		{
+			SdrPage* pPage = pDrawLayer->GetPage(i);
+			DBG_ASSERT(pPage,"Page ?");
+			if (pPage)
+			{
+				SdrObjListIter aIter( *pPage, IM_DEEPNOGROUPS );
+				SdrObject* pObject = aIter.Next();
+				while (pObject)
+				{
+					if ( ScDrawLayer::GetVisibleName( pObject ) == rName )
+					{
+						return pObject;
+					}
+					pObject = aIter.Next();
+				}
+			}
+		}
+	}
+	return 0;
+}
+//Solution: realize multi-selection of objects
+//==================================================
+sal_Bool ScDrawView::SelectCurrentViewObject( const String& rName )
+{
+	sal_uInt16 nObjectTab = 0;
+	SdrObject* pFound = NULL;
+       sal_Bool bUnMark=sal_False;
+	SfxObjectShell*	pShell = pDoc->GetDocumentShell();
+	if (pShell)
+	{
+		SdrModel* pDrawLayer = GetModel();
+		sal_uInt16 nTabCount = pDoc->GetTableCount();
+		for (sal_uInt16 i=0; i<nTabCount && !pFound; i++)
+		{
+			SdrPage* pPage = pDrawLayer->GetPage(i);
+			DBG_ASSERT(pPage,"Page ?");
+			if (pPage)
+			{
+				SdrObjListIter aIter( *pPage, IM_DEEPWITHGROUPS );
+				SdrObject* pObject = aIter.Next();
+				while (pObject && !pFound)
+				{
+					if ( ScDrawLayer::GetVisibleName( pObject ) == rName )
+					{
+						pFound = pObject;
+						nObjectTab = i;
+					}
+					pObject = aIter.Next();
+				}
+			}
+		}
+	}
+	if ( pFound )
+	{
+		ScTabView* pView = pViewData->GetView();
+		if ( nObjectTab != nTab )								// Tabelle umschalten
+			pView->SetTabNo( nObjectTab );
+		DBG_ASSERT( nTab == nObjectTab, "Tabellen umschalten hat nicht geklappt" );
+		pView->ScrollToObject( pFound );
+		if ( pFound->GetLayer() == SC_LAYER_BACK &&
+				!pViewData->GetViewShell()->IsDrawSelMode() &&
+				!pDoc->IsTabProtected( nTab ) &&
+				!pViewData->GetSfxDocShell()->IsReadOnly() )
+		{
+			SdrLayer* pLayer = GetModel()->GetLayerAdmin().GetLayerPerID(SC_LAYER_BACK);
+			if (pLayer)
+				SetLayerLocked( pLayer->GetName(), sal_False );
+		}
+		SdrPageView* pPV = GetSdrPageView();
+              bUnMark = IsObjMarked(pFound);
+	       MarkObj( pFound, pPV, bUnMark);
+	}
+	return ( bUnMark );
+}
+//-----IAccessibility2 Implementation 2009
 sal_Bool ScDrawView::SelectObject( const String& rName )
 {
 	UnmarkAll();
@@ -750,6 +834,19 @@ sal_Bool ScDrawView::SelectObject( const
 	return ( pFound != NULL );
 }
 
+//IAccessibility2 Implementation 2009-----
+//Solution: If  object  is marked , return true , else return false . 
+//==================================================
+sal_Bool ScDrawView::GetObjectIsMarked(  SdrObject* pObject  )
+{
+       sal_Bool bisMarked =false;
+	if (pObject )
+	{
+	      bisMarked = IsObjMarked(pObject);
+	}
+	return  bisMarked;
+}
+//-----IAccessibility2 Implementation 2009
 //UNUSED2008-05  String ScDrawView::GetSelectedChartName() const
 //UNUSED2008-05  {
 //UNUSED2008-05      //  used for modifying a chart's data area - PersistName must always be used

Modified: openoffice/trunk/main/sc/source/ui/view/gridwin.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/view/gridwin.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/view/gridwin.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/view/gridwin.cxx Thu Nov 14 08:18:05 2013
@@ -866,6 +866,45 @@ void ScGridWindow::DoScenarioMenue( cons
 	CaptureMouse();
 }
 
+//IAccessibility2 Implementation 2009-----
+sal_Bool ScGridWindow::HasScenarioRange( sal_uInt16 nCol, sal_Int32 nRow, ScRange& rScenRange )
+{
+	ScDocument* pDoc = pViewData->GetDocument();
+	sal_uInt16 nTab = pViewData->GetTabNo();
+	sal_uInt16 nTabCount = pDoc->GetTableCount();
+	if ( nTab+1<nTabCount && pDoc->IsScenario(nTab+1) && !pDoc->IsScenario(nTab) )
+	{
+		sal_uInt16 i;
+		ScMarkData aMarks;
+		for (i=nTab+1; i<nTabCount && pDoc->IsScenario(i); i++)
+			pDoc->MarkScenario( i, nTab, aMarks, sal_False, SC_SCENARIO_SHOWFRAME );
+		ScRangeList aRanges;
+		aMarks.FillRangeListWithMarks( &aRanges, sal_False );
+		sal_uInt16 nRangeCount = (sal_uInt16)aRanges.Count();
+		for (i=0; i<nRangeCount; i++)
+		{
+			ScRange aRange = *aRanges.GetObject(i);
+			pDoc->ExtendTotalMerge( aRange );
+			sal_Bool bTextBelow = ( aRange.aStart.Row() == 0 );
+			sal_Bool bIsInScen = sal_False;
+			if ( bTextBelow )
+			{
+				bIsInScen = (aRange.aStart.Col() == nCol && aRange.aEnd.Row() == nRow-1);
+			}
+			else
+			{
+				bIsInScen = (aRange.aStart.Col() == nCol && aRange.aStart.Row() == nRow+1);
+			}
+			if (bIsInScen)
+			{
+				rScenRange = aRange;
+				return sal_True;
+			}
+		}
+	}
+	return sal_False;
+}
+//-----IAccessibility2 Implementation 2009
 void ScGridWindow::DoAutoFilterMenue( SCCOL nCol, SCROW nRow, sal_Bool bDataSelect )
 {
 	delete pFilterBox;
@@ -2234,6 +2273,9 @@ void __EXPORT ScGridWindow::MouseButtonU
 
 			pViewData->GetView()->InvalidateAttribs();
 		}
+//IAccessibility2 Implementation 2009-----
+		pViewData->GetViewShell()->SelectionChanged();
+//-----IAccessibility2 Implementation 2009
 		return;
 	}
 }
@@ -3068,7 +3110,9 @@ void __EXPORT ScGridWindow::KeyInput(con
         if( !rKeyCode.GetModifier() && (rKeyCode.GetCode() == KEY_F2) )
         {
             SC_MOD()->EndReference();
-            return;
+//IAccessibility2 Implementation 2009-----
+            //return;
+//-----IAccessibility2 Implementation 2009
         }
         else if( pViewData->GetViewShell()->MoveCursorKeyInput( rKEvt ) )
         {
@@ -3076,8 +3120,14 @@ void __EXPORT ScGridWindow::KeyInput(con
                 pViewData->GetRefStartX(), pViewData->GetRefStartY(), pViewData->GetRefStartZ(),
                 pViewData->GetRefEndX(), pViewData->GetRefEndY(), pViewData->GetRefEndZ() );
             SC_MOD()->SetReference( aRef, pViewData->GetDocument() );
-            return;
+//IAccessibility2 Implementation 2009-----
+            //return;
+//-----IAccessibility2 Implementation 2009
         }
+//IAccessibility2 Implementation 2009-----
+		pViewData->GetViewShell()->SelectionChanged();
+		return ;
+//-----IAccessibility2 Implementation 2009
     }
 	// wenn semi-Modeless-SfxChildWindow-Dialog oben, keine KeyInputs:
     else if( !pViewData->IsAnyFillMode() )

Modified: openoffice/trunk/main/sc/source/ui/view/gridwin3.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/view/gridwin3.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/view/gridwin3.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/view/gridwin3.cxx Thu Nov 14 08:18:05 2013
@@ -179,6 +179,10 @@ sal_Bool ScGridWindow::DrawKeyInput(cons
 					if ( !bOldMarked &&
 						rKEvt.GetKeyCode().GetCode() == KEY_DELETE )
 						bUsed = sal_False;					// nichts geloescht
+//IAccessibility2 Implementation 2009-----
+					if(bOldMarked)
+						GetFocus();					
+//-----IAccessibility2 Implementation 2009
 				}
 			if (!bLeaveDraw)
 				UpdateStatusPosSize();		// #108137# for moving/resizing etc. by keyboard

Modified: openoffice/trunk/main/sc/source/ui/view/gridwin5.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/view/gridwin5.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/view/gridwin5.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/view/gridwin5.cxx Thu Nov 14 08:18:05 2013
@@ -58,6 +58,9 @@
 #include "tabvwsh.hxx"
 #include "userdat.hxx"
 #include "postit.hxx"
+//IAccessibility2 Implementation 2009-----
+#include <vcl/svapp.hxx>
+//-----IAccessibility2 Implementation 2009
 
 // -----------------------------------------------------------------------
 
@@ -423,13 +426,42 @@ void ScGridWindow::HideNoteMarker()
 com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
 	ScGridWindow::CreateAccessible()
 {
+//IAccessibility2 Implementation 2009-----
+	com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > xAcc= GetAccessible(sal_False);
+	if (xAcc.is())
+	{
+		return xAcc;
+	}
+//-----IAccessibility2 Implementation 2009
 	ScAccessibleDocument* pAccessibleDocument =
 		new ScAccessibleDocument(GetAccessibleParentWindow()->GetAccessible(),
 			pViewData->GetViewShell(), eWhich);
-
-	com::sun::star::uno::Reference < ::com::sun::star::accessibility::XAccessible > xAccessible = pAccessibleDocument;
+//IAccessibility2 Implementation 2009-----
+	//com::sun::star::uno::Reference < ::com::sun::star::accessibility::XAccessible > xAccessible = pAccessibleDocument;
+	xAcc = pAccessibleDocument;
+	SetAccessible(xAcc);
+//-----IAccessibility2 Implementation 2009
 
 	pAccessibleDocument->Init();
-
-	return xAccessible;
+//IAccessibility2 Implementation 2009-----
+	//return xAccessible;
+	return xAcc;
+//-----IAccessibility2 Implementation 2009
+}
+//IAccessibility2 Implementation 2009-----
+// MT: Removed Windows::SwitchView() introduced with IA2 CWS.
+// There are other notifications for this when the active view has chnaged, so please update the code to use that event mechanism
+void ScGridWindow::SwitchView()
+{
+	if (!Application::IsAccessibilityEnabled())
+	{
+		return ;
+	}
+	ScAccessibleDocumentBase* pAccDoc = static_cast<ScAccessibleDocumentBase*>(GetAccessible(sal_False).get());
+	if (pAccDoc)
+	{
+		pAccDoc->SwitchViewFireFocus();
+	}		
 }
+//-----IAccessibility2 Implementation 2009
+

Modified: openoffice/trunk/main/sc/source/ui/view/output.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/view/output.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/view/output.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/view/output.cxx Thu Nov 14 08:18:05 2013
@@ -80,6 +80,9 @@ static ColorData nAuthorColor[ SC_AUTHOR
 //	Hilfsklasse, fuer die Farbzuordnung,
 //	um nicht mehrfach hintereinander denselben User aus der Liste zu suchen
 
+//IAccessibility2 Implementation 2009-----
+//Move this class declare to Chgtrack.hxx
+/*
 class ScActionColorChanger
 {
 private:
@@ -96,6 +99,8 @@ public:
 	void		Update( const ScChangeAction& rAction );
 	ColorData	GetColor() const	{ return nColor; }
 };
+*/
+//-----IAccessibility2 Implementation 2009
 
 //------------------------------------------------------------------
 

Modified: openoffice/trunk/main/sc/source/ui/view/preview.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/view/preview.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/view/preview.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/view/preview.cxx Thu Nov 14 08:18:05 2013
@@ -1474,13 +1474,42 @@ void ScPreview::LoseFocus()
 
 com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessible> ScPreview::CreateAccessible()
 {
+//IAccessibility2 Implementation 2009-----
+	com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessible> xAcc= GetAccessible(sal_False);
+	if (xAcc.is())
+	{
+		return xAcc;
+	}
+//-----IAccessibility2 Implementation 2009
 	ScAccessibleDocumentPagePreview* pAccessible =
 		new ScAccessibleDocumentPagePreview( GetAccessibleParentWindow()->GetAccessible(), pViewShell );
-	com::sun::star::uno::Reference < com::sun::star::accessibility::XAccessible > xAccessible = pAccessible;
+//IAccessibility2 Implementation 2009-----
+	//com::sun::star::uno::Reference < com::sun::star::accessibility::XAccessible > xAccessible = pAccessible;
+	xAcc = pAccessible;
+	SetAccessible(xAcc);
+//-----IAccessibility2 Implementation 2009
 	pAccessible->Init();
-	return xAccessible;
+//IAccessibility2 Implementation 2009-----
+	//return xAccessible;
+	return xAcc;
+//-----IAccessibility2 Implementation 2009
 }
-
+//IAccessibility2 Implementation 2009-----
+// MT: Removed Windows::SwitchView() introduced with IA2 CWS.
+// There are other notifications for this when the active view has chnaged, so please update the code to use that event mechanism
+void ScPreview::SwitchView()
+{
+	if (!Application::IsAccessibilityEnabled())
+	{
+		return ;
+	}
+	ScAccessibleDocumentBase* pAccDoc = static_cast<ScAccessibleDocumentBase*>(GetAccessible(sal_False).get());
+	if (pAccDoc)
+	{
+		pAccDoc->SwitchViewFireFocus();
+	}		
+}
+//-----IAccessibility2 Implementation 2009
 //Issue51656 Add resizeable margin on page preview from maoyg
 void ScPreview::DragMove( long nDragMovePos, sal_uInt16 nFlags )
 {

Modified: openoffice/trunk/main/sc/source/ui/view/select.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/view/select.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/view/select.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/view/select.cxx Thu Nov 14 08:18:05 2013
@@ -369,6 +369,9 @@ sal_Bool ScViewFunctionSet::SetCursorAtC
 			}
 
 			pView->UpdateRef( nPosX, nPosY, pViewData->GetTabNo() );
+//IAccessibility2 Implementation 2009-----
+			pView->SelectionChanged();
+//-----IAccessibility2 Implementation 2009
 		}
 	}
 	else if (pViewData->IsFillMode() ||

Modified: openoffice/trunk/main/sc/source/ui/view/tabview2.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/view/tabview2.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/view/tabview2.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/view/tabview2.cxx Thu Nov 14 08:18:05 2013
@@ -118,7 +118,7 @@ void ScTabView::InitOwnBlockMode()
 }
 
 void ScTabView::InitBlockMode( SCCOL nCurX, SCROW nCurY, SCTAB nCurZ,
-								sal_Bool bTestNeg, sal_Bool bCols, sal_Bool bRows )
+								sal_Bool bTestNeg, sal_Bool bCols, sal_Bool bRows, sal_Bool bForceNeg )
 {
 	if (!bIsBlockMode)
 	{
@@ -129,7 +129,11 @@ void ScTabView::InitBlockMode( SCCOL nCu
 		SCTAB nTab = aViewData.GetTabNo();
 
 		//	Teil von Markierung aufheben?
-		if (bTestNeg)
+//IAccessibility2 Implementation 2009-----
+		if (bForceNeg)
+			bBlockNeg = sal_True;
+//-----IAccessibility2 Implementation 2009
+		else if (bTestNeg)
 		{
 			if ( bCols )
 				bBlockNeg = rMark.IsColumnMarked( nCurX );

Modified: openoffice/trunk/main/sc/source/ui/view/tabvwsh.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/view/tabvwsh.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/view/tabvwsh.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/view/tabvwsh.cxx Thu Nov 14 08:18:05 2013
@@ -41,6 +41,11 @@
 #include <sfx2/sidebar/SidebarChildWindow.hxx>
 #include <avmedia/mediaplayer.hxx>
 
+//IAccessibility2 Implementation 2009-----
+#include "cell.hxx"
+#include "docoptio.hxx"
+//-----IAccessibility2 Implementation 2009
+
 #include "tabvwsh.hxx"
 #include "docsh.hxx"
 #include "reffact.hxx"
@@ -106,3 +111,20 @@ IMPL_LINK( ScTabViewShell, HtmlOptionsHd
     GetViewFrame()->GetBindings().Invalidate(SID_DRAW_TEXT_MARQUEE);
     return 0;
 }
+
+//IAccessibility2 Implementation 2009-----
+rtl::OUString ScTabViewShell::GetFormula(ScAddress& rAddress)
+{
+	String sFormula;
+	ScDocument* pDoc = GetViewData()->GetDocument();
+	ScBaseCell* pCell = pDoc->GetCell(rAddress);
+	if (pCell && pCell->GetCellType()==CELLTYPE_FORMULA)
+	{
+		static_cast<ScFormulaCell*>(pCell)->GetFormula(sFormula);
+	}
+	return sFormula;
+}
+//-----IAccessibility2 Implementation 2009
+
+
+

Modified: openoffice/trunk/main/sc/source/ui/view/tabvwsh4.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/view/tabvwsh4.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/view/tabvwsh4.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/view/tabvwsh4.cxx Thu Nov 14 08:18:05 2013
@@ -93,6 +93,9 @@
 #include "sc.hrc" //CHINA001
 #include "scabstdlg.hxx" //CHINA001
 #include "externalrefmgr.hxx"
+//IAccessibility2 Implementation 2009-----
+#include <svx/fmpage.hxx>
+//-----IAccessibility2 Implementation 2009
 
 void ActivateOlk( ScViewData* pViewData );
 void DeActivateOlk( ScViewData* pViewData );
@@ -112,7 +115,9 @@ sal_uInt16 ScTabViewShell::nInsObjCtrlSt
 void __EXPORT ScTabViewShell::Activate(sal_Bool bMDI)
 {
 	SfxViewShell::Activate(bMDI);
-
+//IAccessibility2 Implementation 2009-----
+	bIsActive = sal_True;
+//-----IAccessibility2 Implementation 2009
 	//	hier kein GrabFocus, sonst gibt's Probleme wenn etwas inplace editiert wird!
 
 	if ( bMDI )
@@ -242,7 +247,9 @@ void __EXPORT ScTabViewShell::Deactivate
 	}
 
 	SfxViewShell::Deactivate(bMDI);
-
+//IAccessibility2 Implementation 2009-----
+	bIsActive = sal_False;
+//-----IAccessibility2 Implementation 2009
 	ScInputHandler* pHdl = SC_MOD()->GetInputHdl(this);
 
 	if( bMDI )
@@ -1481,6 +1488,52 @@ sal_Bool ScTabViewShell::TabKeyInput(con
 		}
 	}
 
+//IAccessibility2 Implementation 2009-----
+	// use Ctrl+Alt+Shift+arrow keys to move the cursor in cells 
+	// while keeping the last selection
+	if ( !bUsed && bAlt && bControl && bShift)
+	{
+		sal_uInt16 nSlotId = 0;
+		switch (nCode)
+		{
+			case KEY_UP:
+				nSlotId = SID_CURSORUP;
+				break;
+			case KEY_DOWN:
+				nSlotId = SID_CURSORDOWN;
+				break;
+			case KEY_LEFT:
+				nSlotId = SID_CURSORLEFT;
+				break;
+			case KEY_RIGHT:
+				nSlotId = SID_CURSORRIGHT;
+				break;
+			case KEY_PAGEUP:
+				nSlotId = SID_CURSORPAGEUP;
+				break;
+			case KEY_PAGEDOWN:
+				nSlotId = SID_CURSORPAGEDOWN;
+				break;
+			case KEY_HOME:
+				nSlotId = SID_CURSORHOME;
+				break;
+			case KEY_END:
+				nSlotId = SID_CURSOREND;
+				break;
+			default:
+				nSlotId = 0;
+				break;
+		}
+		if ( nSlotId )
+		{
+			sal_uInt16 nMode = GetLockedModifiers();
+			LockModifiers(KEY_MOD1);
+			GetViewData()->GetDispatcher().Execute( nSlotId, SFX_CALLMODE_SLOT | SFX_CALLMODE_RECORD );
+			LockModifiers(nMode);
+			bUsed = sal_True;
+		}
+	}
+//-----IAccessibility2 Implementation 2009
 	if (bHideCursor)
 		ShowAllCursors();
 
@@ -1556,6 +1609,9 @@ void ScTabViewShell::Construct( sal_uInt
 	ScDocument* pDoc = pDocSh->GetDocument();
 
 	bReadOnly = pDocSh->IsReadOnly();
+//IAccessibility2 Implementation 2009-----
+	bIsActive = sal_False;
+//-----IAccessibility2 Implementation 2009
 
 	SetName( String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("View")) );	// fuer SBX
 	Color aColBlack( COL_BLACK );
@@ -1980,3 +2036,13 @@ void ScTabViewShell::GetTbxState( SfxIte
 
 
 
+//IAccessibility2 Implementation 2009-----
+const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > & ScTabViewShell::GetForms() const
+{
+	if( !pFormShell || !pFormShell->GetCurPage() ){
+		static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > aRef;
+		return aRef;
+	}
+	return pFormShell->GetCurPage()->GetForms();
+}
+//-----IAccessibility2 Implementation 2009

Modified: openoffice/trunk/main/sc/source/ui/view/tabvwshe.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/view/tabvwshe.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/view/tabvwshe.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/view/tabvwshe.cxx Thu Nov 14 08:18:05 2013
@@ -48,6 +48,9 @@
 #include "editsh.hxx"
 #include "dociter.hxx"
 #include "inputhdl.hxx"
+//IAccessibility2 Implementation 2009-----
+#include <svx/srchdlg.hxx>
+//-----IAccessibility2 Implementation 2009
 #include "document.hxx"
 
 //==================================================================
@@ -254,7 +257,29 @@ void ScTabViewShell::ExecSearch( SfxRequ
 					const SvxSearchItem* pSearchItem = (const SvxSearchItem*) pItem;
 
 					ScGlobal::SetSearchItem( *pSearchItem );
-					SearchAndReplace( pSearchItem, sal_True, rReq.IsAPI() );
+					//IAccessibility2 Implementation 2009-----
+					//SearchAndReplace( pSearchItem, sal_True, rReq.IsAPI() );
+					sal_Bool bSuccess = SearchAndReplace( pSearchItem, sal_True, rReq.IsAPI() );
+					if ( Application::IsAccessibilityEnabled() )
+					{
+						SvxSearchDialog* pSearchDlg = 
+							((SvxSearchDialog*)(SfxViewFrame::Current()->GetChildWindow(
+							SvxSearchDialogWrapper::GetChildWindowId())->GetWindow()));
+						if( pSearchDlg )
+						{
+							ScTabView* pTabView = GetViewData()->GetView();
+							if( pTabView )
+							{
+								Window* pWin = pTabView->GetActiveWin();
+								if( pWin )
+								{
+									pSearchDlg->SetDocWin( pWin );
+									pSearchDlg->SetSrchFlag( bSuccess );
+								}
+							}
+						}
+					}
+					//-----IAccessibility2 Implementation 2009
 					rReq.Done();
 				}
 			}
@@ -306,6 +331,27 @@ void ScTabViewShell::ExecSearch( SfxRequ
 							rReq.IsAPI() ? SFX_CALLMODE_API|SFX_CALLMODE_SYNCHRON :
 											SFX_CALLMODE_STANDARD,
 							&aSearchItem, 0L );
+					//IAccessibility2 Implementation 2009-----
+					if ( Application::IsAccessibilityEnabled() )
+					{
+						SvxSearchDialog* pSearchDlg = 
+							((SvxSearchDialog*)(SfxViewFrame::Current()->GetChildWindow(
+							SvxSearchDialogWrapper::GetChildWindowId())->GetWindow()));
+						if( pSearchDlg )
+						{
+							ScTabView* pTabView = GetViewData()->GetView();
+							if( pTabView )
+							{
+								Window* pWin = pTabView->GetActiveWin();
+								if( pWin )
+								{
+									pSearchDlg->SetDocWin( pWin );
+									pSearchDlg->SetSrchFlag();
+								}
+							}
+						}	
+					}
+					//-----IAccessibility2 Implementation 2009
 				}
 				else
 				{

Modified: openoffice/trunk/main/sc/source/ui/view/viewfun2.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/view/viewfun2.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/view/viewfun2.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/view/viewfun2.cxx Thu Nov 14 08:18:05 2013
@@ -1616,8 +1616,11 @@ void ScViewFunc::AutoFormat( sal_uInt16 
 //----------------------------------------------------------------------------
 //	Suchen & Ersetzen
 
-void ScViewFunc::SearchAndReplace( const SvxSearchItem* pSearchItem,
+//IAccessibility2 Implementation 2009-----
+//void ScViewFunc::SearchAndReplace( const SvxSearchItem* pSearchItem,
+sal_Bool ScViewFunc::SearchAndReplace( const SvxSearchItem* pSearchItem,
 										sal_Bool bAddUndo, sal_Bool bIsApi )
+//-----IAccessibility2 Implementation 2009
 {
 	ScDocShell* pDocSh = GetViewData()->GetDocShell();
 	ScDocument* pDoc = pDocSh->GetDocument();
@@ -1669,7 +1672,10 @@ void ScViewFunc::SearchAndReplace( const
 				if ( pOldSelectedTables )
 					delete [] pOldSelectedTables;
 				ErrorMessage(STR_PROTECTIONERR);
-				return;
+				//IAccessibility2 Implementation 2009-----
+				//return;
+				return sal_False;
+				//-----IAccessibility2 Implementation 2009
 			}
 		}
 	}
@@ -1843,6 +1849,9 @@ void ScViewFunc::SearchAndReplace( const
 
 	delete pUndoDoc;			// loeschen wenn nicht benutzt
 	delete pUndoMark;			// kann immer geloescht werden
+//IAccessibility2 Implementation 2009-----
+	return bFound;
+//-----IAccessibility2 Implementation 2009
 }
 
 

Modified: openoffice/trunk/main/scp2/source/ooo/file_library_ooo.scp
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/scp2/source/ooo/file_library_ooo.scp?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/scp2/source/ooo/file_library_ooo.scp (original)
+++ openoffice/trunk/main/scp2/source/ooo/file_library_ooo.scp Thu Nov 14 08:18:05 2013
@@ -22,6 +22,21 @@
 
 #include "macros.inc"
 
+// IAccessible2 implementation
+#if defined(WNT) && !defined(DISABLE_ATL)
+File gid_File_Lib_Winaccessibility
+	TXT_FILE_BODY;
+	Styles	= (PACKED);
+	Dir	= SCP2_OOO_BIN_DIR;
+	Name	= "winaccessibility.dll";
+End
+File gid_File_Lib_UAccCOM
+	BIN_FILE_BODY;
+	Styles	= (PACKED);
+	Dir	= SCP2_OOO_BIN_DIR;
+	Name	= "UAccCOM.dll";
+End
+#endif
 #ifdef WNT
 File gid_File_Lib_Accessbridge
     BIN_FILE_BODY;

Modified: openoffice/trunk/main/scp2/source/ooo/module_hidden_ooo.scp
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/scp2/source/ooo/module_hidden_ooo.scp?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/scp2/source/ooo/module_hidden_ooo.scp (original)
+++ openoffice/trunk/main/scp2/source/ooo/module_hidden_ooo.scp Thu Nov 14 08:18:05 2013
@@ -388,6 +388,8 @@ Module gid_Module_Root_Files_5
 	gid_File_Lib_Stdc_3,
 	gid_File_Lib_Stdc_5,
 	gid_File_Lib_Accessbridge,
+	gid_File_Lib_Winaccessibility,
+	gid_File_Lib_UAccCOM,
 	gid_File_Lib_Ado,
 	gid_File_Lib_Dl,
 	gid_File_Lib_Dnd,

Modified: openoffice/trunk/main/sd/inc/drawdoc.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sd/inc/drawdoc.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/sd/inc/drawdoc.hxx (original)
+++ openoffice/trunk/main/sd/inc/drawdoc.hxx Thu Nov 14 08:18:05 2013
@@ -157,6 +157,18 @@ namespace sd
 class SdDrawDocument : public FmFormModel
 {
 private:
+//IAccessibility2 Implementation 2009-----
+	String msDocAccTitle;
+public:
+	virtual void setDocAccTitle( const String& rTitle ) { msDocAccTitle = rTitle; }
+	virtual const String getDocAccTitle() const { return msDocAccTitle; }
+private:	
+	sal_Bool bReadOnly;
+public:
+	virtual void setDocReadOnly( sal_Bool b){ bReadOnly = b; }
+	virtual sal_Bool getDocReadOnly() const { return bReadOnly; }
+private:
+//IAccessibility2 Implementation 2009-----
 	::sd::Outliner*		mpOutliner;		    // local outliner for outline mode
 	::sd::Outliner*		mpInternalOutliner;  // internal outliner for creation of text objects
 	Timer*			    mpWorkStartupTimer;
@@ -671,6 +683,9 @@ private:
 	// #109538#
 	virtual void PageListChanged();
 	virtual void MasterPageListChanged();
+//IAccessibility2 Implementation 2009-----
+	virtual ImageMap* GetImageMapForObject(SdrObject* pObj);
+//-----IAccessibility2 Implementation 2009
 };
 
 namespace sd



Mime
View raw message