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