Modified: openoffice/branches/rejuvenate01/main/vcl/source/window/menu.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/vcl/source/window/menu.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/vcl/source/window/menu.cxx (original)
+++ openoffice/branches/rejuvenate01/main/vcl/source/window/menu.cxx Mon Nov 18 
12:53:58 2013
@@ -1573,6 +1573,36 @@ sal_uInt16 Menu::GetCurItemId() const
 {
     return nSelectedId;
 }
+//IAccessibility2 Implementation 2009
+void Menu::SetHightlightItem( sal_uInt16 nHighlightedItem )
+{
+       this->nHighlightedItem = nHighlightedItem;
+}
+sal_uInt16 Menu::GetHighlightItem() const
+{
+       return nHighlightedItem;
+}
+
+
+XubString Menu::GetItemAccKeyStrFromPos(sal_uInt16 nPos) const 
+{
+    MenuItemData* pData = pItemList->GetDataFromPos( nPos );
+       if (pData)
+       {
+               return pData->aAccelKey.GetName();
+       }
+       return XubString();
+}
+
+sal_Bool Menu::IsTemporaryItemFromPos(sal_uInt16 nPos ) const
+{
+    MenuItemData* pData = pItemList->GetDataFromPos( nPos );
+       if (pData)
+       {
+               return pData->bIsTemporary;
+       }
+       return sal_False;
+}
 
 void Menu::SetItemBits( sal_uInt16 nItemId, MenuItemBits nBits )
 {
@@ -3728,7 +3758,12 @@ sal_uInt16 PopupMenu::ImplExecute( Windo
             String aTmpEntryText( ResId( SV_RESID_STRING_NOSELECTIONPOSSIBLE, 
*pResMgr ) );
             MenuItemData* pData = pItemList->Insert(
                 0xFFFF, MENUITEM_STRING, 0, aTmpEntryText, Image(), NULL, 
0xFFFF );
+//IAccessibility2 Implementation 2009-----
+               sal_uInt16          nmPos;
+               pData = pItemList->GetData( pData->nId, nmPos );
                 pData->bIsTemporary = sal_True;
+               ImplCallEventListeners(VCLEVENT_MENU_SUBMENUCHANGED,nmPos);
+//-----IAccessibility2 Implementation 2009
         }
     }
     else if ( Application::GetSettings().GetStyleSettings().GetAutoMnemonic() 
&& !( nMenuFlags & MENU_FLAG_NOAUTOMNEMONICS ) )
@@ -4005,7 +4040,9 @@ void MenuFloatingWindow::doShutdown()
         // otherwise the entry will not be read when the menu is opened again
         if( nHighlightedItem != ITEMPOS_INVALID )
             pMenu->ImplCallEventListeners( VCLEVENT_MENU_DEHIGHLIGHT, 
nHighlightedItem );
-    
+//IAccessibility2 Implementation 2009-----
+       pMenu->SetHightlightItem(ITEMPOS_INVALID);
+//-----IAccessibility2 Implementation 2009
         if( !bKeyInput && pMenu && pMenu->pStartedFrom && 
!pMenu->pStartedFrom->bIsMenuBar )
         {
             // #102461# remove highlight in parent
@@ -4676,6 +4713,9 @@ void MenuFloatingWindow::ChangeHighlight
             }
         }
         HighlightItem( nHighlightedItem, sal_True );
+//IAccessibility2 Implementation 2009-----
+       pMenu->SetHightlightItem(nHighlightedItem);
+//-----IAccessibility2 Implementation 2009
         pMenu->ImplCallHighlight( nHighlightedItem );
     }
     else
@@ -4977,6 +5017,10 @@ void MenuFloatingWindow::KeyInput( const
                     MenuFloatingWindow* pFloat = 
((PopupMenu*)pMenu->pStartedFrom)->ImplGetFloatingWindow();
                     pFloat->GrabFocus();
                     pFloat->KillActivePopup();
+//IAccessibility2 Implementation 2009-----
+                   sal_uInt16 highlightItem = pFloat->GetHighlightedItem();
+                   pFloat->ChangeHighlightItem(highlightItem, sal_False);
+//-----IAccessibility2 Implementation 2009
                 }
             }
         }
@@ -5566,6 +5610,9 @@ void MenuBarWindow::ChangeHighlightItem(
     nHighlightedItem = (sal_uInt16)n;
     DBG_ASSERT( ( nHighlightedItem == ITEMPOS_INVALID ) || 
pMenu->ImplIsVisible( nHighlightedItem ), "ChangeHighlightItem: Not visible!" );
     HighlightItem( nHighlightedItem, sal_True );
+//IAccessibility2 Implementation 2009-----
+    pMenu->SetHightlightItem(nHighlightedItem);
+//-----IAccessibility2 Implementation 2009
     pMenu->ImplCallHighlight( nHighlightedItem );
 
     if( mbAutoPopup )

Modified: openoffice/branches/rejuvenate01/main/vcl/source/window/toolbox.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/vcl/source/window/toolbox.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/vcl/source/window/toolbox.cxx 
(original)
+++ openoffice/branches/rejuvenate01/main/vcl/source/window/toolbox.cxx Mon Nov 
18 12:53:58 2013
@@ -6065,6 +6065,11 @@ void ToolBox::ImplChangeHighlight( ImplT
                 mnCurPos = aPos;
             ImplShowFocus();
 
+//IAccessibility2 Implementation 2009-----
+                       if( pItem->mpWindow )
+                               pItem->mpWindow->GrabFocus();
+                       if( pItem != pOldItem )
+//-----IAccessibility2 Implementation 2009
             ImplCallEventListeners( VCLEVENT_TOOLBOX_HIGHLIGHT );
                }
        }

Modified: openoffice/branches/rejuvenate01/main/vcl/source/window/toolbox2.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/vcl/source/window/toolbox2.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/vcl/source/window/toolbox2.cxx 
(original)
+++ openoffice/branches/rejuvenate01/main/vcl/source/window/toolbox2.cxx Mon 
Nov 18 12:53:58 2013
@@ -1737,7 +1737,11 @@ void ToolBox::SetItemState( sal_uInt16 n
             ImplCallEventListeners( VCLEVENT_TOOLBOX_BUTTONSTATECHANGED, 
reinterpret_cast< void* >( nPos ) );
 
             // Notify
-                   ImplCallEventListeners( VCLEVENT_TOOLBOX_CLICK, 
reinterpret_cast< void* >( nPos ) );
+//IAccessibility2 Implementation 2009-----
+                   //Solution:Call accessivle listener to notify state_changed 
event
+                   ImplCallEventListeners( 
VCLEVENT_TOOLBOX_ITEMUPDATED,reinterpret_cast< void* >(nPos) );
+                   //ImplCallEventListeners( VCLEVENT_TOOLBOX_CLICK, 
reinterpret_cast< void* >( nPos ) );
+//-----IAccessibility2 Implementation 2009
                }
        }
 }

Modified: openoffice/branches/rejuvenate01/main/vcl/source/window/window.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/vcl/source/window/window.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/vcl/source/window/window.cxx 
(original)
+++ openoffice/branches/rejuvenate01/main/vcl/source/window/window.cxx Mon Nov 
18 12:53:58 2013
@@ -5397,6 +5397,15 @@ long Window::Notify( NotifyEvent& rNEvt 
     return nRet;
 }
 
+// IAccessible2 implementation, 2009
+void Window::NotifyVCLEvent( sal_uLong nEvent ,void* pData /*= NULL*/)
+{
+       ImplCallEventListeners( nEvent ,pData);
+}
+::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< 
::com::sun::star::uno::XInterface > > Window::GetAccFlowToSequence()
+{
+       return ::com::sun::star::uno::Sequence< 
::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > >();
+}
 // -----------------------------------------------------------------------
 
 void Window::ImplCallEventListeners( sal_uLong nEvent, void* pData )
@@ -9097,10 +9106,11 @@ sal_uInt16 Window::GetAccessibleRole() c
             case WINDOW_CANCELBUTTON:
             case WINDOW_HELPBUTTON:
             case WINDOW_IMAGEBUTTON:
-            case WINDOW_MENUBUTTON:
+            //case WINDOW_MENUBUTTON:
             case WINDOW_MOREBUTTON:
             case WINDOW_SPINBUTTON:
             case WINDOW_BUTTON: nRole = 
accessibility::AccessibleRole::PUSH_BUTTON; break;
+            case WINDOW_MENUBUTTON: nRole = 
accessibility::AccessibleRole::BUTTON_MENU; break;
 
             case WINDOW_PATHDIALOG: nRole = 
accessibility::AccessibleRole::DIRECTORY_PANE; break;
             case WINDOW_FILEDIALOG: nRole = 
accessibility::AccessibleRole::FILE_CHOOSER; break;
@@ -9115,10 +9125,15 @@ sal_uInt16 Window::GetAccessibleRole() c
             case WINDOW_MULTILINEEDIT: nRole = 
accessibility::AccessibleRole::SCROLL_PANE; break;
 
             case WINDOW_PATTERNFIELD:
+//IAccessibility2 Impplementaton 2009-----
+            // Need to set the role of those window control to spinbox
+            /*
             case WINDOW_NUMERICFIELD:
             case WINDOW_METRICFIELD:
             case WINDOW_CURRENCYFIELD:
             case WINDOW_LONGCURRENCYFIELD:
+            */
+//-----IAccessibility2 Impplementaton 2009
             case WINDOW_EDIT: nRole = ( GetStyle() & WB_PASSWORD ) ? 
(accessibility::AccessibleRole::PASSWORD_TEXT) : 
(accessibility::AccessibleRole::TEXT); break;
 
             case WINDOW_PATTERNBOX:
@@ -9135,7 +9150,17 @@ sal_uInt16 Window::GetAccessibleRole() c
 
             case WINDOW_FIXEDTEXT: nRole = 
accessibility::AccessibleRole::LABEL; break;
             case WINDOW_FIXEDBORDER:
-            case WINDOW_FIXEDLINE: nRole = 
accessibility::AccessibleRole::SEPARATOR; break;
+                               nRole = 
accessibility::AccessibleRole::SEPARATOR; break;
+           //IAccessibility2 Impplementaton 2009-----
+            case WINDOW_FIXEDLINE: 
+                               {       if( GetText().Len() > 0 )
+                                               nRole = 
accessibility::AccessibleRole::LABEL; 
+                                       else
+                                               nRole = 
accessibility::AccessibleRole::SEPARATOR; 
+                                       break;
+                               }
+            //case WINDOW_FIXEDLINE: nRole = 
accessibility::AccessibleRole::SEPARATOR; break;
+           //-----IAccessibility2 Impplementaton 2009
             case WINDOW_FIXEDBITMAP:
             case WINDOW_FIXEDIMAGE: nRole = 
accessibility::AccessibleRole::ICON; break;
             case WINDOW_GROUPBOX: nRole = 
accessibility::AccessibleRole::GROUP_BOX; break;
@@ -9150,6 +9175,13 @@ sal_uInt16 Window::GetAccessibleRole() c
             case WINDOW_DATEFIELD:
             case WINDOW_TIMEFIELD: nRole = 
accessibility::AccessibleRole::DATE_EDITOR; break;
 
+//IAccessibility2 Impplementaton 2009-----
+            // Need to set the role of those window control to spinbox
+            case WINDOW_NUMERICFIELD:
+            case WINDOW_METRICFIELD:
+            case WINDOW_CURRENCYFIELD:
+            case WINDOW_LONGCURRENCYFIELD:
+//-----IAccessibility2 Impplementaton 2009
             case WINDOW_SPINFIELD: nRole = 
accessibility::AccessibleRole::SPIN_BOX; break;
 
             case WINDOW_TOOLBOX: nRole = 
accessibility::AccessibleRole::TOOL_BAR; break;
@@ -9201,8 +9233,12 @@ void Window::SetAccessibleName( const St
    if ( !mpWindowImpl->mpAccessibleInfos )
         mpWindowImpl->mpAccessibleInfos = new ImplAccessibleInfos;
 
+//IAccessibility2 Implementation 2009-----
+       String oldName = GetAccessibleName();
     delete mpWindowImpl->mpAccessibleInfos->pAccessibleName;
     mpWindowImpl->mpAccessibleInfos->pAccessibleName = new String( rName );
+    ImplCallEventListeners( VCLEVENT_WINDOW_FRAMETITLECHANGED, &oldName );     
+//-----IAccessibility2 Implementation 2009
 }
 
 String Window::GetAccessibleName() const
@@ -9247,6 +9283,12 @@ String Window::GetAccessibleName() const
                 if ( pLabel && pLabel != this )
                     aAccessibleName = pLabel->GetText();
             }
+               //IAccessibility2 Implementation 2009-----
+               if ( !aAccessibleName.Len() )
+               {
+                   aAccessibleName = GetQuickHelpText();
+               }
+               //-----IAccessibility2 Implementation 2009
             break;
 
             case WINDOW_IMAGEBUTTON:
@@ -9260,6 +9302,16 @@ String Window::GetAccessibleName() const
                 }
             break;
 
+//IAccessibility2 Implementation 2009-----
+                       case WINDOW_TOOLBOX:
+                               aAccessibleName = GetText();
+                               if( aAccessibleName.Len() == 0 )
+                                       aAccessibleName =XubString( 
RTL_CONSTASCII_USTRINGPARAM( "Tool Bar"  ) );
+                               break;
+                       case WINDOW_MOREBUTTON:
+                               aAccessibleName = mpWindowImpl->maText;
+                               break;
+//-----IAccessibility2 Implementation 2009
             default:
                 aAccessibleName = GetText();
                 break;

Modified: 
openoffice/branches/rejuvenate01/main/vcl/win/source/window/salframe.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/vcl/win/source/window/salframe.cxx?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/vcl/win/source/window/salframe.cxx 
(original)
+++ openoffice/branches/rejuvenate01/main/vcl/win/source/window/salframe.cxx 
Mon Nov 18 12:53:58 2013
@@ -92,6 +92,16 @@
 using ::std::max;
 #endif
 
+//IAccessibility2 Implementation 2009-----
+#ifdef WNT
+#include <oleacc.h>
+#include <com/sun/star/accessibility/XMSAAService.hpp>
+#ifndef _WIN32_WCE
+#define WM_GETOBJECT                    0x003D
+#endif
+#include <win/g_msaasvc.h>
+#endif
+//-----IAccessibility2 Implementation 2009
 #include <com/sun/star/uno/Exception.hdl>
 
 #include <time.h>
@@ -153,7 +163,12 @@ sal_Bool WinSalFrame::mbInReparent = FAL
 #define Uni_SupplementaryPlanesStart    0x10000
 
 // =======================================================================
-
+//IAccessibility2 Implementation 2009-----
+#ifdef WNT
+using namespace ::com::sun::star::accessibility;
+XMSAAService* g_acc_manager1 = NULL;
+#endif
+//-----IAccessibility2 Implementation 2009
 static void UpdateFrameGeometry( HWND hWnd, WinSalFrame* pFrame );
 static void SetMaximizedFrameGeometry( HWND hWnd, WinSalFrame* pFrame, RECT* 
pParentRect = NULL );
 
@@ -6178,6 +6193,62 @@ LRESULT CALLBACK SalFrameWndProc( HWND h
         case WM_IME_NOTIFY:
             ImplHandleIMENotify( hWnd, wParam );
             break;
+
+//IAccessibility2 implementation 2009-----
+#ifdef WNT
+               case WM_GETOBJECT:
+                       {
+                               if (!Application::IsEnableAccessInterface())
+                               {
+                                       break;
+                               }
+                               else
+                               {
+                                       // IA2 should be enabled automatically
+                                       AllSettings aSettings = 
Application::GetSettings();
+                                       MiscSettings aMisc = 
aSettings.GetMiscSettings();
+                                       aMisc.SetEnableATToolSupport( sal_True 
);
+                                       aSettings.SetMiscSettings( aMisc );
+                                       Application::SetSettings( aSettings );
+
+                                       if 
(Application::GetSettings().GetMiscSettings().GetEnableATToolSupport())
+                                       {
+                                               // Make sure to launch 
Accessibiliity only the following criterias are satisfied to avoid RFT 
interrupts regular acc processing
+                                               if (g_acc_manager1 == NULL)
+                                               {
+                                                       sal_Bool bCancelled;
+                                                       
InitAccessBridge(sal_False,bCancelled);
+                                                       if( bCancelled )
+                                                               break;
+                                               }
+                                               if (g_acc_manager1 != NULL)
+                                               {
+                                                       // MT: mhOnSetTitleWnd 
not set to reasonable value anywhere...
+                                                       /*
+                                                       sal_Bool 
bSkipSetTitleClient = sal_False;
+                                                       SalFrame* pFrame = 
GetWindowPtr( hWnd );
+                                                       if(pFrame)
+                                                       {
+                                                       bSkipSetTitleClient = 
(lParam == OBJID_CLIENT && hWnd == ((WinSalFrame*)pFrame)->mhOnSetTitleWnd);
+                                                       }
+                                                       */
+                                                       if ( (lParam == 
OBJID_CLIENT ) /* && !bSkipSetTitleClient */ )
+                                                       {
+                                                               long RetResult 
= g_acc_manager1->getAccObjectPtr((long)hWnd, lParam, wParam);
+                                                               if(RetResult != 
0)
+                                                               {
+                                                                       rDef = 
FALSE;                                   
+                                                                       return 
(HRESULT)RetResult;
+                                                               }
+                                                       }
+                                               }
+                                       }
+                               }
+                               break;
+                       }
+#endif                 
+//-----IAccessibility2 implementation 2009
+
         case WM_APPCOMMAND:
             if( ImplHandleAppCommand( hWnd, lParam ) )
             {                
@@ -6398,3 +6469,25 @@ sal_Bool ImplWriteLastError( DWORD lastE
 
 // -----------------------------------------------------------------------
 
+//IAccessibility2 implementation 2009-----
+#ifdef WNT
+bool IsWNTInitAccessBridge()
+{
+       return NULL != g_acc_manager1;
+}
+#endif
+#ifdef WNT
+bool WNTEnableAccessInterface(bool bEnable)
+{
+    ImplSVData* pSVData = ImplGetSVData();
+
+       BOOL bPreVal = pSVData->maAppData.m_bEnableAccessInterface; 
+       long nEnable= bEnable;
+       ::InterlockedExchange(
+               (LPLONG)&(pSVData->maAppData.m_bEnableAccessInterface),
+               nEnable);
+       
+       return bPreVal;
+}
+#endif
+//-----IAccessibility2 implementation 2009

Modified: openoffice/branches/rejuvenate01/main/xmlhelp/util/main_transform.xsl
URL: 
http://svn.apache.org/viewvc/openoffice/branches/rejuvenate01/main/xmlhelp/util/main_transform.xsl?rev=1543021&r1=1543020&r2=1543021&view=diff
==============================================================================
--- openoffice/branches/rejuvenate01/main/xmlhelp/util/main_transform.xsl 
(original)
+++ openoffice/branches/rejuvenate01/main/xmlhelp/util/main_transform.xsl Mon 
Nov 18 12:53:58 2013
@@ -613,7 +613,7 @@
 <xsl:variable name="archive"><xsl:value-of 
select="concat(substring-before(substring-after(@href,'text/'),'/'),'/')"/></xsl:variable>
 <xsl:variable name="dbpostfix"><xsl:call-template 
name="createDBpostfix"><xsl:with-param name="archive" 
select="$archive"/></xsl:call-template></xsl:variable>
        <xsl:choose>
-               <xsl:when test="starts-with(@href,'http://')">  <!-- web links 
-->
+               <xsl:when test="starts-with(@href,'http://') or 
starts-with(@href,'https://')">  <!-- web links -->
                        <a href="{@href}"><xsl:apply-templates /></a>
                </xsl:when>
                <xsl:when test="contains(@href,'#')">

Propchange: openoffice/branches/rejuvenate01/test/
------------------------------------------------------------------------------
  Merged /openoffice/trunk/test:r1539673-1543013
  Merged /openoffice/branches/ia2/test:r1417739-1541842

Propchange: 
openoffice/branches/rejuvenate01/test/testcommon/source/org/openoffice/test/vcl/
------------------------------------------------------------------------------
  Merged 
/openoffice/trunk/test/testcommon/source/org/openoffice/test/vcl:r1539673-1543013
  Merged 
/openoffice/branches/ia2/test/testcommon/source/org/openoffice/test/vcl:r1417739-1541842


Reply via email to