You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by st...@apache.org on 2013/11/14 09:18:14 UTC

svn commit: r1541847 [10/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/so...

Modified: openoffice/trunk/main/svtools/inc/svtools/svtools.hrc
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/inc/svtools/svtools.hrc?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/inc/svtools/svtools.hrc (original)
+++ openoffice/trunk/main/svtools/inc/svtools/svtools.hrc Thu Nov 14 08:18:05 2013
@@ -247,7 +247,7 @@
 #define STR_SVT_ACC_LISTENTRY_SELCTED_STATE		(STR_SVT_ACC_BEGIN+7)
 #define STR_SVT_ACC_RULER_VERT_NAME	(STR_SVT_ACC_BEGIN+8)
 #define STR_SVT_ACC_RULER_HORZ_NAME	(STR_SVT_ACC_BEGIN+9)
-#define STR_SVT_ACC_END						(STR_SVT_ACC_EMPTY_FIELD)
+#define STR_SVT_ACC_END					(STR_SVT_ACC_RULER_HORZ_NAME)
 
 #define STR_SVT_INDEXENTRY_START			(STR_SVT_ACC_END + 1)
 #define STR_SVT_INDEXENTRY_ALPHANUMERIC		(STR_SVT_INDEXENTRY_START+0)

Modified: openoffice/trunk/main/svtools/inc/svtools/svtreebx.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/inc/svtools/svtreebx.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/inc/svtools/svtreebx.hxx (original)
+++ openoffice/trunk/main/svtools/inc/svtools/svtreebx.hxx Thu Nov 14 08:18:05 2013
@@ -43,6 +43,11 @@ class TabBar;
 #define TREEFLAG_MANINS			0x0004
 #define TREEFLAG_RECALCTABS		0x0008
 
+#define TREEBOX_ALLITEM_ACCROLE_TYPE_NOTSET	0x00
+#define TREEBOX_ALLITEM_ACCROLE_TYPE_LIST	0x01
+#define TREEBOX_ALLITEM_ACCROLE_TYPE_TREE	0x02
+
+
 typedef sal_Int64   ExtendedWinBits;
 
 // disable the behavior of automatically selecting a "CurEntry" upon painting the control
@@ -71,7 +76,9 @@ class SVT_DLLPUBLIC SvTreeListBox : publ
 	short			nEntryHeightOffs;
 	short  			nIndent;
 	short			nFocusWidth;
-	sal_uInt16			aContextBmpMode;
+	sal_uInt16		aContextBmpMode;
+	
+	short			nAllItemAccRoleType;
 
 #ifdef _SVTREEBX_CXX
 	DECL_DLLPRIVATE_LINK( CheckButtonClick, SvLBoxButtonData * );
@@ -400,6 +407,19 @@ public:
 	/** Enables, that one cell of a tablistbox entry can be focused */
 	void				EnableCellFocus();
 
+// IAccessible2 implementation in 2009-----------
+						// For overwriting accessible role for all entries - normally 0, so each entry can be different
+	void				SetAllEntriesAccessibleRoleType( short n ) { nAllItemAccRoleType = n; }
+	short				GetAllEntriesAccessibleRoleType() const { return nAllItemAccRoleType; }
+	
+	sal_uInt16 			GetTreeFlags() const {return nTreeFlags;}
+	
+	XubString			headString ;
+	String				SearchEntryTextWithHeadTitle( SvLBoxEntry* pEntry ) ;
+	virtual	String		GetEntryAltText( SvLBoxEntry* pEntry) const;
+	virtual	String		GetEntryLongDescription( SvLBoxEntry* pEntry) const;	
+// -----------IAccessible2 implementation in 2009
+
 protected:
     using SvListView::Expand;
     using SvListView::Collapse;

Modified: openoffice/trunk/main/svtools/inc/svtools/texteng.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/inc/svtools/texteng.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/inc/svtools/texteng.hxx (original)
+++ openoffice/trunk/main/svtools/inc/svtools/texteng.hxx Thu Nov 14 08:18:05 2013
@@ -324,6 +324,8 @@ public:
 	static sal_Bool			DoesKeyChangeText( const KeyEvent& rKeyEvent );
 	static sal_Bool			DoesKeyMoveCursor( const KeyEvent& rKeyEvent );
 	static sal_Bool			IsSimpleCharInput( const KeyEvent& rKeyEvent );
+// IAccessible2 implementation in 2009
+	Color 				GetTextColor() {return maTextColor; };
 };
 
 #endif // _TEXTENG_HXX

Modified: openoffice/trunk/main/svtools/inc/svtools/treelist.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/inc/svtools/treelist.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/inc/svtools/treelist.hxx (original)
+++ openoffice/trunk/main/svtools/inc/svtools/treelist.hxx Thu Nov 14 08:18:05 2013
@@ -56,6 +56,8 @@
 #define SVLISTENTRYFLAG_FOCUSED			0x0004
 #define SVLISTENTRYFLAG_CURSORED		0x0008
 #define SVLISTENTRYFLAG_NOT_SELECTABLE	0x0010
+// IAccessible2 implementation
+#define SVLISTENTRYFLAG_OBJSELECTED	0x0040
 
 class SvListEntry;
 
@@ -152,6 +154,14 @@ public:
 			nFlags |= SVLISTENTRYFLAG_NOT_SELECTABLE;
 	}
 	bool IsSelectable() const { return (bool)(nFlags&SVLISTENTRYFLAG_NOT_SELECTABLE)==0; }
+	// IAccessible2 implementation
+	void SetObjectSelected(sal_Bool bSelected)
+	{
+	if ( !bSelected )
+		nFlags &= (~SVLISTENTRYFLAG_OBJSELECTED);
+	else
+		nFlags |= SVLISTENTRYFLAG_OBJSELECTED;
+	}
 };
 
 enum SvSortMode { SortAscending, SortDescending, SortNone };

Modified: openoffice/trunk/main/svtools/inc/svtools/valueset.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/inc/svtools/valueset.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/inc/svtools/valueset.hxx (original)
+++ openoffice/trunk/main/svtools/inc/svtools/valueset.hxx Thu Nov 14 08:18:05 2013
@@ -317,7 +317,7 @@ protected:
 
 	sal_Bool			StartDrag( const CommandEvent& rCEvt, Region& rRegion );
 	sal_uInt16			ShowDropPos( const Point& rPos );
-	void			HideDropPos();
+	void				HideDropPos();
 
 protected:
 
@@ -358,6 +358,9 @@ public:
 								sal_uInt16 nPos = VALUESET_APPEND );
 	void			InsertItem( sal_uInt16 nItemId,
 								sal_uInt16 nPos = VALUESET_APPEND );
+					// IA2 implementation in 2009 - method to set accessible when the style is user draw.
+	void			InsertItem( sal_uInt16 nItemId, const XubString& rStr, sal_uInt16 nPos = VALUESET_APPEND );
+
 	void			InsertSpace( sal_uInt16 nItemId,
 								 sal_uInt16 nPos = VALUESET_APPEND );
 	void			RemoveItem( sal_uInt16 nItemId );
@@ -365,24 +368,24 @@ public:
 	void			CopyItems( const ValueSet& rValueSet );
 	void			Clear();
 
-	sal_uInt16			GetItemCount() const;
-	sal_uInt16			GetItemPos( sal_uInt16 nItemId ) const;
-	sal_uInt16			GetItemId( sal_uInt16 nPos ) const;
-	sal_uInt16			GetItemId( const Point& rPos ) const;
+	sal_uInt16		GetItemCount() const;
+	sal_uInt16		GetItemPos( sal_uInt16 nItemId ) const;
+	sal_uInt16		GetItemId( sal_uInt16 nPos ) const;
+	sal_uInt16		GetItemId( const Point& rPos ) const;
 	Rectangle		GetItemRect( sal_uInt16 nItemId ) const;
 
 	void			EnableFullItemMode( bool bFullMode = true );
 	bool            IsFullItemModeEnabled() const { return mbFullMode; }
 	void			SetColCount( sal_uInt16 nNewCols = 1 );
-	sal_uInt16			GetColCount() const { return mnUserCols; }
+	sal_uInt16		GetColCount() const { return mnUserCols; }
 	void			SetLineCount( sal_uInt16 nNewLines = 0 );
-	sal_uInt16			GetLineCount() const { return mnUserVisLines; }
+	sal_uInt16		GetLineCount() const { return mnUserVisLines; }
 	void			SetItemWidth( long nItemWidth = 0 );
 	long			GetItemWidth() const { return mnUserItemWidth; }
 	void			SetItemHeight( long nLineHeight = 0 );
 	long			GetItemHeight() const { return mnUserItemHeight; }
 	void			SetFirstLine( sal_uInt16 nNewLine = 0 );
-	sal_uInt16			GetFirstLine() const { return mnFirstLine; }
+	sal_uInt16		GetFirstLine() const { return mnFirstLine; }
 
 	void			SelectItem( sal_uInt16 nItemId );
 	sal_uInt16			GetSelectItemId() const { return mnSelItemId; }
@@ -392,7 +395,7 @@ public:
 	bool            IsNoSelection() const { return mbNoSelection; }
 
 	void			SetItemBits( sal_uInt16 nItemId, sal_uInt16 nBits );
-	sal_uInt16			GetItemBits( sal_uInt16 nItemId ) const;
+	sal_uInt16		GetItemBits( sal_uInt16 nItemId ) const;
 	void			SetItemImage( sal_uInt16 nItemId, const Image& rImage );
 	Image			GetItemImage( sal_uInt16 nItemId ) const;
 	void			SetItemColor( sal_uInt16 nItemId, const Color& rColor );
@@ -407,7 +410,7 @@ public:
 	bool            IsColor() const { return maColor.GetTransparency() == 0; }
 
 	void			SetExtraSpacing( sal_uInt16 nNewSpacing );
-	sal_uInt16			GetExtraSpacing() { return mnSpacing; }
+	sal_uInt16		GetExtraSpacing() { return mnSpacing; }
 
 	void			Format();
 

Modified: openoffice/trunk/main/svtools/source/brwbox/brwbox3.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/brwbox/brwbox3.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/brwbox/brwbox3.cxx (original)
+++ openoffice/trunk/main/svtools/source/brwbox/brwbox3.cxx Thu Nov 14 08:18:05 2013
@@ -215,7 +215,9 @@ sal_Bool BrowseBox::ConvertPointToContro
 
 // Object data and state ------------------------------------------------------
 
-OUString BrowseBox::GetAccessibleObjectName( ::svt::AccessibleBrowseBoxObjType eObjType,sal_Int32 ) const
+//IAccessibility2 Implementation 2009-----
+OUString BrowseBox::GetAccessibleObjectName( ::svt::AccessibleBrowseBoxObjType eObjType,sal_Int32 _nPosition) const
+//-----IAccessibility2 Implementation 2009
 {
     OUString aRetText;
     switch( eObjType )
@@ -233,7 +235,18 @@ OUString BrowseBox::GetAccessibleObjectN
 			aRetText = OUString( RTL_CONSTASCII_USTRINGPARAM( "ColumnHeaderBar" ) );
 			break;
         case ::svt::BBTYPE_TABLECELL:
-            aRetText = OUString( RTL_CONSTASCII_USTRINGPARAM( "TableCell" ) );
+//IAccessibility2 Implementation 2009-----
+			if( ColCount() !=0 && GetRowCount()!=0)
+			{
+           
+				sal_Int32 columnId = _nPosition % ColCount() +1;
+				aRetText = OUString( GetColumnDescription( sal_Int16( columnId ) ) );
+				sal_Int32 rowId = _nPosition / GetRowCount() + 1;
+				aRetText += OUString::valueOf(rowId); 
+			}
+			else
+//-----IAccessibility2 Implementation 2009
+				aRetText = OUString( RTL_CONSTASCII_USTRINGPARAM( "TableCell" ) );
 #if OSL_DEBUG_LEVEL > 1
             aRetText += OUString( RTL_CONSTASCII_USTRINGPARAM( " [" ) );
 			aRetText += OUString::valueOf(sal_Int32(GetCurRow()));
@@ -243,7 +256,11 @@ OUString BrowseBox::GetAccessibleObjectN
 #endif			
 			break;
         case ::svt::BBTYPE_ROWHEADERCELL:
-			aRetText = OUString( RTL_CONSTASCII_USTRINGPARAM( "RowHeaderCell" ) );
+			{
+			sal_Int32 rowId = _nPosition + 1;
+			aRetText = OUString::valueOf( rowId );
+			}
+			//aRetText = OUString( RTL_CONSTASCII_USTRINGPARAM( "RowHeaderCell" ) );
 #if OSL_DEBUG_LEVEL > 1
             aRetText += OUString( RTL_CONSTASCII_USTRINGPARAM( " [" ) );
 			aRetText += OUString::valueOf(sal_Int32(GetCurRow()));
@@ -253,7 +270,8 @@ OUString BrowseBox::GetAccessibleObjectN
 #endif
 			break;
         case ::svt::BBTYPE_COLUMNHEADERCELL:
-			aRetText = OUString( RTL_CONSTASCII_USTRINGPARAM( "ColumnHeaderCell" ) );
+			//aRetText = OUString( RTL_CONSTASCII_USTRINGPARAM( "ColumnHeaderCell" ) );
+			aRetText = OUString( GetColumnDescription( sal_Int16( _nPosition ) ) );
 #if OSL_DEBUG_LEVEL > 1
             aRetText += OUString( RTL_CONSTASCII_USTRINGPARAM( " [" ) );
 			aRetText += OUString::valueOf(sal_Int32(GetCurRow()));

Modified: openoffice/trunk/main/svtools/source/brwbox/editbrowsebox.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/brwbox/editbrowsebox.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/brwbox/editbrowsebox.cxx (original)
+++ openoffice/trunk/main/svtools/source/brwbox/editbrowsebox.cxx Thu Nov 14 08:18:05 2013
@@ -1072,7 +1072,10 @@ namespace svt
                 {
 					commitTableEvent(
                         ACTIVE_DESCENDANT_CHANGED,
-						makeAny( CreateAccessibleCell( nRow, GetColumnPos( nCol ) ) ),
+//IAccessibility2 Implementation 2009-----
+						//makeAny( CreateAccessibleCell( nRow, GetColumnPos( nCol ) ) ),
+						makeAny( CreateAccessibleCell( nRow, GetColumnPos( nCol -1) ) ),
+//-----IAccessibility2 Implementation 2009
 						Any()
 					);
                 }

Modified: openoffice/trunk/main/svtools/source/contnr/imivctl1.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/contnr/imivctl1.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/contnr/imivctl1.cxx (original)
+++ openoffice/trunk/main/svtools/source/contnr/imivctl1.cxx Thu Nov 14 08:18:05 2013
@@ -1180,6 +1180,9 @@ void SvxIconChoiceCtrl_Impl::SetCursor_I
 		{
 			SelectEntry( pCursor, sal_True, sal_True,  sal_False, bPaintSync );
 			aCurSelectionRect = GetEntryBoundRect( pCursor );
+			//IAccessibility2 Implementation 2009-----
+			CallEventListeners( VCLEVENT_LISTBOX_SELECT, pCursor );
+			//-----IAccessibility2 Implementation 2009
 		}
 	}
 }

Modified: openoffice/trunk/main/svtools/source/contnr/svimpbox.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/contnr/svimpbox.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/contnr/svimpbox.cxx (original)
+++ openoffice/trunk/main/svtools/source/contnr/svimpbox.cxx Thu Nov 14 08:18:05 2013
@@ -299,6 +299,10 @@ void SvImpLBox::Clear()
 
 	// #97680# ---------
 	aContextBmpWidthVector.clear();
+
+//IAccessibility2 Implementation 2009-----
+	CallEventListeners( VCLEVENT_LISTBOX_ITEMREMOVED, NULL );
+//-----IAccessibility2 Implementation 2009
 }
 
 // *********************************************************************
@@ -646,6 +650,9 @@ void SvImpLBox::SetCursor( SvLBoxEntry* 
 		if(!bForceNoSelect && bSimpleTravel && !(nFlags & F_DESEL_ALL) && GetUpdateMode())
 		{
 			pView->Select( pCursor, sal_True );
+			//IAccessibility2 Implementation 2009-----
+			CallEventListeners( VCLEVENT_LISTBOX_TREEFOCUS, pCursor );
+			//-----IAccessibility2 Implementation 2009
 		}
 		// Mehrfachselektion: Im Cursor-Move selektieren, wenn
 		// nicht im Add-Mode (Ctrl-F8)
@@ -655,10 +662,19 @@ void SvImpLBox::SetCursor( SvLBoxEntry* 
 				 !bForceNoSelect )
 		{
 			pView->Select( pCursor, sal_True );
+			//IAccessibility2 Implementation 2009-----
+			CallEventListeners( VCLEVENT_LISTBOX_TREEFOCUS, pCursor );
+			//-----IAccessibility2 Implementation 2009
 		}
 		else
 		{
 			ShowCursor( sal_True );
+			//IAccessibility2 Implementation 2009-----
+			if (bForceNoSelect && GetUpdateMode())
+			{
+				CallEventListeners( VCLEVENT_LISTBOX_TREEFOCUS, pCursor);
+			}
+			//-----IAccessibility2 Implementation 2009
 		}
 
 		if( pAnchor )
@@ -1700,6 +1716,10 @@ void SvImpLBox::EntrySelected( SvLBoxEnt
 
 void SvImpLBox::RemovingEntry( SvLBoxEntry* pEntry )
 {
+	//IAccessibility2 Implementation 2009-----
+	CallEventListeners( VCLEVENT_LISTBOX_ITEMREMOVED , pEntry );
+	//-----IAccessibility2 Implementation 2009
+
 	DestroyAnchor();
 
 	if( !pView->IsEntryVisible( pEntry ) )
@@ -2359,7 +2379,10 @@ sal_Bool SvImpLBox::KeyInput( const KeyE
 
 		case KEY_LEFT:
 		{
-            if ( bIsCellFocusEnabled )
+            //IAccessibility2 Implementation 2009-----
+            // if ( bIsCellFocusEnabled )
+            if ( bIsCellFocusEnabled && pCursor )
+			//-----IAccessibility2 Implementation 2009
             {
                 if ( nCurTabPos > FIRST_ENTRY_TAB )
                 {
@@ -2677,7 +2700,7 @@ sal_Bool SvImpLBox::KeyInput( const KeyE
             // is from SvTreeListBox::KeyInput. If we set bKeyUsed to sal_True here, then the key input
             // is just silenced. However, we want SvLBox::KeyInput to get a chance, to do the QuickSelection
             // handling.
-            // (The old code here which intentionally set bKeyUsed to TRUE said this was because of "quick search"
+            // (The old code here which intentionally set bKeyUsed to sal_True said this was because of "quick search"
             // handling, but actually there was no quick search handling anymore. We just re-implemented it.)
             // #i31275# / 2009-06-16 / frank.schoenheit@sun.com
 			bKeyUsed = sal_False;

Modified: openoffice/trunk/main/svtools/source/contnr/svtabbx.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/contnr/svtabbx.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/contnr/svtabbx.cxx (original)
+++ openoffice/trunk/main/svtools/source/contnr/svtabbx.cxx Thu Nov 14 08:18:05 2013
@@ -1182,6 +1182,10 @@ void SvHeaderTabListBox::FillAccessibleS
 			sal_uInt16 nCurColumn = GetCurrColumn();
 			if ( IsCellVisible( nCurRow, nCurColumn ) )
 				_rStateSet.AddState( AccessibleStateType::VISIBLE );
+			//IAccessibility2 Implementation 2009-----
+			if ( IsEnabled() )
+				_rStateSet.AddState( AccessibleStateType::ENABLED );
+			//-----IAccessibility2 Implementation 2009
 			_rStateSet.AddState( AccessibleStateType::TRANSIENT );
 			break;
 		}
@@ -1192,6 +1196,10 @@ void SvHeaderTabListBox::FillAccessibleS
 			_rStateSet.AddState( AccessibleStateType::VISIBLE );
 			_rStateSet.AddState( AccessibleStateType::FOCUSABLE );
 			_rStateSet.AddState( AccessibleStateType::TRANSIENT );
+			//IAccessibility2 Implementation 2009-----
+			if ( IsEnabled() )
+				_rStateSet.AddState( AccessibleStateType::ENABLED );
+			//-----IAccessibility2 Implementation 2009
 			break;
 		}
         default:
@@ -1216,6 +1224,9 @@ void SvHeaderTabListBox::FillAccessibleS
 		_rStateSet.AddState( AccessibleStateType::ACTIVE );
 		_rStateSet.AddState( AccessibleStateType::SELECTED );
 	}
+	//IAccessibility2 Implementation 2009-----
+	if ( IsEnabled() )
+		_rStateSet.AddState( AccessibleStateType::ENABLED );
 }
 // -----------------------------------------------------------------------
 void SvHeaderTabListBox::GrabTableFocus()

Modified: openoffice/trunk/main/svtools/source/contnr/svtreebx.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/contnr/svtreebx.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/contnr/svtreebx.cxx (original)
+++ openoffice/trunk/main/svtools/source/contnr/svtreebx.cxx Thu Nov 14 08:18:05 2013
@@ -91,6 +91,7 @@ void SvTreeListBox::InitTreeView()
 	nFirstSelTab = 0;
 	nLastSelTab = 0;
 	nFocusWidth = -1;
+	nAllItemAccRoleType = 0;
 
 	Link* pLink = new Link( LINK(this,SvTreeListBox, DefaultCompare) );
     pLBoxImpl->m_pLink = pLink;
@@ -345,6 +346,89 @@ String SvTreeListBox::GetEntryText(SvLBo
 	return pItem->GetText();
 }
 
+//IAccessibility2 Implementation 2009-----
+String  SvTreeListBox::GetEntryAltText( SvLBoxEntry* ) const
+{
+	String tmp;
+	return tmp;
+}
+String SvTreeListBox::GetEntryLongDescription( SvLBoxEntry* ) const
+{
+	String tmp;
+	return tmp;
+}
+
+String SvTreeListBox::SearchEntryTextWithHeadTitle( SvLBoxEntry* pEntry ) 
+{
+	DBG_CHKTHIS(SvTreeListBox,0);
+	DBG_ASSERT( pEntry, "SvTreeListBox::SearchEntryText(): no entry" );
+	String sRet;
+
+	sal_uInt16 nCount = pEntry->ItemCount();
+	sal_uInt16 nCur = 0;
+	sal_uInt16 nHeaderCur = 0;
+	SvLBoxItem* pItem;
+	while( nCur < nCount )
+	{
+		// MT: SV_ITEM_ID_EXTENDRLBOXSTRING / GetExtendText() was in use in IA2 cws, but only used in sc: ScSolverOptionsString. Needed?
+		pItem = pEntry->GetItem( nCur );
+		if ( (pItem->IsA() == SV_ITEM_ID_LBOXSTRING /* || pItem->IsA() == SV_ITEM_ID_EXTENDRLBOXSTRING */ ) &&
+			 static_cast<SvLBoxString*>( pItem )->GetText().Len() > 0 )
+		{
+
+			//want to the column header
+			if( headString.Len() > 0)
+			{
+				xub_StrLen nEnd = headString.Search( sal_Unicode( '\t' ) );
+				if( nEnd == STRING_NOTFOUND )
+				{
+					if(sRet.Len()>0)
+					{
+						sRet += ',';
+					}
+					if(headString.Len()>0)
+					{
+						sRet += headString ;
+						sRet += ':' ;
+					}
+				}
+				else
+				{
+					String	aString=headString.GetToken(nHeaderCur, sal_Unicode( '\t' ) );
+					if(sRet.Len()>0)
+					{
+						sRet += ',';
+					}
+					if( aString.Len() > 0)
+					{
+						sRet += aString ;
+						sRet += ':' ;
+					}
+					nHeaderCur++;
+				}
+				// if (pItem->IsA() == SV_ITEM_ID_LBOXSTRING)
+					sRet += static_cast<SvLBoxString*>( pItem )->GetText();
+				// else
+				//	sRet += static_cast<SvLBoxString*>( pItem )->GetExtendText();
+			}
+			else
+			{
+				// if (pItem->IsA() == SV_ITEM_ID_LBOXSTRING)
+					sRet += static_cast<SvLBoxString*>( pItem )->GetText();
+				// else
+				// 	sRet += static_cast<SvLBoxString*>( pItem )->GetExtendText();
+				sRet += ',';
+			}
+			//end want to the column header
+		}
+		nCur++;
+	}
+
+	if (sRet.Len() > 0)
+		sRet = sRet.Erase(sRet.Len() - 1);
+	return sRet;
+}
+//-----IAccessibility2 Implementation 2009
 String SvTreeListBox::SearchEntryText( SvLBoxEntry* pEntry ) const
 {
 	DBG_CHKTHIS(SvTreeListBox,0);
@@ -806,18 +890,45 @@ void SvTreeListBox::RequestingChilds( Sv
 void SvTreeListBox::GetFocus()
 {
 	DBG_CHKTHIS(SvTreeListBox,0);
+	//IAccessibility2 Implementation 2009-----
+	//Solution:If there is no item in the tree,draw focus.
+	if( !SvLBox::First())
+	{
+		Invalidate();
+	}
+	//-----IAccessibility2 Implementation 2009
 	pImp->GetFocus();
 	SvLBox::GetFocus();
 
 	SvLBoxEntry* pEntry = FirstSelected();
+	//IAccessibility2 Implementation 2009-----
+	if ( !pEntry )
+	{
+		pEntry = pImp->GetCurrentEntry();
+	}
+	if (pImp->pCursor)
+	{
+		if (pEntry != pImp->pCursor)
+			pEntry = pImp->pCursor;
+	}
+	//IAccessibility2 Implementation 2009-----
 	if ( pEntry )
-		pImp->CallEventListeners( VCLEVENT_LISTBOX_SELECT, pEntry );
+		//pImp->CallEventListeners( VCLEVENT_LISTBOX_SELECT, pEntry );
+		pImp->CallEventListeners( VCLEVENT_LISTBOX_TREEFOCUS, pEntry );
+	//-----IAccessibility2 Implementation 2009
 
 }
 
 void SvTreeListBox::LoseFocus()
 {
 	DBG_CHKTHIS(SvTreeListBox,0);
+	//IAccessibility2 Implementation 2009-----
+	//Solution:If there is no item in the tree,delete visual focus.
+	if( !SvLBox::First())
+	{
+		Invalidate();
+	}
+	//-----IAccessibility2 Implementation 2009
 	pImp->LoseFocus();
 	SvLBox::LoseFocus();
 }
@@ -1064,7 +1175,9 @@ sal_Bool SvTreeListBox::Select( SvLBoxEn
 		if( bSelect )
 		{
 			SelectHdl();
-			pImp->CallEventListeners( VCLEVENT_LISTBOX_SELECT, pEntry );
+			// IA2 CWS
+			// pImp->CallEventListeners( VCLEVENT_LISTBOX_SELECT, pEntry );
+			CallEventListeners( VCLEVENT_LISTBOX_TREESELECT, pEntry);			
 		}
 		else
 			DeselectHdl();
@@ -1185,6 +1298,24 @@ void SvTreeListBox::Paint( const Rectang
 	if( nTreeFlags & TREEFLAG_RECALCTABS )
 		SetTabs();
 	pImp->Paint( rRect );
+	//IAccessibility2 Implementation 2009-----
+	//Solution:Add visual focus draw
+	if( !SvLBox::First() )
+	{
+		if( HasFocus() )
+		{
+			long tempHeight = GetTextHeight();
+			Rectangle tempRect(
+								Point(0,0),Size(GetSizePixel().Width(),tempHeight)
+							   );
+			ShowFocus(tempRect);
+		}
+
+		else{
+			HideFocus();
+		}
+	}
+	//-----IAccessibility2 Implementation 2009
 }
 
 void SvTreeListBox::MouseButtonDown( const MouseEvent& rMEvt )
@@ -2644,6 +2775,14 @@ void SvTreeListBox::FillAccessibleEntryS
 		rStateSet.AddState( AccessibleStateType::EXPANDABLE );
 		if ( IsExpanded( pEntry ) )
 		    rStateSet.AddState( (sal_Int16)AccessibleStateType::EXPANDED );
+		// IA2 CWS
+		/*
+		else
+		{
+			// MT: COLLAPSE == EXPANDABLE & !EXPANDED
+			rStateSet.AddState( (sal_Int16)AccessibleStateType::COLLAPSE );
+		}
+		*/
 	}
 
 	if ( GetCheckButtonState( pEntry ) == SV_BUTTON_CHECKED )
@@ -2652,6 +2791,21 @@ void SvTreeListBox::FillAccessibleEntryS
 		rStateSet.AddState( AccessibleStateType::VISIBLE );
 	if ( IsSelected( pEntry ) )
 		rStateSet.AddState( AccessibleStateType::SELECTED );
+	//IAccessibility2 Implementation 2009-----
+	if ( IsEnabled() )
+	{
+		rStateSet.AddState( AccessibleStateType::ENABLED );
+		rStateSet.AddState( AccessibleStateType::FOCUSABLE );
+		rStateSet.AddState( AccessibleStateType::SELECTABLE );
+		SvViewDataEntry* pViewDataNewCur = 0;
+		if( pEntry )
+		{
+			pViewDataNewCur= GetViewDataEntry(pEntry);
+			if(pViewDataNewCur->HasFocus())
+				rStateSet.AddState( AccessibleStateType::FOCUSED );
+		}
+	}
+	//-----IAccessibility2 Implementation 2009
 }
 
 Rectangle SvTreeListBox::GetBoundingRect( SvLBoxEntry* pEntry )
@@ -2675,3 +2829,4 @@ void SvTreeListBox::FillAccessibleStateS
 {
       SvLBox::FillAccessibleStateSet( rStateSet );
 }
+

Modified: openoffice/trunk/main/svtools/source/control/headbar.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/control/headbar.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/control/headbar.cxx (original)
+++ openoffice/trunk/main/svtools/source/control/headbar.cxx Thu Nov 14 08:18:05 2013
@@ -42,6 +42,10 @@
 #endif
 #include <com/sun/star/accessibility/XAccessible.hpp>
 
+//IAccessibility2 Implementation 2009-----
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <vclxaccessibleheaderbar.hxx>
+//-----IAccessibility2 Implementation 2009
 // =======================================================================
 
 struct ImplHeadItem
@@ -95,6 +99,9 @@ void HeaderBar::ImplInit( WinBits nWinSt
 	mbOutDrag		= sal_False;
 	mbItemMode		= sal_False;
 
+	//IAccessibility2 Implementation 2009-----
+	m_pVCLXHeaderBar = NULL;
+	//-----IAccessibility2 Implementation 2009
 	// StyleBits auswerten
 	if ( nWinStyle & WB_DRAG )
 		mbDragable = sal_True;
@@ -116,6 +123,9 @@ void HeaderBar::ImplInit( WinBits nWinSt
 	}
 
 	ImplInitSettings( sal_True, sal_True, sal_True );
+	//IAccessibility2 Implementation 2009-----
+	//SetAccessibleRole(com::sun::star::accessibility::AccessibleRole::COLUMN_HEADER);	
+	//-----IAccessibility2 Implementation 2009
 }
 
 // -----------------------------------------------------------------------
@@ -1645,3 +1655,20 @@ void HeaderBar::SetAccessible( ::com::su
     mxAccessible = _xAccessible;
 }
 
+//IAccessibility2 Implementation 2009-----
+::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > HeaderBar::GetComponentInterface( sal_Bool bCreate )
+{
+    ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > xPeer 
+		(Window::GetComponentInterface(false));
+	if ( !xPeer.is() && bCreate )
+    {
+		::com::sun::star::awt::XWindowPeer* mxPeer = new VCLXHeaderBar(this);
+		m_pVCLXHeaderBar = (VCLXHeaderBar*)(mxPeer);
+		SetComponentInterface(mxPeer);
+		return mxPeer;
+    }
+	else
+		return xPeer;
+}
+//-----IAccessibility2 Implementation 2009
+

Modified: openoffice/trunk/main/svtools/source/control/ruler.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/control/ruler.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/control/ruler.cxx (original)
+++ openoffice/trunk/main/svtools/source/control/ruler.cxx Thu Nov 14 08:18:05 2013
@@ -32,7 +32,15 @@
 
 #define _SV_RULER_CXX
 #include <svtools/ruler.hxx>
-
+//IAccessibility2 Implementation 2009-----
+#include <svtools/svtdata.hxx>
+#include <svtools/svtools.hrc>
+using namespace	::rtl;
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::accessibility;
+//-----IAccessibility2 Implementation 2009
 // =======================================================================
 
 #define RULER_OFF           3
@@ -299,7 +307,10 @@ void Ruler::ImplInit( WinBits nWinBits )
     else
         aDefSize.Width() = nDefHeight;
     SetOutputSizePixel( aDefSize );
+	//IAccessibility2 Implementation 2009-----
 	SetType(WINDOW_RULER);
+	pAccContext = NULL; 
+	//-----IAccessibility2 Implementation 2009
 }
 
 // -----------------------------------------------------------------------
@@ -323,6 +334,10 @@ Ruler::~Ruler()
         Application::RemoveUserEvent( mnUpdateEvtId );
     delete mpSaveData;
     delete mpDragData;
+	//IAccessibility2 Implementation 2009-----
+	if( pAccContext )
+		pAccContext->release();
+	//-----IAccessibility2 Implementation 2009
 }
 
 // -----------------------------------------------------------------------
@@ -3179,3 +3194,31 @@ const RulerBorder*  Ruler::GetBorders() 
 sal_uInt16              Ruler::GetIndentCount() const { return mpData->nIndents; }
 const RulerIndent*  Ruler::GetIndents() const { return mpData->pIndents; }
 
+//IAccessibility2 Implementation 2009-----
+uno::Reference< XAccessible > Ruler::CreateAccessible()
+{
+	Window*						pParent = GetAccessibleParentWindow();
+	DBG_ASSERT( pParent, "-SvxRuler::CreateAccessible(): No Parent!" );
+	uno::Reference< XAccessible >	xAccParent  = pParent->GetAccessible();
+	if( xAccParent.is() )
+	{
+		// MT: Fixed compiler issue because the address from a temporary object was used.
+		// BUT: Shoudl it really be a Pointer, instead of const&???
+		OUString aStr;
+		if ( mnWinStyle & WB_HORZ )
+		{
+			aStr = OUString(XubString(SvtResId(STR_SVT_ACC_RULER_HORZ_NAME)));
+		}
+		else
+		{
+			aStr = OUString(XubString(SvtResId(STR_SVT_ACC_RULER_VERT_NAME)));
+		}
+		pAccContext = new SvtRulerAccessible( xAccParent, *this, aStr );
+		pAccContext->acquire();
+		this->SetAccessible(pAccContext);
+		return pAccContext;
+	}
+	else
+		return uno::Reference< XAccessible >();
+}
+//-----IAccessibility2 Implementation 2009

Modified: openoffice/trunk/main/svtools/source/control/valueacc.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/control/valueacc.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/control/valueacc.cxx (original)
+++ openoffice/trunk/main/svtools/source/control/valueacc.cxx Thu Nov 14 08:18:05 2013
@@ -34,6 +34,15 @@
 #include <com/sun/star/accessibility/AccessibleRole.hpp>
 #include <com/sun/star/accessibility/AccessibleStateType.hpp>
 
+//IAccessibility2 Implementation 2009-----
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#ifndef _COM_SUN_STAR_ACCESSIBILITY_ACCESSIBLERELATIONTYPE_HPP_
+#include <com/sun/star/accessibility/AccessibleRelationType.hpp>
+#endif
+#ifndef _UTL_ACCESSIBLERELATIONSETHELPER_HXX_
+#include <unotools/accessiblerelationsethelper.hxx>
+#endif
+//-----IAccessibility2 Implementation 2009
 using namespace ::com::sun::star;
 
 // ----------------
@@ -316,6 +325,9 @@ sal_Int16 SAL_CALL ValueSetAcc::getAcces
         Window* pLabel = mpParent->GetAccessibleRelationLabeledBy();
         if ( pLabel && pLabel != mpParent )
             aRet = OutputDevice::GetNonMnemonicString( pLabel->GetText() );
+
+        if ( !aRet.Len() )
+         	aRet = mpParent->GetQuickHelpText();
     }
 
     return aRet;
@@ -327,7 +339,32 @@ uno::Reference< accessibility::XAccessib
     throw (uno::RuntimeException)
 {
     ThrowIfDisposed();
-    return uno::Reference< accessibility::XAccessibleRelationSet >();
+//IAccessibility2 Implementation 2009-----
+	uno::Reference< accessibility::XAccessibleRelationSet > xRelSet;
+	Window* pWindow = (Window*)mpParent;
+	if ( pWindow )
+	{
+		utl::AccessibleRelationSetHelper* pRelationSet = new utl::AccessibleRelationSetHelper;
+		xRelSet = pRelationSet;
+
+		Window *pLabeledBy = pWindow->GetAccessibleRelationLabeledBy();
+		if ( pLabeledBy && pLabeledBy != pWindow )
+		{
+			uno::Sequence< uno::Reference< uno::XInterface > > aSequence(1);
+			aSequence[0] = pLabeledBy->GetAccessible();
+			pRelationSet->AddRelation( accessibility::AccessibleRelation( accessibility::AccessibleRelationType::LABELED_BY, aSequence ) );
+		}
+
+		Window* pMemberOf = pWindow->GetAccessibleRelationMemberOf();
+		if ( pMemberOf && pMemberOf != pWindow )
+		{
+			uno::Sequence< uno::Reference< uno::XInterface > > aSequence(1);
+			aSequence[0] = pMemberOf->GetAccessible();
+			pRelationSet->AddRelation( accessibility::AccessibleRelation( accessibility::AccessibleRelationType::MEMBER_OF, aSequence ) );
+		}
+	}
+    return xRelSet;
+//-----IAccessibility2 Implementation 2009
 }
 
 // -----------------------------------------------------------------------------
@@ -755,7 +792,10 @@ ValueSetItem* ValueSetAcc::getItem (sal_
             nIndex -= 1;
     }
     if (pItem == NULL)
-        pItem = mpParent->ImplGetVisibleItem (static_cast<sal_uInt16>(nIndex));
+//IAccessibility2 Implementation 2009-----
+        //pItem = mpParent->ImplGetVisibleItem (static_cast<sal_uInt16>(nIndex));
+	pItem = mpParent->ImplGetItem (static_cast<sal_uInt16>(nIndex));
+//-----IAccessibility2 Implementation 2009
 
     return pItem;
 }
@@ -939,7 +979,10 @@ sal_Int32 SAL_CALL ValueItemAcc::getAcce
             // just in case the number of children changes in the mean time.
             try
             {
-                pItem = mpParent->mrParent.ImplGetVisibleItem (i);
+//IAccessibility2 Implementation 2009-----
+                //pItem = mpParent->mrParent.ImplGetVisibleItem (i);
+                pItem = mpParent->mrParent.ImplGetItem(i);
+//-----IAccessibility2 Implementation 2009
             }
             catch (lang::IndexOutOfBoundsException aException)
             {
@@ -956,6 +999,17 @@ sal_Int32 SAL_CALL ValueItemAcc::getAcce
         }
     }
 
+//IAccessibility2 Implementation 2009-----
+	//if this valueset contain a none field(common value is default), then we should increase the real index and set the noitem index value equal 0.
+	if ( mpParent && ( (mpParent->mrParent.GetStyle() & WB_NONEFIELD) != 0 ) )
+	{
+		ValueSetItem* pFirstItem = mpParent->mrParent.ImplGetItem (VALUESET_ITEM_NONEITEM);
+		if( pFirstItem && pFirstItem ->GetAccessible(mbIsTransientChildrenDisabled).get() == this )
+			nIndexInParent = 0;
+		else
+			nIndexInParent++;
+	}
+//-----IAccessibility2 Implementation 2009
     return nIndexInParent;
 }
 

Modified: openoffice/trunk/main/svtools/source/control/valueimp.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/control/valueimp.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/control/valueimp.hxx (original)
+++ openoffice/trunk/main/svtools/source/control/valueimp.hxx Thu Nov 14 08:18:05 2013
@@ -87,6 +87,9 @@ struct ValueSetItem
 	XubString			maText;
 	void*				mpData;
 	Rectangle			maRect;
+	//IAccessibility2 Implementation 2009-----
+	sal_Bool				bSelected:1;
+	//-----IAccessibility2 Implementation 2009
 	::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >* mpxAcc;
 
     ValueSetItem( ValueSet& rParent );

Modified: openoffice/trunk/main/svtools/source/control/valueset.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/control/valueset.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/control/valueset.cxx (original)
+++ openoffice/trunk/main/svtools/source/control/valueset.cxx Thu Nov 14 08:18:05 2013
@@ -1219,7 +1219,9 @@ sal_uInt16 ValueSet::ImplGetVisibleItemC
     {
         ValueSetItem* pItem = mpImpl->mpItemList->GetObject( n );
 
-        if( pItem->meType != VALUESETITEM_SPACE && !pItem->maRect.IsEmpty() )
+		//IAccessible2 implementation - also count empty rectangles as visible...
+        // if( pItem->meType != VALUESETITEM_SPACE && !pItem->maRect.IsEmpty() )
+		if( pItem->meType != VALUESETITEM_SPACE )
             nRet++;
     }
 
@@ -1905,6 +1907,24 @@ void ValueSet::InsertItem( sal_uInt16 nI
 		Invalidate();
 }
 
+//IAccessibility2 Implementation 2009-----
+//method to set accessible when the style is user draw.
+void ValueSet::InsertItem( sal_uInt16 nItemId, const XubString& rText, sal_uInt16 nPos	)
+{
+	DBG_ASSERT( nItemId, "ValueSet::InsertItem(): ItemId == 0" );
+	DBG_ASSERT( GetItemPos( nItemId ) == VALUESET_ITEM_NOTFOUND,
+				"ValueSet::InsertItem(): ItemId already exists" );
+	ValueSetItem* pItem = new ValueSetItem( *this );
+	pItem->mnId 	= nItemId;
+	pItem->meType	= VALUESETITEM_USERDRAW;
+	pItem->maText	= rText;
+	mpImpl->mpItemList->Insert( pItem, (sal_uLong)nPos );
+	mbFormat = sal_True;
+	if ( IsReallyVisible() && IsUpdateMode() )
+		Invalidate();
+}
+//-----IAccessibility2 Implementation 2009
+
 // -----------------------------------------------------------------------
 
 void ValueSet::InsertItem( sal_uInt16 nItemId, sal_uInt16 nPos )
@@ -2779,6 +2799,60 @@ void ValueSet::SetEdgeBlending(bool bNew
         }
     }
 }
+//IAccessibility2 Implementation 2009-----
+//For sending out the focused event on the first focused item when this valueset is first focused.
+// MT: Focus notifications changed in DEV300 meanwhile, so this is not used for now.
+// Just keeping it here for reference, in case something in out implementation doesn't work as expected...
+/*
+void ValueSet::SetFocusedItem(sal_Bool bFocused)
+{
+	if( ImplHasAccessibleListeners() )
+	{
+        // selection event
+        ::com::sun::star::uno::Any aSelOldAny, aSelNewAny;
+		if ( mnSelItemId >= 0)
+		{
+			// focus event (select)
+		    sal_uInt16 nPos = GetItemPos( mnSelItemId );
+
+			ValueSetItem* pItem;
+			if ((GetStyle() & WB_NONEFIELD) != 0
+				&& nPos == VALUESET_ITEM_NOTFOUND 
+				&& mnSelItemId == 0)
+			{
+				// When present the first item is the then allways visible none field.
+				pItem = ImplGetItem (VALUESET_ITEM_NONEITEM);
+			}
+			else
+			{
+				if (nPos == VALUESET_ITEM_NOTFOUND)
+					nPos = 0;
+				pItem = mpImpl->mpItemList->GetObject(nPos);
+			}
+			ValueItemAcc* pItemAcc = NULL;
+			if (pItem != NULL)
+				pItemAcc = ValueItemAcc::getImplementation(pItem->GetAccessible(mpImpl->mbIsTransientChildrenDisabled) );
+			if( pItemAcc )
+			{
+				if (bFocused)
+					aSelNewAny <<= pItem->GetAccessible(mpImpl->mbIsTransientChildrenDisabled);
+				else
+					aSelOldAny <<= pItem->GetAccessible(mpImpl->mbIsTransientChildrenDisabled);
+			}
+			ImplFireAccessibleEvent( ::com::sun::star::accessibility::AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, aSelOldAny, aSelNewAny );
+			if (pItemAcc && bFocused)
+			{
+				pItemAcc->FireAccessibleEvent(
+					::com::sun::star::accessibility::AccessibleEventId::SELECTION_CHANGED,
+					::com::sun::star::uno::Any(),::com::sun::star::uno::Any());
+			}
+		}
+	}
+}
+*/
+//end
+//-----IAccessibility2 Implementation 2009
+
 
 // -----------------------------------------------------------------------
 // eof

Modified: openoffice/trunk/main/svtools/source/edit/svmedit.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/edit/svmedit.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/edit/svmedit.cxx (original)
+++ openoffice/trunk/main/svtools/source/edit/svmedit.cxx Thu Nov 14 08:18:05 2013
@@ -941,7 +941,9 @@ void TextWindow::Command( const CommandE
 
 void TextWindow::GetFocus()
 {
-	Window::GetFocus();
+//IAccessibility2 Implementation 2009-----
+	//Window::GetFocus();
+//-----IAccessibility2 Implementation 2009
 	if ( !mbActivePopup )
 	{
 		sal_Bool bGotoCursor = !mpExtTextView->IsReadOnly();
@@ -1248,8 +1250,10 @@ void MultiLineEdit::GetFocus()
 {
     if ( !pImpSvMEdit )  // might be called from within the dtor, when pImpSvMEdit == NULL is a valid state
         return;
-
-    Edit::GetFocus();
+	//IAccessibility2 Implementation 2009-----
+	//Disable the focused event on scroll pane
+	//Edit::GetFocus();
+	//-----IAccessibility2 Implementation 2009
     pImpSvMEdit->GetFocus();
 }
 

Modified: openoffice/trunk/main/svtools/source/misc/acceleratorexecute.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/misc/acceleratorexecute.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/misc/acceleratorexecute.cxx (original)
+++ openoffice/trunk/main/svtools/source/misc/acceleratorexecute.cxx Thu Nov 14 08:18:05 2013
@@ -72,6 +72,9 @@
 #include <vcl/window.hxx>
 #include <vcl/svapp.hxx>
 #include <vos/mutex.hxx>
+//IAccessibility2 Implementation 2009-----
+#include <comphelper/uieventslogger.hxx>
+//-----IAccessibility2 Implementation 2009
 
 //===============================================
 // namespace
@@ -249,6 +252,24 @@ sal_Bool AcceleratorExecute::execute(con
     sal_Bool bRet = xDispatch.is();
     if ( bRet )
     {
+//IAccessibility2 Implementation 2009-----
+        if(::comphelper::UiEventsLogger::isEnabled() && m_xSMGR.is() && m_xDispatcher.is()) //#i88653#
+        {
+            try
+            {
+                css::uno::Reference< css::frame::XModuleManager > xModuleDetection(
+                    m_xSMGR->createInstance(::rtl::OUString::createFromAscii("com.sun.star.frame.ModuleManager")),
+                    css::uno::UNO_QUERY_THROW);
+
+                const ::rtl::OUString sModule = xModuleDetection->identify(m_xDispatcher);
+                css::uno::Sequence<css::beans::PropertyValue> source;
+                ::comphelper::UiEventsLogger::appendDispatchOrigin(source, sModule, ::rtl::OUString::createFromAscii("AcceleratorExecute"));
+                ::comphelper::UiEventsLogger::logDispatch(aURL, source);
+            }
+            catch(const css::uno::Exception&)
+                { }
+        }
+//-----IAccessibility2 Implementation 2009
         // Note: Such instance can be used one times only and destroy itself afterwards .-)
         AsyncAccelExec* pExec = AsyncAccelExec::createOnShotInstance(xDispatch, aURL);
         pExec->execAsync();

Modified: openoffice/trunk/main/svtools/source/misc/embedhlp.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/misc/embedhlp.cxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/misc/embedhlp.cxx (original)
+++ openoffice/trunk/main/svtools/source/misc/embedhlp.cxx Thu Nov 14 08:18:05 2013
@@ -34,7 +34,14 @@
 #include <toolkit/helper/vclunohelper.hxx>
 #include <unotools/ucbstreamhelper.hxx>
 #include <unotools/streamwrap.hxx>
-
+//IAccessibility2 Implementation 2009-----
+#include <com/sun/star/chart2/XChartDocument.hpp>
+#include <com/sun/star/chart2/XCoordinateSystem.hpp>
+#include <com/sun/star/chart2/XCoordinateSystemContainer.hpp>
+#include <com/sun/star/chart2/XDiagram.hpp>
+#include <com/sun/star/chart2/XChartTypeContainer.hpp>
+#include <com/sun/star/chart2/XChartType.hpp>
+//-----IAccessibility2 Implementation 2009
 #include <tools/globname.hxx>
 #include <sot/clsids.hxx>
 #include <com/sun/star/util/XModifyListener.hpp>
@@ -937,6 +944,102 @@ sal_Bool EmbeddedObjectRef::IsChart() co
     return sal_False;
 }
 
+//IAccessibility2 Implementation 2009-----
+// MT: Only used for getting accessible attributes, which are not localized
+rtl::OUString EmbeddedObjectRef::GetChartType()
+{
+	rtl::OUString Style;
+	if ( mxObj.is() )
+	{
+		if ( IsChart() )
+		{
+			if ( svt::EmbeddedObjectRef::TryRunningState( mxObj ) )
+			{
+				uno::Reference< chart2::XChartDocument > xChart( mxObj->getComponent(), uno::UNO_QUERY );
+				if (xChart.is())
+				{
+					uno::Reference< chart2::XDiagram > xDiagram( xChart->getFirstDiagram());
+					if( ! xDiagram.is())
+						return String();
+					uno::Reference< chart2::XCoordinateSystemContainer > xCooSysCnt( xDiagram, uno::UNO_QUERY_THROW );
+					uno::Sequence< uno::Reference< chart2::XCoordinateSystem > > aCooSysSeq( xCooSysCnt->getCoordinateSystems());
+					// IA2 CWS. Unused: int nCoordinateCount = aCooSysSeq.getLength();
+					sal_Bool bGetChartType = sal_False;
+					for( sal_Int32 nCooSysIdx=0; nCooSysIdx<aCooSysSeq.getLength(); ++nCooSysIdx )
+					{
+						uno::Reference< chart2::XChartTypeContainer > xCTCnt( aCooSysSeq[nCooSysIdx], uno::UNO_QUERY_THROW );
+						uno::Sequence< uno::Reference< chart2::XChartType > > aChartTypes( xCTCnt->getChartTypes());
+						int nDimesionCount = aCooSysSeq[nCooSysIdx]->getDimension();
+						if( nDimesionCount == 3 )	
+							Style += rtl::OUString::createFromAscii("3D ");	
+						else
+							Style += rtl::OUString::createFromAscii("2D ");	
+						for( sal_Int32 nCTIdx=0; nCTIdx<aChartTypes.getLength(); ++nCTIdx )
+						{
+							rtl::OUString strChartType = aChartTypes[nCTIdx]->getChartType();
+							if (strChartType.equals(::rtl::OUString::createFromAscii("com.sun.star.chart2.AreaChartType")))
+							{
+								Style += rtl::OUString::createFromAscii("Areas");
+								bGetChartType = sal_True;
+							}
+							else if (strChartType.equals(::rtl::OUString::createFromAscii("com.sun.star.chart2.BarChartType")))
+							{
+								Style += rtl::OUString::createFromAscii("Bars");
+								bGetChartType = sal_True;
+							}
+							else if (strChartType.equals(::rtl::OUString::createFromAscii("com.sun.star.chart2.ColumnChartType")))
+							{
+								uno::Reference< beans::XPropertySet > xProp( aCooSysSeq[nCooSysIdx], uno::UNO_QUERY );
+								if( xProp.is())
+								{
+									bool bCurrent = false;
+									if( xProp->getPropertyValue( rtl::OUString::createFromAscii("SwapXAndYAxis") ) >>= bCurrent )
+									{
+										if (bCurrent)
+											Style += rtl::OUString::createFromAscii("Bars");
+										else
+											Style += rtl::OUString::createFromAscii("Columns");
+										bGetChartType = sal_True;
+									}
+								}
+							}
+							else if (strChartType.equals(::rtl::OUString::createFromAscii("com.sun.star.chart2.LineChartType")))
+							{
+								Style += rtl::OUString::createFromAscii("Lines");
+								bGetChartType = sal_True;
+							}
+							else if (strChartType.equals(::rtl::OUString::createFromAscii("com.sun.star.chart2.ScatterChartType")))
+							{
+								Style += rtl::OUString::createFromAscii("XY Chart");
+								bGetChartType = sal_True;
+							}
+							else if (strChartType.equals(::rtl::OUString::createFromAscii("com.sun.star.chart2.PieChartType")))
+							{
+								Style += rtl::OUString::createFromAscii("Pies");
+								bGetChartType = sal_True;
+							}
+							else if (strChartType.equals(::rtl::OUString::createFromAscii("com.sun.star.chart2.NetChartType")))
+							{
+								Style += rtl::OUString::createFromAscii("Radar");
+								bGetChartType = sal_True;
+							}
+							else if (strChartType.equals(::rtl::OUString::createFromAscii("com.sun.star.chart2.CandleStickChartType")))
+							{
+								Style += rtl::OUString::createFromAscii("Candle Stick Chart");
+								bGetChartType = sal_True;
+							}
+							if (bGetChartType)
+								return Style;
+						}
+					}
+				}
+			}
+		}
+	}
+	return Style;	
+}
+//-----IAccessibility2 Implementation 2009
+
 // #i104867#
 sal_uInt32 EmbeddedObjectRef::getGraphicVersion() const
 {

Modified: openoffice/trunk/main/svx/Library_svx.mk
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/Library_svx.mk?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svx/Library_svx.mk (original)
+++ openoffice/trunk/main/svx/Library_svx.mk Thu Nov 14 08:18:05 2013
@@ -78,6 +78,7 @@ $(eval $(call gb_Library_add_exception_o
     svx/source/accessibility/AccessibleShape \
     svx/source/accessibility/AccessibleShapeInfo \
     svx/source/accessibility/AccessibleShapeTreeInfo \
+    svx/source/accessibility/AccessibleSvxFindReplaceDialog \
     svx/source/accessibility/AccessibleTextEventQueue \
     svx/source/accessibility/AccessibleTextHelper \
     svx/source/accessibility/charmapacc \
@@ -87,6 +88,7 @@ $(eval $(call gb_Library_add_exception_o
     svx/source/accessibility/DGColorNameLookUp \
     svx/source/accessibility/GraphCtlAccessibleContext \
     svx/source/accessibility/ShapeTypeHandler \
+    svx/source/accessibility/svxpixelctlaccessiblecontext \
     svx/source/accessibility/svxrectctaccessiblecontext \
     svx/source/accessibility/SvxShapeTypes \
     svx/source/customshapes/EnhancedCustomShape3d \

Modified: openoffice/trunk/main/svx/inc/svx/AccessibleControlShape.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/inc/svx/AccessibleControlShape.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svx/inc/svx/AccessibleControlShape.hxx (original)
+++ openoffice/trunk/main/svx/inc/svx/AccessibleControlShape.hxx Thu Nov 14 08:18:05 2013
@@ -63,6 +63,10 @@ public:
         const AccessibleShapeTreeInfo& rShapeTreeInfo);
 	virtual ~AccessibleControlShape( );
 
+	//IAccessibility2 Implementation 2009-----
+    ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > SAL_CALL  GetControlModel( ) { return m_xControlModel;} ;
+    AccessibleControlShape* SAL_CALL GetLabeledByControlShape();
+	//-----IAccessibility2 Implementation 2009
 protected:
 	//---  XAccessible  ----------------------------------------
     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext> SAL_CALL getAccessibleContext( ) throw(::com::sun::star::uno::RuntimeException);

Modified: openoffice/trunk/main/svx/inc/svx/AccessibleGraphicShape.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/inc/svx/AccessibleGraphicShape.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svx/inc/svx/AccessibleGraphicShape.hxx (original)
+++ openoffice/trunk/main/svx/inc/svx/AccessibleGraphicShape.hxx Thu Nov 14 08:18:05 2013
@@ -89,7 +89,9 @@ public:
     virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type> SAL_CALL
         getTypes (void)
         throw (::com::sun::star::uno::RuntimeException);
-
+///	Return this object's role.
+	virtual sal_Int16 SAL_CALL getAccessibleRole (void) throw (::com::sun::star::uno::RuntimeException);
+//-----IAccessibility2 Implementation 2009
 protected:
     ///	Create a name string that contains the accessible name.
 	virtual ::rtl::OUString

Modified: openoffice/trunk/main/svx/inc/svx/AccessibleOLEShape.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/inc/svx/AccessibleOLEShape.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svx/inc/svx/AccessibleOLEShape.hxx (original)
+++ openoffice/trunk/main/svx/inc/svx/AccessibleOLEShape.hxx Thu Nov 14 08:18:05 2013
@@ -99,7 +99,10 @@ public:
     virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type> SAL_CALL
         getTypes (void)
         throw (::com::sun::star::uno::RuntimeException);
-
+//IAccessibility2 Implementation 2009-----
+// ====== XAccessibleExtendedAttributes =====================================
+    virtual ::com::sun::star::uno::Any SAL_CALL getExtendedAttributes() throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) ;
+//-----IAccessibility2 Implementation 2009
 protected:
     ///	Create a name string that contains the accessible name.
 	virtual ::rtl::OUString

Modified: openoffice/trunk/main/svx/inc/svx/AccessibleShape.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/inc/svx/AccessibleShape.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svx/inc/svx/AccessibleShape.hxx (original)
+++ openoffice/trunk/main/svx/inc/svx/AccessibleShape.hxx Thu Nov 14 08:18:05 2013
@@ -37,6 +37,30 @@
 #include <com/sun/star/lang/XUnoTunnel.hpp>
 #include <svx/AccessibleTextHelper.hxx>
 #include "svx/svxdllapi.h"
+//IAccessibility2 Implementation 2009-----
+#ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLESELECTION_HPP_ 
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+#endif
+#ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLETEXT_HPP_
+#include <com/sun/star/accessibility/XAccessibleText.hpp>
+#endif
+#ifndef _COM_SUN_STAR_ACCESSIBILITY_XAccessibleExtendedAttributes_HPP_
+#include <com/sun/star/accessibility/XAccessibleExtendedAttributes.hpp>
+#endif
+#ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLEGROUPPOSITION_HPP_
+#include <com/sun/star/accessibility/XAccessibleGroupPosition.hpp>
+#endif
+#ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLEHYPERTEXT_HPP_
+#include <com/sun/star/accessibility/XAccessibleHypertext.hpp>
+#endif
+#ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLEHYPERTEXT_HPP_
+#include <com/sun/star/accessibility/XAccessibleHypertext.hpp>
+#endif
+#ifndef INCLUDED_COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLEHYPERLINK_HPP
+#include <com/sun/star/accessibility/XAccessibleHyperlink.hpp>
+#endif
+//-----IAccessibility2 Implementation 2009
+
 #include "ChildrenManager.hxx"
 
 class SdrObject;
@@ -74,6 +98,12 @@ class IAccessibleParent;
 class SVX_DLLPUBLIC AccessibleShape
     :	public AccessibleContextBase,
         public AccessibleComponentBase,
+		//IAccessibility2 Implementation 2009-----
+        public ::com::sun::star::accessibility::XAccessibleSelection, 
+        public ::com::sun::star::accessibility::XAccessibleExtendedAttributes,
+        public ::com::sun::star::accessibility::XAccessibleGroupPosition,
+        public com::sun::star::accessibility::XAccessibleHypertext,
+		//-----IAccessibility2 Implementation 2009
         public IAccessibleViewForwarderListener,
         public ::com::sun::star::document::XEventListener,
         public ::com::sun::star::lang::XUnoTunnel
@@ -99,7 +129,56 @@ public:
 	AccessibleShape (
         const AccessibleShapeInfo& rShapeInfo,
         const AccessibleShapeTreeInfo& rShapeTreeInfo);
-
+	//IAccessibility2 Implementation 2009-----
+	AccessibleShape (
+        const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape>& rxShape, const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible>& rxParent, const AccessibleShapeTreeInfo& rShapeTreeInfo, sal_Int32 nIndex = -1);
+	 //Solution: Overwrite the object's current name.
+    virtual ::rtl::OUString SAL_CALL  	getAccessibleName (void) throw (::com::sun::star::uno::RuntimeException);
+    virtual ::rtl::OUString SAL_CALL  	getAccessibleDescription() throw (::com::sun::star::uno::RuntimeException);	
+	virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet> SAL_CALL getAccessibleRelationSet (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 );
+
+	// ====== XAccessibleExtendedAttributes =====================================
+	virtual ::com::sun::star::uno::Any SAL_CALL getExtendedAttributes() 
+	throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) ;
+	///	Return this object's role.
+	virtual sal_Int16 SAL_CALL getAccessibleRole (void) throw (::com::sun::star::uno::RuntimeException);
+    //=====  XAccessibleGroupPosition  =========================================
+    virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL
+        getGroupPosition( const ::com::sun::star::uno::Any& rAny )
+        throw (::com::sun::star::uno::RuntimeException);
+	virtual ::rtl::OUString SAL_CALL getObjectLink( const ::com::sun::star::uno::Any& accoject )
+        throw (::com::sun::star::uno::RuntimeException);
+	//-----IAccessibility2 Implementation 2009
     /** The destructor releases its children manager and text engine if
         still existent.  These are responsible to send appropriate events.
     */
@@ -312,6 +391,32 @@ public:
 	static AccessibleShape*										getImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxIFace ) throw();
 	sal_Int64													SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& _rIdentifier ) throw(::com::sun::star::uno::RuntimeException);
 
+	//===== XAccessibleHypertext ========================================================
+    virtual sal_Int32 SAL_CALL getHyperLinkCount() 	throw (::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleHyperlink > 
+		SAL_CALL getHyperLink( sal_Int32 nLinkIndex ) 	
+		throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+    virtual sal_Int32 SAL_CALL getHyperLinkIndex( sal_Int32 nCharIndex )
+		throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+	//=====  XAccesibleText  ==================================================
+		virtual sal_Int32 SAL_CALL getCaretPosition(  ) throw (::com::sun::star::uno::RuntimeException);
+		virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+		virtual sal_Unicode SAL_CALL getCharacter( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);//Shen Zhen Jie changed sal_Unicode to sal_uInt32; change back to sal_Unicode
+		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);
+		virtual ::com::sun::star::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+		virtual sal_Int32 SAL_CALL getCharacterCount(  ) throw (::com::sun::star::uno::RuntimeException);
+		virtual sal_Int32 SAL_CALL getIndexAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+		virtual ::rtl::OUString SAL_CALL getSelectedText(  ) throw (::com::sun::star::uno::RuntimeException);
+		virtual sal_Int32 SAL_CALL getSelectionStart(  ) throw (::com::sun::star::uno::RuntimeException);
+		virtual sal_Int32 SAL_CALL getSelectionEnd(  ) throw (::com::sun::star::uno::RuntimeException);
+		virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+		virtual ::rtl::OUString SAL_CALL getText(  ) throw (::com::sun::star::uno::RuntimeException);
+		virtual ::rtl::OUString SAL_CALL getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+		virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+		virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+		virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+		virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
     //===== Misc ========================================================
 
     ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >
@@ -378,7 +483,14 @@ protected:
 	virtual ::rtl::OUString
     	CreateAccessibleDescription (void)
         throw (::com::sun::star::uno::RuntimeException);
-
+	//IAccessibility2 Implementation 2009-----
+	virtual ::rtl::OUString
+       GetFullAccessibleName(AccessibleShape *shape) 
+       throw (::com::sun::star::uno::RuntimeException);
+    virtual::rtl::OUString GetStyle();
+	void UpdateDocumentAllSelState(::com::sun::star::uno::Reference< 
+		::com::sun::star::accessibility::XAccessibleStateSet > &xStateSet);
+	//-----IAccessibility2 Implementation 2009
     /** Update the <const>OPAQUE</const> and <const>SELECTED</const> state.
     */
     virtual void UpdateStates (void);
@@ -392,6 +504,10 @@ private:
     SVX_DLLPRIVATE explicit AccessibleShape (const AccessibleShape&);
     /// Don't use the assignment operator.  Do we need this?
     SVX_DLLPRIVATE AccessibleShape& operator= (const AccessibleShape&);
+	//IAccessibility2 Implementation 2009-----
+    //Solution:Old accessible name
+    ::rtl::OUString aAccName;
+	//-----IAccessibility2 Implementation 2009
 
     /** Call this method when the title, name, or description of the mxShape
         member (may) have been changed.

Modified: openoffice/trunk/main/svx/inc/svx/AccessibleTableShape.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/inc/svx/AccessibleTableShape.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svx/inc/svx/AccessibleTableShape.hxx (original)
+++ openoffice/trunk/main/svx/inc/svx/AccessibleTableShape.hxx Thu Nov 14 08:18:05 2013
@@ -34,6 +34,11 @@
 #include <cppuhelper/implbase2.hxx>
 
 #include <svx/AccessibleShape.hxx>
+//IAccessibility2 Implementation 2009-----
+#include <com/sun/star/view/XSelectionChangeListener.hpp>
+#include <com/sun/star/accessibility/XAccessibleTableSelection.hpp>
+#include <cppuhelper/compbase5.hxx>
+//-----IAccessibility2 Implementation 2009
 
 #include <boost/noncopyable.hpp>
 
@@ -44,14 +49,22 @@ namespace sdr { namespace table {
 namespace accessibility
 {
 	class AccessibleTableShapeImpl;
+	//IAccessibility2 Implementation 2009
+	class AccessibleCell;
 
-	typedef ::cppu::ImplInheritanceHelper2<	AccessibleShape,
+	//IAccessibility2 Implementation 2009-----
+	/*typedef ::cppu::ImplInheritanceHelper2<	AccessibleShape,
 											::com::sun::star::accessibility::XAccessibleSelection,
 											::com::sun::star::accessibility::XAccessibleTable
+										  >	AccessibleTableShape_Base;*/
+	typedef ::cppu::ImplInheritanceHelper2<	AccessibleShape,											
+											::com::sun::star::accessibility::XAccessibleTable,
+											::com::sun::star::view::XSelectionChangeListener
 										  >	AccessibleTableShape_Base;
+	//-----IAccessibility2 Implementation 2009
 /**	@descr
 */
-class AccessibleTableShape : boost::noncopyable, public AccessibleTableShape_Base
+class AccessibleTableShape : boost::noncopyable, public AccessibleTableShape_Base, public ::com::sun::star::accessibility::XAccessibleTableSelection
 {
 public:
 	AccessibleTableShape( const AccessibleShapeInfo& rShapeInfo, const AccessibleShapeTreeInfo& rShapeTreeInfo );
@@ -102,6 +115,17 @@ public:
     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 nChildIndex )  throw ( ::com::sun::star::lang::IndexOutOfBoundsException, ::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
 
 	// XServiceInfo
 	virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw(::com::sun::star::uno::RuntimeException);
@@ -109,7 +133,28 @@ public:
     // XComponent
     virtual void SAL_CALL disposing( );
 
+    // XSelectionChangeListener
+    virtual void SAL_CALL 
+        disposing (const ::com::sun::star::lang::EventObject& Source) 
+        throw (::com::sun::star::uno::RuntimeException);
+    virtual void  SAL_CALL
+        selectionChanged (const ::com::sun::star::lang::EventObject& rEvent)
+        throw (::com::sun::star::uno::RuntimeException);
+	sal_Int32 mnPreviousSelectionCount;
 	using AccessibleShape::disposing;
+	//IAccessibility2 Implementation 2009-----
+	friend class AccessibleTableHeaderShape;
+	
+	void getColumnAndRow( sal_Int32 nChildIndex, sal_Int32& rnColumn, sal_Int32& rnRow ) throw (::com::sun::star::lang::IndexOutOfBoundsException );
+	// overwrite the SetState & ResetState to do special operation for table cell's internal text
+	virtual sal_Bool SetState (sal_Int16 aState);
+	virtual sal_Bool ResetState (sal_Int16 aState);
+	// The following two methods are used to set state directly on table object, instread of the internal cell or paragraph. 
+	sal_Bool SetStateDirectly (sal_Int16 aState);
+	sal_Bool ResetStateDirectly (sal_Int16 aState);
+	// Get the currently active cell which is text editing
+	AccessibleCell* GetActiveAccessibleCell();
+	//-----IAccessibility2 Implementation 2009
 
 protected:
 	virtual ::rtl::OUString CreateAccessibleBaseName(void) throw (::com::sun::star::uno::RuntimeException);
@@ -117,11 +162,97 @@ protected:
 	sdr::table::SvxTableController* getTableController();
 
 	void checkCellPosition( sal_Int32 nCol, sal_Int32 nRow ) throw ( ::com::sun::star::lang::IndexOutOfBoundsException );
-	void getColumnAndRow( sal_Int32 nChildIndex, sal_Int32& rnColumn, sal_Int32& rnRow ) throw (::com::sun::star::lang::IndexOutOfBoundsException );
+	//IAccessibility2 Implementation 2009, move to public
+	//void getColumnAndRow( sal_Int32 nChildIndex, sal_Int32& rnColumn, sal_Int32& rnRow ) throw (::com::sun::star::lang::IndexOutOfBoundsException );
 
 private:
 	rtl::Reference< AccessibleTableShapeImpl > mxImpl;
+	//IAccessibility2 Implementation 2009-----
+	sal_Int32 GetIndexOfSelectedChild( sal_Int32 nSelectedChildIndex ) const;
+	//-----IAccessibility2 Implementation 2009
+};
+
+//IAccessibility2 Implementation 2009-----
+typedef ::cppu::WeakImplHelper5<
+			::com::sun::star::accessibility::XAccessible,
+			::com::sun::star::accessibility::XAccessibleComponent,
+			::com::sun::star::accessibility::XAccessibleContext,
+			::com::sun::star::accessibility::XAccessibleTable,
+			::com::sun::star::accessibility::XAccessibleTableSelection >
+			AccessibleTableHeaderShape_BASE;
+
+class AccessibleTableHeaderShape : boost::noncopyable, 
+	public MutexOwner,
+	public AccessibleTableHeaderShape_BASE 
+{
+public:
+	// bRow, sal_True means rowheader, sal_False means columnheader
+	AccessibleTableHeaderShape( AccessibleTableShape* pTable, sal_Bool bRow );
+	virtual ~AccessibleTableHeaderShape();
+	
+	// XAccessible
+    virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext> SAL_CALL getAccessibleContext( ) throw(::com::sun::star::uno::RuntimeException);
+
+	// XAccessibleContext
+	virtual sal_Int32 SAL_CALL getAccessibleChildCount(  ) throw (::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent(  ) throw (::com::sun::star::uno::RuntimeException);
+    virtual sal_Int32 SAL_CALL getAccessibleIndexInParent(  ) throw (::com::sun::star::uno::RuntimeException);
+    virtual sal_Int16 SAL_CALL getAccessibleRole(  ) throw (::com::sun::star::uno::RuntimeException);
+    virtual ::rtl::OUString SAL_CALL getAccessibleDescription(  ) throw (::com::sun::star::uno::RuntimeException);
+    virtual ::rtl::OUString SAL_CALL getAccessibleName(  ) throw (::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet(  ) throw (::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);
+    virtual ::com::sun::star::lang::Locale SAL_CALL getLocale(  ) throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException);
+
+	//XAccessibleComponent
+    virtual sal_Bool SAL_CALL containsPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);	
+    virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds(  ) throw (::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::awt::Point SAL_CALL getLocation(  ) throw (::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen(  ) throw (::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::awt::Size SAL_CALL getSize(  ) 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);
+    virtual void SAL_CALL grabFocus(  ) throw (::com::sun::star::uno::RuntimeException);
+
+	// XAccessibleTable
+	virtual sal_Int32 SAL_CALL getAccessibleRowCount() throw (::com::sun::star::uno::RuntimeException);
+	virtual sal_Int32 SAL_CALL getAccessibleColumnCount(  ) throw (::com::sun::star::uno::RuntimeException);
+	virtual ::rtl::OUString SAL_CALL getAccessibleRowDescription( sal_Int32 nRow ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+	virtual ::rtl::OUString SAL_CALL getAccessibleColumnDescription( sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+	virtual sal_Int32 SAL_CALL getAccessibleRowExtentAt( sal_Int32 nRow, sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+	virtual sal_Int32 SAL_CALL getAccessibleColumnExtentAt( sal_Int32 nRow, sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+	virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleTable > SAL_CALL getAccessibleRowHeaders(  ) throw (::com::sun::star::uno::RuntimeException);
+	virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleTable > SAL_CALL getAccessibleColumnHeaders(  ) throw (::com::sun::star::uno::RuntimeException);
+	virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL getSelectedAccessibleRows(  ) throw (::com::sun::star::uno::RuntimeException);
+	virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL getSelectedAccessibleColumns(  ) throw (::com::sun::star::uno::RuntimeException);
+	virtual sal_Bool SAL_CALL isAccessibleRowSelected( sal_Int32 nRow ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+	virtual sal_Bool SAL_CALL isAccessibleColumnSelected( sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+	virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleCellAt( sal_Int32 nRow, sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+	virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleCaption(  ) throw (::com::sun::star::uno::RuntimeException); 
+	virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleSummary(  ) throw (::com::sun::star::uno::RuntimeException);
+	virtual sal_Bool SAL_CALL isAccessibleSelected( sal_Int32 nRow, sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+	virtual sal_Int32 SAL_CALL getAccessibleIndex( sal_Int32 nRow, sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+	virtual sal_Int32 SAL_CALL getAccessibleRow( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+	virtual sal_Int32 SAL_CALL getAccessibleColumn( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+	//=====  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) ;
+private:
+	SVX_DLLPRIVATE explicit AccessibleTableHeaderShape( const ::com::sun::star::uno::Reference<
+            ::com::sun::star::accessibility::XAccessible>& rxParent );
+	sal_Bool mbRow;
+	rtl::Reference< AccessibleTableShape > mpTable;
 };
+//-----IAccessibility2 Implementation 2009
 
 } // end of namespace accessibility
 

Modified: openoffice/trunk/main/svx/inc/svx/ChildrenManager.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/inc/svx/ChildrenManager.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svx/inc/svx/ChildrenManager.hxx (original)
+++ openoffice/trunk/main/svx/inc/svx/ChildrenManager.hxx Thu Nov 14 08:18:05 2013
@@ -130,6 +130,10 @@ public:
     	GetChild (long nIndex)
         throw (::com::sun::star::uno::RuntimeException,
                ::com::sun::star::lang::IndexOutOfBoundsException);
+//IAccessibility2 Implementation 2009-----
+        ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> GetChild (const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape>& xShape) throw (::com::sun::star::uno::RuntimeException);
+        ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape> GetChildShape (long nIndex) throw (::com::sun::star::uno::RuntimeException);
+//-----IAccessibility2 Implementation 2009
 
     /** Update the child manager.  Take care of a modified set of children
         and modified visible area.  This method can optimize the update

Modified: openoffice/trunk/main/svx/inc/svx/EnhancedCustomShapeTypeNames.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/inc/svx/EnhancedCustomShapeTypeNames.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svx/inc/svx/EnhancedCustomShapeTypeNames.hxx (original)
+++ openoffice/trunk/main/svx/inc/svx/EnhancedCustomShapeTypeNames.hxx Thu Nov 14 08:18:05 2013
@@ -30,6 +30,9 @@ namespace EnhancedCustomShapeTypeNames
 {
 	SVX_DLLPUBLIC MSO_SPT Get( const rtl::OUString& );
 	SVX_DLLPUBLIC rtl::OUString Get( const MSO_SPT );
+
+	//IAccessibility2 Implementation 2009
+	rtl::OUString GetAccName( const rtl::OUString& );
 }
 
 #endif

Modified: openoffice/trunk/main/svx/inc/svx/IAccessibleParent.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/inc/svx/IAccessibleParent.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svx/inc/svx/IAccessibleParent.hxx (original)
+++ openoffice/trunk/main/svx/inc/svx/IAccessibleParent.hxx Thu Nov 14 08:18:05 2013
@@ -27,7 +27,11 @@
 #include <com/sun/star/uno/RuntimeException.hpp>
 #include <com/sun/star/drawing/XShape.hpp>
 #include <sal/types.h>
-
+//IAccessibility2 Implementation 2009-----
+#ifndef _SVX_ACCESSIBILITY_ACCESSIBLE_SHAPE_MANAGER_HXX
+#include "AccessibleControlShape.hxx"
+#endif
+//-----IAccessibility2 Implementation 2009
 namespace accessibility {
 
 class AccessibleShape;
@@ -84,6 +88,18 @@ public:
 		const long _nIndex,
 		const AccessibleShapeTreeInfo& _rShapeTreeInfo
 	)	throw (::com::sun::star::uno::RuntimeException) = 0;
+	//IAccessibility2 Implementation 2009-----
+	//Add this method to support Form Controls
+	virtual AccessibleControlShape* GetAccControlShapeFromModel
+		(::com::sun::star::beans::XPropertySet*) 
+		throw (::com::sun::star::uno::RuntimeException){return NULL;};
+	virtual  ::com::sun::star::uno::Reference<
+            ::com::sun::star::accessibility::XAccessible>
+        GetAccessibleCaption (const ::com::sun::star::uno::Reference<
+            ::com::sun::star::drawing::XShape>&)
+			throw (::com::sun::star::uno::RuntimeException){return NULL;};
+	virtual sal_Bool IsDocumentSelAll(){ return sal_False; }
+	//-----IAccessibility2 Implementation 2009
 };
 
 } // end of namespace accessibility

Modified: openoffice/trunk/main/svx/inc/svx/ctredlin.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/inc/svx/ctredlin.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svx/inc/svx/ctredlin.hxx (original)
+++ openoffice/trunk/main/svx/inc/svx/ctredlin.hxx Thu Nov 14 08:18:05 2013
@@ -299,6 +299,10 @@ public:
 	void			Enable( bool bEnable = true, bool bChild = true );
 	void			Disable( bool bChild = true );
 
+	//IAccessibility2 Implementation 2009-----
+	void			SetAccessibleRelationMemberOf( Window* pWindow);
+	//-----IAccessibility2 Implementation 2009
+
 	// } Methoden fuer Calc
 };
 

Modified: openoffice/trunk/main/svx/inc/svx/dlgctrl.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/inc/svx/dlgctrl.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svx/inc/svx/dlgctrl.hxx (original)
+++ openoffice/trunk/main/svx/inc/svx/dlgctrl.hxx Thu Nov 14 08:18:05 2013
@@ -78,6 +78,7 @@ typedef sal_uInt16 CTL_STATE;
 #define CS_NOVERT	2		// no vertikal input information is used
 
 class SvxRectCtlAccessibleContext;
+class SvxPixelCtlAccessible; // IAccessibility2 implementation 2009
 
 class SVX_DLLPUBLIC SvxRectCtl : public Control
 {
@@ -214,7 +215,11 @@ protected:
 	Size		aRectSize;
 	sal_uInt16* 	pPixel;
 	sal_Bool		bPaintable;
-
+	// IAccessibility2 implementation 2009. ------
+	//Solution:Add member identifying position
+	Point       aFocusPosition;
+	Rectangle   implCalFocusRect( const Point& aPosition );
+	// ------ IAccessibility2 implementation 2009.
 	void	ChangePixel( sal_uInt16 nPixel );
 
 public:
@@ -240,6 +245,25 @@ public:
 
 	void	SetPaintable( sal_Bool bTmp ) { bPaintable = bTmp; }
 	void	Reset();
+	// IAccessibility2 implementation 2009. ------
+	SvxPixelCtlAccessible*	m_pAccess;
+	::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >		m_xAccess;
+	virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > CreateAccessible();
+	long GetSquares() const { return nSquares ; }
+	long GetWidth() const { return aRectSize.getWidth() ; }
+	long GetHeight() const { return aRectSize.getHeight() ; }
+
+	//Device Pixel .
+	long ShowPosition( const Point &pt);
+	
+	long PointToIndex(const Point &pt) const;
+	Point IndexToPoint(long nIndex) const ;
+	long GetFoucsPosIndex() const ;
+	//Solution:Keyboard fucntion for key input and focus handling function
+	virtual void        KeyInput( const KeyEvent& rKEvt );
+	virtual void        GetFocus();
+    virtual void        LoseFocus();
+	// ------ IAccessibility2 implementation 2009.
 };
 
 /*************************************************************************

Modified: openoffice/trunk/main/svx/inc/svx/nbdtmg.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/inc/svx/nbdtmg.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svx/inc/svx/nbdtmg.hxx (original)
+++ openoffice/trunk/main/svx/inc/svx/nbdtmg.hxx Thu Nov 14 08:18:05 2013
@@ -199,7 +199,7 @@ class SVX_DLLPUBLIC NBOTypeMgrBase
 	private:
 		const SfxItemSet*	pSet;
 		SfxMapUnit		eCoreUnit;
-		//Sym3_2508    store the attributes passed from pSet
+		// store the attributes passed from pSet
 		String			aNumCharFmtName;
 		void			StoreBulCharFmtName_impl();
 		void			StoreMapUnit_impl();
@@ -217,7 +217,7 @@ class SVX_DLLPUBLIC NBOTypeMgrBase
 		virtual sal_Bool IsCustomized(sal_uInt16 nIndex)=0;
 		sal_uInt16 IsSingleLevel(sal_uInt16 nCurLevel);
 		const SfxItemSet* GetItems() { return pSet;}
-		//Sym3_2508    store the attributes passed from pSet
+		// store the attributes passed from pSet
 		void SetItems(const SfxItemSet* pArg) { pSet = pArg;StoreBulCharFmtName_impl();StoreMapUnit_impl();}
 	protected:
 		String GetBulCharFmtName();

Modified: openoffice/trunk/main/svx/inc/svx/sdr/table/tablecontroller.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/inc/svx/sdr/table/tablecontroller.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svx/inc/svx/sdr/table/tablecontroller.hxx (original)
+++ openoffice/trunk/main/svx/inc/svx/sdr/table/tablecontroller.hxx Thu Nov 14 08:18:05 2013
@@ -102,6 +102,19 @@ public:
 
     SVX_DLLPRIVATE void onTableModified();
 
+//IAccessibility2 Implementation 2009-----
+	sal_Bool selectRow( sal_Int32 row );
+	sal_Bool selectColumn( sal_Int32 column );
+	sal_Bool deselectRow( sal_Int32 row );
+	sal_Bool deselectColumn( sal_Int32 column );
+	sal_Bool isRowSelected( sal_Int32 nRow );
+	sal_Bool isColumnSelected( sal_Int32 nColumn );
+	sal_Bool isRowHeader();
+	sal_Bool isColumnHeader();
+	::sdr::table::SdrTableObj* GetTableObj() { return dynamic_cast< ::sdr::table::SdrTableObj* >( mxTableObj.get() ); }
+	//declare event notification method
+	void NotifySelection( const CellPos& firstPos, const CellPos& lastPos, const CellPos& newPos );
+//-----IAccessibility2 Implementation 2009
 private:
     SvxTableController(SvxTableController &); // not defined
     void operator =(SvxTableController &); // not defined

Modified: openoffice/trunk/main/svx/inc/svx/srchdlg.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/inc/svx/srchdlg.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svx/inc/svx/srchdlg.hxx (original)
+++ openoffice/trunk/main/svx/inc/svx/srchdlg.hxx Thu Nov 14 08:18:05 2013
@@ -155,8 +155,19 @@ public:
 	PushButton&     GetReplaceBtn() { return aReplaceBtn; }
 
 	sal_Int32			GetTransliterationFlags() const;
-
+//IAccessibility2 Impplementaton 2009-----
+	void SetDocWin( Window* pDocWin ) { mpDocWin = pDocWin; }
+	Window* GetDocWin() { return mpDocWin; }
+	void SetSrchFlag( sal_Bool bSuccess = sal_False ) { mbSuccess = bSuccess; }
+	sal_Bool GetSrchFlag() { return mbSuccess; }
+	virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > 
+		GetComponentInterface( sal_Bool bCreate );
+//-----IAccessibility2 Impplementaton 2009
 private:
+//IAccessibility2 Impplementaton 2009-----
+	Window*			mpDocWin;
+	sal_Bool			mbSuccess;
+//-----IAccessibility2 Impplementaton 2009
 	FixedText       aSearchText;
 	ComboBox        aSearchLB;
 	ListBox         aSearchTmplLB;

Modified: openoffice/trunk/main/svx/inc/svx/svdmodel.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/inc/svx/svdmodel.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svx/inc/svx/svdmodel.hxx (original)
+++ openoffice/trunk/main/svx/inc/svx/svdmodel.hxx Thu Nov 14 08:18:05 2013
@@ -80,9 +80,17 @@ class SotStorage;
 class SdrOutlinerCache;
 class SotStorageRef;
 class SdrUndoFactory;
-namespace comphelper { class IEmbeddedHelper; }
-namespace sfx2 { class LinkManager; }
-
+namespace comphelper{
+    class IEmbeddedHelper;
+}
+
+//IAccessibility2 Implementation 2009-----
+class ImageMap;
+//-----IAccessibility2 Implementation 2009
+
+namespace sfx2{
+    class LinkManager;
+}
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 
 #define SDR_SWAPGRAPHICSMODE_NONE		0x00000000
@@ -720,6 +728,11 @@ public:
 
     static const ::com::sun::star::uno::Sequence< sal_Int8 >& getUnoTunnelImplementationId();
 
+	//IAccessibility2 Implementation 2009-----
+	virtual ImageMap* GetImageMapForObject(SdrObject*){return NULL;};
+	virtual sal_Int32 GetHyperlinkCount(SdrObject*){return 0;}
+	//-----IAccessibility2 Implementation 2009
+
 	/** enables (true) or disables (false) recording of undo actions
 		If undo actions are added while undo is disabled, they are deleted.
 		Disabling undo does not clear the current undo buffer! */

Modified: openoffice/trunk/main/svx/inc/svx/svdmrkv.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/inc/svx/svdmrkv.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svx/inc/svx/svdmrkv.hxx (original)
+++ openoffice/trunk/main/svx/inc/svx/svdmrkv.hxx Thu Nov 14 08:18:05 2013
@@ -511,6 +511,9 @@ public:
 	// Endpunkt der Spiegelachse
     const Point& GetRef2() const { return aRef1; }
     void SetRef2(const Point& rPt);
+//IAccessibility2 Implementation 2009-----
+	void UnmarkObj(SdrObject* pObj);
+//-----IAccessibility2 Implementation 2009
 };
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////

Modified: openoffice/trunk/main/svx/inc/svx/svdoashp.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/inc/svx/svdoashp.hxx?rev=1541847&r1=1541846&r2=1541847&view=diff
==============================================================================
--- openoffice/trunk/main/svx/inc/svx/svdoashp.hxx (original)
+++ openoffice/trunk/main/svx/inc/svx/svdoashp.hxx Thu Nov 14 08:18:05 2013
@@ -258,6 +258,10 @@ public:
 	static bool doConstructOrthogonal(const ::rtl::OUString& rName);
 
 	using SdrTextObj::NbcSetOutlinerParaObject;
+
+	//IAccessibility2 Implementation 2009-----
+	::rtl::OUString GetCustomShapeName();
+	//-----IAccessibility2 Implementation 2009
 };
 
 #endif //_SVDOASHP_HXX