diff options
-rw-r--r-- | cui/source/inc/paragrph.hxx | 60 | ||||
-rw-r--r-- | cui/source/tabpages/paragrph.cxx | 558 | ||||
-rw-r--r-- | cui/uiconfig/ui/paraindentspacing.ui | 143 | ||||
-rw-r--r-- | include/svx/paraprev.hxx | 29 | ||||
-rw-r--r-- | include/svx/relfld.hxx | 42 | ||||
-rw-r--r-- | include/vcl/weld.hxx | 4 | ||||
-rw-r--r-- | solenv/sanitizers/ui/cui.suppr | 4 | ||||
-rw-r--r-- | svx/source/dialog/relfld.cxx | 80 |
8 files changed, 529 insertions, 391 deletions
diff --git a/cui/source/inc/paragrph.hxx b/cui/source/inc/paragrph.hxx index ed88e4461532..16614656125c 100644 --- a/cui/source/inc/paragrph.hxx +++ b/cui/source/inc/paragrph.hxx @@ -51,48 +51,53 @@ class SvxStdParagraphTabPage: public SfxTabPage static const sal_uInt16 pStdRanges[]; private: - SvxStdParagraphTabPage( vcl::Window* pParent, const SfxItemSet& rSet ); + SvxStdParagraphTabPage(TabPageParent pParent, const SfxItemSet& rSet); + + long nAbst; + long nWidth; + long nMinFixDist; + bool bRelativeMode; + OUString sAbsDist; + + ParaPrevWindow m_aExampleWin; // indention - VclPtr<SvxRelativeField> m_pLeftIndent; + std::unique_ptr<RelativeField> m_xLeftIndent; - VclPtr<FixedText> m_pRightLabel; - VclPtr<SvxRelativeField> m_pRightIndent; + std::unique_ptr<weld::Label> m_xRightLabel; + std::unique_ptr<RelativeField> m_xRightIndent; - VclPtr<FixedText> m_pFLineLabel; - VclPtr<SvxRelativeField> m_pFLineIndent; - VclPtr<CheckBox> m_pAutoCB; + std::unique_ptr<weld::Label> m_xFLineLabel; + std::unique_ptr<RelativeField> m_xFLineIndent; + std::unique_ptr<weld::CheckButton> m_xAutoCB; // distance - VclPtr<SvxRelativeField> m_pTopDist; - VclPtr<SvxRelativeField> m_pBottomDist; - VclPtr<CheckBox> m_pContextualCB; + std::unique_ptr<RelativeField> m_xTopDist; + std::unique_ptr<RelativeField> m_xBottomDist; + std::unique_ptr<weld::CheckButton> m_xContextualCB; // line spacing - VclPtr<ListBox> m_pLineDist; - VclPtr<FixedText> m_pLineDistAtLabel; - VclPtr<MetricField> m_pLineDistAtPercentBox; - VclPtr<MetricField> m_pLineDistAtMetricBox; - VclPtr<FixedText> m_pAbsDist; - OUString sAbsDist; - VclPtr<SvxParaPrevWindow> m_pExampleWin; + std::unique_ptr<weld::ComboBoxText> m_xLineDist; + std::unique_ptr<weld::MetricSpinButton> m_xLineDistAtPercentBox; + std::unique_ptr<weld::MetricSpinButton> m_xLineDistAtMetricBox; + std::unique_ptr<weld::Label> m_xLineDistAtLabel; + std::unique_ptr<weld::Label> m_xAbsDist; // only writer - VclPtr<VclFrame> m_pRegisterFL; - VclPtr<CheckBox> m_pRegisterCB; + std::unique_ptr<weld::Widget> m_xRegisterFL; + std::unique_ptr<weld::CheckButton> m_xRegisterCB; - long nAbst; - long nWidth; - long nMinFixDist; - bool bRelativeMode; + // preview + std::unique_ptr<weld::CustomWeld> m_xExampleWin; void SetLineSpacing_Impl( const SvxLineSpacingItem& rAttr ); void Init_Impl(); void UpdateExample_Impl(); + void ELRLoseFocus(); - DECL_LINK( LineDistHdl_Impl, ListBox&, void ); - DECL_LINK( ModifyHdl_Impl, Edit&, void ); - DECL_LINK( AutoHdl_Impl, Button*, void ); + DECL_LINK(LineDistHdl_Impl, weld::ComboBoxText&, void); + DECL_LINK(ModifyHdl_Impl, weld::MetricSpinButton&, void); + DECL_LINK(AutoHdl_Impl, weld::ToggleButton&, void); protected: virtual void ActivatePage( const SfxItemSet& rSet ) override; @@ -101,9 +106,8 @@ protected: public: virtual ~SvxStdParagraphTabPage() override; - virtual void dispose() override; - DECL_LINK(ELRLoseFocusHdl, Control&, void); + DECL_LINK(ELRLoseFocusHdl, weld::MetricSpinButton&, void); static VclPtr<SfxTabPage> Create( TabPageParent pParent, const SfxItemSet* rSet ); static const sal_uInt16* GetRanges() { return pStdRanges; } diff --git a/cui/source/tabpages/paragrph.cxx b/cui/source/tabpages/paragrph.cxx index 0fdc536823df..5f3af968def6 100644 --- a/cui/source/tabpages/paragrph.cxx +++ b/cui/source/tabpages/paragrph.cxx @@ -160,46 +160,53 @@ sal_uInt16 GetHtmlMode_Impl(const SfxItemSet& rSet) } -IMPL_LINK_NOARG(SvxStdParagraphTabPage, ELRLoseFocusHdl, Control&, void) +void SvxStdParagraphTabPage::ELRLoseFocus() { SfxItemPool* pPool = GetItemSet().GetPool(); DBG_ASSERT( pPool, "Where is the pool?" ); FieldUnit eUnit = MapToFieldUnit( pPool->GetMetric( GetWhich( SID_ATTR_LRSPACE ) ) ); - sal_Int64 nL = m_pLeftIndent->Denormalize( m_pLeftIndent->GetValue( eUnit ) ); - sal_Int64 nR = m_pRightIndent->Denormalize( m_pRightIndent->GetValue( eUnit ) ); - OUString aTmp = m_pFLineIndent->GetText(); + sal_Int64 nL = m_xLeftIndent->denormalize(m_xLeftIndent->get_value(eUnit)); + sal_Int64 nR = m_xRightIndent->denormalize(m_xRightIndent->get_value(eUnit)); + OUString aTmp = m_xFLineIndent->get_text(); - if( m_pLeftIndent->GetMin() < 0 ) - m_pFLineIndent->SetMin( -99999, FUNIT_MM ); + if (m_xLeftIndent->get_min(FUNIT_NONE) < 0) + m_xFLineIndent->set_min(-99999, FUNIT_MM); else - m_pFLineIndent->SetMin( m_pFLineIndent->Normalize( -nL ), eUnit ); + m_xFLineIndent->set_min(m_xFLineIndent->normalize(-nL), eUnit); // Check only for concrete width (Shell) sal_Int64 nTmp = nWidth - nL - nR - MM50; - m_pFLineIndent->SetMax( m_pFLineIndent->Normalize( nTmp ), eUnit ); + m_xFLineIndent->set_max(m_xFLineIndent->normalize(nTmp), eUnit); - if ( aTmp.isEmpty() ) - m_pFLineIndent->SetEmptyFieldValue(); + if (aTmp.isEmpty()) + m_xFLineIndent->set_text(OUString()); // maximum left right - aTmp = m_pLeftIndent->GetText(); + aTmp = m_xLeftIndent->get_text(); nTmp = nWidth - nR - MM50; - m_pLeftIndent->SetMax( m_pLeftIndent->Normalize( nTmp ), eUnit ); + m_xLeftIndent->set_max(m_xLeftIndent->normalize(nTmp), eUnit); if ( aTmp.isEmpty() ) - m_pLeftIndent->SetEmptyFieldValue(); - aTmp = m_pRightIndent->GetText(); + m_xLeftIndent->set_text(OUString()); + aTmp = m_xRightIndent->get_text(); nTmp = nWidth - nL - MM50; - m_pRightIndent->SetMax( m_pRightIndent->Normalize( nTmp ), eUnit ); + m_xRightIndent->set_max(m_xRightIndent->normalize(nTmp), eUnit); if ( aTmp.isEmpty() ) - m_pRightIndent->SetEmptyFieldValue(); + m_xRightIndent->set_text(OUString()); + + UpdateExample_Impl(); +} + +IMPL_LINK_NOARG(SvxStdParagraphTabPage, ELRLoseFocusHdl, weld::MetricSpinButton&, void) +{ + ELRLoseFocus(); } VclPtr<SfxTabPage> SvxStdParagraphTabPage::Create( TabPageParent pParent, const SfxItemSet* rSet) { - return VclPtr<SvxStdParagraphTabPage>::Create( pParent.pParent, *rSet ); + return VclPtr<SvxStdParagraphTabPage>::Create(pParent, *rSet); } bool SvxStdParagraphTabPage::FillItemSet( SfxItemSet* rOutSet ) @@ -211,12 +218,12 @@ bool SvxStdParagraphTabPage::FillItemSet( SfxItemSet* rOutSet ) bool bModified = false; sal_uInt16 nWhich; - sal_Int32 nPos = m_pLineDist->GetSelectedEntryPos(); + int nPos = m_xLineDist->get_active(); - if ( LISTBOX_ENTRY_NOTFOUND != nPos && - ( m_pLineDist->IsValueChangedFromSaved() || - m_pLineDistAtPercentBox->IsValueModified() || - m_pLineDistAtMetricBox->IsValueModified() ) ) + if ( nPos != -1 && + ( m_xLineDist->get_value_changed_from_saved() || + m_xLineDistAtPercentBox->get_value_changed_from_saved() || + m_xLineDistAtMetricBox->get_value_changed_from_saved() ) ) { nWhich = GetWhich( SID_ATTR_PARA_LINESPACE ); MapUnit eUnit = pPool->GetMetric( nWhich ); @@ -234,15 +241,15 @@ bool SvxStdParagraphTabPage::FillItemSet( SfxItemSet* rOutSet ) case LLINESPACE_PROP: SetLineSpace_Impl( aSpacing, nPos, - static_cast<long>(m_pLineDistAtPercentBox->Denormalize( - m_pLineDistAtPercentBox->GetValue() )) ); + static_cast<long>(m_xLineDistAtPercentBox->denormalize( + m_xLineDistAtPercentBox->get_value(FUNIT_NONE) )) ); break; case LLINESPACE_MIN: case LLINESPACE_DURCH: case LLINESPACE_FIX: SetLineSpace_Impl( aSpacing, nPos, - GetCoreValue( *m_pLineDistAtMetricBox, eUnit ) ); + GetCoreValue( *m_xLineDistAtMetricBox, eUnit ) ); break; default: @@ -260,8 +267,8 @@ bool SvxStdParagraphTabPage::FillItemSet( SfxItemSet* rOutSet ) } } - if ( m_pTopDist->IsValueModified() || m_pBottomDist->IsValueModified() - || m_pContextualCB->IsValueChangedFromSaved()) + if ( m_xTopDist->get_value_changed_from_saved() || m_xBottomDist->get_value_changed_from_saved() + || m_xContextualCB->get_state_changed_from_saved()) { nWhich = GetWhich( SID_ATTR_ULSPACE ); MapUnit eUnit = pPool->GetMetric( nWhich ); @@ -275,25 +282,25 @@ bool SvxStdParagraphTabPage::FillItemSet( SfxItemSet* rOutSet ) const SvxULSpaceItem& rOldItem = static_cast<const SvxULSpaceItem&>(GetItemSet().GetParent()->Get( nWhich )); - if ( m_pTopDist->IsRelative() ) + if ( m_xTopDist->IsRelative() ) aMargin.SetUpper( rOldItem.GetUpper(), - static_cast<sal_uInt16>(m_pTopDist->GetValue()) ); + static_cast<sal_uInt16>(m_xTopDist->get_value(FUNIT_NONE)) ); else - aMargin.SetUpper( static_cast<sal_uInt16>(GetCoreValue( *m_pTopDist, eUnit )) ); + aMargin.SetUpper( static_cast<sal_uInt16>(m_xTopDist->GetCoreValue(eUnit)) ); - if ( m_pBottomDist->IsRelative() ) + if ( m_xBottomDist->IsRelative() ) aMargin.SetLower( rOldItem.GetLower(), - static_cast<sal_uInt16>(m_pBottomDist->GetValue()) ); + static_cast<sal_uInt16>(m_xBottomDist->get_value(FUNIT_NONE)) ); else - aMargin.SetLower( static_cast<sal_uInt16>(GetCoreValue( *m_pBottomDist, eUnit )) ); + aMargin.SetLower( static_cast<sal_uInt16>(m_xBottomDist->GetCoreValue(eUnit)) ); } else { - aMargin.SetUpper( static_cast<sal_uInt16>(GetCoreValue( *m_pTopDist, eUnit )) ); - aMargin.SetLower( static_cast<sal_uInt16>(GetCoreValue( *m_pBottomDist, eUnit )) ); + aMargin.SetUpper(static_cast<sal_uInt16>(m_xTopDist->GetCoreValue(eUnit))); + aMargin.SetLower(static_cast<sal_uInt16>(m_xBottomDist->GetCoreValue(eUnit))); } - aMargin.SetContextValue(m_pContextualCB->IsChecked()); + aMargin.SetContextValue(m_xContextualCB->get_active()); eState = GetItemSet().GetItemState( nWhich ); if ( !pOld || !( *static_cast<const SvxULSpaceItem*>(pOld) == aMargin ) || @@ -305,10 +312,10 @@ bool SvxStdParagraphTabPage::FillItemSet( SfxItemSet* rOutSet ) } bool bNullTab = false; - if ( m_pLeftIndent->IsValueModified() || - m_pFLineIndent->IsValueModified() || - m_pRightIndent->IsValueModified() || - m_pAutoCB->IsValueChangedFromSaved() ) + if ( m_xLeftIndent->get_value_changed_from_saved() || + m_xFLineIndent->get_value_changed_from_saved() || + m_xRightIndent->get_value_changed_from_saved() || + m_xAutoCB->get_state_changed_from_saved() ) { nWhich = GetWhich( SID_ATTR_LRSPACE ); MapUnit eUnit = pPool->GetMetric( nWhich ); @@ -322,33 +329,31 @@ bool SvxStdParagraphTabPage::FillItemSet( SfxItemSet* rOutSet ) const SvxLRSpaceItem& rOldItem = static_cast<const SvxLRSpaceItem&>(GetItemSet().GetParent()->Get( nWhich )); - if ( m_pLeftIndent->IsRelative() ) + if (m_xLeftIndent->IsRelative()) aMargin.SetTextLeft( rOldItem.GetTextLeft(), - static_cast<sal_uInt16>(m_pLeftIndent->GetValue()) ); + static_cast<sal_uInt16>(m_xLeftIndent->get_value(FUNIT_NONE)) ); else - aMargin.SetTextLeft( GetCoreValue( *m_pLeftIndent, eUnit ) ); + aMargin.SetTextLeft(m_xLeftIndent->GetCoreValue(eUnit)); - if ( m_pRightIndent->IsRelative() ) + if ( m_xRightIndent->IsRelative() ) aMargin.SetRight( rOldItem.GetRight(), - static_cast<sal_uInt16>(m_pRightIndent->GetValue()) ); + static_cast<sal_uInt16>(m_xRightIndent->get_value(FUNIT_NONE)) ); else - aMargin.SetRight( GetCoreValue( *m_pRightIndent, eUnit ) ); + aMargin.SetRight(m_xRightIndent->GetCoreValue(eUnit)); - if ( m_pFLineIndent->IsRelative() ) + if ( m_xFLineIndent->IsRelative() ) aMargin.SetTextFirstLineOfst( rOldItem.GetTextFirstLineOfst(), - static_cast<sal_uInt16>(m_pFLineIndent->GetValue()) ); + static_cast<sal_uInt16>(m_xFLineIndent->get_value(FUNIT_NONE)) ); else - aMargin.SetTextFirstLineOfst( - static_cast<sal_uInt16>(GetCoreValue( *m_pFLineIndent, eUnit )) ); + aMargin.SetTextFirstLineOfst(static_cast<sal_uInt16>(m_xFLineIndent->GetCoreValue(eUnit))); } else { - aMargin.SetTextLeft( GetCoreValue( *m_pLeftIndent, eUnit ) ); - aMargin.SetRight( GetCoreValue( *m_pRightIndent, eUnit ) ); - aMargin.SetTextFirstLineOfst( - static_cast<sal_uInt16>(GetCoreValue( *m_pFLineIndent, eUnit )) ); + aMargin.SetTextLeft(m_xLeftIndent->GetCoreValue(eUnit)); + aMargin.SetRight(m_xRightIndent->GetCoreValue(eUnit)); + aMargin.SetTextFirstLineOfst(static_cast<sal_uInt16>(m_xFLineIndent->GetCoreValue(eUnit))); } - aMargin.SetAutoFirst(m_pAutoCB->IsChecked()); + aMargin.SetAutoFirst(m_xAutoCB->get_active()); if ( aMargin.GetTextFirstLineOfst() < 0 ) bNullTab = true; eState = GetItemSet().GetItemState( nWhich ); @@ -382,7 +387,7 @@ bool SvxStdParagraphTabPage::FillItemSet( SfxItemSet* rOutSet ) } } } - if( m_pRegisterCB->IsVisible()) + if (m_xRegisterCB->get_visible()) { const SfxBoolItem* pBoolItem = static_cast<const SfxBoolItem*>(GetOldItem( *rOutSet, SID_ATTR_PARA_REGISTER)); @@ -392,7 +397,7 @@ bool SvxStdParagraphTabPage::FillItemSet( SfxItemSet* rOutSet ) sal_uInt16 _nWhich = GetWhich( SID_ATTR_PARA_REGISTER ); bool bSet = pRegItem->GetValue(); - if(m_pRegisterCB->IsChecked() != bSet ) + if (m_xRegisterCB->get_active() != bSet) { pRegItem->SetValue(!bSet); rOutSet->Put(*pRegItem); @@ -419,20 +424,20 @@ void SvxStdParagraphTabPage::Reset( const SfxItemSet* rSet ) if(aCJKOptions.IsAsianTypographyEnabled() && bApplyCharUnit ) eFUnit = FUNIT_CHAR; - SetFieldUnit( *m_pLeftIndent, eFUnit ); - SetFieldUnit( *m_pRightIndent, eFUnit ); - SetFieldUnit( *m_pFLineIndent, eFUnit ); + m_xLeftIndent->SetFieldUnit(eFUnit); + m_xRightIndent->SetFieldUnit(eFUnit); + m_xFLineIndent->SetFieldUnit(eFUnit); if ( eFUnit == FUNIT_CHAR ) { - SetFieldUnit( *m_pTopDist, FUNIT_LINE ); - SetFieldUnit( *m_pBottomDist, FUNIT_LINE ); - SetFieldUnit( *m_pLineDistAtMetricBox, FUNIT_POINT ); + m_xTopDist->SetFieldUnit(FUNIT_LINE); + m_xBottomDist->SetFieldUnit(FUNIT_LINE); + SetFieldUnit(*m_xLineDistAtMetricBox, FUNIT_POINT); } else { - SetFieldUnit( *m_pTopDist, eFUnit ); - SetFieldUnit( *m_pBottomDist, eFUnit ); - SetFieldUnit( *m_pLineDistAtMetricBox, eFUnit ); + m_xTopDist->SetFieldUnit(eFUnit); + m_xBottomDist->SetFieldUnit(eFUnit); + SetFieldUnit(*m_xLineDistAtMetricBox, eFUnit); } sal_uInt16 _nWhich = GetWhich( SID_ATTR_LRSPACE ); @@ -449,60 +454,59 @@ void SvxStdParagraphTabPage::Reset( const SfxItemSet* rSet ) if ( rOldItem.GetPropLeft() != 100 ) { - m_pLeftIndent->SetRelative( true ); - m_pLeftIndent->SetValue( rOldItem.GetPropLeft() ); + m_xLeftIndent->SetRelative( true ); + m_xLeftIndent->set_value(rOldItem.GetPropLeft(), FUNIT_NONE); } else { - m_pLeftIndent->SetRelative(false); - SetFieldUnit( *m_pLeftIndent, eFUnit ); - SetMetricValue( *m_pLeftIndent, rOldItem.GetTextLeft(), eUnit ); + m_xLeftIndent->SetRelative(false); + m_xLeftIndent->SetFieldUnit(eFUnit); + m_xLeftIndent->SetMetricValue(rOldItem.GetTextLeft(), eUnit); } if ( rOldItem.GetPropRight() != 100 ) { - m_pRightIndent->SetRelative( true ); - m_pRightIndent->SetValue( rOldItem.GetPropRight() ); + m_xRightIndent->SetRelative( true ); + m_xRightIndent->set_value(rOldItem.GetPropRight(), FUNIT_NONE); } else { - m_pRightIndent->SetRelative(false); - SetFieldUnit( *m_pRightIndent, eFUnit ); - SetMetricValue( *m_pRightIndent, rOldItem.GetRight(), eUnit ); + m_xRightIndent->SetRelative(false); + m_xRightIndent->SetFieldUnit(eFUnit); + m_xRightIndent->SetMetricValue(rOldItem.GetRight(), eUnit); } if ( rOldItem.GetPropTextFirstLineOfst() != 100 ) { - m_pFLineIndent->SetRelative( true ); - m_pFLineIndent->SetValue( rOldItem.GetPropTextFirstLineOfst() ); + m_xFLineIndent->SetRelative(true); + m_xFLineIndent->set_value(rOldItem.GetPropTextFirstLineOfst(), FUNIT_NONE); } else { - m_pFLineIndent->SetRelative(false); - m_pFLineIndent->SetMin(-9999); - SetFieldUnit( *m_pFLineIndent, eFUnit ); - SetMetricValue( *m_pFLineIndent, rOldItem.GetTextFirstLineOfst(), - eUnit ); + m_xFLineIndent->SetRelative(false); + m_xFLineIndent->set_min(-9999, FUNIT_NONE); + m_xFLineIndent->SetFieldUnit(eFUnit); + m_xFLineIndent->SetMetricValue(rOldItem.GetTextFirstLineOfst(), eUnit); } - m_pAutoCB->Check(rOldItem.IsAutoFirst()); + m_xAutoCB->set_active(rOldItem.IsAutoFirst()); } else { const SvxLRSpaceItem& rSpace = static_cast<const SvxLRSpaceItem&>(rSet->Get( _nWhich )); - SetMetricValue( *m_pLeftIndent, rSpace.GetTextLeft(), eUnit ); - SetMetricValue( *m_pRightIndent, rSpace.GetRight(), eUnit ); - SetMetricValue( *m_pFLineIndent, rSpace.GetTextFirstLineOfst(), eUnit ); - m_pAutoCB->Check(rSpace.IsAutoFirst()); + m_xLeftIndent->SetMetricValue(rSpace.GetTextLeft(), eUnit); + m_xRightIndent->SetMetricValue(rSpace.GetRight(), eUnit); + m_xFLineIndent->SetMetricValue(rSpace.GetTextFirstLineOfst(), eUnit); + m_xAutoCB->set_active(rSpace.IsAutoFirst()); } - AutoHdl_Impl(m_pAutoCB); + AutoHdl_Impl(*m_xAutoCB); } else { - m_pLeftIndent->SetEmptyFieldValue(); - m_pRightIndent->SetEmptyFieldValue(); - m_pFLineIndent->SetEmptyFieldValue(); + m_xLeftIndent->set_text(OUString()); + m_xRightIndent->set_text(OUString()); + m_xFLineIndent->set_text(OUString()); } _nWhich = GetWhich( SID_ATTR_ULSPACE ); @@ -519,45 +523,45 @@ void SvxStdParagraphTabPage::Reset( const SfxItemSet* rSet ) if ( rOldItem.GetPropUpper() != 100 ) { - m_pTopDist->SetRelative( true ); - m_pTopDist->SetValue( rOldItem.GetPropUpper() ); + m_xTopDist->SetRelative( true ); + m_xTopDist->set_value(rOldItem.GetPropUpper(), FUNIT_NONE); } else { - m_pTopDist->SetRelative(false); - if ( eFUnit == FUNIT_CHAR ) - SetFieldUnit( *m_pTopDist, FUNIT_LINE ); + m_xTopDist->SetRelative(false); + if (eFUnit == FUNIT_CHAR) + m_xTopDist->SetFieldUnit(FUNIT_LINE); else - SetFieldUnit( *m_pTopDist, eFUnit ); - SetMetricValue( *m_pTopDist, rOldItem.GetUpper(), eUnit ); + m_xTopDist->SetFieldUnit(eFUnit); + m_xTopDist->SetMetricValue(rOldItem.GetUpper(), eUnit); } if ( rOldItem.GetPropLower() != 100 ) { - m_pBottomDist->SetRelative( true ); - m_pBottomDist->SetValue( rOldItem.GetPropLower() ); + m_xBottomDist->SetRelative( true ); + m_xBottomDist->set_value(rOldItem.GetPropLower(), FUNIT_NONE); } else { - m_pBottomDist->SetRelative(false); - if ( eFUnit == FUNIT_CHAR ) - SetFieldUnit( *m_pBottomDist, FUNIT_LINE ); + m_xBottomDist->SetRelative(false); + if (eFUnit == FUNIT_CHAR) + m_xBottomDist->SetFieldUnit(FUNIT_LINE); else - SetFieldUnit( *m_pBottomDist, eFUnit ); - SetMetricValue( *m_pBottomDist, rOldItem.GetLower(), eUnit ); + m_xBottomDist->SetFieldUnit(eFUnit); + m_xBottomDist->SetMetricValue(rOldItem.GetLower(), eUnit); } } else { - SetMetricValue( *m_pTopDist, rOldItem.GetUpper(), eUnit ); - SetMetricValue( *m_pBottomDist, rOldItem.GetLower(), eUnit ); + m_xTopDist->SetMetricValue(rOldItem.GetUpper(), eUnit); + m_xBottomDist->SetMetricValue(rOldItem.GetLower(), eUnit); } - m_pContextualCB->Check(rOldItem.GetContext()); + m_xContextualCB->set_active(rOldItem.GetContext()); } else { - m_pTopDist->SetEmptyFieldValue(); - m_pBottomDist->SetEmptyFieldValue(); + m_xTopDist->set_text(OUString()); + m_xBottomDist->set_text(OUString()); } _nWhich = GetWhich( SID_ATTR_PARA_LINESPACE ); @@ -566,54 +570,55 @@ void SvxStdParagraphTabPage::Reset( const SfxItemSet* rSet ) if ( eItemState >= SfxItemState::DEFAULT ) SetLineSpacing_Impl( static_cast<const SvxLineSpacingItem &>(rSet->Get( _nWhich )) ); else - m_pLineDist->SetNoSelection(); + m_xLineDist->set_active(-1); _nWhich = GetWhich( SID_ATTR_PARA_REGISTER ); eItemState = rSet->GetItemState( _nWhich ); if ( eItemState >= SfxItemState::DEFAULT ) - m_pRegisterCB->Check( static_cast<const SfxBoolItem &>(rSet->Get( _nWhich )).GetValue()); - m_pRegisterCB->SaveValue(); + m_xRegisterCB->set_active( static_cast<const SfxBoolItem &>(rSet->Get( _nWhich )).GetValue()); + m_xRegisterCB->save_state(); sal_uInt16 nHtmlMode = GetHtmlMode_Impl(*rSet); if(nHtmlMode & HTMLMODE_ON) { - m_pRegisterFL->Hide(); - m_pRegisterCB->Hide(); - m_pAutoCB->Hide(); + m_xRegisterFL->hide(); + m_xRegisterCB->hide(); + m_xAutoCB->hide(); } // this sets the min/max limits; do this _after_ setting the values, // because for Impress the min of first-line indent depends on value of // left-indent! - ELRLoseFocusHdl( *m_pFLineIndent ); - m_pAutoCB->SaveValue(); - m_pContextualCB->SaveValue(); - m_pLineDist->SaveValue(); + ELRLoseFocus(); + m_xAutoCB->save_state(); + m_xContextualCB->save_state(); + m_xLineDist->save_value(); } + void SvxStdParagraphTabPage::ChangesApplied() { - m_pLeftIndent->SetValue(m_pLeftIndent->GetValue()); - m_pRightIndent->SetValue(m_pRightIndent->GetValue()); - m_pFLineIndent->SetValue(m_pFLineIndent->GetValue()); - m_pLineDist->SaveValue(); - m_pLineDistAtPercentBox->SaveValue(); - m_pLineDistAtMetricBox->SaveValue(); - m_pRegisterCB->SaveValue(); - m_pTopDist->SetValue(m_pTopDist->GetValue()); - m_pBottomDist->SetValue(m_pBottomDist->GetValue()); - m_pContextualCB->SaveValue(); - m_pAutoCB->SaveValue(); + m_xLeftIndent->save_value(); + m_xRightIndent->save_value(); + m_xFLineIndent->save_value(); + m_xLineDist->save_value(); + m_xLineDistAtPercentBox->save_value(); + m_xLineDistAtMetricBox->save_value(); + m_xRegisterCB->save_state(); + m_xTopDist->save_value(); + m_xBottomDist->save_value(); + m_xContextualCB->save_state(); + m_xAutoCB->save_state(); } void SvxStdParagraphTabPage::EnableRelativeMode() { DBG_ASSERT( GetItemSet().GetParent(), "RelativeMode, but no parent-set!" ); - m_pLeftIndent->EnableRelativeMode( 0, 999 ); - m_pFLineIndent->EnableRelativeMode( 0, 999 ); - m_pRightIndent->EnableRelativeMode( 0, 999 ); - m_pTopDist->EnableRelativeMode( 0, 999 ); - m_pBottomDist->EnableRelativeMode( 0, 999 ); + m_xLeftIndent->EnableRelativeMode( 0, 999 ); + m_xFLineIndent->EnableRelativeMode( 0, 999 ); + m_xRightIndent->EnableRelativeMode( 0, 999 ); + m_xTopDist->EnableRelativeMode( 0, 999 ); + m_xBottomDist->EnableRelativeMode( 0, 999 ); bRelativeMode = true; } @@ -636,19 +641,19 @@ void SvxStdParagraphTabPage::ActivatePage( const SfxItemSet& rSet ) const SvxFrameDirectionItem& rFrameDirItem = static_cast<const SvxFrameDirectionItem&>( rSet.Get( _nWhich ) ); SvxFrameDirection eFrameDirection = rFrameDirItem.GetValue(); - m_pExampleWin->EnableRTL( SvxFrameDirection::Horizontal_RL_TB == eFrameDirection ); + m_aExampleWin.EnableRTL( SvxFrameDirection::Horizontal_RL_TB == eFrameDirection ); if ( eAdjust == SvxAdjust::Block ) - m_pExampleWin->SetLastLine( rAdj.GetLastBlock() ); + m_aExampleWin.SetLastLine( rAdj.GetLastBlock() ); } } else { - m_pExampleWin->EnableRTL( eAdjust == SvxAdjust::Right ); + m_aExampleWin.EnableRTL( eAdjust == SvxAdjust::Right ); eAdjust = SvxAdjust::Left; //required for correct preview display - m_pExampleWin->SetLastLine( eAdjust ); + m_aExampleWin.SetLastLine( eAdjust ); } - m_pExampleWin->SetAdjust( eAdjust ); + m_aExampleWin.SetAdjust( eAdjust ); UpdateExample_Impl(); } @@ -656,91 +661,58 @@ void SvxStdParagraphTabPage::ActivatePage( const SfxItemSet& rSet ) DeactivateRC SvxStdParagraphTabPage::DeactivatePage( SfxItemSet* _pSet ) { - ELRLoseFocusHdl( *m_pFLineIndent ); + ELRLoseFocus(); if ( _pSet ) FillItemSet( _pSet ); return DeactivateRC::LeavePage; } -SvxStdParagraphTabPage::SvxStdParagraphTabPage( vcl::Window* pParent, const SfxItemSet& rAttr ) : - SfxTabPage( pParent, "ParaIndentSpacing","cui/ui/paraindentspacing.ui", &rAttr ), - - nAbst ( MAX_DURCH ), - nWidth ( 11905 /*567 * 50*/ ), - nMinFixDist(0), - - bRelativeMode ( false ) - +SvxStdParagraphTabPage::SvxStdParagraphTabPage(TabPageParent pParent, const SfxItemSet& rAttr) + : SfxTabPage(pParent, "cui/ui/paraindentspacing.ui", "ParaIndentSpacing", &rAttr) + , nAbst(MAX_DURCH) + , nWidth(11905 /*567 * 50*/) + , nMinFixDist(0) + , bRelativeMode(false) + , m_xLeftIndent(new RelativeField(m_xBuilder->weld_metric_spin_button("spinED_LEFTINDENT", FUNIT_CM))) + , m_xRightLabel(m_xBuilder->weld_label("labelFT_RIGHTINDENT")) + , m_xRightIndent(new RelativeField(m_xBuilder->weld_metric_spin_button("spinED_RIGHTINDENT", FUNIT_CM))) + , m_xFLineLabel(m_xBuilder->weld_label("labelFT_FLINEINDENT")) + , m_xFLineIndent(new RelativeField(m_xBuilder->weld_metric_spin_button("spinED_FLINEINDENT", FUNIT_CM))) + , m_xAutoCB(m_xBuilder->weld_check_button("checkCB_AUTO")) + , m_xTopDist(new RelativeField(m_xBuilder->weld_metric_spin_button("spinED_TOPDIST", FUNIT_CM))) + , m_xBottomDist(new RelativeField(m_xBuilder->weld_metric_spin_button("spinED_BOTTOMDIST", FUNIT_CM))) + , m_xContextualCB(m_xBuilder->weld_check_button("checkCB_CONTEXTUALSPACING")) + , m_xLineDist(m_xBuilder->weld_combo_box_text("comboLB_LINEDIST")) + , m_xLineDistAtPercentBox(m_xBuilder->weld_metric_spin_button("spinED_LINEDISTPERCENT", FUNIT_PERCENT)) + , m_xLineDistAtMetricBox(m_xBuilder->weld_metric_spin_button("spinED_LINEDISTMETRIC", FUNIT_CM)) + , m_xLineDistAtLabel(m_xBuilder->weld_label("labelFT_LINEDIST")) + , m_xAbsDist(m_xBuilder->weld_label("labelST_LINEDIST_ABS")) + , m_xRegisterFL(m_xBuilder->weld_widget("frameFL_REGISTER")) + , m_xRegisterCB(m_xBuilder->weld_check_button("checkCB_REGISTER")) + , m_xExampleWin(new weld::CustomWeld(*m_xBuilder, "drawingareaWN_EXAMPLE", m_aExampleWin)) { - get(m_pLeftIndent,"spinED_LEFTINDENT"); - get(m_pRightIndent,"spinED_RIGHTINDENT"); - get(m_pRightLabel,"labelFT_RIGHTINDENT"); - get(m_pFLineLabel,"labelFT_FLINEINDENT"); - get(m_pFLineIndent,"spinED_FLINEINDENT"); - get(m_pAutoCB,"checkCB_AUTO"); - - get(m_pTopDist,"spinED_TOPDIST"); - get(m_pBottomDist,"spinED_BOTTOMDIST"); - get(m_pContextualCB,"checkCB_CONTEXTUALSPACING"); - - get(m_pLineDist,"comboLB_LINEDIST"); - get(m_pLineDistAtPercentBox,"spinED_LINEDISTPERCENT"); - get(m_pLineDistAtMetricBox,"spinED_LINEDISTMETRIC"); - get(m_pLineDistAtLabel,"labelFT_LINEDIST"); - - get(m_pAbsDist,"labelST_LINEDIST_ABS"); - sAbsDist = m_pAbsDist->GetText(); - - get(m_pRegisterFL,"frameFL_REGISTER"); - get(m_pRegisterCB,"checkCB_REGISTER"); - - get(m_pExampleWin,"drawingareaWN_EXAMPLE"); + sAbsDist = m_xAbsDist->get_label(); // this page needs ExchangeSupport SetExchangeSupport(); - m_pLineDistAtMetricBox->Hide(); + m_xLineDistAtMetricBox->hide(); Init_Impl(); - m_pFLineIndent->SetMin(-9999); // is set to 0 on default - - setPreviewsToSamePlace(pParent, this); + m_xFLineIndent->set_min(-9999, FUNIT_NONE); // is set to 0 on default } SvxStdParagraphTabPage::~SvxStdParagraphTabPage() { - disposeOnce(); -} - -void SvxStdParagraphTabPage::dispose() -{ - m_pLeftIndent.clear(); - m_pRightLabel.clear(); - m_pRightIndent.clear(); - m_pFLineLabel.clear(); - m_pFLineIndent.clear(); - m_pAutoCB.clear(); - m_pTopDist.clear(); - m_pBottomDist.clear(); - m_pContextualCB.clear(); - m_pLineDist.clear(); - m_pLineDistAtLabel.clear(); - m_pLineDistAtPercentBox.clear(); - m_pLineDistAtMetricBox.clear(); - m_pAbsDist.clear(); - m_pExampleWin.clear(); - m_pRegisterFL.clear(); - m_pRegisterCB.clear(); - SfxTabPage::dispose(); } void SvxStdParagraphTabPage::EnableNegativeMode() { - m_pLeftIndent->SetMin(-9999); - m_pRightIndent->SetMin(-9999); - m_pRightIndent->EnableNegativeMode(); - m_pLeftIndent->EnableNegativeMode(); + m_xLeftIndent->set_min(-9999, FUNIT_NONE); + m_xRightIndent->set_min(-9999, FUNIT_NONE); + m_xRightIndent->EnableNegativeMode(); + m_xLeftIndent->EnableNegativeMode(); } void SvxStdParagraphTabPage::SetLineSpacing_Impl @@ -760,169 +732,171 @@ void SvxStdParagraphTabPage::SetLineSpacing_Impl { // Default single line spacing case SvxInterLineSpaceRule::Off: - m_pLineDist->SelectEntryPos( LLINESPACE_1 ); + m_xLineDist->set_active( LLINESPACE_1 ); break; // Default single line spacing case SvxInterLineSpaceRule::Prop: if ( 100 == rAttr.GetPropLineSpace() ) { - m_pLineDist->SelectEntryPos( LLINESPACE_1 ); + m_xLineDist->set_active( LLINESPACE_1 ); break; } // 1.15 line spacing if ( 115 == rAttr.GetPropLineSpace() ) { - m_pLineDist->SelectEntryPos( LLINESPACE_115 ); + m_xLineDist->set_active( LLINESPACE_115 ); break; } // 1.5 line spacing if ( 150 == rAttr.GetPropLineSpace() ) { - m_pLineDist->SelectEntryPos( LLINESPACE_15 ); + m_xLineDist->set_active( LLINESPACE_15 ); break; } // double line spacing if ( 200 == rAttr.GetPropLineSpace() ) { - m_pLineDist->SelectEntryPos( LLINESPACE_2 ); + m_xLineDist->set_active( LLINESPACE_2 ); break; } // the set per cent value - m_pLineDistAtPercentBox->SetValue( m_pLineDistAtPercentBox->Normalize(rAttr.GetPropLineSpace() ) ); - m_pLineDist->SelectEntryPos( LLINESPACE_PROP ); + m_xLineDistAtPercentBox->set_value(m_xLineDistAtPercentBox->normalize(rAttr.GetPropLineSpace()), FUNIT_NONE); + m_xLineDist->set_active( LLINESPACE_PROP ); break; case SvxInterLineSpaceRule::Fix: - SetMetricValue( *m_pLineDistAtMetricBox, rAttr.GetInterLineSpace(), eUnit ); - m_pLineDist->SelectEntryPos( LLINESPACE_DURCH ); + SetMetricValue( *m_xLineDistAtMetricBox, rAttr.GetInterLineSpace(), eUnit ); + m_xLineDist->set_active( LLINESPACE_DURCH ); break; default: ;//prevent warning } } break; case SvxLineSpaceRule::Fix: - SetMetricValue(*m_pLineDistAtMetricBox, rAttr.GetLineHeight(), eUnit); - m_pLineDist->SelectEntryPos( LLINESPACE_FIX ); + SetMetricValue(*m_xLineDistAtMetricBox, rAttr.GetLineHeight(), eUnit); + m_xLineDist->set_active( LLINESPACE_FIX ); break; case SvxLineSpaceRule::Min: - SetMetricValue(*m_pLineDistAtMetricBox, rAttr.GetLineHeight(), eUnit); - m_pLineDist->SelectEntryPos( LLINESPACE_MIN ); + SetMetricValue(*m_xLineDistAtMetricBox, rAttr.GetLineHeight(), eUnit); + m_xLineDist->set_active( LLINESPACE_MIN ); break; default: ;//prevent warning } - LineDistHdl_Impl( *m_pLineDist ); + LineDistHdl_Impl( *m_xLineDist ); } -IMPL_LINK( SvxStdParagraphTabPage, LineDistHdl_Impl, ListBox&, rBox, void ) +IMPL_LINK(SvxStdParagraphTabPage, LineDistHdl_Impl, weld::ComboBoxText&, rBox, void) { - switch( rBox.GetSelectedEntryPos() ) + switch (rBox.get_active()) { case LLINESPACE_1: case LLINESPACE_115: case LLINESPACE_15: case LLINESPACE_2: - m_pLineDistAtLabel->Enable(false); - m_pLineDistAtPercentBox->Enable(false); - m_pLineDistAtPercentBox->SetText( OUString() ); - m_pLineDistAtMetricBox->Enable(false); - m_pLineDistAtMetricBox->SetText( OUString() ); + m_xLineDistAtLabel->set_sensitive(false); + m_xLineDistAtPercentBox->set_sensitive(false); + m_xLineDistAtPercentBox->set_text(OUString()); + m_xLineDistAtMetricBox->set_sensitive(false); + m_xLineDistAtMetricBox->set_text(OUString()); break; case LLINESPACE_DURCH: // setting a sensible default? // limit MS min(10, aPageSize) - m_pLineDistAtMetricBox->SetMin(0); - - if ( m_pLineDistAtMetricBox->GetText().isEmpty() ) - m_pLineDistAtMetricBox->SetValue( m_pLineDistAtMetricBox->Normalize( 1 ) ); - m_pLineDistAtPercentBox->Hide(); - m_pLineDistAtMetricBox->Show(); - m_pLineDistAtMetricBox->Enable(); - m_pLineDistAtLabel->Enable(); + m_xLineDistAtMetricBox->set_min(0, FUNIT_NONE); + + if (m_xLineDistAtMetricBox->get_text().isEmpty()) + m_xLineDistAtMetricBox->set_value(m_xLineDistAtMetricBox->normalize(1), FUNIT_NONE); + m_xLineDistAtPercentBox->hide(); + m_xLineDistAtMetricBox->show(); + m_xLineDistAtMetricBox->set_sensitive(true); + m_xLineDistAtLabel->set_sensitive(true); break; case LLINESPACE_MIN: - m_pLineDistAtMetricBox->SetMin(0); - - if ( m_pLineDistAtMetricBox->GetText().isEmpty() ) - m_pLineDistAtMetricBox->SetValue( m_pLineDistAtMetricBox->Normalize( 10 ), FUNIT_TWIP ); - m_pLineDistAtPercentBox->Hide(); - m_pLineDistAtMetricBox->Show(); - m_pLineDistAtMetricBox->Enable(); - m_pLineDistAtLabel->Enable(); + m_xLineDistAtMetricBox->set_min(0, FUNIT_NONE); + + if (m_xLineDistAtMetricBox->get_text().isEmpty()) + m_xLineDistAtMetricBox->set_value(m_xLineDistAtMetricBox->normalize(10), FUNIT_TWIP); + m_xLineDistAtPercentBox->hide(); + m_xLineDistAtMetricBox->show(); + m_xLineDistAtMetricBox->set_sensitive(true); + m_xLineDistAtLabel->set_sensitive(true); break; case LLINESPACE_PROP: - if ( m_pLineDistAtPercentBox->GetText().isEmpty() ) - m_pLineDistAtPercentBox->SetValue( m_pLineDistAtPercentBox->Normalize( 100 ), FUNIT_TWIP ); - m_pLineDistAtMetricBox->Hide(); - m_pLineDistAtPercentBox->Show(); - m_pLineDistAtPercentBox->Enable(); - m_pLineDistAtLabel->Enable(); + if (m_xLineDistAtPercentBox->get_text().isEmpty()) + m_xLineDistAtPercentBox->set_value(m_xLineDistAtPercentBox->normalize(100), FUNIT_TWIP); + m_xLineDistAtMetricBox->hide(); + m_xLineDistAtPercentBox->show(); + m_xLineDistAtPercentBox->set_sensitive(true); + m_xLineDistAtLabel->set_sensitive(true); break; case LLINESPACE_FIX: { - sal_Int64 nTemp = m_pLineDistAtMetricBox->GetValue(); - m_pLineDistAtMetricBox->SetMin(m_pLineDistAtMetricBox->Normalize(nMinFixDist), FUNIT_TWIP); + auto nTemp = m_xLineDistAtMetricBox->get_value(FUNIT_NONE); + m_xLineDistAtMetricBox->set_min(m_xLineDistAtMetricBox->normalize(nMinFixDist), FUNIT_TWIP); // if the value has been changed at SetMin, // it is time for the default - if ( m_pLineDistAtMetricBox->GetValue() != nTemp ) - SetMetricValue( *m_pLineDistAtMetricBox, FIX_DIST_DEF, MapUnit::MapTwip ); // fix is only in Writer - m_pLineDistAtPercentBox->Hide(); - m_pLineDistAtMetricBox->Show(); - m_pLineDistAtMetricBox->Enable(); - m_pLineDistAtLabel->Enable(); + if (m_xLineDistAtMetricBox->get_value(FUNIT_NONE) != nTemp) + SetMetricValue( *m_xLineDistAtMetricBox, FIX_DIST_DEF, MapUnit::MapTwip ); // fix is only in Writer + m_xLineDistAtPercentBox->hide(); + m_xLineDistAtMetricBox->show(); + m_xLineDistAtMetricBox->set_sensitive(true); + m_xLineDistAtLabel->set_sensitive(true); } break; } UpdateExample_Impl(); } -IMPL_LINK_NOARG(SvxStdParagraphTabPage, ModifyHdl_Impl, Edit&, void) +IMPL_LINK_NOARG(SvxStdParagraphTabPage, ModifyHdl_Impl, weld::MetricSpinButton&, void) { UpdateExample_Impl(); } void SvxStdParagraphTabPage::Init_Impl() { - m_pLineDist->SetSelectHdl( - LINK( this, SvxStdParagraphTabPage, LineDistHdl_Impl ) ); + m_xLineDist->connect_changed(LINK(this, SvxStdParagraphTabPage, LineDistHdl_Impl)); - Link<Control&,void> aLink2 = LINK( this, SvxStdParagraphTabPage, ELRLoseFocusHdl ); - m_pFLineIndent->SetLoseFocusHdl( aLink2 ); - m_pLeftIndent->SetLoseFocusHdl( aLink2 ); - m_pRightIndent->SetLoseFocusHdl( aLink2 ); + Link<weld::MetricSpinButton&,void> aLink2 = LINK(this, SvxStdParagraphTabPage, ELRLoseFocusHdl); + m_xFLineIndent->connect_value_changed(aLink2); + m_xLeftIndent->connect_value_changed(aLink2); + m_xRightIndent->connect_value_changed(aLink2); - Link<Edit&,void> aLink = LINK( this, SvxStdParagraphTabPage, ModifyHdl_Impl ); - m_pFLineIndent->SetModifyHdl( aLink ); - m_pLeftIndent->SetModifyHdl( aLink ); - m_pRightIndent->SetModifyHdl( aLink ); - m_pTopDist->SetModifyHdl( aLink ); - m_pBottomDist->SetModifyHdl( aLink ); + Link<weld::MetricSpinButton&,void> aLink = LINK(this, SvxStdParagraphTabPage, ModifyHdl_Impl); +#if 0 + //TO DO + m_xFLineIndent->SetModifyHdl( aLink ); + m_xLeftIndent->SetModifyHdl( aLink ); + m_xRightIndent->SetModifyHdl( aLink ); +#endif + m_xTopDist->connect_value_changed(aLink); + m_xBottomDist->connect_value_changed(aLink); - m_pAutoCB->SetClickHdl( LINK( this, SvxStdParagraphTabPage, AutoHdl_Impl )); + m_xAutoCB->connect_toggled(LINK(this, SvxStdParagraphTabPage, AutoHdl_Impl)); SfxItemPool* pPool = GetItemSet().GetPool(); DBG_ASSERT( pPool, "Where is the pool?" ); FieldUnit eUnit = MapToFieldUnit( pPool->GetMetric( GetWhich( SID_ATTR_LRSPACE ) ) ); - m_pTopDist->SetMax( m_pTopDist->Normalize( nAbst ), eUnit ); - m_pBottomDist->SetMax( m_pBottomDist->Normalize( nAbst ), eUnit ); - m_pLineDistAtMetricBox->SetMax( m_pLineDistAtMetricBox->Normalize( nAbst ), eUnit ); + m_xTopDist->set_max( m_xTopDist->normalize( nAbst ), eUnit ); + m_xBottomDist->set_max( m_xBottomDist->normalize( nAbst ), eUnit ); + m_xLineDistAtMetricBox->set_max( m_xLineDistAtMetricBox->normalize( nAbst ), eUnit ); } void SvxStdParagraphTabPage::UpdateExample_Impl() { - m_pExampleWin->SetFirstLineOfst( static_cast<short>(m_pFLineIndent->Denormalize( m_pFLineIndent->GetValue( FUNIT_TWIP ) )) ); - m_pExampleWin->SetLeftMargin( static_cast<long>(m_pLeftIndent->Denormalize( m_pLeftIndent->GetValue( FUNIT_TWIP ) ) ) ); - m_pExampleWin->SetRightMargin( static_cast<long>(m_pRightIndent->Denormalize( m_pRightIndent->GetValue( FUNIT_TWIP ) ) ) ); - m_pExampleWin->SetUpper( static_cast<sal_uInt16>(m_pTopDist->Denormalize( m_pTopDist->GetValue( FUNIT_TWIP ) )) ); - m_pExampleWin->SetLower( static_cast<sal_uInt16>(m_pBottomDist->Denormalize( m_pBottomDist->GetValue( FUNIT_TWIP ) )) ); + m_aExampleWin.SetFirstLineOfst( static_cast<short>(m_xFLineIndent->denormalize( m_xFLineIndent->get_value( FUNIT_TWIP ) )) ); + m_aExampleWin.SetLeftMargin( static_cast<long>(m_xLeftIndent->denormalize( m_xLeftIndent->get_value( FUNIT_TWIP ) ) ) ); + m_aExampleWin.SetRightMargin( static_cast<long>(m_xRightIndent->denormalize( m_xRightIndent->get_value( FUNIT_TWIP ) ) ) ); + m_aExampleWin.SetUpper( static_cast<sal_uInt16>(m_xTopDist->denormalize( m_xTopDist->get_value( FUNIT_TWIP ) )) ); + m_aExampleWin.SetLower( static_cast<sal_uInt16>(m_xBottomDist->denormalize( m_xBottomDist->get_value( FUNIT_TWIP ) )) ); - sal_Int32 nPos = m_pLineDist->GetSelectedEntryPos(); + int nPos = m_xLineDist->get_active(); switch ( nPos ) { @@ -934,38 +908,38 @@ void SvxStdParagraphTabPage::UpdateExample_Impl() case LLINESPACE_MIN: case LLINESPACE_DURCH: case LLINESPACE_FIX: - m_pExampleWin->SetLineSpace( static_cast<SvxPrevLineSpace>(nPos) ); + m_aExampleWin.SetLineSpace( static_cast<SvxPrevLineSpace>(nPos) ); break; } - m_pExampleWin->Invalidate(); + m_aExampleWin.Invalidate(); } void SvxStdParagraphTabPage::EnableRegisterMode() { - m_pRegisterCB->Show(); - m_pRegisterFL->Show(); + m_xRegisterCB->show(); + m_xRegisterFL->show(); } void SvxStdParagraphTabPage::EnableContextualMode() { - m_pContextualCB->Show(); + m_xContextualCB->show(); } -IMPL_LINK( SvxStdParagraphTabPage, AutoHdl_Impl, Button*, pBox, void ) +IMPL_LINK(SvxStdParagraphTabPage, AutoHdl_Impl, weld::ToggleButton&, rBox, void) { - bool bEnable = !static_cast<CheckBox*>(pBox)->IsChecked(); - m_pFLineLabel->Enable(bEnable); - m_pFLineIndent->Enable(bEnable); + bool bEnable = !rBox.get_active(); + m_xFLineLabel->set_sensitive(bEnable); + m_xFLineIndent->set_sensitive(bEnable); } void SvxStdParagraphTabPage::EnableAutoFirstLine() { - m_pAutoCB->Show(); + m_xAutoCB->show(); } -void SvxStdParagraphTabPage::EnableAbsLineDist(long nMinTwip) +void SvxStdParagraphTabPage::EnableAbsLineDist(long nMinTwip) { - m_pLineDist->InsertEntry(sAbsDist); + m_xLineDist->append_text(sAbsDist); nMinFixDist = nMinTwip; } diff --git a/cui/uiconfig/ui/paraindentspacing.ui b/cui/uiconfig/ui/paraindentspacing.ui index 0538da747477..318bfa853d99 100644 --- a/cui/uiconfig/ui/paraindentspacing.ui +++ b/cui/uiconfig/ui/paraindentspacing.ui @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.18.3 --> +<!-- Generated with glade 3.22.1 --> <interface domain="cui"> <requires lib="gtk+" version="3.18"/> <requires lib="LibreOffice" version="1.0"/> @@ -8,6 +8,11 @@ <property name="step_increment">1</property> <property name="page_increment">10</property> </object> + <object class="GtkAdjustment" id="adjustmentED_DIST1"> + <property name="upper">9999</property> + <property name="step_increment">1</property> + <property name="page_increment">10</property> + </object> <object class="GtkAdjustment" id="adjustmentED_LINEDISTMETRIC"> <property name="upper">9999</property> <property name="step_increment">10</property> @@ -25,43 +30,15 @@ <property name="step_increment">1</property> <property name="page_increment">10</property> </object> - <object class="GtkListStore" id="liststoreLB_LINEDIST"> - <columns> - <!-- column-name gchararray1 --> - <column type="gchararray"/> - <!-- column-name guint1 --> - <column type="guint"/> - </columns> - <data> - <row> - <col id="0" translatable="yes" context="paraindentspacing|liststoreLB_LINEDIST">Single</col> - <col id="1">0</col> - </row> - <row> - <col id="0" translatable="yes" context="paraindentspacing|liststoreLB_LINEDIST">1.15 Lines</col> - <col id="1">1</col> - </row> - <row> - <col id="0" translatable="yes" context="paraindentspacing|liststoreLB_LINEDIST">1.5 Lines</col> - <col id="1">2</col> - </row> - <row> - <col id="0" translatable="yes" context="paraindentspacing|liststoreLB_LINEDIST">Double</col> - <col id="1">3</col> - </row> - <row> - <col id="0" translatable="yes" context="paraindentspacing|liststoreLB_LINEDIST">Proportional</col> - <col id="1">4</col> - </row> - <row> - <col id="0" translatable="yes" context="paraindentspacing|liststoreLB_LINEDIST">At least</col> - <col id="1">5</col> - </row> - <row> - <col id="0" translatable="yes" context="paraindentspacing|liststoreLB_LINEDIST">Leading</col> - <col id="1">6</col> - </row> - </data> + <object class="GtkAdjustment" id="adjustmentspinED_INDENT1"> + <property name="upper">9999</property> + <property name="step_increment">1</property> + <property name="page_increment">10</property> + </object> + <object class="GtkAdjustment" id="adjustmentspinED_INDENT2"> + <property name="upper">9999</property> + <property name="step_increment">1</property> + <property name="page_increment">10</property> </object> <object class="GtkGrid" id="ParaIndentSpacing"> <property name="visible">True</property> @@ -79,16 +56,33 @@ <property name="vexpand">True</property> <property name="top_padding">24</property> <child> - <object class="svxlo-SvxParaPrevWindow" id="drawingareaWN_EXAMPLE"> + <object class="GtkScrolledWindow"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can_focus">True</property> <property name="halign">center</property> <property name="valign">start</property> - <property name="hexpand">True</property> - <property name="vexpand">True</property> - <child internal-child="accessible"> - <object class="AtkObject" id="drawingareaWN_EXAMPLE-atkobject"> - <property name="AtkObject::accessible-name" translatable="yes" context="paraindentspacing|drawingareaWN_EXAMPLE-atkobject">Example</property> + <property name="hscrollbar_policy">never</property> + <property name="vscrollbar_policy">never</property> + <property name="shadow_type">in</property> + <child> + <object class="GtkViewport"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkDrawingArea" id="drawingareaWN_EXAMPLE"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">center</property> + <property name="valign">start</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <child internal-child="accessible"> + <object class="AtkObject" id="drawingareaWN_EXAMPLE-atkobject"> + <property name="AtkObject::accessible-name" translatable="yes" context="paraindentspacing|drawingareaWN_EXAMPLE-atkobject">Example</property> + </object> + </child> + </object> + </child> </object> </child> </object> @@ -128,7 +122,7 @@ <property name="can_focus">False</property> <property name="label" translatable="yes" context="paraindentspacing|labelFT_LEFTINDENT">_Before text:</property> <property name="use_underline">True</property> - <property name="mnemonic_widget">spinED_LEFTINDENT:0cm</property> + <property name="mnemonic_widget">spinED_LEFTINDENT</property> <property name="xalign">0</property> </object> <packing> @@ -142,7 +136,7 @@ <property name="can_focus">False</property> <property name="label" translatable="yes" context="paraindentspacing|labelFT_RIGHTINDENT">After _text:</property> <property name="use_underline">True</property> - <property name="mnemonic_widget">spinED_RIGHTINDENT:0cm</property> + <property name="mnemonic_widget">spinED_RIGHTINDENT</property> <property name="xalign">0</property> </object> <packing> @@ -156,7 +150,7 @@ <property name="can_focus">False</property> <property name="label" translatable="yes" context="paraindentspacing|labelFT_FLINEINDENT">_First line:</property> <property name="use_underline">True</property> - <property name="mnemonic_widget">spinED_FLINEINDENT:0cm</property> + <property name="mnemonic_widget">spinED_FLINEINDENT</property> <property name="xalign">0</property> </object> <packing> @@ -180,9 +174,10 @@ </packing> </child> <child> - <object class="svxlo-SvxRelativeField" id="spinED_LEFTINDENT:0cm"> + <object class="GtkSpinButton" id="spinED_LEFTINDENT"> <property name="visible">True</property> <property name="can_focus">True</property> + <property name="activates_default">True</property> <property name="adjustment">adjustmentspinED_INDENT</property> </object> <packing> @@ -191,10 +186,11 @@ </packing> </child> <child> - <object class="svxlo-SvxRelativeField" id="spinED_RIGHTINDENT:0cm"> + <object class="GtkSpinButton" id="spinED_RIGHTINDENT"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="adjustment">adjustmentspinED_INDENT</property> + <property name="activates_default">True</property> + <property name="adjustment">adjustmentspinED_INDENT1</property> </object> <packing> <property name="left_attach">1</property> @@ -202,10 +198,11 @@ </packing> </child> <child> - <object class="svxlo-SvxRelativeField" id="spinED_FLINEINDENT:0cm"> + <object class="GtkSpinButton" id="spinED_FLINEINDENT"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="adjustment">adjustmentspinED_INDENT</property> + <property name="activates_default">True</property> + <property name="adjustment">adjustmentspinED_INDENT2</property> </object> <packing> <property name="left_attach">1</property> @@ -272,7 +269,7 @@ <property name="can_focus">False</property> <property name="label" translatable="yes" context="paraindentspacing|labelFT_TOPDIST">Ab_ove paragraph:</property> <property name="use_underline">True</property> - <property name="mnemonic_widget">spinED_TOPDIST:0cm</property> + <property name="mnemonic_widget">spinED_TOPDIST</property> <property name="xalign">0</property> </object> <packing> @@ -286,7 +283,7 @@ <property name="can_focus">False</property> <property name="label" translatable="yes" context="paraindentspacing|labelFT_BOTTOMDIST">Below _paragraph:</property> <property name="use_underline">True</property> - <property name="mnemonic_widget">spinED_BOTTOMDIST:0cm</property> + <property name="mnemonic_widget">spinED_BOTTOMDIST</property> <property name="xalign">0</property> </object> <packing> @@ -295,9 +292,10 @@ </packing> </child> <child> - <object class="svxlo-SvxRelativeField" id="spinED_TOPDIST:0cm"> + <object class="GtkSpinButton" id="spinED_TOPDIST"> <property name="visible">True</property> <property name="can_focus">True</property> + <property name="activates_default">True</property> <property name="adjustment">adjustmentED_DIST</property> </object> <packing> @@ -306,10 +304,11 @@ </packing> </child> <child> - <object class="svxlo-SvxRelativeField" id="spinED_BOTTOMDIST:0cm"> + <object class="GtkSpinButton" id="spinED_BOTTOMDIST"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="adjustment">adjustmentED_DIST</property> + <property name="activates_default">True</property> + <property name="adjustment">adjustmentED_DIST1</property> </object> <packing> <property name="left_attach">1</property> @@ -382,10 +381,18 @@ <property name="can_focus">False</property> <property name="spacing">12</property> <child> - <object class="GtkComboBox" id="comboLB_LINEDIST"> + <object class="GtkComboBoxText" id="comboLB_LINEDIST"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="model">liststoreLB_LINEDIST</property> + <items> + <item id="0" translatable="yes" context="paraindentspacing|liststoreLB_LINEDIST">Single</item> + <item id="1" translatable="yes" context="paraindentspacing|liststoreLB_LINEDIST">1.15 Lines</item> + <item id="2" translatable="yes" context="paraindentspacing|liststoreLB_LINEDIST">1.5 Lines</item> + <item id="3" translatable="yes" context="paraindentspacing|liststoreLB_LINEDIST">Double</item> + <item id="4" translatable="yes" context="paraindentspacing|liststoreLB_LINEDIST">Proportional</item> + <item id="5" translatable="yes" context="paraindentspacing|liststoreLB_LINEDIST">At least</item> + <item id="6" translatable="yes" context="paraindentspacing|liststoreLB_LINEDIST">Leading</item> + </items> </object> <packing> <property name="expand">False</property> @@ -417,9 +424,10 @@ <property name="can_focus">False</property> <property name="orientation">vertical</property> <child> - <object class="GtkSpinButton" id="spinED_LINEDISTPERCENT:0%"> + <object class="GtkSpinButton" id="spinED_LINEDISTPERCENT"> <property name="visible">True</property> <property name="can_focus">True</property> + <property name="activates_default">True</property> <property name="adjustment">adjustmentLINEDISTPERCENT</property> </object> <packing> @@ -429,9 +437,10 @@ </packing> </child> <child> - <object class="GtkSpinButton" id="spinED_LINEDISTMETRIC:0cm"> + <object class="GtkSpinButton" id="spinED_LINEDISTMETRIC"> <property name="visible">True</property> <property name="can_focus">True</property> + <property name="activates_default">True</property> <property name="adjustment">adjustmentED_LINEDISTMETRIC</property> <property name="digits">1</property> </object> @@ -527,11 +536,11 @@ <object class="GtkSizeGroup" id="sizegroup2"> <widgets> <widget name="box1"/> - <widget name="spinED_LEFTINDENT:0cm"/> - <widget name="spinED_RIGHTINDENT:0cm"/> - <widget name="spinED_FLINEINDENT:0cm"/> - <widget name="spinED_TOPDIST:0cm"/> - <widget name="spinED_BOTTOMDIST:0cm"/> + <widget name="spinED_LEFTINDENT"/> + <widget name="spinED_RIGHTINDENT"/> + <widget name="spinED_FLINEINDENT"/> + <widget name="spinED_TOPDIST"/> + <widget name="spinED_BOTTOMDIST"/> </widgets> </object> </interface> diff --git a/include/svx/paraprev.hxx b/include/svx/paraprev.hxx index abc424e24155..07545fc00202 100644 --- a/include/svx/paraprev.hxx +++ b/include/svx/paraprev.hxx @@ -102,6 +102,10 @@ public: { aText = rStr; } + void SetSize( Size aNew ) + { + aSize = aNew; + } OUString GetText() const override { return aText; @@ -120,6 +124,7 @@ class SVX_DLLPUBLIC ParaPrevWindow final : public weld::CustomWidgetController // last line in justification SvxAdjust eLastLine; + OUString aText; tools::Rectangle Lines[9]; virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override; @@ -129,6 +134,10 @@ class SVX_DLLPUBLIC ParaPrevWindow final : public weld::CustomWidgetController public: ParaPrevWindow(); + void SetFirstLineOfst( short nNew ) + { + nFirstLineOfst = nNew; + } void SetLeftMargin( long nNew ) { nLeftMargin = nNew; @@ -137,6 +146,14 @@ public: { nRightMargin = nNew; } + void SetUpper( sal_uInt16 nNew ) + { + nUpper = nNew; + } + void SetLower( sal_uInt16 nNew ) + { + nLower = nNew; + } void SetAdjust( SvxAdjust eNew ) { eAdjust = eNew; @@ -145,10 +162,22 @@ public: { eLastLine = eNew; } + void SetLineSpace( SvxPrevLineSpace eNew ) + { + eLine = eNew; + } + void SetText( const OUString& rStr ) + { + aText = rStr; + } void SetSize( Size aNew ) { aSize = aNew; } + OUString GetText() const + { + return aText; + } }; diff --git a/include/svx/relfld.hxx b/include/svx/relfld.hxx index 867c975e7005..f5206a534c74 100644 --- a/include/svx/relfld.hxx +++ b/include/svx/relfld.hxx @@ -20,7 +20,9 @@ #define INCLUDED_SVX_RELFLD_HXX #include <tools/fldunit.hxx> +#include <svtools/unitconv.hxx> #include <vcl/field.hxx> +#include <vcl/weld.hxx> #include <svx/svxdllapi.h> class SVX_DLLPUBLIC SvxRelativeField : public MetricField @@ -44,6 +46,46 @@ public: void EnableNegativeMode() {bNegativeEnabled = true;} }; +class SVX_DLLPUBLIC RelativeField +{ +private: + std::unique_ptr<weld::MetricSpinButton> m_xSpinButton; + + sal_uInt16 nRelMin; + sal_uInt16 nRelMax; + bool bRelativeMode; + bool bRelative; + bool bNegativeEnabled; + + DECL_LINK(ModifyHdl, weld::Entry&, void); + +public: + RelativeField(weld::MetricSpinButton* pControl); + + void EnableRelativeMode( sal_uInt16 nMin, sal_uInt16 nMax ); + void SetRelative( bool bRelative ); + bool IsRelative() const { return bRelative; } + void EnableNegativeMode() {bNegativeEnabled = true;} + + void set_sensitive(bool sensitive) { m_xSpinButton->set_sensitive(sensitive); } + void set_value(int nValue, FieldUnit eValueUnit) { m_xSpinButton->set_value(nValue, eValueUnit); } + int get_value(FieldUnit eDestUnit) const { return m_xSpinButton->get_value(eDestUnit); } + int get_min(FieldUnit eValueUnit) const { return m_xSpinButton->get_min(eValueUnit); } + void set_min(int min, FieldUnit eValueUnit) { m_xSpinButton->set_min(min, eValueUnit); } + void set_max(int max, FieldUnit eValueUnit) { m_xSpinButton->set_max(max, eValueUnit); } + int normalize(int nValue) const { return m_xSpinButton->normalize(nValue); } + int denormalize(int nValue) const { return m_xSpinButton->denormalize(nValue); } + void connect_value_changed(const Link<weld::MetricSpinButton&, void>& rLink) { m_xSpinButton->connect_value_changed(rLink); } + OUString get_text() const { return m_xSpinButton->get_text(); } + void set_text(const OUString& rText) { m_xSpinButton->set_text(rText); } + void save_value() { m_xSpinButton->save_value(); } + bool get_value_changed_from_saved() const { return m_xSpinButton->get_value_changed_from_saved(); } + + int GetCoreValue(MapUnit eUnit) const { return ::GetCoreValue(*m_xSpinButton, eUnit); } + void SetFieldUnit(FieldUnit eUnit, bool bAll = false) { ::SetFieldUnit(*m_xSpinButton, eUnit, bAll); } + void SetMetricValue(int lCoreValue, MapUnit eUnit) { ::SetMetricValue(*m_xSpinButton, lCoreValue, eUnit); } +}; + #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx index d0c5c220f375..8092b426f925 100644 --- a/include/vcl/weld.hxx +++ b/include/vcl/weld.hxx @@ -630,14 +630,14 @@ public: set_range(min, max, eValueUnit); } - int get_min(FieldUnit eValueUnit) + int get_min(FieldUnit eValueUnit) const { int min, dummy; get_range(min, dummy, eValueUnit); return min; } - int get_max(FieldUnit eValueUnit) + int get_max(FieldUnit eValueUnit) const { int dummy, max; get_range(dummy, max, eValueUnit); diff --git a/solenv/sanitizers/ui/cui.suppr b/solenv/sanitizers/ui/cui.suppr index f5d24ef5b823..2b4fa33933da 100644 --- a/solenv/sanitizers/ui/cui.suppr +++ b/solenv/sanitizers/ui/cui.suppr @@ -223,8 +223,8 @@ cui/uiconfig/ui/pageformatpage.ui://GtkSpinButton[@id='spinMargLeft:0.00cm'] dup cui/uiconfig/ui/pageformatpage.ui://GtkSpinButton[@id='spinMargRight:0.00cm'] duplicate-mnemonic cui/uiconfig/ui/paraindentspacing.ui://GtkComboBox[@id='comboLB_LINEDIST'] no-labelled-by cui/uiconfig/ui/paraindentspacing.ui://GtkLabel[@id='labelFT_LINEDIST'] orphan-label -cui/uiconfig/ui/paraindentspacing.ui://GtkSpinButton[@id='spinED_LINEDISTPERCENT:0%'] no-labelled-by -cui/uiconfig/ui/paraindentspacing.ui://GtkSpinButton[@id='spinED_LINEDISTMETRIC:0cm'] no-labelled-by +cui/uiconfig/ui/paraindentspacing.ui://GtkSpinButton[@id='spinED_LINEDISTPERCENT'] no-labelled-by +cui/uiconfig/ui/paraindentspacing.ui://GtkSpinButton[@id='spinED_LINEDISTMETRIC'] no-labelled-by cui/uiconfig/ui/patterntabpage.ui://GtkLabel[@id='label4'] orphan-label cui/uiconfig/ui/patterntabpage.ui://GtkLabel[@id='label5'] orphan-label cui/uiconfig/ui/patterntabpage.ui://svxcorelo-SvxColorListBox[@id='LB_COLOR'] no-labelled-by diff --git a/svx/source/dialog/relfld.cxx b/svx/source/dialog/relfld.cxx index b218be89d07d..2b7ad87c1fa9 100644 --- a/svx/source/dialog/relfld.cxx +++ b/svx/source/dialog/relfld.cxx @@ -119,5 +119,85 @@ void SvxRelativeField::SetRelative( bool bNewRelative ) SetSelection( aSelection ); } +RelativeField::RelativeField(weld::MetricSpinButton* pControl) + : m_xSpinButton(pControl) + , nRelMin(0) + , nRelMax(0) + , bRelativeMode(false) + , bRelative(false) + , bNegativeEnabled(false) + +{ + weld::SpinButton& rSpinButton = m_xSpinButton->get_widget(); + rSpinButton.connect_changed(LINK(this, RelativeField, ModifyHdl)); +} + +IMPL_LINK_NOARG(RelativeField, ModifyHdl, weld::Entry&, void) +{ + if (bRelativeMode) + { + OUString aStr = m_xSpinButton->get_text(); + bool bNewMode = bRelative; + + if ( bRelative ) + { + const sal_Unicode* pStr = aStr.getStr(); + + while ( *pStr ) + { + if( ( ( *pStr < '0' ) || ( *pStr > '9' ) ) && + ( *pStr != '%' ) ) + { + bNewMode = false; + break; + } + pStr++; + } + } + else + { + if ( aStr.indexOf( "%" ) != -1 ) + bNewMode = true; + } + + if ( bNewMode != bRelative ) + SetRelative( bNewMode ); + } +} + +void RelativeField::EnableRelativeMode(sal_uInt16 nMin, sal_uInt16 nMax) +{ + bRelativeMode = true; + nRelMin = nMin; + nRelMax = nMax; + m_xSpinButton->set_unit(FUNIT_CM); +} + +void RelativeField::SetRelative( bool bNewRelative ) +{ + weld::SpinButton& rSpinButton = m_xSpinButton->get_widget(); + + int nStartPos, nEndPos; + rSpinButton.get_selection_bounds(nStartPos, nEndPos); + OUString aStr = rSpinButton.get_text(); + + if ( bNewRelative ) + { + bRelative = true; + m_xSpinButton->set_digits(0); + m_xSpinButton->set_range(nRelMin, nRelMax, FUNIT_NONE); + m_xSpinButton->set_unit(FUNIT_PERCENT); + } + else + { + bRelative = false; + m_xSpinButton->set_digits(2); + m_xSpinButton->set_range(bNegativeEnabled ? -9999 : 0, 9999, FUNIT_NONE); + m_xSpinButton->set_unit(FUNIT_CM); + } + + rSpinButton.set_text(aStr); + rSpinButton.select_region(nStartPos, nEndPos); +} /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |