LibreOffice Module svtools (master) 1
brwbox3.cxx
Go to the documentation of this file.
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>
23#include <sal/log.hxx>
24#include <tools/debug.hxx>
25#include <tools/multisel.hxx>
26#include "brwimpl.hxx"
27#include <com/sun/star/accessibility/AccessibleStateType.hpp>
28
29// Accessibility ==============================================================
30
31using namespace ::com::sun::star::uno;
32using ::com::sun::star::accessibility::XAccessible;
33using namespace ::com::sun::star::accessibility;
34
35
36namespace svt
37{
38 using namespace ::com::sun::star::lang;
39
41 sal_Int32 _nPos,
43 const Reference< XAccessible >& _rParent,
44 BrowseBox& _rBrowseBox,
45 vcl::IAccessibleFactory const & rFactory
46 )
47 {
49 BrowseBoxImpl::THeaderCellMap::iterator aFind = _raHeaderCells.find( _nPos );
50 if ( aFind == _raHeaderCells.end() )
51 {
53 _nPos,
54 _rParent,
55 _rBrowseBox,
56 nullptr,
57 _eType
58 );
59 aFind = _raHeaderCells.emplace( _nPos, xAccessible ).first;
60 }
61 if ( aFind != _raHeaderCells.end() )
62 xRet = aFind->second;
63 return xRet;
64 }
65
66
68 {
70 return m_pAccessible->getHeaderBar( _eObjType );
71 return nullptr;
72 }
73
74
76 {
78 return m_pAccessible->getTable( );
79 return nullptr;
80 }
81}
82
83
84Reference< XAccessible > BrowseBox::CreateAccessible()
85{
87 DBG_ASSERT( pParent, "BrowseBox::CreateAccessible - parent not found" );
88
89 if( pParent && !m_pImpl->m_pAccessible)
90 {
91 Reference< XAccessible > xAccParent = pParent->GetAccessible();
92 if( xAccParent.is() )
93 {
95 xAccParent, *this
96 );
97 }
98 }
99
100 Reference< XAccessible > xAccessible;
101 if ( m_pImpl->m_pAccessible )
102 xAccessible = m_pImpl->m_pAccessible->getMyself();
103
104 return xAccessible;
105}
106
107
108// Children -------------------------------------------------------------------
109
110Reference< XAccessible > BrowseBox::CreateAccessibleCell( sal_Int32 _nRow, sal_uInt16 _nColumnPos )
111{
112 // BBINDEX_TABLE must be the table
113 OSL_ENSURE(m_pImpl->m_pAccessible,"Invalid call: Accessible is null");
114
115 return m_pImpl->m_aFactoryAccess.getFactory().createAccessibleBrowseBoxTableCell(
116 m_pImpl->getAccessibleTable(),
117 *this,
118 nullptr,
119 _nRow,
120 _nColumnPos,
122 );
123}
124
125
126Reference< XAccessible > BrowseBox::CreateAccessibleRowHeader( sal_Int32 _nRow )
127{
128 return svt::getHeaderCell(
129 m_pImpl->m_aRowHeaderCellMap,
130 _nRow,
131 AccessibleBrowseBoxObjType::RowHeaderCell,
132 m_pImpl->getAccessibleHeaderBar(AccessibleBrowseBoxObjType::RowHeaderBar),
133 *this,
134 m_pImpl->m_aFactoryAccess.getFactory()
135 );
136}
137
138
139Reference< XAccessible > BrowseBox::CreateAccessibleColumnHeader( sal_uInt16 _nColumnPos )
140{
141 return svt::getHeaderCell(
142 m_pImpl->m_aColHeaderCellMap,
143 _nColumnPos,
144 AccessibleBrowseBoxObjType::ColumnHeaderCell,
145 m_pImpl->getAccessibleHeaderBar(AccessibleBrowseBoxObjType::ColumnHeaderBar),
146 *this,
147 m_pImpl->m_aFactoryAccess.getFactory()
148 );
149}
150
151
153{
154 return 0;
155}
156
157
158Reference< XAccessible > BrowseBox::CreateAccessibleControl( sal_Int32 )
159{
160 SAL_WARN( "svtools", "BrowseBox::CreateAccessibleControl: to be overwritten!" );
161 return nullptr;
162}
163
164
165// Conversions ----------------------------------------------------------------
166
168 sal_Int32& rnRow, sal_uInt16& rnColumnPos, const Point& rPoint )
169{
171 rnRow = GetRowAtYPosPixel(rPoint.Y());
172 rnColumnPos = GetColumnAtXPosPixel(rPoint.X());
173 return rnRow != BROWSER_INVALIDID && rnColumnPos != BROWSER_INVALIDID;
174}
175
176
177bool BrowseBox::ConvertPointToRowHeader( sal_Int32& rnRow, const Point& rPoint )
178{
179 rnRow = GetRowAtYPosPixel(rPoint.Y());
180 // sal_uInt16 nColumnId = GetColumnAtXPosPixel(rPoint.X());
181 return rnRow != BROWSER_INVALIDID;// && nColumnId == 0;
182}
183
184
185bool BrowseBox::ConvertPointToColumnHeader( sal_uInt16& _rnColumnPos, const Point& _rPoint )
186{
187 _rnColumnPos = GetColumnAtXPosPixel(_rPoint.X());
188 return _rnColumnPos != BROWSER_INVALIDID;
189}
190
191
192bool BrowseBox::ConvertPointToControlIndex( sal_Int32& _rnIndex, const Point& _rPoint )
193{
195 sal_Int32 nRow = 0;
196 sal_uInt16 nColumn = 0;
197 bool bRet = ConvertPointToCellAddress(nRow,nColumn,_rPoint);
198 if ( bRet )
199 _rnIndex = nRow * ColCount() + nColumn;
200
201 return bRet;
202}
203
204
205// Object data and state ------------------------------------------------------
206
207OUString BrowseBox::GetAccessibleObjectName( AccessibleBrowseBoxObjType eObjType,sal_Int32 _nPosition) const
208{
209 OUString aRetText;
210 switch( eObjType )
211 {
212 case AccessibleBrowseBoxObjType::BrowseBox:
213 aRetText = "BrowseBox";
214 break;
215 case AccessibleBrowseBoxObjType::Table:
216 aRetText = "Table";
217 break;
218 case AccessibleBrowseBoxObjType::RowHeaderBar:
219 aRetText = "RowHeaderBar";
220 break;
221 case AccessibleBrowseBoxObjType::ColumnHeaderBar:
222 aRetText = "ColumnHeaderBar";
223 break;
224 case AccessibleBrowseBoxObjType::TableCell:
225 if( ColCount() !=0 && GetRowCount()!=0)
226 {
227
228 sal_Int32 columnId = _nPosition % ColCount() +1;
229 aRetText = GetColumnDescription( sal_Int16( columnId ) );
230 sal_Int32 rowId = _nPosition / GetRowCount() + 1;
231 aRetText += OUString::number(rowId);
232 }
233 else
234 aRetText = "TableCell";
235#if OSL_DEBUG_LEVEL > 0
236 aRetText += " ["
237 + OUString::number(GetCurRow())
238 + ","
239 + OUString::number(sal_Int32(GetCurColumnId()))
240 + "]";
241#endif
242 break;
243 case AccessibleBrowseBoxObjType::RowHeaderCell:
244 {
245 sal_Int32 rowId = _nPosition + 1;
246 aRetText = OUString::number( rowId );
247 }
248#if OSL_DEBUG_LEVEL > 0
249 aRetText += " ["
250 + OUString::number(GetCurRow())
251 + ","
252 + OUString::number(sal_Int32(GetCurColumnId()))
253 + "]";
254#endif
255 break;
256 case AccessibleBrowseBoxObjType::ColumnHeaderCell:
257 aRetText = GetColumnDescription( sal_Int16( _nPosition ) );
258#if OSL_DEBUG_LEVEL > 0
259 aRetText += " ["
260 + OUString::number(GetCurRow())
261 + ","
262 + OUString::number(sal_Int32(GetCurColumnId()))
263 + "]";
264#endif
265 break;
266 default:
267 OSL_FAIL("BrowseBox::GetAccessibleName: invalid enum!");
268 }
269 return aRetText;
270}
271
272
274{
275 OUString aRetText;
276 switch( eObjType )
277 {
278 case AccessibleBrowseBoxObjType::BrowseBox:
279 aRetText = "BrowseBox description";
280 break;
281 case AccessibleBrowseBoxObjType::Table:
282 // aRetText = "TABLE description";
283 break;
284 case AccessibleBrowseBoxObjType::RowHeaderBar:
285 // aRetText = "ROWHEADERBAR description";
286 break;
287 case AccessibleBrowseBoxObjType::ColumnHeaderBar:
288 // aRetText = "COLUMNHEADERBAR description";
289 break;
290 case AccessibleBrowseBoxObjType::TableCell:
291 // aRetText = "TABLECELL description";
292 break;
293 case AccessibleBrowseBoxObjType::RowHeaderCell:
294 // aRetText = "ROWHEADERCELL description";
295 break;
296 case AccessibleBrowseBoxObjType::ColumnHeaderCell:
297 // aRetText = "COLUMNHEADERCELL description";
298 break;
299 case AccessibleBrowseBoxObjType::CheckBoxCell:
300 break;
301 }
302 return aRetText;
303}
304
305
306OUString BrowseBox::GetRowDescription( sal_Int32 ) const
307{
308 return OUString();
309}
310
311
312OUString BrowseBox::GetColumnDescription( sal_uInt16 _nColumn ) const
313{
314 return GetColumnTitle( GetColumnId( _nColumn ) );
315}
316
317
319 sal_Int64& rStateSet,
320 AccessibleBrowseBoxObjType eObjType ) const
321{
322 switch( eObjType )
323 {
324 case AccessibleBrowseBoxObjType::BrowseBox:
325 case AccessibleBrowseBoxObjType::Table:
326
327 rStateSet |= AccessibleStateType::FOCUSABLE;
328 if ( HasFocus() )
329 rStateSet |= AccessibleStateType::FOCUSED;
330 if ( IsActive() )
331 rStateSet |= AccessibleStateType::ACTIVE;
332 if ( GetUpdateMode() )
333 rStateSet |= AccessibleStateType::EDITABLE;
334 if ( IsEnabled() )
335 {
336 rStateSet |= AccessibleStateType::ENABLED;
337 rStateSet |= AccessibleStateType::SENSITIVE;
338 }
339 if ( IsReallyVisible() )
340 rStateSet |= AccessibleStateType::VISIBLE;
341 if ( eObjType == AccessibleBrowseBoxObjType::Table )
342 rStateSet |= AccessibleStateType::MANAGES_DESCENDANTS;
343
344 break;
345 case AccessibleBrowseBoxObjType::RowHeaderBar:
346 rStateSet |= AccessibleStateType::FOCUSABLE;
347 rStateSet |= AccessibleStateType::VISIBLE;
348 if ( GetSelectRowCount() )
349 rStateSet |= AccessibleStateType::FOCUSED;
350 rStateSet |= AccessibleStateType::MANAGES_DESCENDANTS;
351 break;
352 case AccessibleBrowseBoxObjType::ColumnHeaderBar:
353 rStateSet |= AccessibleStateType::FOCUSABLE;
354 rStateSet |= AccessibleStateType::VISIBLE;
355 if ( GetSelectColumnCount() )
356 rStateSet |= AccessibleStateType::FOCUSED;
357 rStateSet |= AccessibleStateType::MANAGES_DESCENDANTS;
358 break;
359 case AccessibleBrowseBoxObjType::TableCell:
360 {
361 sal_Int32 nRow = GetCurRow();
362 sal_uInt16 nColumn = GetCurColumnId();
363 if ( IsFieldVisible(nRow,nColumn) )
364 rStateSet |= AccessibleStateType::VISIBLE;
365 if ( !IsFrozen( nColumn ) )
366 rStateSet |= AccessibleStateType::FOCUSABLE;
367 rStateSet |= AccessibleStateType::TRANSIENT;
368 }
369 break;
370 case AccessibleBrowseBoxObjType::RowHeaderCell:
371 case AccessibleBrowseBoxObjType::ColumnHeaderCell:
372 case AccessibleBrowseBoxObjType::CheckBoxCell:
373 OSL_FAIL("Illegal call here!");
374 break;
375 }
376}
377
379 sal_Int32 _nRow, sal_uInt16 _nColumnPos ) const
380{
382 if ( IsCellVisible( _nRow, _nColumnPos ) )
383 _rStateSet |= AccessibleStateType::VISIBLE;
384 if ( GetCurrRow() == _nRow && GetCurrColumn() == _nColumnPos )
385 _rStateSet |= AccessibleStateType::FOCUSED;
386 else // only transient when column is not focused
387 _rStateSet |= AccessibleStateType::TRANSIENT;
388}
389
390
392{
393 GrabFocus();
394}
395
396OUString BrowseBox::GetCellText(sal_Int32, sal_uInt16 ) const
397{
398 SAL_WARN("svtools", "This method has to be implemented by the derived classes! BUG!!");
399 return OUString();
400}
401
402
403void BrowseBox::commitHeaderBarEvent(sal_Int16 nEventId,
404 const Any& rNewValue, const Any& rOldValue, bool _bColumnHeaderBar )
405{
406 if ( isAccessibleAlive() )
407 m_pImpl->m_pAccessible->commitHeaderBarEvent( nEventId,
408 rNewValue, rOldValue, _bColumnHeaderBar );
409}
410
411void BrowseBox::commitTableEvent( sal_Int16 _nEventId, const Any& _rNewValue, const Any& _rOldValue )
412{
413 if ( isAccessibleAlive() )
414 m_pImpl->m_pAccessible->commitTableEvent( _nEventId, _rNewValue, _rOldValue );
415}
416
417void BrowseBox::commitBrowseBoxEvent( sal_Int16 _nEventId, const Any& _rNewValue, const Any& _rOldValue )
418{
419 if ( isAccessibleAlive() )
420 m_pImpl->m_pAccessible->commitEvent( _nEventId, _rNewValue, _rOldValue);
421}
422
424{
425 return m_pImpl->m_aFactoryAccess.getFactory();
426}
427
429{
430 return ( nullptr != m_pImpl->m_pAccessible ) && m_pImpl->m_pAccessible->isAlive();
431}
432
433// IAccessibleTableProvider
434
435sal_Int32 BrowseBox::GetCurrRow() const
436{
437 return GetCurRow();
438}
439
440sal_uInt16 BrowseBox::GetCurrColumn() const
441{
442 return GetColumnPos( GetCurColumnId() );
443}
444
446{
447 return ( GetColumnId( 0 ) == HandleColumnId ); // HandleColumn == RowHeader
448}
449
450bool BrowseBox::GoToCell( sal_Int32 _nRow, sal_uInt16 _nColumn )
451{
452 return GoToRowColumnId( _nRow, GetColumnId( _nColumn ) );
453}
454
455void BrowseBox::SelectColumn( sal_uInt16 _nColumn, bool _bSelect )
456{
457 SelectColumnPos( _nColumn, _bSelect );
458}
459
460bool BrowseBox::IsColumnSelected( sal_Int32 _nColumn ) const
461{
462 return ( pColSel && (0 <= _nColumn) && (_nColumn <= 0xFFF) ) &&
463 pColSel->IsSelected( static_cast< sal_uInt16 >( _nColumn ) );
464}
465
467{
468 return GetSelectRowCount();
469}
470
472{
473 const MultiSelection* pColumnSel = GetColumnSelection();
474 return pColumnSel ? pColumnSel->GetSelectCount() : 0;
475}
476
477void BrowseBox::GetAllSelectedRows( css::uno::Sequence< sal_Int32 >& _rRows ) const
478{
479 sal_Int32 nCount = GetSelectRowCount();
480 if( nCount )
481 {
482 _rRows.realloc( nCount );
483 auto pRows = _rRows.getArray();
484 pRows[ 0 ] = const_cast< BrowseBox* >( this )->FirstSelectedRow();
485 for( sal_Int32 nIndex = 1; nIndex < nCount; ++nIndex )
486 pRows[ nIndex ] = const_cast< BrowseBox* >( this )->NextSelectedRow();
487 DBG_ASSERT( const_cast< BrowseBox* >( this )->NextSelectedRow() == BROWSER_ENDOFSELECTION,
488 "BrowseBox::GetAllSelectedRows - too many selected rows found" );
489 }
490}
491
492void BrowseBox::GetAllSelectedColumns( css::uno::Sequence< sal_Int32 >& _rColumns ) const
493{
494 const MultiSelection* pColumnSel = GetColumnSelection();
495 sal_Int32 nCount = GetSelectedColumnCount();
496 if( !(pColumnSel && nCount) )
497 return;
498
499 _rColumns.realloc( nCount );
500 auto pColumns = _rColumns.getArray();
501
502 sal_Int32 nIndex = 0;
503 const size_t nRangeCount = pColumnSel->GetRangeCount();
504 for( size_t nRange = 0; nRange < nRangeCount; ++nRange )
505 {
506 const Range& rRange = pColumnSel->GetRange( nRange );
507 // loop has to include aRange.Max()
508 for( sal_Int32 nCol = rRange.Min(); nCol <= static_cast<sal_Int32>(rRange.Max()); ++nCol )
509 {
511 "GetAllSelectedColumns - range overflow" );
512 pColumns[ nIndex ] = nCol;
513 ++nIndex;
514 }
515 }
516}
517
518bool BrowseBox::IsCellVisible( sal_Int32 _nRow, sal_uInt16 _nColumnPos ) const
519{
520 return IsFieldVisible( _nRow, GetColumnId( _nColumnPos ) );
521}
522
523OUString BrowseBox::GetAccessibleCellText(sal_Int32 _nRow, sal_uInt16 _nColPos) const
524{
525 return GetCellText( _nRow, GetColumnId( _nColPos ) );
526}
527
528
529bool BrowseBox::GetGlyphBoundRects( const Point& rOrigin, const OUString& rStr, int nIndex, int nLen, std::vector< tools::Rectangle >& rVector )
530{
531 return GetOutDev()->GetGlyphBoundRects( rOrigin, rStr, nIndex, nLen, rVector );
532}
533
535{
537}
538
540{
541 return Control::GetWindowExtentsRelative( rRelativeWindow );
542}
543
545{
547}
548
549Reference< XAccessible > BrowseBox::GetAccessible()
550{
551 return Control::GetAccessible();
552}
553
555{
557}
558
560{
561 return this;
562}
563
564/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
AccessibleBrowseBoxObjType
#define OFFSET_DEFAULT
constexpr sal_Int32 BROWSER_ENDOFSELECTION
Definition: brwbox.hxx:56
#define BROWSER_INVALIDID
Definition: brwbox.hxx:55
virtual bool GetGlyphBoundRects(const Point &rOrigin, const OUString &rStr, int nIndex, int nLen, std::vector< tools::Rectangle > &rVector) override
Definition: brwbox3.cxx:529
virtual sal_Int32 GetSelectedRowCount() const override
Definition: brwbox3.cxx:466
sal_uInt16 GetColumnId(sal_uInt16 nPos) const
Definition: brwbox2.cxx:379
::vcl::IAccessibleFactory & getAccessibleFactory()
retrieves the XAccessible implementation associated with the BrowseBox instance
Definition: brwbox3.cxx:423
virtual void GetAllSelectedRows(css::uno::Sequence< sal_Int32 > &_rRows) const override
Definition: brwbox3.cxx:477
virtual css::uno::Reference< css::accessibility::XAccessible > GetAccessible() override
Definition: brwbox3.cxx:549
const MultiSelection * GetColumnSelection() const
Definition: brwbox.hxx:565
virtual OUString GetAccessibleCellText(sal_Int32 _nRow, sal_uInt16 _nColPos) const override
Definition: brwbox3.cxx:523
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessible() override
Creates and returns the accessible object of the whole BrowseBox.
Definition: brwbox3.cxx:84
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessibleColumnHeader(sal_uInt16 nColumnPos) override
Creates the accessible object of a column header.
Definition: brwbox3.cxx:139
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessibleCell(sal_Int32 nRow, sal_uInt16 nColumnPos) override
Creates the accessible object of a data table cell.
Definition: brwbox3.cxx:110
sal_Int32 GetCurRow() const
Definition: brwbox.hxx:544
sal_uInt16 GetSelectColumnCount() const
Definition: brwbox1.cxx:1862
virtual bool ConvertPointToRowHeader(sal_Int32 &rnRow, const Point &rPoint) override
Converts a point relative to the row header bar origin to a row header index.
Definition: brwbox3.cxx:177
virtual void SelectColumn(sal_uInt16 _nColumn, bool _bSelect=true) override
Definition: brwbox3.cxx:455
virtual bool ConvertPointToCellAddress(sal_Int32 &rnRow, sal_uInt16 &rnColumnId, const Point &rPoint) override
Converts a point relative to the data window origin to a cell address.
Definition: brwbox3.cxx:167
virtual void GetAllSelectedColumns(css::uno::Sequence< sal_Int32 > &_rColumns) const override
Definition: brwbox3.cxx:492
virtual void GrabTableFocus() override
Sets focus to current cell of the data table.
Definition: brwbox3.cxx:391
virtual OUString GetAccessibleObjectName(AccessibleBrowseBoxObjType eObjType, sal_Int32 _nPosition=-1) const override
return the name of the specified object.
Definition: brwbox3.cxx:207
virtual void GrabFocus() override
Definition: brwbox3.cxx:544
virtual bool GoToCell(sal_Int32 _nRow, sal_uInt16 _nColumn) override
Definition: brwbox3.cxx:450
sal_Int32 GetRowAtYPosPixel(tools::Long nY, bool bRelToBrowser=true) const
Definition: brwbox1.cxx:2079
virtual sal_uInt16 GetCurrColumn() const override
Definition: brwbox3.cxx:440
sal_uInt16 ColCount() const
Definition: brwbox1.cxx:849
void SelectColumnPos(sal_uInt16 nCol, bool _bSelect, bool bMakeVisible)
Definition: brwbox1.cxx:1798
virtual OUString GetColumnDescription(sal_uInt16 _nColumn) const override
Definition: brwbox3.cxx:312
virtual sal_Int32 GetAccessibleControlCount() const override
Definition: brwbox3.cxx:152
void commitTableEvent(sal_Int16 nEventId, const css::uno::Any &rNewValue, const css::uno::Any &rOldValue)
commitTableEvent commit the event at all listeners of the table
Definition: brwbox3.cxx:411
bool GoToRowColumnId(sal_Int32 nRow, sal_uInt16 nColId)
Definition: brwbox1.cxx:1584
virtual bool HasRowHeader() const override
Definition: brwbox3.cxx:445
sal_uInt16 GetColumnPos(sal_uInt16 nColumnId) const
Definition: brwbox2.cxx:388
sal_Int32 GetSelectRowCount() const
Definition: brwbox1.cxx:1790
OUString GetColumnTitle(sal_uInt16 nColumnId) const
Definition: brwbox1.cxx:835
virtual void FillAccessibleStateSetForCell(sal_Int64 &_rStateSet, sal_Int32 _nRow, sal_uInt16 _nColumn) const override
Fills the StateSet with all states for one cell (except DEFUNC and SHOWING, done by the accessible ob...
Definition: brwbox3.cxx:378
virtual OUString GetAccessibleObjectDescription(AccessibleBrowseBoxObjType eObjType, sal_Int32 _nPosition=-1) const override
return the description of the specified object.
Definition: brwbox3.cxx:273
static const sal_uInt16 HandleColumnId
Definition: brwbox.hxx:267
virtual OUString GetCellText(sal_Int32 _nRow, sal_uInt16 _nColId) const
GetCellText returns the text at the given position.
Definition: brwbox3.cxx:396
sal_uInt16 GetCurColumnId() const
Definition: brwbox.hxx:545
bool GetUpdateMode() const
Definition: brwbox2.cxx:1254
virtual bool ConvertPointToColumnHeader(sal_uInt16 &rnColumnPos, const Point &rPoint) override
Converts a point relative to the column header bar origin to a column header index.
Definition: brwbox3.cxx:185
virtual vcl::Window * GetWindowInstance() override
Definition: brwbox3.cxx:559
virtual tools::Rectangle GetWindowExtentsAbsolute() const override
Definition: brwbox3.cxx:534
virtual void FillAccessibleStateSet(sal_Int64 &rStateSet, AccessibleBrowseBoxObjType eObjType) const override
Fills the StateSet with all states (except DEFUNC and SHOWING, done by the accessible object),...
Definition: brwbox3.cxx:318
virtual tools::Rectangle GetWindowExtentsRelative(const vcl::Window &rRelativeWindow) const override
Definition: brwbox3.cxx:539
virtual vcl::Window * GetAccessibleParentWindow() const override
Definition: brwbox3.cxx:554
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessibleRowHeader(sal_Int32 nRow) override
Creates the accessible object of a row header.
Definition: brwbox3.cxx:126
virtual bool ConvertPointToControlIndex(sal_Int32 &rnIndex, const Point &rPoint) override
Converts a point relative to the BrowseBox origin to the index of an existing control.
Definition: brwbox3.cxx:192
bool IsFieldVisible(sal_Int32 nRow, sal_uInt16 nColId, bool bComplete=false) const
Definition: brwbox1.cxx:1979
sal_uInt16 GetColumnAtXPosPixel(tools::Long nX) const
Definition: brwbox1.cxx:2105
sal_Int32 FirstSelectedRow()
Definition: brwbox1.cxx:1877
virtual sal_Int32 GetCurrRow() const override
Definition: brwbox3.cxx:435
virtual sal_Int32 GetRowCount() const override
Definition: brwbox1.cxx:844
virtual sal_Int32 GetSelectedColumnCount() const override
Definition: brwbox3.cxx:471
bool isAccessibleAlive() const
return <TRUE> if and only if the accessible object for this instance has been created and is alive
Definition: brwbox3.cxx:428
void commitHeaderBarEvent(sal_Int16 nEventId, const css::uno::Any &rNewValue, const css::uno::Any &rOldValue, bool _bColumnHeaderBar)
fires an AccessibleEvent relative to a header bar AccessibleContext
Definition: brwbox3.cxx:403
virtual bool IsCellVisible(sal_Int32 _nRow, sal_uInt16 _nColumn) const override
Definition: brwbox3.cxx:518
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessibleControl(sal_Int32 nIndex) override
Creates the accessible object of an additional control.
Definition: brwbox3.cxx:158
virtual OUString GetRowDescription(sal_Int32 nRow) const override
Definition: brwbox3.cxx:306
bool IsColumnSelected(sal_uInt16 nColumnId) const
Definition: brwbox1.cxx:1905
bool IsFrozen(sal_uInt16 nColumnId) const
Definition: brwbox2.cxx:397
::std::unique_ptr< ::svt::BrowseBoxImpl > m_pImpl
Definition: brwbox.hxx:345
std::unique_ptr< MultiSelection > pColSel
Definition: brwbox.hxx:320
sal_Int32 NextSelectedRow()
Definition: brwbox1.cxx:1884
void commitBrowseBoxEvent(sal_Int16 nEventId, const css::uno::Any &rNewValue, const css::uno::Any &rOldValue)
commitBrowseBoxEvent commit the event at all listeners of the browsebox
Definition: brwbox3.cxx:417
sal_Int32 GetSelectCount() const
const Range & GetRange(sal_Int32 nRange) const
sal_Int32 GetRangeCount() const
bool GetGlyphBoundRects(const Point &rOrigin, const OUString &rStr, int nIndex, int nLen, std::vector< tools::Rectangle > &rVector) const
constexpr tools::Long Y() const
constexpr tools::Long X() const
tools::Long Max() const
tools::Long Min() const
::std::map< sal_Int32, css::uno::Reference< css::accessibility::XAccessible > > THeaderCellMap
Definition: brwimpl.hxx:36
vcl::IAccessibleBrowseBox * m_pAccessible
Definition: brwimpl.hxx:58
css::uno::Reference< css::accessibility::XAccessible > getAccessibleTable()
Definition: brwbox3.cxx:75
css::uno::Reference< css::accessibility::XAccessible > getAccessibleHeaderBar(AccessibleBrowseBoxObjType _eObjType)
Definition: brwbox3.cxx:67
virtual css::uno::Reference< css::accessibility::XAccessible > getHeaderBar(AccessibleBrowseBoxObjType _eObjType)=0
virtual css::uno::Reference< css::accessibility::XAccessible > getTable()=0
virtual bool isAlive() const=0
virtual css::uno::Reference< css::accessibility::XAccessible > createAccessibleBrowseBoxHeaderCell(sal_Int32 _nColumnRowId, const css::uno::Reference< css::accessibility::XAccessible > &rxParent, vcl::IAccessibleTableProvider &_rBrowseBox, const css::uno::Reference< css::awt::XWindow > &_xFocusWindow, AccessibleBrowseBoxObjType _eObjType) const=0
virtual vcl::IAccessibleBrowseBox * createAccessibleBrowseBox(const css::uno::Reference< css::accessibility::XAccessible > &_rxParent, vcl::IAccessibleTableProvider &_rBrowseBox) const=0
tools::Rectangle GetWindowExtentsAbsolute() const
bool IsReallyVisible() const
void GrabFocus()
bool HasFocus() const
vcl::Window * GetAccessibleParentWindow() const
::OutputDevice const * GetOutDev() const
css::uno::Reference< css::accessibility::XAccessible > GetAccessible(bool bCreate=true)
tools::Rectangle GetWindowExtentsRelative(const vcl::Window &rRelativeWindow) const
bool IsActive() const
bool IsEnabled() const
int nCount
#define DBG_ASSERT(sCon, aError)
sal_Int32 nIndex
#define SAL_WARN(area, stream)
static Reference< XAccessible > getHeaderCell(BrowseBoxImpl::THeaderCellMap &_raHeaderCells, sal_Int32 _nPos, AccessibleBrowseBoxObjType _eType, const Reference< XAccessible > &_rParent, BrowseBox &_rBrowseBox, vcl::IAccessibleFactory const &rFactory)
Definition: brwbox3.cxx:40
sal_Int32 _nPos