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