LibreOffice Module cui (master) 1
tparea.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 <svx/svxids.hrc>
21#include <svx/xfillit0.hxx>
23#include <svx/xflbckit.hxx>
24#include <svx/drawitem.hxx>
25#include <svx/xflclit.hxx>
26#include <svx/xflgrit.hxx>
27#include <svx/xflhtit.hxx>
28#include <svx/xbtmpit.hxx>
29#include <cuitabarea.hxx>
30#include <sfx2/tabdlg.hxx>
31
32using namespace com::sun::star;
33
34// static ----------------------------------------------------------------
35
36namespace {
37
38enum FillType
39{
40 TRANSPARENT,
41 SOLID,
43 HATCH,
44 BITMAP,
45 PATTERN,
46 USE_BACKGROUND_FILL
47};
48
49}
50
53 XATTR_GRADIENTSTEPCOUNT, XATTR_GRADIENTSTEPCOUNT,
54 SID_ATTR_FILL_STYLE, SID_ATTR_FILL_BITMAP>);
55
56namespace
57{
58
59void lclExtendSize(Size& rSize, const Size& rInputSize)
60{
61 if (rSize.Width() < rInputSize.Width())
62 rSize.setWidth( rInputSize.Width() );
63 if (rSize.Height() < rInputSize.Height())
64 rSize.setHeight( rInputSize.Height() );
65}
66
67} // end anonymous namespace
68
69/*************************************************************************
70|*
71|* Dialog to modify fill-attributes
72|*
73\************************************************************************/
74
76 const SfxItemSet& rInAttrs, bool bSlideBackground)
77 : SfxTabPage(pPage, pController, "cui/ui/areatabpage.ui", "AreaTabPage", &rInAttrs)
78 // local fixed not o be changed values for local pointers
79 , maFixed_ChangeType(ChangeType::NONE)
80 // init with pointers to fixed ChangeType
81 , m_pnColorListState(&maFixed_ChangeType)
82 , m_pnBitmapListState(&maFixed_ChangeType)
83 , m_pnPatternListState(&maFixed_ChangeType)
84 , m_pnGradientListState(&maFixed_ChangeType)
85 , m_pnHatchingListState(&maFixed_ChangeType)
86 , m_aXFillAttr(rInAttrs.GetPool())
87 , m_rXFSet(m_aXFillAttr.GetItemSet())
88 , m_xFillTab(m_xBuilder->weld_container("fillstylebox"))
89 , m_xBtnNone(m_xBuilder->weld_toggle_button("btnnone"))
90 , m_xBtnColor(m_xBuilder->weld_toggle_button("btncolor"))
91 , m_xBtnGradient(m_xBuilder->weld_toggle_button("btngradient"))
92 , m_xBtnHatch(m_xBuilder->weld_toggle_button("btnhatch"))
93 , m_xBtnBitmap(m_xBuilder->weld_toggle_button("btnbitmap"))
94 , m_xBtnPattern(m_xBuilder->weld_toggle_button("btnpattern"))
95 , m_xBtnUseBackground(m_xBuilder->weld_toggle_button("btnusebackground"))
96{
103
104 Link<weld::Toggleable&, void> aLink = LINK(this, SvxAreaTabPage, SelectFillTypeHdl_Impl);
105 m_xBtnNone->connect_toggled(aLink);
106 m_xBtnColor->connect_toggled(aLink);
107 m_xBtnGradient->connect_toggled(aLink);
108 m_xBtnHatch->connect_toggled(aLink);
109 m_xBtnBitmap->connect_toggled(aLink);
110 m_xBtnPattern->connect_toggled(aLink);
111 if (bSlideBackground)
112 {
114 m_xBtnUseBackground->connect_toggled(aLink);
115 }
116 else
117 m_xBtnUseBackground->hide();
118
120}
121
123{
124 m_xFillTab->set_size_request(-1, -1);
125
126 // Calculate optimal size of all pages...
128 Size aSize(m_xFillTab->get_preferred_size());
129
130 if (m_xBtnGradient->get_visible())
131 {
133 Size aGradientSize = m_xFillTab->get_preferred_size();
134 lclExtendSize(aSize, aGradientSize);
135 }
136 if (m_xBtnBitmap->get_visible())
137 {
139 Size aBitmapSize = m_xFillTab->get_preferred_size();
140 lclExtendSize(aSize, aBitmapSize);
141 }
142 if (m_xBtnHatch->get_visible())
143 {
145 Size aHatchSize = m_xFillTab->get_preferred_size();
146 lclExtendSize(aSize, aHatchSize);
147 }
148 if (m_xBtnPattern->get_visible())
149 {
151 Size aPatternSize = m_xFillTab->get_preferred_size();
152 lclExtendSize(aSize, aPatternSize);
153 }
154 m_xFillTabPage.reset();
155
156 aSize.extendBy(10, 10); // apply a bit of margin
157
158 m_xFillTab->set_size_request(aSize.Width(), aSize.Height());
159}
160
162{
163 m_xFillTabPage.reset();
164}
165
167{
168 drawing::FillStyle eXFS = drawing::FillStyle_NONE;
169 if( rSet.GetItemState( XATTR_FILLSTYLE ) != SfxItemState::DONTCARE )
170 {
171 XFillStyleItem aFillStyleItem( rSet.Get( GetWhich( XATTR_FILLSTYLE ) ) );
172 eXFS = aFillStyleItem.GetValue();
173 m_rXFSet.Put( aFillStyleItem );
174 }
175
176 switch(eXFS)
177 {
178 default:
179 case drawing::FillStyle_NONE:
180 {
182 if (aBckItem.GetValue())
184 else
186 break;
187 }
188 case drawing::FillStyle_SOLID:
189 {
192 break;
193 }
194 case drawing::FillStyle_GRADIENT:
195 {
198 break;
199 }
200 case drawing::FillStyle_HATCH:
201 {
206 break;
207 }
208 case drawing::FillStyle_BITMAP:
209 {
210 const bool bPattern = rSet.Get(GetWhich(XATTR_FILLBITMAP)).isPattern();
211 // pass full item set here, bitmap fill has many attributes (tiling, size, offset etc.)
212 m_rXFSet.Put( rSet );
213 if (!bPattern)
215 else
217 break;
218 }
219 }
220}
221
222template< typename TTabPage >
224{
225 return static_cast<TTabPage&>(*m_xFillTabPage).DeactivatePage(_pSet);
226}
227
229{
230 FillType eFillType = static_cast<FillType>(maBox.GetCurrentButtonPos());
231 switch( eFillType )
232 {
233 case TRANSPARENT:
234 {
235 // Fill: None doesn't have its own tabpage and thus
236 // implementation of FillItemSet, so we supply it here
237 if ( m_bBtnClicked )
238 {
239 XFillStyleItem aStyleItem( drawing::FillStyle_NONE );
240 _pSet->Put( aStyleItem );
242 {
243 XFillUseSlideBackgroundItem aFillBgItem( false );
244 _pSet->Put( aFillBgItem );
245 }
246 }
247 break;
248 }
249 case SOLID:
250 return DeactivatePage_Impl<SvxColorTabPage>(_pSet);
251 case GRADIENT:
252 return DeactivatePage_Impl<SvxGradientTabPage>(_pSet);
253 case HATCH:
254 return DeactivatePage_Impl<SvxHatchTabPage>(_pSet);
255 case BITMAP:
256 return DeactivatePage_Impl<SvxBitmapTabPage&>(_pSet);
257 case PATTERN:
258 return DeactivatePage_Impl<SvxPatternTabPage>(_pSet);
259 case USE_BACKGROUND_FILL:
260 {
261 if ( m_bBtnClicked )
262 {
263 XFillStyleItem aStyleItem( drawing::FillStyle_NONE );
264 _pSet->Put( aStyleItem );
265 XFillUseSlideBackgroundItem aFillBgItem( true );
266 _pSet->Put( aFillBgItem );
267 }
268 break;
269 }
270 default:
271 break;
272 }
273 return DeactivateRC::LeavePage;
274}
275
276template< typename TTabPage >
278{
279 return static_cast<TTabPage&>( *m_xFillTabPage ).FillItemSet( rAttrs );
280}
281
283{
284 FillType eFillType = static_cast<FillType>(maBox.GetCurrentButtonPos());
285 switch( eFillType )
286 {
287 case TRANSPARENT:
288 {
289 rAttrs->Put( XFillStyleItem( drawing::FillStyle_NONE ) );
290 rAttrs->Put( XFillUseSlideBackgroundItem( false ) );
291 return true;
292 }
293 case SOLID:
294 {
295 return FillItemSet_Impl<SvxColorTabPage>( rAttrs );
296 }
297 case GRADIENT:
298 {
299 return FillItemSet_Impl<SvxGradientTabPage>( rAttrs );
300 }
301 case HATCH:
302 {
303 return FillItemSet_Impl<SvxHatchTabPage>( rAttrs );
304 }
305 case BITMAP:
306 {
307 return FillItemSet_Impl<SvxBitmapTabPage>( rAttrs );
308 }
309 case PATTERN:
310 {
311 return FillItemSet_Impl<SvxPatternTabPage>( rAttrs );
312 }
313 case USE_BACKGROUND_FILL:
314 {
315 rAttrs->Put( XFillStyleItem( drawing::FillStyle_NONE ) );
316 rAttrs->Put( XFillUseSlideBackgroundItem( true ) );
317 return true;
318 }
319 default:
320 return false;
321 }
322}
323
324template< typename TTabPage >
326{
327 static_cast<TTabPage&>( *m_xFillTabPage ).Reset( rAttrs );
328}
329
331{
332 m_bBtnClicked = false;
333 auto eFillType = maBox.GetCurrentButtonPos();
334 switch(eFillType)
335 {
336 case SOLID:
337 {
338 Reset_Impl<SvxColorTabPage>( rAttrs );
339 break;
340 }
341 case GRADIENT:
342 {
343 Reset_Impl<SvxGradientTabPage>( rAttrs );
344 break;
345 }
346 case HATCH:
347 {
348 Reset_Impl<SvxHatchTabPage>( rAttrs );
349 break;
350 }
351 case BITMAP:
352 {
353 Reset_Impl<SvxBitmapTabPage>( rAttrs );
354 break;
355 }
356 case PATTERN:
357 {
358 Reset_Impl<SvxPatternTabPage>( rAttrs );
359 break;
360 }
361 default:
362 break;
363 }
364}
365
366std::unique_ptr<SfxTabPage> SvxAreaTabPage::Create(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrs)
367{
368 auto xRet = std::make_unique<SvxAreaTabPage>(pPage, pController, *rAttrs);
369 xRet->SetOptimalSize(pController);
370 return xRet;
371}
372
374 weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrs)
375{
376 auto xRet = std::make_unique<SvxAreaTabPage>(pPage, pController, *rAttrs, true);
377 xRet->SetOptimalSize(pController);
378 return xRet;
379}
380
381namespace {
382
383std::unique_ptr<SfxTabPage> lcl_CreateFillStyleTabPage(sal_uInt16 nId, weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
384{
385 CreateTabPage fnCreate = nullptr;
386 switch(nId)
387 {
388 case TRANSPARENT: fnCreate = nullptr; break;
389 case SOLID: fnCreate = &SvxColorTabPage::Create; break;
390 case GRADIENT: fnCreate = &SvxGradientTabPage::Create; break;
391 case HATCH: fnCreate = &SvxHatchTabPage::Create; break;
392 case BITMAP: fnCreate = &SvxBitmapTabPage::Create; break;
393 case PATTERN: fnCreate = &SvxPatternTabPage::Create; break;
394 case USE_BACKGROUND_FILL: fnCreate = nullptr; break;
395 }
396 return fnCreate ? (*fnCreate)( pPage, pController, &rSet ) : nullptr;
397}
398
399}
400
401IMPL_LINK(SvxAreaTabPage, SelectFillTypeHdl_Impl, weld::Toggleable&, rButton, void)
402{
403 //tdf#124549 - If the button is already active do not toggle it back.
404 if(!rButton.get_active())
405 rButton.set_active(true);
406
407 SelectFillType(rButton);
408 m_bBtnClicked = true;
409}
410
412{
413 if (_pSet)
414 m_rXFSet.Set(*_pSet);
415
416 sal_Int32 nPos = maBox.GetButtonPos(&rButton);
417 if (nPos != -1 && (_pSet || nPos != maBox.GetCurrentButtonPos()))
418 {
419 maBox.SelectButton(&rButton);
420 FillType eFillType = static_cast<FillType>(maBox.GetCurrentButtonPos());
421 m_xFillTabPage = lcl_CreateFillStyleTabPage(eFillType, m_xFillTab.get(), GetDialogController(), m_rXFSet);
422 if (m_xFillTabPage)
423 {
424 m_xFillTabPage->SetDialogController(GetDialogController());
425 CreatePage(eFillType, *m_xFillTabPage);
426 }
427 }
428}
429
431{
432 const SvxColorListItem* pColorListItem = aSet.GetItem<SvxColorListItem>(SID_COLOR_TABLE, false);
433 const SvxGradientListItem* pGradientListItem = aSet.GetItem<SvxGradientListItem>(SID_GRADIENT_LIST, false);
434 const SvxHatchListItem* pHatchingListItem = aSet.GetItem<SvxHatchListItem>(SID_HATCH_LIST, false);
435 const SvxBitmapListItem* pBitmapListItem = aSet.GetItem<SvxBitmapListItem>(SID_BITMAP_LIST, false);
436 const SvxPatternListItem* pPatternListItem = aSet.GetItem<SvxPatternListItem>(SID_PATTERN_LIST, false);
437
438 if (pColorListItem)
439 SetColorList(pColorListItem->GetColorList());
440 if (pGradientListItem)
441 SetGradientList(pGradientListItem->GetGradientList());
442 if (pHatchingListItem)
443 SetHatchingList(pHatchingListItem->GetHatchList());
444 if (pBitmapListItem)
445 SetBitmapList(pBitmapListItem->GetBitmapList());
446 if (pPatternListItem)
447 SetPatternList(pPatternListItem->GetPatternList());
448}
449
450void SvxAreaTabPage::CreatePage(sal_Int32 nId, SfxTabPage& rTab)
451{
452 if(nId == SOLID )
453 {
454 auto& rColorTab = static_cast<SvxColorTabPage&>(rTab);
455 rColorTab.SetColorList(m_pColorList);
456 rColorTab.SetColorChgd(m_pnColorListState);
457 rColorTab.Construct();
458 rColorTab.ActivatePage(m_rXFSet);
459 rColorTab.Reset(&m_rXFSet);
460 rColorTab.set_visible(true);
461 }
462 else if(nId == GRADIENT)
463 {
464 auto& rGradientTab = static_cast<SvxGradientTabPage&>(rTab);
465 rGradientTab.SetColorList(m_pColorList);
466 rGradientTab.SetGradientList(m_pGradientList);
467 rGradientTab.SetGrdChgd(m_pnGradientListState);
468 rGradientTab.SetColorChgd(m_pnColorListState);
469 rGradientTab.Construct();
470 rGradientTab.ActivatePage(m_rXFSet);
471 rGradientTab.Reset(&m_rXFSet);
472 rGradientTab.set_visible(true);
473 }
474 else if(nId == HATCH)
475 {
476 auto& rHatchTab = static_cast<SvxHatchTabPage&>(rTab);
477 rHatchTab.SetColorList(m_pColorList);
478 rHatchTab.SetHatchingList(m_pHatchingList);
479 rHatchTab.SetHtchChgd(m_pnHatchingListState);
480 rHatchTab.SetColorChgd(m_pnColorListState);
481 rHatchTab.Construct();
482 rHatchTab.ActivatePage(m_rXFSet);
483 rHatchTab.Reset(&m_rXFSet);
484 rHatchTab.set_visible(true);
485 }
486 else if(nId == BITMAP)
487 {
488 auto& rBitmapTab = static_cast<SvxBitmapTabPage&>(rTab);
489 rBitmapTab.SetBitmapList(m_pBitmapList);
490 rBitmapTab.SetBmpChgd(m_pnBitmapListState);
491 rBitmapTab.Construct();
492 rBitmapTab.ActivatePage(m_rXFSet);
493 rBitmapTab.Reset(&m_rXFSet);
494 rBitmapTab.set_visible(true);
495 }
496 else if(nId == PATTERN)
497 {
498 auto& rPatternTab = static_cast<SvxPatternTabPage&>(rTab);
499 rPatternTab.SetColorList(m_pColorList);
500 rPatternTab.SetPatternList(m_pPatternList);
501 rPatternTab.SetPtrnChgd(m_pnPatternListState);
502 rPatternTab.SetColorChgd(m_pnColorListState);
503 rPatternTab.Construct();
504 rPatternTab.ActivatePage(m_rXFSet);
505 rPatternTab.Reset(&m_rXFSet);
506 rPatternTab.set_visible(true);
507 }
508}
509
510/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
sal_Int32 GetCurrentButtonPos() const
Definition: cuitabarea.hxx:63
sal_Int32 GetButtonPos(weld::Toggleable *pButton)
Definition: cuitabarea.hxx:64
void SelectButton(weld::Toggleable *pButton)
Definition: cuitabarea.hxx:72
void AddButton(weld::Toggleable *pButton)
Definition: cuitabarea.hxx:58
bool HasItem(sal_uInt16 nWhich, const SfxPoolItem **ppItem=nullptr) const
SfxItemState GetItemState(sal_uInt16 nWhich, bool bSrchInParent=true, const SfxPoolItem **ppItem=nullptr) const
const SfxPoolItem * GetItem(sal_uInt16 nWhich, bool bSearchInParent=true) const
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
bool Set(const SfxItemSet &, bool bDeep=true)
SfxOkDialogController * GetDialogController() const
void SetExchangeSupport()
sal_uInt16 GetWhich(sal_uInt16 nSlot, bool bDeep=true) const
constexpr tools::Long Height() const
void extendBy(tools::Long x, tools::Long y)
void setWidth(tools::Long nWidth)
void setHeight(tools::Long nHeight)
constexpr tools::Long Width() const
XHatchListRef m_pHatchingList
Definition: cuitabarea.hxx:216
std::unique_ptr< weld::Toggleable > m_xBtnPattern
Definition: cuitabarea.hxx:244
void SetPatternList(XPatternListRef const &pPtrnLst)
Definition: cuitabarea.hxx:286
std::unique_ptr< weld::Container > m_xFillTab
Definition: cuitabarea.hxx:238
virtual bool FillItemSet(SfxItemSet *) override
Definition: tparea.cxx:282
SfxItemSet & m_rXFSet
Definition: cuitabarea.hxx:233
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *)
Definition: tparea.cxx:366
void SetHatchingList(XHatchListRef const &pHtchLst)
Definition: cuitabarea.hxx:283
ChangeType * m_pnGradientListState
Definition: cuitabarea.hxx:229
std::unique_ptr< weld::Toggleable > m_xBtnBitmap
Definition: cuitabarea.hxx:243
ChangeType * m_pnColorListState
Definition: cuitabarea.hxx:226
XPatternListRef m_pPatternList
Definition: cuitabarea.hxx:218
virtual DeactivateRC DeactivatePage(SfxItemSet *pSet) override
Definition: tparea.cxx:228
XGradientListRef m_pGradientList
Definition: cuitabarea.hxx:215
static const WhichRangesContainer pAreaRanges
Definition: cuitabarea.hxx:209
void Reset_Impl(const SfxItemSet *)
Definition: tparea.cxx:325
std::unique_ptr< weld::Toggleable > m_xBtnNone
Definition: cuitabarea.hxx:239
virtual void ActivatePage(const SfxItemSet &rSet) override
Definition: tparea.cxx:166
std::unique_ptr< weld::Toggleable > m_xBtnHatch
Definition: cuitabarea.hxx:242
std::unique_ptr< weld::Toggleable > m_xBtnColor
Definition: cuitabarea.hxx:240
SvxAreaTabPage(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet &rInAttrs, bool bSlideBackground=false)
Definition: tparea.cxx:75
void CreatePage(sal_Int32 nId, SfxTabPage &rTab)
Definition: tparea.cxx:450
void SetBitmapList(XBitmapListRef const &pBmpLst)
Definition: cuitabarea.hxx:285
static std::unique_ptr< SfxTabPage > CreateWithSlideBackground(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *)
Definition: tparea.cxx:373
std::unique_ptr< SfxTabPage > m_xFillTabPage
Definition: cuitabarea.hxx:211
void SetColorList(XColorListRef const &pColorList)
Definition: cuitabarea.hxx:280
virtual void Reset(const SfxItemSet *) override
Definition: tparea.cxx:330
XColorListRef m_pColorList
Definition: cuitabarea.hxx:214
void SelectFillType(weld::Toggleable &rButton, const SfxItemSet *_pSet=nullptr)
Definition: tparea.cxx:411
DeactivateRC DeactivatePage_Impl(SfxItemSet *pSet)
Definition: tparea.cxx:223
void SetOptimalSize(weld::DialogController *pController)
Definition: tparea.cxx:122
ChangeType * m_pnHatchingListState
Definition: cuitabarea.hxx:230
virtual ~SvxAreaTabPage() override
Definition: tparea.cxx:161
virtual void PageCreated(const SfxAllItemSet &aSet) override
Definition: tparea.cxx:430
ChangeType * m_pnBitmapListState
Definition: cuitabarea.hxx:227
ButtonBox maBox
Definition: cuitabarea.hxx:212
std::unique_ptr< weld::Toggleable > m_xBtnUseBackground
Definition: cuitabarea.hxx:245
bool FillItemSet_Impl(SfxItemSet *)
Definition: tparea.cxx:277
ChangeType * m_pnPatternListState
Definition: cuitabarea.hxx:228
void SetGradientList(XGradientListRef const &pGrdLst)
Definition: cuitabarea.hxx:281
XBitmapListRef m_pBitmapList
Definition: cuitabarea.hxx:217
std::unique_ptr< weld::Toggleable > m_xBtnGradient
Definition: cuitabarea.hxx:241
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *)
Definition: tpbitmap.cxx:415
void SetBitmapList(const XBitmapListRef &pBmpLst)
Definition: cuitabarea.hxx:563
const XColorListRef & GetColorList() const
void SetColorList(const XColorListRef &pColList)
Definition: tpcolor.cxx:797
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *)
Definition: tpcolor.cxx:298
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *)
Definition: tpgradnt.cxx:236
void SetColorList(XColorListRef const &pColorList)
Definition: cuitabarea.hxx:416
void SetColorList(XColorListRef const &pColorList)
Definition: cuitabarea.hxx:484
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *)
Definition: tphatch.cxx:272
void SetColorList(XColorListRef const &pColorList)
Definition: cuitabarea.hxx:619
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *)
Definition: tppattern.cxx:239
sal_uInt16 nPos
const SfxItemSet * GetItemSet(const SfxPoolItem &rAttr)
NONE
FillType
static constexpr auto Items
sal_Int16 nId
static SfxItemSet & rSet
ChangeType
std::unique_ptr< SfxTabPage >(* CreateTabPage)(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rAttrSet)
DeactivateRC
IMPL_LINK(SvxAreaTabPage, SelectFillTypeHdl_Impl, weld::Toggleable &, rButton, void)
Definition: tparea.cxx:401
constexpr OUStringLiteral PATTERN
constexpr TypedWhichId< XFillUseSlideBackgroundItem > XATTR_FILLUSESLIDEBACKGROUND(XATTR_FILL_FIRST+20)
constexpr TypedWhichId< XFillColorItem > XATTR_FILLCOLOR(XATTR_FILL_FIRST+1)
constexpr TypedWhichId< XFillHatchItem > XATTR_FILLHATCH(XATTR_FILL_FIRST+3)
constexpr TypedWhichId< XFillBitmapItem > XATTR_FILLBITMAP(XATTR_FILL_FIRST+4)
constexpr TypedWhichId< XFillStyleItem > XATTR_FILLSTYLE(XATTR_FILL_FIRST)
constexpr TypedWhichId< XFillGradientItem > XATTR_FILLGRADIENT(XATTR_FILL_FIRST+2)