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 [10/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/sd/source/ui/dlg/sdtreelb.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/dlg/sdtreelb.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/dlg/sdtreelb.cxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/dlg/sdtreelb.cxx Mon Nov 18 12:53:58 2013
@@ -247,6 +247,7 @@ sal_uInt32 SdPageObjsTLB::SdPageObjsTran
 
 SdPageObjsTLB::SdPageObjsTLB( Window* pParentWin, const SdResId& rSdResId ) 
 :	SvTreeListBox       ( pParentWin, rSdResId )
+,   bisInSdNavigatorWin  ( sal_False )
 ,	mpParent 		    ( pParentWin )
 ,	mpDoc			    ( NULL )
 ,	mpBookmarkDoc	    ( NULL )
@@ -260,7 +261,6 @@ SdPageObjsTLB::SdPageObjsTLB( Window* pP
 ,	mpDropNavWin		( NULL )
 ,   mbShowAllShapes     ( false )
 ,   mbShowAllPages      ( false )
-
 {
 	// Tree-ListBox mit Linien versehen
 	SetStyle( GetStyle() | WB_TABSTOP | WB_BORDER | WB_HASLINES |
@@ -295,6 +295,184 @@ SdPageObjsTLB::~SdPageObjsTLB()
         delete mpMedium;
 }
 
+//IAccessibility2 Implementation 2009-----
+// helper function for 	GetEntryAltText and GetEntryLongDescription
+String SdPageObjsTLB::getAltLongDescText( SvLBoxEntry* pEntry , sal_Bool isAltText) const
+{
+	sal_uInt16 maxPages = mpDoc->GetPageCount();
+	sal_uInt16 pageNo;
+	SdrObject*	 pObj = NULL;
+	SdPage* pPage = NULL;
+
+
+	String ParentName = GetEntryText( GetRootLevelParent( pEntry ) );
+	
+	for( pageNo = 0;  pageNo < maxPages; pageNo++ )
+	{		
+		pPage = (SdPage*) mpDoc->GetPage( pageNo );
+		if( pPage->GetPageKind() != PK_STANDARD ) continue;
+		if( pPage->GetName() !=  ParentName ) continue;
+		SdrObjListIter aIter( *pPage, IM_FLAT );
+		while( aIter.IsMore() )
+		{
+			pObj = aIter.Next();
+			if( GetEntryText(pEntry) ==  GetObjectName( pObj )  )
+			{
+				if( isAltText )
+					return pObj->GetTitle();
+				else
+					return pObj->GetDescription();
+			}
+		}
+	}	
+	return String();
+
+}
+
+String SdPageObjsTLB::GetEntryAltText( SvLBoxEntry* pEntry ) const
+{
+	return getAltLongDescText( pEntry, sal_True );
+}
+
+String SdPageObjsTLB::GetEntryLongDescription( SvLBoxEntry* pEntry ) const
+{
+	return getAltLongDescText( pEntry, sal_False);
+}
+
+void  SdPageObjsTLB::MarkCurEntry( const String& rName )
+{
+	
+	if( rName.Len() )
+	{
+		SvLBoxEntry* pCurEntry =GetCurEntry();
+		SvLBoxEntry* pEntry =NULL;
+		String aTmp1;
+		String aTmp2;
+
+	       if( GetParent(pCurEntry)==NULL )
+	       {
+	              aTmp1 = GetEntryText( pCurEntry );
+		       for( pEntry = First(); pEntry ; pEntry = Next( pEntry ) )
+			{
+			       if(GetParent( pEntry )==NULL)
+				   	     continue;
+				aTmp2 = GetEntryText( GetParent( pEntry ));
+				if( aTmp1 != aTmp2)
+				{
+					// IA2 CWS. MT: Removed in SvLBoxEntry for now - only used in Sw/Sd/ScContentLBoxString, they should decide if they need this
+					pEntry->SetMarked(sal_False);
+				}
+			}
+	           
+	       }
+              else
+              {
+	              for( pEntry = First(); pEntry ; pEntry = Next( pEntry ) )
+			{
+				aTmp2 = GetEntryText( pEntry );
+				if( aTmp2 == rName)
+				{
+					pEntry->SetMarked(sal_True);
+				}
+				else
+				{
+				        pEntry->SetMarked(sal_False);
+				}
+			}
+              }
+	}
+	Invalidate();
+}
+
+void  SdPageObjsTLB:: FreshCurEntry()
+{
+       SvLBoxEntry* pEntry =NULL;
+       for( pEntry = First(); pEntry ; pEntry = Next( pEntry ) )
+	{
+		        pEntry->SetMarked(sal_False);
+	}
+	Invalidate();
+}
+
+class SdContentLBoxString : public SvLBoxString
+{
+public:
+	SdContentLBoxString( SvLBoxEntry* pEntry, sal_uInt16 nFlags,
+		const String& rStr ) : SvLBoxString(pEntry,nFlags,rStr)	{}
+
+	virtual void Paint( const Point& rPos, SvLBox& rDev, sal_uInt16 nFlags,
+		SvLBoxEntry* pEntry);
+};
+
+void SdPageObjsTLB::InitEntry(SvLBoxEntry* pEntry,
+		const XubString& rStr ,const Image& rImg1,const Image& rImg2,SvLBoxButtonKind eButtonKind)
+{
+	sal_uInt16 nColToHilite = 1; //0==Bitmap;1=="Spalte1";2=="Spalte2"
+	SvTreeListBox::InitEntry( pEntry, rStr, rImg1, rImg2, eButtonKind );
+	SvLBoxString* pCol = (SvLBoxString*)pEntry->GetItem( nColToHilite );
+	SdContentLBoxString* pStr = new SdContentLBoxString( pEntry, 0, pCol->GetText() );
+	pEntry->ReplaceItem( pStr, nColToHilite );
+}
+
+void SdContentLBoxString::Paint( const Point& rPos, SvLBox& rDev, sal_uInt16 nFlags,
+	SvLBoxEntry* pEntry )
+{
+	// IA2 CWS. MT: Removed for now (also in SvLBoxEntry) - only used in Sw/Sd/ScContentLBoxString, they should decide if they need this
+	/*
+	if (pEntry->IsMarked())
+	{
+			rDev.DrawText( rPos, GetText() );
+			XubString str;
+			str = XubString::CreateFromAscii("*");
+			Point rPosStar(rPos.X()-6,rPos.Y());
+			Font aOldFont( rDev.GetFont());
+			Font aFont(aOldFont);
+			Color aCol( aOldFont.GetColor() );
+			aCol.DecreaseLuminance( 200 );
+			aFont.SetColor( aCol );
+			rDev.SetFont( aFont );
+			rDev.DrawText( rPosStar, str);
+			rDev.SetFont( aOldFont );
+	}
+	else 
+	*/
+		SvLBoxString::Paint( rPos, rDev, nFlags, pEntry);
+
+}
+
+void SdPageObjsTLB::SaveExpandedTreeItemState(SvLBoxEntry* pEntry, vector<String>& vectTreeItem)
+{
+	if (pEntry)
+	{
+		SvLBoxEntry* pListEntry = pEntry;
+		while (pListEntry)
+		{
+			if (pListEntry->HasChilds())
+			{
+				if (IsExpanded(pListEntry))
+					vectTreeItem.push_back(GetEntryText(pListEntry));
+				SvLBoxEntry* pChildEntry = FirstChild(pListEntry);
+				SaveExpandedTreeItemState(pChildEntry, vectTreeItem);
+			}
+			pListEntry = NextSibling(pListEntry);
+		}
+	}
+}
+void SdPageObjsTLB::Clear()
+{
+	//Save the expanded tree item
+	if (mbSaveTreeItemState)
+	{
+		maSelectionEntryText = String();
+		maTreeItem.clear();
+		if (GetCurEntry())
+			maSelectionEntryText = GetSelectEntry();
+		SvLBoxEntry* pEntry = FirstChild(NULL);
+		SaveExpandedTreeItemState(pEntry, maTreeItem);
+	}
+	return SvTreeListBox::Clear();
+}
+//-----IAccessibility2 Implementation 2009
 /*************************************************************************
 |*
 |* return name of object
@@ -448,6 +626,10 @@ void SdPageObjsTLB::Fill( const SdDrawDo
 	}
 	if( aSelection.Len() )
 		SelectEntry( aSelection );
+	else if (mbSaveTreeItemState && maSelectionEntryText.Len())
+	{
+		SelectEntry(maSelectionEntryText);
+	}
 }
 
 /*************************************************************************
@@ -528,6 +710,30 @@ void SdPageObjsTLB::AddShapeList (
         IM_FLAT,
         sal_False /*not reverse*/);
 
+	//IAccessibility2 Implementation 2009-----
+	sal_Bool  bMarked=sal_False;
+	if(bisInSdNavigatorWin)
+	{
+		Window* pWindow=NULL;
+		SdNavigatorWin* pSdNavigatorWin=NULL;
+		sd::DrawDocShell* pSdDrawDocShell = NULL;
+		if(pEntry)
+			pWindow=(Window*)GetParent(pEntry);
+		if(pWindow)
+			pSdNavigatorWin = (SdNavigatorWin*)pWindow;
+		if( pSdNavigatorWin )
+			pSdDrawDocShell = pSdNavigatorWin->GetDrawDocShell(mpDoc);	
+		if(pSdDrawDocShell)
+			bMarked=pSdDrawDocShell->IsMarked(pShape);
+		if(pEntry)
+		{
+			if(bMarked)
+				pEntry->SetMarked(sal_True);
+			else
+				pEntry->SetMarked( sal_False );
+		}
+	}
+	//-----IAccessibility2 Implementation 2009
     while( aIter.IsMore() )
     {
         SdrObject* pObj = aIter.Next();
@@ -542,7 +748,29 @@ void SdPageObjsTLB::AddShapeList (
             {
                 SvLBoxEntry* pNewEntry = InsertEntry( aStr, maImgOle, maImgOle, pEntry,
                     sal_False, LIST_APPEND, pObj);
-
+				//IAccessibility2 Implementation 2009-----
+				if(bisInSdNavigatorWin)
+				{
+					Window* pWindow=NULL;
+					SdNavigatorWin* pSdNavigatorWin=NULL;
+					sd::DrawDocShell* pSdDrawDocShell = NULL;
+					if(pNewEntry)
+						pWindow=(Window*)GetParent(pNewEntry);
+					if(pWindow)
+						pSdNavigatorWin = (SdNavigatorWin*)pWindow;
+					if( pSdNavigatorWin )
+						pSdDrawDocShell = pSdNavigatorWin->GetDrawDocShell(mpDoc);	
+					if(pSdDrawDocShell)
+						bMarked=pSdDrawDocShell->IsMarked((SdrObject*)pObj);
+					if(pNewEntry)
+					{
+						if(bMarked)
+							pNewEntry->SetMarked(sal_True);
+						else
+							pNewEntry->SetMarked( sal_False );
+					}
+				}
+				//-----IAccessibility2 Implementation 2009
                 SetExpandedEntryBmp( pNewEntry, maImgOleH, BMP_COLOR_HIGHCONTRAST );
                 SetCollapsedEntryBmp( pNewEntry, maImgOleH, BMP_COLOR_HIGHCONTRAST );
             }
@@ -550,7 +778,33 @@ void SdPageObjsTLB::AddShapeList (
             {
                 SvLBoxEntry* pNewEntry = InsertEntry( aStr, maImgGraphic, maImgGraphic, pEntry,
                     sal_False, LIST_APPEND, pObj );
-
+				//IAccessibility2 Implementation 2009-----
+				if(bisInSdNavigatorWin)
+				{
+					Window* pWindow=NULL;
+					SdNavigatorWin* pSdNavigatorWin=NULL;
+					sd::DrawDocShell* pSdDrawDocShell = NULL;
+					if(pNewEntry)
+						pWindow=(Window*)GetParent(pNewEntry);
+					if(pWindow)
+						pSdNavigatorWin = (SdNavigatorWin*)pWindow;
+					if( pSdNavigatorWin )
+						pSdDrawDocShell = pSdNavigatorWin->GetDrawDocShell(mpDoc);	
+					if(pSdDrawDocShell)
+						bMarked=pSdDrawDocShell->IsMarked((SdrObject*)pObj);
+					if(pNewEntry)
+					{
+						if(bMarked)  
+						{
+							pNewEntry->SetMarked(sal_True);				         	     	
+						}
+						else
+						{
+							pNewEntry->SetMarked( sal_False );
+						}
+					}
+				}
+				//-----IAccessibility2 Implementation 2009
                 SetExpandedEntryBmp( pNewEntry, maImgGraphicH, BMP_COLOR_HIGHCONTRAST );
                 SetCollapsedEntryBmp( pNewEntry, maImgGraphicH, BMP_COLOR_HIGHCONTRAST );
             }
@@ -568,7 +822,33 @@ void SdPageObjsTLB::AddShapeList (
             {
                 SvLBoxEntry* pNewEntry = InsertEntry( aStr, rIconProvider.maImgObjects, rIconProvider.maImgObjects, pEntry,
                     sal_False, LIST_APPEND, pObj );
-
+				//IAccessibility2 Implementation 2009-----
+				if(bisInSdNavigatorWin)
+				{
+					Window* pWindow=NULL;
+					SdNavigatorWin* pSdNavigatorWin=NULL;
+					sd::DrawDocShell* pSdDrawDocShell = NULL;
+					if(pNewEntry)
+						pWindow=(Window*)GetParent(pNewEntry);
+					if(pWindow)
+						pSdNavigatorWin = (SdNavigatorWin*)pWindow;
+					if( pSdNavigatorWin )
+						pSdDrawDocShell = pSdNavigatorWin->GetDrawDocShell(mpDoc);	
+					if(pSdDrawDocShell)
+						bMarked=pSdDrawDocShell->IsMarked((SdrObject*)pObj);
+					if(pNewEntry)
+					{
+						if(bMarked)  
+						{
+							pNewEntry->SetMarked(sal_True);				         	     	
+						}
+						else
+						{
+							pNewEntry->SetMarked( sal_False );
+						}
+					}
+				}
+				//-----IAccessibility2 Implementation 2009
                 SetExpandedEntryBmp( pNewEntry, rIconProvider.maImgObjectsH, BMP_COLOR_HIGHCONTRAST );
                 SetCollapsedEntryBmp( pNewEntry, rIconProvider.maImgObjectsH, BMP_COLOR_HIGHCONTRAST );
             }
@@ -591,6 +871,24 @@ void SdPageObjsTLB::AddShapeList (
             pEntry,
             bIsExcluded ? rIconProvider.maImgPageObjsExclH : rIconProvider.maImgPageObjsH,
             BMP_COLOR_HIGHCONTRAST);
+		//IAccessibility2 Implementation 2009-----
+		if (mbSaveTreeItemState)
+		{
+			vector<String>:: iterator iteStart = maTreeItem.begin();
+			while (iteStart != maTreeItem.end())
+			{
+				String strEntry = GetEntryText(pEntry);
+				if (*iteStart == strEntry)
+				{
+					Expand( pEntry );
+					break;
+				}
+				++iteStart;
+			}
+		}
+		else
+			Expand( pEntry );
+		//-----IAccessibility2 Implementation 2009
     }
 }
 
@@ -968,6 +1266,62 @@ void SdPageObjsTLB::KeyInput( const KeyE
 
 		DoubleClickHdl();
 	}
+//IAccessibility2 Implementation 2009-----
+	else if (rKEvt.GetKeyCode().GetCode() == KEY_SPACE)
+	{
+	   if(bisInSdNavigatorWin)
+	   {
+		   sal_Bool bMarked=sal_False;
+		   SvLBoxEntry* pNewEntry = GetCurEntry();
+		   if( GetParent(pNewEntry) == NULL )
+			   return;
+		   String  aStr=GetSelectEntry();
+		   Window* pWindow=NULL;
+		   SdNavigatorWin* pSdNavigatorWin=NULL;
+		   sd::DrawDocShell* pSdDrawDocShell = NULL;
+		   if(pNewEntry)
+			   pWindow=(Window*)GetParent(pNewEntry);
+		   if(pWindow)
+			   pSdNavigatorWin = (SdNavigatorWin*)pWindow;
+		   if( pSdNavigatorWin )
+			   pSdDrawDocShell = pSdNavigatorWin->GetDrawDocShell(mpDoc);	
+		   if(pSdDrawDocShell)
+		   {
+			   pSdDrawDocShell->GotoTreeBookmark(aStr);
+			   bMarked=pSdDrawDocShell->GetObjectIsmarked(aStr);
+		   }
+		   //Removed by yanjun for sym2_6385
+		   //The symphony2.0 can support morn than one level tree list, also support to select tow or more items in different level.
+		   /*
+		   SvLBoxEntry* pBeginEntry = First();
+		   if( pBeginEntry )
+		   {
+			   if( GetParent(pBeginEntry) !=  GetParent(pNewEntry) )
+				   pBeginEntry->SetMarked( sal_False );
+			   SvLBoxEntry* pNextEntry = Next( pBeginEntry );
+			   while( pNextEntry )
+			   {
+				   if( GetParent(pNextEntry) !=  GetParent(pNewEntry) )
+					   pNextEntry->SetMarked( sal_False );
+				   pNextEntry =  Next( pNextEntry );
+			   }
+		   }
+		   End*/
+		   if(pNewEntry)
+		   {
+			   if(bMarked)  
+			   {
+				   pNewEntry->SetMarked(sal_True);				         	     	
+			   }
+			   else
+			   {
+				   pNewEntry->SetMarked( sal_False );
+			   }
+		   }
+		   Invalidate();
+	   }
+	}
+//-----IAccessibility2 Implementation 2009
 	else
 		SvTreeListBox::KeyInput( rKEvt );
 }

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/docshell/docshel4.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/docshell/docshel4.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/docshell/docshel4.cxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/docshell/docshel4.cxx Mon Nov 18 12:53:58 2013
@@ -93,6 +93,10 @@
 #include "sdhtmlfilter.hxx"
 #include "framework/FrameworkHelper.hxx"
 
+//IAccessibility2 Implementation 2009-----
+#include <sfx2/viewfrm.hxx>
+#include "SdUnoDrawView.hxx"
+//-----IAccessibility2 Implementation 2009
 using namespace ::com::sun::star;
 using namespace ::com::sun::star::uno;
 using ::sd::framework::FrameworkHelper;
@@ -574,6 +578,22 @@ sal_Bool DrawDocShell::Save()
 
 sal_Bool DrawDocShell::SaveAs( SfxMedium& rMedium )
 {
+//IAccessibility2 Implementation 2009-----
+	mpDoc->setDocAccTitle(String());
+	SfxViewFrame* pFrame1 = SfxViewFrame::GetFirst( this );
+	if (pFrame1)
+	{
+		::Window* pWindow = &pFrame1->GetWindow();
+		if ( pWindow )
+		{
+			::Window* pSysWin = pWindow->GetSystemWindow();
+			if ( pSysWin )
+			{
+				pSysWin->SetAccessibleName(String());
+			}
+		}
+	}
+//-----IAccessibility2 Implementation 2009
 	mpDoc->StopWorkStartupDelay();
 
     //TODO/LATER: why this?!
@@ -908,6 +928,241 @@ sal_Bool DrawDocShell::GotoBookmark(cons
 	return (bFound);
 }
 
+//IAccessibility2 Implementation 2009-----
+//Solution: If  object  is marked , return true , else return false . 
+sal_Bool DrawDocShell::IsMarked(  SdrObject* pObject  )
+{
+       sal_Bool bisMarked =sal_False;
+
+	 if (mpViewShell && mpViewShell->ISA(DrawViewShell))
+	{
+		DrawViewShell* pDrViewSh = (DrawViewShell*) mpViewShell;
+		if (pObject )
+		{
+		      bisMarked = pDrViewSh->GetView()->IsObjMarked(pObject);
+		}
+	 }
+	return  bisMarked;
+}
+//Solution: If  object  is marked , return true , else return false . 
+sal_Bool DrawDocShell::GetObjectIsmarked(const String& rBookmark)
+{
+    OSL_TRACE("GotoBookmark %s",
+        ::rtl::OUStringToOString(rBookmark, RTL_TEXTENCODING_UTF8).getStr());
+     sal_Bool bUnMark = sal_False;
+
+	if (mpViewShell && mpViewShell->ISA(DrawViewShell))
+	{
+		DrawViewShell* pDrViewSh = (DrawViewShell*) mpViewShell;
+
+		String aBookmark( rBookmark );
+
+		if( rBookmark.Len() && rBookmark.GetChar( 0 ) == sal_Unicode('#') )
+			aBookmark = rBookmark.Copy( 1 );
+
+		// Ist das Bookmark eine Seite?
+		sal_Bool        bIsMasterPage;
+        sal_uInt16      nPgNum = mpDoc->GetPageByName( aBookmark, bIsMasterPage );
+		SdrObject*  pObj = NULL;
+
+		if (nPgNum == SDRPAGE_NOTFOUND)
+		{
+			// Ist das Bookmark ein Objekt?
+			pObj = mpDoc->GetObj(aBookmark);
+
+			if (pObj)
+			{
+				nPgNum = pObj->GetPage()->GetPageNum();
+			}
+		}
+
+		if (nPgNum != SDRPAGE_NOTFOUND)
+		{
+			/**********************************************************
+			* Zur Seite springen
+			**********************************************************/
+		
+			SdPage* pPage = (SdPage*) mpDoc->GetPage(nPgNum);
+
+			PageKind eNewPageKind = pPage->GetPageKind();
+
+			if (eNewPageKind != pDrViewSh->GetPageKind())
+			{
+				// Arbeitsbereich wechseln
+				GetFrameView()->SetPageKind(eNewPageKind);
+				( ( mpViewShell && mpViewShell->GetViewFrame() ) ?
+				  mpViewShell->GetViewFrame() : SfxViewFrame::Current() )->
+				  GetDispatcher()->Execute( SID_VIEWSHELL0, SFX_CALLMODE_SYNCHRON | SFX_CALLMODE_RECORD );
+
+				// Die aktuelle ViewShell hat sich geaendert!
+				pDrViewSh = (DrawViewShell*) mpViewShell;
+			}
+
+			EditMode eNewEditMode = EM_PAGE;
+
+			if( bIsMasterPage )
+			{
+				eNewEditMode = EM_MASTERPAGE;
+			}
+
+			if (eNewEditMode != pDrViewSh->GetEditMode())
+			{
+				// EditMode setzen
+				pDrViewSh->ChangeEditMode(eNewEditMode, sal_False);
+			}
+
+			// Jump to the page.  This is done by using the API because this
+			// takes care of all the little things to be done.  Especially
+			// writing the view data to the frame view (see bug #107803#).
+			sal_uInt16 nSdPgNum = (nPgNum - 1) / 2;
+            SdUnoDrawView* pUnoDrawView = new SdUnoDrawView (
+                pDrViewSh->GetViewShellBase().GetDrawController(),
+                *pDrViewSh,
+                *pDrViewSh->GetView());
+            if (pUnoDrawView != NULL)
+            {
+                ::com::sun::star::uno::Reference<
+                      ::com::sun::star::drawing::XDrawPage> xDrawPage (
+                          pPage->getUnoPage(), ::com::sun::star::uno::UNO_QUERY);
+                pUnoDrawView->setCurrentPage (xDrawPage);
+            }
+            else
+            {
+                // As a fall back switch to the page via the core.
+                DBG_ASSERT (pUnoDrawView!=NULL,
+                    "SdDrawDocShell::GotoBookmark: can't switch page via API");
+                pDrViewSh->SwitchPage(nSdPgNum);
+            }
+			delete pUnoDrawView;
+
+
+			if (pObj)
+			{
+				// Objekt einblenden und selektieren
+				pDrViewSh->MakeVisible(pObj->GetLogicRect(),
+									   *pDrViewSh->GetActiveWindow());
+				
+		         bUnMark = pDrViewSh->GetView()->IsObjMarked(pObj);
+				
+		            
+			}
+		}
+	}
+
+	return ( bUnMark);
+}
+//Solution: realize multi-selection of objects
+sal_Bool DrawDocShell::GotoTreeBookmark(const String& rBookmark)
+{
+    OSL_TRACE("GotoBookmark %s",
+        ::rtl::OUStringToOString(rBookmark, RTL_TEXTENCODING_UTF8).getStr());
+	sal_Bool bFound = sal_False;
+
+	if (mpViewShell && mpViewShell->ISA(DrawViewShell))
+	{
+		DrawViewShell* pDrViewSh = (DrawViewShell*) mpViewShell;
+
+		String aBookmark( rBookmark );
+
+		if( rBookmark.Len() && rBookmark.GetChar( 0 ) == sal_Unicode('#') )
+			aBookmark = rBookmark.Copy( 1 );
+
+		// Ist das Bookmark eine Seite?
+		sal_Bool        bIsMasterPage;
+        sal_uInt16      nPgNum = mpDoc->GetPageByName( aBookmark, bIsMasterPage );
+		SdrObject*  pObj = NULL;
+
+		if (nPgNum == SDRPAGE_NOTFOUND)
+		{
+			// Ist das Bookmark ein Objekt?
+			pObj = mpDoc->GetObj(aBookmark);
+
+			if (pObj)
+			{
+				nPgNum = pObj->GetPage()->GetPageNum();
+			}
+		}
+
+		if (nPgNum != SDRPAGE_NOTFOUND)
+		{
+			/**********************************************************
+			* Zur Seite springen
+			**********************************************************/
+			bFound = sal_True;
+			SdPage* pPage = (SdPage*) mpDoc->GetPage(nPgNum);
+
+			PageKind eNewPageKind = pPage->GetPageKind();
+
+			if (eNewPageKind != pDrViewSh->GetPageKind())
+			{
+				// Arbeitsbereich wechseln
+				GetFrameView()->SetPageKind(eNewPageKind);
+				( ( mpViewShell && mpViewShell->GetViewFrame() ) ?
+				  mpViewShell->GetViewFrame() : SfxViewFrame::Current() )->
+				  GetDispatcher()->Execute( SID_VIEWSHELL0, SFX_CALLMODE_SYNCHRON | SFX_CALLMODE_RECORD );
+
+				// Die aktuelle ViewShell hat sich geaendert!
+				pDrViewSh = (DrawViewShell*) mpViewShell;
+			}
+
+			EditMode eNewEditMode = EM_PAGE;
+
+			if( bIsMasterPage )
+			{
+				eNewEditMode = EM_MASTERPAGE;
+			}
+
+			if (eNewEditMode != pDrViewSh->GetEditMode())
+			{
+				// EditMode setzen
+				pDrViewSh->ChangeEditMode(eNewEditMode, sal_False);
+			}
+
+			// Jump to the page.  This is done by using the API because this
+			// takes care of all the little things to be done.  Especially
+			// writing the view data to the frame view (see bug #107803#).
+			sal_uInt16 nSdPgNum = (nPgNum - 1) / 2;
+            SdUnoDrawView* pUnoDrawView = new SdUnoDrawView (
+                pDrViewSh->GetViewShellBase().GetDrawController(),
+                *pDrViewSh,
+                *pDrViewSh->GetView());
+            if (pUnoDrawView != NULL)
+            {
+                ::com::sun::star::uno::Reference<
+                      ::com::sun::star::drawing::XDrawPage> xDrawPage (
+                          pPage->getUnoPage(), ::com::sun::star::uno::UNO_QUERY);
+                pUnoDrawView->setCurrentPage (xDrawPage);
+            }
+            else
+            {
+                // As a fall back switch to the page via the core.
+                DBG_ASSERT (pUnoDrawView!=NULL,
+                    "SdDrawDocShell::GotoBookmark: can't switch page via API");
+                pDrViewSh->SwitchPage(nSdPgNum);
+            }
+			delete pUnoDrawView;
+
+
+			if (pObj)
+			{
+				// Objekt einblenden und selektieren
+				pDrViewSh->MakeVisible(pObj->GetLogicRect(),
+									   *pDrViewSh->GetActiveWindow());
+		              sal_Bool bUnMark = pDrViewSh->GetView()->IsObjMarked(pObj);
+				pDrViewSh->GetView()->MarkObj(pObj, pDrViewSh->GetView()->GetSdrPageView(), bUnMark);
+			}
+		}
+
+		SfxBindings& rBindings = ( ( mpViewShell && mpViewShell->GetViewFrame() ) ?
+								 mpViewShell->GetViewFrame() : SfxViewFrame::Current() )->GetBindings();
+
+		rBindings.Invalidate(SID_NAVIGATOR_STATE, sal_True, sal_False);
+		rBindings.Invalidate(SID_NAVIGATOR_PAGENAME);
+	}
+
+	return (bFound);
+}
+//-----IAccessibility2 Implementation 2009
 /*************************************************************************
 |*
 |* SaveAsOwnFormat: wenn es eine Dokumentvorlage werden soll,
@@ -1031,4 +1286,39 @@ void DrawDocShell::OpenBookmark( const S
 	( mpViewShell ? mpViewShell->GetViewFrame() : SfxViewFrame::Current() )->GetBindings().Execute( SID_OPENHYPERLINK, ppArgs );
 }
 
+//IAccessibility2 Implementation 2009-----
+void DrawDocShell::setDocAccTitle( const String& rTitle )
+{ 
+	if (mpDoc ) 
+	{
+		mpDoc->setDocAccTitle( rTitle );
+	}
+}
+const String DrawDocShell::getDocAccTitle() const
+{
+	String sRet;
+	if  (mpDoc)
+	{
+		sRet =  mpDoc->getDocAccTitle(); 
+	}
+
+	return sRet;
+}
+void DrawDocShell::setDocReadOnly( sal_Bool bReadOnly)
+{ 
+	if (mpDoc ) 
+	{
+		mpDoc->setDocReadOnly( bReadOnly );
+	}
+}
+sal_Bool DrawDocShell::getDocReadOnly() const
+{
+	if  (mpDoc)
+	{
+		return mpDoc->getDocReadOnly(); 
+	}
+
+	return sal_False;
+}
+//-----IAccessibility2 Implementation 2009
 } // end of namespace sd

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/func/fudraw.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/func/fudraw.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/func/fudraw.cxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/func/fudraw.cxx Mon Nov 18 12:53:58 2013
@@ -470,10 +470,16 @@ sal_Bool FuDraw::KeyInput(const KeyEvent
 				// changeover to the next object
 				if(!mpView->MarkNextObj( !aCode.IsShift() ))
 				{
-					// #97016# No next object: go over open end and
-					// get first from the other side
-					mpView->UnmarkAllObj();
-					mpView->MarkNextObj(!aCode.IsShift());
+					//IAccessibility2 Implementation 2009-----
+					//If there is only one object, don't do the UnmarkAlllObj() & MarkNextObj(). 
+					if ( mpView->GetMarkableObjCount() > 1 && mpView->AreObjectsMarked() )
+					{
+						// #97016# No next object: go over open end and
+						// get first from the other side
+						mpView->UnmarkAllObj();
+						mpView->MarkNextObj(!aCode.IsShift());
+					}
+					//-----IAccessibility2 Implementation 2009
 				}
 
 				// #97016# II

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/func/fuediglu.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/func/fuediglu.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/func/fuediglu.cxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/func/fuediglu.cxx Mon Nov 18 12:53:58 2013
@@ -63,6 +63,12 @@ FuEditGluePoints::FuEditGluePoints (
     SdDrawDocument*	pDoc,
     SfxRequest& rReq) 
     : FuDraw(pViewSh, pWin, pView, pDoc, rReq)
+//IAccessibility2 Implementation 2009-----
+	 //Solution: Add Shift+UP/DOWN/LEFT/RIGHT key to move the position of insert point, 
+	 //and SHIFT+ENTER key to decide the postion and draw the new insert point
+	 ,bBeginInsertPoint(sal_False),
+	oldPoint(0,0)
+//-----IAccessibility2 Implementation 2009
 {
 }
 
@@ -321,11 +327,108 @@ sal_Bool FuEditGluePoints::KeyInput(cons
 {
 	mpView->SetActualWin( mpWindow );
 
-	sal_Bool bReturn = FuDraw::KeyInput(rKEvt);
+//IAccessibility2 Implementation 2009-----
+	//Solution: Add Shift+UP/DOWN/LEFT/RIGHT key to move the position of insert point, 
+	//and SHIFT+ENTER key to decide the postion and draw the new insert point
+	//sal_Bool bReturn = FuDraw::KeyInput(rKEvt);
 
+	sal_Bool bReturn = sal_False;
+	
+	switch (rKEvt.GetKeyCode().GetCode())
+	{
+		case KEY_UP:
+		case KEY_DOWN:
+		case KEY_LEFT:
+		case KEY_RIGHT:
+		{
+			if(rKEvt.GetKeyCode().IsShift()&& mpView->IsInsGluePointMode() ){
+				long nX = 0;
+				long nY = 0;
+				sal_uInt16  nCode = rKEvt.GetKeyCode().GetCode();
+				if (nCode == KEY_UP)
+				{
+					// Scroll nach oben
+					nX = 0;
+					nY =-1;
+				}
+				else if (nCode == KEY_DOWN)
+				{
+					// Scroll nach unten
+					nX = 0;
+					nY = 1;
+				}
+				else if (nCode == KEY_LEFT)
+				{
+					// Scroll nach links
+					nX =-1;
+					nY = 0;
+				}
+				else if (nCode == KEY_RIGHT)
+				{
+					// Scroll nach rechts
+					nX = 1;
+					nY = 0;
+				}
+				Point centerPoint;
+				Rectangle rect = mpView->GetMarkedObjRect();
+				centerPoint = mpWindow->LogicToPixel(rect.Center());
+				Point aPoint = bBeginInsertPoint? oldPoint:centerPoint;
+				Point ePoint = aPoint + Point(nX,nY);
+				mpWindow->SetPointerPosPixel(ePoint);
+				//simulate mouse move action
+				MouseEvent eMevt(ePoint,1,2,MOUSE_LEFT, 0);
+				MouseMove(eMevt);
+	                     Point aPix(eMevt.GetPosPixel());
+				oldPoint = ePoint;
+				bBeginInsertPoint = sal_True;
+				bReturn = sal_True;
+			}
+		}
+		break;
+		case KEY_RETURN:
+			if(rKEvt.GetKeyCode().IsShift() && mpView->IsInsGluePointMode() )
+			{
+				if(bBeginInsertPoint)
+				{
+					mpWindow->SetPointerPosPixel(oldPoint);
+					//simulate mouse button down action
+					MouseEvent aMevt(oldPoint,1,3,MOUSE_LEFT,KEY_SHIFT);
+					// MT IA2: Not used?
+					// sal_uInt16 ubuttons = aMevt.GetButtons();
+					// sal_uInt16 uMod		= aMevt.GetModifier();
+					MouseButtonDown(aMevt);
+					mpWindow->CaptureMouse();
+					//simulate mouse button up action
+					MouseEvent rMEvt(oldPoint+Point(0,0),1,17, MOUSE_LEFT, KEY_SHIFT);
+					MouseButtonUp(rMEvt);
+					bReturn= sal_True;
+				}
+			}
+			break;
+	}
+	if(!bReturn)
+		bReturn = FuDraw::KeyInput(rKEvt);
+//-----IAccessibility2 Implementation 2009
 	return bReturn;
 }
 
+//IAccessibility2 Implementation 2009-----
+ //Solution: Add Shift+UP/DOWN/LEFT/RIGHT key to move the position of insert point, 
+ //and SHIFT+ENTER key to decide the postion and draw the new insert point
+void FuEditGluePoints::ForcePointer(const MouseEvent* pMEvt)
+{
+	if(bBeginInsertPoint && pMEvt)
+	{
+		MouseEvent aMEvt(pMEvt->GetPosPixel(), pMEvt->GetClicks(), 
+			pMEvt->GetMode(), pMEvt->GetButtons(), pMEvt->GetModifier() & ~KEY_SHIFT);  
+		FuDraw::ForcePointer(&aMEvt);
+	}
+	else
+	{
+		FuDraw::ForcePointer(pMEvt);
+	}
+}
+//-----IAccessibility2 Implementation 2009
 /*************************************************************************
 |*
 |* Command-event

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/func/fusel.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/func/fusel.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/func/fusel.cxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/func/fusel.cxx Mon Nov 18 12:53:58 2013
@@ -113,6 +113,13 @@ FuSelection::FuSelection (
       bMirrorSide0(sal_False),
       nEditMode(SID_BEZIER_MOVE),
       pWaterCanCandidate(NULL)
+//IAccessibility2 Implementation 2009-----
+  //Solution: Add Shift+UP/DOWN/LEFT/RIGHT key to move the position of insert point, 
+  //and SHIFT+ENTER key to decide the postion and draw the new insert point
+    ,bBeginInsertPoint(sal_False),
+  	oldPoint(0,0)
+  ,bMovedToCenterPoint(sal_False)
+//-----IAccessibility2 Implementation 2009
 {
 }
 
@@ -948,8 +955,80 @@ sal_Bool FuSelection::KeyInput(const Key
 			bReturn = FuSelection::cancel();
         }
         break;
+//IAccessibility2 Implementation 2009-----
+  //Solution: add keyboard operation for insert points in drawing curve
+		case KEY_UP:
+		case KEY_DOWN:
+		case KEY_LEFT:
+		case KEY_RIGHT:
+		{
+			if(rKEvt.GetKeyCode().IsShift()&&(nEditMode == SID_BEZIER_INSERT)){
+				long nX = 0;
+				long nY = 0;
+				sal_uInt16  nCode = rKEvt.GetKeyCode().GetCode();
+				if (nCode == KEY_UP)
+				{
+					// Scroll nach oben
+					nX = 0;
+					nY =-1;
     }
+				else if (nCode == KEY_DOWN)
+				{
+					// Scroll nach unten
+					nX = 0;
+					nY = 1;
+				}
+				else if (nCode == KEY_LEFT)
+				{
+					// Scroll nach links
+					nX =-1;
+					nY = 0;
+				}
+				else if (nCode == KEY_RIGHT)
+				{
+					// Scroll nach rechts
+					nX = 1;
+					nY = 0;
+				}
 
+				Point centerPoint;
+				Rectangle rect = mpView->GetMarkedObjRect();
+				centerPoint = mpWindow->LogicToPixel(rect.Center());
+				Point aPoint = bMovedToCenterPoint? oldPoint:centerPoint;
+				Point ePoint = aPoint + Point(nX,nY);
+				mpWindow->SetPointerPosPixel(ePoint);
+				//simulate mouse move action
+				MouseEvent eMevt(ePoint,1,2, MOUSE_LEFT, 0);
+				MouseMove(eMevt);
+				oldPoint = ePoint;
+				bMovedToCenterPoint = sal_True;
+				bReturn = sal_True;
+			}
+		}
+		break;
+		case KEY_RETURN:
+			if(rKEvt.GetKeyCode().IsShift()&&(nEditMode == SID_BEZIER_INSERT))
+			{
+				if(!bBeginInsertPoint)
+				{
+					//simulate mouse button down action
+					MouseEvent aMevt(oldPoint,1,3, MOUSE_LEFT, KEY_SHIFT);
+					MouseButtonDown(aMevt);
+					mpWindow->CaptureMouse();
+					bBeginInsertPoint = sal_True;
+				}
+				else
+				{
+					//simulate mouse button up action
+					MouseEvent rMEvt(oldPoint,1,17, MOUSE_LEFT, KEY_SHIFT);
+					MouseButtonUp(rMEvt);
+					bBeginInsertPoint = sal_False;
+				}
+				bReturn= sal_True;
+			}
+			break;
+    }
+//-----IAccessibility2 Implementation 2009
 	if (!bReturn)
 	{
 		bReturn = FuDraw::KeyInput(rKEvt);
@@ -967,6 +1046,21 @@ sal_Bool FuSelection::KeyInput(const Key
 }
 
 
+//IAccessibility2 Implementation 2009-----
+void FuSelection::ForcePointer(const MouseEvent* pMEvt)
+{
+	if(bMovedToCenterPoint && !bBeginInsertPoint && pMEvt)
+	{
+		MouseEvent aMEvt(pMEvt->GetPosPixel(), pMEvt->GetClicks(), 
+			pMEvt->GetMode(), pMEvt->GetButtons(), pMEvt->GetModifier() & ~KEY_SHIFT);  
+		FuDraw::ForcePointer(&aMEvt);
+	}
+	else
+	{
+		FuDraw::ForcePointer(pMEvt);
+	}
+}
+//-----IAccessibility2 Implementation 2009
 /*************************************************************************
 |*
 |* Function aktivieren

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessibleDocumentViewBase.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessibleDocumentViewBase.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessibleDocumentViewBase.hxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessibleDocumentViewBase.hxx Mon Nov 18 12:53:58 2013
@@ -38,6 +38,17 @@
 #include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
 #include <tools/link.hxx>
 
+//IAccessibility2 Implementation 2009-----
+#include <com/sun/star/accessibility/XAccessibleExtendedAttributes.hpp>
+#include "DrawViewShell.hxx"
+#include "sdpage.hxx"
+#include "drawdoc.hxx"
+#include "FrameView.hxx"
+#include "PresentationViewShell.hxx"
+#include <editeng/outlobj.hxx>
+#include <com/sun/star/accessibility/XAccessibleGetAccFlowTo.hpp>
+class SdViewShell;
+//-----IAccessibility2 Implementation 2009
 namespace sd {
 class ViewShell;
 class Window;
@@ -86,6 +97,10 @@ class AccessibleDocumentViewBase
         public ::com::sun::star::beans::XPropertyChangeListener,
         public ::com::sun::star::awt::XWindowListener,
         public ::com::sun::star::awt::XFocusListener
+//IAccessibility2 Implementation 2009-----
+		,public ::com::sun::star::accessibility::XAccessibleExtendedAttributes
+	       ,public com::sun::star::accessibility::XAccessibleGetAccFlowTo
+//-----IAccessibility2 Implementation 2009
 {
 public:
     //=====  internal  ========================================================
@@ -250,7 +265,12 @@ public:
         throw (::com::sun::star::uno::RuntimeException); 
 	virtual void SAL_CALL focusLost (const ::com::sun::star::awt::FocusEvent& e)
         throw (::com::sun::star::uno::RuntimeException); 
-
+//IAccessibility2 Implementation 2009-----
+	//----------------------------xAttribute----------------------------
+	virtual com::sun::star::uno::Any SAL_CALL getExtendedAttributes() 
+		throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) ;
+	 ::sd::ViewShell* mpViewShell;
+//-----IAccessibility2 Implementation 2009
 private:
 
     // return the member maMutex;
@@ -359,7 +379,20 @@ protected:
     virtual void SetAccessibleOLEObject (
         const ::com::sun::star::uno::Reference <
         ::com::sun::star::accessibility::XAccessible>& xOLEObject);
+//IAccessibility2 Implementation 2009-----
+	//=====  XAccessibleGetAccFromXShape  ============================================
+	::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >
+		SAL_CALL get_AccFlowTo(const ::com::sun::star::uno::Any& rAny, sal_Int32 nType)
+		throw ( ::com::sun::star::uno::RuntimeException );
 
+public:
+	virtual void SwitchViewActivated (void) { Activated(); }
+	 virtual sal_Int32 SAL_CALL getForeground(  ) 
+        throw (::com::sun::star::uno::RuntimeException);
+
+    virtual sal_Int32 SAL_CALL getBackground(  ) 
+        throw (::com::sun::star::uno::RuntimeException);
+//-----IAccessibility2 Implementation 2009
     virtual void impl_dispose (void);
 };
 

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessibleDrawDocumentView.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessibleDrawDocumentView.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessibleDrawDocumentView.hxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessibleDrawDocumentView.hxx Mon Nov 18 12:53:58 2013
@@ -26,6 +26,10 @@
 
 #include "AccessibleDocumentViewBase.hxx"
 
+//IAccessibility2 Implementation 2009-----
+#include <com/sun/star/accessibility/XAccessibleGroupPosition.hpp>
+//-----IAccessibility2 Implementation 2009
+
 namespace accessibility {
 
 
@@ -39,6 +43,9 @@ namespace accessibility {
 */
 class AccessibleDrawDocumentView : 
     public AccessibleDocumentViewBase
+//IAccessibility2 Implementation 2009-----
+    ,public ::com::sun::star::accessibility::XAccessibleGroupPosition
+//-----IAccessibility2 Implementation 2009
 {
 public:
     //=====  internal  ========================================================
@@ -73,6 +80,11 @@ public:
         throw (::com::sun::star::uno::RuntimeException,
             ::com::sun::star::lang::IndexOutOfBoundsException);
 
+//IAccessibility2 Implementation 2009-----
+	virtual ::rtl::OUString SAL_CALL
+		getAccessibleName(void)
+		throw (::com::sun::star::uno::RuntimeException);
+//-----IAccessibility2 Implementation 2009
 
     //=====  lang::XEventListener  ============================================
 
@@ -86,6 +98,28 @@ public:
 	virtual void SAL_CALL
 		propertyChange (const ::com::sun::star::beans::PropertyChangeEvent& rEventObject)
         throw (::com::sun::star::uno::RuntimeException);
+//IAccessibility2 Implementation 2009-----
+    //=====  XInterface  ======================================================
+    
+    virtual com::sun::star::uno::Any SAL_CALL
+		queryInterface (const com::sun::star::uno::Type & rType)
+        throw (::com::sun::star::uno::RuntimeException);
+
+    virtual void SAL_CALL
+        acquire (void) 
+        throw ();
+        
+    virtual void SAL_CALL
+        release (void)
+        throw ();
+	
+    //=====  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
 
 protected:
 
@@ -120,6 +154,10 @@ protected:
     virtual void
         implSelect( sal_Int32 nAccessibleChildIndex, sal_Bool bSelect ) 
         throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+//IAccessibility2 Implementation 2009-----
+private:
+	::sd::ViewShell* mpSdViewSh;
+//-----IAccessibility2 Implementation 2009
 
 protected:
     /** This object manages the shapes of the represented draw page.  It is
@@ -159,6 +197,15 @@ protected:
     virtual void Deactivated (void);
 
     virtual void impl_dispose (void);
+
+//IAccessibility2 Implementation 2009-----
+    //=====  XAccessibleGetAccFromXShape  ============================================
+	::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >
+		SAL_CALL get_AccFlowTo(const ::com::sun::star::uno::Any& rAny, sal_Int32 nType)
+		throw ( ::com::sun::star::uno::RuntimeException );
+	::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
+		GetSelAccContextInTable();
+//-----IAccessibility2 Implementation 2009
     
 private:
     void UpdateAccessibleName (void);

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessibleOutlineView.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessibleOutlineView.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessibleOutlineView.hxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessibleOutlineView.hxx Mon Nov 18 12:53:58 2013
@@ -75,7 +75,11 @@ public:
     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL
         getAccessibleChild (sal_Int32 nIndex)
         throw (::com::sun::star::uno::RuntimeException);
-
+//IAccessibility2 Implementation 2009-----
+    virtual ::rtl::OUString SAL_CALL
+        getAccessibleName(void)
+        throw (::com::sun::star::uno::RuntimeException);
+//-----IAccessibility2 Implementation 2009
     //=====  XAccessibleEventBroadcaster  ========================================
 
     virtual void SAL_CALL 

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessiblePresentationGraphicShape.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessiblePresentationGraphicShape.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessiblePresentationGraphicShape.hxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessiblePresentationGraphicShape.hxx Mon Nov 18 12:53:58 2013
@@ -27,6 +27,9 @@
 
 #include <svx/AccessibleGraphicShape.hxx>
 
+//IAccessibility2 Implementation 2009-----
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+//-----IAccessibility2 Implementation 2009
 namespace accessibility {
 
 /**	This class makes Impress shapes accessible.
@@ -60,6 +63,10 @@ public:
 	virtual ::rtl::OUString
     	CreateAccessibleDescription ()
         throw (::com::sun::star::uno::RuntimeException);
+//IAccessibility2 Implementation 2009-----
+	///	Return this object's role.
+	virtual sal_Int16 SAL_CALL getAccessibleRole () throw (::com::sun::star::uno::RuntimeException);
+//-----IAccessibility2 Implementation 2009
 };
 
 } // end of namespace accessibility

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessiblePresentationOLEShape.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessiblePresentationOLEShape.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessiblePresentationOLEShape.hxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessiblePresentationOLEShape.hxx Mon Nov 18 12:53:58 2013
@@ -27,6 +27,9 @@
 
 #include <svx/AccessibleOLEShape.hxx>
 
+//IAccessibility2 Implementation 2009-----
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+//-----IAccessibility2 Implementation 2009
 namespace accessibility {
 
 /**	This class makes Impress shapes accessible.
@@ -60,6 +63,10 @@ public:
 	virtual ::rtl::OUString
     	CreateAccessibleDescription ()
         throw (::com::sun::star::uno::RuntimeException);
+//IAccessibility2 Implementation 2009-----
+	///	Return this object's role.
+	virtual sal_Int16 SAL_CALL getAccessibleRole () throw (::com::sun::star::uno::RuntimeException);
+//-----IAccessibility2 Implementation 2009
 };
 
 } // end of namespace accessibility

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessiblePresentationShape.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessiblePresentationShape.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessiblePresentationShape.hxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessiblePresentationShape.hxx Mon Nov 18 12:53:58 2013
@@ -59,6 +59,9 @@ public:
 	virtual ::rtl::OUString
     	CreateAccessibleDescription ()
         throw (::com::sun::star::uno::RuntimeException);
+//IAccessibility2 Implementation 2009-----
+	::rtl::OUString GetStyle();
+//-----IAccessibility2 Implementation 2009
 
 private:
     /** Don't use the default constructor.  Use the public constructor that 

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessibleSlideSorterView.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessibleSlideSorterView.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessibleSlideSorterView.hxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessibleSlideSorterView.hxx Mon Nov 18 12:53:58 2013
@@ -286,7 +286,8 @@ public:
     	getSupportedServiceNames (void)
         throw (::com::sun::star::uno::RuntimeException);
 
-    
+	// IAccessibility2 Implementation 2009
+	virtual void SwitchViewActivated (void);
 private:
     class Implementation;
     ::std::auto_ptr<Implementation> mpImpl;

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessibleSlideView.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessibleSlideView.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessibleSlideView.hxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/inc/AccessibleSlideView.hxx Mon Nov 18 12:53:58 2013
@@ -25,7 +25,10 @@
 #define SD_ACCESSIBILITY_ACCESSIBLE_SLIDE_VIEW_HXX
 
 #include <cppuhelper/implbase6.hxx>
-#include <cppuhelper/implbase7.hxx>
+//IAccessibility2 Implementation 2009-----
+#include <cppuhelper/implbase9.hxx>
+//#include <cppuhelper/implbase7.hxx>
+//-----IAccessibility2 Implementation 2009
 #include "SlideView.hxx"
 #include <com/sun/star/lang/XUnoTunnel.hpp>
 #include <com/sun/star/accessibility/XAccessible.hpp>
@@ -35,6 +38,9 @@
 #include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
 #include <com/sun/star/lang/XServiceInfo.hpp>
 
+//IAccessibility2 Implementation 2009-----
+#include <com/sun/star/accessibility/XAccessibleExtendedAttributes.hpp>
+//-----IAccessibility2 Implementation 2009
 #include <vector>
 
 class SdDrawDocument;
@@ -156,14 +162,18 @@ public:                 
 // - AccessibleSlideView -
 // -----------------------
 
-class AccessibleSlideView : public ::cppu::WeakImplHelper7< 
+class AccessibleSlideView : public ::cppu::WeakImplHelper9< 
     ::com::sun::star::lang::XUnoTunnel,
     ::com::sun::star::accessibility::XAccessible,
     ::com::sun::star::accessibility::XAccessibleEventBroadcaster,
     ::com::sun::star::accessibility::XAccessibleContext,
     ::com::sun::star::accessibility::XAccessibleComponent,
     ::com::sun::star::accessibility::XAccessibleSelection,
-    ::com::sun::star::lang::XServiceInfo >
+    ::com::sun::star::lang::XServiceInfo
+//IAccessibility2 Implementation 2009-----
+	,::com::sun::star::accessibility::XAccessibleExtendedAttributes
+	,::com::sun::star::awt::XFocusListener >
+//-----IAccessibility2 Implementation 2009
 {
 public:
 
@@ -189,8 +199,18 @@ public:
 	void			            SetPageVisible( sal_uInt16 nPage, sal_Bool bVisible );
 	void			            Reset();
     void                        FocusHasChanged( sal_uInt16 nOldFocusPage, sal_uInt16 nNewFocusPage );
-
-
+//IAccessibility2 Implementation 2009-----
+	void 			SelectionHasChanged (sal_uInt16 nPage, sal_Bool bSelect );
+	//=====  XFocusListener  =================================================
+	virtual void SAL_CALL focusGained (const ::com::sun::star::awt::FocusEvent& e)
+		throw (::com::sun::star::uno::RuntimeException); 
+	virtual void SAL_CALL focusLost (const ::com::sun::star::awt::FocusEvent& e)
+		throw (::com::sun::star::uno::RuntimeException); 
+	//=====  lang::XEventListener  ============================================
+	virtual void SAL_CALL disposing (const struct com::sun::star::lang::EventObject &) throw (::com::sun::star::uno::RuntimeException);
+	// This method is called from the component helper base class while disposing.
+	virtual void SAL_CALL disposing (void);
+//-----IAccessibility2 Implementation 2009
 private:
     ::osl::Mutex maMutex;
 	::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > >               maSlidePageObjects;
@@ -199,6 +219,10 @@ private:
     ::sd::Window* mpParentWindow;
      /// client id in the AccessibleEventNotifier queue
     sal_uInt32 mnClientId;
+//IAccessibility2 Implementation 2009-----
+	sal_uInt32	nFocusPageIndex;
+	::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow>			mxWindow;
+//-----IAccessibility2 Implementation 2009
 
     // internal
 	static const ::com::sun::star::uno::Sequence< sal_Int8 >&                                   getUnoTunnelId();
@@ -253,6 +277,11 @@ private:
 
 	//=====  XServiceInfo  ====================================================
 
+//IAccessibility2 Implementation 2009-----
+	//----------------------------xAttribute----------------------------
+	virtual com::sun::star::uno::Any SAL_CALL getExtendedAttributes() 
+		throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) ;
+//-----IAccessibility2 Implementation 2009
     /**	Returns an identifier for the implementation of this object.
     */
 	virtual ::rtl::OUString SAL_CALL

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/inc/DrawController.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/inc/DrawController.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/inc/DrawController.hxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/inc/DrawController.hxx Mon Nov 18 12:53:58 2013
@@ -44,6 +44,9 @@
 #include <memory>
 #include <vector>
 #include <boost/scoped_ptr.hpp>
+//IAccessibility2 Implementation 2009-----
+#include <com/sun/star/drawing/XLayer.hpp>
+//-----IAccessibility2 Implementation 2009
 
 class SfxViewShell;
 class SdXImpressDocument;
@@ -102,6 +105,10 @@ public:
         PROPERTY_ZOOMVALUE = 7,
         PROPERTY_VIEWOFFSET = 8,
 		PROPERTY_DRAWVIEWMODE = 9
+		//IAccessibility2 Implementation 2009-----
+		,PROPERTY_UPDATEACC = 10
+		,PROPERTY_PAGE_CHANGE = 11
+		//-----IAccessibility2 Implementation 2009
     };
 
     /** Create a new DrawController object for the given ViewShellBase.
@@ -147,7 +154,15 @@ public:
         switch.
     */
     void BroadcastContextChange (void) const;
-    
+//IAccessibility2 Implementation 2009-----
+	void NotifyAccUpdate();
+	void fireChangeLayer( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XLayer>* pCurrentLayer ) throw();
+	// change the parameter to int
+	//void fireSwitchCurrentPage( String pageName) throw();
+	void fireSwitchCurrentPage( sal_Int32 pageIndex) throw();
+	::com::sun::star::uno::Reference< ::com::sun::star::drawing::XLayer>* mpCurrentLayer;
+//-----IAccessibility2 Implementation 2009
+
     /** Return a pointer to the ViewShellBase object that the DrawController
         is connected to.
         @return

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/inc/DrawDocShell.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/inc/DrawDocShell.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/inc/DrawDocShell.hxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/inc/DrawDocShell.hxx Mon Nov 18 12:53:58 2013
@@ -136,6 +136,12 @@ public:
 
 	sal_Bool			        GotoBookmark(const String& rBookmark);
 
+//IAccessibility2 Implementation 2009-----
+	//Solution: realize multi-selection of objects
+	sal_Bool					GotoTreeBookmark(const String& rBookmark);
+	sal_Bool					IsMarked(  SdrObject* pObject  ); 
+	sal_Bool					GetObjectIsmarked(const String& rBookmark);
+//-----IAccessibility2 Implementation 2009
 	Bitmap                  GetPagePreviewBitmap(SdPage* pPage, sal_uInt16 nMaxEdgePixel);
 
     /** checks, if the given name is a valid new name for a slide
@@ -225,6 +231,13 @@ protected:
 	bool					mbOwnDocument;			// if true, we own mpDoc and will delete it in our d'tor
     void					Construct(bool bClipboard);
     virtual void            InPlaceActivate( sal_Bool bActive );
+//IAccessibility2 Implementation 2009-----
+public:
+	virtual void setDocAccTitle( const String& rTitle );
+	virtual const String getDocAccTitle() const;
+	virtual void setDocReadOnly( sal_Bool bReadOnly);
+	virtual sal_Bool getDocReadOnly() const;
+//-----IAccessibility2 Implementation 2009
 };
 
 #ifndef SV_DECL_DRAW_DOC_SHELL_DEFINED

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/inc/DrawViewShell.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/inc/DrawViewShell.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/inc/DrawViewShell.hxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/inc/DrawViewShell.hxx Mon Nov 18 12:53:58 2013
@@ -252,6 +252,12 @@ public:
 	sal_Bool		    IsSwitchPageAllowed() const;
 
 	sal_Bool		    GotoBookmark(const String& rBookmark);
+//IAccessibility2 Implementation 2009-----
+	//Solution: realize multi-selection of objects ,If object is marked , 
+	//the corresponding entry is set true ,else the corresponding entry is set false .
+	void                    FreshNavigatrEntry();
+	void                    FreshNavigatrTree();
+//-----IAccessibility2 Implementation 2009
 	void            MakeVisible(const Rectangle& rRect, ::Window& rWin);
 
 	virtual void    ReadFrameViewData(FrameView* pView);
@@ -372,6 +378,10 @@ public:
 
     ::rtl::OUString GetSidebarContextName (void) const;
 
+//IAccessibility2 Implementation 2009-----
+	//move this method to ViewShell. 
+	//void	NotifyAccUpdate();
+//-----IAccessibility2 Implementation 2009
 protected:
 	DrawView*		mpDrawView;
 	SdPage* 		mpActualPage;
@@ -497,6 +507,10 @@ private:
         const Point& rMouseLocation);
 
 	using ViewShell::Notify;
+
+//IAccessibility2 Implementation 2009-----
+	//const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > & GetForms() const;
+//-----IAccessibility2 Implementation 2009
 	
 	::std::auto_ptr< AnnotationManager > mpAnnotationManager;
 	::std::auto_ptr< ViewOverlayManager > mpViewOverlayManager;

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/inc/OutlineViewShell.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/inc/OutlineViewShell.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/inc/OutlineViewShell.hxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/inc/OutlineViewShell.hxx Mon Nov 18 12:53:58 2013
@@ -139,6 +139,9 @@ public:
         ::com::sun::star::accessibility::XAccessible>
         CreateAccessibleDocumentView (::sd::Window* pWindow);
 
+//IAccessibility2 Implementation 2009-----
+	String m_StrOldPageName;
+//-----IAccessibility2 Implementation 2009
     /** Update the preview to show the specified page.
     */
 	virtual void UpdatePreview (SdPage* pPage, sal_Bool bInit = sal_False);

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/inc/SdUnoDrawView.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/inc/SdUnoDrawView.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/inc/SdUnoDrawView.hxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/inc/SdUnoDrawView.hxx Mon Nov 18 12:53:58 2013
@@ -112,14 +112,14 @@ protected:
 	void setMasterPageMode(sal_Bool MasterPageMode_) throw();
 	sal_Bool getLayerMode(void) const throw();
 	void setLayerMode(sal_Bool LayerMode_) throw();
-
+public:
     /** Return a reference to the active layer object.
         @return
             The returned value may be empty when the internal state of this
             view is not valid (like during destruction.)
     */
     ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XLayer> getActiveLayer (void) throw ();
-
+protected:
     /** Make the specified object the active layer.
         @param rxLayer
             The new layer object.

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/inc/SlideSorterViewShell.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/inc/SlideSorterViewShell.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/inc/SlideSorterViewShell.hxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/inc/SlideSorterViewShell.hxx Mon Nov 18 12:53:58 2013
@@ -174,6 +174,10 @@ public:
     virtual ::com::sun::star::uno::Reference<
         ::com::sun::star::accessibility::XAccessible>
         CreateAccessibleDocumentView (::sd::Window* pWindow);
+	//IAccessibility2 Implementation 2009-----
+	// handle SlideSorterView specially because AccessibleSlideSorterView doesn't inherit from AccessibleDocumentViewBase
+	virtual void SwitchViewFireFocus( ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > xAcc );
+	//-----IAccessibility2 Implementation 2009
 
     SlideSorter& GetSlideSorter (void) const;
 

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/inc/SlideViewShell.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/inc/SlideViewShell.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/inc/SlideViewShell.hxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/inc/SlideViewShell.hxx Mon Nov 18 12:53:58 2013
@@ -140,6 +140,10 @@ public:
     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> CreateAccessibleDocumentView( ::sd::Window* pWindow );
 
     void            SelectionHasChanged();
+//IAccessibility2 Implementation 2009-----
+    //Notify the SELECTION_CHANGE, SELECTION_ADD, SELECTION_REMOVE events
+    void            SelectionHasChanged(sal_uInt16 nPage, sal_Bool bSelect);
+//-----IAccessibility2 Implementation 2009
     void            PageLayoutHasChanged();
     void            FocusHasChanged( sal_uInt16 nOldFocusPage, sal_uInt16 nNewFocusPage );
     void            PageVisibilityHasChanged( sal_uInt16 nPage, sal_Bool bVisible );
@@ -148,6 +152,9 @@ public:
     */
     virtual void Activate (sal_Bool IsMDIActivate);
 
+//IAccessibility2 Implementation 2009-----
+	void SwitchViewFireFocus(::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > xAcc );
+//-----IAccessibility2 Implementation 2009
 protected:
 	virtual Size    GetOptimalSizePixel() const;
 	virtual long    VirtHScrollHdl(ScrollBar* pHScroll);

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/inc/TabControl.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/inc/TabControl.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/inc/TabControl.hxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/inc/TabControl.hxx Mon Nov 18 12:53:58 2013
@@ -42,6 +42,10 @@ class TabControl 
       public DragSourceHelper, 
       public DropTargetHelper 
 {
+//IAccessibility2 Implementation 2009-----
+	//Solution: declare bIsMarked variable 
+	sal_uInt16    RrePageID;
+//-----IAccessibility2 Implementation 2009
 public:
     TabControl (DrawViewShell* pDrViewSh, ::Window* pParent);
     virtual ~TabControl (void);

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/inc/ViewShell.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/inc/ViewShell.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/inc/ViewShell.hxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/inc/ViewShell.hxx Mon Nov 18 12:53:58 2013
@@ -317,6 +317,13 @@ public:
         ::com::sun::star::accessibility::XAccessible>
         CreateAccessibleDocumentView (::sd::Window* pWindow);
 
+//IAccessibility2 Implementation 2009-----
+	virtual void SwitchViewFireFocus( ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > xAcc );
+	virtual void SwitchActiveViewFireFocus( );
+	// Move these two methods from DrawViewShell to enable slide show view
+	void	NotifyAccUpdate();
+	void	fireSwitchCurrentPage(sal_Int32 pageIndex);
+//-----IAccessibility2 Implementation 2009
 	void SetWinViewPos(const Point& rWinPos, bool bUpdate);
 	Point GetWinViewPos() const;
 	Point GetViewOrigin() const;

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/inc/Window.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/inc/Window.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/inc/Window.hxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/inc/Window.hxx Mon Nov 18 12:53:58 2013
@@ -202,6 +202,9 @@ protected:
     virtual ::com::sun::star::uno::Reference<
         ::com::sun::star::accessibility::XAccessible> 
         CreateAccessible (void);
+//IAccessibility2 Implementation 2009-----
+	virtual void SwitchView();
+//-----IAccessibility2 Implementation 2009
 
     XubString GetSurroundingText() const;
     Selection GetSurroundingTextSelection() const;

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/inc/fuediglu.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/inc/fuediglu.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/inc/fuediglu.hxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/inc/fuediglu.hxx Mon Nov 18 12:53:58 2013
@@ -54,6 +54,14 @@ public:
 	virtual void Activate();		   // Function aktivieren
 	virtual void Deactivate();		   // Function deaktivieren
 
+//IAccessibility2 Implementation 2009-----
+  //Solution: Add Shift+UP/DOWN/LEFT/RIGHT key to move the position of insert point, 
+  //and SHIFT+ENTER key to decide the postion and draw the new insert point
+    virtual void ForcePointer(const MouseEvent* pMEvt = NULL);
+private:
+    sal_Bool   bBeginInsertPoint;
+    Point    oldPoint;
+//-----IAccessibility2 Implementation 2009
 protected:
 	FuEditGluePoints (
         ViewShell* pViewSh, 

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/inc/fusel.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/inc/fusel.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/inc/fusel.hxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/inc/fusel.hxx Mon Nov 18 12:53:58 2013
@@ -68,6 +68,10 @@ public:
 	*/
 	virtual bool cancel();
 
+//IAccessibility2 Implementation 2009-----
+	//Solution: let mouse cursor move
+	virtual void ForcePointer(const MouseEvent* pMEvt = NULL);
+//-----IAccessibility2 Implementation 2009
 protected:
 	FuSelection (ViewShell* pViewSh, 
         ::sd::Window* pWin, 
@@ -100,6 +104,14 @@ private:
             position then NULL is returned.
     */
     SdrObject* pickObject (const Point& rTestPoint);
+//IAccessibility2 Implementation 2009-----
+  //Solution: Add Shift+UP/DOWN/LEFT/RIGHT key to move the position of insert point, 
+  //and SHIFT+ENTER key to decide the postion and draw the new insert point
+    sal_Bool   bBeginInsertPoint;
+    Point    oldPoint;
+  //Solution: let mouse cursor move
+  sal_Bool   bMovedToCenterPoint;
+//-----IAccessibility2 Implementation 2009
 };
 
 } // end of namespace sd

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/inc/navigatr.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/inc/navigatr.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/inc/navigatr.hxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/inc/navigatr.hxx Mon Nov 18 12:53:58 2013
@@ -165,6 +165,13 @@ private:
 	virtual void				DataChanged( const DataChangedEvent& rDCEvt );
 	void						SetDragImage();
 	void						ApplyImageList();
+//IAccessibility2 Implementation 2009-----
+public:	
+	//Solution: when object is marked , fresh the corresponding entry tree .
+	sd::DrawDocShell*             GetDrawDocShell(const SdDrawDocument*);
+    void                        FreshTree ( const  SdDrawDocument* pDoc );
+	void                        FreshEntry( );
+//-----IAccessibility2 Implementation 2009
 };
 
 

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/inc/sdtreelb.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/inc/sdtreelb.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/inc/sdtreelb.hxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/inc/sdtreelb.hxx Mon Nov 18 12:53:58 2013
@@ -36,6 +36,10 @@
 #include <svl/urlbmk.hxx>
 #include <tools/ref.hxx>
 #include "sdxfer.hxx"
+//IAccessibility2 Implementation 2009-----
+#include <vector>
+using namespace std;
+//-----IAccessibility2 Implementation 2009
 #include <boost/scoped_ptr.hpp>
 #include <boost/function.hpp>
 
@@ -70,6 +74,10 @@ private:
 	
 	static sal_Bool  SD_DLLPRIVATE bIsInDrag;      // static, falls der Navigator im ExecuteDrag geloescht wird
 
+//IAccessibility2 Implementation 2009-----
+	//Solution: set contenttree in SdNavigatorWin
+    sal_Bool                           bisInSdNavigatorWin;
+//-----IAccessibility2 Implementation 2009
 public:
 
 	// nested class to implement the TransferableHelper
@@ -144,6 +152,11 @@ protected:
 	::sd::DrawDocShell* 		mpDropDocSh;
 	SdNavigatorWin*			mpDropNavWin;
 	SfxViewFrame*           mpFrame;
+	//IAccessibility2 Implementation 2009-----
+	vector<String>			maTreeItem;
+	sal_Bool					mbSaveTreeItemState;
+	String					maSelectionEntryText;
+	//-----IAccessibility2 Implementation 2009
 
 	// DragSourceHelper		
 	virtual void			StartDrag( sal_Int8 nAction, const Point& rPosPixel );
@@ -188,12 +201,20 @@ protected:
     
     using Window::GetDropTarget;
     virtual SvLBoxEntry* GetDropTarget (const Point& rLocation);
+//IAccessibility2 Implementation 2009-----
+	virtual void 	InitEntry(SvLBoxEntry*,const XubString&,const Image&,const Image&,SvLBoxButtonKind );
+//-----IAccessibility2 Implementation 2009
 
 public:
 							
 							SdPageObjsTLB( Window* pParent, const SdResId& rSdResId );
 							~SdPageObjsTLB();
-
+//IAccessibility2 Implementation 2009-----
+   // helper function for 	GetEntryAltText and GetEntryLongDescription
+    String			getAltLongDescText( SvLBoxEntry* pEntry , sal_Bool isAltText) const;
+    String  		GetEntryAltText( SvLBoxEntry* pEntry ) const;
+    String  		GetEntryLongDescription( SvLBoxEntry* pEntry ) const;
+//-----IAccessibility2 Implementation 2009
 	virtual void			SelectHdl();
 	virtual void			KeyInput( const KeyEvent& rKEvt );
 							
@@ -208,6 +229,16 @@ public:
 	sal_Bool					HasSelectedChilds( const String& rName );
 	sal_Bool					SelectEntry( const String& rName );
 	String					GetSelectEntry();
+//IAccessibility2 Implementation 2009-----
+	//Solution: Mark Current Entry
+	void                    MarkCurEntry( const String& rName );
+	void                    SetSdNavigatorWinFlag(sal_Bool isInSdNavigatorWin){bisInSdNavigatorWin =isInSdNavigatorWin;};
+	void                    FreshCurEntry();
+
+	void					Clear();
+	void					SetSaveTreeItemStateFlag(sal_Bool bState){mbSaveTreeItemState = bState;}
+	void					SaveExpandedTreeItemState(SvLBoxEntry* pEntry, vector<String>& vectTreeItem);
+//-----IAccessibility2 Implementation 2009
 	List*					GetSelectEntryList( sal_uInt16 nDepth );
 	SdDrawDocument*			GetBookmarkDoc(SfxMedium* pMedium = NULL);
 	::sd::DrawDocShell*			GetDropDocSh() { return(mpDropDocSh); }

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/slideshow/showwin.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/slideshow/showwin.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/slideshow/showwin.cxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/slideshow/showwin.cxx Mon Nov 18 12:53:58 2013
@@ -738,4 +738,28 @@ void ShowWindow::AddWindowToPaintView()
 		GetChild( nChild )->Show( sal_True );
 }
 
+//IAccessibility2 Implementation 2009-----
+// Overload the sd::Window's CreateAccessible to create a different accessible object
+::com::sun::star::uno::Reference<
+    ::com::sun::star::accessibility::XAccessible>
+    ShowWindow::CreateAccessible (void)
+{
+	::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > xAcc = GetAccessible(sal_False);
+	if (xAcc.get())
+	{
+		return xAcc;
+	}
+    if (mpViewShell != NULL)
+	{
+		xAcc = mpViewShell->CreateAccessibleDocumentView (this);
+		SetAccessible(xAcc);
+		return xAcc;
+	}
+    else
+    {
+        OSL_TRACE ("::sd::Window::CreateAccessible: no view shell");
+	return ::Window::CreateAccessible ();
+    }
+}
+//-----IAccessibility2 Implementation 2009
 } // end of namespace sd

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/slideshow/showwindow.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/slideshow/showwindow.hxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/slideshow/showwindow.hxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/slideshow/showwindow.hxx Mon Nov 18 12:53:58 2013
@@ -102,6 +102,11 @@ public:
 	virtual void	MouseButtonDown(const MouseEvent& rMEvt);
 	virtual void	Paint(const Rectangle& rRect);
 	virtual long	Notify(NotifyEvent& rNEvt);
+	//IAccessibility2 Implementation 2009-----
+	//Overload the sd::Window's CreateAccessible to create a different accessible object
+    virtual ::com::sun::star::uno::Reference<
+        ::com::sun::star::accessibility::XAccessible> 
+        CreateAccessible (void);
 
 	void			TerminateShow();
 	void			RestartShow();

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/slideshow/slideshow.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/slideshow/slideshow.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/slideshow/slideshow.cxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/slideshow/slideshow.cxx Mon Nov 18 12:53:58 2013
@@ -818,6 +818,12 @@ void SAL_CALL SlideShow::end() throw(Run
                     }
 				}
 			}
+			//IAccessibility2 Implementation 2009-----
+			//Fire the acc focus event when focus is switched back. The above method mpCurrentViewShellBase->GetWindow()->GrabFocus() will
+			//set focus to WorkWindow instead of the sd::window, so here call Shell's method to fire the focus event
+			if (pViewShell)
+				pViewShell->SwitchActiveViewFireFocus();
+			//-----IAccessibility2 Implementation 2009
 		}
 		mpCurrentViewShellBase = 0;
 	}
@@ -1044,6 +1050,10 @@ void SlideShow::activate( ViewShellBase&
 			if( mxController->startShow(mxCurrentSettings.get()) )
 			{
 				pShell->Resize();
+				//IAccessibility2 Implementation 2009-----
+				// Defer the sd::ShowWindow's GrabFocus to here. so that the accessible event can be fired correctly. 
+				pShell->GetActiveWindow()->GrabFocus();
+				//-----IAccessibility2 Implementation 2009
 			}
 			else
 			{
@@ -1218,6 +1228,13 @@ void SlideShow::StartInPlacePresentation
 			
 		if( !bSuccess )	
 			end();
+		//IAccessibility2 Implementation 2009-----
+		else
+		{
+			if(mpCurrentViewShellBase)
+				mpCurrentViewShellBase->GetWindow()->GrabFocus();
+		}
+		//-----IAccessibility2 Implementation 2009
 	}
 }
 

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/slideshow/slideshowimpl.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/slideshow/slideshowimpl.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/slideshow/slideshowimpl.cxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/slideshow/slideshowimpl.cxx Mon Nov 18 12:53:58 2013
@@ -1096,7 +1096,10 @@ bool SlideshowImpl::startShow( Presentat
 				pBindings->Invalidate( SID_REHEARSE_TIMINGS );
 			}
 
-			mpShowWindow->GrabFocus();
+			//IAccessibility2 Implementation 2009-----
+			// Defer the sd::ShowWindow's GrabFocus to SlideShow::activate. so that the accessible event can be fired correctly. 
+			//mpShowWindow->GrabFocus();
+			//-----IAccessibility2 Implementation 2009
 
 			std::vector<beans::PropertyValue> aProperties;
 			aProperties.reserve( 4 );
@@ -1472,6 +1475,15 @@ void SlideshowImpl::displayCurrentSlide 
 			pBindings->Invalidate( SID_NAVIGATOR_PAGENAME );
 		}
 	}
+	//IAccessibility2 Implementation 2009-----
+	// send out page change event and notity to update all acc info for current page
+	if (mpViewShell)
+	{
+		sal_Int32 currentPageIndex = getCurrentSlideIndex();
+		mpViewShell->fireSwitchCurrentPage(currentPageIndex);
+		mpViewShell->NotifyAccUpdate();
+	}
+	//-----IAccessibility2 Implementation 2009
 }
 
 // ---------------------------------------------------------

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/slidesorter/controller/SlsFocusManager.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/slidesorter/controller/SlsFocusManager.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/slidesorter/controller/SlsFocusManager.cxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/slidesorter/controller/SlsFocusManager.cxx Mon Nov 18 12:53:58 2013
@@ -284,6 +284,11 @@ void FocusManager::HideFocusIndicator (c
 	if (rpDescriptor.get() != NULL)
 	{
         mrSlideSorter.GetView().SetState(rpDescriptor, model::PageDescriptor::ST_Focused, false);
+
+		//IAccessibility2 Implementation 2009-----
+		// Hide focus should also fire the focus event, Currently, only accessibility add the focus listener
+		NotifyFocusChangeListeners();
+		//-----IAccessibility2 Implementation 2009
 	}
 }
 

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/slidesorter/shell/SlideSorterViewShell.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/slidesorter/shell/SlideSorterViewShell.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/slidesorter/shell/SlideSorterViewShell.cxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/slidesorter/shell/SlideSorterViewShell.cxx Mon Nov 18 12:53:58 2013
@@ -215,6 +215,12 @@ void SlideSorterViewShell::Init (bool bI
 {
     ViewShell::Init(bIsMainViewShell);
 
+//IAccessibility2 Implementation 2009-----
+	// since the updatePageList will show focus, the window.show() must be called ahead. This show is deferred from Init()
+	::sd::Window* pActiveWindow = GetActiveWindow();
+	if (pActiveWindow)
+		pActiveWindow->Show();
+//-----IAccessibility2 Implementation 2009
     mpSlideSorter->GetModel().UpdatePageList();
 
     if (mpContentWindow.get() != NULL)
@@ -296,7 +302,19 @@ Reference<drawing::XDrawSubController> S
         pWindow);
 }
 
-
+//IAccessibility2 Implementation 2009-----
+void SlideSorterViewShell::SwitchViewFireFocus(::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > xAcc )
+{
+	if (xAcc.get())
+	{
+		::accessibility::AccessibleSlideSorterView* pBase = static_cast< ::accessibility::AccessibleSlideSorterView* >(xAcc.get());	
+		if (pBase)
+		{
+			pBase->SwitchViewActivated();
+		}
+	}
+}
+//-----IAccessibility2 Implementation 2009
 
 
 SlideSorter& SlideSorterViewShell::GetSlideSorter (void) const

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/unoidl/DrawController.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/unoidl/DrawController.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/unoidl/DrawController.cxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/unoidl/DrawController.cxx Mon Nov 18 12:53:58 2013
@@ -539,9 +539,45 @@ void DrawController::FireSwitchCurrentPa
         }
     }
 }
+//IAccessibility2 Implementation 2009-----
+void DrawController::NotifyAccUpdate()
+{
+	sal_Int32 nHandle = PROPERTY_UPDATEACC;
+	Any aNewValue, aOldValue;
+	fire (&nHandle, &aNewValue, &aOldValue, 1, sal_False);
+}
+
+void DrawController::fireChangeLayer( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XLayer>* pCurrentLayer ) throw()
+{
+	if( pCurrentLayer != mpCurrentLayer )
+	{
+		sal_Int32 nHandle = PROPERTY_ACTIVE_LAYER;
+		
+		Any aNewValue (makeAny( *pCurrentLayer) );
+
+		Any aOldValue ;
 
+		fire (&nHandle, &aNewValue, &aOldValue, 1, sal_False);
 
+		mpCurrentLayer = pCurrentLayer;
+	}
+}
 
+// This method is only called in slide show and outline view
+//void DrawController::fireSwitchCurrentPage(String pageName ) throw()
+void DrawController::fireSwitchCurrentPage(sal_Int32 pageIndex ) throw()
+{
+		Any aNewValue;
+		Any aOldValue;
+		//OUString aPageName(  pageName );
+		//aNewValue <<= aPageName ;
+		aNewValue <<= pageIndex;
+
+		// Use new property to handle page change event
+		sal_Int32 nHandles = PROPERTY_PAGE_CHANGE;
+		fire( &nHandles, &aNewValue, &aOldValue, 1, sal_False );
+}
+//-----IAccessibility2 Implementation 2009
 
 void DrawController::FirePropertyChange (
     sal_Int32 nHandle,
@@ -750,6 +786,19 @@ void DrawController::FillPropertyTable (
 			PROPERTY_DRAWVIEWMODE,
             ::getCppuType((const ::com::sun::star::awt::Point*)0),
             beans::PropertyAttribute::BOUND|beans::PropertyAttribute::READONLY|beans::PropertyAttribute::MAYBEVOID ));
+	    //IAccessibility2 Implementation 2009-----
+	// add new property to update current page's acc information
+    rProperties.push_back(
+        beans::Property( OUString( RTL_CONSTASCII_USTRINGPARAM("UpdateAcc") ),
+			PROPERTY_UPDATEACC,
+            ::getCppuType((const sal_Int16*)0),
+            beans::PropertyAttribute::BOUND ));	
+	rProperties.push_back(
+        beans::Property( OUString( RTL_CONSTASCII_USTRINGPARAM("PageChange") ),
+			PROPERTY_PAGE_CHANGE,
+            ::getCppuType((const sal_Int16*)0),
+            beans::PropertyAttribute::BOUND ));	
+	    //-----IAccessibility2 Implementation 2009
 }
 
 

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/unoidl/SdUnoDrawView.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/unoidl/SdUnoDrawView.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/unoidl/SdUnoDrawView.cxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/unoidl/SdUnoDrawView.cxx Mon Nov 18 12:53:58 2013
@@ -151,6 +151,9 @@ Reference<drawing::XLayer> SdUnoDrawView
             xCurrentLayer = pManager->GetLayer (pLayer);
     }
     while (false);
+//IAccessibility2 Implementation 2009-----
+	mrController.mpCurrentLayer = &(xCurrentLayer) ;
+//-----IAccessibility2 Implementation 2009
 
     return xCurrentLayer;
 }

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/view/Outliner.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/view/Outliner.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/view/Outliner.cxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/view/Outliner.cxx Mon Nov 18 12:53:58 2013
@@ -535,7 +535,17 @@ bool Outliner::StartSearchAndReplace (co
             else
                 mnStartPageIndex = (sal_uInt16)-1;
         }
-    }
+//IAccessibility2 Implementation 2009-----
+	if ( Application::IsAccessibilityEnabled() )
+	{
+		SvxSearchDialog* pSearchDlg = 
+			((SvxSearchDialog*)(SfxViewFrame::Current()->GetChildWindow(
+			SvxSearchDialogWrapper::GetChildWindowId())->GetWindow()));
+		pSearchDlg->SetDocWin( pViewShell->GetActiveWindow() );
+		pSearchDlg->SetSrchFlag();
+	}
+//-----IAccessibility2 Implementation 2009
+        }
     else
         mpDrawDocument->GetDocSh()->SetWaitCursor( sal_False );
 

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/view/drviews4.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/view/drviews4.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/view/drviews4.cxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/view/drviews4.cxx Mon Nov 18 12:53:58 2013
@@ -79,6 +79,9 @@
 // #97016# IV
 #include <svx/svditer.hxx>
 
+//IAccessibility2 Implementation 2009-----
+#include <navigatr.hxx>
+//-----IAccessibility2 Implementation 2009
 namespace sd {
 
 #define PIPETTE_RANGE 0
@@ -227,6 +230,14 @@ sal_Bool DrawViewShell::KeyInput (const 
 		else
 		{
 			bRet = ViewShell::KeyInput(rKEvt, pWin);
+//IAccessibility2 Implementation 2009-----
+    		//Solution: If object is marked , the corresponding entry is set true ,
+    		//else the corresponding entry is set false .
+       	    if(KEY_TAB == rKEvt.GetKeyCode().GetCode())
+       	    {
+   			   FreshNavigatrTree();
+       	    }
+//-----IAccessibility2 Implementation 2009
 		}
 	}
 
@@ -271,7 +282,33 @@ void DrawViewShell::StartRulerDrag (
         mbIsRulerDrag = sal_True;
 	}
 }
+//IAccessibility2 Implementation 2009-----
+//Solution: If object is marked , the corresponding entry is set true ,
+//else the corresponding entry is set false .
+void DrawViewShell::FreshNavigatrEntry()
+{
+		sal_uInt16 nId = SID_NAVIGATOR;
+		SfxChildWindow* pWindow = GetViewFrame()->GetChildWindow( nId );
+		if( pWindow )
+		{
+			SdNavigatorWin* pNavWin = (SdNavigatorWin*)( pWindow->GetContextWindow( SD_MOD() ) );
+			if( pNavWin )
+				pNavWin->FreshEntry();
+		}
+}
 
+void DrawViewShell::FreshNavigatrTree()
+{
+		sal_uInt16 nId = SID_NAVIGATOR;
+		SfxChildWindow* pWindow = GetViewFrame()->GetChildWindow( nId );
+		if( pWindow )
+		{
+			SdNavigatorWin* pNavWin = (SdNavigatorWin*)( pWindow->GetContextWindow( SD_MOD() ) );
+			if( pNavWin )
+				pNavWin->FreshTree( GetDoc() );
+		}
+}
+//-----IAccessibility2 Implementation 2009
 /*************************************************************************
 |*
 |* MouseButtonDown event
@@ -298,6 +335,11 @@ void DrawViewShell::MouseButtonDown(cons
 	{
 		ViewShell::MouseButtonDown(rMEvt, pWin);
 
+//IAccessibility2 Implementation 2009-----
+		//Solution: If object is marked , the corresponding entry is set true ,
+		//else the corresponding entry is set false .
+              FreshNavigatrTree();
+//-----IAccessibility2 Implementation 2009
 		if ( mbPipette )
 			( (SvxBmpMask*) GetViewFrame()->GetChildWindow( SvxBmpMaskChildWindow::GetChildWindowId() )->GetWindow() )->PipetteClicked();
 	}
@@ -467,6 +509,11 @@ void DrawViewShell::MouseButtonUp(const 
 		}
 		else
     		ViewShell::MouseButtonUp(rMEvt, pWin);
+//IAccessibility2 Implementation 2009-----
+		//Solution: If object is marked , the corresponding entry is set true ,
+		//else the corresponding entry is set false .
+		FreshNavigatrTree();
+//-----IAccessibility2 Implementation 2009
 	}
 }
 

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/view/drviews5.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/view/drviews5.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/view/drviews5.cxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/view/drviews5.cxx Mon Nov 18 12:53:58 2013
@@ -705,6 +705,15 @@ void DrawViewShell::SetActiveTabLayerInd
             // Tell the draw view and the tab control of the new active layer.
             mpDrawView->SetActiveLayer (pBar->GetPageText (pBar->GetPageId ((sal_uInt16)nIndex)));
             pBar->SetCurPageId (pBar->GetPageId ((sal_uInt16)nIndex));
+		//IAccessibility2 Implementation 2009-----
+		SdUnoDrawView* pUnoDrawView = new SdUnoDrawView (
+            GetViewShellBase().GetDrawController(),
+            *this,
+            *GetView());
+		::com::sun::star::uno::Reference< ::com::sun::star::drawing::XLayer> rLayer = pUnoDrawView->getActiveLayer();
+		GetViewShellBase().GetDrawController().fireChangeLayer( &rLayer );
+		delete pUnoDrawView;
+		//-----IAccessibility2 Implementation 2009
         }
     }
 }

Modified: openoffice/branches/rejuvenate01/main/sd/source/ui/view/outlnvsh.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/sd/source/ui/view/outlnvsh.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/sd/source/ui/view/outlnvsh.cxx (original)
+++ openoffice/branches/rejuvenate01/main/sd/source/ui/view/outlnvsh.cxx Mon Nov 18 12:53:58 2013
@@ -235,6 +235,9 @@ OutlineViewShell::OutlineViewShell (
 	Construct(GetDocSh());
 
     SetContextName(sfx2::sidebar::EnumContext::GetContextName(sfx2::sidebar::EnumContext::Context_OutlineText));
+//IAccessibility2 Implementation 2009-----
+	m_StrOldPageName.EmptyString();
+//-----IAccessibility2 Implementation 2009
 }
 
 /*************************************************************************
@@ -1472,6 +1475,14 @@ void OutlineViewShell::GetStatusBarState
 
 		aLayoutStr = pPage->GetLayoutName();
 		aLayoutStr.Erase( aLayoutStr.SearchAscii( SD_LT_SEPARATOR ) );
+		//IAccessibility2 Implementation 2009-----
+			//Now, CurrentPage property change is already sent for DrawView and OutlineView, so it is not necessary to send again here
+			if(m_StrOldPageName!=aPageStr)
+			{
+				GetViewShellBase().GetDrawController().fireSwitchCurrentPage(nPos);
+				m_StrOldPageName = aPageStr;
+			}	
+		//-----IAccessibility2 Implementation 2009
 	}
 	rSet.Put( SfxStringItem( SID_STATUS_PAGE, aPageStr ) );
 	rSet.Put( SfxStringItem( SID_STATUS_LAYOUT, aLayoutStr ) );