LCOV - code coverage report
Current view: top level - accessibility/source/helper - acc_factory.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 68 124 54.8 %
Date: 2012-08-25 Functions: 16 34 47.1 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 59 288 20.5 %

           Branch data     Line data    Source code
       1                 :            : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2                 :            : /*************************************************************************
       3                 :            :  *
       4                 :            :  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       5                 :            :  *
       6                 :            :  * Copyright 2000, 2010 Oracle and/or its affiliates.
       7                 :            :  *
       8                 :            :  * OpenOffice.org - a multi-platform office productivity suite
       9                 :            :  *
      10                 :            :  * This file is part of OpenOffice.org.
      11                 :            :  *
      12                 :            :  * OpenOffice.org is free software: you can redistribute it and/or modify
      13                 :            :  * it under the terms of the GNU Lesser General Public License version 3
      14                 :            :  * only, as published by the Free Software Foundation.
      15                 :            :  *
      16                 :            :  * OpenOffice.org is distributed in the hope that it will be useful,
      17                 :            :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      18                 :            :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      19                 :            :  * GNU Lesser General Public License version 3 for more details
      20                 :            :  * (a copy is included in the LICENSE file that accompanied this code).
      21                 :            :  *
      22                 :            :  * You should have received a copy of the GNU Lesser General Public License
      23                 :            :  * version 3 along with OpenOffice.org.  If not, see
      24                 :            :  * <http://www.openoffice.org/license.html>
      25                 :            :  * for a copy of the LGPLv3 License.
      26                 :            :  *
      27                 :            :  ************************************************************************/
      28                 :            : 
      29                 :            : #include <toolkit/awt/vclxwindows.hxx>
      30                 :            : #include <toolkit/helper/accessiblefactory.hxx>
      31                 :            : #include <svtools/accessiblefactory.hxx>
      32                 :            : #include <accessibility/standard/vclxaccessiblebutton.hxx>
      33                 :            : #include <accessibility/standard/vclxaccessiblecheckbox.hxx>
      34                 :            : #include <accessibility/standard/vclxaccessibledropdowncombobox.hxx>
      35                 :            : #include <accessibility/standard/vclxaccessiblecombobox.hxx>
      36                 :            : #include <accessibility/standard/vclxaccessibledropdownlistbox.hxx>
      37                 :            : #include <accessibility/standard/vclxaccessibleedit.hxx>
      38                 :            : #include <accessibility/standard/vclxaccessiblefixedhyperlink.hxx>
      39                 :            : #include <accessibility/standard/vclxaccessiblefixedtext.hxx>
      40                 :            : #include <accessibility/standard/vclxaccessiblelistbox.hxx>
      41                 :            : #include <accessibility/standard/vclxaccessiblemenu.hxx>
      42                 :            : #include <accessibility/standard/vclxaccessibleradiobutton.hxx>
      43                 :            : #include <accessibility/standard/vclxaccessiblescrollbar.hxx>
      44                 :            : #include <accessibility/standard/vclxaccessibletextcomponent.hxx>
      45                 :            : #include <accessibility/standard/vclxaccessibletoolbox.hxx>
      46                 :            : #include <toolkit/awt/vclxaccessiblecomponent.hxx>
      47                 :            : #include <accessibility/standard/vclxaccessiblestatusbar.hxx>
      48                 :            : #include <accessibility/standard/vclxaccessibletabcontrol.hxx>
      49                 :            : #include <accessibility/standard/vclxaccessibletabpagewindow.hxx>
      50                 :            : #include <accessibility/standard/vclxaccessiblemenubar.hxx>
      51                 :            : #include <accessibility/standard/vclxaccessiblepopupmenu.hxx>
      52                 :            : #include <accessibility/extended/accessibletablistbox.hxx>
      53                 :            : #include <accessibility/extended/AccessibleBrowseBox.hxx>
      54                 :            : #include <accessibility/extended/accessibleiconchoicectrl.hxx>
      55                 :            : #include <accessibility/extended/accessibletabbar.hxx>
      56                 :            : #include <accessibility/extended/accessiblelistbox.hxx>
      57                 :            : #include <accessibility/extended/AccessibleBrowseBoxHeaderBar.hxx>
      58                 :            : #include <accessibility/extended/textwindowaccessibility.hxx>
      59                 :            : #include <accessibility/extended/AccessibleBrowseBoxTableCell.hxx>
      60                 :            : #include <accessibility/extended/AccessibleBrowseBoxHeaderCell.hxx>
      61                 :            : #include <accessibility/extended/AccessibleBrowseBoxCheckBoxCell.hxx>
      62                 :            : #include <accessibility/extended/accessibleeditbrowseboxcell.hxx>
      63                 :            : #include <accessibility/extended/AccessibleToolPanelDeck.hxx>
      64                 :            : #include <accessibility/extended/AccessibleToolPanelDeckTabBar.hxx>
      65                 :            : #include <accessibility/extended/AccessibleToolPanelDeckTabBarItem.hxx>
      66                 :            : #include <vcl/lstbox.hxx>
      67                 :            : #include <vcl/combobox.hxx>
      68                 :            : #include <accessibility/extended/AccessibleGridControl.hxx>
      69                 :            : #include <svtools/accessibletable.hxx>
      70                 :            : #include <vcl/popupmenuwindow.hxx>
      71                 :            : #include <cppuhelper/implbase1.hxx>
      72                 :            : 
      73                 :            : #include "floatingwindowaccessible.hxx"
      74                 :            : 
      75                 :            : //........................................................................
      76                 :            : namespace accessibility
      77                 :            : {
      78                 :            : 
      79                 :         45 : inline bool hasFloatingChild(Window *pWindow)
      80                 :            : {
      81                 :         45 :     Window * pChild = pWindow->GetAccessibleChildWindow(0);
      82 [ -  + ][ -  + ]:         45 :     if( pChild && WINDOW_FLOATINGWINDOW == pChild->GetType() )
                 [ +  - ]
      83                 :          0 :         return true;
      84                 :            : 
      85                 :         45 :     return false;
      86                 :            : }
      87                 :            : 
      88                 :            : //........................................................................
      89                 :            : 
      90                 :            :     using namespace ::com::sun::star::uno;
      91                 :            :     using namespace ::com::sun::star::awt;
      92                 :            :     using namespace ::com::sun::star::accessibility;
      93                 :            :     using namespace ::svt;
      94                 :            :     using namespace ::svt::table;
      95                 :            : 
      96                 :            :     //================================================================
      97                 :            :     //= IAccessibleFactory
      98                 :            :     //================================================================
      99                 :            :     class AccessibleFactory :public ::toolkit::IAccessibleFactory
     100                 :            :                             ,public ::svt::IAccessibleFactory
     101                 :            :     {
     102                 :            :     private:
     103                 :            :         oslInterlockedCount m_refCount;
     104                 :            : 
     105                 :            :     public:
     106                 :            :         AccessibleFactory();
     107                 :            : 
     108                 :            :         // IReference
     109                 :            :         virtual oslInterlockedCount SAL_CALL acquire();
     110                 :            :         virtual oslInterlockedCount SAL_CALL release();
     111                 :            : 
     112                 :            :         // ::toolkit::IAccessibleFactory
     113                 :            :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
     114                 :            :             createAccessibleContext( VCLXButton* _pXWindow );
     115                 :            :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
     116                 :            :             createAccessibleContext( VCLXCheckBox* _pXWindow );
     117                 :            :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
     118                 :            :             createAccessibleContext( VCLXRadioButton* _pXWindow );
     119                 :            :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
     120                 :            :             createAccessibleContext( VCLXListBox* _pXWindow );
     121                 :            :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
     122                 :            :             createAccessibleContext( VCLXFixedText* _pXWindow );
     123                 :            :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
     124                 :            :             createAccessibleContext( VCLXFixedHyperlink* _pXWindow );
     125                 :            :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
     126                 :            :             createAccessibleContext( VCLXScrollBar* _pXWindow );
     127                 :            :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
     128                 :            :             createAccessibleContext( VCLXEdit* _pXWindow );
     129                 :            :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
     130                 :            :             createAccessibleContext( VCLXComboBox* _pXWindow );
     131                 :            :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
     132                 :            :             createAccessibleContext( VCLXToolBox* _pXWindow );
     133                 :            :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
     134                 :            :             createAccessibleContext( VCLXWindow* _pXWindow );
     135                 :            :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
     136                 :            :             createAccessible( Menu* _pMenu, sal_Bool _bIsMenuBar );
     137                 :            : 
     138                 :            :         // ::svt::IAccessibleFactory
     139                 :            :         virtual IAccessibleTabListBox*
     140                 :            :             createAccessibleTabListBox(
     141                 :            :                 const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rxParent,
     142                 :            :                 SvHeaderTabListBox& rBox
     143                 :            :             ) const;
     144                 :            : 
     145                 :            :         virtual IAccessibleBrowseBox*
     146                 :            :             createAccessibleBrowseBox(
     147                 :            :                 const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParent,
     148                 :            :                 IAccessibleTableProvider& _rBrowseBox
     149                 :            :             ) const;
     150                 :            : 
     151                 :            :         virtual IAccessibleTableControl*
     152                 :            :             createAccessibleTableControl(
     153                 :            :                 const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParent,
     154                 :            :                 IAccessibleTable& _rTable
     155                 :            :             ) const;
     156                 :            : 
     157                 :            :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
     158                 :            :             createAccessibleIconChoiceCtrl(
     159                 :            :                 SvtIconChoiceCtrl& _rIconCtrl,
     160                 :            :                 const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _xParent
     161                 :            :             ) const;
     162                 :            : 
     163                 :            :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
     164                 :            :             createAccessibleTabBar(
     165                 :            :                 TabBar& _rTabBar
     166                 :            :             ) const;
     167                 :            : 
     168                 :            :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
     169                 :            :             createAccessibleTextWindowContext(
     170                 :            :                 VCLXWindow* pVclXWindow, TextEngine& rEngine, TextView& rView, bool bCompoundControlChild
     171                 :            :             ) const;
     172                 :            : 
     173                 :            :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
     174                 :            :             createAccessibleTreeListBox(
     175                 :            :                 SvTreeListBox& _rListBox,
     176                 :            :                 const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _xParent
     177                 :            :             ) const;
     178                 :            : 
     179                 :            :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
     180                 :            :             createAccessibleBrowseBoxHeaderBar(
     181                 :            :                 const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rxParent,
     182                 :            :                 IAccessibleTableProvider& _rOwningTable,
     183                 :            :                 AccessibleBrowseBoxObjType _eObjType
     184                 :            :             ) const;
     185                 :            : 
     186                 :            :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
     187                 :            :             createAccessibleBrowseBoxTableCell(
     188                 :            :                 const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParent,
     189                 :            :                 IAccessibleTableProvider& _rBrowseBox,
     190                 :            :                 const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
     191                 :            :                 sal_Int32 _nRowId,
     192                 :            :                 sal_uInt16 _nColId,
     193                 :            :                 sal_Int32 _nOffset
     194                 :            :             ) const;
     195                 :            : 
     196                 :            :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
     197                 :            :             createAccessibleBrowseBoxHeaderCell(
     198                 :            :                 sal_Int32 _nColumnRowId,
     199                 :            :                 const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rxParent,
     200                 :            :                 IAccessibleTableProvider& _rBrowseBox,
     201                 :            :                 const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
     202                 :            :                 AccessibleBrowseBoxObjType  _eObjType
     203                 :            :             ) const;
     204                 :            : 
     205                 :            :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
     206                 :            :             createAccessibleCheckBoxCell(
     207                 :            :                 const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParent,
     208                 :            :                 IAccessibleTableProvider& _rBrowseBox,
     209                 :            :                 const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
     210                 :            :                 sal_Int32 _nRowPos,
     211                 :            :                 sal_uInt16 _nColPos,
     212                 :            :                 const TriState& _eState,
     213                 :            :                 sal_Bool _bEnabled,
     214                 :            :                 sal_Bool _bIsTriState
     215                 :            :             ) const;
     216                 :            : 
     217                 :            :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
     218                 :            :             createEditBrowseBoxTableCellAccess(
     219                 :            :                 const ::com::sun::star::uno::Reference< com::sun::star::accessibility::XAccessible >& _rxParent,
     220                 :            :                 const ::com::sun::star::uno::Reference< com::sun::star::accessibility::XAccessible >& _rxControlAccessible,
     221                 :            :                 const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _rxFocusWindow,
     222                 :            :                 IAccessibleTableProvider& _rBrowseBox,
     223                 :            :                 sal_Int32 _nRowPos,
     224                 :            :                 sal_uInt16 _nColPos
     225                 :            :             ) const;
     226                 :            : 
     227                 :            :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
     228                 :            :             createAccessibleToolPanelDeck(
     229                 :            :                 const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& i_rAccessibleParent,
     230                 :            :                 ::svt::ToolPanelDeck& i_rPanelDeck
     231                 :            :             );
     232                 :            :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
     233                 :            :             createAccessibleToolPanelTabBar(
     234                 :            :                 const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& i_rAccessibleParent,
     235                 :            :                 ::svt::IToolPanelDeck& i_rPanelDeck,
     236                 :            :                 ::svt::PanelTabBar& i_rTabBar
     237                 :            :             );
     238                 :            : 
     239                 :            :     protected:
     240                 :            :         virtual ~AccessibleFactory();
     241                 :            :     };
     242                 :            : 
     243                 :            : 
     244                 :            :     //--------------------------------------------------------------------
     245                 :         22 :     AccessibleFactory::AccessibleFactory()
     246                 :         22 :         :m_refCount( 0 )
     247                 :            :     {
     248                 :         22 :     }
     249                 :            : 
     250                 :            :     //--------------------------------------------------------------------
     251                 :          0 :     AccessibleFactory::~AccessibleFactory()
     252                 :            :     {
     253         [ #  # ]:          0 :     }
     254                 :            : 
     255                 :            :     //--------------------------------------------------------------------
     256                 :         44 :     oslInterlockedCount SAL_CALL AccessibleFactory::acquire()
     257                 :            :     {
     258                 :         44 :         return osl_incrementInterlockedCount( &m_refCount );
     259                 :            :     }
     260                 :            : 
     261                 :            :     //--------------------------------------------------------------------
     262                 :         22 :     oslInterlockedCount SAL_CALL AccessibleFactory::release()
     263                 :            :     {
     264         [ -  + ]:         22 :         if ( 0 == osl_decrementInterlockedCount( &m_refCount ) )
     265                 :            :         {
     266         [ #  # ]:          0 :             delete this;
     267                 :          0 :             return 0;
     268                 :            :         }
     269                 :         22 :         return m_refCount;
     270                 :            :     }
     271                 :            : 
     272                 :            :     //--------------------------------------------------------------------
     273                 :         49 :     Reference< XAccessible > AccessibleFactory::createAccessible( Menu* _pMenu, sal_Bool _bIsMenuBar )
     274                 :            :     {
     275                 :            :         OAccessibleMenuBaseComponent* pAccessible;
     276         [ +  - ]:         49 :         if ( _bIsMenuBar )
     277         [ +  - ]:         49 :             pAccessible = new VCLXAccessibleMenuBar( _pMenu );
     278                 :            :         else
     279         [ #  # ]:          0 :             pAccessible = new VCLXAccessiblePopupMenu( _pMenu );
     280                 :         49 :         pAccessible->SetStates();
     281         [ +  - ]:         49 :         return pAccessible;
     282                 :            :     }
     283                 :            : 
     284                 :            :     //--------------------------------------------------------------------
     285                 :         32 :     Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXButton* _pXWindow )
     286                 :            :     {
     287 [ +  - ][ +  - ]:         32 :         return new VCLXAccessibleButton( _pXWindow );
     288                 :            :     }
     289                 :            : 
     290                 :            :     //--------------------------------------------------------------------
     291                 :          0 :     Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXCheckBox* _pXWindow )
     292                 :            :     {
     293 [ #  # ][ #  # ]:          0 :         return new VCLXAccessibleCheckBox( _pXWindow );
                 [ #  # ]
     294                 :            :     }
     295                 :            : 
     296                 :            :     //--------------------------------------------------------------------
     297                 :          0 :     Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXRadioButton* _pXWindow )
     298                 :            :     {
     299 [ #  # ][ #  # ]:          0 :         return new VCLXAccessibleRadioButton( _pXWindow );
                 [ #  # ]
     300                 :            :     }
     301                 :            : 
     302                 :            :     //--------------------------------------------------------------------
     303                 :          6 :     Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXListBox* _pXWindow )
     304                 :            :     {
     305                 :          6 :         sal_Bool bIsDropDownBox = sal_False;
     306                 :          6 :         ListBox* pBox = static_cast< ListBox* >( _pXWindow->GetWindow() );
     307         [ +  - ]:          6 :         if ( pBox )
     308                 :          6 :             bIsDropDownBox = ( ( pBox->GetStyle() & WB_DROPDOWN ) == WB_DROPDOWN );
     309                 :            : 
     310         [ +  - ]:          6 :         if ( bIsDropDownBox )
     311 [ +  - ][ +  - ]:          6 :             return new VCLXAccessibleDropDownListBox( _pXWindow );
     312                 :            :         else
     313 [ #  # ][ #  # ]:          6 :             return new VCLXAccessibleListBox( _pXWindow );
     314                 :            :     }
     315                 :            : 
     316                 :            :     //--------------------------------------------------------------------
     317                 :          2 :     Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXFixedText* _pXWindow )
     318                 :            :     {
     319 [ +  - ][ +  - ]:          2 :         return new VCLXAccessibleFixedText( _pXWindow );
                 [ +  - ]
     320                 :            :     }
     321                 :            : 
     322                 :            :     //--------------------------------------------------------------------
     323                 :          0 :     Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXFixedHyperlink* _pXWindow )
     324                 :            :     {
     325 [ #  # ][ #  # ]:          0 :         return new VCLXAccessibleFixedHyperlink( _pXWindow );
                 [ #  # ]
     326                 :            :     }
     327                 :            : 
     328                 :            :     //--------------------------------------------------------------------
     329                 :         32 :     Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXScrollBar* _pXWindow )
     330                 :            :     {
     331 [ +  - ][ +  - ]:         32 :         return new VCLXAccessibleScrollBar( _pXWindow );
                 [ +  - ]
     332                 :            :     }
     333                 :            : 
     334                 :            :     //--------------------------------------------------------------------
     335                 :         12 :     Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXEdit* _pXWindow )
     336                 :            :     {
     337 [ +  - ][ +  - ]:         12 :         return new VCLXAccessibleEdit( _pXWindow );
                 [ +  - ]
     338                 :            :     }
     339                 :            : 
     340                 :            :     //--------------------------------------------------------------------
     341                 :         10 :     Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXComboBox* _pXWindow )
     342                 :            :     {
     343                 :         10 :         sal_Bool bIsDropDownBox = sal_False;
     344                 :         10 :         ComboBox* pBox = static_cast< ComboBox* >( _pXWindow->GetWindow() );
     345         [ +  - ]:         10 :         if ( pBox )
     346                 :         10 :             bIsDropDownBox = ( ( pBox->GetStyle() & WB_DROPDOWN ) == WB_DROPDOWN );
     347                 :            : 
     348         [ +  - ]:         10 :         if ( bIsDropDownBox )
     349 [ +  - ][ +  - ]:         10 :             return new VCLXAccessibleDropDownComboBox( _pXWindow );
                 [ +  - ]
     350                 :            :         else
     351 [ #  # ][ #  # ]:         10 :             return new VCLXAccessibleComboBox( _pXWindow );
                 [ #  # ]
     352                 :            :     }
     353                 :            : 
     354                 :            :     //--------------------------------------------------------------------
     355                 :        323 :     Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXWindow* _pXWindow )
     356                 :            :     {
     357                 :        323 :         Reference< XAccessibleContext > xContext;
     358                 :            : 
     359                 :        323 :         Window* pWindow = _pXWindow->GetWindow();
     360         [ +  - ]:        323 :         if ( pWindow )
     361                 :            :         {
     362         [ +  - ]:        323 :             WindowType nType = pWindow->GetType();
     363                 :            : 
     364 [ +  - ][ +  - ]:        323 :             if ( nType == WINDOW_MENUBARWINDOW || pWindow->IsMenuFloatingWindow() || pWindow->IsToolbarFloatingWindow() )
         [ +  - ][ +  - ]
         [ -  + ][ -  + ]
     365                 :            :             {
     366         [ #  # ]:          0 :                 Reference< XAccessible > xAcc( pWindow->GetAccessible() );
     367         [ #  # ]:          0 :                 if ( xAcc.is() )
     368                 :            :                 {
     369 [ #  # ][ #  # ]:          0 :                     Reference< XAccessibleContext > xCont( xAcc->getAccessibleContext() );
     370         [ #  # ]:          0 :                     if ( pWindow->GetType() == WINDOW_MENUBARWINDOW ||
           [ #  #  #  # ]
         [ #  # ][ #  # ]
     371 [ #  # ][ #  # ]:          0 :                         ( xCont.is() && xCont->getAccessibleRole() == AccessibleRole::POPUP_MENU ) )
     372                 :            :                     {
     373         [ #  # ]:          0 :                         xContext = xCont;
     374                 :          0 :                     }
     375                 :          0 :                 }
     376                 :            :             }
     377         [ +  + ]:        323 :             else if ( nType == WINDOW_STATUSBAR )
     378                 :            :             {
     379 [ +  - ][ +  - ]:          2 :                 xContext = (XAccessibleContext*) new VCLXAccessibleStatusBar( _pXWindow );
                 [ +  - ]
     380                 :            :             }
     381         [ -  + ]:        321 :             else if ( nType == WINDOW_TABCONTROL )
     382                 :            :             {
     383 [ #  # ][ #  # ]:          0 :                 xContext = (XAccessibleContext*) new VCLXAccessibleTabControl( _pXWindow );
                 [ #  # ]
     384                 :            :             }
     385 [ -  + ][ #  # ]:        321 :             else if ( nType == WINDOW_TABPAGE && pWindow->GetAccessibleParentWindow() && pWindow->GetAccessibleParentWindow()->GetType() == WINDOW_TABCONTROL )
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ -  + ]
     386                 :            :             {
     387 [ #  # ][ #  # ]:          0 :                 xContext = new VCLXAccessibleTabPageWindow( _pXWindow );
                 [ #  # ]
     388                 :            :             }
     389         [ -  + ]:        321 :             else if ( nType == WINDOW_FLOATINGWINDOW )
     390                 :            :             {
     391 [ #  # ][ #  # ]:          0 :                 xContext = new FloatingWindowAccessible( _pXWindow );
                 [ #  # ]
     392                 :            :             }
     393 [ +  + ][ +  - ]:        321 :             else if ( nType == WINDOW_BORDERWINDOW && hasFloatingChild( pWindow ) )
         [ -  + ][ -  + ]
     394                 :            :             {
     395                 :            :                 PopupMenuFloatingWindow* pChild = dynamic_cast<PopupMenuFloatingWindow*>(
     396 [ #  # ][ #  # ]:          0 :                     pWindow->GetAccessibleChildWindow(0));
     397 [ #  # ][ #  # ]:          0 :                 if ( pChild && pChild->IsPopupMenu() )
         [ #  # ][ #  # ]
     398                 :            :                 {
     399                 :            :                     // Get the accessible context from the child window.
     400         [ #  # ]:          0 :                     Reference<XAccessible> xAccessible = pChild->CreateAccessible();
     401         [ #  # ]:          0 :                     if (xAccessible.is())
     402 [ #  # ][ #  # ]:          0 :                         xContext = xAccessible->getAccessibleContext();
                 [ #  # ]
     403                 :            :                 }
     404                 :            :                 else
     405 [ #  # ][ #  # ]:          0 :                     xContext = new FloatingWindowAccessible( _pXWindow );
                 [ #  # ]
     406                 :            :             }
     407 [ +  - ][ -  + ]:        321 :             else if ( ( nType == WINDOW_HELPTEXTWINDOW ) || ( nType == WINDOW_FIXEDLINE ) )
     408                 :            :             {
     409 [ #  # ][ #  # ]:          0 :                xContext = (accessibility::XAccessibleContext*) new VCLXAccessibleFixedText( _pXWindow );
                 [ #  # ]
     410                 :            :             }
     411                 :            :             else
     412                 :            :             {
     413 [ +  - ][ +  - ]:        323 :                xContext = (accessibility::XAccessibleContext*) new VCLXAccessibleComponent( _pXWindow );
                 [ +  - ]
     414                 :            :             }
     415                 :            :         }
     416                 :            : 
     417                 :        323 :         return xContext;
     418                 :            :     }
     419                 :            : 
     420                 :            :     //--------------------------------------------------------------------
     421                 :         30 :     Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXToolBox* _pXWindow )
     422                 :            :     {
     423 [ +  - ][ +  - ]:         30 :         return new VCLXAccessibleToolBox( _pXWindow );
     424                 :            :     }
     425                 :            : 
     426                 :            :     //--------------------------------------------------------------------
     427                 :          0 :     IAccessibleTabListBox* AccessibleFactory::createAccessibleTabListBox(
     428                 :            :         const Reference< XAccessible >& rxParent, SvHeaderTabListBox& rBox ) const
     429                 :            :     {
     430 [ #  # ][ #  # ]:          0 :         return new AccessibleTabListBox( rxParent, rBox );
     431                 :            :     }
     432                 :            : 
     433                 :            :     //--------------------------------------------------------------------
     434                 :          0 :     IAccessibleBrowseBox* AccessibleFactory::createAccessibleBrowseBox(
     435                 :            :         const Reference< XAccessible >& _rxParent, IAccessibleTableProvider& _rBrowseBox ) const
     436                 :            :     {
     437 [ #  # ][ #  # ]:          0 :         return new AccessibleBrowseBoxAccess( _rxParent, _rBrowseBox );
     438                 :            :     }
     439                 :            : 
     440                 :            :     //--------------------------------------------------------------------
     441                 :          0 :     IAccessibleTableControl* AccessibleFactory::createAccessibleTableControl(
     442                 :            :         const Reference< XAccessible >& _rxParent, IAccessibleTable& _rTable ) const
     443                 :            :     {
     444 [ #  # ][ #  # ]:          0 :         return new AccessibleGridControlAccess( _rxParent, _rTable );
     445                 :            :     }
     446                 :            : 
     447                 :            :     //--------------------------------------------------------------------
     448                 :          0 :     Reference< XAccessible > AccessibleFactory::createAccessibleIconChoiceCtrl(
     449                 :            :         SvtIconChoiceCtrl& _rIconCtrl, const Reference< XAccessible >& _xParent ) const
     450                 :            :     {
     451 [ #  # ][ #  # ]:          0 :         return new AccessibleIconChoiceCtrl( _rIconCtrl, _xParent );
     452                 :            :     }
     453                 :            : 
     454                 :            :     //--------------------------------------------------------------------
     455                 :          0 :     Reference< XAccessible > AccessibleFactory::createAccessibleTabBar( TabBar& _rTabBar ) const
     456                 :            :     {
     457 [ #  # ][ #  # ]:          0 :         return new AccessibleTabBar( &_rTabBar );
     458                 :            :     }
     459                 :            : 
     460                 :            :     //--------------------------------------------------------------------
     461                 :          0 :     Reference< XAccessibleContext > AccessibleFactory::createAccessibleTextWindowContext(
     462                 :            :         VCLXWindow* pVclXWindow, TextEngine& rEngine, TextView& rView, bool bCompoundControlChild ) const
     463                 :            :     {
     464 [ #  # ][ #  # ]:          0 :         return new Document( pVclXWindow, rEngine, rView, bCompoundControlChild );
     465                 :            :     }
     466                 :            : 
     467                 :            :     //--------------------------------------------------------------------
     468                 :          6 :     Reference< XAccessible > AccessibleFactory::createAccessibleTreeListBox(
     469                 :            :         SvTreeListBox& _rListBox, const Reference< XAccessible >& _xParent ) const
     470                 :            :     {
     471 [ +  - ][ +  - ]:          6 :         return new AccessibleListBox( _rListBox, _xParent );
     472                 :            :     }
     473                 :            : 
     474                 :            :     //--------------------------------------------------------------------
     475                 :          0 :     Reference< XAccessible > AccessibleFactory::createAccessibleBrowseBoxHeaderBar(
     476                 :            :         const Reference< XAccessible >& rxParent, IAccessibleTableProvider& _rOwningTable,
     477                 :            :         AccessibleBrowseBoxObjType _eObjType ) const
     478                 :            :     {
     479 [ #  # ][ #  # ]:          0 :         return new AccessibleBrowseBoxHeaderBar( rxParent, _rOwningTable, _eObjType );
     480                 :            :     }
     481                 :            : 
     482                 :            :     //--------------------------------------------------------------------
     483                 :          0 :     Reference< XAccessible > AccessibleFactory::createAccessibleBrowseBoxTableCell(
     484                 :            :         const Reference< XAccessible >& _rxParent, IAccessibleTableProvider& _rBrowseBox,
     485                 :            :         const Reference< XWindow >& _xFocusWindow, sal_Int32 _nRowId, sal_uInt16 _nColId, sal_Int32 _nOffset ) const
     486                 :            :     {
     487                 :            :         return new AccessibleBrowseBoxTableCell( _rxParent, _rBrowseBox, _xFocusWindow,
     488 [ #  # ][ #  # ]:          0 :             _nRowId, _nColId, _nOffset );
     489                 :            :     }
     490                 :            : 
     491                 :            :     //--------------------------------------------------------------------
     492                 :          0 :     Reference< XAccessible > AccessibleFactory::createAccessibleBrowseBoxHeaderCell(
     493                 :            :         sal_Int32 _nColumnRowId, const Reference< XAccessible >& rxParent, IAccessibleTableProvider& _rBrowseBox,
     494                 :            :         const Reference< XWindow >& _xFocusWindow, AccessibleBrowseBoxObjType  _eObjType ) const
     495                 :            :     {
     496                 :            :         return new AccessibleBrowseBoxHeaderCell( _nColumnRowId, rxParent, _rBrowseBox,
     497 [ #  # ][ #  # ]:          0 :             _xFocusWindow, _eObjType );
     498                 :            :     }
     499                 :            : 
     500                 :            :     //--------------------------------------------------------------------
     501                 :          0 :     Reference< XAccessible > AccessibleFactory::createAccessibleCheckBoxCell(
     502                 :            :         const Reference< XAccessible >& _rxParent, IAccessibleTableProvider& _rBrowseBox,
     503                 :            :         const Reference< XWindow >& _xFocusWindow, sal_Int32 _nRowPos, sal_uInt16 _nColPos,
     504                 :            :         const TriState& _eState, sal_Bool _bEnabled, sal_Bool _bIsTriState ) const
     505                 :            :     {
     506                 :            :         return new AccessibleCheckBoxCell( _rxParent, _rBrowseBox, _xFocusWindow,
     507 [ #  # ][ #  # ]:          0 :             _nRowPos, _nColPos, _eState, _bEnabled, _bIsTriState );
     508                 :            :     }
     509                 :            : 
     510                 :            :     //--------------------------------------------------------------------
     511                 :          0 :     Reference< XAccessible > AccessibleFactory::createEditBrowseBoxTableCellAccess(
     512                 :            :         const Reference< XAccessible >& _rxParent, const Reference< XAccessible >& _rxControlAccessible,
     513                 :            :         const Reference< XWindow >& _rxFocusWindow, IAccessibleTableProvider& _rBrowseBox,
     514                 :            :         sal_Int32 _nRowPos, sal_uInt16 _nColPos ) const
     515                 :            :     {
     516                 :            :         return new EditBrowseBoxTableCellAccess( _rxParent, _rxControlAccessible,
     517 [ #  # ][ #  # ]:          0 :             _rxFocusWindow, _rBrowseBox, _nRowPos, _nColPos );
                 [ #  # ]
     518                 :            :     }
     519                 :            : 
     520                 :            :     //--------------------------------------------------------------------
     521                 :          0 :     Reference< XAccessibleContext > AccessibleFactory::createAccessibleToolPanelDeck(
     522                 :            :             const Reference< XAccessible >& i_rAccessibleParent, ::svt::ToolPanelDeck& i_rPanelDeck )
     523                 :            :     {
     524 [ #  # ][ #  # ]:          0 :         return new AccessibleToolPanelDeck( i_rAccessibleParent, i_rPanelDeck );
     525                 :            :     }
     526                 :            : 
     527                 :            :     //--------------------------------------------------------------------
     528                 :          0 :     Reference< XAccessibleContext > AccessibleFactory::createAccessibleToolPanelTabBar(
     529                 :            :         const Reference< XAccessible >& i_rAccessibleParent, ::svt::IToolPanelDeck& i_rPanelDeck, ::svt::PanelTabBar& i_rTabBar )
     530                 :            :     {
     531 [ #  # ][ #  # ]:          0 :         return new AccessibleToolPanelTabBar( i_rAccessibleParent, i_rPanelDeck, i_rTabBar );
     532                 :            :     }
     533                 :            : 
     534                 :            : //........................................................................
     535                 :            : }   // namespace accessibility
     536                 :            : //........................................................................
     537                 :            : 
     538                 :            : //========================================================================
     539                 :            : 
     540                 :            : /** this is the entry point to retrieve a factory for the toolkit-level Accessible/Contexts supplied
     541                 :            :     by this library
     542                 :            : 
     543                 :            :     This function implements the factory function needed in toolkit
     544                 :            :     (of type GetStandardAccComponentFactory).
     545                 :            : */
     546                 :            : extern "C"
     547                 :            : {
     548                 :         20 :     SAL_DLLPUBLIC_EXPORT void* SAL_CALL getStandardAccessibleFactory()
     549                 :            :     {
     550                 :         20 :         ::toolkit::IAccessibleFactory* pFactory = new ::accessibility::AccessibleFactory;
     551                 :         20 :         pFactory->acquire();
     552                 :         20 :         return pFactory;
     553                 :            :     }
     554                 :            : }
     555                 :            : 
     556                 :            : /** this is the entry point to retrieve a factory for the svtools-level Accessible/Contexts supplied
     557                 :            :     by this library
     558                 :            : 
     559                 :            :     This function implements the factory function needed in svtools
     560                 :            :     (of type GetSvtAccessibilityComponentFactory).
     561                 :            : */
     562                 :            : extern "C"
     563                 :            : {
     564                 :          2 :     SAL_DLLPUBLIC_EXPORT void* SAL_CALL getSvtAccessibilityComponentFactory()
     565                 :            :     {
     566         [ +  - ]:          2 :         ::svt::IAccessibleFactory* pFactory = new ::accessibility::AccessibleFactory;
     567                 :          2 :         pFactory->acquire();
     568                 :          2 :         return pFactory;
     569                 :            :     }
     570                 :            : }
     571                 :            : 
     572                 :            : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10