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 contnr SvxIconChoiceCtrl_Impl AutoArrange" ),
60 aDocRectChangedIdle (
"svtools contnr SvxIconChoiceCtrl_Impl DocRectChanged" ),
61 aVisRectChangedIdle (
"svtools contnr SvxIconChoiceCtrl_Impl VisRectChanged" ),
62 aCallSelectHdlIdle (
"svtools contnr SvxIconChoiceCtrl_Impl CallSelectHdl" ),
63 aImageSize( 32 * pCurView->GetDPIScaleFactor(), 32 * pCurView->GetDPIScaleFactor()),
66 pCurHighlightFrame(nullptr), bHighlightFramePressed(false), pHead(nullptr), pCursor(nullptr),
99 Size gridSize(100,70);
138 if( nMaxVirtWidth <= 0 )
174 Scroll( 0, pScrollBar->GetDelta() );
180 Scroll( pScrollBar->GetDelta(), 0 );
192 auto pEntry = pEntry1.get();
197 maEntries.push_back( std::move(pEntry1) );
220 if( !aOutputArea.
IsOver( pEntry->aRect ) )
248 for(
size_t nCur = 0; nCur < nCount; nCur++ )
328 for(
size_t nCur = 0; nCur < nCount; nCur++ )
351 aRealOutputSize, static_cast<sal_uInt16>(
nGridDX), static_cast<sal_uInt16>(
nGridDY) );
352 if( nGridCount < nCount )
378 if( !(nWidthOffs || nHeightOffs) )
398 DBG_ASSERT(!
pHead,
"SvxIconChoiceCtrl_Impl::InitPredecessors() >> Already initialized");
403 for(
size_t nCur = 1; nCur <= nCount; nCur++ )
427 for(
size_t nCur = 0; nCur < nCount; nCur++ )
439 if ( nSetMaxVirtWidth != 0 )
444 if ( nSetMaxVirtHeight != 0 )
454 static Point aEmptyPoint;
464 if( !bKeepPredecessors )
474 if( (
nWinBits & WB_SMART_ARRANGE) && aCurOutputArea.
TopLeft() != aEmptyPoint )
484 #if defined(OV_DRAWGRID)
489 Size aXSize(GetOutputSizePixel());
495 rRenderContext.
DrawLine(aStart, aEnd);
502 rRenderContext.
DrawLine(aStart, aEnd);
511 rRenderContext.
DrawLine(aStart, aEnd);
519 rRenderContext.
DrawLine(aStart, aEnd);
551 std::vector< SvxIconChoiceCtrlEntry* > aNewZOrderList;
552 std::vector< SvxIconChoiceCtrlEntry* > aPaintedEntries;
559 if (rRect.
IsOver(rBoundRect))
563 aPaintedEntries.push_back(pEntry);
566 aNewZOrderList.push_back(pEntry);
574 rRenderContext.
Pop();
584 for (
size_t nCur = 0; nCur < nCount; nCur++)
590 if (aOutRect.
IsOver(rBoundRect))
605 bool bHandled =
true;
640 aRect.
Union( aTempRect );
734 bool bHandled =
false;
807 bool bDeselectAll =
false;
810 if( !bMod1 && !bShift )
812 else if( bShift && !bMod1 && !
pAnchor )
815 pFilterEntry = pOldCursor;
823 if( bMod1 && !bShift )
858 if ( pNewCursor != pOldCursor )
867 bool bKeyUsed =
true;
949 if( bMod1 || bShift )
1049 Point aPos( 0, nRealHeight );
1056 aPos.setX( nRealWidth ); aPos.setY( 0 );
1070 Size aOSize(
pView->Control::GetOutputSizePixel() );
1080 if( nRealWidth > nVirtWidth )
1081 nVisibleWidth = nVirtWidth + aOrigin.X();
1083 nVisibleWidth = nRealWidth;
1086 if( nRealHeight > nVirtHeight )
1087 nVisibleHeight = nVirtHeight + aOrigin.Y();
1089 nVisibleHeight = nRealHeight;
1096 sal_uInt16 nResult = 0;
1100 if( !bNoVerSBar && (bVerSBar || ( nVirtHeight > nVisibleHeight)) )
1105 if( nRealWidth > nVirtWidth )
1106 nVisibleWidth = nVirtWidth + aOrigin.X();
1108 nVisibleWidth = nRealWidth;
1111 if( !bNoHorSBar && (bHorSBar || (nVirtWidth > nVisibleWidth)) )
1116 if( nRealHeight > nVirtHeight )
1117 nVisibleHeight = nVirtHeight + aOrigin.Y();
1119 nVisibleHeight = nRealHeight;
1122 if( !(nResult & 0x0001) &&
1123 ( !bNoVerSBar && ((nVirtHeight > nVisibleHeight) || bVerSBar)) )
1128 if( nRealWidth > nVirtWidth )
1129 nVisibleWidth = nVirtWidth + aOrigin.X();
1131 nVisibleWidth = nRealWidth;
1145 if( nResult & 0x0001 )
1161 if( nResult & 0x0001 )
1170 if( nResult & 0x0002 )
1182 if( nResult & 0x0002 )
1186 if( (nResult & (0x0001|0x0002)) == (0x0001|0x0002) )
1199 const Size& rSize =
pView->Control::GetOutputSizePixel();
1225 for(
size_t nCur = 0; nCur < nCount; nCur++ )
1229 if( nRight > nWidth )
1231 if( nRight > nMostRight )
1232 nMostRight = nRight;
1239 aRange.
Max() = nMostRight - 1;
1263 for(
size_t nCur = 0; nCur < nCount; nCur++ )
1267 if( nBottom > nHeight )
1269 if( nBottom > nDeepest )
1277 aRange.
Max() = nDeepest - 1;
1347 bool bSolidTextRect =
false;
1354 bSolidTextRect =
true;
1360 rRenderContext.
DrawRect(rTextRect);
1397 bool bSelected =
false;
1430 rRenderContext.
SetFont(aNewFont);
1437 bool bResetClipRegion =
false;
1441 if (aOutputArea.
IsOver(aTextRect) || aOutputArea.
IsOver(aBmpRect))
1444 bResetClipRegion =
true;
1456 if ( bShowSelection )
1458 bActiveSelection ? 1 : 2,
false,
true,
false);
1469 rRenderContext.
Pop();
1470 if (bResetClipRegion)
1482 bool bAdjustVirtSize =
false;
1483 if( rPos != aBoundRect.
TopLeft() )
1489 aBoundRect.
SetPos( rPos );
1490 pEntry->
aRect = aBoundRect;
1492 bAdjustVirtSize =
true;
1494 if( bAdjustVirtSize )
1574 return pEntry->
aRect;
1599 OSL_FAIL(
"IconView: Viewmode not set");
1605 const Point* pEntryPos,
const OUString* pStr )
1607 OUString aEntryText;
1616 aBound.
SetPos( *pEntryPos );
1631 aPos.AdjustX((nBoundWidth - aTextSize.Width()) / 2 );
1638 aPos.AdjustY((nBoundHeight - aTextSize.Height()) / 2 );
1660 nWidth += nStringWidth;
1676 nHeight += nStringHeight;
1708 for( nCur = 0; nCur < nCount; nCur++ )
1726 while( nCur != nCount )
1728 DBG_ASSERT(pEntry->
pflink&&pEntry->
pblink,
"SvxIconChoiceCtrl_Impl::RecalcAllBoundingRect > Bad link(s)");
1823 bool bHor = aDocSize.
Width() > aVisSize.Width();
1824 bool bVer = aDocSize.Height() > aVisSize.Height();
1881 if( nScrollDX || nScrollDY )
1925 if( rRect.
Top() < 0 )
1927 if( rRect.
Left() < 0 )
1943 if( aOutputArea.
IsInside( aVirtRect ) )
1947 if( aVirtRect.
Top() < aOutputArea.
Top() )
1950 nDy = aVirtRect.
Top() - aOutputArea.
Top();
1961 if( aVirtRect.
Left() < aOutputArea.
Left() )
1964 nDx = aVirtRect.
Left() - aOutputArea.
Left();
1966 else if( aVirtRect.
Right() > aOutputArea.
Right() )
1969 nDx = aVirtRect.
Right() - aOutputArea.
Right();
1974 aOrigin.AdjustX(nDx );
1975 aOrigin.AdjustY(nDy );
1976 aOutputArea.
SetPos( aOrigin );
1993 pView->Control::Scroll( -nDx, -nDy, aOutputArea,
2048 for(
size_t nCur = 0; nCur < nCount; nCur++ )
2051 if( pEntry != pThisEntryNot && pEntry->
IsSelected() )
2079 Size aSize( rSize );
2108 aBoundRect = pEntry->
aRect;
2113 const_cast<SvxIconChoiceCtrlEntry*>(pEntry) ) );
2118 if( aBoundRect.
Top() > aBoundRect.
Bottom())
2124 if( aBoundRect.
Left() > aBoundRect.
Right())
2134 if( aBoundRect.
Left() > aBoundRect.
Right() )
2196 aOrigin.AdjustY(nDeltaY );
2197 aOrigin.AdjustX(nDeltaX );
2215 aBoundRect.
Left(), aBoundRect.
Top() - 1, aBoundRect.
Right() - 1,
2228 nDelta = aSize.Height() / 4;
2235 bool bAdd, std::vector<tools::Rectangle>* pOtherRects )
2237 DBG_ASSERT(pEntry1 && pEntry2,
"SelectEntry: Invalid Entry-Ptr");
2244 std::vector<tools::Rectangle>* pOtherRects )
2260 bool bCalcOverlap = (bAdd && pOtherRects && !pOtherRects->empty());
2262 bool bResetClipRegion =
false;
2265 bResetClipRegion =
true;
2280 bOverlaps =
IsOver( pOtherRects, aBoundRect );
2283 bool bOver = aRect.
IsOver( aBoundRect );
2285 if( bOver && !bOverlaps )
2312 if( aBoundRect.
IsOver( rRect))
2325 else if( !bOver && bSelected )
2332 if( !bAlreadySelectingRect )
2336 if( bResetClipRegion )
2347 sal_uLong nFirst = std::min( nFront, nBack );
2348 sal_uLong nLast = std::max( nFront, nBack );
2356 for ( i=0; i<nFirst; i++ )
2365 for ( i=nFirst; i<=nLast; i++ )
2377 for ( ; i<nEnd; i++ )
2388 const sal_uInt16
nCount = pRectList->size();
2389 for( sal_uInt16 nCur = 0; nCur < nCount; nCur++ )
2392 if( rBoundRect.
IsOver( rRect ))
2401 DBG_ASSERT(pEntry1 && pEntry2,
"SelectEntry: Invalid Entry-Ptr");
2421 aAutoArrangeIdle.Stop();
2422 Arrange( IsAutoArrange(), 0, 0 );
2427 aVisRectChangedIdle.Stop();
2432 aDocRectChangedIdle.Stop();
2467 sal_uInt16 nColor = ( aBkgColor.GetRed() + aBkgColor.GetGreen() + aBkgColor.GetBlue() ) / 3;
2485 aLineInfo.SetDashLen(1);
2486 aLineInfo.SetDotLen(1);
2487 aLineInfo.SetDistance(1);
2488 aLineInfo.SetDotCount(1);
2498 for (
size_t i = 0;
i < nEntryCount; ++
i )
2516 nUserEventAdjustScrBars =
nullptr;
2558 for(
size_t nCur = 0; nCur < nCount; nCur++ )
2577 if( nCount && pEntry ==
pHead )
2579 OSL_FAIL(
"SvxIconChoiceCtrl_Impl::GetFirstSelectedEntry > infinite loop!");
2590 for(
size_t nCur = 0; nCur < nCount; nCur++ )
2606 return pEntry->
nPos;
2640 Size aOSize(
pView->Control::GetOutputSizePixel() );
2666 for(
size_t nCur = 0; nCur < nCount; nCur++ )
2684 if( pEntry == pPredecessor )
2693 if( nPos1 == (nPos2 + 1) )
2702 if( !pPredecessor &&
pHead == pEntry )
2705 bool bSetHead =
false;
2711 if( pEntry ==
pHead )
2716 if( pEntry != pPredecessor )
2727 const Point& rPosTopLeft )
2729 Point aPos( rPosTopLeft );
2736 if( nGrid >= nCount )
2743 for(
GridId nCur = 0; nCur < nGrid; nCur++ )
2758 if( nGridX > nMaxCol )
2762 GridId nGrid = (nGridY * nGridsX) + nGridX;
2764 if( rPos.X() < nMiddle )
2789 if ( ( !aTextRect.
IsInside( aPos ) || aEntryText.isEmpty() ) && sQuickHelpText.isEmpty() )
2797 if ( aOptTextRect != aTextRect || !sQuickHelpText.isEmpty() )
2806 aOptTextRect.
SetPos( aPt );
2808 if ( !sQuickHelpText.isEmpty() )
2809 sHelpText = sQuickHelpText;
2811 sHelpText = aEntryText;
2824 m_pColumns->insert(std::make_pair(nIndex, std::unique_ptr<SvxIconChoiceCtrlColumnInfo>(pInfo)));
2842 return it->second.get();
2866 bool bKeepHighlightFlags )
2871 if( !bKeepHighlightFlags )
2877 aInvalidationRect.
expand(5);
2886 aInvalidationRect.
expand(5);
2913 pHdlEntry =
nullptr;
void SetEntryPos(SvxIconChoiceCtrlEntry *pEntry, const Point &rPos)
virtual Point GetPosPixel() const
#define LINK(Instance, Class, Member)
void MakeVisible(const tools::Rectangle &rDocPos, bool bInScrollBarEvent=false)
void SetEntryTextMode(SvxIconChoiceCtrlTextMode eMode, SvxIconChoiceCtrlEntry *pEntry)
void DrawText(const Point &rStartPt, const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1, MetricVector *pVector=nullptr, OUString *pDisplayText=nullptr, const SalLayoutGlyphs *pLayoutCache=nullptr)
void CheckBoundingRects()
void DrawHighlightFrame(vcl::RenderContext &rRenderContext, const tools::Rectangle &rBmpRect)
void SetFillColor(const Color &)
const Wallpaper & GetBackground() const
static bool IsOver(std::vector< tools::Rectangle > *pSelectedRectList, const tools::Rectangle &rEntryBoundRect)
const Color & GetDeactiveColor() const
void ShowFocus(tools::Rectangle const &rRect)
SvxIconChoiceCtrl_Impl(const SvxIconChoiceCtrl_Impl &)=delete
std::unique_ptr< IcnGridMap_Impl > pGridMap
tools::Long CalcBoundingWidth() const
void AssignFlags(SvxIconViewFlags _nFlags)
void setWidth(tools::Long nWidth)
static tools::Long GetScrollBarPageSize(tools::Long nVisibleRange)
GridId GetPredecessorGrid(const Point &rDocPos) const
void DeselectAllBut(SvxIconChoiceCtrlEntry const *)
void FindBoundingRect(SvxIconChoiceCtrlEntry *pEntry)
const Color & GetHighlightTextColor() const
std::unique_ptr< ContentProperties > pData
constexpr sal_uInt16 KEY_COMMA
A thin wrapper around rtl::Reference to implement the acquire and dispose semantics we want for refer...
SvxIconChoiceCtrlEntry * GetEntry(const Point &rDocPos, bool bHit=false)
std::unique_ptr< SvxIconChoiceCtrlColumnInfoMap > m_pColumns
void DrawFocusRect(vcl::RenderContext &rRenderContext)
const StyleSettings & GetStyleSettings() const
static const AllSettings & GetSettings()
Gets the application's settings.
constexpr sal_uInt16 KEY_A
const Color & GetFaceColor() const
void AddSelectedRect(const tools::Rectangle &)
Important idle events to be run before processing drawing events.
static void PaintEmphasis(const tools::Rectangle &rRect1, bool bSelected, vcl::RenderContext &rRenderContext)
virtual Size GetSizePixel() const
virtual void SetSizePixel(const Size &rNewSize)
SvxIconChoiceCtrlPositionMode ePositionMode
void SetBoundingRect_Impl(SvxIconChoiceCtrlEntry *pEntry, const Point &rPos, const Size &rBoundingSize)
static tools::Rectangle GetHotSpot(const tools::Rectangle &rRect)
ImplSVEvent * nUserEventAdjustScrBars
void DrawPolyLine(const tools::Polygon &rPoly)
Render the given polygon as a line stroke.
static ImplSVEvent * PostUserEvent(const Link< void *, void > &rLink, void *pCaller=nullptr, bool bReferenceLink=false)
Post a user event to the default window.
const MapMode & GetMapMode() const
sal_uInt16 GetCode() const
#define DEFAULT_MAX_VIRT_HEIGHT
SvxIconChoiceCtrlEntry * pflink
std::vector< SvxIconChoiceCtrlEntry * > maZOrderList
tools::Long nMaxVirtHeight
void MakeEntryVisible(SvxIconChoiceCtrlEntry *pEntry, bool bBound=true)
bool bHighlightFramePressed
#define DEFAULT_MAX_VIRT_WIDTH
const CommandWheelData * GetWheelData() const
const CommandScrollData * GetAutoScrollData() const
constexpr sal_uInt16 KEY_SPACE
constexpr sal_uInt16 KEY_ADD
const vcl::I18nHelper & GetUILocaleI18nHelper() const
std::map< sal_uInt16, std::unique_ptr< SvxIconChoiceCtrlColumnInfo > > SvxIconChoiceCtrlColumnInfoMap
void StartTracking(StartTrackingFlags nFlags=StartTrackingFlags::NONE)
bool MouseMove(const MouseEvent &)
friend class IcnCursor_Impl
const vcl::Font & GetFieldFont() const
tools::Long nMaxBoundHeight
HelpEventMode GetMode() const
const Color & GetFieldTextColor() const
bool GetUpdateMode() const
sal_Int32 nSelectionCount
constexpr sal_uInt16 KEY_UP
const Color & GetHighlightColor() const
Size CalcBoundingSize() const
#define WB_NOASYNCSELECTHDL
constexpr sal_uInt16 KEY_END
tools::Rectangle GetOutputRect() const
bool IsAutoArrange() const
WinBits const WB_NOPOINTERFOCUS
tools::Rectangle GetTextRect(const tools::Rectangle &rRect, const OUString &rStr, DrawTextFlags nStyle=DrawTextFlags::WordBreak, TextRectInfo *pInfo=nullptr, const vcl::ITextLayout *_pTextLayout=nullptr) const
SvxIconChoiceCtrlEntry * pHdlEntry
void CallEventListeners(VclEventId nEvent, void *pData)
sal_uInt16 GetClicks() const
SvxIconChoiceCtrlEntry * pblink
void CallImplEventListeners(VclEventId nEvent, void *pData)
constexpr::Color COL_TRANSPARENT(0xFF, 0xFF, 0xFF, 0xFF)
VclPtr< ScrollBar > aHorSBar
tools::Rectangle CalcFocusRect(SvxIconChoiceCtrlEntry *)
void RepaintSelectedEntries()
const OUString & GetQuickHelpText() const
bool MouseButtonUp(const MouseEvent &)
#define HOR_DIST_BMP_STRING
const vcl::Font & GetFont() const
void SetEntryTextMode(SvxIconChoiceCtrlTextMode, SvxIconChoiceCtrlEntry *pEntry)
void SetOrigin(const Point &)
void EndTracking(TrackingEventFlags nFlags=TrackingEventFlags::NONE)
IMPL_LINK_NOARG(SvxIconChoiceCtrl_Impl, AutoArrangeHdl, Timer *, void)
DrawTextFlags nCurTextDrawFlags
SelectionMode eSelectionMode
static bool IsBoundingRectValid(const tools::Rectangle &rRect)
constexpr sal_uInt16 KEY_PAGEUP
tools::Rectangle aCurSelectionRect
constexpr sal_uInt16 KEY_F2
virtual void Start() override
Activates the timer task.
SvxIconChoiceCtrlEntry * pAnchor
void Scroll(tools::Long nDeltaX, tools::Long nDeltaY)
void SetCursor_Impl(SvxIconChoiceCtrlEntry *pOldCursor, SvxIconChoiceCtrlEntry *pNewCursor, bool bMod1, bool bShift)
size_t GetEntryCount() const
void SetBackground(const Wallpaper &rWallpaper)
VclPtr< SvtIconChoiceCtrl > pView
void ClearSelectedRectList()
~SvxIconChoiceCtrl_Impl()
WinBits const WB_NOHIDESELECTION
void SetFlags(SvxIconViewFlags nMask)
void DrawLine(const Point &rStartPt, const Point &rEndPt)
tools::Rectangle CalcMaxTextRect(const SvxIconChoiceCtrlEntry *pEntry) const
#define WB_NODRAGSELECTION
sal_Int32 GetEntryCount() const
void ImpArrange(bool bKeepPredecessors)
void AdjustVirtSize(const tools::Rectangle &)
void DrawHighlightFrame(const tools::Rectangle &rRect, DrawHighlightFrameStyle nStyle)
#define EVENTID_ADJUST_SCROLLBARS
void SetColumn(sal_uInt16 nIndex, const SvxIconChoiceCtrlColumnInfo &)
void DrawRect(const tools::Rectangle &rRect)
tools::Rectangle aGridRect
IMPL_LINK(SvxIconChoiceCtrl_Impl, ScrollUpDownHdl, ScrollBar *, pScrollBar, void)
void SetDebugName(const char *pDebugName)
const Point & GetMousePosPixel() const
void ClearFlags(SvxIconViewFlags nMask)
double GetScrollLines() const
constexpr sal_uInt16 KEY_DOWN
static void RemoveUserEvent(ImplSVEvent *nUserEvent)
Remove user event based on event ID.
void SetGrid(const Size &)
SvxIconChoiceCtrlTextMode eTextMode
#define DRAWTEXT_FLAGS_SMALLICON
SvxIconChoiceCtrlEntry * pCurHighlightFrame
SvxIconChoiceCtrlEntry * GetCurEntry() const
void EntrySelected(SvxIconChoiceCtrlEntry *pEntry, bool bSelect)
SvxIconViewFlags GetFlags() const
#define DBG_ASSERT(sCon, aError)
bool IsClipRegion() const
static sal_uLong GetGridCount(const Size &rSizePixel, sal_uInt16 nGridWidth, sal_uInt16 nGridHeight)
std::unique_ptr< IcnCursor_Impl > pImpCursor
constexpr sal_uInt16 KEY_HOME
tools::Long GetNotchDelta() const
std::vector< std::unique_ptr< SvxIconChoiceCtrlEntry > > maEntries
static void DrawEntryImage(SvxIconChoiceCtrlEntry const *pEntry, const Point &rPos, OutputDevice &rDev)
CommandWheelMode GetMode() const
const Color & GetColor() const
virtual void Invalidate(InvalidateFlags nFlags=InvalidateFlags::NONE)
void SetOrigin(const Point &rOrigin)
static OUString GetEntryText(SvxIconChoiceCtrlEntry const *pEntry)
VclPtr< ScrollBar > aVerSBar
bool MouseButtonDown(const MouseEvent &)
SvxIconChoiceCtrlEntry * GetFirstSelectedEntry() const
tools::Long Width() const
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
const Color & GetFieldColor() const
CommandEventId GetCommand() const
const Color & GetLineColor() const
SvxIconChoiceCtrlTextMode eTextMode
void SetTextColor(const Color &rColor)
SvxIconChoiceCtrlTextMode GetTextMode() const
SvxIconChoiceCtrlEntry * GetEntry(sal_Int32 nPos) const
constexpr sal_uInt16 KEY_PAGEDOWN
friend class IcnGridMap_Impl
void SetStyle(WinBits nWinStyle)
void Command(const CommandEvent &rCEvt)
const AllSettings & GetSettings() const
Size GetOutputSizePixel() const
tools::Long GetScrollBarSize() const
tools::Long GetScrollBarLineSize() const
tools::Long GetWidth() const
const Color & GetFillColor() const
sal_uInt16 GetModifier() const
void InvalidateEntry(SvxIconChoiceCtrlEntry *)
Point ScreenToOutputPixel(const Point &rPos) const
#define COMMAND_WHEEL_PAGESCROLL
bool MatchMnemonic(const OUString &rString, sal_Unicode cMnemonicChar) const
constexpr sal_uInt16 KEY_F10
static void ShowQuickHelp(vcl::Window *pParent, const tools::Rectangle &rScreenRect, const OUString &rHelpText, QuickHelpFlags nStyle=QuickHelpFlags::NONE)
void PaintEntry(SvxIconChoiceCtrlEntry *, const Point &, vcl::RenderContext &rRenderContext)
void SetBacklink(SvxIconChoiceCtrlEntry *pA)
void PositionScrollBars(tools::Long nRealWidth, tools::Long nRealHeight)
float GetDPIScaleFactor() const
constexpr sal_uInt16 KEY_RETURN
bool IsMnemonicChar(sal_Unicode cChar, sal_uLong &rPos) const
void SetColor(const Color &)
bool RequestHelp(const HelpEvent &rHEvt)
constexpr sal_uInt16 KEY_RIGHT
tools::Rectangle CalcTextRect(SvxIconChoiceCtrlEntry *, const Point *pPos=nullptr, const OUString *pStr=nullptr)
VclPtr< ScrollBarBox > aScrBarBox
Point PixelToLogic(const Point &rDevicePt) const
tools::Long const nBorder
void RemoveEntry(size_t nPos)
void ToDocPos(Point &rPosPixel)
const tools::Rectangle & GetEntryBoundRect(SvxIconChoiceCtrlEntry *)
void ShowCursor(bool bShow)
const vcl::KeyCode & GetKeyCode() const
SvxIconChoiceCtrlTextMode
SvxIconChoiceCtrlEntry * pCursor
SvxIconChoiceCtrlEntry * FindEntryPredecessor(SvxIconChoiceCtrlEntry *pEntry, const Point &)
tools::Long CalcBoundingHeight() const
constexpr sal_uInt16 KEY_SUBTRACT
void SetPointFont(const vcl::Font &rFont)
tools::Long nMaxVirtWidth
void SetUpdateMode(bool bUpdate)
tools::Rectangle CalcBmpRect(SvxIconChoiceCtrlEntry *, const Point *pPos=nullptr)
void SelectEntry(SvxIconChoiceCtrlEntry *, bool bSelect, bool bAddToSelection=false)
void SetFont(const vcl::Font &rNewFont)
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_WHITE
tools::Long GetTextHeight() const
Height where any character of the current font fits; in logic coordinates.
#define PAINTFLAG_VER_CENTERED
sal_Unicode GetCharCode() const
tools::Long AdjustWidth(tools::Long n)
tools::Long GetTextWidth(const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1, vcl::TextLayoutCache const *=nullptr, SalLayoutGlyphs const *const pLayoutCache=nullptr) const
Width of the text.
bool IsScrollable() const
tools::Long Height() const
tools::Long nVerSBarWidth
void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect)
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_BLACK
void SetInvokeHandler(const Link< Timer *, void > &rLink)
const Point & GetPosPixel() const
const Point & GetOrigin() const
tools::Long AdjustHeight(tools::Long n)
void StartAutoScroll(StartAutoScrollFlags nFlags)
void SetEntryPredecessor(SvxIconChoiceCtrlEntry *pEntry, SvxIconChoiceCtrlEntry *pPredecessor)
std::vector< tools::Rectangle > aSelectedRectList
void setHeight(tools::Long nHeight)
void InsertEntry(std::unique_ptr< SvxIconChoiceCtrlEntry >, size_t nPos)
SvxIconChoiceCtrlEntry * pHead
tools::Long GetDelta() const
void Center(SvxIconChoiceCtrlEntry *pEntry) const
void ClipAtVirtOutRect(tools::Rectangle &rRect) const
void SetEntryHighlightFrame(SvxIconChoiceCtrlEntry *pEntry, bool bKeepHighlightFlags)
sal_Int32 GetEntryListPos(SvxIconChoiceCtrlEntry const *) const
void SetPriority(TaskPriority ePriority)
constexpr sal_uInt16 KEY_LEFT
Point OutputToScreenPixel(const Point &rPos) const
tools::Long nHorSBarHeight
void SelectRange(SvxIconChoiceCtrlEntry const *pStart, SvxIconChoiceCtrlEntry const *pEnd, bool bAdd)
void SetCursor(SvxIconChoiceCtrlEntry *)
#define VER_DIST_BMP_STRING
void InvalidateBoundingRect(tools::Rectangle &rRect)
const SvxIconChoiceCtrlColumnInfo * GetColumn(sal_uInt16 nIndex) const
void SetDefaultTextSize()
void ToggleSelection(SvxIconChoiceCtrlEntry *)
Low, very idle cleanup tasks.
void Push(PushFlags nFlags=PushFlags::ALL)
constexpr auto DRAWTEXT_FLAGS_ICON
The child windows are not invalidated.
constexpr sal_uInt16 KEY_DIVIDE
#define WB_HIGHLIGHTFRAME
SvxIconChoiceCtrlPositionMode
void PaintItem(const tools::Rectangle &rRect, IcnViewFieldType eItem, SvxIconChoiceCtrlEntry *pEntry, sal_uInt16 nPaintFlags, vcl::RenderContext &rRenderContext)
virtual void SetPosPixel(const Point &rNewPos)
bool HandleScrollCommand(const CommandEvent &rCmd)
bool KeyInput(const KeyEvent &)
const Color & GetWindowTextColor() const
#define PAINTFLAG_HOR_CENTERED
void ToTop(SvxIconChoiceCtrlEntry *)
void Arrange(bool bKeepPredecessors, tools::Long nSetMaxVirtWidth, tools::Long nSetMaxVirtHeight)
void SelectRect(SvxIconChoiceCtrlEntry *pEntry1, SvxIconChoiceCtrlEntry *pEntry2, bool bAdd, std::vector< tools::Rectangle > *pOtherRects)
const Color & GetFillColor() const
const Size & GetItemSize(IcnViewFieldType) const
sal_Int32 GetSelectionCount() const
void SetPositionMode(SvxIconChoiceCtrlPositionMode)
void RecalcAllBoundingRectsSmart()
#define EVENTID_SHOW_CURSOR
void Show(bool bVisible=true, ShowFlags nFlags=ShowFlags::NONE)
constexpr sal_uInt16 KEY_F8