LibreOffice Module vcl (master) 1
imivctl.hxx
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#pragma once
21
22#include <sal/config.h>
23
24#include <o3tl/safeint.hxx>
25#include <vcl/virdev.hxx>
26#include <vcl/timer.hxx>
27#include <vcl/idle.hxx>
28#include <vcl/vclptr.hxx>
29#include <tools/debug.hxx>
33
34#include <limits.h>
35
36
37#include <memory>
38#include <map>
39
40class IcnCursor_Impl;
43class IcnViewEdit_Impl;
44class IcnGridMap_Impl;
45
46
47// some defines
48
49#define PAINTFLAG_HOR_CENTERED 0x0001
50#define PAINTFLAG_VER_CENTERED 0x0002
51
52enum class IconChoiceFlags {
53 NONE = 0x0000,
54 AddMode = 0x0001,
55 SelectingRect = 0x0002,
56 DownCtrl = 0x0004,
57 DownDeselect = 0x0008,
58 EntryListPosValid = 0x0010,
59 ClearingSelection = 0x0020,
60 Arranging = 0x0040
61};
62namespace o3tl {
63 template<> struct typed_flags<IconChoiceFlags> : is_typed_flags<IconChoiceFlags, 0x007f> {};
64}
65
66// unit = pixels
67// distances from window borders
68#define LROFFS_WINBORDER 4
69#define TBOFFS_WINBORDER 4
70// for the bounding rectangle
71#define LROFFS_BOUND 2
72#define TBOFFS_BOUND 2
73// distance icon to text
74#define HOR_DIST_BMP_STRING 3
75#define VER_DIST_BMP_STRING 3
76// width offset of highlight rectangle for Text
77#define LROFFS_TEXT 2
78
79#define DEFAULT_MAX_VIRT_WIDTH 200
80#define DEFAULT_MAX_VIRT_HEIGHT 200
81
82#define VIEWMODE_MASK (WB_ICON | WB_SMALLICON | WB_DETAILS)
83
84
86{
87 Image,
88 Text
89};
90
91
92// Data about the focus of entries
93
95{
98};
99
100
102
103#define GRID_NOT_FOUND (GridId(ULONG_MAX))
104
105// Implementation-class of IconChoiceCtrl
106
107
108typedef std::map<sal_uInt16, std::unique_ptr<SvxIconChoiceCtrlColumnInfo>> SvxIconChoiceCtrlColumnInfoMap;
109typedef std::vector<SvxIconChoiceCtrlEntry*> SvxIconChoiceCtrlEntryPtrVec;
110
112{
113 friend class IcnCursor_Impl;
114 friend class IcnGridMap_Impl;
115
116 std::vector< std::unique_ptr<SvxIconChoiceCtrlEntry> > maEntries;
121 std::vector<tools::Rectangle> aSelectedRectList;
131 std::unique_ptr<IcnCursor_Impl> pImpCursor;
132 std::unique_ptr<IcnGridMap_Impl> pGridMap;
133 tools::Long nMaxVirtWidth; // max. width aVirtOutputSize for ALIGN_TOP
134 tools::Long nMaxVirtHeight; // max. height aVirtOutputSize for ALIGN_LEFT
135 std::vector< SvxIconChoiceCtrlEntry* > maZOrderList;
136 std::unique_ptr<SvxIconChoiceCtrlColumnInfoMap> m_pColumns;
138 tools::Long nMaxBoundHeight; // height of highest BoundRects
144 SvxIconChoiceCtrlEntry* pHead = nullptr; // top left entry
148 LocalFocus aFocus; // Data for focusrect
149 ::vcl::AccessibleFactoryAccess aAccFactory;
150
157
158 void ShowCursor( bool bShow );
159
160 void ImpArrange( bool bKeepPredecessors );
161 void AdjustVirtSize( const tools::Rectangle& );
162 void ResetVirtSize();
163 void CheckScrollBars();
164
165 DECL_LINK( ScrollUpDownHdl, ScrollBar*, void );
166 DECL_LINK( ScrollLeftRightHdl, ScrollBar*, void );
167 DECL_LINK( UserEventHdl, void*, void );
168 DECL_LINK( AutoArrangeHdl, Timer*, void );
169 DECL_LINK( DocRectChangedHdl, Timer*, void );
170 DECL_LINK( VisRectChangedHdl, Timer*, void );
171 DECL_LINK( CallSelectHdlHdl, Timer*, void );
172
173 void AdjustScrollBars();
174 void PositionScrollBars( tools::Long nRealWidth, tools::Long nRealHeight );
176 {
177 return ((nVisibleRange*75)/100);
178 }
180 {
181 return nMaxBoundHeight / 2;
182 }
183 bool HandleScrollCommand( const CommandEvent& rCmd );
184 void ToDocPos( Point& rPosPixel )
185 {
186 rPosPixel -= pView->GetMapMode().GetOrigin();
187 }
188 void InitScrollBarBox();
191 void Center( SvxIconChoiceCtrlEntry* pEntry ) const;
192 void CallSelectHandler();
193 void SelectRect(
194 SvxIconChoiceCtrlEntry* pEntry1,
195 SvxIconChoiceCtrlEntry* pEntry2,
196 bool bAdd,
197 std::vector<tools::Rectangle>* pOtherRects
198 );
199
200 void SelectRange(
201 SvxIconChoiceCtrlEntry const * pStart,
202 SvxIconChoiceCtrlEntry const * pEnd,
203 bool bAdd
204 );
205
206 void AddSelectedRect( const tools::Rectangle& );
207 void AddSelectedRect(
208 SvxIconChoiceCtrlEntry* pEntry1,
210 );
211
214
215 void ClipAtVirtOutRect( tools::Rectangle& rRect ) const;
216 GridId GetPredecessorGrid( const Point& rDocPos) const;
217
218 void InitPredecessors();
219 void ClearPredecessors();
220
221 bool CheckVerScrollBar();
222 bool CheckHorScrollBar();
223 void CancelUserEvents();
224 void EntrySelected(
226 bool bSelect
227 );
229 void SetListPositions();
230 void SetDefaultTextSize();
231 bool IsAutoArrange() const
232 {
234 }
237 void SetOrigin( const Point& );
238
239 void ShowFocus ( tools::Rectangle const & rRect );
240 void DrawFocusRect(vcl::RenderContext& rRenderContext);
241
242 bool IsMnemonicChar( sal_Unicode cChar, sal_uLong& rPos ) const;
243
244 // Copy assignment is forbidden and not implemented.
247
248public:
249
254
257
259 {
261 }
262
263 void Clear( bool bInCtor );
264 void SetStyle( WinBits nWinStyle );
265 WinBits GetStyle() const { return nWinBits; }
266 void InsertEntry( std::unique_ptr<SvxIconChoiceCtrlEntry>, size_t nPos );
267 void RemoveEntry( size_t nPos );
268 void FontModified();
269 void SelectAll();
270 void SelectEntry(
272 bool bSelect,
273 bool bAddToSelection = false
274 );
275 void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect);
276 bool MouseButtonDown( const MouseEvent& );
277 bool MouseButtonUp( const MouseEvent& );
278 bool MouseMove( const MouseEvent&);
279 bool RequestHelp( const HelpEvent& rHEvt );
280 void SetCursor_Impl(
281 SvxIconChoiceCtrlEntry* pOldCursor,
282 SvxIconChoiceCtrlEntry* pNewCursor,
283 bool bMod1,
284 bool bShift
285 );
286 bool KeyInput( const KeyEvent& );
287 void Resize();
288 void GetFocus();
289 void LoseFocus();
290 void SetUpdateMode( bool bUpdate );
291 bool GetUpdateMode() const { return bUpdateMode; }
292 void PaintEntry(SvxIconChoiceCtrlEntry*, const Point&, vcl::RenderContext& rRenderContext);
293
294 void SetEntryPos(
296 const Point& rPos
297 );
298
300
301 void SetNoSelection();
302
305
306 SvxIconChoiceCtrlEntry* GetEntry( const Point& rDocPos, bool bHit = false );
307
308 void MakeEntryVisible( SvxIconChoiceCtrlEntry* pEntry, bool bBound = true );
309
310 void Arrange(
311 bool bKeepPredecessors,
312 tools::Long nSetMaxVirtWidth,
313 tools::Long nSetMaxVirtHeight
314 );
315
317 tools::Rectangle CalcBmpRect( SvxIconChoiceCtrlEntry*, const Point* pPos = nullptr );
320 const Point* pPos = nullptr,
321 const OUString* pStr = nullptr
322 );
323
326 Size CalcBoundingSize() const;
330 const Point& rPos,
331 const Size& rBoundingSize
332 );
333 // recalculates all invalid BoundRects
337 {
338 rRect.SetRight(LONG_MAX);
339 bBoundRectsDirty = true;
340 }
341 static bool IsBoundingRectValid( const tools::Rectangle& rRect ) { return ( rRect.Right() != LONG_MAX ); }
342
343 static void PaintEmphasis(const tools::Rectangle& rRect1, bool bSelected,
344 vcl::RenderContext& rRenderContext );
345
346 void PaintItem(const tools::Rectangle& rRect, IcnViewFieldType eItem, SvxIconChoiceCtrlEntry* pEntry,
347 sal_uInt16 nPaintFlags, vcl::RenderContext& rRenderContext);
348
349 // recalculates all BoundingRects if bMustRecalcBoundingRects == true
351 void Command( const CommandEvent& rCEvt );
353
354 sal_Int32 GetSelectionCount() const;
355 void SetGrid( const Size& );
356 Size GetMinGrid() const;
357 void Scroll( tools::Long nDeltaX, tools::Long nDeltaY );
358 const Size& GetItemSize( IcnViewFieldType ) const;
359
360 void HideDDIcon();
361
362 static bool IsOver(
363 std::vector<tools::Rectangle>* pSelectedRectList,
364 const tools::Rectangle& rEntryBoundRect
365 );
366
367 void SelectRect(
368 const tools::Rectangle&,
369 bool bAdd,
370 std::vector<tools::Rectangle>* pOtherRects
371 );
372
373 void MakeVisible(
374 const tools::Rectangle& rDocPos,
375 bool bInScrollBarEvent=false
376 );
377
378#ifdef DBG_UTIL
379 void SetEntryTextMode(
382 );
383#endif
384 size_t GetEntryCount() const { return maEntries.size(); }
386 {
387 return maEntries[ nPos ].get();
388 }
389 SvxIconChoiceCtrlEntry* GetEntry( size_t nPos ) const
390 {
391 return maEntries[ nPos ].get();
392 }
394 sal_Int32 GetEntryListPos( SvxIconChoiceCtrlEntry const * ) const;
395 void InitSettings();
397
399 // only delivers valid results when in AutoArrange mode!
401
403
404 void SetColumn( sal_uInt16 nIndex, const SvxIconChoiceCtrlColumnInfo& );
405 const SvxIconChoiceCtrlColumnInfo* GetColumn( sal_uInt16 nIndex ) const;
406
409 bool bKeepHighlightFlags
410 );
411 void DrawHighlightFrame(vcl::RenderContext& rRenderContext, const tools::Rectangle& rBmpRect);
412
413 void CallEventListeners( VclEventId nEvent, void* pData );
414
416 {
417 return aAccFactory.getFactory();
418 }
419};
420
421typedef std::map<sal_uInt16, SvxIconChoiceCtrlEntryPtrVec> IconChoiceMap;
422
424{
426 std::unique_ptr<IconChoiceMap> xColumns;
427 std::unique_ptr<IconChoiceMap> xRows;
433 void SetDeltas();
434 void ImplCreate();
435 void Create() { if( !xColumns ) ImplCreate(); }
436
437 sal_uInt16 GetSortListPos(
439 tools::Long nValue,
440 bool bVertical);
442 sal_uInt16 nCol,
443 sal_uInt16 nTop,
444 sal_uInt16 nBottom,
445 bool bDown,
446 bool bSimple
447 );
448
450 sal_uInt16 nRow,
451 sal_uInt16 nLeft,
452 sal_uInt16 nRight,
453 bool bRight,
454 bool bSimple
455 );
456
457public:
458 explicit IcnCursor_Impl( SvxIconChoiceCtrl_Impl* pOwner );
460 void Clear();
461
462 // for Cursortravelling etc.
466};
467
469{
472 std::unique_ptr<bool[]> _pGridMap;
474
475 void Expand();
476 void Create_Impl();
477 void Create() { if(!_pGridMap) Create_Impl(); }
478
479 void GetMinMapSize( sal_uInt16& rDX, sal_uInt16& rDY ) const;
480
481public:
484
485 void Clear();
486
487 GridId GetGrid( const Point& rDocPos );
488 GridId GetGrid( sal_uInt16 nGridX, sal_uInt16 nGridY );
490
491 void OccupyGrids( const SvxIconChoiceCtrlEntry* );
492 void OccupyGrid( GridId nId )
493 {
494 DBG_ASSERT(!_pGridMap || nId<o3tl::make_unsigned(_nGridCols*_nGridRows),"OccupyGrid: Bad GridId");
496 _pGridMap[ nId ] = true;
497 }
498
500 void GetGridCoord( GridId, sal_uInt16& rGridX, sal_uInt16& rGridY );
501 static sal_uLong GetGridCount(
502 const Size& rSizePixel,
503 sal_uInt16 nGridWidth,
504 sal_uInt16 nGridHeight
505 );
506
507 void OutputSizeChanged();
508};
509
510/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
DrawTextFlags
sal_uInt16 GetSortListPos(SvxIconChoiceCtrlEntryPtrVec &rList, tools::Long nValue, bool bVertical)
Definition: imivctl2.cxx:37
SvxIconChoiceCtrlEntry * pCurEntry
Definition: imivctl.hxx:432
SvxIconChoiceCtrlEntry * GoPageUpDown(SvxIconChoiceCtrlEntry *, bool bDown)
Definition: imivctl2.cxx:332
void ImplCreate()
Definition: imivctl2.cxx:63
SvxIconChoiceCtrlEntry * SearchCol(sal_uInt16 nCol, sal_uInt16 nTop, sal_uInt16 nBottom, bool bDown, bool bSimple)
Definition: imivctl2.cxx:114
short nDeltaHeight
Definition: imivctl.hxx:431
tools::Long nRows
Definition: imivctl.hxx:429
short nDeltaWidth
Definition: imivctl.hxx:430
SvxIconChoiceCtrl_Impl * pView
Definition: imivctl.hxx:425
SvxIconChoiceCtrlEntry * SearchRow(sal_uInt16 nRow, sal_uInt16 nLeft, sal_uInt16 nRight, bool bRight, bool bSimple)
Definition: imivctl2.cxx:190
void SetDeltas()
Definition: imivctl2.cxx:451
std::unique_ptr< IconChoiceMap > xRows
Definition: imivctl.hxx:427
void Create()
Definition: imivctl.hxx:435
tools::Long nCols
Definition: imivctl.hxx:428
SvxIconChoiceCtrlEntry * GoLeftRight(SvxIconChoiceCtrlEntry *, bool bRight)
Definition: imivctl2.cxx:284
std::unique_ptr< IconChoiceMap > xColumns
Definition: imivctl.hxx:426
SvxIconChoiceCtrlEntry * GoUpDown(SvxIconChoiceCtrlEntry *, bool bDown)
Definition: imivctl2.cxx:392
IcnCursor_Impl(SvxIconChoiceCtrl_Impl *pOwner)
Definition: imivctl2.cxx:23
static sal_uLong GetGridCount(const Size &rSizePixel, sal_uInt16 nGridWidth, sal_uInt16 nGridHeight)
Definition: imivctl2.cxx:664
void OccupyGrid(GridId nId)
Definition: imivctl.hxx:492
void OccupyGrids(const SvxIconChoiceCtrlEntry *)
Definition: imivctl2.cxx:646
void Create_Impl()
Definition: imivctl2.cxx:510
IcnGridMap_Impl(SvxIconChoiceCtrl_Impl *pView)
Definition: imivctl2.cxx:477
GridId GetGrid(const Point &rDocPos)
Definition: imivctl2.cxx:581
tools::Rectangle GetGridRect(GridId)
Definition: imivctl2.cxx:604
GridId GetUnoccupiedGrid()
Definition: imivctl2.cxx:617
void GetGridCoord(GridId, sal_uInt16 &rGridX, sal_uInt16 &rGridY)
Definition: imivctl2.cxx:699
SvxIconChoiceCtrl_Impl * _pView
Definition: imivctl.hxx:471
void OutputSizeChanged()
Definition: imivctl2.cxx:673
tools::Rectangle _aLastOccupiedGrid
Definition: imivctl.hxx:470
std::unique_ptr< bool[]> _pGridMap
Definition: imivctl.hxx:472
sal_uInt16 _nGridCols
Definition: imivctl.hxx:473
void GetMinMapSize(sal_uInt16 &rDX, sal_uInt16 &rDY) const
Definition: imivctl2.cxx:530
sal_uInt16 _nGridRows
Definition: imivctl.hxx:473
An idle is a timer to be scheduled immediately.
Definition: idle.hxx:35
virtual void Start(bool bStartTimer=true) override
Schedules the task for execution.
Definition: idle.cxx:34
Definition: image.hxx:40
const Point & GetOrigin() const
Definition: mapmod.cxx:183
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
Definition: outdev.hxx:170
void SetUpdateMode(bool bUpdate)
Definition: imivctl1.cxx:1322
std::unique_ptr< SvxIconChoiceCtrlColumnInfoMap > m_pColumns
Definition: imivctl.hxx:136
void Scroll(tools::Long nDeltaX, tools::Long nDeltaY)
Definition: imivctl1.cxx:2186
VclPtr< ScrollBarBox > aScrBarBox
Definition: imivctl.hxx:119
VclPtr< SvtIconChoiceCtrl > pView
Definition: imivctl.hxx:130
SvxIconChoiceCtrl_Impl & operator=(const SvxIconChoiceCtrl_Impl &)=delete
void SetStyle(WinBits nWinStyle)
Definition: imivctl1.cxx:150
void PaintEntry(SvxIconChoiceCtrlEntry *, const Point &, vcl::RenderContext &rRenderContext)
Definition: imivctl1.cxx:1391
void SelectRange(SvxIconChoiceCtrlEntry const *pStart, SvxIconChoiceCtrlEntry const *pEnd, bool bAdd)
Definition: imivctl1.cxx:2336
void DeselectAllBut(SvxIconChoiceCtrlEntry const *)
Definition: imivctl1.cxx:2037
SvxIconChoiceCtrlEntry * GetCurEntry() const
Definition: imivctl.hxx:303
void ShowFocus(tools::Rectangle const &rRect)
Definition: imivctl1.cxx:2459
SelectionMode eSelectionMode
Definition: imivctl.hxx:152
ImplSVEvent * nUserEventAdjustScrBars
Definition: imivctl.hxx:141
std::unique_ptr< IcnCursor_Impl > pImpCursor
Definition: imivctl.hxx:131
tools::Long nMaxVirtHeight
Definition: imivctl.hxx:134
bool MouseMove(const MouseEvent &)
Definition: imivctl1.cxx:780
::vcl::IAccessibleFactory & GetAccessibleFactory()
Definition: imivctl.hxx:415
tools::Long nMaxBoundHeight
Definition: imivctl.hxx:138
const tools::Rectangle & GetEntryBoundRect(SvxIconChoiceCtrlEntry *)
Definition: imivctl1.cxx:1566
VclPtr< ScrollBar > aHorSBar
Definition: imivctl.hxx:118
bool IsMnemonicChar(sal_Unicode cChar, sal_uLong &rPos) const
Definition: imivctl1.cxx:2489
bool IsAutoArrange() const
Definition: imivctl.hxx:231
tools::Rectangle CalcFocusRect(SvxIconChoiceCtrlEntry *)
Definition: imivctl1.cxx:2206
WinBits GetStyle() const
Definition: imivctl.hxx:265
tools::Rectangle CalcTextRect(SvxIconChoiceCtrlEntry *, const Point *pPos=nullptr, const OUString *pStr=nullptr)
Definition: imivctl1.cxx:1600
SvxIconChoiceCtrlEntry * pCurHighlightFrame
Definition: imivctl.hxx:142
void ImpArrange(bool bKeepPredecessors)
Definition: imivctl1.cxx:448
void SelectRect(SvxIconChoiceCtrlEntry *pEntry1, SvxIconChoiceCtrlEntry *pEntry2, bool bAdd, std::vector< tools::Rectangle > *pOtherRects)
Definition: imivctl1.cxx:2230
bool KeyInput(const KeyEvent &)
Definition: imivctl1.cxx:844
void SetPositionMode(SvxIconChoiceCtrlPositionMode)
Definition: imivctl1.cxx:2641
GridId GetPredecessorGrid(const Point &rDocPos) const
Definition: imivctl1.cxx:2745
static void PaintEmphasis(const tools::Rectangle &rRect1, bool bSelected, vcl::RenderContext &rRenderContext)
Definition: imivctl1.cxx:1338
tools::Long nVerSBarWidth
Definition: imivctl.hxx:253
tools::Rectangle GetOutputRect() const
Definition: imivctl1.cxx:231
::vcl::AccessibleFactoryAccess aAccFactory
Definition: imivctl.hxx:149
void MakeVisible(const tools::Rectangle &rDocPos, bool bInScrollBarEvent=false)
Definition: imivctl1.cxx:1931
void SetGrid(const Size &)
Definition: imivctl1.cxx:2073
Size GetMinGrid() const
Definition: imivctl1.cxx:2054
void DrawHighlightFrame(vcl::RenderContext &rRenderContext, const tools::Rectangle &rBmpRect)
Definition: imivctl1.cxx:2841
void SetColumn(sal_uInt16 nIndex, const SvxIconChoiceCtrlColumnInfo &)
Definition: imivctl1.cxx:2814
void SetEntryPos(SvxIconChoiceCtrlEntry *pEntry, const Point &rPos)
Definition: imivctl1.cxx:1470
SvxIconChoiceCtrlEntry * pAnchor
Definition: imivctl.hxx:147
void SetBoundingRect_Impl(SvxIconChoiceCtrlEntry *pEntry, const Point &rPos, const Size &rBoundingSize)
Definition: imivctl1.cxx:1754
tools::Long CalcBoundingWidth() const
Definition: imivctl1.cxx:1641
Size CalcBoundingSize() const
Definition: imivctl1.cxx:1689
tools::Rectangle CalcBmpRect(SvxIconChoiceCtrlEntry *, const Point *pPos=nullptr)
Definition: imivctl1.cxx:1573
void SetEntryTextMode(SvxIconChoiceCtrlTextMode, SvxIconChoiceCtrlEntry *pEntry)
Definition: imivctl1.cxx:2432
void RemoveEntry(size_t nPos)
Definition: imivctl1.cxx:224
SvxIconChoiceCtrl_Impl(const SvxIconChoiceCtrl_Impl &)=delete
const Size & GetItemSize(IcnViewFieldType) const
Definition: imivctl1.cxx:2199
DECL_LINK(ScrollLeftRightHdl, ScrollBar *, void)
size_t GetEntryCount() const
Definition: imivctl.hxx:384
void InsertEntry(std::unique_ptr< SvxIconChoiceCtrlEntry >, size_t nPos)
Definition: imivctl1.cxx:186
DECL_LINK(AutoArrangeHdl, Timer *, void)
bool RequestHelp(const HelpEvent &rHEvt)
Definition: imivctl1.cxx:2770
SvxIconChoiceCtrlEntry * GetEntry(const Point &rDocPos, bool bHit=false)
Definition: imivctl1.cxx:1516
void ToggleSelection(SvxIconChoiceCtrlEntry *)
Definition: imivctl1.cxx:2030
void ToTop(SvxIconChoiceCtrlEntry *)
Definition: imivctl1.cxx:1902
std::vector< std::unique_ptr< SvxIconChoiceCtrlEntry > > maEntries
Definition: imivctl.hxx:116
tools::Rectangle CalcMaxTextRect(const SvxIconChoiceCtrlEntry *pEntry) const
Definition: imivctl1.cxx:2099
SvxIconChoiceCtrlPositionMode ePositionMode
Definition: imivctl.hxx:154
tools::Rectangle aCurSelectionRect
Definition: imivctl.hxx:120
void PaintItem(const tools::Rectangle &rRect, IcnViewFieldType eItem, SvxIconChoiceCtrlEntry *pEntry, sal_uInt16 nPaintFlags, vcl::RenderContext &rRenderContext)
Definition: imivctl1.cxx:1363
void FindBoundingRect(SvxIconChoiceCtrlEntry *pEntry)
Definition: imivctl1.cxx:1741
void SetEntryPredecessor(SvxIconChoiceCtrlEntry *pEntry, SvxIconChoiceCtrlEntry *pPredecessor)
Definition: imivctl1.cxx:2674
void SetCursor_Impl(SvxIconChoiceCtrlEntry *pOldCursor, SvxIconChoiceCtrlEntry *pNewCursor, bool bMod1, bool bShift)
Definition: imivctl1.cxx:796
VclPtr< ScrollBar > aVerSBar
Definition: imivctl.hxx:117
void Command(const CommandEvent &rCEvt)
Definition: imivctl1.cxx:1890
void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect)
Definition: imivctl1.cxx:478
void Arrange(bool bKeepPredecessors, tools::Long nSetMaxVirtWidth, tools::Long nSetMaxVirtHeight)
Definition: imivctl1.cxx:433
void SelectEntry(SvxIconChoiceCtrlEntry *, bool bSelect, bool bAddToSelection=false)
Definition: imivctl1.cxx:251
tools::Long nHorSBarHeight
Definition: imivctl.hxx:252
tools::Long nMaxVirtWidth
Definition: imivctl.hxx:133
void DrawFocusRect(vcl::RenderContext &rRenderContext)
Definition: imivctl1.cxx:2473
void AdjustVirtSize(const tools::Rectangle &)
Definition: imivctl1.cxx:363
sal_Int32 GetSelectionCount() const
Definition: imivctl1.cxx:2023
void SetSelectionMode(SelectionMode eMode)
Definition: imivctl.hxx:258
void EntrySelected(SvxIconChoiceCtrlEntry *pEntry, bool bSelect)
Definition: imivctl1.cxx:288
SvxIconChoiceCtrlTextMode eTextMode
Definition: imivctl.hxx:151
tools::Long nGridDX
Definition: imivctl.hxx:250
std::unique_ptr< IcnGridMap_Impl > pGridMap
Definition: imivctl.hxx:132
DECL_LINK(VisRectChangedHdl, Timer *, void)
void SetEntryHighlightFrame(SvxIconChoiceCtrlEntry *pEntry, bool bKeepHighlightFlags)
Definition: imivctl1.cxx:2861
SvxIconChoiceCtrlEntry * pHead
Definition: imivctl.hxx:144
void ClipAtVirtOutRect(tools::Rectangle &rRect) const
Definition: imivctl1.cxx:1915
void SetCursor(SvxIconChoiceCtrlEntry *)
Definition: imivctl1.cxx:1765
static tools::Long GetScrollBarPageSize(tools::Long nVisibleRange)
Definition: imivctl.hxx:175
SvxIconChoiceCtrlEntry * GetEntry(size_t nPos) const
Definition: imivctl.hxx:389
void RecalcAllBoundingRectsSmart()
Definition: imivctl1.cxx:1694
bool MouseButtonDown(const MouseEvent &)
Definition: imivctl1.cxx:599
DECL_LINK(DocRectChangedHdl, Timer *, void)
void Clear(bool bInCtor)
Definition: imivctl1.cxx:116
static bool IsBoundingRectValid(const tools::Rectangle &rRect)
Definition: imivctl.hxx:341
void ToDocPos(Point &rPosPixel)
Definition: imivctl.hxx:184
void CallEventListeners(VclEventId nEvent, void *pData)
Definition: imivctl1.cxx:2921
DECL_LINK(ScrollUpDownHdl, ScrollBar *, void)
sal_Int32 nSelectionCount
Definition: imivctl.hxx:153
void ShowCursor(bool bShow)
Definition: imivctl1.cxx:1794
void MakeEntryVisible(SvxIconChoiceCtrlEntry *pEntry, bool bBound=true)
Definition: imivctl1.cxx:1547
SvxIconChoiceCtrlEntry * pCursor
Definition: imivctl.hxx:145
DrawTextFlags nCurTextDrawFlags
Definition: imivctl.hxx:140
tools::Long CalcBoundingHeight() const
Definition: imivctl1.cxx:1662
tools::Long GetScrollBarLineSize() const
Definition: imivctl.hxx:179
static bool IsOver(std::vector< tools::Rectangle > *pSelectedRectList, const tools::Rectangle &rEntryBoundRect)
Definition: imivctl1.cxx:2382
SvxIconChoiceCtrlEntry * pHdlEntry
Definition: imivctl.hxx:146
void AddSelectedRect(const tools::Rectangle &)
Definition: imivctl1.cxx:2403
void SetOrigin(const Point &)
Definition: imivctl1.cxx:2914
DECL_LINK(CallSelectHdlHdl, Timer *, void)
bool HandleScrollCommand(const CommandEvent &rCmd)
Definition: imivctl1.cxx:1811
SvxIconChoiceCtrlEntry * FindEntryPredecessor(SvxIconChoiceCtrlEntry *pEntry, const Point &)
Definition: imivctl1.cxx:2722
SvxIconChoiceCtrlEntry * GetEntry(size_t nPos)
Definition: imivctl.hxx:385
bool MouseButtonUp(const MouseEvent &)
Definition: imivctl1.cxx:728
void PositionScrollBars(tools::Long nRealWidth, tools::Long nRealHeight)
Definition: imivctl1.cxx:1042
tools::Long nGridDY
Definition: imivctl.hxx:251
DECL_LINK(UserEventHdl, void *, void)
sal_Int32 GetEntryListPos(SvxIconChoiceCtrlEntry const *) const
Definition: imivctl1.cxx:2598
void Center(SvxIconChoiceCtrlEntry *pEntry) const
Definition: imivctl1.cxx:2167
std::vector< SvxIconChoiceCtrlEntry * > maZOrderList
Definition: imivctl.hxx:135
IconChoiceFlags nFlags
Definition: imivctl.hxx:139
void InvalidateEntry(SvxIconChoiceCtrlEntry *)
Definition: imivctl1.cxx:2530
bool GetUpdateMode() const
Definition: imivctl.hxx:291
SvxIconChoiceCtrlEntry * GetFirstSelectedEntry() const
Definition: imivctl1.cxx:2541
const SvxIconChoiceCtrlColumnInfo * GetColumn(sal_uInt16 nIndex) const
Definition: imivctl1.cxx:2831
std::vector< tools::Rectangle > aSelectedRectList
Definition: imivctl.hxx:121
void InvalidateBoundingRect(tools::Rectangle &rRect)
Definition: imivctl.hxx:336
Definition: timer.hxx:27
constexpr void SetRight(tools::Long v)
constexpr tools::Long Right() const
const MapMode & GetMapMode() const
Definition: window3.cxx:99
#define DBG_ASSERT(sCon, aError)
sal_uLong GridId
Definition: imivctl.hxx:101
IcnViewFieldType
Definition: imivctl.hxx:86
std::map< sal_uInt16, std::unique_ptr< SvxIconChoiceCtrlColumnInfo > > SvxIconChoiceCtrlColumnInfoMap
Definition: imivctl.hxx:108
IconChoiceFlags
Definition: imivctl.hxx:52
std::vector< SvxIconChoiceCtrlEntry * > SvxIconChoiceCtrlEntryPtrVec
Definition: imivctl.hxx:109
std::map< sal_uInt16, SvxIconChoiceCtrlEntryPtrVec > IconChoiceMap
Definition: imivctl.hxx:421
Mode eMode
SvxIconChoiceCtrlPositionMode
Definition: ivctrl.hxx:56
SvxIconChoiceCtrlTextMode
Definition: ivctrl.hxx:50
sal_uInt16 nPos
const long LONG_MAX
NONE
constexpr std::enable_if_t< std::is_signed_v< T >, std::make_unsigned_t< T > > make_unsigned(T value)
long Long
sal_Int16 nId
sal_uIntPtr sal_uLong
Color aPenColor
Definition: imivctl.hxx:97
tools::Rectangle aRect
Definition: imivctl.hxx:96
sal_uInt16 sal_Unicode
SelectionMode
Definition: vclenum.hxx:26
VclEventId
Definition: vclevent.hxx:38
sal_Int64 WinBits
Definition: wintypes.hxx:109