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

svn commit: r1543021 [3/29] - in /openoffice/branches/rejuvenate01: ./ main/ main/accessibility/inc/accessibility/extended/ main/accessibility/inc/accessibility/helper/ main/accessibility/inc/accessibility/standard/ main/accessibility/source/extended/ ...

Modified: openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessiblelist.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessiblelist.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessiblelist.cxx (original)
+++ openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessiblelist.cxx Mon Nov 18 12:53:58 2013
@@ -36,6 +36,12 @@
 #include <vcl/lstbox.hxx>
 #include <toolkit/helper/convert.hxx>
 
+#ifndef _UTL_ACCESSIBLERELATIONSETHELPER_HXX_
+#include <unotools/accessiblerelationsethelper.hxx>
+#endif
+#ifndef _COM_SUN_STAR_ACCESSIBILITY_ACCESSIBLERELATIONTYPE_HPP_
+#include <com/sun/star/accessibility/AccessibleRelationType.hpp>
+#endif
 using namespace ::com::sun::star;
 using namespace ::com::sun::star::uno;
 using namespace ::com::sun::star::lang;
@@ -65,6 +71,7 @@ VCLXAccessibleList::VCLXAccessibleList (
 	  m_nLastSelectedPos		( LISTBOX_ENTRY_NOTFOUND ),
 	  m_bDisableProcessEvent	( false ),
 	  m_bVisible				( true ),
+	m_nCurSelectedPos		( LISTBOX_ENTRY_NOTFOUND ),
       m_xParent                 ( _xParent )
 {
     // Because combo boxes and list boxes have the no common interface for
@@ -89,6 +96,7 @@ VCLXAccessibleList::VCLXAccessibleList (
         }
     }
     UpdateVisibleLineCount();
+	m_nCurSelectedPos=m_pListBoxHelper->GetSelectEntryPos();
 
 	sal_uInt16 nCount = static_cast<sal_uInt16>(getAccessibleChildCount());
 	m_aAccessibleChildren.reserve(nCount);
@@ -188,6 +196,218 @@ void VCLXAccessibleList::notifyVisibleSt
 	}
 }
 // -----------------------------------------------------------------------------
+void VCLXAccessibleList::UpdateSelection_Acc (::rtl::OUString sTextOfSelectedItem, bool b_IsDropDownList)
+{
+    if ( m_aBoxType == COMBOBOX )
+    {
+        ComboBox* pBox = static_cast<ComboBox*>(GetWindow());
+        if ( pBox != NULL )
+        {
+		// Find the index of the selected item inside the VCL control...
+		sal_uInt16 nIndex = pBox->GetEntryPos (XubString(sTextOfSelectedItem));
+		// ...and then find the associated accessibility object.
+		if ( nIndex == LISTBOX_ENTRY_NOTFOUND )
+			nIndex = 0;
+		UpdateSelection_Impl_Acc(b_IsDropDownList);
+        }
+    }
+}
+
+// -----------------------------------------------------------------------------
+void VCLXAccessibleList::UpdateSelection_Impl_Acc(bool b_IsDropDownList)
+{
+	uno::Any aOldValue, aNewValue;
+	VCLXAccessibleListItem* pCurItem =NULL;
+	
+	{
+		vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+		::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+	    	Reference< XAccessible > xNewAcc;
+		if ( m_pListBoxHelper )
+		{
+			sal_uInt16 i=0;
+			m_nCurSelectedPos = LISTBOX_ENTRY_NOTFOUND;
+			for ( ListItems::iterator aIter = m_aAccessibleChildren.begin();
+				  aIter != m_aAccessibleChildren.end(); ++aIter,++i)
+			{
+				Reference< XAccessible > xHold = *aIter;
+				if ( xHold.is() )
+				{
+					VCLXAccessibleListItem* pItem = static_cast< VCLXAccessibleListItem* >( xHold.get() );
+					// Retrieve the item's index from the list entry.
+					sal_Bool bNowSelected = m_pListBoxHelper->IsEntryPosSelected (i);
+					if (bNowSelected)
+						m_nCurSelectedPos = i;
+						
+					if ( bNowSelected && !pItem->IsSelected() )
+					{
+						xNewAcc = *aIter;
+						aNewValue <<= xNewAcc;
+
+						pCurItem = pItem;
+
+					}
+					else if ( pItem->IsSelected() )
+						m_nLastSelectedPos = i;
+
+					pItem->SetSelected( bNowSelected );
+				}
+				else
+				{ // it could happen that a child was not created before
+					checkEntrySelected(i,aNewValue,xNewAcc);
+				}
+			}
+			sal_uInt16 nCount = m_pListBoxHelper->GetEntryCount();
+			if ( i < nCount ) // here we have to check the if any other listbox entry is selected
+			{
+				for (; i < nCount && !checkEntrySelected(i,aNewValue,xNewAcc) ;++i )
+					;
+			}
+			if ( xNewAcc.is() && GetWindow()->HasFocus() )
+			{
+				if ( m_nLastSelectedPos != LISTBOX_ENTRY_NOTFOUND )
+					aOldValue <<= getAccessibleChild( (sal_Int32)m_nLastSelectedPos );
+				aNewValue <<= xNewAcc;
+			}
+		}
+	}
+	if (m_aBoxType == COMBOBOX && b_IsDropDownList)
+	{
+		//VCLXAccessibleDropDownComboBox
+		//when in list is dropped down, xText = NULL
+		if (m_pListBoxHelper->IsInDropDown())
+		{
+			if ( aNewValue.hasValue() || aOldValue.hasValue() )
+			{
+				NotifyAccessibleEvent(
+					AccessibleEventId::ACTIVE_DESCENDANT_CHANGED,
+					aOldValue,
+					aNewValue );
+
+				NotifyListItem(aNewValue);
+
+			}
+		}
+	}
+	else if (m_aBoxType == COMBOBOX && !b_IsDropDownList)
+	{
+		//VCLXAccessibleComboBox
+		NotifyAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, uno::Any(), uno::Any() );
+	}
+	else if (m_aBoxType == LISTBOX && b_IsDropDownList)
+	{
+		//VCLXAccessibleDropdownListBox
+		//when in list is dropped down, xText = NULL
+		if (m_pListBoxHelper->IsInDropDown())
+		{
+			if ( aNewValue.hasValue() || aOldValue.hasValue() )
+			{
+				NotifyAccessibleEvent(
+					AccessibleEventId::ACTIVE_DESCENDANT_CHANGED,
+					aOldValue,
+					aNewValue );
+				
+				NotifyListItem(aNewValue);
+			}
+		}
+	}
+	else if (m_aBoxType == LISTBOX && !b_IsDropDownList)
+	{
+		//VCLXAccessibleListBox, xText = NULL. 
+
+
+		if ( aNewValue.hasValue())
+		{
+			NotifyListItem(aNewValue);		
+		}
+	}
+}
+void VCLXAccessibleList::NotifyListItem(::com::sun::star::uno::Any& val)
+{
+	Reference< XAccessible > xCurItem;
+	val >>= xCurItem;
+	if (xCurItem.is())
+	{
+		VCLXAccessibleListItem* pCurItem = static_cast< VCLXAccessibleListItem* >(xCurItem.get());
+		if (pCurItem)
+		{
+			pCurItem->NotifyAccessibleEvent(AccessibleEventId::SELECTION_CHANGED,Any(),Any());
+		}
+	}				
+}
+
+
+void VCLXAccessibleList::UpdateFocus_Impl_Acc (sal_uInt16 nPos ,bool b_IsDropDownList)
+{	
+	if (!(m_aBoxType == LISTBOX && !b_IsDropDownList))
+	{
+		return ;
+	}
+    Reference<XAccessible> xChild= CreateChild(nPos);
+	if ( !xChild.is() )
+	{
+		return ;
+	}
+	m_nCurSelectedPos = nPos;
+	uno::Any aOldValue, aNewValue;
+	aNewValue <<= xChild;
+	
+	NotifyAccessibleEvent(
+			AccessibleEventId::ACTIVE_DESCENDANT_CHANGED,
+			aOldValue,
+			aNewValue );
+}
+
+// -----------------------------------------------------------------------------
+void VCLXAccessibleList::ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent,  bool b_IsDropDownList)
+{
+	switch ( rVclWindowEvent.GetId() )
+      {
+		case VCLEVENT_LISTBOX_SELECT:
+			if ( !m_bDisableProcessEvent )
+				UpdateSelection_Impl_Acc(b_IsDropDownList);
+			break;
+		case VCLEVENT_LISTBOX_FOCUSITEMCHANGED:
+			if ( !m_bDisableProcessEvent )
+				UpdateFocus_Impl_Acc((sal_uInt16)reinterpret_cast<sal_uIntPtr>(rVclWindowEvent.GetData()),b_IsDropDownList);
+			break;
+		case VCLEVENT_WINDOW_GETFOCUS:
+			break;
+		case VCLEVENT_CONTROL_GETFOCUS:
+			{
+				VCLXAccessibleComponent::ProcessWindowEvent (rVclWindowEvent);
+				if (m_aBoxType == COMBOBOX && b_IsDropDownList)
+				{
+					//VCLXAccessibleDropDownComboBox				
+				}
+				else if (m_aBoxType == LISTBOX && b_IsDropDownList)
+				{
+				}
+				else if ( m_aBoxType == LISTBOX && !b_IsDropDownList)
+				{
+					if ( m_pListBoxHelper )
+					{
+						uno::Any	aOldValue, 
+									aNewValue;
+						sal_uInt16 nPos = m_nCurSelectedPos; //m_pListBoxHelper->GetSelectEntryPos();
+
+						if ( nPos == LISTBOX_ENTRY_NOTFOUND )
+							nPos = m_pListBoxHelper->GetTopEntry();
+						if ( nPos != LISTBOX_ENTRY_NOTFOUND )
+							aNewValue <<= CreateChild(nPos);
+						NotifyAccessibleEvent(	AccessibleEventId::ACTIVE_DESCENDANT_CHANGED,
+												aOldValue,
+												aNewValue );
+					}
+				}
+			}
+			break;
+		default:
+			break;
+	}	
+
+}
+// -----------------------------------------------------------------------------
 void VCLXAccessibleList::ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent)
 {
     // Create a reference to this object to prevent an early release of the
@@ -206,11 +426,13 @@ void VCLXAccessibleList::ProcessWindowEv
 		case VCLEVENT_COMBOBOX_SCROLLED:
 			UpdateEntryRange_Impl();
 			break;
-
+		// IAccessible2 implementation, 2009
+		/*
 		case VCLEVENT_LISTBOX_SELECT:
 			if ( !m_bDisableProcessEvent )
 				UpdateSelection_Impl();
 			break;
+		*/
 		// The selection events VCLEVENT_COMBOBOX_SELECT and
 		// VCLEVENT_COMBOBOX_DESELECT are not handled here because here we
 		// have no access to the edit field.  Its text is necessary to
@@ -236,20 +458,29 @@ void VCLXAccessibleList::ProcessWindowEv
                 rVclWindowEvent.GetData()));
             break;
 		case VCLEVENT_CONTROL_GETFOCUS:
-            VCLXAccessibleComponent::ProcessWindowEvent (rVclWindowEvent);
-			if ( m_pListBoxHelper )
 			{
-				uno::Any	aOldValue, 
-							aNewValue;
-				sal_uInt16 nPos = m_pListBoxHelper->GetSelectEntryPos();
-				if ( nPos == LISTBOX_ENTRY_NOTFOUND )
-					nPos = m_pListBoxHelper->GetTopEntry();
-				if ( nPos != LISTBOX_ENTRY_NOTFOUND )
-					aNewValue <<= CreateChild(nPos);
-
-				NotifyAccessibleEvent(	AccessibleEventId::ACTIVE_DESCENDANT_CHANGED,
-										aOldValue,
-										aNewValue );
+	            VCLXAccessibleComponent::ProcessWindowEvent (rVclWindowEvent);
+				// Added by IBM Symphony Acc team to handle the list item focus when List control get focus
+				sal_Bool b_IsDropDownList = sal_True;
+				if (m_pListBoxHelper)
+					b_IsDropDownList = ((m_pListBoxHelper->GetStyle() & WB_DROPDOWN ) == WB_DROPDOWN);
+				if ( m_aBoxType == LISTBOX && !b_IsDropDownList )
+				{
+					if ( m_pListBoxHelper )
+					{
+						uno::Any	aOldValue, 
+									aNewValue;
+						sal_uInt16 nPos = m_nCurSelectedPos; 
+
+						if ( nPos == LISTBOX_ENTRY_NOTFOUND )
+							nPos = m_pListBoxHelper->GetTopEntry();
+						if ( nPos != LISTBOX_ENTRY_NOTFOUND )
+							aNewValue <<= CreateChild(nPos);
+						NotifyAccessibleEvent(	AccessibleEventId::ACTIVE_DESCENDANT_CHANGED,
+												aOldValue,
+												aNewValue );
+					}
+				}
 			}
 			break;
 
@@ -257,6 +488,24 @@ void VCLXAccessibleList::ProcessWindowEv
             VCLXAccessibleComponent::ProcessWindowEvent (rVclWindowEvent);
     }
 }
+
+ void VCLXAccessibleList::FillAccessibleRelationSet( utl::AccessibleRelationSetHelper& rRelationSet )
+{
+	ListBox* pBox = static_cast<ListBox*>(GetWindow());
+	if( m_aBoxType == LISTBOX  )
+	{
+		if (m_pListBoxHelper && (m_pListBoxHelper->GetStyle() & WB_DROPDOWN ) != WB_DROPDOWN)
+		{
+			uno::Sequence< uno::Reference< uno::XInterface > > aSequence(1);
+			aSequence[0] = pBox->GetAccessible();
+			rRelationSet.AddRelation( com::sun::star::accessibility::AccessibleRelation( com::sun::star::accessibility::AccessibleRelationType::MEMBER_OF, aSequence ) );
+		}
+	}
+	else
+	{
+		VCLXAccessibleComponent::FillAccessibleRelationSet(rRelationSet);	
+	}
+}
 // -----------------------------------------------------------------------------
 
 /** To find out which item is currently selected and to update the SELECTED
@@ -315,9 +564,12 @@ Reference<XAccessible> VCLXAccessibleLis
 		// check if position is empty and can be used else we have to adjust all entries behind this
 		if ( xChild.is() )
 		{
+			// IAccessible2 implementation, 2009
+			/*	
 			ListItems::iterator aIter = m_aAccessibleChildren.begin() + nPos;
             ::std::mem_fun_t<bool, VCLXAccessibleListItem> aTemp(&VCLXAccessibleListItem::IncrementIndexInParent);
 			adjustEntriesIndexInParent(	aIter, aTemp);
+			*/
 		}
 		else
 		{
@@ -332,6 +584,9 @@ Reference<XAccessible> VCLXAccessibleLis
 		sal_Bool bNowSelected = sal_False;
 		if ( m_pListBoxHelper )
 			bNowSelected = m_pListBoxHelper->IsEntryPosSelected ((sal_uInt16)i);
+		// IAccessible2 implementation 2009
+		if (bNowSelected)
+			m_nCurSelectedPos = sal_uInt16(i);
         VCLXAccessibleListItem* pItem = static_cast< VCLXAccessibleListItem* >(xChild.get());
         pItem->SetSelected( bNowSelected );
 
@@ -350,6 +605,8 @@ Reference<XAccessible> VCLXAccessibleLis
 
 void VCLXAccessibleList::HandleChangedItemList (bool bItemInserted, sal_Int32 nIndex)
 {
+	// IAccessible2 implementation 2009
+	/*
     if ( !bItemInserted )
 	{
 		if ( nIndex == -1 ) // special handling here
@@ -368,7 +625,8 @@ void VCLXAccessibleList::HandleChangedIt
 	}
 	else
 		getAccessibleChild(nIndex);
-
+	*/	
+	clearItems();	
     NotifyAccessibleEvent (
         AccessibleEventId::INVALIDATE_ALL_CHILDREN,
         Any(), Any());
@@ -415,7 +673,7 @@ Reference<XAccessible> SAL_CALL VCLXAcce
 
     Reference< XAccessible > xChild;
     // search for the child
-	if ( static_cast<sal_uInt16>(i) >= m_aAccessibleChildren.size() )
+	if ( i >= static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
 		xChild = CreateChild (i);
 	else
 	{
@@ -600,6 +858,7 @@ void VCLXAccessibleList::UpdateSelection
 		if ( m_pListBoxHelper )
 		{
 			sal_uInt16 i=0;
+			m_nCurSelectedPos = LISTBOX_ENTRY_NOTFOUND;
 			for ( ListItems::iterator aIter = m_aAccessibleChildren.begin();
 				  aIter != m_aAccessibleChildren.end(); ++aIter,++i)
 			{
@@ -609,6 +868,8 @@ void VCLXAccessibleList::UpdateSelection
 					VCLXAccessibleListItem* pItem = static_cast< VCLXAccessibleListItem* >( xHold.get() );
 					// Retrieve the item's index from the list entry.
 					sal_Bool bNowSelected = m_pListBoxHelper->IsEntryPosSelected (i);
+					if (bNowSelected)
+						m_nCurSelectedPos = i;
 
 					if ( bNowSelected && !pItem->IsSelected() )
 					{
@@ -639,14 +900,19 @@ void VCLXAccessibleList::UpdateSelection
 			}
 		}
 	}
-
-    if ( aNewValue.hasValue() || aOldValue.hasValue() )
-		NotifyAccessibleEvent(
-            AccessibleEventId::ACTIVE_DESCENDANT_CHANGED,
-            aOldValue,
-            aNewValue );
-
-	NotifyAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() );
+	if (!m_pListBoxHelper->IsInDropDown())
+	{
+	}
+	else
+	{
+		if ( aNewValue.hasValue() || aOldValue.hasValue() )
+			NotifyAccessibleEvent(
+				AccessibleEventId::ACTIVE_DESCENDANT_CHANGED,
+				aOldValue,
+				aNewValue );
+		//the SELECTION_CHANGED is not necessary
+		//NotifyAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() );
+	}
 }
 
 // -----------------------------------------------------------------------------
@@ -808,10 +1074,12 @@ awt::Rectangle VCLXAccessibleList::implG
 			if ( pBox )
 			{
 				Size aSize = pBox->GetSubEdit()->GetSizePixel();
-				aBounds.X += aSize.Height();
-				aBounds.Y += aSize.Width();
+				// IAccessible2 implementation, 2009
+				//aBounds.X += aSize.Height();
+				//aBounds.Y += aSize.Width();
+				aBounds.Y += aSize.Height();
 				aBounds.Height -= aSize.Height();
-				aBounds.Width  -= aSize.Width();
+				//aBounds.Width  -= aSize.Width();
 			}
 		}
 	}
@@ -839,12 +1107,33 @@ awt::Point VCLXAccessibleList::getLocati
 			ComboBox* pBox = static_cast<ComboBox*>(GetWindow());
 			if ( pBox )
 			{
-				aPos.X += pBox->GetSubEdit()->GetSizePixel().Height();
-				aPos.Y += pBox->GetSubEdit()->GetSizePixel().Width();
+				//aPos.X += pBox->GetSubEdit()->GetSizePixel().Height();
+				//aPos.Y += pBox->GetSubEdit()->GetSizePixel().Width();
+				aPos.Y += pBox->GetSubEdit()->GetSizePixel().Height();
 			}
 		}
 	}
 	return aPos;
 }
 // -----------------------------------------------------------------------------
-
+sal_Bool	VCLXAccessibleList::IsInDropDown() 
+{
+	return m_pListBoxHelper->IsInDropDown();
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleList::HandleDropOpen()
+{
+	if ( !m_bDisableProcessEvent )
+		UpdateSelection_Impl();
+	if (m_nCurSelectedPos != LISTBOX_ENTRY_NOTFOUND &&
+		m_nLastSelectedPos != LISTBOX_ENTRY_NOTFOUND)
+	{
+		Reference< XAccessible > xChild = getAccessibleChild(m_nCurSelectedPos);
+		if(xChild.is())
+		{
+			uno::Any aNewValue;
+			aNewValue <<= xChild;
+			NotifyAccessibleEvent(AccessibleEventId::ACTIVE_DESCENDANT_CHANGED,	uno::Any(), aNewValue );
+		}
+	}
+}

Modified: openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessiblelistitem.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessiblelistitem.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessiblelistitem.cxx (original)
+++ openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessiblelistitem.cxx Mon Nov 18 12:53:58 2013
@@ -317,9 +317,15 @@ Reference< XAccessibleStateSet > SAL_CAL
 	if ( !rBHelper.bDisposed && !rBHelper.bInDispose )
 	{
         pStateSetHelper->AddState( AccessibleStateType::TRANSIENT );
-        pStateSetHelper->AddState( AccessibleStateType::SELECTABLE );
-        pStateSetHelper->AddState( AccessibleStateType::ENABLED );
-        pStateSetHelper->AddState( AccessibleStateType::SENSITIVE );
+
+		// IAccessible2 implementation, 2009
+		if(m_pListBoxHelper->IsEnabled())	
+		{
+	    	pStateSetHelper->AddState( AccessibleStateType::SELECTABLE );
+	    	pStateSetHelper->AddState( AccessibleStateType::ENABLED );
+	    	pStateSetHelper->AddState( AccessibleStateType::SENSITIVE );
+		}
+
         if ( m_bSelected )
 			pStateSetHelper->AddState( AccessibleStateType::SELECTED );
 		if ( m_bVisible )

Modified: openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessiblemenu.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessiblemenu.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessiblemenu.cxx (original)
+++ openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessiblemenu.cxx Mon Nov 18 12:53:58 2013
@@ -249,3 +249,14 @@ void VCLXAccessibleMenu::deselectAccessi
 }
 
 // -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleMenu::getAccessibleActionDescription ( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+	OExternalLockGuard aGuard( this );
+
+	if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+        throw IndexOutOfBoundsException();
+
+	return ::rtl::OUString(  );
+}
+

Modified: openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessiblemenuitem.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessiblemenuitem.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessiblemenuitem.cxx (original)
+++ openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessiblemenuitem.cxx Mon Nov 18 12:53:58 2013
@@ -191,8 +191,19 @@ Sequence< ::rtl::OUString > VCLXAccessib
 sal_Int16 VCLXAccessibleMenuItem::getAccessibleRole(  ) throw (RuntimeException)
 {
 	OExternalLockGuard aGuard( this );
-
-	return AccessibleRole::MENU_ITEM;
+	// IA2 CWS. MT: We had the aditional roles in UAA for ever, but never used them anywhere.
+	// Looks reasonable, but need to verify in Orca and VoiceOver.
+	sal_Int16 nRole = AccessibleRole::MENU_ITEM;
+	if ( m_pParent )
+	{
+		sal_uInt16 nItemId = m_pParent->GetItemId( m_nItemPos );
+		MenuItemBits nItemBits = m_pParent->GetItemBits(nItemId);
+		if(  nItemBits & MIB_RADIOCHECK)
+			nRole = AccessibleRole::RADIO_MENU_ITEM;
+		else if( nItemBits & MIB_CHECKABLE)
+			nRole = AccessibleRole::CHECK_MENU_ITEM;
+	}
+	return nRole;
 }
 
 // -----------------------------------------------------------------------------
@@ -454,8 +465,9 @@ sal_Bool VCLXAccessibleMenuItem::doAcces
 
 	if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
         throw IndexOutOfBoundsException();
-
-	return ::rtl::OUString( TK_RES_STRING( RID_STR_ACC_ACTION_CLICK ) );
+	//IAccessibility2 Impplementaton 2009-----
+	return ::rtl::OUString( TK_RES_STRING( RID_STR_ACC_ACTION_SELECT ) );
+	//-----IAccessibility2 Impplementaton 2009
 }
 
 // -----------------------------------------------------------------------------

Modified: openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessibleradiobutton.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessibleradiobutton.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessibleradiobutton.cxx (original)
+++ openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessibleradiobutton.cxx Mon Nov 18 12:53:58 2013
@@ -197,8 +197,7 @@ sal_Bool VCLXAccessibleRadioButton::doAc
 
 	if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
         throw IndexOutOfBoundsException();
-
-	return ::rtl::OUString( TK_RES_STRING( RID_STR_ACC_ACTION_CLICK ) );
+	return ::rtl::OUString( TK_RES_STRING( RID_STR_ACC_ACTION_SELECT ) );
 }
 
 // -----------------------------------------------------------------------------

Modified: openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessiblescrollbar.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessiblescrollbar.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessiblescrollbar.cxx (original)
+++ openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessiblescrollbar.cxx Mon Nov 18 12:53:58 2013
@@ -88,7 +88,8 @@ void VCLXAccessibleScrollBar::FillAccess
 	VCLXScrollBar* pVCLXScrollBar = static_cast< VCLXScrollBar* >( GetVCLXWindow() );
 	if ( pVCLXScrollBar )
 	{
-        rStateSet.AddState( AccessibleStateType::FOCUSABLE );
+		// IA2 CWS: scroll bar should not have FOCUSABLE state.
+        // rStateSet.AddState( AccessibleStateType::FOCUSABLE );
 		if ( pVCLXScrollBar->getOrientation() == ScrollBarOrientation::HORIZONTAL )
             rStateSet.AddState( AccessibleStateType::HORIZONTAL );
 		else if ( pVCLXScrollBar->getOrientation() == ScrollBarOrientation::VERTICAL )
@@ -274,3 +275,21 @@ Any VCLXAccessibleScrollBar::getMinimumV
 }
 
 // -----------------------------------------------------------------------------
+
+// IAccessible2 implementation, 2009
+::rtl::OUString VCLXAccessibleScrollBar::getAccessibleName(  ) throw (uno::RuntimeException)
+{
+	OExternalLockGuard aGuard( this );
+
+	::rtl::OUString aName;
+	VCLXScrollBar* pVCLXScrollBar = static_cast< VCLXScrollBar* >( GetVCLXWindow() );
+	if ( pVCLXScrollBar )
+	{
+		if ( pVCLXScrollBar->getOrientation() == ScrollBarOrientation::HORIZONTAL )
+            aName = TK_RES_STRING( RID_STR_ACC_SCROLLBAR_NAME_HORIZONTAL );
+		else if ( pVCLXScrollBar->getOrientation() == ScrollBarOrientation::VERTICAL )
+            aName = TK_RES_STRING( RID_STR_ACC_SCROLLBAR_NAME_VERTICAL );
+	}
+	return aName;
+}
+

Modified: openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessibletabcontrol.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessibletabcontrol.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessibletabcontrol.cxx (original)
+++ openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessibletabcontrol.cxx Mon Nov 18 12:53:58 2013
@@ -81,7 +81,8 @@ void VCLXAccessibleTabControl::UpdateFoc
 
 void VCLXAccessibleTabControl::UpdateSelected( sal_Int32 i, bool bSelected )
 {
-	NotifyAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() );
+	// IAccessible2 implementation, 2009
+	//NotifyAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() );
 
 	if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
 	{

Modified: openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessibletextcomponent.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessibletextcomponent.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessibletextcomponent.cxx (original)
+++ openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessibletextcomponent.cxx Mon Nov 18 12:53:58 2013
@@ -189,10 +189,62 @@ Sequence< PropertyValue > VCLXAccessible
 
     if ( GetWindow() )
     {
-        Font aFont = GetWindow()->GetControlFont();
-        sal_Int32 nBackColor = GetWindow()->GetControlBackground().GetColor();
-        sal_Int32 nColor = GetWindow()->GetControlForeground().GetColor();
-        ::std::auto_ptr< CharacterAttributesHelper > pHelper( new CharacterAttributesHelper( aFont, nBackColor, nColor ) );
+		Font aFont = GetWindow()->GetControlFont();
+
+		sal_Int32 nBackColor = GetWindow()->GetControlBackground().GetColor();
+		sal_Int32 nColor = GetWindow()->GetControlForeground().GetColor();
+
+		// MT: Code with default font was introduced with the IA2 CWS, but I am not convinced that this is the correct font...
+		// Decide what to do when we have a concrete issue.
+		/*
+		Font aDefaultVCLFont;
+		OutputDevice* pDev = Application::GetDefaultDevice();
+		if ( pDev )
+		{	
+			aDefaultVCLFont = pDev->GetSettings().GetStyleSettings().GetAppFont();
+			if ( !aFont.GetName().Len() )
+			{
+				String aDefaultName = aDefaultVCLFont.GetName();
+				aFont.SetName( aDefaultName );
+			}
+			if ( !aFont.GetHeight() )
+			{
+				aFont.SetHeight( aDefaultVCLFont.GetHeight() );
+			}
+			if ( aFont.GetWeight() == WEIGHT_DONTKNOW )
+			{
+				aFont.SetWeight( aDefaultVCLFont.GetWeight() );
+			}
+
+			//if nColor is -1, it may indicate that the default color black is using.
+			if ( nColor == -1)
+			{
+				nColor = aDefaultVCLFont.GetColor().GetColor();
+			}
+		}
+		*/
+
+		// MT: Adjustment stuff was introduced with the IA2 CWS, but adjustment is not a character attribute...
+		// In case we reintroduce it, use adjustment as extra parameter for the CharacterAttributesHelper...
+		/*
+		WinBits aBits = GetWindow()->GetStyle();
+		sal_Int16 nAdjust = -1;
+		if ( aBits & WB_LEFT )
+		{
+			nAdjust = style::ParagraphAdjust_LEFT;
+		}
+		else if ( aBits & WB_RIGHT )
+		{
+			nAdjust = style::ParagraphAdjust_RIGHT;
+		}
+		else if ( aBits & WB_CENTER )
+		{
+			nAdjust = style::ParagraphAdjust_CENTER;
+		}
+		*/
+
+		::std::auto_ptr< CharacterAttributesHelper > pHelper( new CharacterAttributesHelper( aFont, nBackColor, nColor ) );
+		
 		aValues = pHelper->GetCharacterAttributes( aRequestedAttributes );
     }
 

Modified: openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessibletoolbox.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessibletoolbox.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessibletoolbox.cxx (original)
+++ openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessibletoolbox.cxx Mon Nov 18 12:53:58 2013
@@ -208,7 +208,7 @@ VCLXAccessibleToolBoxItem* VCLXAccessibl
 	{
 		ToolBoxItemsMap::iterator aIter = m_aAccessibleChildren.find( _nPos );
 		// returns only toolbox buttons, not windows
-		if ( aIter != m_aAccessibleChildren.end()  && !aIter->second.is())
+		if ( aIter != m_aAccessibleChildren.end()  && aIter->second.is())
 			pItem =	static_cast< VCLXAccessibleToolBoxItem* >( aIter->second.get() );
 	}
 
@@ -284,11 +284,14 @@ void VCLXAccessibleToolBox::ReleaseFocus
 	}
 }
 // -----------------------------------------------------------------------------
-void VCLXAccessibleToolBox::UpdateChecked_Impl( sal_Int32  )
+void VCLXAccessibleToolBox::UpdateChecked_Impl( sal_Int32 _nPos )
 {
     ToolBox* pToolBox = static_cast< ToolBox* >( GetWindow() );
     if ( pToolBox )
 	{
+		sal_uInt16 nFocusId = pToolBox->GetItemId( (sal_uInt16)_nPos );
+		VCLXAccessibleToolBoxItem* pFocusItem = NULL;
+
 	    for ( ToolBoxItemsMap::iterator aIter = m_aAccessibleChildren.begin();
 			  aIter != m_aAccessibleChildren.end(); ++aIter )
 		{
@@ -297,7 +300,12 @@ void VCLXAccessibleToolBox::UpdateChecke
                 VCLXAccessibleToolBoxItem* pItem =
                     static_cast< VCLXAccessibleToolBoxItem* >( aIter->second.get() );
                 pItem->SetChecked( pToolBox->IsItemChecked( nItemId ) );
+                if ( nItemId == nFocusId )
+                    pFocusItem = pItem;
         }
+		//Solution:If the position is not a child item,the focus should not be called
+		if ( pFocusItem && (sal_uInt16)_nPos != TOOLBOX_ITEM_NOTFOUND )
+			pFocusItem->SetFocus( sal_True );
 	}
 }
 // -----------------------------------------------------------------------------
@@ -535,23 +543,41 @@ void VCLXAccessibleToolBox::ProcessWindo
 	// to prevent an early release of the toolbox (VCLEVENT_OBJECT_DYING)
 	Reference< XAccessibleContext > xTemp = this;
 
+	ToolBox* pToolBox = static_cast< ToolBox* >( GetWindow() ); 
 	switch ( rVclWindowEvent.GetId() )
 	{
 		case VCLEVENT_TOOLBOX_CLICK:
+		case VCLEVENT_TOOLBOX_SELECT: 
         {
 			if ( rVclWindowEvent.GetData() )
             {
                 UpdateChecked_Impl( (sal_Int32)(sal_IntPtr)rVclWindowEvent.GetData() );
                 UpdateIndeterminate_Impl( (sal_Int32)(sal_IntPtr)rVclWindowEvent.GetData() );
             }
+			else if( pToolBox->GetItemPos(pToolBox->GetCurItemId()) != TOOLBOX_ITEM_NOTFOUND )
+			{
+				UpdateChecked_Impl( pToolBox->GetItemPos(pToolBox->GetCurItemId()) );
+		                UpdateIndeterminate_Impl( pToolBox->GetItemPos(pToolBox->GetCurItemId()) );
+			}
 			break;
         }
 		case VCLEVENT_TOOLBOX_DOUBLECLICK:
 		case VCLEVENT_TOOLBOX_ACTIVATE:
 		case VCLEVENT_TOOLBOX_DEACTIVATE:
-    	case VCLEVENT_TOOLBOX_SELECT:
+    	//case VCLEVENT_TOOLBOX_SELECT:
 			break;
-
+		// IA2 CWS. MT: Still using VCLEVENT_TOOLBOX_CLICK, see comment in vcl/source/window/toolbox2.cxx
+		/*
+		case VCLEVENT_TOOLBOX_ITEMUPDATED:
+		{
+	    	if ( rVclWindowEvent.GetData() )
+	        {
+				UpdateChecked_Impl( TOOLBOX_ITEM_NOTFOUND );
+	            UpdateIndeterminate_Impl( (sal_Int32)rVclWindowEvent.GetData() );
+	        }	
+		break;
+		}
+		*/
 		case VCLEVENT_TOOLBOX_HIGHLIGHT:
 			UpdateFocus_Impl();
 			break;

Modified: openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessibletoolboxitem.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessibletoolboxitem.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessibletoolboxitem.cxx (original)
+++ openoffice/branches/rejuvenate01/main/accessibility/source/standard/vclxaccessibletoolboxitem.cxx Mon Nov 18 12:53:58 2013
@@ -97,6 +97,10 @@ VCLXAccessibleToolBoxItem::VCLXAccessibl
 			else if (( ( nBits & TIB_CHECKABLE ) == TIB_CHECKABLE ) ||
                 ( ( nBits & TIB_AUTOCHECK ) == TIB_AUTOCHECK ) )
 				m_nRole	= AccessibleRole::TOGGLE_BUTTON;
+			else if ( (nBits & TIB_DROPDOWN) == TIB_DROPDOWN )
+			{
+				m_nRole	= AccessibleRole::BUTTON_DROPDOWN;
+			}
 			else if ( m_pToolBox->GetItemWindow( m_nItemId ) )
 				m_nRole	= AccessibleRole::PANEL;
 			break;
@@ -144,6 +148,18 @@ VCLXAccessibleToolBoxItem::~VCLXAccessib
 //				sRet += String( RTL_CONSTASCII_USTRINGPARAM( " " ) );
 //			sRet += sWinText;
 //		}
+		if (  sRet.getLength() == 0 )
+		{
+			Window* pItemWindow = m_pToolBox->GetItemWindow( m_nItemId );
+			if ( m_nRole == AccessibleRole::PANEL && pItemWindow && pItemWindow->GetAccessible().is() &&
+				 pItemWindow->GetAccessible()->getAccessibleContext().is() )
+			{
+				::rtl::OUString sWinText = pItemWindow->GetAccessible()->getAccessibleContext()->getAccessibleName();
+				 if ( sWinText.getLength() > 0 ) 
+					sRet = sWinText;
+			}
+		}
+
 	}
 	return sRet;
 }
@@ -165,6 +181,8 @@ void VCLXAccessibleToolBoxItem::SetFocus
 // -----------------------------------------------------------------------------
 void VCLXAccessibleToolBoxItem::SetChecked( sal_Bool _bCheck )
 {
+	if( m_nRole	== AccessibleRole::PANEL)
+		return;
 	if ( m_bIsChecked != _bCheck )
 	{
 		Any aOldValue;
@@ -370,11 +388,19 @@ sal_Int16 SAL_CALL VCLXAccessibleToolBox
 {
 	OExternalLockGuard aGuard( this );
 
-	::rtl::OUString sDescription;
-	if ( m_pToolBox )
+	
+	if(m_nRole	== AccessibleRole::PANEL && getAccessibleChildCount() > 0 )
+	{
+		return ::rtl::OUString( TK_RES_STRING( RID_STR_ACC_PANEL_DESCRIPTION ) );
+	}
+	else
+	{
+		::rtl::OUString sDescription;
+		if ( m_pToolBox )
 		sDescription = m_pToolBox->GetHelpText( m_nItemId );
 
-	return sDescription;
+		return sDescription;
+	}
 }
 // -----------------------------------------------------------------------------
 ::rtl::OUString SAL_CALL VCLXAccessibleToolBoxItem::getAccessibleName(  ) throw (RuntimeException)
@@ -404,11 +430,11 @@ Reference< XAccessibleStateSet > SAL_CAL
 	if ( m_pToolBox && !rBHelper.bDisposed && !rBHelper.bInDispose )
 	{
         pStateSetHelper->AddState( AccessibleStateType::FOCUSABLE );
-		if ( m_bIsChecked )
+		if ( m_bIsChecked && m_nRole != AccessibleRole::PANEL ) 
 	        pStateSetHelper->AddState( AccessibleStateType::CHECKED );
         if ( m_bIndeterminate )
 	        pStateSetHelper->AddState( AccessibleStateType::INDETERMINATE );
-		if ( m_pToolBox->IsItemEnabled( m_nItemId ) )
+		if ( m_pToolBox->IsEnabled() && m_pToolBox->IsItemEnabled( m_nItemId ) ) 
         {
             pStateSetHelper->AddState( AccessibleStateType::ENABLED );
             pStateSetHelper->AddState( AccessibleStateType::SENSITIVE );
@@ -674,6 +700,8 @@ Any VCLXAccessibleToolBoxItem::getCurren
 	if ( m_pToolBox )
 		aValue <<= (sal_Int32)m_pToolBox->IsItemChecked( m_nItemId );
 
+	if( m_nRole == AccessibleRole::PANEL )
+		aValue <<= (sal_Int32)0;
 	return aValue;
 }
 // -----------------------------------------------------------------------------

Modified: openoffice/branches/rejuvenate01/main/chart2/source/controller/accessibility/AccessibleBase.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/chart2/source/controller/accessibility/AccessibleBase.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/chart2/source/controller/accessibility/AccessibleBase.cxx (original)
+++ openoffice/branches/rejuvenate01/main/chart2/source/controller/accessibility/AccessibleBase.cxx Mon Nov 18 12:53:58 2013
@@ -651,7 +651,9 @@ sal_Int32 SAL_CALL AccessibleBase::getAc
 sal_Int16 SAL_CALL AccessibleBase::getAccessibleRole()
     throw (RuntimeException)
 {
-    return AccessibleRole::LIST_ITEM; // #i73747# role SHAPE seems more appropriate, but is not read
+	//IAccessibility2 Implementation 2009-----
+    return AccessibleRole::SHAPE/*LIST_ITEM*/; // #i73747# role SHAPE seems more appropriate, but is not read
+	//-----IAccessibility2 Implementation 2009
 }
 
 Reference< XAccessibleRelationSet > SAL_CALL AccessibleBase::getAccessibleRelationSet()

Modified: openoffice/branches/rejuvenate01/main/chart2/source/controller/dialogs/tp_DataSource.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/chart2/source/controller/dialogs/tp_DataSource.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/chart2/source/controller/dialogs/tp_DataSource.cxx (original)
+++ openoffice/branches/rejuvenate01/main/chart2/source/controller/dialogs/tp_DataSource.cxx Mon Nov 18 12:53:58 2013
@@ -69,10 +69,13 @@ const OUString lcl_aLabelRole( RTL_CONST
 String lcl_GetRoleLBEntry(
     const OUString & rRole, const OUString & rRange )
 {
-    String aEntry( rRole );
-    aEntry += '\t';
-    aEntry += String(
-        ::chart::DialogModel::ConvertRoleFromInternalToUI( rRole ));
+//IAccessibility2 Implementation 2009-----
+    //String aEntry( rRole );
+    //aEntry += '\t';
+    //aEntry += String(
+    //    ::chart::DialogModel::ConvertRoleFromInternalToUI( rRole ));
+    String aEntry(::chart::DialogModel::ConvertRoleFromInternalToUI( rRole ));
+	//-----IAccessibility2 Implementation 2009
     aEntry += '\t';
     aEntry += String( rRange );
 
@@ -139,10 +142,12 @@ OUString lcl_GetSequenceNameForLabel( ::
     return aResult;
 }
 
+//IAccessibility2 Implementation 2009-----
 static long lcl_pRoleListBoxTabs[] =
-	{	3,        // Number of Tabs
-		0, 0, 75
+	{	2,        // Number of Tabs
+		0, 75
 	};
+//-----IAccessibility2 Implementation 2009
 
 void lcl_ShowChooserButton(
     ::chart::RangeSelectionButton & rChooserButton,

Modified: openoffice/branches/rejuvenate01/main/configure.in
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/configure.in?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/configure.in (original)
+++ openoffice/branches/rejuvenate01/main/configure.in Mon Nov 18 12:53:58 2013
@@ -3936,8 +3936,34 @@ dnl ====================================
 AC_MSG_CHECKING([which python to use])
 if test "$_os" = "Darwin" && test "$with_system_python" != "no"; then
    with_system_python=yes
-   AC_MSG_RESULT([compiling against MacOSX10.7u.sdk (python version 2.7)])
-   PYTHON_CFLAGS="-I/Applications/Xcode.app/Contents/Developer//Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/include/python2.7"
+
+   _python="/Library/Frameworks/Python.framework/Versions/Current/bin/python" 
+   if test ! -f $_python; then
+   	  _python="/usr/bin/python"
+   fi
+   AC_MSG_RESULT([compiling against system python ($_python)])
+
+   _python_hexversion=`$_python -c "import sys; print(sys.hexversion);"`
+ 
+   dnl hex version of Python 2.7.1 = 34013680
+   if test $_python_hexversion -ge 34013680 ; then
+   	  _python_version=`$_python -c "import sys; print sys.version;" | head -n 1`
+      AC_MSG_RESULT([compiling against system python (version $_python_version)])
+
+	  _python_ver=`$_python -c "import distutils.sysconfig; print(distutils.sysconfig.get_config_var('VERSION'));"`
+	  
+	  if test -d "/Library/Frameworks/Python.framework/Versions/$_python_ver/include/python$_python_ver"; then
+	  	 PYTHON_CFLAGS="-I/Library/Frameworks/Python.framework/Versions/$_python_ver/include/python$_python_ver"
+	  elif test -d "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/include/python$_python_ver"; then
+	  	 PYTHON_CFLAGS="-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/include/python$_python_ver"  
+	  else
+		 PYTHON_CFLAGS="-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/Python.framework/Versions/$_python_ver/include/python$_python_ver"
+	  fi
+   else
+		AC_MSG_ERROR([Python 2.7.1 or higher is required])
+   fi
+
+>>>>>>> .merge-right.r1543013
    PYTHON_LIBS="-framework Python"
 elif test -n "$with_system_python" -o -n "$with_system_libs" && \
 	test "$with_system_python" != "no"; then

Modified: openoffice/branches/rejuvenate01/main/cui/source/customize/cfg.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/cui/source/customize/cfg.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/cui/source/customize/cfg.cxx (original)
+++ openoffice/branches/rejuvenate01/main/cui/source/customize/cfg.cxx Mon Nov 18 12:53:58 2013
@@ -1662,7 +1662,7 @@ SvxConfigPage::SvxConfigPage(
     aDescriptionField.SetControlBackground( GetSettings().GetStyleSettings().GetDialogColor() );
     aDescriptionField.SetAutoScroll( sal_True );
     aDescriptionField.EnableCursor( sal_False );
-
+	//IAccessibility2 Implementation 2009-----
 	aMoveUpButton.SetAccessibleName(String(CUI_RES(BUTTON_STR_UP)));
 	aMoveDownButton.SetAccessibleName(String(CUI_RES(BUTTON_STR_DOWN)));
 	aMoveUpButton.SetAccessibleRelationMemberOf(&aContentsSeparator);
@@ -1671,6 +1671,7 @@ SvxConfigPage::SvxConfigPage(
 	aModifyTopLevelButton.SetAccessibleRelationMemberOf(&aTopLevelSeparator);
 	aAddCommandsButton.SetAccessibleRelationMemberOf(&aContentsSeparator);
 	aModifyCommandButton.SetAccessibleRelationMemberOf(&aContentsSeparator);
+	//-----IAccessibility2 Implementation 2009
 }
 
 SvxConfigPage::~SvxConfigPage()
@@ -2929,9 +2930,10 @@ SvxMainMenuOrganizerDialog::SvxMainMenuO
 		LINK( this, SvxMainMenuOrganizerDialog, MoveHdl) );
 	aMoveDownButton.SetClickHdl	(
 		LINK( this, SvxMainMenuOrganizerDialog, MoveHdl) );
-
+	//IAccessibility2 Implementation 2009-----
 	aMoveUpButton.SetAccessibleName(String(CUI_RES(BUTTON_STR_UP)));
 	aMoveDownButton.SetAccessibleName(String(CUI_RES(BUTTON_STR_DOWN)));
+	//-----IAccessibility2 Implementation 2009
 }
 
 IMPL_LINK(SvxMainMenuOrganizerDialog, ModifyHdl, Edit*, pEdit)

Modified: openoffice/branches/rejuvenate01/main/cui/source/customize/cfg.src
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/cui/source/customize/cfg.src?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/cui/source/customize/cfg.src (original)
+++ openoffice/branches/rejuvenate01/main/cui/source/customize/cfg.src Mon Nov 18 12:53:58 2013
@@ -822,7 +822,7 @@ String RID_SVXSTR_RENAME_TOOLBAR
 {
 	Text [ en-US ] = "Rename Toolbar";
 };
-
+//IAccessibility2 Implementation 2009-----
 String BUTTON_STR_UP
 {
 	Text [ en-US ] = "Up";
@@ -831,4 +831,5 @@ String BUTTON_STR_DOWN
 {
 	Text [ en-US ] = "Down";
 };
+//-----IAccessibility2 Implementation 2009
 

Modified: openoffice/branches/rejuvenate01/main/cui/source/customize/macropg.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/cui/source/customize/macropg.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/cui/source/customize/macropg.cxx (original)
+++ openoffice/branches/rejuvenate01/main/cui/source/customize/macropg.cxx Mon Nov 18 12:53:58 2013
@@ -166,6 +166,9 @@ _HeaderTabListBox::_HeaderTabListBox( Wi
     maHeaderBar( this, WB_BUTTONSTYLE | WB_BOTTOMBORDER )
 {
     maListBox.SetHelpId( HID_MACRO_HEADERTABLISTBOX );
+
+	// enable the cell focus to show visible focus
+	maListBox.EnableCellFocus();
 }
 
 _HeaderTabListBox::~_HeaderTabListBox()

Modified: openoffice/branches/rejuvenate01/main/cui/source/dialogs/cuigrfflt.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/cui/source/dialogs/cuigrfflt.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/cui/source/dialogs/cuigrfflt.cxx (original)
+++ openoffice/branches/rejuvenate01/main/cui/source/dialogs/cuigrfflt.cxx Mon Nov 18 12:53:58 2013
@@ -535,7 +535,8 @@ GraphicFilterSolarize::GraphicFilterSola
 	maCbxInvert.Check( bInvert );
 	maCbxInvert.SetToggleHdl( GetModifyHdl() );
 
-	maMtrThreshold.GrabFocus();
+	// IAccessibility2 Implementation 2009
+	// maMtrThreshold.GrabFocus();
 }
 
 // -----------------------------------------------------------------------------
@@ -595,7 +596,8 @@ GraphicFilterSepia::GraphicFilterSepia( 
 	maMtrSepia.SetValue( nSepiaPercent );
 	maMtrSepia.SetModifyHdl( GetModifyHdl() );
 
-	maMtrSepia.GrabFocus();
+	// IAccessibility2 Implementation 2009
+	// maMtrSepia.GrabFocus();
 }
 
 // -----------------------------------------------------------------------------
@@ -646,7 +648,9 @@ GraphicFilterPoster::GraphicFilterPoster
     maNumPoster.SetLast( rGraphic.GetBitmapEx().GetBitCount() );
 	maNumPoster.SetValue( nPosterCount );
 	maNumPoster.SetModifyHdl( GetModifyHdl() );
-	maNumPoster.GrabFocus();
+
+	// IAccessibility2 Implementation 2009
+	// maNumPoster.GrabFocus();
 }
 
 // -----------------------------------------------------------------------------

Modified: openoffice/branches/rejuvenate01/main/cui/source/dialogs/iconcdlg.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/cui/source/dialogs/iconcdlg.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/cui/source/dialogs/iconcdlg.cxx (original)
+++ openoffice/branches/rejuvenate01/main/cui/source/dialogs/iconcdlg.cxx Mon Nov 18 12:53:58 2013
@@ -456,6 +456,11 @@ void IconChoiceDialog::ShowPage( sal_uIn
 	ActivatePageImpl( );
     if(bInvalidate)
         Invalidate();
+
+	// IA2 CWS. MT: I guess we want the event now, and not in Paint()?
+	IconChoicePageData* pData = GetPageData ( mnCurrentPageId );
+	if(pData)
+		ShowPageImpl ( pData );
 }
 
 /**********************************************************************

Modified: openoffice/branches/rejuvenate01/main/cui/source/inc/cuicharmap.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/cui/source/inc/cuicharmap.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/cui/source/inc/cuicharmap.hxx (original)
+++ openoffice/branches/rejuvenate01/main/cui/source/inc/cuicharmap.hxx Mon Nov 18 12:53:58 2013
@@ -82,7 +82,12 @@ private:
 friend class SvxCharacterMap;
     SfxModalDialog* mpDialog;
 
+    FixedText       aFontText;
+    ListBox         aFontLB;
+    FixedText       aSubsetText;
+    ListBox         aSubsetLB;
     SvxShowCharSet  aShowSet;
+    FixedText       aSymbolText;
     SvxShowText     aShowText;
 //    SvxShowText     aShowShortcut;
     OKButton        aOKBtn;
@@ -90,11 +95,6 @@ friend class SvxCharacterMap;
     HelpButton      aHelpBtn;
     PushButton      aDeleteBtn;
 //    PushButton		aAssignBtn;
-    FixedText       aFontText;
-    ListBox         aFontLB;
-    FixedText       aSubsetText;
-    ListBox         aSubsetLB;
-    FixedText       aSymbolText;
     SvxShowText     aShowChar;
     FixedText       aCharCodeText;
 //	FixedText		aAssignText;

Modified: openoffice/branches/rejuvenate01/main/cui/source/inc/headertablistbox.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/cui/source/inc/headertablistbox.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/cui/source/inc/headertablistbox.hxx (original)
+++ openoffice/branches/rejuvenate01/main/cui/source/inc/headertablistbox.hxx Mon Nov 18 12:53:58 2013
@@ -31,8 +31,8 @@
 class _HeaderTabListBox : public Control
 {
 private:
-	SvHeaderTabListBox			maListBox;
 	HeaderBar					maHeaderBar;
+	SvHeaderTabListBox			maListBox;
 protected:
 	DECL_LINK( HeaderEndDrag_Impl, HeaderBar* );
 	virtual long				Notify( NotifyEvent& rNEvt );

Modified: openoffice/branches/rejuvenate01/main/cui/source/tabpages/autocdlg.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/cui/source/tabpages/autocdlg.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/cui/source/tabpages/autocdlg.cxx (original)
+++ openoffice/branches/rejuvenate01/main/cui/source/tabpages/autocdlg.cxx Mon Nov 18 12:53:58 2013
@@ -2052,12 +2052,12 @@ OfaQuoteTabPage::OfaQuoteTabPage( Window
 
     sStandard(CUI_RES(ST_STANDARD))
 {
-	aSglStandardPB.SetAccessibleName(String(CUI_RES(STR_PB_SGL_STD) ) );
-	aDblStandardPB.SetAccessibleName(String(CUI_RES(STR_PB_DBL_STD) ) );
-	aStartQuotePB.SetAccessibleName( String(CUI_RES(STR_PB_DBL_START) ));
-	aEndQuotePB.SetAccessibleName(String(CUI_RES(STR_PB_DBL_END) ));
-	aSglStartQuotePB.SetAccessibleName(String(CUI_RES(STR_PB_SGL_START) ));
-	aSglEndQuotePB.SetAccessibleName(String(CUI_RES(STR_PB_SGL_END) ) );
+	//aSglStandardPB.SetAccessibleName(String(CUI_RES(STR_PB_SGL_STD) ) );
+	//aDblStandardPB.SetAccessibleName(String(CUI_RES(STR_PB_DBL_STD) ) );
+	//aStartQuotePB.SetAccessibleName( String(CUI_RES(STR_PB_DBL_START) ));
+	//aEndQuotePB.SetAccessibleName(String(CUI_RES(STR_PB_DBL_END) ));
+	//aSglStartQuotePB.SetAccessibleName(String(CUI_RES(STR_PB_SGL_START) ));
+	//aSglEndQuotePB.SetAccessibleName(String(CUI_RES(STR_PB_SGL_END) ) );
 
 	FreeResource();
 	
@@ -2100,6 +2100,15 @@ OfaQuoteTabPage::OfaQuoteTabPage( Window
 	aDblStandardPB.SetClickHdl(LINK(this, 	OfaQuoteTabPage, StdQuoteHdl));
 	aSglStandardPB.SetClickHdl(LINK(this, 	OfaQuoteTabPage, StdQuoteHdl));
 
+	//IAccessibility2 Implementation 2009-----
+	// Move down from the position before FreeResource() 
+	// For lost help ID issue
+	aSglStandardPB.SetAccessibleName(String(CUI_RES(STR_PB_SGL_STD) ) );
+	aDblStandardPB.SetAccessibleName(String(CUI_RES(STR_PB_DBL_STD) ) );
+	aStartQuotePB.SetAccessibleName( String(CUI_RES(STR_PB_DBL_START) ));
+	aEndQuotePB.SetAccessibleName(String(CUI_RES(STR_PB_DBL_END) ));
+	aSglStartQuotePB.SetAccessibleName(String(CUI_RES(STR_PB_SGL_START) ));
+	aSglEndQuotePB.SetAccessibleName(String(CUI_RES(STR_PB_SGL_END) ) );
 	aSglStartQuotePB.SetAccessibleRelationLabeledBy( &aSglStartQuoteFT );
 	aSglEndQuotePB.SetAccessibleRelationLabeledBy( &aSglEndQuoteFT );
 	aSglStartQuotePB.SetAccessibleRelationMemberOf( &aSingleFL );

Modified: openoffice/branches/rejuvenate01/main/cui/source/tabpages/autocdlg.src
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/cui/source/tabpages/autocdlg.src?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/cui/source/tabpages/autocdlg.src (original)
+++ openoffice/branches/rejuvenate01/main/cui/source/tabpages/autocdlg.src Mon Nov 18 12:53:58 2013
@@ -493,6 +493,30 @@ TabPage RID_OFAPAGE_AUTOCORR_EXCEPT
     {
         Text [ en-US ] = "Delete words with two initial capitals" ;
 	};
+	String STR_PB_SGL_STD
+    {
+        Text [ en-US ] = "Single quotes default" ;
+	};
+	String STR_PB_DBL_STD
+    {
+        Text [ en-US ] = "Double quotes default" ;
+	};
+	String STR_PB_SGL_START
+    {
+        Text [ en-US ] = "Start quote of single quotes" ;
+	};
+	String STR_PB_DBL_START
+    {
+        Text [ en-US ] = "Start quote of double quotes" ;
+	};
+	String STR_PB_SGL_END
+    {
+        Text [ en-US ] = "End quote of single quotes" ;
+	};
+	String STR_PB_DBL_END
+    {
+        Text [ en-US ] = "End quote of double quotes" ;
+	};
 };
 /**************************************************************************/
 /*                                                                        */
@@ -661,30 +685,6 @@ TabPage RID_OFAPAGE_AUTOCORR_QUOTE
     {
         Text [ en-US ] = "Default" ;
 	};
-	String STR_PB_SGL_STD
-    {
-        Text [ en-US ] = "Single quotes default" ;
-	};
-	String STR_PB_DBL_STD
-    {
-        Text [ en-US ] = "Double quotes default" ;
-	};
-	String STR_PB_SGL_START
-    {
-        Text [ en-US ] = "Start quote of single quotes" ;
-	};
-	String STR_PB_DBL_START
-    {
-        Text [ en-US ] = "Start quote of double quotes" ;
-	};
-	String STR_PB_SGL_END
-    {
-        Text [ en-US ] = "End quote of single quotes" ;
-	};
-	String STR_PB_DBL_END
-    {
-        Text [ en-US ] = "End quote of double quotes" ;
-	};
 };
 
 /**************************************************************************/

Modified: openoffice/branches/rejuvenate01/main/cui/source/tabpages/connect.hrc
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/cui/source/tabpages/connect.hrc?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/cui/source/tabpages/connect.hrc (original)
+++ openoffice/branches/rejuvenate01/main/cui/source/tabpages/connect.hrc Mon Nov 18 12:53:58 2013
@@ -39,3 +39,5 @@
 #define FT_TYPE 8
 #define LB_TYPE 1
 #define CTL_PREVIEW 1
+//IAccessibility2 Implementation 2009-----
+#define STR_EXAMPLE 1

Modified: openoffice/branches/rejuvenate01/main/cui/source/tabpages/tabarea.src
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/cui/source/tabpages/tabarea.src?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/cui/source/tabpages/tabarea.src (original)
+++ openoffice/branches/rejuvenate01/main/cui/source/tabpages/tabarea.src Mon Nov 18 12:53:58 2013
@@ -875,6 +875,9 @@ TabPage RID_SVXPAGE_BITMAP
         Pos = MAP_APPFONT ( 12 , 25  ) ;
 		Size = MAP_APPFONT ( 72 , 72 ) ;
 		TabStop = TRUE ;
+		//IAccessibility2 Implementation 2009-----
+		Text [ en-US ] = "Pattern Editor";
+		//-----IAccessibility2 Implementation 2009
 	};
     FixedText FT_COLOR
 	{
@@ -1316,12 +1319,18 @@ TabPage RID_SVXPAGE_COLOR
         Border = TRUE;
         Pos = MAP_APPFONT ( 157 , 14  ) ;
         Size = MAP_APPFONT ( 34 , 25 ) ;
+        // IAccessibility2 implementation 2009. ------
+		Text [ en-US ] = "Old Color" ;
+		// ------ IAccessibility2 implementation 2009.
 	};
 	Control CTL_PREVIEW_NEW
 	{
         Border = TRUE;
         Pos = MAP_APPFONT ( 157, 39  ) ;
         Size = MAP_APPFONT ( 34 , 25 ) ;
+        // IAccessibility2 implementation 2009. ------
+        Text [ en-US ] = "New Color" ;
+        // ------ IAccessibility2 implementation 2009.
 	};
     ListBox LB_COLORMODEL
 	{

Modified: openoffice/branches/rejuvenate01/main/cui/source/tabpages/tparea.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/cui/source/tabpages/tparea.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/cui/source/tabpages/tparea.cxx (original)
+++ openoffice/branches/rejuvenate01/main/cui/source/tabpages/tparea.cxx Mon Nov 18 12:53:58 2013
@@ -2213,6 +2213,11 @@ IMPL_LINK( SvxAreaTabPage, ClickBitmapHd
 	aMtrFldYOffset.Show();
     aFlPosition.Show();
 	aRbtRow.Show();
+//IAccessible2 Implementation 2009-----
+	//Solution:Check one when initializing.
+	if(!aRbtRow.IsChecked()&&!aRbtColumn.IsChecked())
+	        aRbtRow.Check();
+//-----IAccessible2 Implementation 2009
 	aRbtColumn.Show();
 	aMtrFldOffset.Show();
     aFlOffset.Show();

Modified: openoffice/branches/rejuvenate01/main/editeng/inc/editeng/AccessibleEditableTextPara.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/editeng/inc/editeng/AccessibleEditableTextPara.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/editeng/inc/editeng/AccessibleEditableTextPara.hxx (original)
+++ openoffice/branches/rejuvenate01/main/editeng/inc/editeng/AccessibleEditableTextPara.hxx Mon Nov 18 12:53:58 2013
@@ -373,6 +373,13 @@ namespace accessibility
         /// Check whether 0<=nStart<=n and 0<=nEnd<=n
         void CheckRange( sal_Int32 nStart, sal_Int32 nEnd ) SAL_THROW((::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException));
 
+//IAccessibility2 Implementation 2009-----
+		void _correctValues( const sal_Int32 nIndex, ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& rValues );
+	 	sal_Int32 SkipField(sal_Int32 nIndex, sal_Bool bForward);
+	 // get overlapped field, extend return string. Only extend forward for now
+		sal_Bool ExtendByField( ::com::sun::star::accessibility::TextSegment& Segment );
+		String GetFieldTypeNameAtIndex(sal_Int32 nIndex);
+//-----IAccessibility2 Implementation 2009
         // the paragraph index in the edit engine (guarded by solar mutex)
         sal_Int32	mnParagraphIndex;
 
@@ -400,6 +407,14 @@ namespace accessibility
 
         /// Our listeners (guarded by maMutex)
         int mnNotifierClientId;
+	//IAccessibility2 Implementation 2009-----
+public:
+		void SetParagraphBackColorAccessible(const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > & ref)
+		{ m_xAccInfo = ref ;}		
+private:
+		::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > m_xAccInfo;
+        //virtual sal_Bool IsShapeParaFocusable( );
+	//-----IAccessibility2 Implementation 2009
 
         // --> OD 2006-01-11 #i27138#
         // the paragraph manager, which created this instance - is NULL, if

Modified: openoffice/branches/rejuvenate01/main/editeng/inc/editeng/editdata.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/editeng/inc/editeng/editdata.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/editeng/inc/editeng/editdata.hxx (original)
+++ openoffice/branches/rejuvenate01/main/editeng/inc/editeng/editdata.hxx Mon Nov 18 12:53:58 2013
@@ -363,7 +363,10 @@ enum EENotifyType
     EE_NOTIFY_INPUT_START,
 
     /// Denotes the end of a high-level action triggered by a key press
-    EE_NOTIFY_INPUT_END
+    EE_NOTIFY_INPUT_END,
+//IAccessibility2 Implementation 2009-----
+	EE_NOTIFY_TEXTVIEWSELECTIONCHANGED_ENDD_PARA
+//-----IAccessibility2 Implementation 2009
 };
 
 struct EENotify

Modified: openoffice/branches/rejuvenate01/main/editeng/inc/editeng/editeng.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/editeng/inc/editeng/editeng.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/editeng/inc/editeng/editeng.hxx (original)
+++ openoffice/branches/rejuvenate01/main/editeng/inc/editeng/editeng.hxx Mon Nov 18 12:53:58 2013
@@ -108,6 +108,9 @@ const sal_uInt8 EditEngineAttribs_OnlyHa
 #define GETATTRIBS_CHARATTRIBS  (sal_uInt8)0x04
 #define GETATTRIBS_ALL          (sal_uInt8)0xFF
 
+//IAccessibility2 Implementation 2009-----
+class SdrObject;
+//-----IAccessibility2 Implementation 2009
 class EDITENG_DLLPUBLIC EditEngine
 {
 	friend class EditView;
@@ -145,6 +148,9 @@ public:
 
 	void			SetUpdateMode( sal_Bool bUpdate );
 	sal_Bool			GetUpdateMode() const;
+	//IAccessible2 migration fix
+	void					SetUpdateModeForAcc( sal_Bool bUp);
+	sal_Bool				GetUpdateModeForAcc( ) const;
 
 	void			SetBackgroundColor( const Color& rColor );
 	Color			GetBackgroundColor() const;
@@ -469,7 +475,9 @@ public:
 	static void		ImportBulletItem( SvxNumBulletItem& rNumBullet, sal_uInt16 nLevel, const SvxBulletItem* pOldBullet, const SvxLRSpaceItem* pOldLRSpace );
 	static sal_Bool 	IsPrintable( sal_Unicode c ) { return ( ( c >= 32 ) && ( c != 127 ) ); }
     static sal_Bool     HasValidData( const ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::XTransferable >& rTransferable );
-
+	//IAccessibility2 Implementation 2009-----
+	virtual SdrObject* GetCurTextObj() { return NULL; }
+	//-----IAccessibility2 Implementation 2009
 	/** sets a link that is called at the beginning of a drag operation at an edit view */
 	void			SetBeginDropHdl( const Link& rLink );
 	Link			GetBeginDropHdl() const;

Modified: openoffice/branches/rejuvenate01/main/editeng/inc/editeng/editrids.hrc
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/editeng/inc/editeng/editrids.hrc?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/editeng/inc/editeng/editrids.hrc (original)
+++ openoffice/branches/rejuvenate01/main/editeng/inc/editeng/editrids.hrc Mon Nov 18 12:53:58 2013
@@ -373,8 +373,10 @@
 #define RID_STR_WORD						(RID_EDIT_START + 313)
 #define RID_SVXSTR_A11Y_IMAGEBULLET_DESCRIPTION	(RID_EDIT_START + 314)
 #define RID_SVXSTR_A11Y_IMAGEBULLET_NAME		(RID_EDIT_START + 315)
+#define RID_SVXSTR_A11Y_PARAGRAPH_DESCRIPTION	(RID_EDIT_START + 316)
+#define RID_SVXSTR_A11Y_PARAGRAPH_NAME			(RID_EDIT_START + 317)
 
-#if 315 > (RID_EDIT_END-RID_EDIT_START)
+#if 317 > (RID_EDIT_END-RID_EDIT_START)
 #error Resource-Ueberlauf in #line, #file
 #endif
 

Modified: openoffice/branches/rejuvenate01/main/editeng/inc/editeng/editview.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/editeng/inc/editeng/editview.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/editeng/inc/editeng/editview.hxx (original)
+++ openoffice/branches/rejuvenate01/main/editeng/inc/editeng/editview.hxx Mon Nov 18 12:53:58 2013
@@ -219,6 +219,10 @@ public:
 
 	sal_Bool			IsCursorAtWrongSpelledWord( sal_Bool bMarkIfWrong = sal_False );
 	sal_Bool			IsWrongSpelledWordAtPos( const Point& rPosPixel, sal_Bool bMarkIfWrong = sal_False );
+	//IAccessibility2 Implementation 2009-----
+    	sal_Bool IsShapeParaFocusable( ) ;
+    sal_Bool WrongSpelledBreakPara(sal_Int32 nPara,sal_uInt16& nStartIndex, sal_uInt16& nEndIndex,sal_Int32 nIndex);
+	//-----IAccessibility2 Implementation 2009
 	void			SpellIgnoreWord();
 	void			ExecuteSpellPopup( const Point& rPosPixel, Link* pCallBack = 0 );
 

Modified: openoffice/branches/rejuvenate01/main/editeng/inc/editeng/splwrap.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/editeng/inc/editeng/splwrap.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/editeng/inc/editeng/splwrap.hxx (original)
+++ openoffice/branches/rejuvenate01/main/editeng/inc/editeng/splwrap.hxx Mon Nov 18 12:53:58 2013
@@ -39,7 +39,8 @@ namespace com { namespace sun { namespac
 }}}}
 
 class Window;
-
+//IAccessibility2 Impplementaton 2009-----
+class SdrObject;
 // misc functions ---------------------------------------------------------------
 
 void EDITENG_DLLPUBLIC SvxPrepareAutoCorrect( String &rOldText, String &rNewText );
@@ -61,6 +62,8 @@ private:
 		::com::sun::star::linguistic2::XSpellChecker1 > xSpell;
 	::com::sun::star::uno::Reference<
 		::com::sun::star::linguistic2::XHyphenator > 	xHyph;
+//IAccessibility2 Impplementaton 2009-----
+	SdrObject* mpTextObj;
 	sal_uInt16 	nOldLang; 		// Sprache merken, nur bei Aenderung SetLanguage rufen
 	sal_Bool 	bOtherCntnt : 1; // gesetzt => Sonderbereiche zunaechst pruefen
 	sal_Bool 	bDialog		: 1; // Ist pWin der Svx...Dialog?
@@ -151,6 +154,10 @@ protected:
 	virtual void AutoCorrect( const String& rAktStr, const String& rNewStr );
 	virtual void InsertHyphen( const sal_uInt16 nPos ); // Hyphen einfuegen
 
+//IAccessibility2 Impplementaton 2009-----
+	void SetCurTextObj( SdrObject* pObj ) { mpTextObj = pObj; }
+	SdrObject* GetCurTextObj() { return mpTextObj; }
+//-----IAccessibility2 Impplementaton 2009
 };
 
 #endif

Modified: openoffice/branches/rejuvenate01/main/editeng/inc/editeng/unoedhlp.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/editeng/inc/editeng/unoedhlp.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/editeng/inc/editeng/unoedhlp.hxx (original)
+++ openoffice/branches/rejuvenate01/main/editeng/inc/editeng/unoedhlp.hxx Mon Nov 18 12:53:58 2013
@@ -60,7 +60,17 @@ public:
 	void	SetStartValue( sal_uLong n );
 	void	SetEndValue( sal_uLong n );
 };
-
+//IAccessibility2 Implementation 2009-----
+class SvxEditSourceHintEndPara :public SvxEditSourceHint
+{
+public:
+	TYPEINFO();
+	SvxEditSourceHintEndPara( sal_uInt32 nId )
+		:SvxEditSourceHint(nId) {}
+	SvxEditSourceHintEndPara( sal_uInt32 nId, sal_uInt32 nValue, sal_uInt32 nStart=0, sal_uInt32 nEnd=0 )
+		:SvxEditSourceHint(nId,nValue,nStart){ (void)nEnd; }
+};
+//-----IAccessibility2 Implementation 2009
 /** Helper class for common functionality in edit sources
  */
 class EDITENG_DLLPUBLIC SvxEditSourceHelper
@@ -97,7 +107,10 @@ public:
 
         @return sal_True, if the range has been successfully determined
      */
-    static sal_Bool GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, const EditEngine& rEE, sal_uInt16 nPara, sal_uInt16 nIndex );
+	//IAccessibility2 Implementation 2009-----
+    //static sal_Bool GetAttributeRun( USHORT& nStartIndex, USHORT& nEndIndex, const EditEngine& rEE, USHORT nPara, USHORT nIndex );
+    static sal_Bool GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, const EditEngine& rEE, sal_uInt16 nPara, sal_uInt16 nIndex, sal_Bool bInCell=sal_False );
+	//-----IAccessibility2 Implementation 2009
 
     /** Convert point from edit engine to user coordinate space
 

Modified: openoffice/branches/rejuvenate01/main/editeng/inc/editeng/unoedprx.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/editeng/inc/editeng/unoedprx.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/editeng/inc/editeng/unoedprx.hxx (original)
+++ openoffice/branches/rejuvenate01/main/editeng/inc/editeng/unoedprx.hxx Mon Nov 18 12:53:58 2013
@@ -74,9 +74,12 @@ public:
 	virtual OutputDevice*	GetRefDevice() const;
     virtual sal_Bool		GetIndexAtPoint( const Point&, sal_uInt16& nPara, sal_uInt16& nIndex ) const;
     virtual sal_Bool		GetWordIndices( sal_uInt16 nPara, sal_uInt16 nIndex, sal_uInt16& nStart, sal_uInt16& nEnd ) const;
-    virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex ) const;
-    virtual sal_uInt16			GetLineCount( sal_uInt16 nPara ) const;
-    virtual sal_uInt16			GetLineLen( sal_uInt16 nPara, sal_uInt16 nLine ) const;
+	//IAccessibility2 Implementation 2009-----
+	virtual void	SetUpdateModeForAcc( sal_Bool bUp);
+	virtual sal_Bool	GetUpdateModeForAcc() const;
+    virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex, sal_Bool bInCell = sal_False ) const;
+    virtual sal_uInt16		GetLineCount( sal_uInt16 nPara ) const;
+    virtual sal_uInt16		GetLineLen( sal_uInt16 nPara, sal_uInt16 nLine ) const;
     virtual void            GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt16 nParagraph, sal_uInt16 nLine ) const;
     virtual sal_uInt16          GetLineNumberAtIndex( sal_uInt16 nPara, sal_uInt16 nIndex ) const;
     

Modified: openoffice/branches/rejuvenate01/main/editeng/inc/editeng/unoedsrc.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/editeng/inc/editeng/unoedsrc.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/editeng/inc/editeng/unoedsrc.hxx (original)
+++ openoffice/branches/rejuvenate01/main/editeng/inc/editeng/unoedsrc.hxx Mon Nov 18 12:53:58 2013
@@ -219,7 +219,12 @@ public:
         Index of paragraph to query bullet info on
      */
     virtual EBulletInfo     GetBulletInfo( sal_uInt16 nPara ) const = 0;
-
+//IAccessibility2 Implementation 2009-----
+     virtual String       GetNumStr(sal_uInt16) const { return XubString();};
+    //IAccessible2 migration fix
+    virtual void					SetUpdateModeForAcc( sal_Bool ) {};
+	virtual sal_Bool					GetUpdateModeForAcc() const { return sal_True; };
+//-----IAccessibility2 Implementation 2009
     /** Query the bounding rectangle of the given character
 
         @param nPara[0 .. n]
@@ -331,7 +336,10 @@ public:
 
         @return sal_True, if the range has been successfully determined
      */
-    virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex ) const = 0;
+	//IAccessibility2 Implementation 2009-----
+//    virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex ) const = 0;
+    virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex, sal_Bool bInCell = sal_False ) const = 0;
+	//-----IAccessibility2 Implementation 2009
 
     /** Query number of lines in the formatted paragraph
 
@@ -542,6 +550,11 @@ public:
      */
     virtual sal_Bool Paste() = 0;
 
+//IAccessibility2 Implementation 2009-----
+    virtual sal_Bool IsWrongSpelledWordAtPos( sal_Int32, sal_Int32 ) { return sal_False; };
+    virtual sal_Bool IsShapeParaFocusable( ) { return sal_True; };
+    virtual sal_Bool BreakParaWrongList(sal_Int32, sal_uInt16&, sal_uInt16&, sal_Int32){ return sal_False; };
+//-----IAccessibility2 Implementation 2009
 };
 
 #endif

Modified: openoffice/branches/rejuvenate01/main/editeng/inc/editeng/unofored.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/editeng/inc/editeng/unofored.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/editeng/inc/editeng/unofored.hxx (original)
+++ openoffice/branches/rejuvenate01/main/editeng/inc/editeng/unofored.hxx Mon Nov 18 12:53:58 2013
@@ -72,7 +72,10 @@ public:
 	virtual OutputDevice*	GetRefDevice() const;
     virtual sal_Bool		GetIndexAtPoint( const Point&, sal_uInt16& nPara, sal_uInt16& nIndex ) const;
     virtual sal_Bool		GetWordIndices( sal_uInt16 nPara, sal_uInt16 nIndex, sal_uInt16& nStart, sal_uInt16& nEnd ) const;
-    virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex ) const;
+	//IAccessibility2 Implementation 2009-----
+//    virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex ) const;
+    virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex, sal_Bool bInCell = sal_False ) const;
+	//-----IAccessibility2 Implementation 2009
     virtual sal_uInt16			GetLineCount( sal_uInt16 nPara ) const;
     virtual sal_uInt16			GetLineLen( sal_uInt16 nPara, sal_uInt16 nLine ) const;
     virtual void            GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt16 nParagraph, sal_uInt16 nLine ) const;

Modified: openoffice/branches/rejuvenate01/main/editeng/inc/editeng/unoforou.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/editeng/inc/editeng/unoforou.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/editeng/inc/editeng/unoforou.hxx (original)
+++ openoffice/branches/rejuvenate01/main/editeng/inc/editeng/unoforou.hxx Mon Nov 18 12:53:58 2013
@@ -93,7 +93,10 @@ public:
 	virtual OutputDevice*	GetRefDevice() const;
     virtual sal_Bool		GetIndexAtPoint( const Point&, sal_uInt16& nPara, sal_uInt16& nIndex ) const;
     virtual sal_Bool		GetWordIndices( sal_uInt16 nPara, sal_uInt16 nIndex, sal_uInt16& nStart, sal_uInt16& nEnd ) const;
-    virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex ) const;
+	//IAccessibility2 Implementation 2009-----
+//    virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex ) const;
+    virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex, sal_Bool bInCell = sal_False ) const;
+	//-----IAccessibility2 Implementation 2009
     virtual sal_uInt16			GetLineCount( sal_uInt16 nPara ) const;
     virtual sal_uInt16			GetLineLen( sal_uInt16 nPara, sal_uInt16 nLine ) const;
     virtual void            GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt16 nPara, sal_uInt16 nLine ) const;

Modified: openoffice/branches/rejuvenate01/main/editeng/inc/editeng/unotext.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/editeng/inc/editeng/unotext.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/editeng/inc/editeng/unotext.hxx (original)
+++ openoffice/branches/rejuvenate01/main/editeng/inc/editeng/unotext.hxx Mon Nov 18 12:53:58 2013
@@ -218,7 +218,10 @@ public:
 	virtual OutputDevice*	GetRefDevice() const;
     virtual sal_Bool		GetIndexAtPoint( const Point&, sal_uInt16& nPara, sal_uInt16& nIndex ) const;
     virtual sal_Bool		GetWordIndices( sal_uInt16 nPara, sal_uInt16 nIndex, sal_uInt16& nStart, sal_uInt16& nEnd ) const;
-    virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex ) const;
+	//IAccessibility2 Implementation 2009-----
+//    virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex ) const;
+    virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex, sal_Bool bInCell = sal_False ) const;
+	//-----IAccessibility2 Implementation 2009
     virtual sal_uInt16			GetLineCount( sal_uInt16 nPara ) const;
     virtual sal_uInt16			GetLineLen( sal_uInt16 nPara, sal_uInt16 nLine ) const;
     virtual void            GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt16 nParagraph, sal_uInt16 nLine ) const;