LCOV - code coverage report
Current view: top level - svtools/source/brwbox - brwbox3.cxx (source / functions) Hit Total Coverage
Test: commit e02a6cb2c3e2b23b203b422e4e0680877f232636 Lines: 0 229 0.0 %
Date: 2014-04-14 Functions: 0 45 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  *
       9             :  * This file incorporates work covered by the following license notice:
      10             :  *
      11             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12             :  *   contributor license agreements. See the NOTICE file distributed
      13             :  *   with this work for additional information regarding copyright
      14             :  *   ownership. The ASF licenses this file to you under the Apache
      15             :  *   License, Version 2.0 (the "License"); you may not use this file
      16             :  *   except in compliance with the License. You may obtain a copy of
      17             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18             :  */
      19             : 
      20             : #include <svtools/brwbox.hxx>
      21             : #include <svtools/AccessibleBrowseBoxObjType.hxx>
      22             : #include <tools/debug.hxx>
      23             : #include <tools/multisel.hxx>
      24             : #include "datwin.hxx"
      25             : #include "brwimpl.hxx"
      26             : #include <com/sun/star/accessibility/AccessibleStateType.hpp>
      27             : #include <com/sun/star/accessibility/AccessibleRole.hpp>
      28             : #include <toolkit/helper/vclunohelper.hxx>
      29             : 
      30             : // Accessibility ==============================================================
      31             : 
      32             : using namespace ::com::sun::star::uno;
      33             : using ::com::sun::star::accessibility::XAccessible;
      34             : using namespace ::com::sun::star::accessibility;
      35             : 
      36             : 
      37             : namespace svt
      38             : {
      39             :     using namespace ::com::sun::star::lang;
      40             :     using namespace utl;
      41             : 
      42           0 :     Reference< XAccessible > getHeaderCell( BrowseBoxImpl::THeaderCellMap& _raHeaderCells,
      43             :                                             sal_Int32 _nPos,
      44             :                                             AccessibleBrowseBoxObjType _eType,
      45             :                                             const Reference< XAccessible >& _rParent,
      46             :                                             BrowseBox& _rBrowseBox,
      47             :                                             IAccessibleFactory& rFactory
      48             :                                           )
      49             :     {
      50           0 :         Reference< XAccessible > xRet;
      51           0 :         BrowseBoxImpl::THeaderCellMap::iterator aFind = _raHeaderCells.find( _nPos );
      52           0 :         if ( aFind == _raHeaderCells.end() )
      53             :         {
      54             :             Reference< XAccessible > xAccessible = rFactory.createAccessibleBrowseBoxHeaderCell(
      55             :                 _nPos,
      56             :                 _rParent,
      57             :                 _rBrowseBox,
      58             :                 NULL,
      59             :                 _eType
      60           0 :             );
      61           0 :             aFind = _raHeaderCells.insert( BrowseBoxImpl::THeaderCellMap::value_type( _nPos, xAccessible ) ).first;
      62             :         }
      63           0 :         if ( aFind != _raHeaderCells.end() )
      64           0 :             xRet = aFind->second;
      65           0 :         return xRet;
      66             :     }
      67             : 
      68             : 
      69             : 
      70           0 :     Reference< XAccessible > BrowseBoxImpl::getAccessibleHeaderBar( AccessibleBrowseBoxObjType _eObjType )
      71             :     {
      72           0 :         if ( m_pAccessible && m_pAccessible->isAlive() )
      73           0 :             return m_pAccessible->getHeaderBar( _eObjType );
      74           0 :         return NULL;
      75             :     }
      76             : 
      77             : 
      78           0 :     Reference< XAccessible > BrowseBoxImpl::getAccessibleTable( )
      79             :     {
      80           0 :         if ( m_pAccessible && m_pAccessible->isAlive() )
      81           0 :             return m_pAccessible->getTable( );
      82           0 :         return NULL;
      83             :     }
      84             : }
      85             : 
      86             : 
      87             : 
      88           0 : Reference< XAccessible > BrowseBox::CreateAccessible()
      89             : {
      90           0 :     Window* pParent = GetAccessibleParentWindow();
      91             :     DBG_ASSERT( pParent, "BrowseBox::CreateAccessible - parent not found" );
      92             : 
      93           0 :     if( pParent && !m_pImpl->m_pAccessible)
      94             :     {
      95           0 :         Reference< XAccessible > xAccParent = pParent->GetAccessible();
      96           0 :         if( xAccParent.is() )
      97             :         {
      98           0 :             m_pImpl->m_pAccessible = getAccessibleFactory().createAccessibleBrowseBox(
      99             :                 xAccParent, *this
     100           0 :             );
     101           0 :         }
     102             :     }
     103             : 
     104           0 :     Reference< XAccessible > xAccessible;
     105           0 :     if ( m_pImpl->m_pAccessible )
     106           0 :         xAccessible = m_pImpl->m_pAccessible->getMyself();
     107             : 
     108           0 :     return xAccessible;
     109             : }
     110             : 
     111             : 
     112             : // Children -------------------------------------------------------------------
     113             : 
     114           0 : Reference< XAccessible > BrowseBox::CreateAccessibleCell( sal_Int32 _nRow, sal_uInt16 _nColumnPos )
     115             : {
     116             :     // BBINDEX_TABLE must be the table
     117             :     OSL_ENSURE(m_pImpl->m_pAccessible,"Invalid call: Accessible is null");
     118             : 
     119           0 :     return m_pImpl->m_aFactoryAccess.getFactory().createAccessibleBrowseBoxTableCell(
     120             :         m_pImpl->getAccessibleTable(),
     121             :         *this,
     122             :         NULL,
     123             :         _nRow,
     124             :         _nColumnPos,
     125             :         OFFSET_DEFAULT
     126           0 :     );
     127             : }
     128             : 
     129             : 
     130           0 : Reference< XAccessible > BrowseBox::CreateAccessibleRowHeader( sal_Int32 _nRow )
     131             : {
     132             :     return svt::getHeaderCell(
     133           0 :         m_pImpl->m_aRowHeaderCellMap,
     134             :         _nRow,
     135             :         svt::BBTYPE_ROWHEADERCELL,
     136             :         m_pImpl->getAccessibleHeaderBar(svt::BBTYPE_ROWHEADERBAR),
     137             :         *this,
     138           0 :         m_pImpl->m_aFactoryAccess.getFactory()
     139           0 :     );
     140             : }
     141             : 
     142             : 
     143           0 : Reference< XAccessible > BrowseBox::CreateAccessibleColumnHeader( sal_uInt16 _nColumnPos )
     144             : {
     145             :     return svt::getHeaderCell(
     146           0 :             m_pImpl->m_aColHeaderCellMap,
     147             :             _nColumnPos,
     148             :             svt::BBTYPE_COLUMNHEADERCELL,
     149             :             m_pImpl->getAccessibleHeaderBar(svt::BBTYPE_COLUMNHEADERBAR),
     150             :             *this,
     151           0 :             m_pImpl->m_aFactoryAccess.getFactory()
     152           0 :     );
     153             : }
     154             : 
     155             : 
     156           0 : sal_Int32 BrowseBox::GetAccessibleControlCount() const
     157             : {
     158           0 :     return 0;
     159             : }
     160             : 
     161             : 
     162           0 : Reference< XAccessible > BrowseBox::CreateAccessibleControl( sal_Int32 )
     163             : {
     164             :     DBG_ASSERT( false, "BrowseBox::CreateAccessibleControl: to be overwritten!" );
     165           0 :     return NULL;
     166             : }
     167             : 
     168             : 
     169             : // Conversions ----------------------------------------------------------------
     170             : 
     171           0 : bool BrowseBox::ConvertPointToCellAddress(
     172             :         sal_Int32& rnRow, sal_uInt16& rnColumnPos, const Point& rPoint )
     173             : {
     174             :     //! TODO has to be checked
     175           0 :     rnRow = GetRowAtYPosPixel(rPoint.Y());
     176           0 :     rnColumnPos = GetColumnAtXPosPixel(rPoint.X());
     177           0 :     return rnRow != BROWSER_INVALIDID && rnColumnPos != BROWSER_INVALIDID;
     178             : }
     179             : 
     180             : 
     181           0 : bool BrowseBox::ConvertPointToRowHeader( sal_Int32& rnRow, const Point& rPoint )
     182             : {
     183           0 :     rnRow = GetRowAtYPosPixel(rPoint.Y());
     184             :     //  sal_uInt16 nColumnId = GetColumnAtXPosPixel(rPoint.X());
     185           0 :     return rnRow != BROWSER_INVALIDID;// && nColumnId == 0;
     186             : }
     187             : 
     188             : 
     189           0 : bool BrowseBox::ConvertPointToColumnHeader( sal_uInt16& _rnColumnPos, const Point& _rPoint )
     190             : {
     191           0 :     _rnColumnPos = GetColumnAtXPosPixel(_rPoint.X());
     192           0 :     return _rnColumnPos != BROWSER_INVALIDID;
     193             : }
     194             : 
     195             : 
     196           0 : bool BrowseBox::ConvertPointToControlIndex( sal_Int32& _rnIndex, const Point& _rPoint )
     197             : {
     198             :     //! TODO has to be checked
     199           0 :     sal_Int32 nRow = 0;
     200           0 :     sal_uInt16 nColumn = 0;
     201           0 :     bool bRet = ConvertPointToCellAddress(nRow,nColumn,_rPoint);
     202           0 :     if ( bRet )
     203           0 :         _rnIndex = nRow * ColCount() + nColumn;
     204             : 
     205           0 :     return bRet;
     206             : }
     207             : 
     208             : 
     209             : // Object data and state ------------------------------------------------------
     210             : 
     211           0 : OUString BrowseBox::GetAccessibleObjectName( ::svt::AccessibleBrowseBoxObjType eObjType,sal_Int32 _nPosition) const
     212             : {
     213           0 :     OUString aRetText;
     214           0 :     switch( eObjType )
     215             :     {
     216             :         case ::svt::BBTYPE_BROWSEBOX:
     217           0 :             aRetText = "BrowseBox";
     218           0 :             break;
     219             :         case ::svt::BBTYPE_TABLE:
     220           0 :             aRetText = "Table";
     221           0 :             break;
     222             :         case ::svt::BBTYPE_ROWHEADERBAR:
     223           0 :             aRetText = "RowHeaderBar";
     224           0 :             break;
     225             :         case ::svt::BBTYPE_COLUMNHEADERBAR:
     226           0 :             aRetText = "ColumnHeaderBar";
     227           0 :             break;
     228             :         case ::svt::BBTYPE_TABLECELL:
     229           0 :             if( ColCount() !=0 && GetRowCount()!=0)
     230             :             {
     231             : 
     232           0 :                 sal_Int32 columnId = _nPosition % ColCount() +1;
     233           0 :                 aRetText = OUString( GetColumnDescription( sal_Int16( columnId ) ) );
     234           0 :                 sal_Int32 rowId = _nPosition / GetRowCount() + 1;
     235           0 :                 aRetText += OUString::number(rowId);
     236             :             }
     237             :             else
     238           0 :                 aRetText = "TableCell";
     239             : #if OSL_DEBUG_LEVEL > 1
     240             :             aRetText += " [";
     241             :             aRetText += OUString::number(sal_Int32(GetCurRow()));
     242             :             aRetText += ",";
     243             :             aRetText += OUString::number(sal_Int32(GetCurColumnId()));
     244             :             aRetText += "]";
     245             : #endif
     246           0 :             break;
     247             :         case ::svt::BBTYPE_ROWHEADERCELL:
     248             :             {
     249           0 :                 sal_Int32 rowId = _nPosition + 1;
     250           0 :                 aRetText = OUString::number( rowId );
     251             :             }
     252             : #if OSL_DEBUG_LEVEL > 1
     253             :             aRetText += " [";
     254             :             aRetText += OUString::number(sal_Int32(GetCurRow()));
     255             :             aRetText += ",";
     256             :             aRetText += OUString::number(sal_Int32(GetCurColumnId()));
     257             :             aRetText += "]";
     258             : #endif
     259           0 :             break;
     260             :         case ::svt::BBTYPE_COLUMNHEADERCELL:
     261           0 :             aRetText = OUString( GetColumnDescription( sal_Int16( _nPosition ) ) );
     262             : #if OSL_DEBUG_LEVEL > 1
     263             :             aRetText += " [";
     264             :             aRetText += OUString::number(sal_Int32(GetCurRow()));
     265             :             aRetText += ",";
     266             :             aRetText += OUString::number(sal_Int32(GetCurColumnId()));
     267             :             aRetText += "]";
     268             : #endif
     269           0 :             break;
     270             :         default:
     271             :             OSL_FAIL("BrowseBox::GetAccessibleName: invalid enum!");
     272             :     }
     273           0 :     return aRetText;
     274             : }
     275             : 
     276             : 
     277           0 : OUString BrowseBox::GetAccessibleObjectDescription( ::svt::AccessibleBrowseBoxObjType eObjType,sal_Int32 ) const
     278             : {
     279           0 :     OUString aRetText;
     280           0 :     switch( eObjType )
     281             :     {
     282             :         case ::svt::BBTYPE_BROWSEBOX:
     283           0 :             aRetText = "BrowseBox description";
     284           0 :             break;
     285             :         case ::svt::BBTYPE_TABLE:
     286             :             //  aRetText = "TABLE description";
     287           0 :             break;
     288             :         case ::svt::BBTYPE_ROWHEADERBAR:
     289             :             //  aRetText = "ROWHEADERBAR description";
     290           0 :             break;
     291             :         case ::svt::BBTYPE_COLUMNHEADERBAR:
     292             :             //  aRetText = "COLUMNHEADERBAR description";
     293           0 :             break;
     294             :         case ::svt::BBTYPE_TABLECELL:
     295             :             //  aRetText = "TABLECELL description";
     296           0 :             break;
     297             :         case ::svt::BBTYPE_ROWHEADERCELL:
     298             :             //  aRetText = "ROWHEADERCELL description";
     299           0 :             break;
     300             :         case ::svt::BBTYPE_COLUMNHEADERCELL:
     301             :             //  aRetText = "COLUMNHEADERCELL description";
     302           0 :             break;
     303             :         case ::svt::BBTYPE_CHECKBOXCELL:
     304           0 :             break;
     305             :     }
     306           0 :     return aRetText;
     307             : }
     308             : 
     309             : 
     310           0 : OUString BrowseBox::GetRowDescription( sal_Int32 ) const
     311             : {
     312           0 :     return OUString();
     313             : }
     314             : 
     315             : 
     316           0 : OUString BrowseBox::GetColumnDescription( sal_uInt16 _nColumn ) const
     317             : {
     318           0 :     return OUString( GetColumnTitle( GetColumnId( _nColumn ) ) );
     319             : }
     320             : 
     321             : 
     322             : 
     323           0 : void BrowseBox::FillAccessibleStateSet(
     324             :         ::utl::AccessibleStateSetHelper& rStateSet,
     325             :         ::svt::AccessibleBrowseBoxObjType eObjType ) const
     326             : {
     327           0 :     switch( eObjType )
     328             :     {
     329             :         case ::svt::BBTYPE_BROWSEBOX:
     330             :         case ::svt::BBTYPE_TABLE:
     331             : 
     332           0 :             rStateSet.AddState( AccessibleStateType::FOCUSABLE );
     333           0 :             if ( HasFocus() )
     334           0 :                 rStateSet.AddState( AccessibleStateType::FOCUSED );
     335           0 :             if ( IsActive() )
     336           0 :                 rStateSet.AddState( AccessibleStateType::ACTIVE );
     337           0 :             if ( GetUpdateMode() )
     338           0 :                 rStateSet.AddState( AccessibleStateType::EDITABLE );
     339           0 :             if ( IsEnabled() )
     340             :             {
     341           0 :                 rStateSet.AddState( AccessibleStateType::ENABLED );
     342           0 :                 rStateSet.AddState( AccessibleStateType::SENSITIVE );
     343             :             }
     344           0 :             if ( IsReallyVisible() )
     345           0 :                 rStateSet.AddState( AccessibleStateType::VISIBLE );
     346           0 :             if ( eObjType == ::svt::BBTYPE_TABLE )
     347           0 :                 rStateSet.AddState( AccessibleStateType::MANAGES_DESCENDANTS );
     348             : 
     349           0 :             break;
     350             :         case ::svt::BBTYPE_ROWHEADERBAR:
     351           0 :             rStateSet.AddState( AccessibleStateType::FOCUSABLE );
     352           0 :             rStateSet.AddState( AccessibleStateType::VISIBLE );
     353           0 :             if ( GetSelectRowCount() )
     354           0 :                 rStateSet.AddState( AccessibleStateType::FOCUSED );
     355           0 :             rStateSet.AddState( AccessibleStateType::MANAGES_DESCENDANTS );
     356           0 :             break;
     357             :         case ::svt::BBTYPE_COLUMNHEADERBAR:
     358           0 :             rStateSet.AddState( AccessibleStateType::FOCUSABLE );
     359           0 :             rStateSet.AddState( AccessibleStateType::VISIBLE );
     360           0 :             if ( GetSelectColumnCount() )
     361           0 :                 rStateSet.AddState( AccessibleStateType::FOCUSED );
     362           0 :             rStateSet.AddState( AccessibleStateType::MANAGES_DESCENDANTS );
     363           0 :             break;
     364             :         case ::svt::BBTYPE_TABLECELL:
     365             :             {
     366           0 :                 sal_Int32 nRow = GetCurRow();
     367           0 :                 sal_uInt16 nColumn = GetCurColumnId();
     368           0 :                 if ( IsFieldVisible(nRow,nColumn) )
     369           0 :                     rStateSet.AddState( AccessibleStateType::VISIBLE );
     370           0 :                 if ( !IsFrozen( nColumn ) )
     371           0 :                     rStateSet.AddState( AccessibleStateType::FOCUSABLE );
     372           0 :                 rStateSet.AddState( AccessibleStateType::TRANSIENT );
     373             :             }
     374           0 :             break;
     375             :         case ::svt::BBTYPE_ROWHEADERCELL:
     376             :         case ::svt::BBTYPE_COLUMNHEADERCELL:
     377             :         case ::svt::BBTYPE_CHECKBOXCELL:
     378             :             OSL_FAIL("Illegal call here!");
     379           0 :             break;
     380             :     }
     381           0 : }
     382             : 
     383           0 : void BrowseBox::FillAccessibleStateSetForCell( ::utl::AccessibleStateSetHelper& _rStateSet,
     384             :                                                sal_Int32 _nRow, sal_uInt16 _nColumnPos ) const
     385             : {
     386             :     //! TODO check if the state is valid for table cells
     387           0 :     if ( IsCellVisible( _nRow, _nColumnPos ) )
     388           0 :         _rStateSet.AddState( AccessibleStateType::VISIBLE );
     389           0 :     if ( GetCurrRow() == _nRow && GetCurrColumn() == _nColumnPos )
     390           0 :         _rStateSet.AddState( AccessibleStateType::FOCUSED );
     391             :     else // only transient when column is not focused
     392           0 :         _rStateSet.AddState( AccessibleStateType::TRANSIENT );
     393           0 : }
     394             : 
     395             : 
     396           0 : void BrowseBox::GrabTableFocus()
     397             : {
     398           0 :     GrabFocus();
     399           0 : }
     400             : 
     401           0 : OUString BrowseBox::GetCellText(long, sal_uInt16 ) const
     402             : {
     403             :     DBG_ASSERT(false,"This method has to be implemented by the derived classes! BUG!!");
     404           0 :     return OUString();
     405             : }
     406             : 
     407             : 
     408           0 : void BrowseBox::commitHeaderBarEvent(sal_Int16 nEventId,
     409             :         const Any& rNewValue, const Any& rOldValue, bool _bColumnHeaderBar )
     410             : {
     411           0 :     if ( isAccessibleAlive() )
     412           0 :         m_pImpl->m_pAccessible->commitHeaderBarEvent( nEventId,
     413           0 :             rNewValue, rOldValue, _bColumnHeaderBar );
     414           0 : }
     415             : 
     416             : 
     417           0 : void BrowseBox::commitTableEvent( sal_Int16 _nEventId, const Any& _rNewValue, const Any& _rOldValue )
     418             : {
     419           0 :     if ( isAccessibleAlive() )
     420           0 :         m_pImpl->m_pAccessible->commitTableEvent( _nEventId, _rNewValue, _rOldValue );
     421           0 : }
     422             : 
     423           0 : void BrowseBox::commitBrowseBoxEvent( sal_Int16 _nEventId, const Any& _rNewValue, const Any& _rOldValue )
     424             : {
     425           0 :     if ( isAccessibleAlive() )
     426           0 :         m_pImpl->m_pAccessible->commitEvent( _nEventId, _rNewValue, _rOldValue);
     427           0 : }
     428             : 
     429             : 
     430           0 : ::svt::IAccessibleFactory& BrowseBox::getAccessibleFactory()
     431             : {
     432           0 :     return m_pImpl->m_aFactoryAccess.getFactory();
     433             : }
     434             : 
     435             : 
     436           0 : bool BrowseBox::isAccessibleAlive( ) const
     437             : {
     438           0 :     return ( NULL != m_pImpl->m_pAccessible ) && m_pImpl->m_pAccessible->isAlive();
     439             : }
     440             : 
     441             : // IAccessibleTableProvider
     442             : 
     443           0 : sal_Int32 BrowseBox::GetCurrRow() const
     444             : {
     445           0 :     return GetCurRow();
     446             : }
     447             : 
     448           0 : sal_uInt16 BrowseBox::GetCurrColumn() const
     449             : {
     450           0 :     return GetColumnPos( GetCurColumnId() );
     451             : }
     452             : 
     453           0 : bool BrowseBox::HasRowHeader() const
     454             : {
     455           0 :     return ( GetColumnId( 0 ) == HandleColumnId ); // HandleColumn == RowHeader
     456             : }
     457             : 
     458           0 : bool BrowseBox::IsCellFocusable() const
     459             : {
     460           0 :     return true;
     461             : }
     462             : 
     463           0 : bool BrowseBox::GoToCell( sal_Int32 _nRow, sal_uInt16 _nColumn )
     464             : {
     465           0 :     return GoToRowColumnId( _nRow, GetColumnId( _nColumn ) );
     466             : }
     467             : 
     468           0 : void BrowseBox::SelectColumn( sal_uInt16 _nColumn, bool _bSelect )
     469             : {
     470           0 :     SelectColumnPos( _nColumn, _bSelect );
     471           0 : }
     472             : 
     473           0 : bool BrowseBox::IsColumnSelected( long _nColumn ) const
     474             : {
     475           0 :     return ( pColSel && (0 <= _nColumn) && (_nColumn <= 0xFFF) ) &&
     476           0 :         pColSel->IsSelected( static_cast< sal_uInt16 >( _nColumn ) );
     477             : }
     478             : 
     479           0 : sal_Int32 BrowseBox::GetSelectedRowCount() const
     480             : {
     481           0 :     return GetSelectRowCount();
     482             : }
     483             : 
     484           0 : sal_Int32 BrowseBox::GetSelectedColumnCount() const
     485             : {
     486           0 :     const MultiSelection* pColumnSel = GetColumnSelection();
     487           0 :     return pColumnSel ? pColumnSel->GetSelectCount() : 0;
     488             : }
     489             : 
     490           0 : void BrowseBox::GetAllSelectedRows( ::com::sun::star::uno::Sequence< sal_Int32 >& _rRows ) const
     491             : {
     492           0 :     sal_Int32 nCount = GetSelectRowCount();
     493           0 :     if( nCount )
     494             :     {
     495           0 :         _rRows.realloc( nCount );
     496           0 :         _rRows[ 0 ] = const_cast< BrowseBox* >( this )->FirstSelectedRow();
     497           0 :         for( sal_Int32 nIndex = 1; nIndex < nCount; ++nIndex )
     498           0 :             _rRows[ nIndex ] = const_cast< BrowseBox* >( this )->NextSelectedRow();
     499             :         DBG_ASSERT( const_cast< BrowseBox* >( this )->NextSelectedRow() == BROWSER_ENDOFSELECTION,
     500             :                     "BrowseBox::GetAllSelectedRows - too many selected rows found" );
     501             :     }
     502           0 : }
     503             : 
     504           0 : void BrowseBox::GetAllSelectedColumns( ::com::sun::star::uno::Sequence< sal_Int32 >& _rColumns ) const
     505             : {
     506           0 :     const MultiSelection* pColumnSel = GetColumnSelection();
     507           0 :     sal_Int32 nCount = GetSelectedColumnCount();
     508           0 :     if( pColumnSel && nCount )
     509             :     {
     510           0 :         _rColumns.realloc( nCount );
     511             : 
     512           0 :         sal_Int32 nIndex = 0;
     513           0 :         const size_t nRangeCount = pColumnSel->GetRangeCount();
     514           0 :         for( size_t nRange = 0; nRange < nRangeCount; ++nRange )
     515             :         {
     516           0 :             const Range& rRange = pColumnSel->GetRange( nRange );
     517             :             // loop has to include aRange.Max()
     518           0 :             for( sal_Int32 nCol = rRange.Min(); nCol <= rRange.Max(); ++nCol )
     519             :             {
     520             :                 DBG_ASSERT( nIndex < nCount,
     521             :                     "GetAllSelectedColumns - range overflow" );
     522           0 :                 _rColumns[ nIndex ] = nCol;
     523           0 :                 ++nIndex;
     524             :             }
     525             :         }
     526             :     }
     527           0 : }
     528             : 
     529           0 : bool BrowseBox::IsCellVisible( sal_Int32 _nRow, sal_uInt16 _nColumnPos ) const
     530             : {
     531           0 :     return IsFieldVisible( _nRow, GetColumnId( _nColumnPos ) );
     532             : }
     533             : 
     534           0 : OUString BrowseBox::GetAccessibleCellText(long _nRow, sal_uInt16 _nColPos) const
     535             : {
     536           0 :     return GetCellText( _nRow, GetColumnId( _nColPos ) );
     537             : }
     538             : 
     539             : 
     540           0 : bool BrowseBox::GetGlyphBoundRects( const Point& rOrigin, const OUString& rStr, int nIndex, int nLen, int nBase, MetricVector& rVector )
     541             : {
     542           0 :     return Control::GetGlyphBoundRects( rOrigin, rStr, nIndex, nLen, nBase, rVector );
     543             : }
     544             : 
     545           0 : Rectangle BrowseBox::GetWindowExtentsRelative( Window *pRelativeWindow ) const
     546             : {
     547           0 :     return Control::GetWindowExtentsRelative( pRelativeWindow );
     548             : }
     549             : 
     550           0 : void BrowseBox::GrabFocus()
     551             : {
     552           0 :     Control::GrabFocus();
     553           0 : }
     554             : 
     555           0 : Reference< XAccessible > BrowseBox::GetAccessible( bool bCreate )
     556             : {
     557           0 :     return Control::GetAccessible( bCreate );
     558             : }
     559             : 
     560           0 : Window* BrowseBox::GetAccessibleParentWindow() const
     561             : {
     562           0 :     return Control::GetAccessibleParentWindow();
     563             : }
     564             : 
     565           0 : Window* BrowseBox::GetWindowInstance()
     566             : {
     567           0 :     return this;
     568             : }
     569             : 
     570             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10