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