[Libreoffice-commits] core.git: chart2/source include/svx solenv/sanitizers svx/source svx/uiconfig

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Wed Jan 8 08:51:22 UTC 2020


 chart2/source/controller/sidebar/ChartLinePanel.cxx |   10 
 include/svx/sidebar/LinePropertyPanelBase.hxx       |   70 +--
 include/svx/sidebar/LineWidthPopup.hxx              |   33 -
 solenv/sanitizers/ui/svx.suppr                      |    5 
 svx/source/sidebar/line/LinePropertyPanelBase.cxx   |  423 +++++++-------------
 svx/source/sidebar/line/LineWidthPopup.cxx          |   76 +--
 svx/source/sidebar/line/LineWidthValueSet.cxx       |   29 -
 svx/source/sidebar/line/LineWidthValueSet.hxx       |    6 
 svx/source/sidebar/possize/PosSizePropertyPanel.cxx |    1 
 svx/uiconfig/ui/floatinglineproperty.ui             |   53 +-
 svx/uiconfig/ui/sidebarline.ui                      |  181 +++++---
 11 files changed, 409 insertions(+), 478 deletions(-)

New commits:
commit 4f6d95ead1286748810e937c7672de08b8b39a38
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Mon Jan 6 09:51:42 2020 +0000
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Wed Jan 8 09:50:52 2020 +0100

    weld LinePropertyPanel
    
    Change-Id: If4ff18c3d312d273e9d28aeef97db053f56007ca
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86309
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/chart2/source/controller/sidebar/ChartLinePanel.cxx b/chart2/source/controller/sidebar/ChartLinePanel.cxx
index 356bd229fa24..b31c6362e234 100644
--- a/chart2/source/controller/sidebar/ChartLinePanel.cxx
+++ b/chart2/source/controller/sidebar/ChartLinePanel.cxx
@@ -20,7 +20,7 @@
 #include <svx/unomid.hxx>
 
 #include <svx/tbcontrl.hxx>
-#include <sfx2/sidebar/SidebarToolBox.hxx>
+#include <sfx2/weldutils.hxx>
 #include <vcl/svapp.hxx>
 
 #include <com/sun/star/view/XSelectionSupplier.hpp>
@@ -31,9 +31,9 @@ namespace chart { namespace sidebar {
 
 namespace {
 
-SvxColorToolBoxControl* getColorToolBoxControl(sfx2::sidebar::SidebarToolBox* pToolBoxColor)
+SvxColorToolBoxControl* getColorToolBoxControl(ToolbarUnoDispatcher& rToolBoxColor)
 {
-    css::uno::Reference<css::frame::XToolbarController> xController = pToolBoxColor->GetFirstController();
+    css::uno::Reference<css::frame::XToolbarController> xController = rToolBoxColor.GetControllerForCommand(".uno:XLineColor");
     SvxColorToolBoxControl* pToolBoxColorControl = dynamic_cast<SvxColorToolBoxControl*>(xController.get());
     return pToolBoxColorControl;
 }
@@ -137,7 +137,7 @@ ChartLinePanel::ChartLinePanel(vcl::Window* pParent,
     mxSelectionListener(new ChartSidebarSelectionListener(this)),
     mbUpdate(true),
     mbModelValid(true),
-    maLineColorWrapper(mxModel, getColorToolBoxControl(mpTBColor.get()), "LineColor")
+    maLineColorWrapper(mxModel, getColorToolBoxControl(*mxColorDispatch), "LineColor")
 {
     disableArrowHead();
     std::vector<ObjectType> aAcceptedTypes { OBJECTTYPE_PAGE, OBJECTTYPE_DIAGRAM,
@@ -174,7 +174,7 @@ void ChartLinePanel::Initialize()
     if (xSelectionSupplier.is())
         xSelectionSupplier->addSelectionChangeListener(mxSelectionListener.get());
 
-    SvxColorToolBoxControl* pToolBoxColor = getColorToolBoxControl(mpTBColor.get());
+    SvxColorToolBoxControl* pToolBoxColor = getColorToolBoxControl(*mxColorDispatch);
     pToolBoxColor->setColorSelectFunction(maLineColorWrapper);
 
     setMapUnit(MapUnit::Map100thMM);
diff --git a/include/svx/sidebar/LinePropertyPanelBase.hxx b/include/svx/sidebar/LinePropertyPanelBase.hxx
index e114d7b8e9b3..c91c2dd136b6 100644
--- a/include/svx/sidebar/LinePropertyPanelBase.hxx
+++ b/include/svx/sidebar/LinePropertyPanelBase.hxx
@@ -19,17 +19,16 @@
 #ifndef INCLUDED_SVX_SOURCE_SIDEBAR_LINE_LINEPROPERTYPANELBASE_HXX
 #define INCLUDED_SVX_SOURCE_SIDEBAR_LINE_LINEPROPERTYPANELBASE_HXX
 
-#include <vcl/fixed.hxx>
-#include <vcl/field.hxx>
-#include <vcl/layout.hxx>
+#include <vcl/weld.hxx>
 #include <memory>
 #include <svl/poolitem.hxx>
+#include <svx/dlgctrl.hxx>
 #include <svx/sidebar/PanelLayout.hxx>
 #include <svx/xtable.hxx>
 #include <svx/sidebar/LineWidthPopup.hxx>
 #include <svx/svxdllapi.h>
 
-
+class ToolbarUnoDispatcher;
 class XLineStyleItem;
 class XLineDashItem;
 class XLineStartItem;
@@ -40,15 +39,6 @@ class XLineJointItem;
 class XLineCapItem;
 class XLineTransparenceItem;
 class XDashList;
-class ListBox;
-class ToolBox;
-class FloatingWindow;
-
-namespace sfx2 { namespace sidebar {
-
-class SidebarToolBox;
-
-} }
 
 namespace svx
 {
@@ -68,6 +58,8 @@ public:
     void SetWidthIcon(int n);
     void SetWidthIcon();
 
+    void EndLineWidthPopup();
+
     // constructor/destructor
     LinePropertyPanelBase(
         vcl::Window* pParent,
@@ -108,23 +100,26 @@ protected:
 
 protected:
 
-    VclPtr<sfx2::sidebar::SidebarToolBox> mpTBColor;
+    std::unique_ptr<weld::Toolbar> mxTBColor;
+    std::unique_ptr<ToolbarUnoDispatcher> mxColorDispatch;
 
 private:
     //ui controls
-    VclPtr<FixedText>   mpFTWidth;
-    VclPtr<ToolBox>     mpTBWidth;
-    VclPtr<ListBox>     mpLBStyle;
-    VclPtr<FixedText>   mpFTTransparency;
-    VclPtr<MetricField> mpMFTransparent;
-    VclPtr<ListBox>     mpLBStart;
-    VclPtr<ListBox>     mpLBEnd;
-    VclPtr<FixedText>   mpFTEdgeStyle;
-    VclPtr<ListBox>     mpLBEdgeStyle;
-    VclPtr<FixedText>   mpFTCapStyle;
-    VclPtr<ListBox>     mpLBCapStyle;
-    VclPtr<VclGrid>     mpGridLineProps;
-    VclPtr<VclVBox>     mpBoxArrowProps;
+    std::unique_ptr<weld::Label> mxFTWidth;
+    std::unique_ptr<weld::Toolbar> mxTBWidth;
+    std::unique_ptr<SvxLineLB> mxLBStyle;
+    std::unique_ptr<weld::Label> mxFTTransparency;
+    std::unique_ptr<weld::MetricSpinButton> mxMFTransparent;
+    std::unique_ptr<SvxLineEndLB> mxLBStart;
+    std::unique_ptr<SvxLineEndLB> mxLBEnd;
+    std::unique_ptr<weld::Label> mxFTEdgeStyle;
+    std::unique_ptr<weld::ComboBox> mxLBEdgeStyle;
+    std::unique_ptr<weld::Label> mxFTCapStyle;
+    std::unique_ptr<weld::ComboBox> mxLBCapStyle;
+    std::unique_ptr<weld::Widget> mxGridLineProps;
+    std::unique_ptr<weld::Widget> mxBoxArrowProps;
+    //popup windows
+    std::unique_ptr<LineWidthPopup> mxLineWidthPopup;
 
     std::unique_ptr<XLineStyleItem> mpStyleItem;
     std::unique_ptr<XLineDashItem>  mpDashItem;
@@ -137,27 +132,24 @@ private:
     std::unique_ptr<XLineStartItem> mpStartItem;
     std::unique_ptr<XLineEndItem>   mpEndItem;
 
-    //popup windows
-    VclPtr<LineWidthPopup> mxLineWidthPopup;
-
     // images from resource
-    Image const maIMGNone;
+    OUString maIMGNone;
 
     // multi-images
-    std::unique_ptr<Image[]> mpIMGWidthIcon;
+    OUString maIMGWidthIcon[8];
 
     bool                mbWidthValuable : 1;
     bool mbArrowSupported;
 
     void Initialize();
 
-    DECL_LINK(ChangeLineStyleHdl, ListBox&, void);
-    DECL_LINK(ToolboxWidthSelectHdl, ToolBox*, void);
-    DECL_LINK(ChangeTransparentHdl, Edit&, void );
-    DECL_LINK(ChangeStartHdl, ListBox&, void);
-    DECL_LINK(ChangeEndHdl, ListBox&, void);
-    DECL_LINK(ChangeEdgeStyleHdl, ListBox&, void);
-    DECL_LINK(ChangeCapStyleHdl, ListBox&, void);
+    DECL_LINK(ChangeLineStyleHdl, weld::ComboBox&, void);
+    DECL_LINK(ToolboxWidthSelectHdl, const OString&, void);
+    DECL_LINK(ChangeTransparentHdl, weld::MetricSpinButton&, void );
+    DECL_LINK(ChangeStartHdl, weld::ComboBox&, void);
+    DECL_LINK(ChangeEndHdl, weld::ComboBox&, void);
+    DECL_LINK(ChangeEdgeStyleHdl, weld::ComboBox&, void);
+    DECL_LINK(ChangeCapStyleHdl, weld::ComboBox&, void);
 };
 
 } } // end of namespace svx::sidebar
diff --git a/include/svx/sidebar/LineWidthPopup.hxx b/include/svx/sidebar/LineWidthPopup.hxx
index fd36e5ea92a6..ce19baf92eb0 100644
--- a/include/svx/sidebar/LineWidthPopup.hxx
+++ b/include/svx/sidebar/LineWidthPopup.hxx
@@ -19,28 +19,29 @@
 #ifndef INCLUDED_SVX_SOURCE_SIDEBAR_LINE_LINEWIDTHPOPUP_HXX
 #define INCLUDED_SVX_SOURCE_SIDEBAR_LINE_LINEWIDTHPOPUP_HXX
 
-#include <vcl/floatwin.hxx>
-#include <vcl/layout.hxx>
+#include <tools/mapunit.hxx>
+#include <vcl/customweld.hxx>
+#include <vcl/image.hxx>
+#include <vcl/weld.hxx>
 #include <array>
 
-class Edit;
-class MetricField;
-class ValueSet;
+class SvtValueSet;
 
 namespace svx { namespace sidebar {
 
 class LinePropertyPanelBase;
 class LineWidthValueSet;
 
-class LineWidthPopup final : public FloatingWindow
+class LineWidthPopup final
 {
 public:
-    LineWidthPopup(LinePropertyPanelBase& rParent);
-    virtual void dispose() override;
-    virtual ~LineWidthPopup() override;
+    LineWidthPopup(weld::Widget* pParent, LinePropertyPanelBase& rParent);
+    ~LineWidthPopup();
 
     void SetWidthSelect (long lValue, bool bValuable, MapUnit eMapUnit);
 
+    weld::Container* getTopLevel() const { return m_xTopLevel.get(); }
+
 private:
     LinePropertyPanelBase& m_rParent;
     std::array<OUString,9> maStrUnits;
@@ -49,14 +50,18 @@ private:
     bool m_bVSFocus;
     bool m_bCustom;
     long m_nCustomWidth;
-    VclPtr<MetricField> m_xMFWidth;
-    VclPtr<VclContainer> m_xBox;
-    VclPtr<LineWidthValueSet> m_xVSWidth;
     Image const m_aIMGCus;
     Image const m_aIMGCusGray;
 
-    DECL_LINK(VSSelectHdl, ValueSet*, void);
-    DECL_LINK(MFModifyHdl, Edit&, void);
+    std::unique_ptr<weld::Builder> m_xBuilder;
+    std::unique_ptr<weld::Container> m_xTopLevel;
+    std::unique_ptr<weld::MetricSpinButton> m_xMFWidth;
+    std::unique_ptr<LineWidthValueSet> m_xVSWidth;
+    std::unique_ptr<weld::CustomWeld> m_xVSWidthWin;
+
+    DECL_LINK(VSSelectHdl, SvtValueSet*, void);
+    DECL_LINK(MFModifyHdl, weld::MetricSpinButton&, void);
+    DECL_LINK(FocusHdl, weld::Widget&, void);
 };
 
 } } // end of namespace svx::sidebar
diff --git a/solenv/sanitizers/ui/svx.suppr b/solenv/sanitizers/ui/svx.suppr
index d089305f2326..9779f86780a9 100644
--- a/solenv/sanitizers/ui/svx.suppr
+++ b/solenv/sanitizers/ui/svx.suppr
@@ -64,8 +64,5 @@ svx/uiconfig/ui/sidebararea.ui://GtkLabel[@id='transparencylabel'] orphan-label
 svx/uiconfig/ui/sidebarshadow.ui://GtkLabel[@id='transparency_label'] orphan-label
 svx/uiconfig/ui/sidebarshadow.ui://GtkSpinButton[@id='FIELD_TRANSPARENCY'] no-labelled-by
 svx/uiconfig/ui/sidebarshadow.ui://GtkScale[@id='transparency_slider'] no-labelled-by
-svx/uiconfig/ui/sidebarline.ui://GtkLabel[@id='widthlabel'] orphan-label
-svx/uiconfig/ui/sidebarline.ui://GtkLabel[@id='colorlabel'] orphan-label
-svx/uiconfig/ui/sidebarline.ui://GtkLabel[@id='translabel'] orphan-label
-svx/uiconfig/ui/sidebarline.ui://GtkSpinButton[@id='linetransparency:0%'] missing-label-for
+svx/uiconfig/ui/sidebarline.ui://GtkMenuToolButton[@id='SelectWidth'] button-no-label
 svx/uiconfig/ui/textcharacterspacingcontrol.ui://GtkSpinButton[@id='kerning:0pt'] no-labelled-by
diff --git a/svx/source/sidebar/line/LinePropertyPanelBase.cxx b/svx/source/sidebar/line/LinePropertyPanelBase.cxx
index ae583af16f4b..743a74e453ad 100644
--- a/svx/source/sidebar/line/LinePropertyPanelBase.cxx
+++ b/svx/source/sidebar/line/LinePropertyPanelBase.cxx
@@ -28,6 +28,7 @@
 #include <sfx2/objsh.hxx>
 #include <sfx2/bindings.hxx>
 #include <sfx2/dispatch.hxx>
+#include <sfx2/weldutils.hxx>
 #include <svx/xtable.hxx>
 #include <svx/xdash.hxx>
 #include <svx/drawitem.hxx>
@@ -52,119 +53,30 @@
 using namespace css;
 using namespace css::uno;
 
-const char UNO_SELECTWIDTH[] = ".uno:SelectWidth";
-
-namespace
-{
-
-void FillLineEndListBox(ListBox& rListBoxStart, ListBox& rListBoxEnd, const XLineEndList& rList, const BitmapEx& rBitmapZero)
-{
-    const sal_uInt32 nCount(rList.Count());
-    const OUString sNone(SvxResId(RID_SVXSTR_NONE));
-
-    rListBoxStart.SetUpdateMode(false);
-    rListBoxEnd.SetUpdateMode(false);
-
-    rListBoxStart.Clear();
-    rListBoxEnd.Clear();
-
-    for(sal_uInt32 i(0); i < nCount; i++)
-    {
-        const XLineEndEntry* pEntry = rList.GetLineEnd(i);
-        const BitmapEx aBitmap = const_cast< XLineEndList& >(rList).GetUiBitmap(i);
-
-        if(!aBitmap.IsEmpty())
-        {
-            BitmapEx aCopyStart(aBitmap);
-            BitmapEx aCopyEnd(aBitmap);
-
-            const Size aBmpSize(aCopyStart.GetSizePixel());
-            const tools::Rectangle aCropRectStart(Point(), Size(aBmpSize.Width() / 2, aBmpSize.Height()));
-            const tools::Rectangle aCropRectEnd(Point(aBmpSize.Width() / 2, 0), Size(aBmpSize.Width() / 2, aBmpSize.Height()));
-
-            aCopyStart.Crop(aCropRectStart);
-            rListBoxStart.InsertEntry(
-                pEntry->GetName(),
-                Image(aCopyStart));
-
-            aCopyEnd.Crop(aCropRectEnd);
-            rListBoxEnd.InsertEntry(
-                pEntry->GetName(),
-                Image(aCopyEnd));
-        }
-        else
-        {
-            rListBoxStart.InsertEntry(pEntry->GetName());
-            rListBoxEnd.InsertEntry(pEntry->GetName());
-        }
-    }
-
-    // add 'none' entries
-    if (!rBitmapZero.IsEmpty())
-    {
-        const Image aImg = rListBoxStart.GetEntryImage(0);
-        const Size aImgSize = aImg.GetSizePixel();
-
-        // take solid line bitmap and crop it to the size of
-        // line cap entries
-        BitmapEx aCopyZero( rBitmapZero );
-        const tools::Rectangle aCropZero( Point(), aImgSize );
-        aCopyZero.Crop( aCropZero );
-
-        // make it 1st item in list
-        rListBoxStart.InsertEntry( sNone, Image(aCopyZero), 0);
-        rListBoxEnd.InsertEntry( sNone, Image(aCopyZero), 0);
-    }
-    else
-    {
-       rListBoxStart.InsertEntry(sNone);
-       rListBoxEnd.InsertEntry(sNone);
-    }
-
-    rListBoxStart.SetUpdateMode(true);
-    rListBoxEnd.SetUpdateMode(true);
-}
-
-void FillLineStyleListBox(ListBox& rListBox, const XDashList& rList)
-{
-    const sal_uInt32 nCount(rList.Count());
-    rListBox.SetUpdateMode(false);
-
-    rListBox.Clear();
-
-    // entry for 'none'
-    rListBox.InsertEntry(rList.GetStringForUiNoLine());
-
-    // entry for solid line
-    rListBox.InsertEntry(rList.GetStringForUiSolidLine(),
-            Image( rList.GetBitmapForUISolidLine()));
-
-    for(sal_uInt32 i(0); i < nCount; i++)
-    {
-        const XDashEntry* pEntry = rList.GetDash(i);
-        const BitmapEx & rBitmap = const_cast< XDashList& >(rList).GetUiBitmap(i);
-
-        if(!rBitmap.IsEmpty())
-        {
-            rListBox.InsertEntry(pEntry->GetName(), Image(rBitmap));
-        }
-        else
-        {
-            rListBox.InsertEntry(pEntry->GetName());
-        }
-    }
-
-    rListBox.SetUpdateMode(true);
-}
-
-} // end of anonymous namespace
+const char SELECTWIDTH[] = "SelectWidth";
 
 namespace svx { namespace sidebar {
 
 LinePropertyPanelBase::LinePropertyPanelBase(
     vcl::Window* pParent,
     const uno::Reference<css::frame::XFrame>& rxFrame)
-:   PanelLayout(pParent, "LinePropertyPanel", "svx/ui/sidebarline.ui", rxFrame),
+:   PanelLayout(pParent, "LinePropertyPanel", "svx/ui/sidebarline.ui", rxFrame, true),
+    mxTBColor(m_xBuilder->weld_toolbar("color")),
+    mxColorDispatch(new ToolbarUnoDispatcher(*mxTBColor, rxFrame)),
+    mxFTWidth(m_xBuilder->weld_label("widthlabel")),
+    mxTBWidth(m_xBuilder->weld_toolbar("width")),
+    mxLBStyle(new SvxLineLB(m_xBuilder->weld_combo_box("linestyle"))),
+    mxFTTransparency(m_xBuilder->weld_label("translabel")),
+    mxMFTransparent(m_xBuilder->weld_metric_spin_button("linetransparency", FieldUnit::PERCENT)),
+    mxLBStart(new SvxLineEndLB(m_xBuilder->weld_combo_box("beginarrowstyle"))),
+    mxLBEnd(new SvxLineEndLB(m_xBuilder->weld_combo_box("endarrowstyle"))),
+    mxFTEdgeStyle(m_xBuilder->weld_label("cornerlabel")),
+    mxLBEdgeStyle(m_xBuilder->weld_combo_box("edgestyle")),
+    mxFTCapStyle(m_xBuilder->weld_label("caplabel")),
+    mxLBCapStyle(m_xBuilder->weld_combo_box("linecapstyle")),
+    mxGridLineProps(m_xBuilder->weld_widget("lineproperties")),
+    mxBoxArrowProps(m_xBuilder->weld_widget("arrowproperties")),
+    mxLineWidthPopup(new LineWidthPopup(mxTBWidth.get(), *this)),
     mpStyleItem(),
     mpDashItem(),
     mnTrans(0),
@@ -172,27 +84,10 @@ LinePropertyPanelBase::LinePropertyPanelBase(
     mnWidthCoreValue(0),
     mpStartItem(),
     mpEndItem(),
-    mxLineWidthPopup(VclPtr<LineWidthPopup>::Create(*this)),
-    maIMGNone(StockImage::Yes, BMP_NONE_ICON),
-    mpIMGWidthIcon(),
+    maIMGNone(BMP_NONE_ICON),
     mbWidthValuable(true),
     mbArrowSupported(true)
 {
-    get(mpFTWidth, "widthlabel");
-    get(mpTBWidth, "width");
-    get(mpTBColor, "color");
-    get(mpLBStyle, "linestyle");
-    get(mpFTTransparency, "translabel");
-    get(mpMFTransparent, "linetransparency");
-    get(mpLBStart, "beginarrowstyle");
-    get(mpLBEnd, "endarrowstyle");
-    get(mpFTEdgeStyle, "cornerlabel");
-    get(mpLBEdgeStyle, "edgestyle");
-    get(mpFTCapStyle, "caplabel");
-    get(mpLBCapStyle, "linecapstyle");
-    get(mpGridLineProps, "lineproperties");
-    get(mpBoxArrowProps, "arrowproperties");
-
     Initialize();
 }
 
@@ -203,62 +98,57 @@ LinePropertyPanelBase::~LinePropertyPanelBase()
 
 void LinePropertyPanelBase::dispose()
 {
-    mxLineWidthPopup.disposeAndClear();
-    mpFTWidth.clear();
-    mpTBWidth.clear();
-    mpTBColor.clear();
-    mpLBStyle.clear();
-    mpFTTransparency.clear();
-    mpMFTransparent.clear();
-    mpLBStart.clear();
-    mpLBEnd.clear();
-    mpFTEdgeStyle.clear();
-    mpLBEdgeStyle.clear();
-    mpFTCapStyle.clear();
-    mpLBCapStyle.clear();
-    mpGridLineProps.clear();
-    mpBoxArrowProps.clear();
+    mxLineWidthPopup.reset();
+    mxFTWidth.reset();
+    mxTBWidth.reset();
+    mxColorDispatch.reset();
+    mxTBColor.reset();
+    mxLBStyle.reset();
+    mxFTTransparency.reset();
+    mxMFTransparent.reset();
+    mxLBStart.reset();
+    mxLBEnd.reset();
+    mxFTEdgeStyle.reset();
+    mxLBEdgeStyle.reset();
+    mxFTCapStyle.reset();
+    mxLBCapStyle.reset();
+    mxGridLineProps.reset();
+    mxBoxArrowProps.reset();
 
     PanelLayout::dispose();
 }
 
 void LinePropertyPanelBase::Initialize()
 {
-    mpIMGWidthIcon.reset(new Image[8]);
-    mpIMGWidthIcon[0] = Image(StockImage::Yes, BMP_WIDTH1_ICON);
-    mpIMGWidthIcon[1] = Image(StockImage::Yes, BMP_WIDTH2_ICON);
-    mpIMGWidthIcon[2] = Image(StockImage::Yes, BMP_WIDTH3_ICON);
-    mpIMGWidthIcon[3] = Image(StockImage::Yes, BMP_WIDTH4_ICON);
-    mpIMGWidthIcon[4] = Image(StockImage::Yes, BMP_WIDTH5_ICON);
-    mpIMGWidthIcon[5] = Image(StockImage::Yes, BMP_WIDTH6_ICON);
-    mpIMGWidthIcon[6] = Image(StockImage::Yes, BMP_WIDTH7_ICON);
-    mpIMGWidthIcon[7] = Image(StockImage::Yes, BMP_WIDTH8_ICON);
+    mxTBWidth->set_item_popover(SELECTWIDTH, mxLineWidthPopup->getTopLevel());
+
+    maIMGWidthIcon[0] = BMP_WIDTH1_ICON;
+    maIMGWidthIcon[1] = BMP_WIDTH2_ICON;
+    maIMGWidthIcon[2] = BMP_WIDTH3_ICON;
+    maIMGWidthIcon[3] = BMP_WIDTH4_ICON;
+    maIMGWidthIcon[4] = BMP_WIDTH5_ICON;
+    maIMGWidthIcon[5] = BMP_WIDTH6_ICON;
+    maIMGWidthIcon[6] = BMP_WIDTH7_ICON;
+    maIMGWidthIcon[7] = BMP_WIDTH8_ICON;
 
     FillLineStyleList();
     SelectLineStyle();
-    mpLBStyle->SetSelectHdl( LINK( this, LinePropertyPanelBase, ChangeLineStyleHdl ) );
-    mpLBStyle->AdaptDropDownLineCountToMaximum();
+    mxLBStyle->connect_changed( LINK( this, LinePropertyPanelBase, ChangeLineStyleHdl ) );
 
-    const sal_uInt16 nIdWidth = mpTBWidth->GetItemId(UNO_SELECTWIDTH);
-    mpTBWidth->SetItemImage(nIdWidth, mpIMGWidthIcon[0]);
-    mpTBWidth->SetItemBits( nIdWidth, mpTBWidth->GetItemBits( nIdWidth ) | ToolBoxItemBits::DROPDOWNONLY );
-    Link<ToolBox *, void> aLink2 = LINK(this, LinePropertyPanelBase, ToolboxWidthSelectHdl);
-    mpTBWidth->SetDropdownClickHdl ( aLink2 );
-    mpTBWidth->SetSelectHdl ( aLink2 );
+    mxTBWidth->set_item_icon_name(SELECTWIDTH, maIMGWidthIcon[0]);
+    mxTBWidth->connect_clicked(LINK(this, LinePropertyPanelBase, ToolboxWidthSelectHdl));
 
     FillLineEndList();
     SelectEndStyle(true);
     SelectEndStyle(false);
-    mpLBStart->SetSelectHdl( LINK( this, LinePropertyPanelBase, ChangeStartHdl ) );
-    mpLBStart->AdaptDropDownLineCountToMaximum();
-    mpLBEnd->SetSelectHdl( LINK( this, LinePropertyPanelBase, ChangeEndHdl ) );
-    mpLBEnd->AdaptDropDownLineCountToMaximum();
+    mxLBStart->connect_changed( LINK( this, LinePropertyPanelBase, ChangeStartHdl ) );
+    mxLBEnd->connect_changed( LINK( this, LinePropertyPanelBase, ChangeEndHdl ) );
 
-    mpMFTransparent->SetModifyHdl(LINK(this, LinePropertyPanelBase, ChangeTransparentHdl));
+    mxMFTransparent->connect_value_changed(LINK(this, LinePropertyPanelBase, ChangeTransparentHdl));
 
-    mpLBEdgeStyle->SetSelectHdl( LINK( this, LinePropertyPanelBase, ChangeEdgeStyleHdl ) );
+    mxLBEdgeStyle->connect_changed( LINK( this, LinePropertyPanelBase, ChangeEdgeStyleHdl ) );
 
-    mpLBCapStyle->SetSelectHdl( LINK( this, LinePropertyPanelBase, ChangeCapStyleHdl ) );
+    mxLBCapStyle->connect_changed( LINK( this, LinePropertyPanelBase, ChangeCapStyleHdl ) );
 }
 
 void LinePropertyPanelBase::DataChanged(const DataChangedEvent& /*rEvent*/)
@@ -269,11 +159,11 @@ void LinePropertyPanelBase::updateLineStyle(bool bDisabled, bool bSetOrDefault,
 {
     if(bDisabled)
     {
-        mpLBStyle->Disable();
+        mxLBStyle->set_sensitive(false);
     }
     else
     {
-        mpLBStyle->Enable();
+        mxLBStyle->set_sensitive(true);
     }
 
     if(bSetOrDefault)
@@ -295,11 +185,11 @@ void LinePropertyPanelBase::updateLineDash(bool bDisabled, bool bSetOrDefault, c
 {
     if(bDisabled)
     {
-        mpLBStyle->Disable();
+        mxLBStyle->set_sensitive(false);
     }
     else
     {
-        mpLBStyle->Enable();
+        mxLBStyle->set_sensitive(true);
     }
 
     if(bSetOrDefault)
@@ -322,13 +212,13 @@ void LinePropertyPanelBase::updateLineTransparence(bool bDisabled, bool bSetOrDe
 {
     if(bDisabled)
     {
-        mpFTTransparency->Disable();
-        mpMFTransparent->Disable();
+        mxFTTransparency->set_sensitive(false);
+        mxMFTransparent->set_sensitive(false);
     }
     else
     {
-        mpFTTransparency->Enable();
-        mpMFTransparent->Enable();
+        mxFTTransparency->set_sensitive(true);
+        mxMFTransparent->set_sensitive(true);
     }
 
     if(bSetOrDefault)
@@ -336,13 +226,13 @@ void LinePropertyPanelBase::updateLineTransparence(bool bDisabled, bool bSetOrDe
         if (const XLineTransparenceItem* pItem = dynamic_cast<const XLineTransparenceItem*>(pState))
         {
             mnTrans = pItem->GetValue();
-            mpMFTransparent->SetValue(mnTrans);
+            mxMFTransparent->set_value(mnTrans, FieldUnit::PERCENT);
             return;
         }
     }
 
-    mpMFTransparent->SetValue(0);//add
-    mpMFTransparent->SetText(OUString());
+    mxMFTransparent->set_value(0, FieldUnit::PERCENT);//add
+    mxMFTransparent->set_text(OUString());
 }
 
 void LinePropertyPanelBase::updateLineWidth(bool bDisabled, bool bSetOrDefault,
@@ -350,13 +240,13 @@ void LinePropertyPanelBase::updateLineWidth(bool bDisabled, bool bSetOrDefault,
 {
     if(bDisabled)
     {
-        mpTBWidth->Disable();
-        mpFTWidth->Disable();
+        mxTBWidth->set_sensitive(false);
+        mxFTWidth->set_sensitive(false);
     }
     else
     {
-        mpTBWidth->Enable();
-        mpFTWidth->Enable();
+        mxTBWidth->set_sensitive(true);
+        mxFTWidth->set_sensitive(true);
     }
 
     if(bSetOrDefault)
@@ -379,12 +269,12 @@ void LinePropertyPanelBase::updateLineStart(bool bDisabled, bool bSetOrDefault,
 {
     if(bDisabled)
     {
-        mpLBStart->Disable();
+        mxLBStart->set_sensitive(false);
     }
     else
     {
         if (mbArrowSupported)
-            mpLBStart->Enable();
+            mxLBStart->set_sensitive(true);
     }
 
     if(bSetOrDefault && pItem)
@@ -403,12 +293,12 @@ void LinePropertyPanelBase::updateLineEnd(bool bDisabled, bool bSetOrDefault,
 {
     if(bDisabled)
     {
-        mpLBEnd->Disable();
+        mxLBEnd->set_sensitive(false);
     }
     else
     {
         if (mbArrowSupported)
-            mpLBEnd->Enable();
+            mxLBEnd->set_sensitive(true);
     }
 
     if(bSetOrDefault && pItem)
@@ -427,13 +317,13 @@ void LinePropertyPanelBase::updateLineJoint(bool bDisabled, bool bSetOrDefault,
 {
     if(bDisabled)
     {
-        mpLBEdgeStyle->Disable();
-        mpFTEdgeStyle->Disable();
+        mxLBEdgeStyle->set_sensitive(false);
+        mxFTEdgeStyle->set_sensitive(false);
     }
     else
     {
-        mpLBEdgeStyle->Enable();
-        mpFTEdgeStyle->Enable();
+        mxLBEdgeStyle->set_sensitive(true);
+        mxFTEdgeStyle->set_sensitive(true);
     }
 
     if(bSetOrDefault)
@@ -472,13 +362,13 @@ void LinePropertyPanelBase::updateLineJoint(bool bDisabled, bool bSetOrDefault,
 
             if(nEntryPos)
             {
-                mpLBEdgeStyle->SelectEntryPos(nEntryPos - 1);
+                mxLBEdgeStyle->set_active(nEntryPos - 1);
                 return;
             }
         }
     }
 
-    mpLBEdgeStyle->SetNoSelection();
+    mxLBEdgeStyle->set_active(-1);
 }
 
 void LinePropertyPanelBase::updateLineCap(bool bDisabled, bool bSetOrDefault,
@@ -486,13 +376,13 @@ void LinePropertyPanelBase::updateLineCap(bool bDisabled, bool bSetOrDefault,
 {
     if(bDisabled)
     {
-        mpLBCapStyle->Disable();
-        mpFTCapStyle->Disable();
+        mxLBCapStyle->set_sensitive(false);
+        mxFTCapStyle->set_sensitive(false);
     }
     else
     {
-        mpLBCapStyle->Enable();
-        mpLBCapStyle->Enable();
+        mxLBCapStyle->set_sensitive(true);
+        mxLBCapStyle->set_sensitive(true);
     }
 
     if(bSetOrDefault)
@@ -525,20 +415,20 @@ void LinePropertyPanelBase::updateLineCap(bool bDisabled, bool bSetOrDefault,
 
             if(nEntryPos)
             {
-                mpLBCapStyle->SelectEntryPos(nEntryPos - 1);
+                mxLBCapStyle->set_active(nEntryPos - 1);
                 return;
             }
         }
     }
 
-    mpLBCapStyle->SetNoSelection();
+    mxLBCapStyle->set_active(-1);
 }
 
-IMPL_LINK_NOARG(LinePropertyPanelBase, ChangeLineStyleHdl, ListBox&, void)
+IMPL_LINK_NOARG(LinePropertyPanelBase, ChangeLineStyleHdl, weld::ComboBox&, void)
 {
-    const sal_Int32 nPos(mpLBStyle->GetSelectedEntryPos());
+    const sal_Int32 nPos(mxLBStyle->get_active());
 
-    if(LISTBOX_ENTRY_NOTFOUND != nPos && mpLBStyle->IsValueChangedFromSaved())
+    if (nPos != -1 && mxLBStyle->get_value_changed_from_saved())
     {
         if(0 == nPos)
         {
@@ -572,39 +462,39 @@ IMPL_LINK_NOARG(LinePropertyPanelBase, ChangeLineStyleHdl, ListBox&, void)
     ActivateControls();
 }
 
-IMPL_LINK_NOARG(LinePropertyPanelBase, ChangeStartHdl, ListBox&, void)
+IMPL_LINK_NOARG(LinePropertyPanelBase, ChangeStartHdl, weld::ComboBox&, void)
 {
-    sal_Int32  nPos = mpLBStart->GetSelectedEntryPos();
-    if( nPos != LISTBOX_ENTRY_NOTFOUND && mpLBStart->IsValueChangedFromSaved() )
+    sal_Int32  nPos = mxLBStart->get_active();
+    if (nPos != -1 && mxLBStart->get_value_changed_from_saved())
     {
         std::unique_ptr<XLineStartItem> pItem;
         if( nPos == 0 )
             pItem.reset(new XLineStartItem());
         else if( mxLineEndList.is() && mxLineEndList->Count() > static_cast<long>( nPos - 1 ) )
-            pItem.reset(new XLineStartItem( mpLBStart->GetSelectedEntry(),mxLineEndList->GetLineEnd( nPos - 1 )->GetLineEnd() ));
+            pItem.reset(new XLineStartItem( mxLBStart->get_active_text(),mxLineEndList->GetLineEnd( nPos - 1 )->GetLineEnd() ));
         setLineStartStyle(pItem.get());
     }
 }
 
-IMPL_LINK_NOARG(LinePropertyPanelBase, ChangeEndHdl, ListBox&, void)
+IMPL_LINK_NOARG(LinePropertyPanelBase, ChangeEndHdl, weld::ComboBox&, void)
 {
-    sal_Int32  nPos = mpLBEnd->GetSelectedEntryPos();
-    if( nPos != LISTBOX_ENTRY_NOTFOUND && mpLBEnd->IsValueChangedFromSaved() )
+    sal_Int32  nPos = mxLBEnd->get_active();
+    if (nPos != -1 && mxLBEnd->get_value_changed_from_saved())
     {
         std::unique_ptr<XLineEndItem> pItem;
         if( nPos == 0 )
             pItem.reset(new XLineEndItem());
         else if( mxLineEndList.is() && mxLineEndList->Count() > static_cast<long>( nPos - 1 ) )
-            pItem.reset(new XLineEndItem( mpLBEnd->GetSelectedEntry(), mxLineEndList->GetLineEnd( nPos - 1 )->GetLineEnd() ));
+            pItem.reset(new XLineEndItem( mxLBEnd->get_active_text(), mxLineEndList->GetLineEnd( nPos - 1 )->GetLineEnd() ));
         setLineEndStyle(pItem.get());
     }
 }
 
-IMPL_LINK_NOARG(LinePropertyPanelBase, ChangeEdgeStyleHdl, ListBox&, void)
+IMPL_LINK_NOARG(LinePropertyPanelBase, ChangeEdgeStyleHdl, weld::ComboBox&, void)
 {
-    const sal_Int32 nPos(mpLBEdgeStyle->GetSelectedEntryPos());
+    const sal_Int32 nPos(mxLBEdgeStyle->get_active());
 
-    if(LISTBOX_ENTRY_NOTFOUND != nPos && mpLBEdgeStyle->IsValueChangedFromSaved())
+    if (nPos != -1 && mxLBEdgeStyle->get_value_changed_from_saved())
     {
         std::unique_ptr<XLineJointItem> pItem;
 
@@ -636,11 +526,11 @@ IMPL_LINK_NOARG(LinePropertyPanelBase, ChangeEdgeStyleHdl, ListBox&, void)
     }
 }
 
-IMPL_LINK_NOARG(LinePropertyPanelBase, ChangeCapStyleHdl, ListBox&, void)
+IMPL_LINK_NOARG(LinePropertyPanelBase, ChangeCapStyleHdl, weld::ComboBox&, void)
 {
-    const sal_Int32 nPos(mpLBCapStyle->GetSelectedEntryPos());
+    const sal_Int32 nPos(mxLBCapStyle->get_active());
 
-    if(LISTBOX_ENTRY_NOTFOUND != nPos && mpLBCapStyle->IsValueChangedFromSaved())
+    if (nPos != -1 && mxLBCapStyle->get_value_changed_from_saved())
     {
         std::unique_ptr<XLineCapItem> pItem;
 
@@ -667,18 +557,19 @@ IMPL_LINK_NOARG(LinePropertyPanelBase, ChangeCapStyleHdl, ListBox&, void)
     }
 }
 
-IMPL_LINK(LinePropertyPanelBase, ToolboxWidthSelectHdl,ToolBox*, pToolBox, void)
+IMPL_LINK_NOARG(LinePropertyPanelBase, ToolboxWidthSelectHdl, const OString&, void)
 {
-    if (pToolBox->GetItemCommand(pToolBox->GetCurItemId()) == UNO_SELECTWIDTH)
-    {
-        mxLineWidthPopup->SetWidthSelect(mnWidthCoreValue, mbWidthValuable, meMapUnit);
-        mxLineWidthPopup->StartPopupMode(pToolBox, FloatWinPopupFlags::GrabFocus);
-    }
+    mxTBWidth->set_menu_item_active(SELECTWIDTH, !mxTBWidth->get_menu_item_active(SELECTWIDTH));
+}
+
+void LinePropertyPanelBase::EndLineWidthPopup()
+{
+    mxTBWidth->set_menu_item_active(SELECTWIDTH, false);
 }
 
-IMPL_LINK_NOARG( LinePropertyPanelBase, ChangeTransparentHdl, Edit&, void )
+IMPL_LINK_NOARG( LinePropertyPanelBase, ChangeTransparentHdl, weld::MetricSpinButton&, void )
 {
-    sal_uInt16 nVal = static_cast<sal_uInt16>(mpMFTransparent->GetValue());
+    sal_uInt16 nVal = static_cast<sal_uInt16>(mxMFTransparent->get_value(FieldUnit::PERCENT));
     XLineTransparenceItem aItem( nVal );
 
     setLineTransparency(aItem);
@@ -686,41 +577,38 @@ IMPL_LINK_NOARG( LinePropertyPanelBase, ChangeTransparentHdl, Edit&, void )
 
 void LinePropertyPanelBase::SetWidthIcon(int n)
 {
-    const sal_uInt16 nIdWidth = mpTBWidth->GetItemId(UNO_SELECTWIDTH);
     if (n == 0)
-        mpTBWidth->SetItemImage( nIdWidth, maIMGNone);
+        mxTBWidth->set_item_icon_name(SELECTWIDTH, maIMGNone);
     else
-        mpTBWidth->SetItemImage( nIdWidth, mpIMGWidthIcon[n-1]);
+        mxTBWidth->set_item_icon_name(SELECTWIDTH, maIMGWidthIcon[n-1]);
 }
 
 void LinePropertyPanelBase::SetWidthIcon()
 {
     if(!mbWidthValuable)
     {
-        const sal_uInt16 nIdWidth = mpTBWidth->GetItemId(UNO_SELECTWIDTH);
-        mpTBWidth->SetItemImage(nIdWidth, maIMGNone);
+        mxTBWidth->set_item_icon_name(SELECTWIDTH, maIMGNone);
         return;
     }
 
     long nVal = LogicToLogic(mnWidthCoreValue * 10, meMapUnit, MapUnit::MapPoint);
-    const sal_uInt16 nIdWidth = mpTBWidth->GetItemId(UNO_SELECTWIDTH);
 
     if(nVal <= 6)
-        mpTBWidth->SetItemImage( nIdWidth, mpIMGWidthIcon[0]);
+        mxTBWidth->set_item_icon_name(SELECTWIDTH, maIMGWidthIcon[0]);
     else if (nVal <= 9)
-        mpTBWidth->SetItemImage( nIdWidth, mpIMGWidthIcon[1]);
+        mxTBWidth->set_item_icon_name(SELECTWIDTH, maIMGWidthIcon[1]);
     else if (nVal <= 12)
-        mpTBWidth->SetItemImage( nIdWidth, mpIMGWidthIcon[2]);
+        mxTBWidth->set_item_icon_name(SELECTWIDTH, maIMGWidthIcon[2]);
     else if (nVal <= 19)
-        mpTBWidth->SetItemImage( nIdWidth, mpIMGWidthIcon[3]);
+        mxTBWidth->set_item_icon_name(SELECTWIDTH, maIMGWidthIcon[3]);
     else if (nVal <= 26)
-        mpTBWidth->SetItemImage( nIdWidth, mpIMGWidthIcon[4]);
+        mxTBWidth->set_item_icon_name(SELECTWIDTH, maIMGWidthIcon[4]);
     else if (nVal <= 37)
-        mpTBWidth->SetItemImage( nIdWidth, mpIMGWidthIcon[5]);
+        mxTBWidth->set_item_icon_name(SELECTWIDTH, maIMGWidthIcon[5]);
     else if (nVal <= 52)
-        mpTBWidth->SetItemImage( nIdWidth, mpIMGWidthIcon[6]);
+        mxTBWidth->set_item_icon_name(SELECTWIDTH, maIMGWidthIcon[6]);
     else
-        mpTBWidth->SetItemImage( nIdWidth, mpIMGWidthIcon[7]);
+        mxTBWidth->set_item_icon_name(SELECTWIDTH, maIMGWidthIcon[7]);
 
 }
 
@@ -728,6 +616,7 @@ void LinePropertyPanelBase::SetWidth(long nWidth)
 {
     mnWidthCoreValue = nWidth;
     mbWidthValuable = true;
+    mxLineWidthPopup->SetWidthSelect(mnWidthCoreValue, mbWidthValuable, meMapUnit);
 }
 
 void  LinePropertyPanelBase::FillLineEndList()
@@ -735,26 +624,25 @@ void  LinePropertyPanelBase::FillLineEndList()
     SfxObjectShell* pSh = SfxObjectShell::Current();
     if ( pSh && pSh->GetItem( SID_LINEEND_LIST ) )
     {
-        mpLBStart->Enable();
+        mxLBStart->set_sensitive(true);
         mxLineEndList = pSh->GetItem( SID_LINEEND_LIST )->GetLineEndList();
 
         if (mxLineEndList.is())
         {
-            BitmapEx aZeroBitmap;
-
-            if (mxLineStyleList.is())
-                aZeroBitmap = mxLineStyleList->GetBitmapForUISolidLine();
-
-            FillLineEndListBox(*mpLBStart, *mpLBEnd, *mxLineEndList, aZeroBitmap);
+            OUString sNone(SvxResId(RID_SVXSTR_NONE));
+            mxLBStart->append_text(sNone);
+            mxLBStart->Fill(mxLineEndList, true);
+            mxLBEnd->append_text(sNone);
+            mxLBEnd->Fill(mxLineEndList, false);
         }
 
-        mpLBStart->SelectEntryPos(0);
-        mpLBEnd->SelectEntryPos(0);
+        mxLBStart->set_active(0);
+        mxLBEnd->set_active(0);
     }
     else
     {
-        mpLBStart->Disable();
-        mpLBEnd->Disable();
+        mxLBStart->set_sensitive(false);
+        mxLBEnd->set_sensitive(false);
     }
 }
 
@@ -763,19 +651,19 @@ void  LinePropertyPanelBase::FillLineStyleList()
     SfxObjectShell* pSh = SfxObjectShell::Current();
     if ( pSh && pSh->GetItem( SID_DASH_LIST ) )
     {
-        mpLBStyle->Enable();
+        mxLBStyle->set_sensitive(true);
         mxLineStyleList = pSh->GetItem( SID_DASH_LIST )->GetDashList();
 
         if (mxLineStyleList.is())
         {
-            FillLineStyleListBox(*mpLBStyle, *mxLineStyleList);
+            mxLBStyle->Fill(mxLineStyleList);
         }
 
-        mpLBStyle->SelectEntryPos(0);
+        mxLBStyle->set_active(0);
     }
     else
     {
-        mpLBStyle->Disable();
+        mxLBStyle->set_sensitive(false);
     }
 }
 
@@ -783,8 +671,8 @@ void LinePropertyPanelBase::SelectLineStyle()
 {
     if (!mpStyleItem || !mpDashItem)
     {
-        mpLBStyle->SetNoSelection();
-        mpLBStyle->Disable();
+        mxLBStyle->set_active(-1);
+        mxLBStyle->set_sensitive(false);
         return;
     }
 
@@ -796,7 +684,7 @@ void LinePropertyPanelBase::SelectLineStyle()
         case drawing::LineStyle_NONE:
             break;
         case drawing::LineStyle_SOLID:
-            mpLBStyle->SelectEntryPos(1);
+            mxLBStyle->set_active(1);
             bSelected = true;
             break;
         default:
@@ -809,7 +697,7 @@ void LinePropertyPanelBase::SelectLineStyle()
                     const XDash& rEntry = pEntry->GetDash();
                     if(rDash == rEntry)
                     {
-                        mpLBStyle->SelectEntryPos(a + 2);
+                        mxLBStyle->set_active(a + 2);
                         bSelected = true;
                     }
                 }
@@ -818,7 +706,7 @@ void LinePropertyPanelBase::SelectLineStyle()
     }
 
     if(!bSelected)
-        mpLBStyle->SelectEntryPos( 0 );
+        mxLBStyle->set_active( 0 );
 
     ActivateControls();
 }
@@ -831,8 +719,8 @@ void LinePropertyPanelBase::SelectEndStyle(bool bStart)
     {
         if (!mpStartItem)
         {
-            mpLBStart->SetNoSelection();
-            mpLBStart->Disable();
+            mxLBStart->set_active(-1);
+            mxLBStart->set_sensitive(false);
             return;
         }
 
@@ -845,7 +733,7 @@ void LinePropertyPanelBase::SelectEndStyle(bool bStart)
                 const basegfx::B2DPolyPolygon& rEntryPolygon = pEntry->GetLineEnd();
                 if(rItemPolygon == rEntryPolygon)
                 {
-                    mpLBStart->SelectEntryPos(a + 1);
+                    mxLBStart->set_active(a + 1);
                     bSelected = true;
                 }
             }
@@ -853,15 +741,15 @@ void LinePropertyPanelBase::SelectEndStyle(bool bStart)
 
         if(!bSelected)
         {
-            mpLBStart->SelectEntryPos( 0 );
+            mxLBStart->set_active( 0 );
         }
     }
     else
     {
         if (!mpEndItem)
         {
-            mpLBEnd->SetNoSelection();
-            mpLBEnd->Disable();
+            mxLBEnd->set_active(-1);
+            mxLBEnd->set_sensitive(false);
             return;
         }
 
@@ -874,7 +762,7 @@ void LinePropertyPanelBase::SelectEndStyle(bool bStart)
                 const basegfx::B2DPolyPolygon& rEntryPolygon = pEntry->GetLineEnd();
                 if(rItemPolygon == rEntryPolygon)
                 {
-                    mpLBEnd->SelectEntryPos(a + 1);
+                    mxLBEnd->set_active(a + 1);
                     bSelected = true;
                 }
             }
@@ -882,25 +770,26 @@ void LinePropertyPanelBase::SelectEndStyle(bool bStart)
 
         if(!bSelected)
         {
-            mpLBEnd->SelectEntryPos( 0 );
+            mxLBEnd->set_active( 0 );
         }
     }
 }
 
 void LinePropertyPanelBase::ActivateControls()
 {
-    const sal_Int32 nPos(mpLBStyle->GetSelectedEntryPos());
+    const sal_Int32 nPos(mxLBStyle->get_active());
     bool bLineStyle( nPos != 0 );
 
-    mpGridLineProps->Enable( bLineStyle );
-    mpBoxArrowProps->Enable( bLineStyle );
-    mpLBStart->Enable( bLineStyle && mbArrowSupported );
-    mpLBEnd->Enable( bLineStyle && mbArrowSupported );
+    mxGridLineProps->set_sensitive( bLineStyle );
+    mxBoxArrowProps->set_sensitive( bLineStyle );
+    mxLBStart->set_sensitive( bLineStyle && mbArrowSupported );
+    mxLBEnd->set_sensitive( bLineStyle && mbArrowSupported );
 }
 
 void LinePropertyPanelBase::setMapUnit(MapUnit eMapUnit)
 {
     meMapUnit = eMapUnit;
+    mxLineWidthPopup->SetWidthSelect(mnWidthCoreValue, mbWidthValuable, meMapUnit);
 }
 
 void LinePropertyPanelBase::disableArrowHead()
diff --git a/svx/source/sidebar/line/LineWidthPopup.cxx b/svx/source/sidebar/line/LineWidthPopup.cxx
index d4964d3642e6..206d41635a12 100644
--- a/svx/source/sidebar/line/LineWidthPopup.cxx
+++ b/svx/source/sidebar/line/LineWidthPopup.cxx
@@ -30,9 +30,8 @@
 
 namespace svx { namespace sidebar {
 
-LineWidthPopup::LineWidthPopup(LinePropertyPanelBase& rParent)
-    : FloatingWindow(&rParent, "FloatingLineProperty", "svx/ui/floatinglineproperty.ui")
-    , m_rParent(rParent)
+LineWidthPopup::LineWidthPopup(weld::Widget* pParent, LinePropertyPanelBase& rParent)
+    : m_rParent(rParent)
     , m_sPt(SvxResId(RID_SVXSTR_PT))
     , m_eMapUnit(MapUnit::MapTwip)
     , m_bVSFocus(true)
@@ -40,19 +39,15 @@ LineWidthPopup::LineWidthPopup(LinePropertyPanelBase& rParent)
     , m_nCustomWidth(0)
     , m_aIMGCus(StockImage::Yes, RID_SVXBMP_WIDTH_CUSTOM)
     , m_aIMGCusGray(StockImage::Yes, RID_SVXBMP_WIDTH_CUSTOM_GRAY)
+    , m_xBuilder(Application::CreateBuilder(pParent, "svx/ui/floatinglineproperty.ui"))
+    , m_xTopLevel(m_xBuilder->weld_container("FloatingLineProperty"))
+    , m_xMFWidth(m_xBuilder->weld_metric_spin_button("spin", FieldUnit::POINT))
+    , m_xVSWidth(new LineWidthValueSet())
+    , m_xVSWidthWin(new weld::CustomWeld(*m_xBuilder, "lineset", *m_xVSWidth))
 {
-    get(m_xMFWidth, "spin");
+    m_xTopLevel->connect_focus_in(LINK(this, LineWidthPopup, FocusHdl));
 
-    get(m_xBox, "box");
-
-    m_xVSWidth = VclPtr<LineWidthValueSet>::Create(m_xBox);
-
-    // 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.
-        m_xMFWidth->RequestDoubleBuffering(true);
-
-    m_xVSWidth->SetStyle(m_xVSWidth->GetStyle()| WB_3DLOOK |  WB_NO_DIRECTSELECT);
+    m_xVSWidth->SetStyle(m_xVSWidth->GetStyle() | WB_3DLOOK |  WB_NO_DIRECTSELECT);
 
     maStrUnits[0] = "0.5";
     maStrUnits[1] = "0.8";
@@ -94,32 +89,20 @@ LineWidthPopup::LineWidthPopup(LinePropertyPanelBase& rParent)
     m_xVSWidth->SetSelItem(0);
 
     m_xVSWidth->SetSelectHdl(LINK(this, LineWidthPopup, VSSelectHdl));
-    m_xMFWidth->SetModifyHdl(LINK(this, LineWidthPopup, MFModifyHdl));
-
-    m_xVSWidth->StartSelection();
-    m_xVSWidth->Show();
-}
-
-void LineWidthPopup::dispose()
-{
-    m_xVSWidth.disposeAndClear();
-    m_xBox.clear();
-    m_xMFWidth.clear();
-    FloatingWindow::dispose();
+    m_xMFWidth->connect_value_changed(LINK(this, LineWidthPopup, MFModifyHdl));
 }
 
 LineWidthPopup::~LineWidthPopup()
 {
-    disposeOnce();
 }
 
-IMPL_LINK(LineWidthPopup, VSSelectHdl, ValueSet*, /*pControl*/, void)
+IMPL_LINK_NOARG(LineWidthPopup, VSSelectHdl, SvtValueSet*, void)
 {
     sal_uInt16 iPos = m_xVSWidth->GetSelectedItemId();
     if (iPos >= 1 && iPos <= 8)
     {
-        sal_IntPtr nVal = LogicToLogic(reinterpret_cast<sal_IntPtr>(m_xVSWidth->GetItemData( iPos )), MapUnit::MapPoint, m_eMapUnit);
-        nVal = m_xMFWidth->Denormalize(nVal);
+        sal_IntPtr nVal = OutputDevice::LogicToLogic(reinterpret_cast<sal_IntPtr>(m_xVSWidth->GetItemData( iPos )), MapUnit::MapPoint, m_eMapUnit);
+        nVal = m_xMFWidth->denormalize(nVal);
         XLineWidthItem aWidthItem( nVal );
         m_rParent.setLineWidth(aWidthItem);
         m_rParent.SetWidthIcon(iPos);
@@ -130,8 +113,8 @@ IMPL_LINK(LineWidthPopup, VSSelectHdl, ValueSet*, /*pControl*/, void)
         //modified
         if (m_bCustom)
         {
-            long nVal = LogicToLogic(m_nCustomWidth , MapUnit::MapPoint, m_eMapUnit);
-            nVal = m_xMFWidth->Denormalize(nVal);
+            long nVal = OutputDevice::LogicToLogic(m_nCustomWidth , MapUnit::MapPoint, m_eMapUnit);
+            nVal = m_xMFWidth->denormalize(nVal);
             XLineWidthItem aWidthItem( nVal );
             m_rParent.setLineWidth(aWidthItem);
             m_rParent.SetWidth(nVal);
@@ -141,30 +124,27 @@ IMPL_LINK(LineWidthPopup, VSSelectHdl, ValueSet*, /*pControl*/, void)
             m_xVSWidth->SetNoSelection();     //add , set no selection and keep the last select item
             m_xVSWidth->SetFormat();
             m_xVSWidth->Invalidate();
-            Invalidate();
-            m_xVSWidth->StartSelection();
         }
         //modify end
     }
+
     if ((iPos >= 1 && iPos <= 8) || (iPos == 9 && m_bCustom)) //add
     {
-        EndPopupMode();
+        m_rParent.EndLineWidthPopup();
     }
 }
 
-IMPL_LINK(LineWidthPopup, MFModifyHdl, Edit&, /*rControl*/, void)
+IMPL_LINK_NOARG(LineWidthPopup, MFModifyHdl, weld::MetricSpinButton&, void)
 {
     if (m_xVSWidth->GetSelItem())
     {
         m_xVSWidth->SetSelItem(0);
         m_xVSWidth->SetFormat();
         m_xVSWidth->Invalidate();
-        Invalidate();
-        m_xVSWidth->StartSelection();
     }
-    long nTmp = static_cast<long>(m_xMFWidth->GetValue());
-    long nVal = LogicToLogic( nTmp, MapUnit::MapPoint, m_eMapUnit );
-    sal_Int32 nNewWidth = static_cast<short>(m_xMFWidth->Denormalize( nVal ));
+    long nTmp = static_cast<long>(m_xMFWidth->get_value(FieldUnit::NONE));
+    long nVal = OutputDevice::LogicToLogic( nTmp, MapUnit::MapPoint, m_eMapUnit );
+    sal_Int32 nNewWidth = static_cast<short>(m_xMFWidth->denormalize( nVal ));
     XLineWidthItem aWidthItem(nNewWidth);
     m_rParent.setLineWidth(aWidthItem);
 }
@@ -203,15 +183,15 @@ void LineWidthPopup::SetWidthSelect(long lValue, bool bValuable, MapUnit eMapUni
     if (bValuable)
     {
         sal_Int64 nVal = OutputDevice::LogicToLogic(lValue, eMapUnit, MapUnit::Map100thMM );
-        nVal = m_xMFWidth->Normalize(nVal);
-        m_xMFWidth->SetValue( nVal, FieldUnit::MM_100TH );
+        nVal = m_xMFWidth->normalize(nVal);
+        m_xMFWidth->set_value( nVal, FieldUnit::MM_100TH );
     }
     else
     {
-        m_xMFWidth->SetText( "" );
+        m_xMFWidth->set_text( "" );
     }
 
-    OUString strCurrValue = m_xMFWidth->GetText();
+    OUString strCurrValue = m_xMFWidth->get_text();
     sal_uInt16 i = 0;
     for(; i < 8; i++)
     {
@@ -230,12 +210,14 @@ void LineWidthPopup::SetWidthSelect(long lValue, bool bValuable, MapUnit eMapUni
 
     m_xVSWidth->SetFormat();
     m_xVSWidth->Invalidate();
-    m_xVSWidth->StartSelection();
+}
 
+IMPL_LINK_NOARG(LineWidthPopup, FocusHdl, weld::Widget&, void)
+{
     if (m_bVSFocus)
         m_xVSWidth->GrabFocus();
     else
-        m_xMFWidth->GrabFocus();
+        m_xMFWidth->grab_focus();
 }
 
 } } // end of namespace svx::sidebar
diff --git a/svx/source/sidebar/line/LineWidthValueSet.cxx b/svx/source/sidebar/line/LineWidthValueSet.cxx
index 0de8c3637a09..ce3a6ca7b1e1 100644
--- a/svx/source/sidebar/line/LineWidthValueSet.cxx
+++ b/svx/source/sidebar/line/LineWidthValueSet.cxx
@@ -19,13 +19,14 @@
 #include "LineWidthValueSet.hxx"
 
 #include <i18nlangtag/mslangid.hxx>
-#include <vcl/settings.hxx>
 #include <vcl/event.hxx>
+#include <vcl/settings.hxx>
+#include <vcl/svapp.hxx>
 
 namespace svx { namespace sidebar {
 
-LineWidthValueSet::LineWidthValueSet(vcl::Window* pParent)
-    : ValueSet(pParent, WB_TABSTOP)
+LineWidthValueSet::LineWidthValueSet()
+    : SvtValueSet(nullptr)
     , nSelItem(0)
     , bCusEnable(false)
 {
@@ -35,12 +36,11 @@ void LineWidthValueSet::Resize()
 {
     SetColCount();
     SetLineCount(9);
-    ValueSet::Resize();
+    SvtValueSet::Resize();
 }
 
 LineWidthValueSet::~LineWidthValueSet()
 {
-    disposeOnce();
 }
 
 void LineWidthValueSet::SetUnit(std::array<OUString,9> const & strUnits)
@@ -97,19 +97,19 @@ void  LineWidthValueSet::UserDraw( const UserDrawEvent& rUDEvt )
 
     Point aLineStart(aBLPos.X() + 5,            aBLPos.Y() + ( nRectHeight - nItemId )/2);
     Point aLineEnd(aBLPos.X() + nRectWidth * 7 / 9 - 10, aBLPos.Y() + ( nRectHeight - nItemId )/2);
-    if(nItemId == 9)
+    if (nItemId == 9)
     {
         Point aImgStart(aBLPos.X() + 5,         aBLPos.Y() + ( nRectHeight - 23 ) / 2);
         pDev->DrawImage(aImgStart, imgCus);
-    //  Point aStart(aImgStart.X() + 14 + 20 , aBLPos.Y() + nRectHeight/6);
+
         tools::Rectangle aStrRect = aRect;
         aStrRect.AdjustTop(nRectHeight/6 );
         aStrRect.AdjustBottom( -(nRectHeight/6) );
         aStrRect.AdjustLeft(imgCus.GetSizePixel().Width() + 20 );
         if(bCusEnable)
-            aFont.SetColor(GetSettings().GetStyleSettings().GetFieldTextColor());
+            aFont.SetColor(Application::GetSettings().GetStyleSettings().GetFieldTextColor());
         else
-            aFont.SetColor(GetSettings().GetStyleSettings().GetDisableColor());
+            aFont.SetColor(Application::GetSettings().GetStyleSettings().GetDisableColor());
 
         pDev->SetFont(aFont);
         pDev->DrawText(aStrRect, maStrUnits[ nItemId - 1 ], DrawTextFlags::EndEllipsis);
@@ -134,7 +134,7 @@ void  LineWidthValueSet::UserDraw( const UserDrawEvent& rUDEvt )
         if(nSelItem ==  nItemId )
             aFont.SetColor(COL_WHITE);
         else
-            aFont.SetColor(GetSettings().GetStyleSettings().GetFieldTextColor());
+            aFont.SetColor(Application::GetSettings().GetStyleSettings().GetFieldTextColor());
         pDev->SetFont(aFont);
         Point aStart(aBLPos.X() + nRectWidth * 7 / 9 , aBLPos.Y() + nRectHeight/6);
         pDev->DrawText(aStart, maStrUnits[ nItemId - 1 ]);  //can't set DrawTextFlags::EndEllipsis here ,or the text will disappear
@@ -143,7 +143,7 @@ void  LineWidthValueSet::UserDraw( const UserDrawEvent& rUDEvt )
         if( nSelItem ==  nItemId )
             pDev->SetLineColor(COL_WHITE);
         else
-            pDev->SetLineColor(GetSettings().GetStyleSettings().GetFieldTextColor());
+            pDev->SetLineColor(Application::GetSettings().GetStyleSettings().GetFieldTextColor());
 
         for(sal_uInt16 i = 1; i <= nItemId; i++)
         {
@@ -159,9 +159,12 @@ void  LineWidthValueSet::UserDraw( const UserDrawEvent& rUDEvt )
     pDev->SetFont(aOldFont);
 }
 
-Size LineWidthValueSet::GetOptimalSize() const
+void LineWidthValueSet::SetDrawingArea(weld::DrawingArea* pDrawingArea)
 {
-    return LogicToPixel(Size(80, 12 * 9), MapMode(MapUnit::MapAppFont));
+    SvtValueSet::SetDrawingArea(pDrawingArea);
+    Size aSize(pDrawingArea->get_ref_device().LogicToPixel(Size(80, 12 * 9), MapMode(MapUnit::MapAppFont)));
+    pDrawingArea->set_size_request(aSize.Width(), aSize.Height());
+    SetOutputSizePixel(aSize);
 }
 
 } } // end of namespace svx::sidebar
diff --git a/svx/source/sidebar/line/LineWidthValueSet.hxx b/svx/source/sidebar/line/LineWidthValueSet.hxx
index 7912b2476be5..67998ce204c5 100644
--- a/svx/source/sidebar/line/LineWidthValueSet.hxx
+++ b/svx/source/sidebar/line/LineWidthValueSet.hxx
@@ -25,10 +25,10 @@
 
 namespace svx { namespace sidebar {
 
-class LineWidthValueSet final : public ValueSet
+class LineWidthValueSet final : public SvtValueSet
 {
 public:
-    explicit LineWidthValueSet(vcl::Window* pParent);
+    explicit LineWidthValueSet();
     virtual ~LineWidthValueSet() override;
 
     void SetUnit(std::array<OUString,9> const & strUnits);
@@ -39,7 +39,7 @@ public:
 
     virtual void    UserDraw( const UserDrawEvent& rUDEvt ) override;
     virtual void    Resize() override;
-    virtual Size    GetOptimalSize() const override;
+    virtual void    SetDrawingArea(weld::DrawingArea* pDrawingArea) override;
 
 private:
     sal_uInt16          nSelItem;
diff --git a/svx/source/sidebar/possize/PosSizePropertyPanel.cxx b/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
index 681a6db6284c..a06ecc0c7395 100644
--- a/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
+++ b/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
@@ -31,6 +31,7 @@
 #include <sfx2/viewsh.hxx>
 #include <sfx2/objsh.hxx>
 #include <sfx2/viewfrm.hxx>
+#include <sfx2/weldutils.hxx>
 #include <svx/dialcontrol.hxx>
 #include <svx/dlgutil.hxx>
 #include <unotools/localedatawrapper.hxx>
diff --git a/svx/uiconfig/ui/floatinglineproperty.ui b/svx/uiconfig/ui/floatinglineproperty.ui
index 955499ce27a2..b017b2ed8a50 100644
--- a/svx/uiconfig/ui/floatinglineproperty.ui
+++ b/svx/uiconfig/ui/floatinglineproperty.ui
@@ -1,23 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.19.0 -->
+<!-- Generated with glade 3.22.1 -->
 <interface domain="svx">
   <requires lib="gtk+" version="3.18"/>
-  <object class="GtkAdjustment" id="adjustment1">
-    <property name="upper">500</property>
-    <property name="step_increment">1</property>
-    <property name="page_increment">10</property>
-  </object>
-  <object class="GtkWindow" id="FloatingLineProperty:border">
-    <property name="can_focus">True</property>
-    <property name="has_focus">True</property>
-    <property name="hexpand">True</property>
-    <property name="vexpand">True</property>
-    <property name="border_width">6</property>
-    <property name="resizable">False</property>
-    <property name="destroy_with_parent">True</property>
-    <property name="type_hint">popup-menu</property>
-    <property name="skip_pager_hint">True</property>
-    <property name="deletable">False</property>
+  <object class="GtkPopover" id="FloatingLineProperty">
+    <property name="can_focus">False</property>
+    <property name="no_show_all">True</property>
+    <property name="border_width">4</property>
     <child>
       <object class="GtkGrid" id="grid1">
         <property name="visible">True</property>
@@ -26,14 +14,28 @@
         <property name="vexpand">True</property>
         <property name="row_spacing">6</property>
         <child>
-          <object class="GtkBox" id="box">
+          <object class="GtkScrolledWindow" id="valuesetwin">
             <property name="visible">True</property>
-            <property name="can_focus">False</property>
+            <property name="can_focus">True</property>
             <property name="hexpand">True</property>
             <property name="vexpand">True</property>
-            <property name="orientation">vertical</property>
+            <property name="hscrollbar_policy">never</property>
+            <property name="vscrollbar_policy">never</property>
+            <property name="shadow_type">in</property>
             <child>
-              <placeholder/>
+              <object class="GtkViewport">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <child>
+                  <object class="GtkDrawingArea" id="lineset">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
+                    <property name="hexpand">True</property>
+                    <property name="vexpand">True</property>
+                  </object>
+                </child>
+              </object>
             </child>
           </object>
           <packing>
@@ -52,7 +54,7 @@
                 <property name="can_focus">False</property>
                 <property name="label" translatable="yes" context="floatinglineproperty|label1">Custom Line Width:</property>
                 <property name="use_underline">True</property>
-                <property name="mnemonic_widget">spin:0.0pt</property>
+                <property name="mnemonic_widget">spin</property>
                 <property name="ellipsize">end</property>
               </object>
               <packing>
@@ -61,7 +63,7 @@
               </packing>
             </child>
             <child>
-              <object class="GtkSpinButton" id="spin:0.0pt">
+              <object class="GtkSpinButton" id="spin">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="adjustment">adjustment1</property>
@@ -81,4 +83,9 @@
       </object>
     </child>
   </object>
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="upper">500</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
 </interface>
diff --git a/svx/uiconfig/ui/sidebarline.ui b/svx/uiconfig/ui/sidebarline.ui
index 855fae19aaf5..d18b522417f7 100644
--- a/svx/uiconfig/ui/sidebarline.ui
+++ b/svx/uiconfig/ui/sidebarline.ui
@@ -1,13 +1,48 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.20.0 -->
+<!-- Generated with glade 3.22.1 -->
 <interface domain="svx">
   <requires lib="gtk+" version="3.18"/>
-  <requires lib="LibreOffice" version="1.0"/>
   <object class="GtkAdjustment" id="adjustment1">
     <property name="upper">100</property>
     <property name="step_increment">10</property>
     <property name="page_increment">20</property>
   </object>
+  <object class="GtkListStore" id="liststore4">
+    <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>
+  </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>
+  </object>
+  <object class="GtkListStore" id="liststore6">
+    <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>
+  </object>
   <object class="GtkGrid" id="LinePropertyPanel">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
@@ -29,16 +64,30 @@
               <object class="GtkBox" id="box1">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="halign">center</property>
+                <property name="orientation">vertical</property>
                 <property name="spacing">3</property>
                 <child>
-                  <object class="GtkComboBoxText" id="beginarrowstyle">
+                  <object class="GtkComboBox" id="beginarrowstyle">
                     <property name="width_request">65</property>
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="has_tooltip">True</property>
+                    <property name="can_focus">False</property>
                     <property name="tooltip_text" translatable="yes" context="sidebarline|beginarrowstyle|tooltip_text">Select the style of the beginning arrowhead.</property>
                     <property name="hexpand">True</property>
+                    <property name="model">liststore4</property>
+                    <property name="entry_text_column">0</property>
+                    <property name="id_column">1</property>
+                    <child>
+                      <object class="GtkCellRendererText" id="cellrenderertext1"/>
+                      <attributes>
+                        <attribute name="text">0</attribute>
+                      </attributes>
+                    </child>
+                    <child>
+                      <object class="GtkCellRendererPixbuf" id="cellrenderertext2"/>
+                      <attributes>
+                        <attribute name="surface">3</attribute>
+                      </attributes>
+                    </child>
                     <child internal-child="accessible">
                       <object class="AtkObject" id="beginarrowstyle-atkobject">
                         <property name="AtkObject::accessible-name" translatable="yes" context="sidebarline|beginarrowstyle-atkobject">Beginning Style</property>
@@ -52,13 +101,27 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkComboBoxText" id="linestyle">
+                  <object class="GtkComboBox" id="linestyle">
                     <property name="width_request">105</property>
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="has_tooltip">True</property>
+                    <property name="can_focus">False</property>
                     <property name="tooltip_text" translatable="yes" context="sidebarline|linestyle|tooltip_text">Select the style of the line.</property>
                     <property name="hexpand">True</property>
+                    <property name="model">liststore5</property>
+                    <property name="entry_text_column">0</property>
+                    <property name="id_column">1</property>
+                    <child>
+                      <object class="GtkCellRendererText" id="cellrenderertext7"/>
+                      <attributes>
+                        <attribute name="text">0</attribute>
+                      </attributes>
+                    </child>
+                    <child>
+                      <object class="GtkCellRendererPixbuf" id="cellrenderertext11"/>
+                      <attributes>
+                        <attribute name="surface">3</attribute>
+                      </attributes>
+                    </child>
                     <child internal-child="accessible">
                       <object class="AtkObject" id="linestyle-atkobject">
                         <property name="AtkObject::accessible-name" translatable="yes" context="sidebarline|linestyle-atkobject">Style</property>
@@ -72,14 +135,27 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkComboBoxText" id="endarrowstyle">
+                  <object class="GtkComboBox" id="endarrowstyle">
                     <property name="width_request">65</property>
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="has_tooltip">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="model">liststore6</property>
                     <property name="tooltip_text" translatable="yes" context="sidebarline|endarrowstyle|tooltip_text">Select the style of the ending arrowhead.</property>
-                    <property name="margin_right">6</property>
+                    <property name="entry_text_column">0</property>
                     <property name="hexpand">True</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>
                     <child internal-child="accessible">
                       <object class="AtkObject" id="endarrowstyle-atkobject">
                         <property name="AtkObject::accessible-name" translatable="yes" context="sidebarline|endarrowstyle-atkobject">Ending Style</property>
@@ -103,7 +179,7 @@
               <object class="GtkGrid" id="lineproperties">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-                <property name="hexpand">True</property>
+                <property name="halign">start</property>
                 <property name="row_spacing">6</property>
                 <property name="column_spacing">6</property>
                 <child>
@@ -112,44 +188,39 @@
                     <property name="can_focus">False</property>
                     <property name="label" translatable="yes" context="sidebarline|widthlabel">_Width:</property>
                     <property name="use_underline">True</property>
+                    <property name="mnemonic_widget">width</property>
                     <property name="xalign">0</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="GtkToolbar" id="width">
-                    <property name="width_request">120</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="has_tooltip">True</property>
                     <property name="tooltip_text" translatable="yes" context="sidebarline|width|tooltip_text">Select the width of the line.</property>
+                    <property name="hexpand">True</property>
+                    <property name="toolbar_style">icons</property>
+                    <property name="show_arrow">False</property>
+                    <property name="icon_size">2</property>
                     <child>
-                      <object class="GtkMenuToolButton" id="setwidth">
-                        <property name="width_request">105</property>
+                      <object class="GtkMenuToolButton" id="SelectWidth">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="action_name">.uno:SelectWidth</property>
+                        <property name="hexpand">True</property>
                         <property name="use_underline">True</property>
                       </object>
-                      <accessibility>
-                        <relation type="labelled-by" target="widthlabel"/>
-                      </accessibility>
                       <packing>
                         <property name="expand">True</property>
-                        <property name="homogeneous">True</property>
+                        <property name="homogeneous">False</property>
                       </packing>
                     </child>
                   </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>
@@ -158,43 +229,40 @@
                     <property name="can_focus">False</property>
                     <property name="label" translatable="yes" context="sidebarline|colorlabel">_Color:</property>
                     <property name="use_underline">True</property>
+                    <property name="mnemonic_widget">color</property>
                     <property name="xalign">0</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="sfxlo-SidebarToolBox" id="color">
+                  <object class="GtkToolbar" id="color">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="has_tooltip">True</property>
                     <property name="tooltip_text" translatable="yes" context="sidebarline|color|tooltip_text">Select the color of the line.</property>
+                    <property name="hexpand">True</property>
+                    <property name="toolbar_style">icons</property>
+                    <property name="show_arrow">False</property>
+                    <property name="icon_size">2</property>
                     <child>
-                      <object class="GtkMenuToolButton" id="setcolor">
-                        <property name="width_request">105</property>
+                      <object class="GtkMenuToolButton" id=".uno:XLineColor">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="has_tooltip">True</property>
                         <property name="tooltip_text" translatable="yes" context="sidebarline|setcolor|tooltip_text">Select the color of the line.</property>
-                        <property name="margin_left">20</property>
-                        <property name="action_name">.uno:XLineColor</property>
+                        <property name="hexpand">True</property>
                         <property name="use_underline">True</property>
                       </object>
                       <packing>
                         <property name="expand">True</property>
-                        <property name="homogeneous">True</property>
+                        <property name="homogeneous">False</property>
                       </packing>
                     </child>
                   </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>
@@ -203,28 +271,23 @@
                     <property name="can_focus">False</property>
                     <property name="label" translatable="yes" context="sidebarline|translabel">_Transparency:</property>
                     <property name="use_underline">True</property>
+                    <property name="mnemonic_widget">linetransparency</property>
                     <property name="xalign">0</property>
                   </object>
                   <packing>
                     <property name="left_attach">0</property>
                     <property name="top_attach">2</property>
-                    <property name="width">1</property>
-                    <property name="height">1</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkSpinButton" id="linetransparency:0%">
+                  <object class="GtkSpinButton" id="linetransparency">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="has_tooltip">True</property>
                     <property name="tooltip_text" translatable="yes" context="sidebarline|linetransparency|tooltip_text">Specify the transparency of the line.</property>
                     <property name="halign">start</property>
                     <property name="adjustment">adjustment1</property>
-                    <accessibility>
-                      <relation type="labelled-by" target="translabel"/>
-                    </accessibility>
                     <child internal-child="accessible">
-                      <object class="AtkObject" id="linetransparency:0%-atkobject">
+                      <object class="AtkObject" id="linetransparency-atkobject">
                         <property name="AtkObject::accessible-name" translatable="yes" context="sidebarline|linetransparency-atkobject">Transparency</property>
                       </object>
                     </child>
@@ -232,8 +295,6 @@
                   <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>
               </object>
@@ -247,9 +308,11 @@
               <object class="GtkBox" id="arrowproperties">
                 <property name="can_focus">False</property>
                 <property name="orientation">vertical</property>
+                <property name="visible">True</property>
                 <child>
                   <object class="GtkGrid" id="grid5">
                     <property name="can_focus">False</property>
+                    <property name="visible">True</property>
                     <property name="row_spacing">6</property>
                     <property name="column_spacing">6</property>
                     <property name="column_homogeneous">True</property>
@@ -265,15 +328,12 @@
                       <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="GtkComboBoxText" id="edgestyle">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
-                        <property name="has_tooltip">True</property>
                         <property name="tooltip_text" translatable="yes" context="sidebarline|edgestyle|tooltip_text">Select the style of the edge connections.</property>
                         <items>
                           <item translatable="yes" context="sidebarline|edgestyle">Rounded</item>
@@ -290,8 +350,6 @@
                       <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>
@@ -306,15 +364,12 @@
                       <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="GtkComboBoxText" id="linecapstyle">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
-                        <property name="has_tooltip">True</property>
                         <property name="tooltip_text" translatable="yes" context="sidebarline|linecapstyle|tooltip_text">Select the style of the line caps.</property>
                         <items>
                           <item translatable="yes" context="sidebarline|linecapstyle">Flat</item>
@@ -330,8 +385,6 @@
                       <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>
                   </object>
@@ -352,17 +405,19 @@
           <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>
       <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>
+  <object class="GtkSizeGroup">
+    <widgets>
+      <widget name="width"/>
+      <widget name="color"/>
+    </widgets>
+  </object>
 </interface>


More information about the Libreoffice-commits mailing list