LibreOffice Module vcl (master)  1
svlbitm.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 #include <vcl/treelistbox.hxx>
21 #include <vcl/svlbitm.hxx>
22 #include <vcl/treelistentry.hxx>
23 #include <vcl/viewdataentry.hxx>
24 #include <vcl/svapp.hxx>
25 #include <vcl/button.hxx>
26 #include <vcl/decoview.hxx>
27 #include <vcl/salnativewidgets.hxx>
28 
30 {
35 
36  SvLBoxButtonData_Impl() : pEntry(nullptr), pBox(nullptr), bDefaultImages(false), bShowRadioButton(false) {}
37 };
38 
39 void SvLBoxButtonData::InitData( bool _bRadioBtn, const Control* pCtrl )
40 {
41  nWidth = nHeight = 0;
42 
43  aBmps.resize(int(SvBmp::HITRISTATE)+1);
44 
45  bDataOk = false;
46  pImpl->bDefaultImages = true;
47  pImpl->bShowRadioButton = _bRadioBtn;
48 
49  SetDefaultImages( pCtrl );
50 }
51 
52 SvLBoxButtonData::SvLBoxButtonData( const Control* pControlForSettings )
53  : pImpl( new SvLBoxButtonData_Impl )
54 {
55  InitData( false, pControlForSettings );
56 }
57 
58 SvLBoxButtonData::SvLBoxButtonData( const Control* pControlForSettings, bool _bRadioBtn )
59  : pImpl( new SvLBoxButtonData_Impl )
60 {
61  InitData( _bRadioBtn, pControlForSettings );
62 }
63 
65 {
66 }
67 
69 {
70  aLink.Call( this );
71 }
72 
74 {
75  SvBmp nIdx;
76  if (nItemState == SvItemStateFlags::UNCHECKED)
77  nIdx = SvBmp::UNCHECKED;
78  else if (nItemState == SvItemStateFlags::CHECKED)
79  nIdx = SvBmp::CHECKED;
80  else if (nItemState == SvItemStateFlags::TRISTATE)
81  nIdx = SvBmp::TRISTATE;
83  nIdx = SvBmp::HIUNCHECKED;
84  else if (nItemState == (SvItemStateFlags::CHECKED | SvItemStateFlags::HILIGHTED))
85  nIdx = SvBmp::HICHECKED;
87  nIdx = SvBmp::HITRISTATE;
88  else
89  nIdx = SvBmp::UNCHECKED;
90  return nIdx;
91 }
92 
94 {
95  Size aSize = aBmps[int(SvBmp::UNCHECKED)].GetSizePixel();
96  nWidth = aSize.Width();
97  nHeight = aSize.Height();
98  bDataOk = true;
99 }
100 
102 {
103  pImpl->pEntry = pActEntry;
104  pImpl->pBox = pActBox;
105 }
106 
108 {
109  nItemFlags &= SvItemStateFlags::UNCHECKED |
112  switch( nItemFlags )
113  {
117  return SvButtonState::Checked;
120  default:
122  }
123 }
124 
126 {
127  assert(pImpl && "-SvLBoxButtonData::GetActEntry(): don't use me that way!");
128  return pImpl->pEntry;
129 }
130 
132 {
133  assert(pImpl && "-SvLBoxButtonData::GetActBox(): don't use me that way!");
134  return pImpl->pBox;
135 }
136 
138 {
139  const AllSettings& rSettings = pCtrl? pCtrl->GetSettings() : Application::GetSettings();
140 
141  if ( pImpl->bShowRadioButton )
142  {
149  }
150  else
151  {
158  }
159 }
160 
162 {
163  return pImpl->bDefaultImages;
164 }
165 
167  return pImpl->bShowRadioButton;
168 }
169 
170 // ***************************************************************
171 // class SvLBoxString
172 // ***************************************************************
173 
174 
175 SvLBoxString::SvLBoxString(const OUString& rStr)
176  : mbEmphasized(false)
177  , mbCustom(false)
178  , mfAlign(0.0)
179  , maText(rStr)
180 {
181 }
182 
184  : mbEmphasized(false)
185  , mbCustom(false)
186  , mfAlign(0.0)
187 {
188 }
189 
191 {
192 }
193 
195 {
196  return SvLBoxItemType::String;
197 }
198 
200  const Point& rPos, SvTreeListBox& rDev, vcl::RenderContext& rRenderContext,
201  const SvViewDataEntry* /*pView*/, const SvTreeListEntry& rEntry)
202 {
203  Size aSize;
205  if (rDev.IsEntryMnemonicsEnabled())
206  nStyle |= DrawTextFlags::Mnemonic;
207  if (rDev.TextCenterAndClipEnabled())
208  {
210  aSize.setWidth( rDev.GetEntryWidth() );
211  }
212  else
213  {
214  if (mfAlign < 0.5 )
215  {
216  nStyle |= DrawTextFlags::Left;
217  aSize.setWidth(GetWidth(&rDev, &rEntry));
218  }
219  else if (mfAlign == 0.5)
220  {
221  nStyle |= DrawTextFlags::Center;
222  aSize.setWidth(rDev.GetBoundingRect(&rEntry).getWidth());
223  }
224  else if (mfAlign > 0.5)
225  {
226  nStyle |= DrawTextFlags::Right;
227  aSize.setWidth(rDev.GetBoundingRect(&rEntry).getWidth());
228  }
229  }
230  aSize.setHeight(GetHeight(&rDev, &rEntry));
231 
232  if (mbEmphasized)
233  {
234  rRenderContext.Push();
235  vcl::Font aFont(rRenderContext.GetFont());
236  aFont.SetWeight(WEIGHT_BOLD);
237  rRenderContext.SetFont(aFont);
238  }
239 
240  tools::Rectangle aRect(rPos, aSize);
241 
242  if (mbCustom)
243  rDev.DrawCustomEntry(rRenderContext, aRect, rEntry);
244  else
245  rRenderContext.DrawText(aRect, maText, nStyle);
246 
247  if (mbEmphasized)
248  rRenderContext.Pop();
249 }
250 
251 std::unique_ptr<SvLBoxItem> SvLBoxString::Clone(SvLBoxItem const * pSource) const
252 {
253  std::unique_ptr<SvLBoxString> pNew(new SvLBoxString);
254 
255  const SvLBoxString* pOther = static_cast<const SvLBoxString*>(pSource);
256  pNew->maText = pOther->maText;
257  pNew->mbEmphasized = pOther->mbEmphasized;
258  pNew->mbCustom = pOther->mbCustom;
259  pNew->mfAlign = pOther->mfAlign;
260 
261  return std::unique_ptr<SvLBoxItem>(pNew.release());
262 }
263 
265  SvTreeListBox* pView, SvTreeListEntry* pEntry, SvViewDataItem* pViewData)
266 {
267  if( !pViewData )
268  pViewData = pView->GetViewDataItem( pEntry, this );
269 
270  if (mbEmphasized)
271  {
272  pView->Push();
273  vcl::Font aFont( pView->GetFont());
274  aFont.SetWeight(WEIGHT_BOLD);
275  pView->Control::SetFont( aFont );
276  }
277 
278  if (mbCustom)
279  {
280  Size aSize = pView->MeasureCustomEntry(*pView, *pEntry);
281  pViewData->mnWidth = aSize.Width();
282  pViewData->mnHeight = aSize.Height();
283  }
284  else
285  {
286  pViewData->mnWidth = -1; // calc on demand
287  pViewData->mnHeight = pView->GetTextHeight();
288  }
289 
290  if (mbEmphasized)
291  pView->Pop();
292 }
293 
294 int SvLBoxString::CalcWidth(const SvTreeListBox* pView) const
295 {
296  return pView->GetTextWidth(maText);
297 }
298 
299 // ***************************************************************
300 // class SvLBoxButton
301 // ***************************************************************
302 
303 
305  : isVis(true)
306  , pData(pBData)
307  , nItemFlags(SvItemStateFlags::NONE)
308 {
310 }
311 
313  : SvLBoxItem()
314  , isVis(false)
315  , pData(nullptr)
316  , nItemFlags(SvItemStateFlags::NONE)
317 {
319 }
320 
322 {
323 }
324 
326 {
327  return SvLBoxItemType::Button;
328 }
329 
331 {
332  if ( IsStateChecked() )
334  else
335  SetStateChecked();
336  pData->StoreButtonState(pEntry, this);
337  pData->CallLink();
338 }
339 
341  const Point& rPos, SvTreeListBox& rDev, vcl::RenderContext& rRenderContext,
342  const SvViewDataEntry* /*pView*/, const SvTreeListEntry& /*rEntry*/)
343 {
346 
347  //Native drawing
348  bool bNativeOK = false;
350  if ( rRenderContext.IsNativeControlSupported( eCtrlType, ControlPart::Entire) )
351  {
352  Size aSize(pData->Width(), pData->Height());
353  ImplAdjustBoxSize(aSize, eCtrlType, rRenderContext);
354  ImplControlValue aControlValue;
355  tools::Rectangle aCtrlRegion( rPos, aSize );
357 
358  //states ControlState::DEFAULT, ControlState::PRESSED and ControlState::ROLLOVER are not implemented
359  if (IsStateHilighted())
360  nState |= ControlState::FOCUSED;
361  if (nStyle != DrawImageFlags::Disable)
362  nState |= ControlState::ENABLED;
363  if (IsStateChecked())
364  aControlValue.setTristateVal(ButtonValue::On);
365  else if (IsStateUnchecked())
366  aControlValue.setTristateVal(ButtonValue::Off);
367  else if (IsStateTristate())
368  aControlValue.setTristateVal( ButtonValue::Mixed );
369 
370  if (isVis)
371  bNativeOK = rRenderContext.DrawNativeControl(eCtrlType, ControlPart::Entire,
372  aCtrlRegion, nState, aControlValue, OUString());
373  }
374 
375  if (!bNativeOK && isVis)
376  rRenderContext.DrawImage(rPos, pData->GetImage(nIndex), nStyle);
377 }
378 
379 std::unique_ptr<SvLBoxItem> SvLBoxButton::Clone(SvLBoxItem const * pSource) const
380 {
381  std::unique_ptr<SvLBoxButton> pNew(new SvLBoxButton);
382  pNew->pData = static_cast<SvLBoxButton const *>(pSource)->pData;
383  return std::unique_ptr<SvLBoxItem>(pNew.release());
384 }
385 
386 void SvLBoxButton::ImplAdjustBoxSize(Size& io_rSize, ControlType i_eType, vcl::RenderContext const & rRenderContext)
387 {
388  if (!rRenderContext.IsNativeControlSupported( i_eType, ControlPart::Entire) )
389  return;
390 
391  ImplControlValue aControlValue;
392  tools::Rectangle aCtrlRegion( Point( 0, 0 ), io_rSize );
393 
394  aControlValue.setTristateVal( ButtonValue::On );
395 
396  tools::Rectangle aNativeBounds, aNativeContent;
397  bool bNativeOK = rRenderContext.GetNativeControlRegion( i_eType,
399  aCtrlRegion,
401  aControlValue,
402  aNativeBounds,
403  aNativeContent );
404  if( bNativeOK )
405  {
406  Size aContentSize( aNativeContent.GetSize() );
407  // leave a little space around the box image (looks better)
408  if( aContentSize.Height() + 2 > io_rSize.Height() )
409  io_rSize.setHeight( aContentSize.Height() + 2 );
410  if( aContentSize.Width() + 2 > io_rSize.Width() )
411  io_rSize.setWidth( aContentSize.Width() + 2 );
412  }
413 }
414 
416 {
417  if( !pViewData )
418  pViewData = pView->GetViewDataItem( pEntry, this );
419  Size aSize( pData->Width(), pData->Height() );
420 
422  if ( pView )
423  ImplAdjustBoxSize(aSize, eCtrlType, *pView);
424  pViewData->mnWidth = aSize.Width();
425  pViewData->mnHeight = aSize.Height();
426 }
427 
428 // ***************************************************************
429 // class SvLBoxContextBmp
430 // ***************************************************************
431 
433 {
436 
438 };
439 
440 // ***************************************************************
441 
442 SvLBoxContextBmp::SvLBoxContextBmp(const Image& aBmp1, const Image& aBmp2,
443  bool bExpanded)
445 {
446 
447  m_pImpl->m_bExpanded = bExpanded;
448  SetModeImages( aBmp1, aBmp2 );
449 }
450 
452  :SvLBoxItem( )
454 {
455  m_pImpl->m_bExpanded = false;
456 }
457 
459 {
460 }
461 
463 {
465 }
466 
467 void SvLBoxContextBmp::SetModeImages( const Image& _rBitmap1, const Image& _rBitmap2 )
468 {
469  m_pImpl->m_aImage1 = _rBitmap1;
470  m_pImpl->m_aImage2 = _rBitmap2;
471 }
472 
474 {
475 
476  // OJ: #i27071# wrong mode so we just return the normal images
477  return _bFirst ? m_pImpl->m_aImage1 : m_pImpl->m_aImage2;
478 }
479 
481  SvViewDataItem* pViewData)
482 {
483  if( !pViewData )
484  pViewData = pView->GetViewDataItem( pEntry, this );
485  Size aSize = m_pImpl->m_aImage1.GetSizePixel();
486  pViewData->mnWidth = aSize.Width();
487  pViewData->mnHeight = aSize.Height();
488 }
489 
491  const Point& _rPos, SvTreeListBox& _rDev, vcl::RenderContext& rRenderContext,
492  const SvViewDataEntry* pView, const SvTreeListEntry& rEntry)
493 {
494 
495  // get the image.
496  const Image& rImage = implGetImageStore(pView->IsExpanded() != m_pImpl->m_bExpanded);
497 
498  bool _bSemiTransparent = bool( SvTLEntryFlags::SEMITRANSPARENT & rEntry.GetFlags( ) );
499  // draw
501  if (_bSemiTransparent)
503  rRenderContext.DrawImage(_rPos, rImage, nStyle);
504 }
505 
506 std::unique_ptr<SvLBoxItem> SvLBoxContextBmp::Clone(SvLBoxItem const * pSource) const
507 {
508  std::unique_ptr<SvLBoxContextBmp> pNew(new SvLBoxContextBmp);
509  pNew->m_pImpl->m_aImage1 = static_cast< SvLBoxContextBmp const * >( pSource )->m_pImpl->m_aImage1;
510  pNew->m_pImpl->m_aImage2 = static_cast< SvLBoxContextBmp const * >( pSource )->m_pImpl->m_aImage2;
511  pNew->m_pImpl->m_bExpanded = static_cast<SvLBoxContextBmp const *>(pSource)->m_pImpl->m_bExpanded;
512  return std::unique_ptr<SvLBoxItem>(pNew.release());
513 }
514 
516 {
517  if ( !bDataOk )
519  return nWidth;
520 }
521 
523 {
524  if ( !bDataOk )
526  return nHeight;
527 }
528 
529 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
SvLBoxButton * pBox
Definition: svlbitm.cxx:32
long Width() const
void DrawText(const Point &rStartPt, const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1, MetricVector *pVector=nullptr, OUString *pDisplayText=nullptr, const SalLayoutGlyphs *pLayoutCache=nullptr)
Definition: text.cxx:781
Image & GetImage(SvBmp nIndex)
Definition: svlbitm.hxx:94
VCL_DLLPRIVATE void InitData(bool _bRadioBtn, const Control *pControlForSettings)
Definition: svlbitm.cxx:39
bool IsRadio() const
Definition: svlbitm.cxx:166
SvLBoxButton * GetActBox() const
Definition: svlbitm.cxx:131
bool mbCustom
Definition: svlbitm.hxx:108
sal_Int32 nIndex
tools::Rectangle GetBoundingRect(const SvTreeListEntry *pEntry)
Calculate and return the bounding rectangle of an entry.
virtual ~SvLBoxContextBmp() override
Definition: svlbitm.cxx:458
static SvButtonState ConvertToButtonState(SvItemStateFlags nItemFlags)
Definition: svlbitm.cxx:107
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...
static Image GetRadioImage(const AllSettings &rSettings, DrawButtonFlags nFlags)
Definition: button.cxx:2685
bool DrawNativeControl(ControlType nType, ControlPart nPart, const tools::Rectangle &rControlRegion, ControlState nState, const ImplControlValue &aValue, const OUString &aCaption)
Request rendering of a particular control and/or part.
bool GetNativeControlRegion(ControlType nType, ControlPart nPart, const tools::Rectangle &rControlRegion, ControlState nState, const ImplControlValue &aValue, tools::Rectangle &rNativeBoundingRegion, tools::Rectangle &rNativeContentRegion) const
Query the native control's actual drawing region (including adornment)
std::unique_ptr< ContentProperties > pData
long Height() const
static void ImplAdjustBoxSize(Size &io_rCtrlSize, ControlType i_eType, vcl::RenderContext const &pRenderContext)
Definition: svlbitm.cxx:386
Image & implGetImageStore(bool bFirst)
Definition: svlbitm.cxx:473
std::unique_ptr< SvLBoxButtonData_Impl > pImpl
Definition: svlbitm.hxx:66
SvTLEntryFlags GetFlags() const
long getWidth() const
virtual void Paint(const Point &rPos, SvTreeListBox &rOutDev, vcl::RenderContext &rRenderContext, const SvViewDataEntry *pView, const SvTreeListEntry &rEntry) override
Definition: svlbitm.cxx:199
static const AllSettings & GetSettings()
Gets the application's settings.
Definition: svapp.cxx:714
void SetImage(SvBmp nIndex, const Image &aImage)
Definition: svlbitm.hxx:93
const wchar_t *typedef int(__stdcall *DllNativeUnregProc)(int
SvItemStateFlags
Definition: svlbitm.hxx:45
bool HasDefaultImages() const
Definition: svlbitm.cxx:161
double mfAlign
Definition: svlbitm.hxx:109
SvTreeListEntry * GetActEntry() const
Definition: svlbitm.cxx:125
void SetWeight(FontWeight)
Definition: font/font.cxx:215
bool mbEmphasized
Definition: svlbitm.hxx:107
void setTristateVal(ButtonValue nTristate)
SvLBoxButtonData(const Control *pControlForSettings)
Definition: svlbitm.cxx:52
virtual SvLBoxItemType GetType() const override
Definition: svlbitm.cxx:194
bool IsEntryMnemonicsEnabled() const
SvLBoxButtonData * pData
Definition: svlbitm.hxx:152
View-dependent data for a tree list entry created in the virtual function SvTreeListBox::CreateViewDa...
virtual SvLBoxItemType GetType() const override
Definition: svlbitm.cxx:462
bool IsNativeControlSupported(ControlType nType, ControlPart nPart) const
Query the platform layer for control support.
std::unique_ptr< SvLBoxContextBmp_Impl > m_pImpl
Definition: svlbitm.hxx:233
NONE
WEIGHT_BOLD
bool IsExpanded() const
virtual void InitViewData(SvTreeListBox *pView, SvTreeListEntry *pEntry, SvViewDataItem *pViewData=nullptr) override
Definition: svlbitm.cxx:480
SvLBoxItemType
int GetHeight(const SvTreeListBox *pView, const SvTreeListEntry *pEntry) const
bool IsStateHilighted() const
Definition: svlbitm.hxx:195
SvViewDataItem * GetViewDataItem(SvTreeListEntry const *, SvLBoxItem const *)
const vcl::Font & GetFont() const
Definition: outdev.hxx:643
virtual std::unique_ptr< SvLBoxItem > Clone(SvLBoxItem const *pSource) const override
Definition: svlbitm.cxx:251
VCL_DLLPRIVATE Size MeasureCustomEntry(vcl::RenderContext &rRenderContext, const SvTreeListEntry &rEntry)
static Image GetCheckImage(const AllSettings &rSettings, DrawButtonFlags nFlags)
Definition: button.cxx:3505
void SetModeImages(const Image &rBitmap1, const Image &rBitmap2)
Definition: svlbitm.cxx:467
virtual void Paint(const Point &rPos, SvTreeListBox &rOutDev, vcl::RenderContext &rRenderContext, const SvViewDataEntry *pView, const SvTreeListEntry &rEntry) override
Definition: svlbitm.cxx:340
static SvBmp GetIndex(SvItemStateFlags nItemState)
Definition: svlbitm.cxx:73
std::vector< Image > aBmps
Definition: svlbitm.hxx:68
virtual void Paint(const Point &rPos, SvTreeListBox &rOutDev, vcl::RenderContext &rRenderContext, const SvViewDataEntry *pView, const SvTreeListEntry &rEntry) override
Definition: svlbitm.cxx:490
short GetEntryWidth() const
SvTreeListEntry * pEntry
Definition: svlbitm.cxx:31
VCL_DLLPRIVATE void SetWidthAndHeight()
Definition: svlbitm.cxx:93
SvBmp
Definition: svlbitm.hxx:35
void SetStateUnchecked()
Definition: svlbitm.hxx:211
void CallLink()
Definition: svlbitm.cxx:68
virtual void InitViewData(SvTreeListBox *pView, SvTreeListEntry *pEntry, SvViewDataItem *pViewData=nullptr) override
Definition: svlbitm.cxx:415
Link< SvLBoxButtonData *, void > aLink
Definition: svlbitm.hxx:63
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
Definition: outdev.hxx:304
bool IsStateChecked() const
Definition: svlbitm.hxx:183
virtual std::unique_ptr< SvLBoxItem > Clone(SvLBoxItem const *pSource) const override
Definition: svlbitm.cxx:379
SvButtonState
Definition: treelistbox.hxx:57
bool TextCenterAndClipEnabled() const
const AllSettings & GetSettings() const
Definition: outdev.hxx:420
SvItemStateFlags nItemFlags
Definition: svlbitm.hxx:153
DrawTextFlags
Definition: outdev.hxx:144
long GetTextHeight() const
Height where any character of the current font fits; in logic coordinates.
Definition: text.cxx:890
Size GetSize() const
virtual ~SvLBoxButton() override
Definition: svlbitm.cxx:321
ControlType
These types are all based on the supported variants vcl/salnativewidgets.hxx and must be kept in-sync...
virtual std::unique_ptr< SvLBoxItem > Clone(SvLBoxItem const *pSource) const override
Definition: svlbitm.cxx:506
virtual SvLBoxItemType GetType() const override
Definition: svlbitm.cxx:325
virtual ~SvLBoxString() override
Definition: svlbitm.cxx:190
int GetWidth(const SvTreeListBox *pView, const SvTreeListEntry *pEntry) const
bool IsStateTristate() const
Definition: svlbitm.hxx:191
Text maText
void ClickHdl(SvTreeListEntry *)
Definition: svlbitm.cxx:330
Definition: ctrl.hxx:33
void SetFont(const vcl::Font &rNewFont)
void SetDefaultImages(const Control *pControlForSettings)
Definition: svlbitm.cxx:137
Definition: image.hxx:40
bool IsStateUnchecked() const
Definition: svlbitm.hxx:187
OUString maText
Definition: svlbitm.hxx:111
long GetTextWidth(const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1, vcl::TextLayoutCache const *=nullptr, SalLayoutGlyphs const *const pLayoutCache=nullptr) const
Width of the text.
Definition: text.cxx:879
VCL_DLLPRIVATE void DrawCustomEntry(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect, const SvTreeListEntry &rEntry)
bool IsEnabled() const
Definition: window2.cxx:1122
::std::unique_ptr< XmlIdRegistry_Impl > m_pImpl
void Push(PushFlags nFlags=PushFlags::ALL)
Definition: outdevstate.cxx:60
virtual void InitViewData(SvTreeListBox *pView, SvTreeListEntry *pEntry, SvViewDataItem *pViewData=nullptr) override
Definition: svlbitm.cxx:264
void setWidth(long nWidth)
sal_Int32 nState
DrawImageFlags
Definition: outdev.hxx:172
virtual int CalcWidth(const SvTreeListBox *pView) const override
Definition: svlbitm.cxx:294
void SetStateChecked()
Definition: svlbitm.hxx:205
void StoreButtonState(SvTreeListEntry *pActEntry, SvLBoxButton *pActBox)
Definition: svlbitm.cxx:101
void setHeight(long nHeight)