LibreOffice Module sw (master) 1
PageStylesPanel.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#include <sal/config.h>
20#include <svl/intitem.hxx>
21#include <svx/colorbox.hxx>
22#include <svx/drawitem.hxx>
23#include <svx/xfillit0.hxx>
24#include <svx/xflclit.hxx>
25#include <svx/xflgrit.hxx>
26#include <svx/xflhtit.hxx>
27#include <svx/xbtmpit.hxx>
28#include <svx/itemwin.hxx>
30#include "PageStylesPanel.hxx"
32#include <sfx2/dispatch.hxx>
33#include <sfx2/bindings.hxx>
34#include <sfx2/objsh.hxx>
35#include <cmdid.h>
36
37using namespace ::com::sun::star;
38
39namespace sw::sidebar{
40
41namespace {
42
43enum eFillStyle
44{
45 NONE,
46 SOLID,
48 HATCH,
49 BITMAP,
51};
52
53}
54
56{
57 SvxPageUsage::All,
58 SvxPageUsage::Mirror,
59 SvxPageUsage::Right,
60 SvxPageUsage::Left
61};
62
63
64static sal_uInt16 PageUsageToPos_Impl( SvxPageUsage nUsage )
65{
66 for ( size_t i = 0; i < SAL_N_ELEMENTS(aArr); ++i )
67 if ( aArr[i] == nUsage )
68 return i;
69 return 3;
70}
71
72static SvxPageUsage PosToPageUsage_Impl( sal_uInt16 nPos )
73{
74 if ( nPos >= SAL_N_ELEMENTS(aArr) )
75 return SvxPageUsage::NONE;
76 return aArr[nPos];
77}
78
79std::unique_ptr<PanelLayout> PageStylesPanel::Create(weld::Widget* pParent, SfxBindings* pBindings)
80{
81 if( pParent == nullptr )
82 throw ::com::sun::star::lang::IllegalArgumentException("no parent window given to PageStylesPanel::Create", nullptr, 0);
83 if( pBindings == nullptr )
84 throw ::com::sun::star::lang::IllegalArgumentException("no SfxBindings given to PageStylesPanel::Create", nullptr, 0);
85
86 return std::make_unique<PageStylesPanel>(pParent, pBindings);
87}
88
90 weld::Widget* pParent,
91 SfxBindings* pBindings
92 ) :
93 PanelLayout(pParent, "PageStylesPanel", "modules/swriter/ui/pagestylespanel.ui"),
94 mpBindings( pBindings ),
95 mpPageColumnItem( new SfxInt16Item(SID_ATTR_PAGE_COLUMN) ),
96 mpPageItem( new SvxPageItem(SID_ATTR_PAGE) ),
97 maPageColumnControl(SID_ATTR_PAGE_COLUMN, *pBindings, *this),
98 maPageNumFormatControl( SID_ATTR_PAGE, *pBindings, *this ),
99 maBgColorControl( SID_ATTR_PAGE_COLOR, *pBindings, *this ),
100 maBgHatchingControl( SID_ATTR_PAGE_HATCH, *pBindings, *this ),
101 maBgGradientControl( SID_ATTR_PAGE_GRADIENT, *pBindings, *this ),
102 maBgBitmapControl( SID_ATTR_PAGE_BITMAP, *pBindings, *this ),
103 maBgFillStyleControl(SID_ATTR_PAGE_FILLSTYLE, *pBindings, *this),
104 mxBgColorLB(new ColorListBox(m_xBuilder->weld_menu_button("lbcolor"), [this]{ return GetFrameWeld(); })),
105 mxBgHatchingLB(m_xBuilder->weld_combo_box("lbhatching")),
106 mxBgGradientLB(new ColorListBox(m_xBuilder->weld_menu_button("lbgradient"), [this]{ return GetFrameWeld(); })),
107 mxBgBitmapLB(m_xBuilder->weld_combo_box("lbbitmap")),
108 mxLayoutSelectLB(m_xBuilder->weld_combo_box("layoutbox")),
109 mxColumnCount(m_xBuilder->weld_combo_box("columnbox")),
110 mxNumberSelectLB(new SvxPageNumberListBox(m_xBuilder->weld_combo_box("numberbox"))),
111 mxBgFillType(m_xBuilder->weld_combo_box("bgselect")),
112 mxCustomEntry(m_xBuilder->weld_label("customlabel"))
113{
114 Initialize();
115}
116
118{
119 mxColumnCount.reset();
120 mxNumberSelectLB.reset();
121 mxBgFillType.reset();
122 mxBgColorLB.reset();
123 mxBgHatchingLB.reset();
124 mxBgGradientLB.reset();
125 mxBgBitmapLB.reset();
126 mxLayoutSelectLB.reset();
127 mxCustomEntry.reset();
128
136}
137
139{
141
142 m_aCustomEntry = mxCustomEntry->get_label();
144 mpBindings->Invalidate(SID_ATTR_PAGE);
145 mpBindings->Invalidate(SID_ATTR_PAGE_FILLSTYLE);
146 Update();
147
148 mxColumnCount->connect_changed( LINK(this, PageStylesPanel, ModifyColumnCountHdl) );
149 SvxNumOptionsTabPageHelper::GetI18nNumbering(mxNumberSelectLB->get_widget(), ::std::numeric_limits<sal_uInt16>::max());
150 mxNumberSelectLB->connect_changed( LINK(this, PageStylesPanel, ModifyNumberingHdl) );
151 mxLayoutSelectLB->connect_changed( LINK(this, PageStylesPanel, ModifyLayoutHdl) );
152 mxBgFillType->connect_changed( LINK(this, PageStylesPanel, ModifyFillStyleHdl));
153 mxBgColorLB->SetSelectHdl( LINK(this, PageStylesPanel, ModifyFillColorListHdl));
154 mxBgGradientLB->SetSelectHdl( LINK(this, PageStylesPanel, ModifyFillColorListHdl));
155 mxBgHatchingLB->connect_changed( LINK(this, PageStylesPanel, ModifyFillColorHdl));
156 mxBgBitmapLB->connect_changed( LINK(this, PageStylesPanel, ModifyFillColorHdl));
157}
158
160{
161 const eFillStyle eXFS = static_cast<eFillStyle>(mxBgFillType->get_active());
163 if (!pSh)
164 {
165 SAL_WARN("sw.ui", "PageStylesPanel::Update(): no SfxObjectShell found");
166 return;
167 }
168 switch(eXFS)
169 {
170 case NONE:
171 {
172 mxBgColorLB->hide();
173 mxBgHatchingLB->hide();
174 mxBgGradientLB->hide();
175 mxBgBitmapLB->hide();
176 }
177 break;
178 case SOLID:
179 {
180 mxBgBitmapLB->hide();
181 mxBgGradientLB->hide();
182 mxBgHatchingLB->hide();
183 mxBgColorLB->show();
184 const Color aColor = GetColorSetOrDefault();
185 mxBgColorLB->SelectEntry(aColor);
186 }
187 break;
188 case GRADIENT:
189 {
190 mxBgBitmapLB->hide();
191 mxBgHatchingLB->hide();
192 mxBgColorLB->show();
193 mxBgGradientLB->show();
194
195 const XGradient xGradient = GetGradientSetOrDefault();
196 const Color aStartColor = xGradient.GetStartColor();
197 mxBgColorLB->SelectEntry(aStartColor);
198 const Color aEndColor = xGradient.GetEndColor();
199 mxBgGradientLB->SelectEntry(aEndColor);
200 }
201 break;
202
203 case HATCH:
204 {
205 mxBgColorLB->hide();
206 mxBgGradientLB->hide();
207 mxBgBitmapLB->hide();
208 mxBgHatchingLB->show();
209 mxBgHatchingLB->clear();
210 SvxFillAttrBox::Fill(*mxBgHatchingLB, pSh->GetItem(SID_HATCH_LIST)->GetHatchList());
211
212 const OUString aHatchName = GetHatchingSetOrDefault();
213 mxBgHatchingLB->set_active_text( aHatchName );
214 }
215 break;
216
217 case BITMAP:
218 case PATTERN:
219 {
220 mxBgColorLB->hide();
221 mxBgGradientLB->hide();
222 mxBgHatchingLB->hide();
223 mxBgBitmapLB->show();
224 mxBgBitmapLB->clear();
225 OUString aBitmapName;
226
227 if( eXFS == BITMAP )
228 {
229 SvxFillAttrBox::Fill(*mxBgBitmapLB, pSh->GetItem(SID_BITMAP_LIST)->GetBitmapList());
230 aBitmapName = GetBitmapSetOrDefault();
231 }
232 else
233 {
234 SvxFillAttrBox::Fill(*mxBgBitmapLB, pSh->GetItem(SID_PATTERN_LIST)->GetPatternList());
235 aBitmapName = GetPatternSetOrDefault();
236 }
237
238 mxBgBitmapLB->set_active_text( aBitmapName );
239 }
240 break;
241
242 default:
243 break;
244 }
245
246 // Need to do a relayouting, otherwise the panel size is not updated after show / hide controls
247 if (m_pPanel)
249}
250
252{
253 if ( !mpBgColorItem )
254 mpBgColorItem.reset( new XFillColorItem( OUString(), Color(0x72, 0x9f, 0xcf) ) );
255
256 return mpBgColorItem->GetColorValue();
257}
258
260{
261 if( !mpBgGradientItem )
262 {
263 XGradient aGradient;
264 OUString aGradientName;
266 {
267 const SvxGradientListItem* pGradListItem = pSh->GetItem(SID_GRADIENT_LIST);
268 aGradient = pGradListItem->GetGradientList()->GetGradient(0)->GetGradient();
269 aGradientName = pGradListItem->GetGradientList()->GetGradient(0)->GetName();
270 }
271 mpBgGradientItem.reset( new XFillGradientItem( aGradientName, aGradient ) );
272 }
273
274 return mpBgGradientItem->GetGradientValue();
275}
276
278{
279 if( !mpBgHatchItem )
280 {
281 XHatch aHatch;
282 OUString aHatchName;
284 {
285 const SvxHatchListItem * pHatchListItem = pSh->GetItem(SID_HATCH_LIST);
286 aHatch = pHatchListItem->GetHatchList()->GetHatch(0)->GetHatch();
287 aHatchName = pHatchListItem->GetHatchList()->GetHatch(0)->GetName();
288 }
289 mpBgHatchItem.reset( new XFillHatchItem( aHatchName, aHatch ) );
290 }
291
292 return mpBgHatchItem->GetName();
293}
294
296{
297 if( !mpBgBitmapItem || mpBgBitmapItem->isPattern() )
298 {
299 GraphicObject aGraphObj;
300 OUString aBmpName;
302 {
303 const SvxBitmapListItem * pBmpListItem = pSh->GetItem(SID_BITMAP_LIST);
304 aGraphObj = pBmpListItem->GetBitmapList()->GetBitmap(0)->GetGraphicObject();
305 aBmpName = pBmpListItem->GetBitmapList()->GetBitmap(0)->GetName();
306 }
307 mpBgBitmapItem.reset( new XFillBitmapItem( aBmpName, aGraphObj ) );
308 }
309
310 return mpBgBitmapItem->GetName();
311}
312
314{
315 if( !mpBgBitmapItem || !mpBgBitmapItem->isPattern() )
316 {
317 GraphicObject aGraphObj;
318 OUString aPatternName;
320 {
321 const SvxPatternListItem * pPatternListItem = pSh->GetItem(SID_PATTERN_LIST);
322 aGraphObj = pPatternListItem->GetPatternList()->GetBitmap(0)->GetGraphicObject();
323 aPatternName = pPatternListItem->GetPatternList()->GetBitmap(0)->GetName();
324 }
325 mpBgBitmapItem.reset( new XFillBitmapItem( aPatternName, aGraphObj ) );
326 }
327
328 return mpBgBitmapItem->GetName();
329}
330
332 const sal_uInt16 nSid,
333 const SfxItemState eState,
334 const SfxPoolItem* pState)
335{
336 if (!mxColumnCount) //disposed
337 return;
338
339 switch(nSid)
340 {
342 {
343 if ( eState >= SfxItemState::DEFAULT &&
344 dynamic_cast< const SfxInt16Item *>( pState ) )
345 {
346 mpPageColumnItem.reset( static_cast<SfxInt16Item*>(pState->Clone()) );
347 if(mpPageColumnItem->GetValue() <= 5)
348 {
349 mxColumnCount->set_active(mpPageColumnItem->GetValue() - 1);
350 int nIndex = mxColumnCount->find_text(m_aCustomEntry);
351 if (nIndex != -1)
352 mxColumnCount->remove(nIndex);
353 }
354 else
355 {
356 if (mxColumnCount->find_text(m_aCustomEntry) == -1)
357 mxColumnCount->append_text(m_aCustomEntry);
358 mxColumnCount->set_active_text(m_aCustomEntry);
359 }
360 }
361 }
362 break;
363
364 case SID_ATTR_PAGE:
365 {
366 if( eState >= SfxItemState::DEFAULT &&
367 dynamic_cast< const SvxPageItem*>( pState ) )
368 {
369 mpPageItem.reset( static_cast<SvxPageItem*>(pState->Clone()) );
370 SvxNumType eNumType = mpPageItem->GetNumType();
371 mxNumberSelectLB->set_active_id(eNumType);
372
373 SvxPageUsage nUse = mpPageItem->GetPageUsage();
374 mxLayoutSelectLB->set_active( PageUsageToPos_Impl( nUse ) );
375 }
376 }
377 break;
378
379 case SID_ATTR_PAGE_COLOR:
380 {
381 if(eState >= SfxItemState::DEFAULT)
382 {
383 mxBgFillType->set_active( static_cast<sal_Int32>(SOLID) );
384 mpBgColorItem.reset(pState ? static_cast< XFillColorItem* >(pState->Clone()) : nullptr);
385 Update();
386 }
387 }
388 break;
389
390 case SID_ATTR_PAGE_HATCH:
391 {
392 if(eState >= SfxItemState::DEFAULT)
393 {
394 mxBgFillType->set_active( static_cast<sal_Int32>(HATCH) );
395 mpBgHatchItem.reset(pState ? static_cast < XFillHatchItem* >(pState->Clone()) : nullptr);
396 Update();
397 }
398 }
399 break;
400
401 case SID_ATTR_PAGE_GRADIENT:
402 {
403 if(eState >= SfxItemState::DEFAULT)
404 {
405 mxBgFillType->set_active( static_cast<sal_Int32>(GRADIENT) );
406 mpBgGradientItem.reset(pState ? static_cast< XFillGradientItem* >(pState->Clone()) : nullptr);
407 Update();
408 }
409 }
410 break;
411 case SID_ATTR_PAGE_BITMAP:
412 {
413 if(eState >= SfxItemState::DEFAULT)
414 {
415 mpBgBitmapItem.reset(pState ? static_cast< XFillBitmapItem* >(pState->Clone()) : nullptr);
416 if (mpBgBitmapItem)
417 {
418 if (mpBgBitmapItem->isPattern())
419 mxBgFillType->set_active( static_cast<sal_Int32>(PATTERN) );
420 else
421 mxBgFillType->set_active( static_cast<sal_Int32>(BITMAP) );
422 }
423 Update();
424 }
425 }
426 break;
427
428 case SID_ATTR_PAGE_FILLSTYLE:
429 {
430 const XFillStyleItem* pFillStyleItem = nullptr;
431 if (eState >= SfxItemState::DEFAULT)
432 pFillStyleItem = dynamic_cast< const XFillStyleItem* >(pState);
433 if (pFillStyleItem)
434 {
435 css::drawing::FillStyle eXFS = pFillStyleItem->GetValue();
436 switch(eXFS)
437 {
438 case drawing::FillStyle_NONE:
439 mxBgFillType->set_active( static_cast<sal_Int32>(NONE) );
440 break;
441 case drawing::FillStyle_SOLID:
442 mxBgFillType->set_active( static_cast<sal_Int32>(SOLID) );
443 break;
444 case drawing::FillStyle_GRADIENT:
445 mxBgFillType->set_active( static_cast<sal_Int32>(GRADIENT) );
446 break;
447 case drawing::FillStyle_HATCH:
448 mxBgFillType->set_active( static_cast<sal_Int32>(HATCH) );
449 break;
450 case drawing::FillStyle_BITMAP:
451 if (mpBgBitmapItem->isPattern())
452 mxBgFillType->set_active( static_cast<sal_Int32>(PATTERN) );
453 else
454 mxBgFillType->set_active( static_cast<sal_Int32>(BITMAP) );
455 break;
456 default:
457 break;
458 }
459 Update();
460 }
461 }
462 break;
463
464 default:
465 break;
466 }
467}
468
469IMPL_LINK_NOARG( PageStylesPanel, ModifyColumnCountHdl, weld::ComboBox&, void )
470{
471 sal_uInt16 nColumnType = mxColumnCount->get_active() + 1;
472 mpPageColumnItem->SetValue( nColumnType );
473 mpBindings->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_COLUMN,
474 SfxCallMode::RECORD, { mpPageColumnItem.get() });
475}
476
477IMPL_LINK_NOARG( PageStylesPanel, ModifyNumberingHdl, weld::ComboBox&, void )
478{
479 SvxNumType nEntryData = mxNumberSelectLB->get_active_id();
480 mpPageItem->SetNumType(nEntryData);
481 mpBindings->GetDispatcher()->ExecuteList(SID_ATTR_PAGE, SfxCallMode::RECORD, { mpPageItem.get() });
482}
483
485{
486 sal_uInt16 nUse = mxLayoutSelectLB->get_active();
487 mpPageItem->SetPageUsage(PosToPageUsage_Impl(nUse));
488 mpBindings->GetDispatcher()->ExecuteList(SID_ATTR_PAGE, SfxCallMode::RECORD, { mpPageItem.get() });
489}
490
492{
493 const eFillStyle eXFS = static_cast<eFillStyle>(mxBgFillType->get_active());
494 Update();
495
496 switch (eXFS)
497 {
498 case NONE:
499 {
500 const XFillStyleItem aXFillStyleItem(drawing::FillStyle_NONE);
501 GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_FILLSTYLE, SfxCallMode::RECORD, { &aXFillStyleItem });
502 }
503 break;
504
505 case SOLID:
506 {
507 XFillColorItem aItem( OUString(), mpBgColorItem->GetColorValue() );
508 GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_COLOR, SfxCallMode::RECORD, { &aItem });
509 }
510 break;
511
512 case GRADIENT:
513 {
514 XFillGradientItem aItem( mpBgGradientItem->GetName(), mpBgGradientItem->GetGradientValue() );
515 GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_GRADIENT, SfxCallMode::RECORD, { &aItem });
516 }
517 break;
518
519 case HATCH:
520 {
521 XFillHatchItem aItem( mpBgHatchItem->GetName(), mpBgHatchItem->GetHatchValue() );
522 GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_HATCH, SfxCallMode::RECORD, { &aItem });
523 }
524 break;
525
526 case BITMAP:
527 case PATTERN:
528 {
529 XFillBitmapItem aItem( mpBgBitmapItem->GetName(), mpBgBitmapItem->GetGraphicObject() );
530 GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_BITMAP, SfxCallMode::RECORD, { &aItem });
531 }
532 break;
533
534 default:
535 break;
536 }
537}
538
540{
541 const eFillStyle eXFS = static_cast<eFillStyle>(mxBgFillType->get_active());
543 switch(eXFS)
544 {
545 case SOLID:
546 {
547 XFillColorItem aItem(OUString(), mxBgColorLB->GetSelectEntryColor());
548 GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_COLOR, SfxCallMode::RECORD, { &aItem });
549 }
550 break;
551 case GRADIENT:
552 {
553 XGradient aGradient;
554 aGradient.SetStartColor(mxBgColorLB->GetSelectEntryColor());
555 aGradient.SetEndColor(mxBgGradientLB->GetSelectEntryColor());
556
557 XFillGradientItem aItem(aGradient);
558 GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_GRADIENT, SfxCallMode::RECORD, { &aItem });
559 }
560 break;
561 case HATCH:
562 if (pSh)
563 {
564 const SvxHatchListItem * pHatchListItem = pSh->GetItem(SID_HATCH_LIST);
565 sal_uInt16 nPos = mxBgHatchingLB->get_active();
566 XHatch aHatch = pHatchListItem->GetHatchList()->GetHatch(nPos)->GetHatch();
567 const OUString aHatchName = pHatchListItem->GetHatchList()->GetHatch(nPos)->GetName();
568
569 XFillHatchItem aItem(aHatchName, aHatch);
570 GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_HATCH, SfxCallMode::RECORD, { &aItem });
571 }
572 break;
573 case BITMAP:
574 case PATTERN:
575 if (pSh)
576 {
577 sal_Int16 nPos = mxBgBitmapLB->get_active();
578 GraphicObject aBitmap;
579 OUString aBitmapName;
580
581 if ( eXFS == BITMAP )
582 {
583 SvxBitmapListItem const * pBitmapListItem = pSh->GetItem(SID_BITMAP_LIST);
584 aBitmap = pBitmapListItem->GetBitmapList()->GetBitmap(nPos)->GetGraphicObject();
585 aBitmapName = pBitmapListItem->GetBitmapList()->GetBitmap(nPos)->GetName();
586 }
587 else
588 {
589 SvxPatternListItem const * pPatternListItem = pSh->GetItem(SID_PATTERN_LIST);
590 aBitmap = pPatternListItem->GetPatternList()->GetBitmap(nPos)->GetGraphicObject();
591 aBitmapName = pPatternListItem->GetPatternList()->GetBitmap(nPos)->GetName();
592 }
593
594 XFillBitmapItem aItem(aBitmapName, aBitmap);
595 GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_BITMAP, SfxCallMode::RECORD, { &aItem });
596 }
597 break;
598 default:
599 break;
600 }
601}
602
604{
605 ModifyFillColor();
606}
607
608IMPL_LINK_NOARG(PageStylesPanel, ModifyFillColorListHdl, ColorListBox&, void)
609{
610 ModifyFillColor();
611}
612
613}
614
615/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
sfx2::sidebar::Panel * m_pPanel
virtual weld::Window * GetFrameWeld() const
SfxDispatcher * GetDispatcher() const
void Invalidate(sal_uInt16 nId)
virtual void dispose()
const SfxPoolItem * ExecuteList(sal_uInt16 nSlot, SfxCallMode nCall, std::initializer_list< SfxPoolItem const * > args, std::initializer_list< SfxPoolItem const * > internalargs=std::initializer_list< SfxPoolItem const * >())
static SAL_WARN_UNUSED_RESULT SfxObjectShell * Current()
virtual SfxPoolItem * Clone(SfxItemPool *pPool=nullptr) const=0
const SfxPoolItem * GetItem(sal_uInt16 nSlotId) const
const XBitmapListRef & GetBitmapList() const
const XGradientListRef & GetGradientList() const
const XHatchListRef & GetHatchList() const
static void GetI18nNumbering(weld::ComboBox &rFmtLB, sal_uInt16 nDoNotRemove)
const XPatternListRef & GetPatternList() const
const Color & GetEndColor() const
const Color & GetStartColor() const
void SetStartColor(const Color &rColor)
void SetEndColor(const Color &rColor)
::sfx2::sidebar::ControllerItem maBgBitmapControl
::sfx2::sidebar::ControllerItem maPageColumnControl
virtual ~PageStylesPanel() override
::sfx2::sidebar::ControllerItem maBgFillStyleControl
static std::unique_ptr< PanelLayout > Create(weld::Widget *pParent, SfxBindings *pBindings)
std::unique_ptr< ColorListBox > mxBgColorLB
std::unique_ptr< SvxPageNumberListBox > mxNumberSelectLB
std::unique_ptr< weld::Label > mxCustomEntry
::std::unique_ptr< SvxPageItem > mpPageItem
::std::unique_ptr< XFillColorItem > mpBgColorItem
::std::unique_ptr< SfxInt16Item > mpPageColumnItem
std::unique_ptr< weld::ComboBox > mxBgBitmapLB
PageStylesPanel(weld::Widget *pParent, SfxBindings *pBindings)
std::unique_ptr< weld::ComboBox > mxLayoutSelectLB
SfxBindings * GetBindings() const
::std::unique_ptr< XFillHatchItem > mpBgHatchItem
::sfx2::sidebar::ControllerItem maBgColorControl
XGradient const & GetGradientSetOrDefault()
std::unique_ptr< weld::ComboBox > mxBgFillType
virtual void NotifyItemUpdate(const sal_uInt16 nSId, const SfxItemState eState, const SfxPoolItem *pState) override
::std::unique_ptr< XFillBitmapItem > mpBgBitmapItem
::sfx2::sidebar::ControllerItem maBgHatchingControl
std::unique_ptr< weld::ComboBox > mxBgHatchingLB
std::unique_ptr< ColorListBox > mxBgGradientLB
::std::unique_ptr< XFillGradientItem > mpBgGradientItem
OUString const & GetHatchingSetOrDefault()
OUString const & GetPatternSetOrDefault()
OUString const & GetBitmapSetOrDefault()
std::unique_ptr< weld::ComboBox > mxColumnCount
::sfx2::sidebar::ControllerItem maPageNumFormatControl
::sfx2::sidebar::ControllerItem maBgGradientControl
#define SID_ATTR_PAGE_COLUMN
Definition: cmdid.h:893
virtual SfxBindings & GetBindings() override
sal_Int32 nIndex
sal_uInt16 nPos
#define SAL_WARN(area, stream)
#define SAL_N_ELEMENTS(arr)
SVX_DLLPUBLIC void Fill(weld::ComboBox &, const XHatchListRef &pList)
SVX_DLLPUBLIC void Fill(weld::ComboBox &rListBox)
NONE
int i
IMPL_LINK_NOARG(PageColumnControl, MoreButtonClickHdl_Impl, weld::Button &, void)
static sal_uInt16 PageUsageToPos_Impl(SvxPageUsage nUsage)
const SvxPageUsage aArr[]
static SvxPageUsage PosToPageUsage_Impl(sal_uInt16 nPos)
SvxPageUsage
SfxItemState
SvxNumType
constexpr OUStringLiteral PATTERN