22#include <osl/diagnose.h>
47#define DRAWTEXT_FLAGS_SMALLICON (DrawTextFlags::Left|DrawTextFlags::EndEllipsis|DrawTextFlags::Clip)
49#define EVENTID_SHOW_CURSOR (reinterpret_cast<void*>(1))
50#define EVENTID_ADJUST_SCROLLBARS (reinterpret_cast<void*>(2))
59 aAutoArrangeIdle(
"svtools::SvxIconChoiceCtrl_Impl aAutoArrangeIdle" ),
60 aDocRectChangedIdle(
"svtools::SvxIconChoiceCtrl_Impl aDocRectChangedIdle" ),
61 aVisRectChangedIdle(
"svtools::SvxIconChoiceCtrl_Impl aVisRectChangedIdle" ),
62 aCallSelectHdlIdle(
"svtools::SvxIconChoiceCtrl_Impl aCallSelectHdlIdle" ),
63 aImageSize( 32 * pCurView->GetDPIScaleFactor(), 32 * pCurView->GetDPIScaleFactor()),
66 pCurHighlightFrame(nullptr), bHighlightFramePressed(false), pHead(nullptr), pCursor(nullptr),
95 Size gridSize(100,70);
170 Scroll( 0, pScrollBar->GetDelta() );
176 Scroll( pScrollBar->GetDelta(), 0 );
188 auto pEntry = pEntry1.get();
193 maEntries.push_back( std::move(pEntry1) );
216 if( !aOutputArea.
Overlaps( pEntry->aRect ) )
244 for(
size_t nCur = 0; nCur <
nCount; nCur++ )
324 for(
size_t nCur = 0; nCur <
nCount; nCur++ )
347 aRealOutputSize,
static_cast<sal_uInt16
>(
nGridDX),
static_cast<sal_uInt16
>(
nGridDY) );
374 if( !(nWidthOffs || nHeightOffs) )
394 DBG_ASSERT(!
pHead,
"SvxIconChoiceCtrl_Impl::InitPredecessors() >> Already initialized");
399 for(
size_t nCur = 1; nCur <=
nCount; nCur++ )
423 for(
size_t nCur = 0; nCur <
nCount; nCur++ )
435 if ( nSetMaxVirtWidth != 0 )
440 if ( nSetMaxVirtHeight != 0 )
450 static const Point aEmptyPoint;
460 if( !bKeepPredecessors )
480#if defined(OV_DRAWGRID)
485 Size aXSize(GetOutputSizePixel());
491 rRenderContext.
DrawLine(aStart, aEnd);
498 rRenderContext.
DrawLine(aStart, aEnd);
507 rRenderContext.
DrawLine(aStart, aEnd);
515 rRenderContext.
DrawLine(aStart, aEnd);
547 std::vector< SvxIconChoiceCtrlEntry* > aNewZOrderList;
548 std::vector< SvxIconChoiceCtrlEntry* > aPaintedEntries;
559 aPaintedEntries.push_back(pEntry);
562 aNewZOrderList.push_back(pEntry);
570 rRenderContext.
Pop();
580 for (
size_t nCur = 0; nCur <
nCount; nCur++)
601 bool bHandled =
true;
636 aRect.
Union( aTempRect );
730 bool bHandled =
false;
803 bool bDeselectAll =
false;
806 if( !bMod1 && !bShift )
808 else if( bShift && !bMod1 && !
pAnchor )
811 pFilterEntry = pOldCursor;
819 if( bMod1 && !bShift )
854 if ( pNewCursor != pOldCursor )
863 bool bKeyUsed =
true;
945 if( bMod1 || bShift )
1045 Point aPos( 0, nRealHeight );
1052 aPos.
setX( nRealWidth ); aPos.
setY( 0 );
1066 Size aOSize(
pView->Control::GetOutputSizePixel() );
1076 if( nRealWidth > nVirtWidth )
1077 nVisibleWidth = nVirtWidth + aOrigin.
X();
1079 nVisibleWidth = nRealWidth;
1082 if( nRealHeight > nVirtHeight )
1083 nVisibleHeight = nVirtHeight + aOrigin.
Y();
1085 nVisibleHeight = nRealHeight;
1092 sal_uInt16 nResult = 0;
1096 if( !bNoVerSBar && (bVerSBar || ( nVirtHeight > nVisibleHeight)) )
1101 if( nRealWidth > nVirtWidth )
1102 nVisibleWidth = nVirtWidth + aOrigin.
X();
1104 nVisibleWidth = nRealWidth;
1107 if( !bNoHorSBar && (bHorSBar || (nVirtWidth > nVisibleWidth)) )
1112 if( nRealHeight > nVirtHeight )
1113 nVisibleHeight = nVirtHeight + aOrigin.
Y();
1115 nVisibleHeight = nRealHeight;
1118 if( !(nResult & 0x0001) &&
1119 ( !bNoVerSBar && ((nVirtHeight > nVisibleHeight) || bVerSBar)) )
1124 if( nRealWidth > nVirtWidth )
1125 nVisibleWidth = nVirtWidth + aOrigin.
X();
1127 nVisibleWidth = nRealWidth;
1141 if( nResult & 0x0001 )
1157 if( nResult & 0x0001 )
1166 if( nResult & 0x0002 )
1178 if( nResult & 0x0002 )
1182 if( (nResult & (0x0001|0x0002)) == (0x0001|0x0002) )
1195 const Size& rSize =
pView->Control::GetOutputSizePixel();
1221 for(
size_t nCur = 0; nCur <
nCount; nCur++ )
1225 if( nRight > nWidth )
1227 if( nRight > nMostRight )
1228 nMostRight = nRight;
1235 aRange.
Max() = nMostRight - 1;
1259 for(
size_t nCur = 0; nCur <
nCount; nCur++ )
1263 if( nBottom > nHeight )
1265 if( nBottom > nDeepest )
1273 aRange.
Max() = nDeepest - 1;
1343 bool bSolidTextRect =
false;
1350 bSolidTextRect =
true;
1356 rRenderContext.
DrawRect(rTextRect);
1393 bool bSelected =
false;
1426 rRenderContext.
SetFont(aNewFont);
1433 bool bResetClipRegion =
false;
1440 bResetClipRegion =
true;
1452 if ( bShowSelection )
1454 bActiveSelection ? 1 : 2,
false,
true,
false);
1465 rRenderContext.
Pop();
1466 if (bResetClipRegion)
1478 bool bAdjustVirtSize =
false;
1479 if( rPos != aBoundRect.
TopLeft() )
1485 aBoundRect.
SetPos( rPos );
1486 pEntry->
aRect = aBoundRect;
1488 bAdjustVirtSize =
true;
1490 if( bAdjustVirtSize )
1570 return pEntry->
aRect;
1595 OSL_FAIL(
"IconView: Viewmode not set");
1601 const Point* pEntryPos,
const OUString* pStr )
1603 OUString aEntryText;
1612 aBound.
SetPos( *pEntryPos );
1656 nWidth += nStringWidth;
1672 nHeight += nStringHeight;
1704 for( nCur = 0; nCur <
nCount; nCur++ )
1724 DBG_ASSERT(pEntry->
pflink&&pEntry->
pblink,
"SvxIconChoiceCtrl_Impl::RecalcAllBoundingRect > Bad link(s)");
1819 bool bHor = aDocSize.
Width() > aVisSize.
Width();
1851 if(
pData->GetDelta() < 0 )
1856 nScrollDY =
pData->GetNotchDelta() *
static_cast<tools::Long>(nScrollLines);
1877 if( nScrollDX || nScrollDY )
1921 if( rRect.
Top() < 0 )
1923 if( rRect.
Left() < 0 )
1939 if( aOutputArea.
Contains( aVirtRect ) )
1943 if( aVirtRect.
Top() < aOutputArea.
Top() )
1946 nDy = aVirtRect.
Top() - aOutputArea.
Top();
1957 if( aVirtRect.
Left() < aOutputArea.
Left() )
1960 nDx = aVirtRect.
Left() - aOutputArea.
Left();
1962 else if( aVirtRect.
Right() > aOutputArea.
Right() )
1965 nDx = aVirtRect.
Right() - aOutputArea.
Right();
1972 aOutputArea.
SetPos( aOrigin );
1989 pView->Control::Scroll( -nDx, -nDy, aOutputArea,
2044 for(
size_t nCur = 0; nCur <
nCount; nCur++ )
2047 if( pEntry != pThisEntryNot && pEntry->
IsSelected() )
2075 Size aSize( rSize );
2104 aBoundRect = pEntry->
aRect;
2114 if( aBoundRect.
Top() > aBoundRect.
Bottom())
2120 if( aBoundRect.
Left() > aBoundRect.
Right())
2130 if( aBoundRect.
Left() > aBoundRect.
Right() )
2211 aBoundRect.
Left(), aBoundRect.
Top() - 1, aBoundRect.
Right() - 1,
2224 nDelta = aSize.
Height() / 4;
2231 bool bAdd, std::vector<tools::Rectangle>* pOtherRects )
2233 DBG_ASSERT(pEntry1 && pEntry2,
"SelectEntry: Invalid Entry-Ptr");
2240 std::vector<tools::Rectangle>* pOtherRects )
2256 bool bCalcOverlap = (bAdd && pOtherRects && !pOtherRects->empty());
2258 bool bResetClipRegion =
false;
2261 bResetClipRegion =
true;
2276 bOverlaps =
IsOver( pOtherRects, aBoundRect );
2279 bool bOver = aRect.
Overlaps( aBoundRect );
2281 if( bOver && !bOverlaps )
2321 else if( !bOver && bSelected )
2328 if( !bAlreadySelectingRect )
2332 if( bResetClipRegion )
2343 sal_uLong nFirst = std::min( nFront, nBack );
2344 sal_uLong nLast = std::max( nFront, nBack );
2352 for (
i=0;
i<nFirst;
i++ )
2361 for (
i=nFirst;
i<=nLast;
i++ )
2373 for ( ;
i<nEnd;
i++ )
2384 const sal_uInt16
nCount = pRectList->size();
2385 for( sal_uInt16 nCur = 0; nCur <
nCount; nCur++ )
2397 DBG_ASSERT(pEntry1 && pEntry2,
"SelectEntry: Invalid Entry-Ptr");
2417 aAutoArrangeIdle.Stop();
2418 Arrange( IsAutoArrange(), 0, 0 );
2423 aVisRectChangedIdle.Stop();
2428 aDocRectChangedIdle.Stop();
2481 aLineInfo.SetDashLen(1);
2482 aLineInfo.SetDotLen(1);
2483 aLineInfo.SetDistance(1);
2484 aLineInfo.SetDotCount(1);
2494 for (
size_t i = 0;
i < nEntryCount; ++
i )
2512 nUserEventAdjustScrBars =
nullptr;
2554 for(
size_t nCur = 0; nCur <
nCount; nCur++ )
2575 OSL_FAIL(
"SvxIconChoiceCtrl_Impl::GetFirstSelectedEntry > infinite loop!");
2586 for(
size_t nCur = 0; nCur <
nCount; nCur++ )
2602 return pEntry->
nPos;
2636 Size aOSize(
pView->Control::GetOutputSizePixel() );
2662 for(
size_t nCur = 0; nCur <
nCount; nCur++ )
2680 if( pEntry == pPredecessor )
2689 if( nPos1 == (nPos2 + 1) )
2698 if( !pPredecessor &&
pHead == pEntry )
2701 bool bSetHead =
false;
2707 if( pEntry ==
pHead )
2712 if( pEntry != pPredecessor )
2723 const Point& rPosTopLeft )
2725 Point aPos( rPosTopLeft );
2739 for(
GridId nCur = 0; nCur < nGrid; nCur++ )
2754 if( nGridX > nMaxCol )
2758 GridId nGrid = (nGridY * nGridsX) + nGridX;
2760 if( rPos.
X() < nMiddle )
2785 if ( ( !aTextRect.
Contains( aPos ) || aEntryText.isEmpty() ) && sQuickHelpText.isEmpty() )
2793 if ( aOptTextRect != aTextRect || !sQuickHelpText.isEmpty() )
2802 aOptTextRect.
SetPos( aPt );
2804 if ( !sQuickHelpText.isEmpty() )
2805 sHelpText = sQuickHelpText;
2807 sHelpText = aEntryText;
2820 m_pColumns->insert(std::make_pair(
nIndex, std::unique_ptr<SvxIconChoiceCtrlColumnInfo>(pInfo)));
2838 return it->second.get();
2862 bool bKeepHighlightFlags )
2867 if( !bKeepHighlightFlags )
2873 aInvalidationRect.
expand(5);
2882 aInvalidationRect.
expand(5);
2909 pHdlEntry =
nullptr;
const vcl::I18nHelper & GetUILocaleI18nHelper() const
const StyleSettings & GetStyleSettings() const
static const AllSettings & GetSettings()
Gets the application's settings.
static ImplSVEvent * PostUserEvent(const Link< void *, void > &rLink, void *pCaller=nullptr, bool bReferenceLink=false)
Post a user event to the default window.
static void RemoveUserEvent(ImplSVEvent *nUserEvent)
Remove user event based on event ID.
sal_uInt8 GetBlue() const
sal_uInt8 GetGreen() const
CommandEventId GetCommand() const
const CommandWheelData * GetWheelData() const
const CommandScrollData * GetAutoScrollData() const
void DrawHighlightFrame(const tools::Rectangle &rRect, DrawHighlightFrameStyle nStyle)
HelpEventMode GetMode() const
const Point & GetMousePosPixel() const
static void ShowQuickHelp(vcl::Window *pParent, const tools::Rectangle &rScreenRect, const OUString &rHelpText, QuickHelpFlags nStyle=QuickHelpFlags::NONE)
static sal_uLong GetGridCount(const Size &rSizePixel, sal_uInt16 nGridWidth, sal_uInt16 nGridHeight)
virtual void Start(bool bStartTimer=true) override
Schedules the task for execution.
sal_Unicode GetCharCode() const
const vcl::KeyCode & GetKeyCode() const
void SetOrigin(const Point &rOrigin)
const Point & GetOrigin() const
sal_uInt16 GetModifier() const
sal_uInt16 GetClicks() const
const Point & GetPosPixel() const
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
const vcl::Font & GetFont() const
void DrawPolyLine(const tools::Polygon &rPoly)
Render the given polygon as a line stroke.
void SetFont(const vcl::Font &rNewFont)
void DrawRect(const tools::Rectangle &rRect)
void DrawLine(const Point &rStartPt, const Point &rEndPt)
const Wallpaper & GetBackground() const
bool IsClipRegion() const
const Color & GetLineColor() const
const MapMode & GetMapMode() const
void Push(vcl::PushFlags nFlags=vcl::PushFlags::ALL)
void DrawText(const Point &rStartPt, const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1, std::vector< tools::Rectangle > *pVector=nullptr, OUString *pDisplayText=nullptr, const SalLayoutGlyphs *pLayoutCache=nullptr)
const AllSettings & GetSettings() const
const Color & GetFillColor() const
constexpr tools::Long Y() const
void setX(tools::Long nX)
void setY(tools::Long nY)
tools::Long AdjustY(tools::Long nVertMove)
tools::Long AdjustX(tools::Long nHorzMove)
constexpr tools::Long X() const
constexpr tools::Long Height() const
tools::Long AdjustHeight(tools::Long n)
void setWidth(tools::Long nWidth)
tools::Long AdjustWidth(tools::Long n)
void setHeight(tools::Long nHeight)
constexpr tools::Long Width() const
sal_Int32 GetScrollBarSize() const
const Color & GetFieldTextColor() const
const Color & GetFieldColor() const
const Color & GetDeactiveColor() const
const vcl::Font & GetFieldFont() const
const Color & GetWindowTextColor() const
const Color & GetHighlightColor() const
const Color & GetFaceColor() const
const Color & GetHighlightTextColor() const
void SetPointFont(const vcl::Font &rFont)
void SetBackground(const Wallpaper &rWallpaper)
void SetEntryTextMode(SvxIconChoiceCtrlTextMode eMode, SvxIconChoiceCtrlEntry *pEntry)
sal_Int32 GetEntryCount() const
SvxIconChoiceCtrlEntry * GetEntry(sal_Int32 nPos) const
static OUString GetEntryText(SvxIconChoiceCtrlEntry const *pEntry)
void CallImplEventListeners(VclEventId nEvent, void *pData)
static void DrawEntryImage(SvxIconChoiceCtrlEntry const *pEntry, const Point &rPos, OutputDevice &rDev)
tools::Long GetWidth() const
void ClearFlags(SvxIconViewFlags nMask)
void SetBacklink(SvxIconChoiceCtrlEntry *pA)
SvxIconViewFlags GetFlags() const
SvxIconChoiceCtrlEntry * pblink
SvxIconChoiceCtrlTextMode eTextMode
const OUString & GetQuickHelpText() const
SvxIconChoiceCtrlTextMode GetTextMode() const
void AssignFlags(SvxIconViewFlags _nFlags)
SvxIconChoiceCtrlEntry * pflink
void SetFlags(SvxIconViewFlags nMask)
tools::Rectangle aGridRect
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
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 &)
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
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
size_t GetEntryCount() const
void InsertEntry(std::unique_ptr< SvxIconChoiceCtrlEntry >, size_t nPos)
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)
friend class IcnCursor_Impl
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 EntrySelected(SvxIconChoiceCtrlEntry *pEntry, bool bSelect)
SvxIconChoiceCtrlTextMode eTextMode
std::unique_ptr< IcnGridMap_Impl > pGridMap
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)
void RecalcAllBoundingRectsSmart()
bool MouseButtonDown(const MouseEvent &)
static bool IsBoundingRectValid(const tools::Rectangle &rRect)
void ToDocPos(Point &rPosPixel)
void CallEventListeners(VclEventId nEvent, void *pData)
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 &)
bool HandleScrollCommand(const CommandEvent &rCmd)
SvxIconChoiceCtrlEntry * FindEntryPredecessor(SvxIconChoiceCtrlEntry *pEntry, const Point &)
friend class IcnGridMap_Impl
bool MouseButtonUp(const MouseEvent &)
void PositionScrollBars(tools::Long nRealWidth, tools::Long nRealHeight)
void SetDefaultTextSize()
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)
void SetPriority(TaskPriority ePriority)
void SetInvokeHandler(const Link< Timer *, void > &rLink)
A thin wrapper around rtl::Reference to implement the acquire and dispose semantics we want for refer...
const Color & GetColor() const
bool IsScrollable() const
void SetFillColor(const Color &)
void SetColor(const Color &)
const Color & GetFillColor() const
bool MatchMnemonic(std::u16string_view rString, sal_Unicode cMnemonicChar) const
sal_uInt16 GetCode() const
Point OutputToScreenPixel(const Point &rPos) const
tools::Rectangle GetTextRect(const tools::Rectangle &rRect, const OUString &rStr, DrawTextFlags nStyle=DrawTextFlags::WordBreak, TextRectInfo *pInfo=nullptr, const vcl::ITextLayout *_pTextLayout=nullptr) const
const Wallpaper & GetBackground() const
tools::Long GetTextWidth(const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1, vcl::text::TextLayoutCache const *=nullptr, SalLayoutGlyphs const *const pLayoutCache=nullptr) const
Width of the text.
float GetDPIScaleFactor() const
void StartTracking(StartTrackingFlags nFlags=StartTrackingFlags::NONE)
void EndTracking(TrackingEventFlags nFlags=TrackingEventFlags::NONE)
virtual void SetSizePixel(const Size &rNewSize)
virtual Point GetPosPixel() const
tools::Long GetTextHeight() const
Height where any character of the current font fits; in logic coordinates.
const AllSettings & GetSettings() const
void Show(bool bVisible=true, ShowFlags nFlags=ShowFlags::NONE)
const MapMode & GetMapMode() const
::OutputDevice const * GetOutDev() const
Point PixelToLogic(const Point &rDevicePt) const
virtual Size GetSizePixel() const
Size GetOutputSizePixel() const
void StartAutoScroll(StartAutoScrollFlags nFlags)
void Invalidate(InvalidateFlags nFlags=InvalidateFlags::NONE)
virtual void SetPosPixel(const Point &rNewPos)
Point ScreenToOutputPixel(const Point &rPos) const
void SetTextColor(const Color &rColor)
constexpr ::Color COL_WHITE(0xFF, 0xFF, 0xFF)
constexpr ::Color COL_BLACK(0x00, 0x00, 0x00)
constexpr ::Color COL_TRANSPARENT(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
#define COMMAND_WHEEL_PAGESCROLL
#define DBG_ASSERT(sCon, aError)
IMPL_LINK_NOARG(SvxIconChoiceCtrl_Impl, AutoArrangeHdl, Timer *, void)
static tools::Rectangle GetHotSpot(const tools::Rectangle &rRect)
IMPL_LINK(SvxIconChoiceCtrl_Impl, ScrollUpDownHdl, ScrollBar *, pScrollBar, void)
constexpr auto DRAWTEXT_FLAGS_ICON
#define DRAWTEXT_FLAGS_SMALLICON
#define EVENTID_SHOW_CURSOR
#define EVENTID_ADJUST_SCROLLBARS
#define HOR_DIST_BMP_STRING
#define VER_DIST_BMP_STRING
#define DEFAULT_MAX_VIRT_WIDTH
std::map< sal_uInt16, std::unique_ptr< SvxIconChoiceCtrlColumnInfo > > SvxIconChoiceCtrlColumnInfoMap
#define DEFAULT_MAX_VIRT_HEIGHT
#define PAINTFLAG_HOR_CENTERED
#define PAINTFLAG_VER_CENTERED
#define WB_NOASYNCSELECTHDL
SvxIconChoiceCtrlPositionMode
#define WB_NODRAGSELECTION
#define WB_HIGHLIGHTFRAME
SvxIconChoiceCtrlTextMode
constexpr sal_uInt16 KEY_RETURN
constexpr sal_uInt16 KEY_F2
constexpr sal_uInt16 KEY_HOME
constexpr sal_uInt16 KEY_ADD
constexpr sal_uInt16 KEY_LEFT
constexpr sal_uInt16 KEY_PAGEDOWN
constexpr sal_uInt16 KEY_COMMA
constexpr sal_uInt16 KEY_UP
constexpr sal_uInt16 KEY_F10
constexpr sal_uInt16 KEY_A
constexpr sal_uInt16 KEY_RIGHT
constexpr sal_uInt16 KEY_F8
constexpr sal_uInt16 KEY_DOWN
constexpr sal_uInt16 KEY_SPACE
constexpr sal_uInt16 KEY_PAGEUP
constexpr sal_uInt16 KEY_SUBTRACT
constexpr sal_uInt16 KEY_DIVIDE
constexpr sal_uInt16 KEY_END
#define LINK(Instance, Class, Member)
std::unique_ptr< sal_Int32[]> pData
tools::Long const nBorder
@ LOWEST
Low, very idle cleanup tasks.
@ HIGH_IDLE
Important idle events to be run before processing drawing events.
@ NoChildren
The child windows are not invalidated.
WinBits const WB_NOPOINTERFOCUS
WinBits const WB_NOHIDESELECTION