43class IcnViewEdit_Impl;
49#define PAINTFLAG_HOR_CENTERED 0x0001
50#define PAINTFLAG_VER_CENTERED 0x0002
68#define LROFFS_WINBORDER 4
69#define TBOFFS_WINBORDER 4
74#define HOR_DIST_BMP_STRING 3
75#define VER_DIST_BMP_STRING 3
79#define DEFAULT_MAX_VIRT_WIDTH 200
80#define DEFAULT_MAX_VIRT_HEIGHT 200
82#define VIEWMODE_MASK (WB_ICON | WB_SMALLICON | WB_DETAILS)
103#define GRID_NOT_FOUND (GridId(ULONG_MAX))
116 std::vector< std::unique_ptr<SvxIconChoiceCtrlEntry> >
maEntries;
177 return ((nVisibleRange*75)/100);
197 std::vector<tools::Rectangle>* pOtherRects
263 void Clear(
bool bInCtor );
266 void InsertEntry( std::unique_ptr<SvxIconChoiceCtrlEntry>,
size_t nPos );
273 bool bAddToSelection =
false
311 bool bKeepPredecessors,
320 const Point* pPos =
nullptr,
321 const OUString* pStr =
nullptr
331 const Size& rBoundingSize
363 std::vector<tools::Rectangle>* pSelectedRectList,
370 std::vector<tools::Rectangle>* pOtherRects
375 bool bInScrollBarEvent=
false
409 bool bKeepHighlightFlags
427 std::unique_ptr<IconChoiceMap>
xRows;
479 void GetMinMapSize( sal_uInt16& rDX, sal_uInt16& rDY )
const;
502 const Size& rSizePixel,
503 sal_uInt16 nGridWidth,
504 sal_uInt16 nGridHeight
sal_uInt16 GetSortListPos(SvxIconChoiceCtrlEntryPtrVec &rList, tools::Long nValue, bool bVertical)
SvxIconChoiceCtrlEntry * pCurEntry
SvxIconChoiceCtrlEntry * GoPageUpDown(SvxIconChoiceCtrlEntry *, bool bDown)
SvxIconChoiceCtrlEntry * SearchCol(sal_uInt16 nCol, sal_uInt16 nTop, sal_uInt16 nBottom, bool bDown, bool bSimple)
SvxIconChoiceCtrl_Impl * pView
SvxIconChoiceCtrlEntry * SearchRow(sal_uInt16 nRow, sal_uInt16 nLeft, sal_uInt16 nRight, bool bRight, bool bSimple)
std::unique_ptr< IconChoiceMap > xRows
SvxIconChoiceCtrlEntry * GoLeftRight(SvxIconChoiceCtrlEntry *, bool bRight)
std::unique_ptr< IconChoiceMap > xColumns
SvxIconChoiceCtrlEntry * GoUpDown(SvxIconChoiceCtrlEntry *, bool bDown)
IcnCursor_Impl(SvxIconChoiceCtrl_Impl *pOwner)
static sal_uLong GetGridCount(const Size &rSizePixel, sal_uInt16 nGridWidth, sal_uInt16 nGridHeight)
void OccupyGrid(GridId nId)
void OccupyGrids(const SvxIconChoiceCtrlEntry *)
IcnGridMap_Impl(SvxIconChoiceCtrl_Impl *pView)
GridId GetGrid(const Point &rDocPos)
tools::Rectangle GetGridRect(GridId)
GridId GetUnoccupiedGrid()
void GetGridCoord(GridId, sal_uInt16 &rGridX, sal_uInt16 &rGridY)
SvxIconChoiceCtrl_Impl * _pView
tools::Rectangle _aLastOccupiedGrid
std::unique_ptr< bool[]> _pGridMap
void GetMinMapSize(sal_uInt16 &rDX, sal_uInt16 &rDY) const
An idle is a timer to be scheduled immediately.
virtual void Start(bool bStartTimer=true) override
Schedules the task for execution.
const Point & GetOrigin() const
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
void SetUpdateMode(bool bUpdate)
void ClearSelectedRectList()
std::unique_ptr< SvxIconChoiceCtrlColumnInfoMap > m_pColumns
void Scroll(tools::Long nDeltaX, tools::Long nDeltaY)
VclPtr< ScrollBarBox > aScrBarBox
VclPtr< SvtIconChoiceCtrl > pView
SvxIconChoiceCtrl_Impl & operator=(const SvxIconChoiceCtrl_Impl &)=delete
void SetStyle(WinBits nWinStyle)
void PaintEntry(SvxIconChoiceCtrlEntry *, const Point &, vcl::RenderContext &rRenderContext)
bool bHighlightFramePressed
void SelectRange(SvxIconChoiceCtrlEntry const *pStart, SvxIconChoiceCtrlEntry const *pEnd, bool bAdd)
void DeselectAllBut(SvxIconChoiceCtrlEntry const *)
SvxIconChoiceCtrlEntry * GetCurEntry() const
void ShowFocus(tools::Rectangle const &rRect)
SelectionMode eSelectionMode
ImplSVEvent * nUserEventAdjustScrBars
std::unique_ptr< IcnCursor_Impl > pImpCursor
tools::Long nMaxVirtHeight
bool MouseMove(const MouseEvent &)
::vcl::IAccessibleFactory & GetAccessibleFactory()
tools::Long nMaxBoundHeight
const tools::Rectangle & GetEntryBoundRect(SvxIconChoiceCtrlEntry *)
VclPtr< ScrollBar > aHorSBar
bool IsMnemonicChar(sal_Unicode cChar, sal_uLong &rPos) const
bool IsAutoArrange() const
tools::Rectangle CalcFocusRect(SvxIconChoiceCtrlEntry *)
tools::Rectangle CalcTextRect(SvxIconChoiceCtrlEntry *, const Point *pPos=nullptr, const OUString *pStr=nullptr)
SvxIconChoiceCtrlEntry * pCurHighlightFrame
void ImpArrange(bool bKeepPredecessors)
void SelectRect(SvxIconChoiceCtrlEntry *pEntry1, SvxIconChoiceCtrlEntry *pEntry2, bool bAdd, std::vector< tools::Rectangle > *pOtherRects)
bool KeyInput(const KeyEvent &)
void CheckBoundingRects()
void SetPositionMode(SvxIconChoiceCtrlPositionMode)
GridId GetPredecessorGrid(const Point &rDocPos) const
static void PaintEmphasis(const tools::Rectangle &rRect1, bool bSelected, vcl::RenderContext &rRenderContext)
tools::Long nVerSBarWidth
tools::Rectangle GetOutputRect() const
::vcl::AccessibleFactoryAccess aAccFactory
void MakeVisible(const tools::Rectangle &rDocPos, bool bInScrollBarEvent=false)
void SetGrid(const Size &)
~SvxIconChoiceCtrl_Impl()
void DrawHighlightFrame(vcl::RenderContext &rRenderContext, const tools::Rectangle &rBmpRect)
void SetColumn(sal_uInt16 nIndex, const SvxIconChoiceCtrlColumnInfo &)
void SetEntryPos(SvxIconChoiceCtrlEntry *pEntry, const Point &rPos)
SvxIconChoiceCtrlEntry * pAnchor
void SetBoundingRect_Impl(SvxIconChoiceCtrlEntry *pEntry, const Point &rPos, const Size &rBoundingSize)
tools::Long CalcBoundingWidth() const
Size CalcBoundingSize() const
tools::Rectangle CalcBmpRect(SvxIconChoiceCtrlEntry *, const Point *pPos=nullptr)
void SetEntryTextMode(SvxIconChoiceCtrlTextMode, SvxIconChoiceCtrlEntry *pEntry)
void RemoveEntry(size_t nPos)
SvxIconChoiceCtrl_Impl(const SvxIconChoiceCtrl_Impl &)=delete
const Size & GetItemSize(IcnViewFieldType) const
DECL_LINK(ScrollLeftRightHdl, ScrollBar *, void)
size_t GetEntryCount() const
void InsertEntry(std::unique_ptr< SvxIconChoiceCtrlEntry >, size_t nPos)
DECL_LINK(AutoArrangeHdl, Timer *, void)
bool RequestHelp(const HelpEvent &rHEvt)
SvxIconChoiceCtrlEntry * GetEntry(const Point &rDocPos, bool bHit=false)
void ToggleSelection(SvxIconChoiceCtrlEntry *)
void ToTop(SvxIconChoiceCtrlEntry *)
std::vector< std::unique_ptr< SvxIconChoiceCtrlEntry > > maEntries
tools::Rectangle CalcMaxTextRect(const SvxIconChoiceCtrlEntry *pEntry) const
SvxIconChoiceCtrlPositionMode ePositionMode
tools::Rectangle aCurSelectionRect
void PaintItem(const tools::Rectangle &rRect, IcnViewFieldType eItem, SvxIconChoiceCtrlEntry *pEntry, sal_uInt16 nPaintFlags, vcl::RenderContext &rRenderContext)
void FindBoundingRect(SvxIconChoiceCtrlEntry *pEntry)
void SetEntryPredecessor(SvxIconChoiceCtrlEntry *pEntry, SvxIconChoiceCtrlEntry *pPredecessor)
void SetCursor_Impl(SvxIconChoiceCtrlEntry *pOldCursor, SvxIconChoiceCtrlEntry *pNewCursor, bool bMod1, bool bShift)
VclPtr< ScrollBar > aVerSBar
void Command(const CommandEvent &rCEvt)
void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect)
void Arrange(bool bKeepPredecessors, tools::Long nSetMaxVirtWidth, tools::Long nSetMaxVirtHeight)
void SelectEntry(SvxIconChoiceCtrlEntry *, bool bSelect, bool bAddToSelection=false)
tools::Long nHorSBarHeight
tools::Long nMaxVirtWidth
void DrawFocusRect(vcl::RenderContext &rRenderContext)
void AdjustVirtSize(const tools::Rectangle &)
sal_Int32 GetSelectionCount() const
void SetSelectionMode(SelectionMode eMode)
void EntrySelected(SvxIconChoiceCtrlEntry *pEntry, bool bSelect)
SvxIconChoiceCtrlTextMode eTextMode
std::unique_ptr< IcnGridMap_Impl > pGridMap
DECL_LINK(VisRectChangedHdl, Timer *, void)
void SetEntryHighlightFrame(SvxIconChoiceCtrlEntry *pEntry, bool bKeepHighlightFlags)
SvxIconChoiceCtrlEntry * pHead
void ClipAtVirtOutRect(tools::Rectangle &rRect) const
void RepaintSelectedEntries()
void SetCursor(SvxIconChoiceCtrlEntry *)
static tools::Long GetScrollBarPageSize(tools::Long nVisibleRange)
SvxIconChoiceCtrlEntry * GetEntry(size_t nPos) const
void RecalcAllBoundingRectsSmart()
bool MouseButtonDown(const MouseEvent &)
DECL_LINK(DocRectChangedHdl, Timer *, void)
static bool IsBoundingRectValid(const tools::Rectangle &rRect)
void ToDocPos(Point &rPosPixel)
void CallEventListeners(VclEventId nEvent, void *pData)
DECL_LINK(ScrollUpDownHdl, ScrollBar *, void)
sal_Int32 nSelectionCount
void ShowCursor(bool bShow)
void MakeEntryVisible(SvxIconChoiceCtrlEntry *pEntry, bool bBound=true)
SvxIconChoiceCtrlEntry * pCursor
DrawTextFlags nCurTextDrawFlags
tools::Long CalcBoundingHeight() const
tools::Long GetScrollBarLineSize() const
static bool IsOver(std::vector< tools::Rectangle > *pSelectedRectList, const tools::Rectangle &rEntryBoundRect)
SvxIconChoiceCtrlEntry * pHdlEntry
void AddSelectedRect(const tools::Rectangle &)
void SetOrigin(const Point &)
DECL_LINK(CallSelectHdlHdl, Timer *, void)
bool HandleScrollCommand(const CommandEvent &rCmd)
SvxIconChoiceCtrlEntry * FindEntryPredecessor(SvxIconChoiceCtrlEntry *pEntry, const Point &)
SvxIconChoiceCtrlEntry * GetEntry(size_t nPos)
bool MouseButtonUp(const MouseEvent &)
void PositionScrollBars(tools::Long nRealWidth, tools::Long nRealHeight)
void SetDefaultTextSize()
DECL_LINK(UserEventHdl, void *, void)
sal_Int32 GetEntryListPos(SvxIconChoiceCtrlEntry const *) const
void Center(SvxIconChoiceCtrlEntry *pEntry) const
std::vector< SvxIconChoiceCtrlEntry * > maZOrderList
void InvalidateEntry(SvxIconChoiceCtrlEntry *)
bool GetUpdateMode() const
SvxIconChoiceCtrlEntry * GetFirstSelectedEntry() const
const SvxIconChoiceCtrlColumnInfo * GetColumn(sal_uInt16 nIndex) const
std::vector< tools::Rectangle > aSelectedRectList
void InvalidateBoundingRect(tools::Rectangle &rRect)
const MapMode & GetMapMode() const
#define DBG_ASSERT(sCon, aError)
std::map< sal_uInt16, std::unique_ptr< SvxIconChoiceCtrlColumnInfo > > SvxIconChoiceCtrlColumnInfoMap
std::vector< SvxIconChoiceCtrlEntry * > SvxIconChoiceCtrlEntryPtrVec
std::map< sal_uInt16, SvxIconChoiceCtrlEntryPtrVec > IconChoiceMap
SvxIconChoiceCtrlPositionMode
SvxIconChoiceCtrlTextMode
constexpr std::enable_if_t< std::is_signed_v< T >, std::make_unsigned_t< T > > make_unsigned(T value)