diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-01-01 17:28:23 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-01-01 22:30:10 +0100 |
commit | 4a0d34fc4ec875d14d09156f7b4b3a51fb2f5e30 (patch) | |
tree | 8592fd2bbdace94df78b58828efd49eb8e7f89ed | |
parent | 98bdce2ce881fc8795a3de5068c56e5ed42475f9 (diff) |
weld PageStylesPanel
Change-Id: I8e6842a342b242eeaa6d7a27e268dbe5691a9703
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86081
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | cui/source/tabpages/page.cxx | 13 | ||||
-rw-r--r-- | include/svx/dlgctrl.hxx | 5 | ||||
-rw-r--r-- | include/svx/itemwin.hxx | 4 | ||||
-rw-r--r-- | include/svx/pagenumberlistbox.hxx | 5 | ||||
-rw-r--r-- | svx/source/dialog/dlgctrl.cxx | 16 | ||||
-rw-r--r-- | svx/source/tbxctrls/itemwin.cxx | 76 | ||||
-rw-r--r-- | sw/source/uibase/sidebar/PageStylesPanel.cxx | 194 | ||||
-rw-r--r-- | sw/source/uibase/sidebar/PageStylesPanel.hxx | 32 | ||||
-rw-r--r-- | sw/uiconfig/swriter/ui/pagestylespanel.ui | 164 |
9 files changed, 312 insertions, 197 deletions
diff --git a/cui/source/tabpages/page.cxx b/cui/source/tabpages/page.cxx index c2592f0d944b..8cecd26a51c5 100644 --- a/cui/source/tabpages/page.cxx +++ b/cui/source/tabpages/page.cxx @@ -370,15 +370,7 @@ void SvxPageDescPage::Reset( const SfxItemSet* rSet ) LayoutHdl_Impl( *m_xLayoutBox ); //adjust numeration type of the page style - //Get the Position of the saved NumType - for (int i=0; i < m_xNumberFormatBox->get_count(); ++i) - { - if (eNumType == m_xNumberFormatBox->get_id(i).toInt32()) - { - m_xNumberFormatBox->set_active(i); - break; - } - } + m_xNumberFormatBox->set_active_id(eNumType); m_xPaperTrayBox->clear(); sal_uInt8 nPaperBin = PAPERBIN_PRINTER_SETTINGS; @@ -689,10 +681,9 @@ bool SvxPageDescPage::FillItemSet( SfxItemSet* rSet ) } //Get the NumType value - nPos = m_xNumberFormatBox->get_active(); - SvxNumType nEntryData = static_cast<SvxNumType>(m_xNumberFormatBox->get_id(nPos).toInt32()); if (m_xNumberFormatBox->get_value_changed_from_saved()) { + SvxNumType nEntryData = m_xNumberFormatBox->get_active_id(); aPage.SetNumType( nEntryData ); bMod = true; } diff --git a/include/svx/dlgctrl.hxx b/include/svx/dlgctrl.hxx index e68f881f8bce..eb7f19c79f91 100644 --- a/include/svx/dlgctrl.hxx +++ b/include/svx/dlgctrl.hxx @@ -215,11 +215,12 @@ public: class SAL_WARN_UNUSED SVX_DLLPUBLIC FillTypeLB : public ListBox { - public: - FillTypeLB( vcl::Window* pParent, WinBits aWB ) : ListBox( pParent, aWB ) {} + FillTypeLB( vcl::Window* pParent, WinBits aWB ) : ListBox( pParent, aWB ) {} void Fill(); + + static void Fill(weld::ComboBox& rListBox); }; /************************************************************************/ diff --git a/include/svx/itemwin.hxx b/include/svx/itemwin.hxx index 13a63557f147..4f4c3ec140a0 100644 --- a/include/svx/itemwin.hxx +++ b/include/svx/itemwin.hxx @@ -112,6 +112,10 @@ public: void Fill( const XBitmapListRef &pList ); void Fill( const XPatternListRef &pList ); + static void Fill(weld::ComboBox&, const XHatchListRef &pList); + static void Fill(weld::ComboBox&, const XBitmapListRef &pList); + static void Fill(weld::ComboBox&, const XPatternListRef &pList); + private: virtual bool PreNotify( NotifyEvent& rNEvt ) override; virtual bool EventNotify( NotifyEvent& rNEvt ) override; diff --git a/include/svx/pagenumberlistbox.hxx b/include/svx/pagenumberlistbox.hxx index 16307c03e0a9..e416fcb8d507 100644 --- a/include/svx/pagenumberlistbox.hxx +++ b/include/svx/pagenumberlistbox.hxx @@ -20,6 +20,7 @@ #ifndef INCLUDED_SVX_PAGENUMBERINGHELPER_HXX #define INCLUDED_SVX_PAGENUMBERINGHELPER_HXX +#include <editeng/svxenum.hxx> #include <svx/svxdllapi.h> #include <vcl/lstbox.hxx> #include <vcl/weld.hxx> @@ -41,11 +42,13 @@ private: public: SvxPageNumberListBox(std::unique_ptr<weld::ComboBox> pControl); int get_count() const { return m_xControl->get_count(); } - OUString get_id(int pos) const { return m_xControl->get_id(pos); } + SvxNumType get_active_id() const { return static_cast<SvxNumType>(m_xControl->get_active_id().toInt32()); } + void set_active_id(SvxNumType eId) const { m_xControl->set_active_id(OUString::number(static_cast<sal_Int32>(eId))); } int get_active() const { return m_xControl->get_active(); } void set_active(int pos) { m_xControl->set_active(pos); } void save_value() { m_xControl->save_value(); } bool get_value_changed_from_saved() const { return m_xControl->get_value_changed_from_saved(); } + void connect_changed(const Link<weld::ComboBox&, void>& rLink) { m_xControl->connect_changed(rLink); } weld::ComboBox& get_widget() const { return *m_xControl; } }; diff --git a/svx/source/dialog/dlgctrl.cxx b/svx/source/dialog/dlgctrl.cxx index 7a9b7186a257..cb79d09cd6d2 100644 --- a/svx/source/dialog/dlgctrl.cxx +++ b/svx/source/dialog/dlgctrl.cxx @@ -915,6 +915,22 @@ void FillTypeLB::Fill() SetUpdateMode( true ); } +void FillTypeLB::Fill(weld::ComboBox& rListBox) +{ + rListBox.freeze(); + + rListBox.append_text(SvxResId(RID_SVXSTR_INVISIBLE)); + rListBox.append_text(SvxResId(RID_SVXSTR_COLOR)); + rListBox.append_text(SvxResId(RID_SVXSTR_GRADIENT)); + rListBox.append_text(SvxResId(RID_SVXSTR_HATCH)); + rListBox.append_text(SvxResId(RID_SVXSTR_BITMAP)); + rListBox.append_text(SvxResId(RID_SVXSTR_PATTERN)); + + rListBox.thaw(); + + rListBox.set_active(1); // solid color +} + SvxLineLB::SvxLineLB(std::unique_ptr<weld::ComboBox> pControl) : m_xControl(std::move(pControl)) , mbAddStandardFields(true) diff --git a/svx/source/tbxctrls/itemwin.cxx b/svx/source/tbxctrls/itemwin.cxx index b986842765a4..f879c0a84313 100644 --- a/svx/source/tbxctrls/itemwin.cxx +++ b/svx/source/tbxctrls/itemwin.cxx @@ -705,4 +705,80 @@ void SvxFillAttrBox::Fill( const XPatternListRef &pList ) ListBox::SetUpdateMode(true); } +void SvxFillAttrBox::Fill(weld::ComboBox& rBox, const XHatchListRef &pList) +{ + if( !pList.is() ) + return; + + long nCount = pList->Count(); + ScopedVclPtrInstance< VirtualDevice > pVD; + rBox.freeze(); + + for( long i = 0; i < nCount; i++ ) + { + const XHatchEntry* pEntry = pList->GetHatch(i); + const BitmapEx aBitmapEx = pList->GetUiBitmap( i ); + if( !aBitmapEx.IsEmpty() ) + { + const Size aBmpSize(aBitmapEx.GetSizePixel()); + pVD->SetOutputSizePixel(aBmpSize, false); + pVD->DrawBitmapEx(Point(), aBitmapEx); + rBox.append("", pEntry->GetName(), *pVD); + } + else + rBox.append_text(pEntry->GetName()); + } + + rBox.thaw(); +} + +void SvxFillAttrBox::Fill(weld::ComboBox& rBox, const XBitmapListRef &pList) +{ + if( !pList.is() ) + return; + + long nCount = pList->Count(); + const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings(); + const Size aSize(rStyleSettings.GetListBoxPreviewDefaultPixelSize()); + ScopedVclPtrInstance< VirtualDevice > pVD; + pVD->SetOutputSizePixel(aSize, false); + rBox.freeze(); + + for( long i = 0; i < nCount; i++ ) + { + const XBitmapEntry* pEntry = pList->GetBitmap( i ); + BitmapEx aBitmapEx = pEntry->GetGraphicObject().GetGraphic().GetBitmapEx(); + formatBitmapExToSize(aBitmapEx, aSize); + pVD->DrawBitmapEx(Point(), aBitmapEx); + rBox.append("", pEntry->GetName(), *pVD); + } + + rBox.thaw(); +} + +void SvxFillAttrBox::Fill(weld::ComboBox& rBox, const XPatternListRef &pList) +{ + if( !pList.is() ) + return; + + long nCount = pList->Count(); + const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings(); + const Size aSize(rStyleSettings.GetListBoxPreviewDefaultPixelSize()); + ScopedVclPtrInstance< VirtualDevice > pVD; + pVD->SetOutputSizePixel(aSize, false); + rBox.freeze(); + + for( long i = 0; i < nCount; i++ ) + { + const XBitmapEntry* pEntry = pList->GetBitmap( i ); + BitmapEx aBitmapEx = pEntry->GetGraphicObject().GetGraphic().GetBitmapEx(); + formatBitmapExToSize(aBitmapEx, aSize); + pVD->DrawBitmapEx(Point(), aBitmapEx); + rBox.append("", pEntry->GetName(), *pVD); + } + + rBox.thaw(); + +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/uibase/sidebar/PageStylesPanel.cxx b/sw/source/uibase/sidebar/PageStylesPanel.cxx index 70595db3eb37..dfb4bf41099f 100644 --- a/sw/source/uibase/sidebar/PageStylesPanel.cxx +++ b/sw/source/uibase/sidebar/PageStylesPanel.cxx @@ -103,7 +103,7 @@ PageStylesPanel::PageStylesPanel( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rxFrame, SfxBindings* pBindings ) : - PanelLayout(pParent, "PageStylesPanel", "modules/swriter/ui/pagestylespanel.ui", rxFrame), + PanelLayout(pParent, "PageStylesPanel", "modules/swriter/ui/pagestylespanel.ui", rxFrame, true), mpBindings( pBindings ), mpPageColumnItem( new SfxInt16Item(SID_ATTR_PAGE_COLUMN) ), mpPageItem( new SvxPageItem(SID_ATTR_PAGE) ), @@ -114,18 +114,17 @@ PageStylesPanel::PageStylesPanel( maBgGradientControl( SID_ATTR_PAGE_GRADIENT, *pBindings, *this ), maBgBitmapControl( SID_ATTR_PAGE_BITMAP, *pBindings, *this ), maBgFillStyleControl(SID_ATTR_PAGE_FILLSTYLE, *pBindings, *this), + mxBgColorLB(new ColorListBox(m_xBuilder->weld_menu_button("lbcolor"), GetFrameWeld())), + mxBgHatchingLB(m_xBuilder->weld_combo_box("lbhatching")), + mxBgGradientLB(new ColorListBox(m_xBuilder->weld_menu_button("lbgradient"), GetFrameWeld())), + mxBgBitmapLB(m_xBuilder->weld_combo_box("lbbitmap")), + mxLayoutSelectLB(m_xBuilder->weld_combo_box("layoutbox")), + mxColumnCount(m_xBuilder->weld_combo_box("columnbox")), + mxNumberSelectLB(new SvxPageNumberListBox(m_xBuilder->weld_combo_box("numberbox"))), + mxBgFillType(m_xBuilder->weld_combo_box("bgselect")), + mxCustomEntry(m_xBuilder->weld_label("customlabel")), aCustomEntry() { - get(mpColumnCount, "columnbox"); - get(mpNumberSelectLB, "numberbox"); - get(mpBgFillType, "bgselect"); - get(mpBgColorLB, "lbcolor"); - get(mpBgHatchingLB, "lbhatching"); - get(mpBgGradientLB, "lbgradient"); - get(mpBgBitmapLB, "lbbitmap"); - get(mpLayoutSelectLB, "layoutbox"); - get(mpCustomEntry, "customlabel"); - Initialize(); } @@ -136,14 +135,15 @@ PageStylesPanel::~PageStylesPanel() void PageStylesPanel::dispose() { - mpColumnCount.disposeAndClear(); - mpNumberSelectLB.disposeAndClear(); - mpBgFillType.disposeAndClear(); - mpBgColorLB.disposeAndClear(); - mpBgHatchingLB.disposeAndClear(); - mpBgGradientLB.disposeAndClear(); - mpBgBitmapLB.disposeAndClear(); - mpLayoutSelectLB.disposeAndClear(); + mxColumnCount.reset(); + mxNumberSelectLB.reset(); + mxBgFillType.reset(); + mxBgColorLB.reset(); + mxBgHatchingLB.reset(); + mxBgGradientLB.reset(); + mxBgBitmapLB.reset(); + mxLayoutSelectLB.reset(); + mxCustomEntry.reset(); maBgBitmapControl.dispose(); maBgColorControl.dispose(); @@ -152,104 +152,105 @@ void PageStylesPanel::dispose() maBgHatchingControl.dispose(); maPageColumnControl.dispose(); maPageNumFormatControl.dispose(); - mpCustomEntry.clear(); PanelLayout::dispose(); } void PageStylesPanel::Initialize() { - aCustomEntry = mpCustomEntry->GetText(); + FillTypeLB::Fill(*mxBgFillType); + + aCustomEntry = mxCustomEntry->get_label(); mpBindings->Invalidate(SID_ATTR_PAGE_COLUMN); mpBindings->Invalidate(SID_ATTR_PAGE); mpBindings->Invalidate(SID_ATTR_PAGE_FILLSTYLE); Update(); - mpColumnCount->SetSelectHdl( LINK(this, PageStylesPanel, ModifyColumnCountHdl) ); - SvxNumOptionsTabPageHelper::GetI18nNumbering( *mpNumberSelectLB, ::std::numeric_limits<sal_uInt16>::max()); - mpNumberSelectLB->SetSelectHdl( LINK(this, PageStylesPanel, ModifyNumberingHdl) ); - mpLayoutSelectLB->SetSelectHdl( LINK(this, PageStylesPanel, ModifyLayoutHdl) ); - mpBgFillType->SetSelectHdl( LINK(this, PageStylesPanel, ModifyFillStyleHdl)); - mpBgColorLB->SetSelectHdl( LINK(this, PageStylesPanel, ModifyFillColorListHdl)); - mpBgGradientLB->SetSelectHdl( LINK(this, PageStylesPanel, ModifyFillColorListHdl)); - mpBgHatchingLB->SetSelectHdl( LINK(this, PageStylesPanel, ModifyFillColorHdl)); - mpBgBitmapLB->SetSelectHdl( LINK(this, PageStylesPanel, ModifyFillColorHdl)); + mxColumnCount->connect_changed( LINK(this, PageStylesPanel, ModifyColumnCountHdl) ); + SvxNumOptionsTabPageHelper::GetI18nNumbering(mxNumberSelectLB->get_widget(), ::std::numeric_limits<sal_uInt16>::max()); + mxNumberSelectLB->connect_changed( LINK(this, PageStylesPanel, ModifyNumberingHdl) ); + mxLayoutSelectLB->connect_changed( LINK(this, PageStylesPanel, ModifyLayoutHdl) ); + mxBgFillType->connect_changed( LINK(this, PageStylesPanel, ModifyFillStyleHdl)); + mxBgColorLB->SetSelectHdl( LINK(this, PageStylesPanel, ModifyFillColorListHdl)); + mxBgGradientLB->SetSelectHdl( LINK(this, PageStylesPanel, ModifyFillColorListHdl)); + mxBgHatchingLB->connect_changed( LINK(this, PageStylesPanel, ModifyFillColorHdl)); + mxBgBitmapLB->connect_changed( LINK(this, PageStylesPanel, ModifyFillColorHdl)); } void PageStylesPanel::Update() { - const eFillStyle eXFS = static_cast<eFillStyle>(mpBgFillType->GetSelectedEntryPos()); + const eFillStyle eXFS = static_cast<eFillStyle>(mxBgFillType->get_active()); SfxObjectShell* pSh = SfxObjectShell::Current(); switch(eXFS) { case NONE: { - mpBgColorLB->Hide(); - mpBgHatchingLB->Hide(); - mpBgGradientLB->Hide(); - mpBgBitmapLB->Hide(); + mxBgColorLB->hide(); + mxBgHatchingLB->hide(); + mxBgGradientLB->hide(); + mxBgBitmapLB->hide(); } break; case SOLID: { - mpBgBitmapLB->Hide(); - mpBgGradientLB->Hide(); - mpBgHatchingLB->Hide(); - mpBgColorLB->Show(); + mxBgBitmapLB->hide(); + mxBgGradientLB->hide(); + mxBgHatchingLB->hide(); + mxBgColorLB->show(); const Color aColor = GetColorSetOrDefault(); - mpBgColorLB->SelectEntry(aColor); + mxBgColorLB->SelectEntry(aColor); } break; case GRADIENT: { - mpBgBitmapLB->Hide(); - mpBgHatchingLB->Hide(); - mpBgColorLB->Show(); - mpBgGradientLB->Show(); + mxBgBitmapLB->hide(); + mxBgHatchingLB->hide(); + mxBgColorLB->show(); + mxBgGradientLB->show(); const XGradient xGradient = GetGradientSetOrDefault(); const Color aStartColor = xGradient.GetStartColor(); - mpBgColorLB->SelectEntry(aStartColor); + mxBgColorLB->SelectEntry(aStartColor); const Color aEndColor = xGradient.GetEndColor(); - mpBgGradientLB->SelectEntry(aEndColor); + mxBgGradientLB->SelectEntry(aEndColor); } break; case HATCH: { - mpBgColorLB->Hide(); - mpBgGradientLB->Hide(); - mpBgBitmapLB->Hide(); - mpBgHatchingLB->Show(); - mpBgHatchingLB->Clear(); - mpBgHatchingLB->Fill(pSh->GetItem(SID_HATCH_LIST)->GetHatchList()); + mxBgColorLB->hide(); + mxBgGradientLB->hide(); + mxBgBitmapLB->hide(); + mxBgHatchingLB->show(); + mxBgHatchingLB->clear(); + SvxFillAttrBox::Fill(*mxBgHatchingLB, pSh->GetItem(SID_HATCH_LIST)->GetHatchList()); const OUString aHatchName = GetHatchingSetOrDefault(); - mpBgHatchingLB->SelectEntry( aHatchName ); + mxBgHatchingLB->set_active_text( aHatchName ); } break; case BITMAP: case PATTERN: { - mpBgColorLB->Hide(); - mpBgGradientLB->Hide(); - mpBgHatchingLB->Hide(); - mpBgBitmapLB->Show(); - mpBgBitmapLB->Clear(); + mxBgColorLB->hide(); + mxBgGradientLB->hide(); + mxBgHatchingLB->hide(); + mxBgBitmapLB->show(); + mxBgBitmapLB->clear(); OUString aBitmapName; if( eXFS == BITMAP ) { - mpBgBitmapLB->Fill(pSh->GetItem(SID_BITMAP_LIST)->GetBitmapList()); + SvxFillAttrBox::Fill(*mxBgBitmapLB, pSh->GetItem(SID_BITMAP_LIST)->GetBitmapList()); aBitmapName = GetBitmapSetOrDefault(); } else { - mpBgBitmapLB->Fill(pSh->GetItem(SID_PATTERN_LIST)->GetPatternList()); + SvxFillAttrBox::Fill(*mxBgBitmapLB, pSh->GetItem(SID_PATTERN_LIST)->GetPatternList()); aBitmapName = GetPatternSetOrDefault(); } - mpBgBitmapLB->SelectEntry( aBitmapName ); + mxBgBitmapLB->set_active_text( aBitmapName ); } break; @@ -344,14 +345,16 @@ void PageStylesPanel::NotifyItemUpdate( mpPageColumnItem.reset( static_cast<SfxInt16Item*>(pState->Clone()) ); if(mpPageColumnItem->GetValue() <= 5) { - mpColumnCount->SelectEntryPos(mpPageColumnItem->GetValue() - 1); - mpColumnCount->RemoveEntry(aCustomEntry); + mxColumnCount->set_active(mpPageColumnItem->GetValue() - 1); + int nIndex = mxColumnCount->find_text(aCustomEntry); + if (nIndex != -1) + mxColumnCount->remove(nIndex); } else { - if(mpColumnCount->GetEntryPos(aCustomEntry) == LISTBOX_ENTRY_NOTFOUND) - mpColumnCount->InsertEntry(aCustomEntry); - mpColumnCount->SelectEntry(aCustomEntry); + if (mxColumnCount->find_text(aCustomEntry) == -1) + mxColumnCount->append_text(aCustomEntry); + mxColumnCount->set_active_text(aCustomEntry); } } } @@ -364,10 +367,10 @@ void PageStylesPanel::NotifyItemUpdate( { mpPageItem.reset( static_cast<SvxPageItem*>(pState->Clone()) ); SvxNumType eNumType = mpPageItem->GetNumType(); - mpNumberSelectLB->SetSelection(eNumType); + mxNumberSelectLB->set_active_id(eNumType); SvxPageUsage nUse = mpPageItem->GetPageUsage(); - mpLayoutSelectLB->SelectEntryPos( PageUsageToPos_Impl( nUse ) ); + mxLayoutSelectLB->set_active( PageUsageToPos_Impl( nUse ) ); } } break; @@ -376,7 +379,7 @@ void PageStylesPanel::NotifyItemUpdate( { if(eState >= SfxItemState::DEFAULT) { - mpBgFillType->SelectEntryPos( static_cast<sal_Int32>(SOLID) ); + mxBgFillType->set_active( static_cast<sal_Int32>(SOLID) ); mpBgColorItem.reset(pState ? static_cast< XFillColorItem* >(pState->Clone()) : nullptr); Update(); } @@ -387,7 +390,7 @@ void PageStylesPanel::NotifyItemUpdate( { if(eState >= SfxItemState::DEFAULT) { - mpBgFillType->SelectEntryPos( static_cast<sal_Int32>(HATCH) ); + mxBgFillType->set_active( static_cast<sal_Int32>(HATCH) ); mpBgHatchItem.reset(pState ? static_cast < XFillHatchItem* >(pState->Clone()) : nullptr); Update(); } @@ -398,7 +401,7 @@ void PageStylesPanel::NotifyItemUpdate( { if(eState >= SfxItemState::DEFAULT) { - mpBgFillType->SelectEntryPos( static_cast<sal_Int32>(GRADIENT) ); + mxBgFillType->set_active( static_cast<sal_Int32>(GRADIENT) ); mpBgGradientItem.reset(pState ? static_cast< XFillGradientItem* >(pState->Clone()) : nullptr); Update(); } @@ -412,9 +415,9 @@ void PageStylesPanel::NotifyItemUpdate( if (mpBgBitmapItem) { if (mpBgBitmapItem->isPattern()) - mpBgFillType->SelectEntryPos( static_cast<sal_Int32>(PATTERN) ); + mxBgFillType->set_active( static_cast<sal_Int32>(PATTERN) ); else - mpBgFillType->SelectEntryPos( static_cast<sal_Int32>(BITMAP) ); + mxBgFillType->set_active( static_cast<sal_Int32>(BITMAP) ); } Update(); } @@ -432,22 +435,22 @@ void PageStylesPanel::NotifyItemUpdate( switch(eXFS) { case drawing::FillStyle_NONE: - mpBgFillType->SelectEntryPos( static_cast<sal_Int32>(NONE) ); + mxBgFillType->set_active( static_cast<sal_Int32>(NONE) ); break; case drawing::FillStyle_SOLID: - mpBgFillType->SelectEntryPos( static_cast<sal_Int32>(SOLID) ); + mxBgFillType->set_active( static_cast<sal_Int32>(SOLID) ); break; case drawing::FillStyle_GRADIENT: - mpBgFillType->SelectEntryPos( static_cast<sal_Int32>(GRADIENT) ); + mxBgFillType->set_active( static_cast<sal_Int32>(GRADIENT) ); break; case drawing::FillStyle_HATCH: - mpBgFillType->SelectEntryPos( static_cast<sal_Int32>(HATCH) ); + mxBgFillType->set_active( static_cast<sal_Int32>(HATCH) ); break; case drawing::FillStyle_BITMAP: if (mpBgBitmapItem->isPattern()) - mpBgFillType->SelectEntryPos( static_cast<sal_Int32>(PATTERN) ); + mxBgFillType->set_active( static_cast<sal_Int32>(PATTERN) ); else - mpBgFillType->SelectEntryPos( static_cast<sal_Int32>(BITMAP) ); + mxBgFillType->set_active( static_cast<sal_Int32>(BITMAP) ); break; default: break; @@ -462,31 +465,31 @@ void PageStylesPanel::NotifyItemUpdate( } } -IMPL_LINK_NOARG( PageStylesPanel, ModifyColumnCountHdl, ListBox&, void ) +IMPL_LINK_NOARG( PageStylesPanel, ModifyColumnCountHdl, weld::ComboBox&, void ) { - sal_uInt16 nColumnType = mpColumnCount->GetSelectedEntryPos() + 1; + sal_uInt16 nColumnType = mxColumnCount->get_active() + 1; mpPageColumnItem->SetValue( nColumnType ); mpBindings->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_COLUMN, SfxCallMode::RECORD, { mpPageColumnItem.get() }); } -IMPL_LINK_NOARG( PageStylesPanel, ModifyNumberingHdl, ListBox&, void ) +IMPL_LINK_NOARG( PageStylesPanel, ModifyNumberingHdl, weld::ComboBox&, void ) { - SvxNumType nEntryData = static_cast<SvxNumType>(reinterpret_cast<sal_uLong>(mpNumberSelectLB->GetSelectedEntryData())); + SvxNumType nEntryData = mxNumberSelectLB->get_active_id(); mpPageItem->SetNumType(nEntryData); mpBindings->GetDispatcher()->ExecuteList(SID_ATTR_PAGE, SfxCallMode::RECORD, { mpPageItem.get() }); } -IMPL_LINK_NOARG( PageStylesPanel, ModifyLayoutHdl, ListBox&, void ) +IMPL_LINK_NOARG( PageStylesPanel, ModifyLayoutHdl, weld::ComboBox&, void ) { - sal_uInt16 nUse = mpLayoutSelectLB->GetSelectedEntryPos(); + sal_uInt16 nUse = mxLayoutSelectLB->get_active(); mpPageItem->SetPageUsage(PosToPageUsage_Impl(nUse)); mpBindings->GetDispatcher()->ExecuteList(SID_ATTR_PAGE, SfxCallMode::RECORD, { mpPageItem.get() }); } -IMPL_LINK_NOARG(PageStylesPanel, ModifyFillStyleHdl, ListBox&, void) +IMPL_LINK_NOARG(PageStylesPanel, ModifyFillStyleHdl, weld::ComboBox&, void) { - const eFillStyle eXFS = static_cast<eFillStyle>(mpBgFillType->GetSelectedEntryPos()); + const eFillStyle eXFS = static_cast<eFillStyle>(mxBgFillType->get_active()); Update(); switch (eXFS) @@ -530,26 +533,25 @@ IMPL_LINK_NOARG(PageStylesPanel, ModifyFillStyleHdl, ListBox&, void) default: break; } - mpBgFillType->Selected(); } void PageStylesPanel::ModifyFillColor() { - const eFillStyle eXFS = static_cast<eFillStyle>(mpBgFillType->GetSelectedEntryPos()); + const eFillStyle eXFS = static_cast<eFillStyle>(mxBgFillType->get_active()); SfxObjectShell* pSh = SfxObjectShell::Current(); switch(eXFS) { case SOLID: { - XFillColorItem aItem(OUString(), mpBgColorLB->GetSelectEntryColor()); + XFillColorItem aItem(OUString(), mxBgColorLB->GetSelectEntryColor()); GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_COLOR, SfxCallMode::RECORD, { &aItem }); } break; case GRADIENT: { XGradient aGradient; - aGradient.SetStartColor(mpBgColorLB->GetSelectEntryColor()); - aGradient.SetEndColor(mpBgGradientLB->GetSelectEntryColor()); + aGradient.SetStartColor(mxBgColorLB->GetSelectEntryColor()); + aGradient.SetEndColor(mxBgGradientLB->GetSelectEntryColor()); XFillGradientItem aItem(aGradient); GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_GRADIENT, SfxCallMode::RECORD, { &aItem }); @@ -558,7 +560,7 @@ void PageStylesPanel::ModifyFillColor() case HATCH: { const SvxHatchListItem * pHatchListItem = pSh->GetItem(SID_HATCH_LIST); - sal_uInt16 nPos = mpBgHatchingLB->GetSelectedEntryPos(); + sal_uInt16 nPos = mxBgHatchingLB->get_active(); XHatch aHatch = pHatchListItem->GetHatchList()->GetHatch(nPos)->GetHatch(); const OUString aHatchName = pHatchListItem->GetHatchList()->GetHatch(nPos)->GetName(); @@ -569,7 +571,7 @@ void PageStylesPanel::ModifyFillColor() case BITMAP: case PATTERN: { - sal_Int16 nPos = mpBgBitmapLB->GetSelectedEntryPos(); + sal_Int16 nPos = mxBgBitmapLB->get_active(); GraphicObject aBitmap; OUString aBitmapName; @@ -595,12 +597,12 @@ void PageStylesPanel::ModifyFillColor() } } -IMPL_LINK_NOARG(PageStylesPanel, ModifyFillColorHdl, ListBox&, void) +IMPL_LINK_NOARG(PageStylesPanel, ModifyFillColorHdl, weld::ComboBox&, void) { ModifyFillColor(); } -IMPL_LINK_NOARG(PageStylesPanel, ModifyFillColorListHdl, SvxColorListBox&, void) +IMPL_LINK_NOARG(PageStylesPanel, ModifyFillColorListHdl, ColorListBox&, void) { ModifyFillColor(); } diff --git a/sw/source/uibase/sidebar/PageStylesPanel.hxx b/sw/source/uibase/sidebar/PageStylesPanel.hxx index 4dcadf0d9d17..a3b7efde6337 100644 --- a/sw/source/uibase/sidebar/PageStylesPanel.hxx +++ b/sw/source/uibase/sidebar/PageStylesPanel.hxx @@ -40,7 +40,7 @@ #include <svx/pagenumberlistbox.hxx> class List; -class SvxColorListBox; +class ColorListBox; namespace sw { namespace sidebar { class PageStylesPanel: @@ -85,15 +85,15 @@ private: ::sfx2::sidebar::ControllerItem maBgBitmapControl; ::sfx2::sidebar::ControllerItem maBgFillStyleControl; - VclPtr<SvxColorListBox> mpBgColorLB; - VclPtr<SvxFillAttrBox> mpBgHatchingLB; - VclPtr<SvxColorListBox> mpBgGradientLB; - VclPtr<SvxFillAttrBox> mpBgBitmapLB; - VclPtr<ListBox> mpLayoutSelectLB; - VclPtr<ListBox> mpColumnCount; - VclPtr<PageNumberListBox> mpNumberSelectLB; - VclPtr<SvxFillTypeBox> mpBgFillType; - VclPtr<FixedText> mpCustomEntry; + std::unique_ptr<ColorListBox> mxBgColorLB; + std::unique_ptr<weld::ComboBox> mxBgHatchingLB; + std::unique_ptr<ColorListBox> mxBgGradientLB; + std::unique_ptr<weld::ComboBox> mxBgBitmapLB; + std::unique_ptr<weld::ComboBox> mxLayoutSelectLB; + std::unique_ptr<weld::ComboBox> mxColumnCount; + std::unique_ptr<SvxPageNumberListBox> mxNumberSelectLB; + std::unique_ptr<weld::ComboBox> mxBgFillType; + std::unique_ptr<weld::Label> mxCustomEntry; OUString aCustomEntry; void Initialize(); @@ -106,12 +106,12 @@ private: void ModifyFillColor(); - DECL_LINK( ModifyColumnCountHdl, ListBox&, void ); - DECL_LINK( ModifyNumberingHdl, ListBox&, void ); - DECL_LINK( ModifyLayoutHdl, ListBox&, void ); - DECL_LINK( ModifyFillStyleHdl, ListBox&, void ); - DECL_LINK( ModifyFillColorHdl, ListBox&, void ); - DECL_LINK( ModifyFillColorListHdl, SvxColorListBox&, void ); + DECL_LINK( ModifyColumnCountHdl, weld::ComboBox&, void ); + DECL_LINK( ModifyNumberingHdl, weld::ComboBox&, void ); + DECL_LINK( ModifyLayoutHdl, weld::ComboBox&, void ); + DECL_LINK( ModifyFillStyleHdl, weld::ComboBox&, void ); + DECL_LINK( ModifyFillColorHdl, weld::ComboBox&, void ); + DECL_LINK( ModifyFillColorListHdl, ColorListBox&, void ); }; } } //end of namespace sw::sidebar diff --git a/sw/uiconfig/swriter/ui/pagestylespanel.ui b/sw/uiconfig/swriter/ui/pagestylespanel.ui index dc6f70b1b821..f8acc399e109 100644 --- a/sw/uiconfig/swriter/ui/pagestylespanel.ui +++ b/sw/uiconfig/swriter/ui/pagestylespanel.ui @@ -1,33 +1,30 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.16.1 --> +<!-- Generated with glade 3.22.1 --> <interface domain="sw"> <requires lib="gtk+" version="3.18"/> - <requires lib="LibreOffice" version="1.0"/> - <object class="GtkListStore" id="liststorePageLayout"> + <object class="GtkListStore" id="liststore4"> <columns> - <!-- column-name gchararray1 --> + <!-- column-name text --> <column type="gchararray"/> - <!-- column-name gint1 --> - <column type="gint"/> + <!-- column-name id --> + <column type="gchararray"/> + <!-- column-name image --> + <column type="GdkPixbuf"/> + <!-- column-name surface --> + <column type="CairoSurface"/> + </columns> + </object> + <object class="GtkListStore" id="liststore5"> + <columns> + <!-- column-name text --> + <column type="gchararray"/> + <!-- column-name id --> + <column type="gchararray"/> + <!-- column-name image --> + <column type="GdkPixbuf"/> + <!-- column-name surface --> + <column type="CairoSurface"/> </columns> - <data> - <row> - <col id="0" translatable="yes" context="pagestylespanel|liststorePageLayout">Right and left</col> - <col id="1">0</col> - </row> - <row> - <col id="0" translatable="yes" context="pagestylespanel|liststorePageLayout">Mirrored</col> - <col id="1">0</col> - </row> - <row> - <col id="0" translatable="yes" context="pagestylespanel|liststorePageLayout">Only right</col> - <col id="1">0</col> - </row> - <row> - <col id="0" translatable="yes" context="pagestylespanel|liststorePageLayout">Only left</col> - <col id="1">0</col> - </row> - </data> </object> <object class="GtkGrid" id="PageStylesPanel"> <property name="visible">True</property> @@ -47,86 +44,83 @@ <object class="GtkLabel" id="numberslabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">1</property> <property name="label" translatable="yes" context="pagestylespanel|numberslabel">Number:</property> + <property name="use_underline">True</property> <property name="mnemonic_widget">numberbox</property> + <property name="xalign">1</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">0</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> <object class="GtkLabel" id="backgroundlabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">1</property> <property name="label" translatable="yes" context="pagestylespanel|backgroundlabel">Background:</property> + <property name="use_underline">True</property> <property name="mnemonic_widget">bgselect</property> + <property name="xalign">1</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">1</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> - <object class="svxcorelo-PageNumberListBox" id="numberbox"> + <object class="GtkComboBoxText" id="numberbox"> <property name="visible">True</property> <property name="can_focus">True</property> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">0</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> <object class="GtkLabel" id="layoutlabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">1</property> <property name="label" translatable="yes" context="pagestylespanel|layoutlabel">Layout:</property> + <property name="use_underline">True</property> <property name="mnemonic_widget">layoutbox</property> + <property name="xalign">1</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">6</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> - <object class="GtkComboBox" id="layoutbox"> + <object class="GtkComboBoxText" id="layoutbox"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can_focus">True</property> <property name="hexpand">True</property> - <property name="model">liststorePageLayout</property> + <items> + <item translatable="yes" context="pagestylespanel|liststorePageLayout">Right and left</item> + <item translatable="yes" context="pagestylespanel|liststorePageLayout">Mirrored</item> + <item translatable="yes" context="pagestylespanel|liststorePageLayout">Only right</item> + <item translatable="yes" context="pagestylespanel|liststorePageLayout">Only left</item> + </items> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">6</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> <object class="GtkLabel" id="columnlabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">1</property> <property name="label" translatable="yes" context="pagestylespanel|columnlabel">Columns:</property> + <property name="use_underline">True</property> <property name="mnemonic_widget">columnbox</property> + <property name="xalign">1</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">7</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> @@ -144,72 +138,104 @@ <packing> <property name="left_attach">1</property> <property name="top_attach">7</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> - <object class="svxlo-SvxFillAttrBox" id="lbhatching"> - <property name="width_request">150</property> + <object class="GtkComboBox" id="lbhatching"> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can_focus">False</property> + <property name="model">liststore4</property> + <property name="entry_text_column">0</property> + <property name="id_column">1</property> + <child> + <object class="GtkCellRendererText" id="cellrenderertext3"/> + <attributes> + <attribute name="text">0</attribute> + </attributes> + </child> + <child> + <object class="GtkCellRendererPixbuf" id="cellrenderertext4"/> + <attributes> + <attribute name="surface">3</attribute> + </attributes> + </child> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">3</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> - <object class="svxlo-SvxFillAttrBox" id="lbbitmap"> - <property name="width_request">150</property> + <object class="GtkComboBox" id="lbbitmap"> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can_focus">False</property> + <property name="model">liststore5</property> + <property name="entry_text_column">0</property> + <property name="id_column">1</property> + <child> + <object class="GtkCellRendererText" id="cellrenderertext5"/> + <attributes> + <attribute name="text">0</attribute> + </attributes> + </child> + <child> + <object class="GtkCellRendererPixbuf" id="cellrenderertext6"/> + <attributes> + <attribute name="surface">3</attribute> + </attributes> + </child> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">4</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> - <object class="svxcorelo-SvxColorListBox" id="lbcolor"> - <property name="width_request">150</property> + <object class="GtkMenuButton" id="lbcolor"> <property name="visible">True</property> <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="halign">start</property> + <property name="valign">center</property> + <property name="draw_indicator">True</property> + <property name="label" translatable="no"></property> + <property name="width_request">150</property> + <child> + <placeholder/> + </child> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">2</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> - <object class="svxcorelo-SvxColorListBox" id="lbgradient"> - <property name="width_request">150</property> + <object class="GtkMenuButton" id="lbgradient"> <property name="visible">True</property> <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="halign">start</property> + <property name="valign">center</property> + <property name="draw_indicator">True</property> + <property name="label" translatable="no"></property> + <property name="width_request">150</property> + <child> + <placeholder/> + </child> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">5</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> - <object class="svxlo-SvxFillTypeBox" id="bgselect"> + <object class="GtkComboBoxText" id="bgselect"> <property name="visible">True</property> <property name="can_focus">True</property> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">1</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> @@ -220,8 +246,6 @@ <packing> <property name="left_attach">1</property> <property name="top_attach">8</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> @@ -243,8 +267,6 @@ <packing> <property name="left_attach">0</property> <property name="top_attach">0</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> </object> |