48 class IAccessibleFactory;
55#define BROWSER_INVALIDID SAL_MAX_UINT16
93#define BROWSER_SELECT 720
94#define BROWSER_ENHANCESELECTION 722
95#define BROWSER_SELECTDOWN 724
96#define BROWSER_SELECTUP 725
97#define BROWSER_CURSORDOWN 731
98#define BROWSER_CURSORUP 732
99#define BROWSER_CURSORLEFT 733
100#define BROWSER_CURSORRIGHT 734
101#define BROWSER_CURSORPAGEDOWN 735
102#define BROWSER_CURSORPAGEUP 736
103#define BROWSER_CURSORENDOFFILE 741
104#define BROWSER_CURSORTOPOFFILE 742
105#define BROWSER_CURSORENDOFSCREEN 743
106#define BROWSER_CURSORTOPOFSCREEN 744
107#define BROWSER_CURSORHOME 745
108#define BROWSER_CURSOREND 746
109#define BROWSER_SCROLLDOWN 751
110#define BROWSER_SCROLLUP 752
111#define BROWSER_SELECTHOME 753
112#define BROWSER_SELECTEND 754
113#define BROWSER_SELECTCOLUMN 755
114#define BROWSER_MOVECOLUMNLEFT 756
115#define BROWSER_MOVECOLUMNRIGHT 757
129 sal_uInt16 nColumn, sal_uInt16 nColumnId,
144 ,
public DragSourceHelper
145 ,
public DropTargetHelper
179 virtual void dispose()
override;
223 sal_Int32 nAbsRow, sal_uInt16 nColumn, sal_uInt16 nColumnId,
259 ,
public DragSourceHelper
260 ,
public DropTargetHelper
264 friend class ::svt::BrowseBoxImpl;
267 static const sal_uInt16 HandleColumnId = 0;
314 ::std::vector< std::unique_ptr<BrowserColumn> >
mvCols;
331 , m_bScrolledToReachCell(bScrolledToReachCell)
336 return m_nCol == r.
m_nCol &&
342 std::stack<CursorMoveAttempt>
345 ::std::unique_ptr< ::svt::BrowseBoxImpl >
m_pImpl;
373 bool GoToRow(sal_Int32 nRow,
bool bRowColMove,
bool bDoNotModifySelection =
false );
375 bool GoToColumnId( sal_uInt16 nColId,
bool bMakeVisible,
bool bRowColMove =
false);
376 void SelectColumnPos( sal_uInt16 nCol,
bool _bSelect,
bool bMakeVisible);
382 sal_uInt16 ToggleSelectedColumn();
383 void SetToggledSelectedColumn(sal_uInt16 _nSelectedColumnId);
392 sal_uInt16 ColCount()
const;
403 void SetRealRowCount(
const OUString &rRealRowCount );
430 virtual void VisibleRowsChanged( sal_Int32 nNewTopRow, sal_uInt16 nNumRows);
433 sal_uInt16 GetVisibleRows()
const;
440 short GetCursorHideCount()
const;
450 GetDataFlavors()
const;
454 void DisposeAccessible();
458 virtual void ImplStartTracking();
459 virtual void ImplEndTracking();
465 virtual void dispose()
override;
475 virtual void Resize()
override;
491 virtual void EndScroll();
494 virtual bool IsCursorMoveAllowed( sal_Int32 nNewRow, sal_uInt16 nNewColId )
const;
495 virtual void CursorMoved();
496 virtual void ColumnMoved( sal_uInt16 nColId );
497 virtual void ColumnResized( sal_uInt16 nColId );
499 virtual void RowHeightChanged();
504 bool GetUpdateMode()
const;
513 void InsertHandleColumn(
sal_uLong nWidth );
514 void InsertDataColumn( sal_uInt16 nItemId,
const OUString& rText,
516 sal_uInt16 nPos = HEADERBAR_APPEND );
517 void SetColumnTitle( sal_uInt16 nColumnId,
const OUString &rTitle );
518 void SetColumnWidth( sal_uInt16 nColumnId,
sal_uLong nWidth );
519 void SetColumnPos( sal_uInt16 nColumnId, sal_uInt16 nPos );
520 void FreezeColumn( sal_uInt16 nColumnId );
521 void RemoveColumn( sal_uInt16 nColumnId );
522 void RemoveColumns();
527 void SetTitleLines( sal_uInt16 nLines );
531 OUString GetColumnTitle( sal_uInt16 nColumnId )
const;
533 sal_uLong GetColumnWidth( sal_uInt16 nColumnId )
const;
534 sal_uInt16 GetColumnId( sal_uInt16 nPos )
const;
535 sal_uInt16 GetColumnPos( sal_uInt16 nColumnId )
const;
536 bool IsFrozen( sal_uInt16 nColumnId )
const;
539 sal_Int32 ScrollColumns( sal_Int32 nColumns );
540 sal_Int32 ScrollRows( sal_Int32 nRows );
541 void MakeFieldVisible( sal_Int32 nRow, sal_uInt16 nColId );
546 bool GoToRow( sal_Int32 nRow );
547 bool GoToColumnId( sal_uInt16 nColId );
548 bool GoToRowColumnId( sal_Int32 nRow, sal_uInt16 nColId );
553 virtual void SelectRow( sal_Int32 nRow,
bool _bSelect =
true,
bool bExpand =
true )
override;
555 { SelectColumnPos( nCol, _bSelect,
true); }
557 { SelectColumnPos( GetColumnPos(nColId),
true,
true); }
558 sal_Int32 GetSelectRowCount()
const;
559 sal_uInt16 GetSelectColumnCount()
const;
562 sal_Int32 FirstSelectedRow();
563 sal_Int32 LastSelectedRow();
564 sal_Int32 NextSelectedRow();
567 {
return bMultiSelection ? uRow.pSel :
nullptr; }
569 sal_Int32 FirstSelectedColumn( )
const;
577 bool bRelToBrowser =
true)
const;
578 bool IsFieldVisible( sal_Int32 nRow, sal_uInt16 nColId,
579 bool bComplete =
false )
const;
581 bool bRelToBrowser =
true )
const;
582 sal_uInt16 GetColumnAtXPosPixel(
tools::Long nX )
const;
586 void RowRemoved( sal_Int32 nRow, sal_Int32 nNumRows = 1,
bool bDoPaint =
true );
588 void RowInserted( sal_Int32 nRow, sal_Int32 nNumRows = 1,
bool bDoPaint =
true,
bool bKeepSelection =
false );
591 bool ReserveControlArea(sal_uInt16 nWidth = USHRT_MAX);
593 virtual bool ProcessKey(
const KeyEvent& rEvt);
594 virtual void ChildFocusIn();
595 virtual void ChildFocusOut();
596 void Dispatch( sal_uInt16 nId );
600 void SetCursorColor(
const Color& _rCol);
616 { PaintField( rDev, rRect, nColumnId ); }
622 sal_uLong GetDefaultColumnWidth(
const OUString& _rText )
const;
632 virtual OUString GetCellText(sal_Int32 _nRow, sal_uInt16 _nColId)
const;
647 void commitBrowseBoxEvent(sal_Int16 nEventId,
648 const css::uno::Any& rNewValue,
649 const css::uno::Any& rOldValue);
659 void commitTableEvent(sal_Int16 nEventId,
660 const css::uno::Any& rNewValue,
661 const css::uno::Any& rOldValue);
672 void commitHeaderBarEvent(sal_Int16 nEventId,
673 const css::uno::Any& rNewValue,
674 const css::uno::Any& rOldValue,
675 bool _bColumnHeaderBar
709 bool isAccessibleAlive( )
const;
713 virtual css::uno::Reference<
722 virtual css::uno::Reference<
723 css::accessibility::XAccessible >
729 virtual css::uno::Reference<
730 css::accessibility::XAccessible >
736 virtual css::uno::Reference<
737 css::accessibility::XAccessible >
746 virtual css::uno::Reference<
747 css::accessibility::XAccessible >
756 sal_Int32& rnRow, sal_uInt16& rnColumnId,
const Point& rPoint )
override;
808 sal_Int64& rStateSet,
814 sal_Int64& _rStateSet,
815 sal_Int32 _nRow, sal_uInt16 _nColumn )
const override;
821 virtual sal_Int32
GetCurrRow()
const override;
824 virtual bool GoToCell( sal_Int32 _nRow, sal_uInt16 _nColumn )
override;
825 virtual void SelectColumn( sal_uInt16 _nColumn,
bool _bSelect =
true )
override;
829 virtual void GetAllSelectedRows( css::uno::Sequence< sal_Int32 >& _rRows )
const override;
831 virtual bool IsCellVisible( sal_Int32 _nRow, sal_uInt16 _nColumn )
const override;
833 virtual bool GetGlyphBoundRects(
const Point& rOrigin,
const OUString& rStr,
int nIndex,
int nLen, std::vector< tools::Rectangle >& rVector )
override;
837 virtual css::uno::Reference< css::accessibility::XAccessible >
GetAccessible()
override;
AccessibleBrowseBoxObjType
constexpr sal_Int32 BROWSER_ENDOFSELECTION
#define BROWSER_INVALIDID
const MultiSelection * GetColumnSelection() const
tools::Long m_nCornerHeight
virtual void PaintField(vcl::RenderContext &rDev, const tools::Rectangle &rRect, sal_uInt16 nColumnId) const =0
VclPtr< BrowserDataWin > pDataWin
bool bSelectionIsVisible
select or deselect
VclPtr< ScrollAdaptor > pVScroll
void SetTitleFont(const vcl::Font &rNewFont)
sal_Int32 GetCurRow() const
tools::Long m_nDataRowHeight
sal_uLong nControlAreaWidth
const MultiSelection * GetSelection() const
bool mbInteractiveRowHeight
BrowserMode m_nCurrentMode
std::stack< CursorMoveAttempt > m_aGotoStack
sal_Int32 GetTopRow() const
bool IsInteractiveRowHeightEnabled() const
DECL_DLLPRIVATE_LINK(StartDragHdl, HeaderBar *, void)
VclPtr< MeasureStatusBar > aStatusBarHeight
bool PaintCursorIfHiddenOnce() const
void DoPaintField(OutputDevice &rDev, const tools::Rectangle &rRect, sal_uInt16 nColumnId, BrowserColumnAccess) const
public version of PaintField, with selected access rights for the BrowserColumn
void SelectColumnId(sal_uInt16 nColId)
sal_uInt16 GetCurColumnId() const
DECL_DLLPRIVATE_LINK(HorzScrollHdl, weld::Scrollbar &, void)
virtual bool SeekRow(sal_Int32 nRow)=0
seeks for the given row position
sal_uInt16 GetFirstVisibleColNumber() const
void SelectColumnPos(sal_uInt16 nCol, bool _bSelect=true)
tools::Long m_nActualCornerWidth
void EnableInteractiveRowHeight()
specifies that the user is allowed to interactively change the height of a row, by simply dragging an...
BrowserMode GetMode() const
tools::Long m_nCornerWidth
DECL_DLLPRIVATE_LINK(VertScrollHdl, weld::Scrollbar &, void)
::std::vector< std::unique_ptr< BrowserColumn > > mvCols
::std::unique_ptr< ::svt::BrowseBoxImpl > m_pImpl
VclPtr< ScrollAdaptor > aHScroll
std::unique_ptr< MultiSelection > pColSel
sal_uInt16 GetColumnCount() const override
VclPtr< vcl::Window > pWin
BrowseEvent(vcl::Window *pWindow, sal_Int32 nAbsRow, sal_uInt16 nColumn, sal_uInt16 nColumnId, const tools::Rectangle &rRect)
vcl::Window * GetWindow() const
const tools::Rectangle & GetRect() const
sal_uInt16 GetColumn() const
sal_uInt16 GetColumnId() const
BrowserAcceptDropEvent(BrowserDataWin *pWin, const AcceptDropEvent &rEvt)
virtual void KeyInput(const KeyEvent &rEvt) override
void DoOutstandingInvalidations()
virtual ~BrowserDataWin() override
bool bCallingDropCallback
tools::Long m_nDragRowDividerLimit
BrowserDataWin(BrowseBox *pParent)
virtual sal_Int8 AcceptDrop(const AcceptDropEvent &rEvt) override
virtual void Tracking(const TrackingEvent &rTEvt) override
BrowseBox * GetParent() const
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect) override
DECL_LINK(RepeatedMouseMove, Timer *, void)
const OUString & GetRealRowCount() const
bool GetUpdateMode() const
virtual void RequestHelp(const HelpEvent &rHEvt) override
virtual void dispose() override
std::vector< tools::Rectangle > aInvalidRegion
virtual void MouseMove(const MouseEvent &rEvt) override
virtual void Command(const CommandEvent &rEvt) override
VclPtr< BrowserHeader > pHeaderBar
bool ImplRowDividerHitTest(const BrowserMouseEvent &_rEvent) const
virtual void StartDrag(sal_Int8 _nAction, const Point &_rPosPixel) override
virtual sal_Int8 ExecuteDrop(const ExecuteDropEvent &rEvt) override
virtual void MouseButtonDown(const MouseEvent &rEvt) override
virtual void DataChanged(const DataChangedEvent &rDCEvt) override
void StartRowDividerDrag(const Point &_rStartPos)
BrowseEvent CreateBrowseEvent(const Point &rPosPixel)
virtual void MouseButtonUp(const MouseEvent &rEvt) override
void SetUpdateMode(bool bMode)
tools::Long m_nDragRowDividerOffset
virtual void ImplInvalidate(const vcl::Region *pRegion, InvalidateFlags nFlags) override
BrowserExecuteDropEvent(BrowserDataWin *pWin, const ExecuteDropEvent &rEvt)
BrowserMouseEvent(BrowserDataWin *pWin, const MouseEvent &rEvt)
virtual void StateChanged(StateChangedType nStateChange) override
virtual void Resize() override
virtual void dispose() override
virtual sal_Int32 GetSelectedColumnCount() const=0
virtual void FillAccessibleStateSetForCell(sal_Int64 &_rStateSet, sal_Int32 _nRow, sal_uInt16 _nColumnPos) const=0
virtual OUString GetRowDescription(sal_Int32 _nRow) const=0
virtual void SelectRow(sal_Int32 _nRow, bool _bSelect=true, bool bExpand=true)=0
virtual bool ConvertPointToColumnHeader(sal_uInt16 &_rnColPos, const Point &_rPoint)=0
virtual sal_Int32 GetRowCount() const=0
virtual vcl::Window * GetWindowInstance()=0
virtual bool ConvertPointToRowHeader(sal_Int32 &_rnRow, const Point &_rPoint)=0
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessibleCell(sal_Int32 _nRow, sal_uInt16 _nColumnPos)=0
virtual sal_uInt16 GetCurrColumn() const=0
virtual void GrabTableFocus()=0
virtual void GetAllSelectedRows(css::uno::Sequence< sal_Int32 > &_rRows) const=0
virtual bool IsRowSelected(sal_Int32 _nRow) const=0
virtual void SelectColumn(sal_uInt16 _nColumnPos, bool _bSelect=true)=0
virtual sal_Int32 GetAccessibleControlCount() const=0
virtual bool ConvertPointToCellAddress(sal_Int32 &_rnRow, sal_uInt16 &_rnColPos, const Point &_rPoint)=0
virtual tools::Rectangle calcHeaderRect(bool _bIsColumnBar, bool _bOnScreen=true)=0
virtual bool HasRowHeader() const=0
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessibleRowHeader(sal_Int32 _nRow)=0
virtual tools::Rectangle GetFieldRectPixel(sal_Int32 _nRow, sal_uInt16 _nColumnPos, bool _bIsHeader, bool _bOnScreen)=0
virtual bool IsCellVisible(sal_Int32 _nRow, sal_uInt16 _nColumnPos) const=0
virtual tools::Rectangle calcTableRect(bool _bOnScreen=true)=0
virtual bool GetGlyphBoundRects(const Point &rOrigin, const OUString &rStr, int nIndex, int nLen, std::vector< tools::Rectangle > &rVector)=0
virtual void GetAllSelectedColumns(css::uno::Sequence< sal_Int32 > &_rColumns) const=0
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessibleControl(sal_Int32 _nIndex)=0
virtual OUString GetColumnDescription(sal_uInt16 _nColumnPos) const=0
virtual OUString GetAccessibleObjectName(AccessibleBrowseBoxObjType _eType, sal_Int32 _nPos=-1) const=0
virtual void SetNoSelection()=0
virtual bool ConvertPointToControlIndex(sal_Int32 &_rnIndex, const Point &_rPoint)=0
virtual sal_Int32 GetSelectedRowCount() const=0
virtual sal_Int32 GetCurrRow() const=0
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessibleColumnHeader(sal_uInt16 _nColumnPos)=0
virtual bool IsColumnSelected(sal_Int32 _nColumnPos) const=0
virtual OUString GetAccessibleCellText(sal_Int32 _nRow, sal_uInt16 _nColumnPos) const=0
virtual void SelectAll()=0
virtual void FillAccessibleStateSet(sal_Int64 &_rStateSet, AccessibleBrowseBoxObjType _eType) const=0
virtual OUString GetAccessibleObjectDescription(AccessibleBrowseBoxObjType _eType, sal_Int32 _nPos=-1) const=0
virtual bool GoToCell(sal_Int32 _nRow, sal_uInt16 _nColumnPos)=0
void SetFont(const vcl::Font &rNewFont)
void SetUpdateMode(bool bUpdate)
tools::Rectangle GetWindowExtentsAbsolute() const
virtual void Command(const CommandEvent &rCEvt)
virtual void MouseButtonDown(const MouseEvent &rMEvt)
vcl::Window * GetAccessibleParentWindow() const
virtual void MouseButtonUp(const MouseEvent &rMEvt)
virtual void KeyInput(const KeyEvent &rKEvt)
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect)
void ToTop(ToTopFlags nFlags=ToTopFlags::NONE)
const vcl::Font & GetFont() const
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessible()
virtual void MouseMove(const MouseEvent &rMEvt)
css::uno::Reference< css::accessibility::XAccessible > GetAccessible(bool bCreate=true)
virtual void Draw(::OutputDevice *pDev, const Point &rPos, SystemTextColorFlags nFlags)
tools::Rectangle GetWindowExtentsRelative(const vcl::Window &rRelativeWindow) const
::std::vector< DataFlavorEx > DataFlavorExVector
#define SFX_ENDOFSELECTION
void Clear(EHistoryType eHistory)
access to selected methods, to be granted to the BrowserColumn
bool m_bScrolledToReachCell
CursorMoveAttempt(sal_Int32 nCol, sal_Int32 nRow, bool bScrolledToReachCell)
bool operator==(const CursorMoveAttempt &r) const
bool operator!=(const CursorMoveAttempt &r) const