LibreOffice Module svx (master)  1
ParaPropertyPanel.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 "ParaPropertyPanel.hxx"
20 #include <sfx2/dispatch.hxx>
21 #include <sfx2/module.hxx>
22 #include <sfx2/viewfrm.hxx>
23 #include <sfx2/weldutils.hxx>
24 #include <editeng/lrspitem.hxx>
25 #include <editeng/ulspitem.hxx>
26 #include <svx/dlgctrl.hxx>
27 #include <svx/svxids.hrc>
28 #include <svl/intitem.hxx>
29 #include <sfx2/objsh.hxx>
30 #include <svtools/unitconv.hxx>
31 #include <sal/log.hxx>
32 
33 #include <com/sun/star/lang/IllegalArgumentException.hpp>
34 
35 using namespace css;
36 using namespace css::uno;
37 
38 namespace svx::sidebar {
39 #define DEFAULT_VALUE 0
40 
41 #define MAX_DURCH 5670
42 
43 #define MAX_SW 1709400
44 #define MAX_SC_SD 116220200
45 #define NEGA_MAXVALUE -10000000
46 
48  vcl::Window* pParent,
49  const css::uno::Reference<css::frame::XFrame>& rxFrame,
50  SfxBindings* pBindings,
51  const css::uno::Reference<css::ui::XSidebar>& rxSidebar)
52 {
53  if (pParent == nullptr)
54  throw lang::IllegalArgumentException("no parent Window given to ParaPropertyPanel::Create", nullptr, 0);
55  if ( ! rxFrame.is())
56  throw lang::IllegalArgumentException("no XFrame given to ParaPropertyPanel::Create", nullptr, 1);
57  if (pBindings == nullptr)
58  throw lang::IllegalArgumentException("no SfxBindings given to ParaPropertyPanel::Create", nullptr, 2);
59 
61  pParent,
62  rxFrame,
63  pBindings,
64  rxSidebar);
65 }
66 
67 void ParaPropertyPanel::HandleContextChange (
68  const vcl::EnumContext& rContext)
69 {
70  if (maContext == rContext)
71  {
72  // Nothing to do.
73  return;
74  }
75 
76  maContext = rContext;
77  switch (maContext.GetCombinedContext_DI())
78  {
79  case CombinedEnumContext(Application::Calc, Context::DrawText):
80  case CombinedEnumContext(Application::WriterVariants, Context::DrawText):
81  mxTBxVertAlign->show();
82  mxTBxBackColor->hide();
83  mxTBxNumBullet->hide();
84  ReSize();
85  break;
86 
87  case CombinedEnumContext(Application::DrawImpress, Context::Draw):
88  case CombinedEnumContext(Application::DrawImpress, Context::TextObject):
89  case CombinedEnumContext(Application::DrawImpress, Context::Graphic):
90  case CombinedEnumContext(Application::DrawImpress, Context::DrawText):
91  case CombinedEnumContext(Application::DrawImpress, Context::Table):
92  mxTBxVertAlign->show();
93  mxTBxBackColor->hide();
94  mxTBxNumBullet->hide();
95  ReSize();
96  break;
97 
98  case CombinedEnumContext(Application::WriterVariants, Context::Default):
99  case CombinedEnumContext(Application::WriterVariants, Context::Text):
100  mxTBxVertAlign->hide();
101  mxTBxBackColor->show();
102  mxTBxNumBullet->show();
103  ReSize();
104  break;
105 
106  case CombinedEnumContext(Application::WriterVariants, Context::Table):
107  mxTBxVertAlign->show();
108  mxTBxBackColor->show();
109  mxTBxNumBullet->show();
110  ReSize();
111  break;
112 
113  case CombinedEnumContext(Application::WriterVariants, Context::Annotation):
114  mxTBxVertAlign->hide();
115  mxTBxBackColor->hide();
116  mxTBxNumBullet->hide();
117  ReSize();
118  break;
119 
120  case CombinedEnumContext(Application::Calc, Context::EditCell):
121  case CombinedEnumContext(Application::Calc, Context::Cell):
122  case CombinedEnumContext(Application::Calc, Context::Pivot):
123  case CombinedEnumContext(Application::DrawImpress, Context::Text):
124  case CombinedEnumContext(Application::DrawImpress, Context::OutlineText):
125  break;
126 
127  default:
128  break;
129  }
130 }
131 
132 void ParaPropertyPanel::DataChanged (const DataChangedEvent&) {}
133 
134 void ParaPropertyPanel::ReSize()
135 {
136  if (mxSidebar.is())
137  mxSidebar->requestLayout();
138 }
139 
140 void ParaPropertyPanel::InitToolBoxIndent()
141 {
142  Link<weld::MetricSpinButton&,void> aLink = LINK( this, ParaPropertyPanel, ModifyIndentHdl_Impl );
143  mxLeftIndent->connect_value_changed( aLink );
144  mxRightIndent->connect_value_changed( aLink );
145  mxFLineIndent->connect_value_changed( aLink );
146 
147  m_eLRSpaceUnit = maLRSpaceControl.GetCoreMetric();
148 }
149 
150 void ParaPropertyPanel::InitToolBoxSpacing()
151 {
152  Link<weld::MetricSpinButton&,void> aLink = LINK( this, ParaPropertyPanel, ULSpaceHdl_Impl );
153  mxTopDist->connect_value_changed(aLink);
154  mxBottomDist->connect_value_changed( aLink );
155 
156  m_eULSpaceUnit = maULSpaceControl.GetCoreMetric();
157 }
158 
159 void ParaPropertyPanel::initial()
160 {
161  limitMetricWidths();
162 
163  //toolbox
164  InitToolBoxIndent();
165  InitToolBoxSpacing();
166 }
167 
168 // for Paragraph Indent
170 {
171  SvxLRSpaceItem aMargin( SID_ATTR_PARA_LRSPACE );
172  aMargin.SetTextLeft(mxLeftIndent->GetCoreValue(m_eLRSpaceUnit));
173  aMargin.SetRight(mxRightIndent->GetCoreValue(m_eLRSpaceUnit));
174  aMargin.SetTextFirstLineOffset(static_cast<short>(mxFLineIndent->GetCoreValue(m_eLRSpaceUnit)));
175 
176  GetBindings()->GetDispatcher()->ExecuteList(
177  SID_ATTR_PARA_LRSPACE, SfxCallMode::RECORD, { &aMargin });
178 }
179 
180 
181 // for Paragraph Spacing
183 {
184  SvxULSpaceItem aMargin( SID_ATTR_PARA_ULSPACE );
185  aMargin.SetUpper( static_cast<sal_uInt16>(mxTopDist->GetCoreValue(m_eULSpaceUnit)));
186  aMargin.SetLower( static_cast<sal_uInt16>(mxBottomDist->GetCoreValue(m_eULSpaceUnit)));
187 
188  GetBindings()->GetDispatcher()->ExecuteList(
189  SID_ATTR_PARA_ULSPACE, SfxCallMode::RECORD, { &aMargin });
190 }
191 
192 // for Paragraph State change
193 void ParaPropertyPanel::NotifyItemUpdate(
194  sal_uInt16 nSID,
195  SfxItemState eState,
196  const SfxPoolItem* pState)
197 {
198  switch (nSID)
199  {
200  case SID_ATTR_METRIC:
201  {
202  m_eMetricUnit = GetCurrentUnit(eState,pState);
203  if( m_eMetricUnit!=m_last_eMetricUnit )
204  {
205  mxLeftIndent->SetFieldUnit(m_eMetricUnit);
206  mxRightIndent->SetFieldUnit(m_eMetricUnit);
207  mxFLineIndent->SetFieldUnit(m_eMetricUnit);
208  mxTopDist->SetFieldUnit(m_eMetricUnit);
209  mxBottomDist->SetFieldUnit(m_eMetricUnit);
210 
211  limitMetricWidths();
212  }
213  m_last_eMetricUnit = m_eMetricUnit;
214  }
215  break;
216 
217  case SID_ATTR_PARA_LRSPACE:
218  StateChangedIndentImpl( eState, pState );
219  break;
220 
221  case SID_ATTR_PARA_ULSPACE:
222  StateChangedULImpl( eState, pState );
223  break;
224  }
225 }
226 
227 void ParaPropertyPanel::StateChangedIndentImpl( SfxItemState eState, const SfxPoolItem* pState )
228 {
229  switch (maContext.GetCombinedContext_DI())
230  {
231 
232  case CombinedEnumContext(Application::WriterVariants, Context::DrawText):
233  case CombinedEnumContext(Application::WriterVariants, Context::Annotation):
234  case CombinedEnumContext(Application::Calc, Context::DrawText):
235  case CombinedEnumContext(Application::DrawImpress, Context::DrawText):
236  case CombinedEnumContext(Application::DrawImpress, Context::Draw):
237  case CombinedEnumContext(Application::DrawImpress, Context::TextObject):
238  case CombinedEnumContext(Application::DrawImpress, Context::Graphic):
239  case CombinedEnumContext(Application::DrawImpress, Context::Table):
240  {
241  mxLeftIndent->set_min( DEFAULT_VALUE, FieldUnit::NONE );
242  mxRightIndent->set_min( DEFAULT_VALUE, FieldUnit::NONE );
243  mxFLineIndent->set_min( DEFAULT_VALUE, FieldUnit::NONE );
244  }
245  break;
246  case CombinedEnumContext(Application::WriterVariants, Context::Default):
247  case CombinedEnumContext(Application::WriterVariants, Context::Text):
248  case CombinedEnumContext(Application::WriterVariants, Context::Table):
249  {
250  mxLeftIndent->set_min( NEGA_MAXVALUE, FieldUnit::MM_100TH );
251  mxRightIndent->set_min( NEGA_MAXVALUE, FieldUnit::MM_100TH );
252  mxFLineIndent->set_min( NEGA_MAXVALUE, FieldUnit::MM_100TH );
253  }
254  break;
255  }
256 
257  bool bDisabled = eState == SfxItemState::DISABLED;
258  mxLeftIndent->set_sensitive(!bDisabled);
259  mxRightIndent->set_sensitive(!bDisabled);
260  mxFLineIndent->set_sensitive(!bDisabled);
261 
262  if (pState && eState >= SfxItemState::DEFAULT)
263  {
264  const SvxLRSpaceItem* pSpace = static_cast<const SvxLRSpaceItem*>(pState);
265  maTxtLeft = pSpace->GetTextLeft();
266  maTxtLeft = OutputDevice::LogicToLogic( maTxtLeft, m_eLRSpaceUnit, MapUnit::Map100thMM );
267  maTxtLeft = OutputDevice::LogicToLogic( maTxtLeft, MapUnit::Map100thMM, MapUnit::MapTwip );
268 
269  tools::Long aTxtRight = pSpace->GetRight();
270  aTxtRight = OutputDevice::LogicToLogic( aTxtRight, m_eLRSpaceUnit, MapUnit::Map100thMM );
271  aTxtRight = OutputDevice::LogicToLogic( aTxtRight, MapUnit::Map100thMM, MapUnit::MapTwip );
272 
273  tools::Long aTxtFirstLineOfst = pSpace->GetTextFirstLineOffset();
274  aTxtFirstLineOfst = OutputDevice::LogicToLogic( aTxtFirstLineOfst, m_eLRSpaceUnit, MapUnit::Map100thMM );
275  aTxtFirstLineOfst = OutputDevice::LogicToLogic( aTxtFirstLineOfst, MapUnit::Map100thMM, MapUnit::MapTwip );
276 
277  tools::Long nVal = OutputDevice::LogicToLogic( maTxtLeft, MapUnit::MapTwip, MapUnit::Map100thMM );
278  nVal = static_cast<tools::Long>(mxLeftIndent->normalize( nVal ));
279 
280  if ( maContext.GetCombinedContext_DI() != CombinedEnumContext(Application::WriterVariants, Context::Text)
281  && maContext.GetCombinedContext_DI() != CombinedEnumContext(Application::WriterVariants, Context::Default)
282  && maContext.GetCombinedContext_DI() != CombinedEnumContext(Application::WriterVariants, Context::Table))
283  {
284  mxFLineIndent->set_min( nVal*-1, FieldUnit::MM_100TH );
285  }
286 
287  tools::Long nrVal = OutputDevice::LogicToLogic( aTxtRight, MapUnit::MapTwip, MapUnit::Map100thMM );
288  nrVal = static_cast<tools::Long>(mxRightIndent->normalize( nrVal ));
289 
290  switch (maContext.GetCombinedContext_DI())
291  {
292  case CombinedEnumContext(Application::WriterVariants, Context::DrawText):
293  case CombinedEnumContext(Application::WriterVariants, Context::Text):
294  case CombinedEnumContext(Application::WriterVariants, Context::Default):
295  case CombinedEnumContext(Application::WriterVariants, Context::Table):
296  case CombinedEnumContext(Application::WriterVariants, Context::Annotation):
297  {
298  mxLeftIndent->set_max( MAX_SW - nrVal, FieldUnit::MM_100TH );
299  mxRightIndent->set_max( MAX_SW - nVal, FieldUnit::MM_100TH );
300  mxFLineIndent->set_max( MAX_SW - nVal - nrVal, FieldUnit::MM_100TH );
301  }
302  break;
303  case CombinedEnumContext(Application::DrawImpress, Context::DrawText):
304  case CombinedEnumContext(Application::DrawImpress, Context::Draw):
305  case CombinedEnumContext(Application::DrawImpress, Context::Table):
306  case CombinedEnumContext(Application::DrawImpress, Context::TextObject):
307  case CombinedEnumContext(Application::DrawImpress, Context::Graphic):
308  {
309  mxLeftIndent->set_max( MAX_SC_SD - nrVal, FieldUnit::MM_100TH );
310  mxRightIndent->set_max( MAX_SC_SD - nVal, FieldUnit::MM_100TH );
311  mxFLineIndent->set_max( MAX_SC_SD - nVal - nrVal, FieldUnit::MM_100TH );
312  }
313  }
314 
315  mxLeftIndent->set_value( nVal, FieldUnit::MM_100TH );
316  mxRightIndent->set_value( nrVal, FieldUnit::MM_100TH );
317 
318  tools::Long nfVal = OutputDevice::LogicToLogic( aTxtFirstLineOfst, MapUnit::MapTwip, MapUnit::Map100thMM );
319  nfVal = static_cast<tools::Long>(mxFLineIndent->normalize( nfVal ));
320  mxFLineIndent->set_value( nfVal, FieldUnit::MM_100TH );
321  }
322  else if (eState != SfxItemState::DISABLED )
323  {
324  mxLeftIndent->set_text("");
325  mxRightIndent->set_text("");
326  mxFLineIndent->set_text("");
327  }
328 
329  limitMetricWidths();
330 }
331 
332 void ParaPropertyPanel::StateChangedULImpl( SfxItemState eState, const SfxPoolItem* pState )
333 {
334  mxTopDist->set_max( mxTopDist->normalize( MAX_DURCH ), MapToFieldUnit(m_eULSpaceUnit) );
335  mxBottomDist->set_max( mxBottomDist->normalize( MAX_DURCH ), MapToFieldUnit(m_eULSpaceUnit) );
336 
337  bool bDisabled = eState == SfxItemState::DISABLED;
338  mxTopDist->set_sensitive(!bDisabled);
339  mxBottomDist->set_sensitive(!bDisabled);
340 
341  if( pState && eState >= SfxItemState::DEFAULT )
342  {
343  const SvxULSpaceItem* pOldItem = static_cast<const SvxULSpaceItem*>(pState);
344 
345  maUpper = pOldItem->GetUpper();
346  maUpper = OutputDevice::LogicToLogic( maUpper, m_eULSpaceUnit, MapUnit::Map100thMM );
347  maUpper = OutputDevice::LogicToLogic( maUpper, MapUnit::Map100thMM, MapUnit::MapTwip );
348 
349  maLower = pOldItem->GetLower();
350  maLower = OutputDevice::LogicToLogic( maLower, m_eULSpaceUnit, MapUnit::Map100thMM );
351  maLower = OutputDevice::LogicToLogic( maLower, MapUnit::Map100thMM, MapUnit::MapTwip );
352 
353  sal_Int64 nVal = OutputDevice::LogicToLogic( maUpper, MapUnit::MapTwip, MapUnit::Map100thMM );
354  nVal = mxTopDist->normalize( nVal );
355  mxTopDist->set_value( nVal, FieldUnit::MM_100TH );
356 
357  nVal = OutputDevice::LogicToLogic( maLower, MapUnit::MapTwip, MapUnit::Map100thMM );
358  nVal = mxBottomDist->normalize( nVal );
359  mxBottomDist->set_value( nVal, FieldUnit::MM_100TH );
360  }
361  else if (eState != SfxItemState::DISABLED )
362  {
363  mxTopDist->set_text("");
364  mxBottomDist->set_text("");
365  }
366  limitMetricWidths();
367 }
368 
369 FieldUnit ParaPropertyPanel::GetCurrentUnit( SfxItemState eState, const SfxPoolItem* pState )
370 {
371  FieldUnit eUnit = FieldUnit::NONE;
372 
373  if ( pState && eState >= SfxItemState::DEFAULT )
374  eUnit = static_cast<FieldUnit>(static_cast<const SfxUInt16Item*>(pState)->GetValue());
375  else
376  {
378  SfxObjectShell* pSh = nullptr;
379  if ( pFrame )
380  pSh = pFrame->GetObjectShell();
381  if ( pSh ) //the object shell is not always available during reload
382  {
383  SfxModule* pModule = pSh->GetModule();
384  if ( pModule )
385  {
386  const SfxPoolItem* pItem = pModule->GetItem( SID_ATTR_METRIC );
387  if ( pItem )
388  eUnit = static_cast<FieldUnit>(static_cast<const SfxUInt16Item*>(pItem)->GetValue());
389  }
390  else
391  {
392  SAL_WARN("svx.sidebar", "GetModuleFieldUnit(): no module found");
393  }
394  }
395  }
396 
397  return eUnit;
398 }
399 
400 ParaPropertyPanel::ParaPropertyPanel(vcl::Window* pParent,
401  const css::uno::Reference<css::frame::XFrame>& rxFrame,
402  SfxBindings* pBindings,
403  const css::uno::Reference<css::ui::XSidebar>& rxSidebar)
404  : PanelLayout(pParent, "ParaPropertyPanel", "svx/ui/sidebarparagraph.ui", rxFrame),
405  //Alignment
406  mxTBxHorzAlign(m_xBuilder->weld_toolbar("horizontalalignment")),
407  mxHorzAlignDispatch(new ToolbarUnoDispatcher(*mxTBxHorzAlign, *m_xBuilder, rxFrame)),
408  mxTBxVertAlign(m_xBuilder->weld_toolbar("verticalalignment")),
409  mxVertAlignDispatch(new ToolbarUnoDispatcher(*mxTBxVertAlign, *m_xBuilder, rxFrame)),
410  //NumBullet&Backcolor
411  mxTBxNumBullet(m_xBuilder->weld_toolbar("numberbullet")),
412  mxNumBulletDispatch(new ToolbarUnoDispatcher(*mxTBxNumBullet, *m_xBuilder, rxFrame)),
413  mxTBxBackColor(m_xBuilder->weld_toolbar("backgroundcolor")),
414  mxBackColorDispatch(new ToolbarUnoDispatcher(*mxTBxBackColor, *m_xBuilder, rxFrame)),
415  mxTBxWriteDirection(m_xBuilder->weld_toolbar("writedirection")),
416  mxWriteDirectionDispatch(new ToolbarUnoDispatcher(*mxTBxWriteDirection, *m_xBuilder, rxFrame)),
417  mxTBxParaSpacing(m_xBuilder->weld_toolbar("paraspacing")),
418  mxParaSpacingDispatch(new ToolbarUnoDispatcher(*mxTBxParaSpacing, *m_xBuilder, rxFrame)),
419  mxTBxLineSpacing(m_xBuilder->weld_toolbar("linespacing")),
420  mxLineSpacingDispatch(new ToolbarUnoDispatcher(*mxTBxLineSpacing, *m_xBuilder, rxFrame)),
421  mxTBxIndent(m_xBuilder->weld_toolbar("indent")),
422  mxIndentDispatch(new ToolbarUnoDispatcher(*mxTBxIndent, *m_xBuilder, rxFrame)),
423  //Paragraph spacing
424  mxTopDist(new SvxRelativeField(m_xBuilder->weld_metric_spin_button("aboveparaspacing", FieldUnit::CM))),
425  mxBottomDist(new SvxRelativeField(m_xBuilder->weld_metric_spin_button("belowparaspacing", FieldUnit::CM))),
426  mxLeftIndent(new SvxRelativeField(m_xBuilder->weld_metric_spin_button("beforetextindent", FieldUnit::CM))),
427  mxRightIndent(new SvxRelativeField(m_xBuilder->weld_metric_spin_button("aftertextindent", FieldUnit::CM))),
428  mxFLineIndent(new SvxRelativeField(m_xBuilder->weld_metric_spin_button("firstlineindent", FieldUnit::CM))),
429  maTxtLeft (0),
430  maUpper (0),
431  maLower (0),
432  m_eMetricUnit(FieldUnit::NONE),
433  m_last_eMetricUnit(FieldUnit::NONE),
434  m_eLRSpaceUnit(),
435  m_eULSpaceUnit(),
436  maLRSpaceControl (SID_ATTR_PARA_LRSPACE,*pBindings,*this),
437  maULSpaceControl (SID_ATTR_PARA_ULSPACE, *pBindings,*this),
438  m_aMetricCtl (SID_ATTR_METRIC, *pBindings,*this),
439  maContext(),
440  mpBindings(pBindings),
441  mxSidebar(rxSidebar)
442 {
443  // tdf#130197 We want to give this toolbar a width as if it had 5 entries
444  // (the parent grid has homogeneous width set so both columns will have the
445  // same width). This ParaPropertyPanel is a default panel in writer, so
446  // subsequent panels, e.g. the TableEditPanel panel can have up to 5
447  // entries in each of its column and remain in alignment with this panel
448  padWidthForSidebar(*mxTBxIndent, rxFrame);
449 
450  initial();
453 }
454 
456 {
462 }
463 
465 {
466  disposeOnce();
467 }
468 
470 {
471  mxHorzAlignDispatch.reset();
472  mxTBxHorzAlign.reset();
473 
474  mxVertAlignDispatch.reset();
475  mxTBxVertAlign.reset();
476 
477  mxNumBulletDispatch.reset();
478  mxTBxNumBullet.reset();
479 
480  mxBackColorDispatch.reset();
481  mxTBxBackColor.reset();
482 
483  mxWriteDirectionDispatch.reset();
484  mxTBxWriteDirection.reset();
485 
486  mxParaSpacingDispatch.reset();
487  mxTBxParaSpacing.reset();
488 
489  mxLineSpacingDispatch.reset();
490  mxTBxLineSpacing.reset();
491 
492  mxIndentDispatch.reset();
493  mxTBxIndent.reset();
494 
495  mxTopDist.reset();
496  mxBottomDist.reset();
497  mxLeftIndent.reset();
498  mxRightIndent.reset();
499  mxFLineIndent.reset();
500 
504 
506 }
507 
508 } // end of namespace svx::sidebar
509 
510 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
FieldUnit
void SetRight(const tools::Long nR, const sal_uInt16 nProp=100)
SlideShowContext maContext
std::unique_ptr< ToolbarUnoDispatcher > mxWriteDirectionDispatch
void padWidthForSidebar(weld::Toolbar &rToolbar, const css::uno::Reference< css::frame::XFrame > &rFrame)
Definition: dlgctrl.cxx:1436
void limitWidthForSidebar(weld::SpinButton &rSpinButton)
Definition: dlgctrl.cxx:1423
sal_uInt16 GetLower() const
std::string GetValue
Point LogicToLogic(const Point &rPtSource, const MapMode *pMapModeSource, const MapMode *pMapModeDest) const
long Long
tools::Long GetRight() const
::sfx2::sidebar::ControllerItem m_aMetricCtl
std::unique_ptr< ToolbarUnoDispatcher > mxLineSpacingDispatch
std::unique_ptr< SvxRelativeField > mxBottomDist
virtual SfxObjectShell * GetObjectShell() override
::sfx2::sidebar::ControllerItem maULSpaceControl
NONE
SfxModule * GetModule() const
void SetTextLeft(const tools::Long nL, const sal_uInt16 nProp=100)
std::unique_ptr< weld::Toolbar > mxTBxBackColor
std::unique_ptr< weld::Toolbar > mxTBxVertAlign
#define MAX_SW
IMPL_LINK_NOARG(ParaPropertyPanel, ULSpaceHdl_Impl, weld::MetricSpinButton &, void)
void SetLower(const sal_uInt16 nL, const sal_uInt16 nProp=100)
std::unique_ptr< weld::Toolbar > mxTBxLineSpacing
const SfxPoolItem * GetItem(sal_uInt16 nSlotId) const
tools::Long GetTextLeft() const
#define MAX_SC_SD
virtual void dispose()
std::unique_ptr< SvxRelativeField > mxTopDist
std::unique_ptr< ToolbarUnoDispatcher > mxNumBulletDispatch
void Create(SvxOrientationItem &rItem, SvStream &rStrm, sal_uInt16)
Definition: legacyitem.cxx:34
std::unique_ptr< SvxRelativeField > mxFLineIndent
void SetTextFirstLineOffset(const short nF, const sal_uInt16 nProp=100)
short GetTextFirstLineOffset() const
#define NEGA_MAXVALUE
std::unique_ptr< SvxRelativeField > mxLeftIndent
std::unique_ptr< weld::Toolbar > mxTBxNumBullet
#define MAX_DURCH
std::unique_ptr< ToolbarUnoDispatcher > mxIndentDispatch
std::unique_ptr< ToolbarUnoDispatcher > mxBackColorDispatch
std::unique_ptr< SvxRelativeField > mxRightIndent
weld::Widget * m_pInitialFocusWidget
virtual void dispose() override
#define DEFAULT_VALUE
static SfxViewFrame * Current()
SfxItemState
std::unique_ptr< weld::Toolbar > mxTBxIndent
static VclPtr< reference_type > Create(Arg &&...arg)
::sfx2::sidebar::ControllerItem maLRSpaceControl
FieldUnit MapToFieldUnit(const MapUnit eUnit)
std::unique_ptr< ToolbarUnoDispatcher > mxParaSpacingDispatch
#define SAL_WARN(area, stream)
std::unique_ptr< weld::Toolbar > mxTBxHorzAlign
std::unique_ptr< ToolbarUnoDispatcher > mxVertAlignDispatch
std::unique_ptr< weld::Toolbar > mxTBxParaSpacing
std::unique_ptr< weld::Toolbar > mxTBxWriteDirection
void SetUpper(const sal_uInt16 nU, const sal_uInt16 nProp=100)
std::unique_ptr< ToolbarUnoDispatcher > mxHorzAlignDispatch
#define CombinedEnumContext(a, e)
sal_uInt16 GetUpper() const