jsdialog: consume .uno:LineWidth double value

Change-Id: Iaf09dd11ae4fd6b3d9ebeabac790f0cfe73fec17
Reviewed-on: https://gerrit.libreoffice.org/82226
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/82234
Tested-by: Jenkins
diff --git a/include/svx/svxids.hrc b/include/svx/svxids.hrc
index 28d95b7..851ef3e 100644
--- a/include/svx/svxids.hrc
+++ b/include/svx/svxids.hrc
@@ -326,6 +326,7 @@ class SvxSetItem;
#define SID_DIALOG_TESTMODE                             ( SID_SVX_START + 200 )
#define SID_FRAME_LINESTYLE                             TypedWhichId<SvxLineItem>( SID_SVX_START + 201 )
#define SID_FRAME_LINECOLOR                             TypedWhichId<SvxColorItem>( SID_SVX_START + 202 )
#define SID_ATTR_LINE_WIDTH_ARG                         ( SID_SVX_START + 203 )
#define SID_SEARCHDLG_SEARCHSTRINGS                     ( SID_SVX_START + 215 )
#define SID_SEARCHDLG_REPLACESTRINGS                    ( SID_SVX_START + 216 )
#define SID_ATTR_TABLE                                  ( SID_SVX_START + 217 )
diff --git a/svx/sdi/svx.sdi b/svx/sdi/svx.sdi
index 068612a..b501e54 100644
--- a/svx/sdi/svx.sdi
+++ b/svx/sdi/svx.sdi
@@ -5633,7 +5633,7 @@ SvxLineItem LineStyle SID_FRAME_LINESTYLE


XLineWidthItem LineWidth SID_ATTR_LINE_WIDTH

(SvxDoubleItem Width SID_ATTR_LINE_WIDTH_ARG, XLineWidthItem LineWidth SID_ATTR_LINE_WIDTH)
[
    AutoUpdate = TRUE,
    FastCall = FALSE,
diff --git a/sw/source/uibase/shells/drawdlg.cxx b/sw/source/uibase/shells/drawdlg.cxx
index a16ac67..1811078 100644
--- a/sw/source/uibase/shells/drawdlg.cxx
+++ b/sw/source/uibase/shells/drawdlg.cxx
@@ -37,6 +37,8 @@
#include <svl/stritem.hxx>
#include <svx/xlnclit.hxx>
#include <svx/xflclit.hxx>
#include <svx/chrtitem.hxx>
#include <svx/xlnwtit.hxx>

void SwDrawShell::ExecDrawDlg(SfxRequest& rReq)
{
@@ -209,11 +211,11 @@ namespace
    {
        Color aColor;
        OUString sColor;
        const SfxPoolItem* pColorStringItem = nullptr;
        const SfxPoolItem* pItem = nullptr;

        if (SfxItemState::SET == pArgs->GetItemState(SID_ATTR_COLOR_STR, false, &pColorStringItem))
        if (SfxItemState::SET == pArgs->GetItemState(SID_ATTR_COLOR_STR, false, &pItem))
        {
            sColor = static_cast<const SfxStringItem*>(pColorStringItem)->GetValue();
            sColor = static_cast<const SfxStringItem*>(pItem)->GetValue();

            if (sColor == "transparent")
                aColor = COL_TRANSPARENT;
@@ -237,6 +239,16 @@ namespace
                }
            }
        }
        else if (SfxItemState::SET == pArgs->GetItemState(SID_ATTR_LINE_WIDTH_ARG, false, &pItem))
        {
            double fValue = static_cast<const SvxDoubleItem*>(pItem)->GetValue();
            // FIXME: different units...
            int nPow = 100;
            int nValue = fValue * nPow;

            XLineWidthItem aItem(nValue);
            pArgs->Put(aItem);
        }
    }
}