summaryrefslogtreecommitdiff
path: root/sw/source/uibase/sidebar/PageSizeControl.cxx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-01-14 10:48:18 +0000
committerCaolán McNamara <caolanm@redhat.com>2020-01-14 13:45:44 +0100
commit53d2a0390473319555f244f0ac3cf9a44b5ac7a0 (patch)
treec0bd27ad230bce24692ceca996e602f10ff03793 /sw/source/uibase/sidebar/PageSizeControl.cxx
parentf076e09e7222ade29e73b839579178ac5f134778 (diff)
weld PageSizePopup
Change-Id: I989e2a6337f368ec388290f1e4af329865af9ec7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86749 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sw/source/uibase/sidebar/PageSizeControl.cxx')
-rw-r--r--sw/source/uibase/sidebar/PageSizeControl.cxx114
1 files changed, 49 insertions, 65 deletions
diff --git a/sw/source/uibase/sidebar/PageSizeControl.cxx b/sw/source/uibase/sidebar/PageSizeControl.cxx
index dc33541466b9..2bc18689dd4b 100644
--- a/sw/source/uibase/sidebar/PageSizeControl.cxx
+++ b/sw/source/uibase/sidebar/PageSizeControl.cxx
@@ -70,27 +70,20 @@ namespace
namespace sw { namespace sidebar {
-PageSizeControl::PageSizeControl(PageSizePopup* pControl, vcl::Window* pParent)
- : ToolbarPopup(pControl->getFrameInterface(), pParent, "PageSizeControl", "modules/swriter/ui/pagesizecontrol.ui")
+PageSizeControl::PageSizeControl(PageSizePopup* pControl, weld::Widget* pParent)
+ : WeldToolbarPopup(pControl->getFrameInterface(), pParent, "modules/swriter/ui/pagesizecontrol.ui", "PageSizeControl")
+ , mxMoreButton(m_xBuilder->weld_button("moreoptions"))
+ , mxWidthHeightField(m_xBuilder->weld_metric_spin_button("metric", FieldUnit::CM))
+ , mxSizeValueSet(new svx::sidebar::ValueSetWithTextControl)
+ , mxSizeValueSetWin(new weld::CustomWeld(*m_xBuilder, "valueset", *mxSizeValueSet))
+ , mxControl(pControl)
, maPaperList()
{
- get(maMoreButton, "moreoptions");
- get(maContainer, "container");
- mpSizeValueSet = VclPtr<svx::sidebar::ValueSetWithTextControl>::Create( maContainer.get(), WB_BORDER );
-
- // Avoid flicker when hovering over the menu items.
- if (!IsNativeControlSupported(ControlType::Pushbutton, ControlPart::Focus))
- // If NWF renders the focus rects itself, that breaks double-buffering.
- mpSizeValueSet->RequestDoubleBuffering(true);
-
- maWidthHeightField = VclPtr<MetricField>::Create( maContainer.get(), 0 );
- maWidthHeightField->Hide();
- maWidthHeightField->SetUnit(FieldUnit::CM);
- maWidthHeightField->SetMax(9999);
- maWidthHeightField->SetDecimalDigits(2);
- maWidthHeightField->SetSpinSize(10);
- maWidthHeightField->SetLast(9999);
- SetFieldUnit( *maWidthHeightField, lcl_GetFieldUnit() );
+ mxWidthHeightField->set_unit(FieldUnit::CM);
+ mxWidthHeightField->set_range(0, 9999, FieldUnit::NONE);
+ mxWidthHeightField->set_digits(2);
+ mxWidthHeightField->set_increments(10, 100, FieldUnit::NONE);
+ SetFieldUnit( *mxWidthHeightField, lcl_GetFieldUnit() );
maPaperList.push_back( PAPER_A3 );
maPaperList.push_back( PAPER_A4 );
@@ -101,14 +94,14 @@ PageSizeControl::PageSizeControl(PageSizePopup* pControl, vcl::Window* pParent)
maPaperList.push_back( PAPER_LETTER );
maPaperList.push_back( PAPER_LEGAL );
- mpSizeValueSet->SetStyle( mpSizeValueSet->GetStyle() | WB_3DLOOK | WB_NO_DIRECTSELECT );
- mpSizeValueSet->SetColor( GetSettings().GetStyleSettings().GetMenuColor() );
+ mxSizeValueSet->SetStyle( mxSizeValueSet->GetStyle() | WB_3DLOOK | WB_NO_DIRECTSELECT );
+ mxSizeValueSet->SetColor( Application::GetSettings().GetStyleSettings().GetMenuColor() );
sal_uInt16 nSelectedItem = 0;
{
OUString aMetricStr;
{
- const OUString aText = maWidthHeightField->GetText();
+ const OUString aText = mxWidthHeightField->get_text();
for (short i = aText.getLength() - 1; i >= 0; i--)
{
sal_Unicode c = aText[i];
@@ -137,7 +130,7 @@ PageSizeControl::PageSizeControl(PageSizePopup* pControl, vcl::Window* pParent)
pSize = static_cast<const SvxSizeItem*>(pItem);
}
- const LocaleDataWrapper& localeDataWrapper = maWidthHeightField->GetLocaleDataWrapper();
+ const LocaleDataWrapper& localeDataWrapper = Application::GetSettings().GetLocaleDataWrapper();
OUString aWidthStr;
OUString aHeightStr;
OUString aItemText2;
@@ -151,23 +144,23 @@ PageSizeControl::PageSizeControl(PageSizePopup* pControl, vcl::Window* pParent)
Swap( aPaperSize );
}
- maWidthHeightField->SetValue( maWidthHeightField->Normalize( aPaperSize.Width() ), FieldUnit::TWIP );
+ mxWidthHeightField->set_value( mxWidthHeightField->normalize( aPaperSize.Width() ), FieldUnit::TWIP );
aWidthStr = localeDataWrapper.getNum(
- maWidthHeightField->GetValue(),
- maWidthHeightField->GetDecimalDigits(),
- maWidthHeightField->IsUseThousandSep(),
- maWidthHeightField->IsShowTrailingZeros() );
+ mxWidthHeightField->get_value(FieldUnit::NONE),
+ mxWidthHeightField->get_digits(),
+ true,
+ true );
- maWidthHeightField->SetValue( maWidthHeightField->Normalize( aPaperSize.Height() ), FieldUnit::TWIP);
+ mxWidthHeightField->set_value( mxWidthHeightField->normalize( aPaperSize.Height() ), FieldUnit::TWIP);
aHeightStr = localeDataWrapper.getNum(
- maWidthHeightField->GetValue(),
- maWidthHeightField->GetDecimalDigits(),
- maWidthHeightField->IsUseThousandSep(),
- maWidthHeightField->IsShowTrailingZeros() );
+ mxWidthHeightField->get_value(FieldUnit::NONE),
+ mxWidthHeightField->get_digits(),
+ true,
+ true );
aItemText2 = aWidthStr + " x " + aHeightStr + " " + aMetricStr;
- mpSizeValueSet->AddItem(
+ mxSizeValueSet->AddItem(
SvxPaperInfo::GetName( maPaperList[ nPaperIdx ] ),
aItemText2 );
@@ -177,32 +170,26 @@ PageSizeControl::PageSizeControl(PageSizePopup* pControl, vcl::Window* pParent)
}
}
}
- mpSizeValueSet->SetNoSelection();
- mpSizeValueSet->SetSelectHdl( LINK(this, PageSizeControl, ImplSizeHdl ) );
- mpSizeValueSet->Show();
- mpSizeValueSet->Resize();
-
- mpSizeValueSet->SelectItem( nSelectedItem );
- mpSizeValueSet->SetFormat();
- mpSizeValueSet->Invalidate();
- mpSizeValueSet->StartSelection();
-
- maMoreButton->SetClickHdl( LINK( this, PageSizeControl, MoreButtonClickHdl_Impl ) );
- maMoreButton->GrabFocus();
+ mxSizeValueSet->SetNoSelection();
+ mxSizeValueSet->SetSelectHdl( LINK(this, PageSizeControl, ImplSizeHdl ) );
+ mxSizeValueSet->Show();
+ mxSizeValueSet->Resize();
+
+ mxSizeValueSet->SelectItem( nSelectedItem );
+ mxSizeValueSet->SetFormat();
+ mxSizeValueSet->Invalidate();
+
+ mxMoreButton->connect_clicked( LINK( this, PageSizeControl, MoreButtonClickHdl_Impl ) );
+ mxMoreButton->grab_focus();
}
-PageSizeControl::~PageSizeControl()
+void PageSizeControl::GrabFocus()
{
- disposeOnce();
+ mxSizeValueSet->GrabFocus();
}
-void PageSizeControl::dispose()
+PageSizeControl::~PageSizeControl()
{
- mpSizeValueSet.disposeAndClear();
- maMoreButton.disposeAndClear();
- maWidthHeightField.disposeAndClear();
- maContainer.disposeAndClear();
- ToolbarPopup::dispose();
}
void PageSizeControl::ExecuteSizeChange( const Paper ePaper )
@@ -229,24 +216,21 @@ void PageSizeControl::ExecuteSizeChange( const Paper ePaper )
}
-IMPL_LINK(PageSizeControl, ImplSizeHdl, ValueSet*, pControl, void)
+IMPL_LINK_NOARG(PageSizeControl, ImplSizeHdl, SvtValueSet*, void)
{
- mpSizeValueSet->SetNoSelection();
- if ( pControl == mpSizeValueSet )
- {
- const sal_uInt16 nSelectedPaper = mpSizeValueSet->GetSelectedItemId();
- const Paper ePaper = maPaperList[nSelectedPaper - 1];
- ExecuteSizeChange( ePaper );
- }
+ mxSizeValueSet->SetNoSelection();
+ const sal_uInt16 nSelectedPaper = mxSizeValueSet->GetSelectedItemId();
+ const Paper ePaper = maPaperList[nSelectedPaper - 1];
+ ExecuteSizeChange( ePaper );
- EndPopupMode();
+ mxControl->EndPopupMode();
}
-IMPL_LINK_NOARG(PageSizeControl, MoreButtonClickHdl_Impl, Button*, void)
+IMPL_LINK_NOARG(PageSizeControl, MoreButtonClickHdl_Impl, weld::Button&, void)
{
if ( SfxViewFrame::Current() )
SfxViewFrame::Current()->GetDispatcher()->Execute( FN_FORMAT_PAGE_SETTING_DLG, SfxCallMode::ASYNCHRON );
- EndPopupMode();
+ mxControl->EndPopupMode();
}
} } // end of namespace sw::sidebar