LibreOffice Module vcl (master)  1
ivctrl.cxx
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 
21 #include <vcl/toolkit/ivctrl.hxx>
22 #include "imivctl.hxx"
24 #include <vcl/bitmapex.hxx>
25 #include <vcl/commandevent.hxx>
26 #include <vcl/mnemonic.hxx>
27 #include <vcl/settings.hxx>
28 #include <vcl/tabctrl.hxx>
29 #include <vcl/vclevent.hxx>
30 #include <vcl/uitest/uiobject.hxx>
31 #include <vcl/uitest/logger.hxx>
33 #include <verticaltabctrl.hxx>
34 
35 using namespace ::com::sun::star::accessibility;
36 
37 namespace
38 {
39 void collectUIInformation( const OUString& aID, const OUString& aPos)
40 {
41  EventDescription aDescription;
42  aDescription.aID = aID;
43  aDescription.aParameters = {{ "POS" , aPos}};
44  aDescription.aAction = "SELECT";
45  aDescription.aKeyWord = "VerticalTab";
46  UITestLogger::getInstance().logEvent(aDescription);
47 }
48 }
49 
50 /*****************************************************************************
51 |
52 | class : SvxIconChoiceCtrlEntry
53 |
54 \*****************************************************************************/
55 
57  const Image& rImage )
58  : aImage(rImage)
59  , aText(rText)
60  , nPos(0)
61  , pblink(nullptr)
62  , pflink(nullptr)
63  , eTextMode(SvxIconChoiceCtrlTextMode::Short)
64  , nX(0)
65  , nY(0)
66  , nFlags(SvxIconViewFlags::NONE)
67 {
68 }
69 
71 {
73 }
74 
75 
77 {
78  nWidth = rInfo.nWidth;
79 }
80 
81 /*****************************************************************************
82 |
83 | class : SvtIconChoiceCtrl
84 |
85 \*****************************************************************************/
86 
88 
89  // WB_CLIPCHILDREN on, as ScrollBars lie on the window!
90  Control( pParent, nWinStyle | WB_CLIPCHILDREN ),
91 
92  _pImpl ( new SvxIconChoiceCtrl_Impl( this, nWinStyle ) )
93 {
95  _pImpl->InitSettings();
97 }
98 
100 {
101  _pImpl->SetSelectionMode(eMode);
102 }
103 
105 {
106  disposeOnce();
107 }
108 
110 {
111  if (_pImpl)
112  {
113  _pImpl->CallEventListeners( VclEventId::ObjectDying, nullptr );
114  _pImpl.reset();
115  }
117 }
118 
119 SvxIconChoiceCtrlEntry* SvtIconChoiceCtrl::InsertEntry( const OUString& rText, const Image& rImage )
120 {
121  SvxIconChoiceCtrlEntry* pEntry = new SvxIconChoiceCtrlEntry( rText, rImage);
122 
123  _pImpl->InsertEntry(std::unique_ptr<SvxIconChoiceCtrlEntry>(pEntry), _pImpl->GetEntryCount());
124 
125  return pEntry;
126 }
127 
128 void SvtIconChoiceCtrl::RemoveEntry(sal_Int32 nIndex)
129 {
130  _pImpl->RemoveEntry(nIndex);
131 }
132 
133 void SvtIconChoiceCtrl::DrawEntryImage( SvxIconChoiceCtrlEntry const * pEntry, const Point& rPos, OutputDevice& rDev )
134 {
135  rDev.DrawImage( rPos, pEntry->GetImage() );
136 }
137 
139 {
140  return pEntry->GetText();
141 }
142 
144 {
145  _pImpl->Paint(rRenderContext, rRect);
146 }
147 
149 {
150  if( !_pImpl->MouseButtonDown( rMEvt ) )
151  Control::MouseButtonDown( rMEvt );
152 }
153 
155 {
156  if( !_pImpl->MouseButtonUp( rMEvt ) )
157  Control::MouseButtonUp( rMEvt );
158 }
159 
161 {
162  if( !_pImpl->MouseMove( rMEvt ) )
163  Control::MouseMove( rMEvt );
164 }
166 {
167  if ( GetStyle() & WB_ALIGN_TOP )
168  {
169  Size aFullSize;
170  tools::Rectangle aEntryRect;
171 
172  for ( sal_Int32 i = 0; i < GetEntryCount(); i++ )
173  {
174  SvxIconChoiceCtrlEntry* pEntry = GetEntry ( i );
175  aEntryRect = _pImpl->GetEntryBoundRect ( pEntry );
176 
177  aFullSize.setWidth ( aFullSize.getWidth()+aEntryRect.GetWidth() );
178  }
179 
180  _pImpl->Arrange ( false, aFullSize.getWidth(), 0 );
181  }
182  else if ( GetStyle() & WB_ALIGN_LEFT )
183  {
184  Size aFullSize;
185  tools::Rectangle aEntryRect;
186 
187  for ( sal_Int32 i = 0; i < GetEntryCount(); i++ )
188  {
189  SvxIconChoiceCtrlEntry* pEntry = GetEntry ( i );
190  aEntryRect = _pImpl->GetEntryBoundRect ( pEntry );
191 
192  aFullSize.setHeight ( aFullSize.getHeight()+aEntryRect.GetHeight() );
193  }
194 
195  _pImpl->Arrange ( false, 0, aFullSize.getHeight() );
196  }
197  else
198  {
199  _pImpl->Arrange(false, 0, 0);
200  }
201  _pImpl->Arrange( false, 0, 1000 );
202 }
204 {
205  _pImpl->Resize();
206  Control::Resize();
207 }
208 
210 {
211  _pImpl->GetFocus();
213  SvxIconChoiceCtrlEntry* pSelectedEntry = GetSelectedEntry();
214  if ( pSelectedEntry )
215  _pImpl->CallEventListeners( VclEventId::ListboxSelect, pSelectedEntry );
216 }
217 
219 {
220  if (_pImpl)
221  _pImpl->LoseFocus();
223 }
224 
226 {
227  if (rFont != GetFont())
228  {
229  Control::SetFont(rFont);
230  _pImpl->FontModified();
231  }
232 }
233 
235 {
236  if (rFont != GetPointFont(*GetOutDev())) //FIXME
237  {
238  Control::SetPointFont(*GetOutDev(), rFont); //FIXME
239  _pImpl->FontModified();
240  }
241 }
242 
244 {
245  return _pImpl->GetStyle();
246 }
247 
249 {
250  _pImpl->Command( rCEvt );
251  //pass at least alt press/release to parent impl
253  Control::Command(rCEvt);
254 }
255 
256 #ifdef DBG_UTIL
258 {
259  _pImpl->SetEntryTextMode( eMode, pEntry );
260 }
261 #endif
262 
264 {
265  return _pImpl ? _pImpl->GetEntryCount() : 0;
266 }
267 
269 {
270  return _pImpl ? _pImpl->GetEntry( nPos ) : nullptr;
271 }
272 
274 {
275  return _pImpl ? _pImpl->GetFirstSelectedEntry() : nullptr;
276 }
277 
279 {
281  _aClickIconHdl.Call( this );
282 }
283 
285 {
286  bool bKeyUsed = DoKeyInput( rKEvt );
287  if ( !bKeyUsed )
288  {
289  Control::KeyInput( rKEvt );
290  }
291 }
293 {
294  return _pImpl->KeyInput( rKEvt );
295 }
297 {
298  return _pImpl->GetEntryListPos( pEntry );
299 }
301 {
302  return _pImpl->GetCurEntry( );
303 }
305 {
306  _pImpl->SetCursor( pEntry );
307 }
308 
310 {
311  if ( ((rDCEvt.GetType() == DataChangedEventType::SETTINGS) ||
313  (rDCEvt.GetType() == DataChangedEventType::FONTS) ) &&
314  (rDCEvt.GetFlags() & AllSettingsFlags::STYLE) )
315  {
316  _pImpl->InitSettings();
318  }
319  else
320  Control::DataChanged( rDCEvt );
321 }
322 
324 {
325  if( rPaper == GetBackground() )
326  return;
327 
328  const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings();
329  // if it is the default (empty) wallpaper
330  if (rPaper.IsEmpty())
331  {
332  Control::SetBackground( rStyleSettings.GetFieldColor() );
333  }
334  else
335  {
336  Wallpaper aBackground( rPaper );
337  // HACK, as background might be transparent!
338  if( !aBackground.IsBitmap() )
339  aBackground.SetStyle( WallpaperStyle::Tile );
340 
341  WallpaperStyle eStyle = aBackground.GetStyle();
342  Color aBack( aBackground.GetColor());
343  if( aBack == COL_TRANSPARENT &&
344  (!aBackground.IsBitmap() ||
345  aBackground.GetBitmap().IsAlpha() ||
346  (eStyle != WallpaperStyle::Tile && eStyle != WallpaperStyle::Scale)) )
347  {
348  aBackground.SetColor( rStyleSettings.GetFieldColor() );
349  }
350  if( aBackground.IsScrollable() )
351  {
352  tools::Rectangle aRect;
353  aRect.SetSize( Size(32765, 32765) );
354  aBackground.SetRect( aRect );
355  }
356  else
357  {
358  tools::Rectangle aRect( _pImpl->GetOutputRect() );
359  aBackground.SetRect( aRect );
360  }
361  Control::SetBackground( aBackground );
362  }
363 
364  // If text colors are attributed "hard," don't use automatism to select
365  // a readable text color.
366  vcl::Font aFont( GetFont() );
367  aFont.SetColor( rStyleSettings.GetFieldTextColor() );
368  SetFont( aFont );
369 
371 }
372 
374 {
375  if ( !_pImpl->RequestHelp( rHEvt ) )
376  Control::RequestHelp( rHEvt );
377 }
378 
380 {
381  return _pImpl->GetEntryBoundRect( pEntry );
382 }
383 
385 {
387  const_cast<SvtIconChoiceCtrl*>(this)->Invalidate();
388 }
389 
390 tools::Rectangle SvtIconChoiceCtrl::GetEntryCharacterBounds( const sal_Int32 _nEntryPos, const sal_Int32 _nCharacterIndex ) const
391 {
392  tools::Rectangle aRect;
393 
394  Pair aEntryCharacterRange = GetLineStartEnd( _nEntryPos );
395  if ( aEntryCharacterRange.A() + _nCharacterIndex < aEntryCharacterRange.B() )
396  {
397  aRect = GetCharacterBounds( aEntryCharacterRange.A() + _nCharacterIndex );
398  }
399 
400  return aRect;
401 }
402 
404 {
405  _pImpl->SetNoSelection();
406 }
407 
409 {
410  CallEventListeners(nEvent, pData);
411 }
412 css::uno::Reference< XAccessible > SvtIconChoiceCtrl::CreateAccessible()
413 {
415  DBG_ASSERT( pParent, "SvTreeListBox::CreateAccessible - accessible parent not found" );
416 
417  css::uno::Reference< XAccessible > xAccessible;
418  if ( pParent )
419  {
420  css::uno::Reference< XAccessible > xAccParent = pParent->GetAccessible();
421  if ( xAccParent.is() )
422  {
423  css::uno::Reference< css::awt::XWindowPeer > xHoldAlive(GetComponentInterface());
424  xAccessible = _pImpl->GetAccessibleFactory().createAccessibleIconChoiceCtrl( *this, xAccParent );
425  }
426  }
427  return xAccessible;
428 }
429 
431 {
432  OString sId;
435 };
436 
438  : VclHBox(pParent)
439  , m_xChooser(VclPtr<SvtIconChoiceCtrl>::Create(this, WB_3DLOOK | WB_ICON | WB_BORDER |
443  , m_xBox(VclPtr<VclVBox>::Create(this))
444 {
446  SetType(WindowType::VERTICALTABCONTROL);
448  m_xChooser->SetClickHdl(LINK(this, VerticalTabControl, ChosePageHdl_Impl));
451  m_xChooser->SetSizePixel(Size(110, 400));
452  m_xBox->set_vexpand(true);
453  m_xBox->set_hexpand(true);
454  m_xBox->set_expand(true);
455  m_xBox->Show();
456  m_xChooser->Show();
457 }
458 
460 {
461  disposeOnce();
462 }
463 
465 {
469 }
470 
472 {
473  SvxIconChoiceCtrlEntry *pEntry = m_xChooser->GetSelectedEntry();
474  if (!pEntry)
475  pEntry = m_xChooser->GetCursor();
476 
477  VerticalTabPageData* pData = GetPageData(pEntry);
478 
479  if (pData->sId != m_sCurrentPageId)
480  SetCurPageId(pData->sId);
481 }
482 
484 {
485  m_aActivateHdl.Call( this );
486 }
487 
489 {
490  return !m_aDeactivateHdl.IsSet() || m_aDeactivateHdl.Call(this);
491 }
492 
494 {
495  VerticalTabPageData* pRet = nullptr;
496  for (auto & pData : maPageList)
497  {
498  if (pData->pEntry == pEntry)
499  {
500  pRet = pData.get();
501  break;
502  }
503  }
504  return pRet;
505 }
506 
508 {
509  VerticalTabPageData* pRet = nullptr;
510  for (auto & pData : maPageList)
511  {
512  if (pData->sId == rId)
513  {
514  pRet = pData.get();
515  break;
516  }
517  }
518  return pRet;
519 }
520 
521 void VerticalTabControl::SetCurPageId(const OString& rId)
522 {
523  OString sOldPageId = GetCurPageId();
524  if (sOldPageId == rId)
525  return;
526 
527  VerticalTabPageData* pOldData = GetPageData(sOldPageId);
528  if (pOldData && pOldData->xPage)
529  {
530  if (!DeactivatePage())
531  return;
532  pOldData->xPage->Hide();
533  }
534 
535  m_sCurrentPageId = "";
536 
537  VerticalTabPageData* pNewData = GetPageData(rId);
538  if (pNewData && pNewData->xPage)
539  {
540  m_sCurrentPageId = rId;
541  m_xChooser->SetCursor(pNewData->pEntry);
542 
543  ActivatePage();
544  pNewData->xPage->Show();
545  }
546  collectUIInformation(get_id(),OStringToOUString(m_sCurrentPageId,RTL_TEXTENCODING_UTF8));
547 }
548 
549 const OString & VerticalTabControl::GetPageId(sal_uInt16 nIndex) const
550 {
551  return maPageList[nIndex]->sId;
552 }
553 
554 void VerticalTabControl::InsertPage(const rtl::OString &rIdent, const rtl::OUString& rLabel, const Image& rImage,
555  const rtl::OUString& rTooltip, VclPtr<vcl::Window> xPage, int nPos)
556 {
557  SvxIconChoiceCtrlEntry* pEntry = m_xChooser->InsertEntry(rLabel, rImage);
558  pEntry->SetQuickHelpText(rTooltip);
560  VerticalTabPageData* pNew;
561  if (nPos == -1)
562  {
563  maPageList.emplace_back(new VerticalTabPageData);
564  pNew = maPageList.back().get();
565  }
566  else
567  {
568  maPageList.emplace(maPageList.begin() + nPos, new VerticalTabPageData);
569  pNew = maPageList[nPos].get();
570  }
571  pNew->sId = rIdent;
572  pNew->pEntry = pEntry;
573  pNew->xPage = xPage;
574  Size aOrigPrefSize(m_xBox->get_preferred_size());
575  Size aPagePrefSize(xPage->get_preferred_size());
576  m_xBox->set_width_request(std::max(aOrigPrefSize.Width(), aPagePrefSize.Width()));
577  m_xBox->set_height_request(std::max(aOrigPrefSize.Height(), aPagePrefSize.Height()));
578  pNew->xPage->Hide();
579 }
580 
581 void VerticalTabControl::RemovePage(std::string_view rPageId)
582 {
583  for (auto it = maPageList.begin(), end = maPageList.end(); it != end; ++it)
584  {
585  VerticalTabPageData* pData = it->get();
586  if (pData->sId == rPageId)
587  {
588  sal_Int32 nEntryListPos = m_xChooser->GetEntryListPos(pData->pEntry);
589  m_xChooser->RemoveEntry(nEntryListPos);
591  maPageList.erase(it);
592  break;
593  }
594  }
595 }
596 
597 sal_uInt16 VerticalTabControl::GetPagePos(std::string_view rPageId) const
598 {
600  if (!pData)
601  return TAB_PAGE_NOTFOUND;
602  return m_xChooser->GetEntryListPos(pData->pEntry);
603 }
604 
605 VclPtr<vcl::Window> VerticalTabControl::GetPage(std::string_view rPageId) const
606 {
608  if (!pData)
609  return nullptr;
610  return pData->xPage;
611 }
612 
613 OUString VerticalTabControl::GetPageText(std::string_view rPageId) const
614 {
616  if (!pData)
617  return OUString();
618  return pData->pEntry->GetText();
619 }
620 
621 void VerticalTabControl::SetPageText(std::string_view rPageId, const OUString& rText)
622 {
624  if (!pData)
625  return;
626  pData->pEntry->SetText(rText);
627 }
628 
630 {
632 }
633 
634 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
void SetEntryTextMode(SvxIconChoiceCtrlTextMode eMode, SvxIconChoiceCtrlEntry *pEntry)
Definition: ivctrl.cxx:257
void CreateLayoutData() const
creates the mpData->mpLayoutData structure
Definition: ctrl.cxx:84
void SetBackground()
Definition: window3.cxx:100
virtual void Command(const CommandEvent &rCEvt) override
Definition: ivctrl.cxx:248
VclPtr< vcl::Window > xPage
the TabPage itself
Definition: ivctrl.cxx:434
Link< SvtIconChoiceCtrl *, void > _aClickIconHdl
Definition: ivctrl.hxx:181
const OString & GetCurPageId() const
void SetFont(const vcl::Font &rFont)
Definition: ivctrl.cxx:225
void DrawImage(const Point &rPos, const Image &rImage, DrawImageFlags nStyle=DrawImageFlags::NONE)
This is an overloaded member function, provided for convenience. It differs from the above function o...
SvxIconChoiceCtrlEntry * GetSelectedEntry() const
Definition: ivctrl.cxx:273
void setWidth(tools::Long nWidth)
void RemoveEntry(sal_Int32 nEntryListPos)
Definition: ivctrl.cxx:128
virtual void MouseButtonDown(const MouseEvent &rMEvt)
Definition: mouse.cxx:420
SvxIconChoiceCtrlEntry * InsertEntry(const OUString &rText, const Image &rImage)
Definition: ivctrl.cxx:119
Pair GetLineStartEnd(tools::Long nLine) const
Definition: ctrl.cxx:172
VerticalTabControl(vcl::Window *pParent)
Definition: ivctrl.cxx:437
void RemovePage(std::string_view rPageId)
Definition: ivctrl.cxx:581
void SetSelectionMode(SelectionMode eMode)
Definition: ivctrl.cxx:99
std::unique_ptr< sal_Int32[]> pData
vcl::Window * GetAccessibleParentWindow() const
void Create(SwFormatVertOrient &rItem, SvStream &rStrm, sal_uInt16 nVersionAbusedAsSize)
static std::unique_ptr< UIObject > create(vcl::Window *pWindow)
tools::Rectangle GetBoundingBox(SvxIconChoiceCtrlEntry *pEntry) const
Definition: ivctrl.cxx:379
constexpr::Color COL_TRANSPARENT(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
void disposeAndClear()
Definition: vclptr.hxx:200
const StyleSettings & GetStyleSettings() const
std::function< std::unique_ptr< UIObject >vcl::Window *)> FactoryFunction
VclPtr< vcl::Window > GetPage(std::string_view rPageId) const
Definition: ivctrl.cxx:605
virtual void SetSizePixel(const Size &rNewSize)
Definition: window2.cxx:1285
void SetColor(const Color &rColor)
Definition: wall.cxx:156
virtual void MouseMove(const MouseEvent &rMEvt) override
Definition: ivctrl.cxx:160
SvtIconChoiceCtrl(vcl::Window *pParent, WinBits nWinStyle)
Definition: ivctrl.cxx:87
void set_height_request(sal_Int32 nHeightRequest)
Definition: window2.cxx:1634
SelectionMode
Definition: vclenum.hxx:26
Link< VerticalTabControl *, void > m_aActivateHdl
DataChangedEventType GetType() const
Definition: event.hxx:362
WallpaperStyle GetStyle() const
Definition: wall.hxx:74
virtual ~VerticalTabControl() override
Definition: ivctrl.cxx:459
IMPL_LINK_NOARG(VerticalTabControl, ChosePageHdl_Impl, SvtIconChoiceCtrl *, void)
Definition: ivctrl.cxx:471
VerticalTabPageData * GetPageData(std::string_view rId) const
Definition: ivctrl.cxx:507
virtual void dispose() override
This is intended to be used to clear any locally held references to other Window-subclass objects...
Definition: window.cxx:140
void SetType(WindowType nType)
Definition: window2.cxx:991
virtual void MouseButtonUp(const MouseEvent &rMEvt)
Definition: mouse.cxx:427
#define WB_NOCOLUMNHEADER
Definition: ivctrl.hxx:171
virtual void KeyInput(const KeyEvent &rKEvt) override
Definition: ivctrl.cxx:284
const Color & GetFieldTextColor() const
sal_uInt16 GetPagePos(std::string_view rPageId) const
Definition: ivctrl.cxx:597
NONE
void SetPageText(std::string_view rPageId, const OUString &rText)
Definition: ivctrl.cxx:621
static UITestLogger & getInstance()
Definition: logger.cxx:611
std::unique_ptr< SvxIconChoiceCtrl_Impl, o3tl::default_delete< SvxIconChoiceCtrl_Impl > > _pImpl
Definition: ivctrl.hxx:182
void logEvent(const EventDescription &rDescription)
Definition: logger.cxx:372
sal_Int64 WinBits
void CallImplEventListeners(VclEventId nEvent, void *pData)
Definition: ivctrl.cxx:408
SvxIconChoiceCtrlEntry * pEntry
Definition: ivctrl.cxx:433
bool IsAlpha() const
Definition: BitmapEx.cxx:193
virtual void MouseButtonUp(const MouseEvent &rMEvt) override
Definition: ivctrl.cxx:154
const OUString & get_id() const
Get the ID of the window.
Definition: window.cxx:3935
virtual css::uno::Reference< css::awt::XWindowPeer > GetComponentInterface(bool bCreate=true)
Definition: window.cxx:3151
void SetQuickHelpText(const OUString &rText)
Definition: ivctrl.hxx:117
void SetCurPageId(const OString &rId)
Definition: ivctrl.cxx:521
css::uno::Reference< css::accessibility::XAccessible > GetAccessible(bool bCreate=true)
virtual void SetCurPageId(const OString &rName) override
VclPtr< VclVBox > m_xBox
void Hide()
Definition: window.hxx:884
AllSettingsFlags GetFlags() const
Definition: event.hxx:363
VclEventId
Definition: vclevent.hxx:37
constexpr tools::Long GetWidth() const
void set_vexpand(bool bExpand)
Definition: window2.cxx:1757
void set_width_request(sal_Int32 nWidthRequest)
Definition: window2.cxx:1648
bool DoKeyInput(const KeyEvent &rKEvt)
Definition: ivctrl.cxx:292
constexpr tools::Long getHeight() const
#define WB_NODRAGSELECTION
Definition: ivctrl.hxx:167
sal_Int32 GetEntryCount() const
Definition: ivctrl.cxx:263
SvxIconChoiceCtrlEntry * GetCursor() const
Definition: ivctrl.cxx:300
WinBits const WB_DIALOGCONTROL
void SetLineColor()
Definition: line.cxx:36
virtual void Resize() override
Definition: ivctrl.cxx:203
virtual void LoseFocus() override
Definition: ivctrl.cxx:218
#define DBG_ASSERT(sCon, aError)
int i
Link< VerticalTabControl *, bool > m_aDeactivateHdl
void SetRect(const tools::Rectangle &rRect)
Definition: wall.hxx:84
virtual void MouseButtonDown(const MouseEvent &rMEvt) override
Definition: ivctrl.cxx:148
VclPtr< SvtIconChoiceCtrl > m_xChooser
void SetStyle(WallpaperStyle eStyle)
Definition: wall.cxx:165
static void DrawEntryImage(SvxIconChoiceCtrlEntry const *pEntry, const Point &rPos, OutputDevice &rDev)
Definition: ivctrl.cxx:133
void SetSize(const Size &rSize)
virtual void FillLayoutData() const override
Definition: ivctrl.cxx:384
virtual void Invalidate(InvalidateFlags nFlags=InvalidateFlags::NONE)
Definition: paint.cxx:1143
const Color & GetColor() const
Definition: wall.hxx:71
static OUString GetEntryText(SvxIconChoiceCtrlEntry const *pEntry)
Definition: ivctrl.cxx:138
void CallEventListeners(VclEventId nEvent, void *pData=nullptr)
Definition: ctrl.cxx:293
void ActivatePage()
Definition: ivctrl.cxx:483
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
Definition: outdev.hxx:175
const AllSettings & GetSettings() const
Definition: window3.cxx:129
const Color & GetFieldColor() const
CommandEventId GetCommand() const
void SetClickHdl(const Link< SvtIconChoiceCtrl *, void > &rLink)
Definition: ivctrl.hxx:219
SvxIconChoiceCtrlEntry * GetEntry(sal_Int32 nPos) const
Definition: ivctrl.cxx:268
Size get_preferred_size() const
Definition: window2.cxx:1684
virtual void dispose() override
This is intended to be used to clear any locally held references to other Window-subclass objects...
Definition: ctrl.cxx:58
SvxIconViewFlags
Definition: ivctrl.hxx:36
void ArrangeIcons()
Definition: ivctrl.cxx:165
virtual void LoseFocus()
Definition: window.cxx:1858
void InsertPage(const OString &rPageId, const OUString &rLabel, const Image &rImage, const OUString &rTooltip, VclPtr< vcl::Window > xPage, int nPos=-1)
Definition: ivctrl.cxx:554
void SetStyle(WinBits nStyle)
Definition: window.cxx:1965
enumrange< T >::Iterator end(enumrange< T >)
sal_Int32 GetEntryListPos(SvxIconChoiceCtrlEntry const *pEntry) const
Definition: ivctrl.cxx:296
void SetColor(const Color &)
Definition: font/font.cxx:106
#define WB_NOHSCROLL
Definition: ivctrl.hxx:164
WinBits GetStyle() const
Definition: ivctrl.cxx:243
void SetPointFont(vcl::RenderContext &rRenderContext, const vcl::Font &rFont)
Definition: window.cxx:2176
virtual void DataChanged(const DataChangedEvent &rDCEvt) override
Definition: ivctrl.cxx:309
virtual void KeyInput(const KeyEvent &rKEvt)
Definition: window.cxx:1808
void SetCursor(SvxIconChoiceCtrlEntry *pEntry)
Definition: ivctrl.cxx:304
virtual ~SvtIconChoiceCtrl() override
Definition: ivctrl.cxx:104
WinBits const WB_3DLOOK
tools::Long A() const
#define TAB_PAGE_NOTFOUND
Definition: tabctrl.hxx:39
void ClickIcon()
Definition: ivctrl.cxx:278
SvxIconChoiceCtrlTextMode
Definition: ivctrl.hxx:49
virtual void dispose() override
This is intended to be used to clear any locally held references to other Window-subclass objects...
Definition: ivctrl.cxx:109
const OString & GetPageId(sal_uInt16 nIndex) const
Definition: ivctrl.cxx:549
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect) override
Definition: ivctrl.cxx:143
virtual void Resize() override
Definition: ctrl.cxx:74
void SetPointFont(const vcl::Font &rFont)
Definition: ivctrl.cxx:234
void set_hexpand(bool bExpand)
Definition: window2.cxx:1745
Definition: ctrl.hxx:81
virtual void GetFocus()
Definition: window.cxx:1844
const BitmapEx & GetBitmap() const
Definition: wall.cxx:184
WinBits const WB_BORDER
WallpaperStyle
Definition: wall.hxx:34
::OutputDevice const * GetOutDev() const
Definition: window.cxx:568
Definition: image.hxx:39
#define WB_ICON
Definition: ivctrl.hxx:161
#define WB_ALIGN_LEFT
Definition: ivctrl.hxx:170
bool IsScrollable() const
Definition: wall.cxx:245
tools::Rectangle GetCharacterBounds(tools::Long nIndex) const
Definition: ctrl.cxx:110
virtual void RequestHelp(const HelpEvent &rHEvt) override
Definition: ivctrl.cxx:373
const vcl::Font & GetFont() const
Definition: window3.cxx:58
WinBits const WB_TABSTOP
bool IsBitmap() const
Definition: wall.cxx:189
void setHeight(tools::Long nHeight)
tools::Long B() const
virtual void MouseMove(const MouseEvent &rMEvt)
Definition: mouse.cxx:414
virtual void GetFocus() override
Definition: ivctrl.cxx:209
WinBits GetStyle() const
Definition: window2.cxx:976
void SetFont(const vcl::Font &rNewFont)
Definition: window3.cxx:59
constexpr tools::Long getWidth() const
static OUString EraseAllMnemonicChars(const OUString &rStr)
Definition: mnemonic.cxx:312
virtual FactoryFunction GetUITestFactory() const override
Definition: ivctrl.cxx:629
const Image & GetImage() const
Definition: ivctrl.hxx:113
std::map< OUString, OUString > aParameters
virtual void Command(const CommandEvent &rCEvt)
Definition: window.cxx:1926
vcl::Font GetPointFont(vcl::RenderContext const &rRenderContext) const
Definition: window.cxx:2183
#define WB_ALIGN_TOP
Definition: ivctrl.hxx:169
const OUString & GetText() const
Definition: ivctrl.hxx:115
const Wallpaper & GetBackground() const
Definition: window3.cxx:63
tools::Rectangle GetEntryCharacterBounds(const sal_Int32 _nEntryPos, const sal_Int32 _nCharacterIndex) const
Definition: ivctrl.cxx:390
OUString GetPageText(std::string_view rPageId) const
Definition: ivctrl.cxx:613
virtual void RequestHelp(const HelpEvent &rHEvt)
Definition: window.cxx:1872
The child windows are not invalidated.
SvxIconChoiceCtrlEntry(const OUString &rText, const Image &rImage)
Definition: ivctrl.cxx:56
virtual void dispose() override
This is intended to be used to clear any locally held references to other Window-subclass objects...
Definition: ivctrl.cxx:464
#define WB_HIGHLIGHTFRAME
Definition: ivctrl.hxx:172
void SetText(const OUString &rText)
Definition: ivctrl.hxx:114
WinBits const WB_CLIPCHILDREN
OUString VCL_DLLPUBLIC GetDisplayText() const
Definition: ivctrl.cxx:70
bool IsEmpty() const
Definition: wall.hxx:98
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessible() override
Creates and returns the accessible object of the Box.
Definition: ivctrl.cxx:412
sal_uInt16 nPos
std::vector< std::unique_ptr< VerticalTabPageData > > maPageList
void set_expand(bool bExpand)
Definition: window2.cxx:1769
virtual void DataChanged(const DataChangedEvent &rDCEvt)
Definition: event.cxx:36
bool DeactivatePage()
Definition: ivctrl.cxx:488
constexpr tools::Long GetHeight() const
void Show(bool bVisible=true, ShowFlags nFlags=ShowFlags::NONE)
Definition: window.cxx:2190
void SetNoSelection()
Definition: ivctrl.cxx:403