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 , const OUString& aParent )
40 {
41  EventDescription aDescription;
42  aDescription.aID = aID;
43  aDescription.aParameters = {{ "POS" , aPos}};
44  aDescription.aAction = "SELECT";
45  aDescription.aParent = aParent;
46  aDescription.aKeyWord = "VerticalTab";
47  UITestLogger::getInstance().logEvent(aDescription);
48 }
49 }
50 
51 /*****************************************************************************
52 |
53 | class : SvxIconChoiceCtrlEntry
54 |
55 \*****************************************************************************/
56 
58  const Image& rImage )
59  : aImage(rImage)
60  , aText(rText)
61  , nPos(0)
62  , pblink(nullptr)
63  , pflink(nullptr)
64  , eTextMode(SvxIconChoiceCtrlTextMode::Short)
65  , nX(0)
66  , nY(0)
67  , nFlags(SvxIconViewFlags::NONE)
68 {
69 }
70 
72 {
74 }
75 
76 
78 {
79  nWidth = rInfo.nWidth;
80 }
81 
82 /*****************************************************************************
83 |
84 | class : SvtIconChoiceCtrl
85 |
86 \*****************************************************************************/
87 
89 
90  // WB_CLIPCHILDREN on, as ScrollBars lie on the window!
91  Control( pParent, nWinStyle | WB_CLIPCHILDREN ),
92 
93  _pImpl ( new SvxIconChoiceCtrl_Impl( this, nWinStyle ) )
94 {
95  SetLineColor();
96  _pImpl->InitSettings();
98 }
99 
101 {
102  _pImpl->SetSelectionMode(eMode);
103 }
104 
106 {
107  disposeOnce();
108 }
109 
111 {
112  if (_pImpl)
113  {
114  _pImpl->CallEventListeners( VclEventId::ObjectDying, nullptr );
115  _pImpl.reset();
116  }
118 }
119 
120 SvxIconChoiceCtrlEntry* SvtIconChoiceCtrl::InsertEntry( const OUString& rText, const Image& rImage )
121 {
122  SvxIconChoiceCtrlEntry* pEntry = new SvxIconChoiceCtrlEntry( rText, rImage);
123 
124  _pImpl->InsertEntry(std::unique_ptr<SvxIconChoiceCtrlEntry>(pEntry), _pImpl->GetEntryCount());
125 
126  return pEntry;
127 }
128 
129 void SvtIconChoiceCtrl::RemoveEntry(sal_Int32 nIndex)
130 {
131  _pImpl->RemoveEntry(nIndex);
132 }
133 
134 void SvtIconChoiceCtrl::DrawEntryImage( SvxIconChoiceCtrlEntry const * pEntry, const Point& rPos, OutputDevice& rDev )
135 {
136  rDev.DrawImage( rPos, pEntry->GetImage() );
137 }
138 
140 {
141  return pEntry->GetText();
142 }
143 
145 {
146  _pImpl->Paint(rRenderContext, rRect);
147 }
148 
150 {
151  if( !_pImpl->MouseButtonDown( rMEvt ) )
152  Control::MouseButtonDown( rMEvt );
153 }
154 
156 {
157  if( !_pImpl->MouseButtonUp( rMEvt ) )
158  Control::MouseButtonUp( rMEvt );
159 }
160 
162 {
163  if( !_pImpl->MouseMove( rMEvt ) )
164  Control::MouseMove( rMEvt );
165 }
167 {
168  if ( GetStyle() & WB_ALIGN_TOP )
169  {
170  Size aFullSize;
171  tools::Rectangle aEntryRect;
172 
173  for ( sal_Int32 i = 0; i < GetEntryCount(); i++ )
174  {
175  SvxIconChoiceCtrlEntry* pEntry = GetEntry ( i );
176  aEntryRect = _pImpl->GetEntryBoundRect ( pEntry );
177 
178  aFullSize.setWidth ( aFullSize.getWidth()+aEntryRect.GetWidth() );
179  }
180 
181  _pImpl->Arrange ( false, aFullSize.getWidth(), 0 );
182  }
183  else if ( GetStyle() & WB_ALIGN_LEFT )
184  {
185  Size aFullSize;
186  tools::Rectangle aEntryRect;
187 
188  for ( sal_Int32 i = 0; i < GetEntryCount(); i++ )
189  {
190  SvxIconChoiceCtrlEntry* pEntry = GetEntry ( i );
191  aEntryRect = _pImpl->GetEntryBoundRect ( pEntry );
192 
193  aFullSize.setHeight ( aFullSize.getHeight()+aEntryRect.GetHeight() );
194  }
195 
196  _pImpl->Arrange ( false, 0, aFullSize.getHeight() );
197  }
198  else
199  {
200  _pImpl->Arrange(false, 0, 0);
201  }
202  _pImpl->Arrange( false, 0, 1000 );
203 }
205 {
206  _pImpl->Resize();
207  Control::Resize();
208 }
209 
211 {
212  _pImpl->GetFocus();
214  SvxIconChoiceCtrlEntry* pSelectedEntry = GetSelectedEntry();
215  if ( pSelectedEntry )
216  _pImpl->CallEventListeners( VclEventId::ListboxSelect, pSelectedEntry );
217 }
218 
220 {
221  if (_pImpl)
222  _pImpl->LoseFocus();
224 }
225 
227 {
228  if (rFont != GetFont())
229  {
230  Control::SetFont(rFont);
231  _pImpl->FontModified();
232  }
233 }
234 
236 {
237  if (rFont != GetPointFont(*this)) //FIXME
238  {
239  Control::SetPointFont(*this, rFont); //FIXME
240  _pImpl->FontModified();
241  }
242 }
243 
245 {
246  return _pImpl->GetStyle();
247 }
248 
250 {
251  _pImpl->Command( rCEvt );
252  //pass at least alt press/release to parent impl
254  Control::Command(rCEvt);
255 }
256 
257 #ifdef DBG_UTIL
259 {
260  _pImpl->SetEntryTextMode( eMode, pEntry );
261 }
262 #endif
263 
265 {
266  return _pImpl ? _pImpl->GetEntryCount() : 0;
267 }
268 
270 {
271  return _pImpl ? _pImpl->GetEntry( nPos ) : nullptr;
272 }
273 
275 {
276  return _pImpl ? _pImpl->GetFirstSelectedEntry() : nullptr;
277 }
278 
280 {
282  _aClickIconHdl.Call( this );
283 }
284 
286 {
287  bool bKeyUsed = DoKeyInput( rKEvt );
288  if ( !bKeyUsed )
289  {
290  Control::KeyInput( rKEvt );
291  }
292 }
294 {
295  return _pImpl->KeyInput( rKEvt );
296 }
298 {
299  return _pImpl->GetEntryListPos( pEntry );
300 }
302 {
303  return _pImpl->GetCurEntry( );
304 }
306 {
307  _pImpl->SetCursor( 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  return _pImpl->GetEntryBoundRect( pEntry );
383 }
384 
386 {
388  const_cast<SvtIconChoiceCtrl*>(this)->Invalidate();
389 }
390 
391 tools::Rectangle SvtIconChoiceCtrl::GetEntryCharacterBounds( const sal_Int32 _nEntryPos, const sal_Int32 _nCharacterIndex ) const
392 {
393  tools::Rectangle aRect;
394 
395  Pair aEntryCharacterRange = GetLineStartEnd( _nEntryPos );
396  if ( aEntryCharacterRange.A() + _nCharacterIndex < aEntryCharacterRange.B() )
397  {
398  aRect = GetCharacterBounds( aEntryCharacterRange.A() + _nCharacterIndex );
399  }
400 
401  return aRect;
402 }
403 
405 {
406  _pImpl->SetNoSelection();
407 }
408 
410 {
411  CallEventListeners(nEvent, pData);
412 }
413 css::uno::Reference< XAccessible > SvtIconChoiceCtrl::CreateAccessible()
414 {
416  DBG_ASSERT( pParent, "SvTreeListBox::CreateAccessible - accessible parent not found" );
417 
418  css::uno::Reference< XAccessible > xAccessible;
419  if ( pParent )
420  {
421  css::uno::Reference< XAccessible > xAccParent = pParent->GetAccessible();
422  if ( xAccParent.is() )
423  {
424  css::uno::Reference< css::awt::XWindowPeer > xHoldAlive(GetComponentInterface());
425  xAccessible = _pImpl->GetAccessibleFactory().createAccessibleIconChoiceCtrl( *this, xAccParent );
426  }
427  }
428  return xAccessible;
429 }
430 
432 {
433  OString sId;
436 };
437 
439  : VclHBox(pParent)
440  , m_xChooser(VclPtr<SvtIconChoiceCtrl>::Create(this, WB_3DLOOK | WB_ICON | WB_BORDER |
444  , m_xBox(VclPtr<VclVBox>::Create(this))
445 {
447  SetType(WindowType::VERTICALTABCONTROL);
449  m_xChooser->SetClickHdl(LINK(this, VerticalTabControl, ChosePageHdl_Impl));
452  m_xChooser->SetSizePixel(Size(110, 400));
453  m_xBox->set_vexpand(true);
454  m_xBox->set_hexpand(true);
455  m_xBox->set_expand(true);
456  m_xBox->Show();
457  m_xChooser->Show();
458 }
459 
461 {
462  disposeOnce();
463 }
464 
466 {
470 }
471 
473 {
474  SvxIconChoiceCtrlEntry *pEntry = m_xChooser->GetSelectedEntry();
475  if (!pEntry)
476  pEntry = m_xChooser->GetCursor();
477 
478  VerticalTabPageData* pData = GetPageData(pEntry);
479 
480  if (pData->sId != m_sCurrentPageId)
481  SetCurPageId(pData->sId);
482 }
483 
485 {
486  m_aActivateHdl.Call( this );
487 }
488 
490 {
491  return !m_aDeactivateHdl.IsSet() || m_aDeactivateHdl.Call(this);
492 }
493 
495 {
496  VerticalTabPageData* pRet = nullptr;
497  for (auto & pData : maPageList)
498  {
499  if (pData->pEntry == pEntry)
500  {
501  pRet = pData.get();
502  break;
503  }
504  }
505  return pRet;
506 }
507 
509 {
510  VerticalTabPageData* pRet = nullptr;
511  for (auto & pData : maPageList)
512  {
513  if (pData->sId == rId)
514  {
515  pRet = pData.get();
516  break;
517  }
518  }
519  return pRet;
520 }
521 
522 void VerticalTabControl::SetCurPageId(const OString& rId)
523 {
524  OString sOldPageId = GetCurPageId();
525  if (sOldPageId == rId)
526  return;
527 
528  VerticalTabPageData* pOldData = GetPageData(sOldPageId);
529  if (pOldData && pOldData->xPage)
530  {
531  if (!DeactivatePage())
532  return;
533  pOldData->xPage->Hide();
534  }
535 
536  m_sCurrentPageId = "";
537 
538  VerticalTabPageData* pNewData = GetPageData(rId);
539  if (pNewData && pNewData->xPage)
540  {
541  m_sCurrentPageId = rId;
542  m_xChooser->SetCursor(pNewData->pEntry);
543 
544  ActivatePage();
545  pNewData->xPage->Show();
546  }
547  collectUIInformation(get_id(),OStringToOUString(m_sCurrentPageId,RTL_TEXTENCODING_UTF8), GetPageParent()->get_id());
548 }
549 
550 OString VerticalTabControl::GetPageId(sal_uInt16 nIndex) const
551 {
552  return maPageList[nIndex]->sId;
553 }
554 
555 void VerticalTabControl::InsertPage(const rtl::OString &rIdent, const rtl::OUString& rLabel, const Image& rImage,
556  const rtl::OUString& rTooltip, VclPtr<vcl::Window> xPage, int nPos)
557 {
558  SvxIconChoiceCtrlEntry* pEntry = m_xChooser->InsertEntry(rLabel, rImage);
559  pEntry->SetQuickHelpText(rTooltip);
561  VerticalTabPageData* pNew;
562  if (nPos == -1)
563  {
564  maPageList.emplace_back(new VerticalTabPageData);
565  pNew = maPageList.back().get();
566  }
567  else
568  {
569  maPageList.emplace(maPageList.begin() + nPos, new VerticalTabPageData);
570  pNew = maPageList[nPos].get();
571  }
572  pNew->sId = rIdent;
573  pNew->pEntry = pEntry;
574  pNew->xPage = xPage;
575  Size aOrigPrefSize(m_xBox->get_preferred_size());
576  Size aPagePrefSize(xPage->get_preferred_size());
577  m_xBox->set_width_request(std::max(aOrigPrefSize.Width(), aPagePrefSize.Width()));
578  m_xBox->set_height_request(std::max(aOrigPrefSize.Height(), aPagePrefSize.Height()));
579  pNew->xPage->Hide();
580 }
581 
582 void VerticalTabControl::RemovePage(const rtl::OString &rPageId)
583 {
584  for (auto it = maPageList.begin(), end = maPageList.end(); it != end; ++it)
585  {
586  VerticalTabPageData* pData = it->get();
587  if (pData->sId == rPageId)
588  {
589  sal_Int32 nEntryListPos = m_xChooser->GetEntryListPos(pData->pEntry);
590  m_xChooser->RemoveEntry(nEntryListPos);
592  maPageList.erase(it);
593  break;
594  }
595  }
596 }
597 
598 sal_uInt16 VerticalTabControl::GetPagePos(const OString& rPageId) const
599 {
601  if (!pData)
602  return TAB_PAGE_NOTFOUND;
603  return m_xChooser->GetEntryListPos(pData->pEntry);
604 }
605 
607 {
609  if (!pData)
610  return nullptr;
611  return pData->xPage;
612 }
613 
614 OUString VerticalTabControl::GetPageText(const OString& rPageId) const
615 {
617  if (!pData)
618  return OUString();
619  return pData->pEntry->GetText();
620 }
621 
622 void VerticalTabControl::SetPageText(const OString& rPageId, const OUString& rText)
623 {
625  if (!pData)
626  return;
627  pData->pEntry->SetText(rText);
628 }
629 
631 {
633 }
634 
635 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
void SetEntryTextMode(SvxIconChoiceCtrlTextMode eMode, SvxIconChoiceCtrlEntry *pEntry)
Definition: ivctrl.cxx:258
void CreateLayoutData() const
creates the mpData->mpLayoutData structure
Definition: ctrl.cxx:84
virtual void Command(const CommandEvent &rCEvt) override
Definition: ivctrl.cxx:249
const Wallpaper & GetBackground() const
Definition: outdev.hxx:642
VclPtr< vcl::Window > xPage
the TabPage itself
Definition: ivctrl.cxx:435
Link< SvtIconChoiceCtrl *, void > _aClickIconHdl
Definition: ivctrl.hxx:181
void SetFont(const vcl::Font &rFont)
Definition: ivctrl.cxx:226
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:274
void setWidth(tools::Long nWidth)
void RemoveEntry(sal_Int32 nEntryListPos)
Definition: ivctrl.cxx:129
virtual void MouseButtonDown(const MouseEvent &rMEvt)
Definition: mouse.cxx:414
SvxIconChoiceCtrlEntry * InsertEntry(const OUString &rText, const Image &rImage)
Definition: ivctrl.cxx:120
std::unique_ptr< ContentProperties > pData
Pair GetLineStartEnd(tools::Long nLine) const
Definition: ctrl.cxx:172
OString GetCurPageId() const
VerticalTabControl(vcl::Window *pParent)
Definition: ivctrl.cxx:438
void SetSelectionMode(SelectionMode eMode)
Definition: ivctrl.cxx:100
sal_uInt16 GetPagePos(const OString &rPageId) const
Definition: ivctrl.cxx:598
vcl::Window * GetAccessibleParentWindow() const
void Create(SwFormatVertOrient &rItem, SvStream &rStrm, sal_uInt16 nVersionAbusedAsSize)
tools::Long getWidth() const
static std::unique_ptr< UIObject > create(vcl::Window *pWindow)
tools::Rectangle GetBoundingBox(SvxIconChoiceCtrlEntry *pEntry) const
Definition: ivctrl.cxx:380
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:189
virtual void MouseMove(const MouseEvent &rMEvt) override
Definition: ivctrl.cxx:161
SvtIconChoiceCtrl(vcl::Window *pParent, WinBits nWinStyle)
Definition: ivctrl.cxx:88
void set_height_request(sal_Int32 nHeightRequest)
Definition: window2.cxx:1603
SelectionMode
Definition: vclenum.hxx:26
tools::Long GetWidth() const
Link< VerticalTabControl *, void > m_aActivateHdl
DataChangedEventType GetType() const
Definition: event.hxx:356
WallpaperStyle GetStyle() const
Definition: wall.cxx:213
virtual ~VerticalTabControl() override
Definition: ivctrl.cxx:460
IMPL_LINK_NOARG(VerticalTabControl, ChosePageHdl_Impl, SvtIconChoiceCtrl *, void)
Definition: ivctrl.cxx:472
virtual void dispose() override
This is intended to be used to clear any locally held references to other Window-subclass objects...
Definition: window.cxx:147
void SetType(WindowType nType)
Definition: window2.cxx:968
virtual void MouseButtonUp(const MouseEvent &rMEvt)
Definition: mouse.cxx:421
#define WB_NOCOLUMNHEADER
Definition: ivctrl.hxx:171
virtual void KeyInput(const KeyEvent &rKEvt) override
Definition: ivctrl.cxx:285
const Color & GetFieldTextColor() const
NONE
static UITestLogger & getInstance()
Definition: logger.cxx:616
std::unique_ptr< SvxIconChoiceCtrl_Impl, o3tl::default_delete< SvxIconChoiceCtrl_Impl > > _pImpl
Definition: ivctrl.hxx:182
void logEvent(const EventDescription &rDescription)
Definition: logger.cxx:377
sal_Int64 WinBits
void CallImplEventListeners(VclEventId nEvent, void *pData)
Definition: ivctrl.cxx:409
constexpr::Color COL_TRANSPARENT(0xFF, 0xFF, 0xFF, 0xFF)
VerticalTabPageData * GetPageData(const OString &rId) const
Definition: ivctrl.cxx:508
void SetBackground()
SvxIconChoiceCtrlEntry * pEntry
Definition: ivctrl.cxx:434
virtual void MouseButtonUp(const MouseEvent &rMEvt) override
Definition: ivctrl.cxx:155
const OUString & get_id() const
Get the ID of the window.
Definition: window.cxx:3910
virtual css::uno::Reference< css::awt::XWindowPeer > GetComponentInterface(bool bCreate=true)
Definition: window.cxx:3114
void SetQuickHelpText(const OUString &rText)
Definition: ivctrl.hxx:117
void SetCurPageId(const OString &rId)
Definition: ivctrl.cxx:522
css::uno::Reference< css::accessibility::XAccessible > GetAccessible(bool bCreate=true)
const vcl::Font & GetFont() const
Definition: outdev.hxx:648
VclPtr< VclVBox > m_xBox
void Hide()
Definition: window.hxx:945
AllSettingsFlags GetFlags() const
Definition: event.hxx:357
VclEventId
Definition: vclevent.hxx:37
void set_vexpand(bool bExpand)
Definition: window2.cxx:1726
void set_width_request(sal_Int32 nWidthRequest)
Definition: window2.cxx:1617
bool DoKeyInput(const KeyEvent &rKEvt)
Definition: ivctrl.cxx:293
#define WB_NODRAGSELECTION
Definition: ivctrl.hxx:167
sal_Int32 GetEntryCount() const
Definition: ivctrl.cxx:264
SvxIconChoiceCtrlEntry * GetCursor() const
Definition: ivctrl.cxx:301
void SetPageText(const OString &rPageId, const OUString &rText)
Definition: ivctrl.cxx:622
void RemovePage(const OString &rPageId)
Definition: ivctrl.cxx:582
tools::Long getHeight() const
WinBits const WB_DIALOGCONTROL
VclPtr< vcl::Window > GetPage(const OString &rPageId)
Definition: ivctrl.cxx:606
void SetLineColor()
virtual void Resize() override
Definition: ivctrl.cxx:204
OUString GetPageText(const OString &rPageId) const
Definition: ivctrl.cxx:614
virtual void LoseFocus() override
Definition: ivctrl.cxx:219
#define DBG_ASSERT(sCon, aError)
int i
Link< VerticalTabControl *, bool > m_aDeactivateHdl
void SetRect(const tools::Rectangle &rRect)
Definition: wall.cxx:296
virtual void MouseButtonDown(const MouseEvent &rMEvt) override
Definition: ivctrl.cxx:149
VclPtr< SvtIconChoiceCtrl > m_xChooser
void SetStyle(WallpaperStyle eStyle)
Definition: wall.cxx:203
static void DrawEntryImage(SvxIconChoiceCtrlEntry const *pEntry, const Point &rPos, OutputDevice &rDev)
Definition: ivctrl.cxx:134
void SetSize(const Size &rSize)
const Color & GetColor() const
Definition: wall.cxx:198
virtual void FillLayoutData() const override
Definition: ivctrl.cxx:385
virtual void Invalidate(InvalidateFlags nFlags=InvalidateFlags::NONE)
Definition: paint.cxx:1164
static OUString GetEntryText(SvxIconChoiceCtrlEntry const *pEntry)
Definition: ivctrl.cxx:139
void CallEventListeners(VclEventId nEvent, void *pData=nullptr)
Definition: ctrl.cxx:297
void ActivatePage()
Definition: ivctrl.cxx:484
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:221
SvxIconChoiceCtrlEntry * GetEntry(sal_Int32 nPos) const
Definition: ivctrl.cxx:269
Size get_preferred_size() const
Definition: window2.cxx:1653
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:36
const AllSettings & GetSettings() const
Definition: outdev.hxx:417
void ArrangeIcons()
Definition: ivctrl.cxx:166
bool IsTransparent() const
Definition: bitmapex.cxx:217
virtual void LoseFocus()
Definition: window.cxx:1851
void InsertPage(const OString &rPageId, const OUString &rLabel, const Image &rImage, const OUString &rTooltip, VclPtr< vcl::Window > xPage, int nPos=-1)
Definition: ivctrl.cxx:555
void SetStyle(WinBits nStyle)
Definition: window.cxx:1958
enumrange< T >::Iterator end(enumrange< T >)
sal_Int32 GetEntryListPos(SvxIconChoiceCtrlEntry const *pEntry) const
Definition: ivctrl.cxx:297
void SetColor(const Color &)
Definition: font/font.cxx:80
#define WB_NOHSCROLL
Definition: ivctrl.hxx:164
WinBits GetStyle() const
Definition: ivctrl.cxx:244
void SetPointFont(vcl::RenderContext &rRenderContext, const vcl::Font &rFont)
Definition: window.cxx:2169
virtual void DataChanged(const DataChangedEvent &rDCEvt) override
Definition: ivctrl.cxx:310
virtual void KeyInput(const KeyEvent &rKEvt)
Definition: window.cxx:1801
void SetCursor(SvxIconChoiceCtrlEntry *pEntry)
Definition: ivctrl.cxx:305
virtual ~SvtIconChoiceCtrl() override
Definition: ivctrl.cxx:105
WinBits const WB_3DLOOK
tools::Long A() const
#define TAB_PAGE_NOTFOUND
Definition: tabctrl.hxx:39
void ClickIcon()
Definition: ivctrl.cxx:279
SvxIconChoiceCtrlTextMode
Definition: ivctrl.hxx:49
BitmapEx GetBitmap() const
Definition: wall.cxx:241
virtual void dispose() override
This is intended to be used to clear any locally held references to other Window-subclass objects...
Definition: ivctrl.cxx:110
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect) override
Definition: ivctrl.cxx:144
virtual void Resize() override
Definition: ctrl.cxx:74
void SetPointFont(const vcl::Font &rFont)
Definition: ivctrl.cxx:235
void set_hexpand(bool bExpand)
Definition: window2.cxx:1714
Definition: ctrl.hxx:33
virtual void GetFocus()
Definition: window.cxx:1837
WinBits const WB_BORDER
void SetFont(const vcl::Font &rNewFont)
WallpaperStyle
Definition: wall.hxx:32
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:329
tools::Rectangle GetCharacterBounds(tools::Long nIndex) const
Definition: ctrl.cxx:110
virtual void RequestHelp(const HelpEvent &rHEvt) override
Definition: ivctrl.cxx:374
WinBits const WB_TABSTOP
bool IsBitmap() const
Definition: wall.cxx:249
void setHeight(tools::Long nHeight)
tools::Long GetHeight() const
tools::Long B() const
virtual void MouseMove(const MouseEvent &rMEvt)
Definition: mouse.cxx:408
virtual void GetFocus() override
Definition: ivctrl.cxx:210
WinBits GetStyle() const
Definition: window2.cxx:953
static OUString EraseAllMnemonicChars(const OUString &rStr)
Definition: mnemonic.cxx:312
virtual FactoryFunction GetUITestFactory() const override
Definition: ivctrl.cxx:630
const Image & GetImage() const
Definition: ivctrl.hxx:113
OString GetPageId(sal_uInt16 nIndex) const
Definition: ivctrl.cxx:550
std::map< OUString, OUString > aParameters
virtual void Command(const CommandEvent &rCEvt)
Definition: window.cxx:1919
vcl::Font GetPointFont(vcl::RenderContext const &rRenderContext) const
Definition: window.cxx:2176
#define WB_ALIGN_TOP
Definition: ivctrl.hxx:169
const OUString & GetText() const
Definition: ivctrl.hxx:115
tools::Rectangle GetEntryCharacterBounds(const sal_Int32 _nEntryPos, const sal_Int32 _nCharacterIndex) const
Definition: ivctrl.cxx:391
virtual void RequestHelp(const HelpEvent &rHEvt)
Definition: window.cxx:1865
The child windows are not invalidated.
SvxIconChoiceCtrlEntry(const OUString &rText, const Image &rImage)
Definition: ivctrl.cxx:57
virtual void dispose() override
This is intended to be used to clear any locally held references to other Window-subclass objects...
Definition: ivctrl.cxx:465
#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:71
bool IsEmpty() const
Definition: wall.hxx:100
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessible() override
Creates and returns the accessible object of the Box.
Definition: ivctrl.cxx:413
vcl::Window * GetPageParent()
sal_uInt16 nPos
std::vector< std::unique_ptr< VerticalTabPageData > > maPageList
void set_expand(bool bExpand)
Definition: window2.cxx:1738
virtual void DataChanged(const DataChangedEvent &rDCEvt)
Definition: event.cxx:35
bool DeactivatePage()
Definition: ivctrl.cxx:489
void Show(bool bVisible=true, ShowFlags nFlags=ShowFlags::NONE)
Definition: window.cxx:2183
void SetNoSelection()
Definition: ivctrl.cxx:404