vcl/inc/jsdialog/jsdialogbuilder.hxx |    1 
 vcl/inc/salvtables.hxx               |   54 ++++
 vcl/jsdialog/executor.cxx            |   22 +
 vcl/jsdialog/jsdialogbuilder.cxx     |   12 
 vcl/source/app/salvtables.cxx        |  438 +++++++++++++++++------------------
 5 files changed, 304 insertions(+), 223 deletions(-)

New commits:
commit b9484dfdc2545a1c8eb954b260b5e122d1ede56c
Author:     Szymon Kłos <szymon.k...@collabora.com>
AuthorDate: Thu Mar 9 14:17:23 2023 +0100
Commit:     Szymon Kłos <szymon.k...@collabora.com>
CommitDate: Tue Mar 21 07:18:06 2023 +0000

    Move SalInstanceScrolledWindow declaration to header file
    
    Change-Id: I8848358cf04ad0298867903350476f1f3b38b7da
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148608
    Tested-by: Szymon Kłos <szymon.k...@collabora.com>
    Reviewed-by: Szymon Kłos <szymon.k...@collabora.com>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149160
    Tested-by: Jenkins

diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx
index 1bbf37b4f7fb..3c421fc89c90 100644
--- a/vcl/inc/salvtables.hxx
+++ b/vcl/inc/salvtables.hxx
@@ -2108,4 +2108,58 @@ public:
     virtual void set_image(const css::uno::Reference<css::graphic::XGraphic>& 
rImage) override;
 };
 
+class SalInstanceScrolledWindow : public SalInstanceContainer, public virtual 
weld::ScrolledWindow
+{
+private:
+    VclPtr<VclScrolledWindow> m_xScrolledWindow;
+    Link<ScrollBar*, void> m_aOrigVScrollHdl;
+    Link<ScrollBar*, void> m_aOrigHScrollHdl;
+    bool m_bUserManagedScrolling;
+
+    DECL_LINK(VscrollHdl, ScrollBar*, void);
+    DECL_LINK(HscrollHdl, ScrollBar*, void);
+
+    static void customize_scrollbars(ScrollBar& rScrollBar, const Color& 
rButtonTextColor,
+                                     const Color& rBackgroundColor, const 
Color& rShadowColor,
+                                     const Color& rFaceColor);
+
+public:
+    SalInstanceScrolledWindow(VclScrolledWindow* pScrolledWindow, 
SalInstanceBuilder* pBuilder,
+                              bool bTakeOwnership, bool bUserManagedScrolling);
+
+    virtual void hadjustment_configure(int value, int lower, int upper, int 
step_increment,
+                                       int page_increment, int page_size) 
override;
+    virtual int hadjustment_get_value() const override;
+    virtual void hadjustment_set_value(int value) override;
+    virtual int hadjustment_get_upper() const override;
+    virtual void hadjustment_set_upper(int upper) override;
+    virtual int hadjustment_get_page_size() const override;
+    virtual void hadjustment_set_page_size(int size) override;
+    virtual void hadjustment_set_page_increment(int size) override;
+    virtual void hadjustment_set_step_increment(int size) override;
+    virtual void set_hpolicy(VclPolicyType eHPolicy) override;
+    virtual VclPolicyType get_hpolicy() const override;
+
+    virtual void vadjustment_configure(int value, int lower, int upper, int 
step_increment,
+                                       int page_increment, int page_size) 
override;
+    virtual int vadjustment_get_value() const override;
+    virtual void vadjustment_set_value(int value) override;
+    virtual int vadjustment_get_upper() const override;
+    virtual void vadjustment_set_upper(int upper) override;
+    virtual int vadjustment_get_lower() const override;
+    virtual void vadjustment_set_lower(int lower) override;
+    virtual int vadjustment_get_page_size() const override;
+    virtual void vadjustment_set_page_size(int size) override;
+    virtual void vadjustment_set_page_increment(int size) override;
+    virtual void vadjustment_set_step_increment(int size) override;
+
+    virtual void set_vpolicy(VclPolicyType eVPolicy) override;
+    virtual VclPolicyType get_vpolicy() const override;
+    virtual int get_scroll_thickness() const override;
+    virtual void set_scroll_thickness(int nThickness) override;
+    virtual void customize_scrollbars(const Color& rBackgroundColor, const 
Color& rShadowColor,
+                                      const Color& rFaceColor) override;
+    virtual ~SalInstanceScrolledWindow() override;
+};
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s 
cinkeys+=0=break: */
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 61fa56dd3223..4a31b3d2cd3d 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -2247,257 +2247,251 @@ public:
 
     virtual int get_position() const override { return 
m_xPaned->get_position(); }
 };
+}
 
-class SalInstanceScrolledWindow : public SalInstanceContainer, public virtual 
weld::ScrolledWindow
-{
-private:
-    VclPtr<VclScrolledWindow> m_xScrolledWindow;
-    Link<ScrollBar*, void> m_aOrigVScrollHdl;
-    Link<ScrollBar*, void> m_aOrigHScrollHdl;
-    bool m_bUserManagedScrolling;
-
-    DECL_LINK(VscrollHdl, ScrollBar*, void);
-    DECL_LINK(HscrollHdl, ScrollBar*, void);
-
-    static void customize_scrollbars(ScrollBar& rScrollBar, const Color& 
rButtonTextColor,
-                                     const Color& rBackgroundColor, const 
Color& rShadowColor,
-                                     const Color& rFaceColor)
-    {
-        rScrollBar.EnableNativeWidget(false);
-        AllSettings aSettings = rScrollBar.GetSettings();
-        StyleSettings aStyleSettings = aSettings.GetStyleSettings();
-        aStyleSettings.SetButtonTextColor(rButtonTextColor);
-        aStyleSettings.SetCheckedColor(rBackgroundColor); // background
-        aStyleSettings.SetShadowColor(rShadowColor);
-        aStyleSettings.SetFaceColor(rFaceColor);
-        aSettings.SetStyleSettings(aStyleSettings);
-        rScrollBar.SetSettings(aSettings);
-    }
-
-public:
-    SalInstanceScrolledWindow(VclScrolledWindow* pScrolledWindow, 
SalInstanceBuilder* pBuilder,
-                              bool bTakeOwnership, bool bUserManagedScrolling)
-        : SalInstanceContainer(pScrolledWindow, pBuilder, bTakeOwnership)
-        , m_xScrolledWindow(pScrolledWindow)
-        , m_bUserManagedScrolling(bUserManagedScrolling)
-    {
-        ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
-        m_aOrigVScrollHdl = rVertScrollBar.GetScrollHdl();
-        rVertScrollBar.SetScrollHdl(LINK(this, SalInstanceScrolledWindow, 
VscrollHdl));
-        ScrollBar& rHorzScrollBar = m_xScrolledWindow->getHorzScrollBar();
-        m_aOrigHScrollHdl = rHorzScrollBar.GetScrollHdl();
-        rHorzScrollBar.SetScrollHdl(LINK(this, SalInstanceScrolledWindow, 
HscrollHdl));
-        m_xScrolledWindow->setUserManagedScrolling(m_bUserManagedScrolling);
-    }
+void SalInstanceScrolledWindow::customize_scrollbars(ScrollBar& rScrollBar,
+                                                     const Color& 
rButtonTextColor,
+                                                     const Color& 
rBackgroundColor,
+                                                     const Color& rShadowColor,
+                                                     const Color& rFaceColor)
+{
+    rScrollBar.EnableNativeWidget(false);
+    AllSettings aSettings = rScrollBar.GetSettings();
+    StyleSettings aStyleSettings = aSettings.GetStyleSettings();
+    aStyleSettings.SetButtonTextColor(rButtonTextColor);
+    aStyleSettings.SetCheckedColor(rBackgroundColor); // background
+    aStyleSettings.SetShadowColor(rShadowColor);
+    aStyleSettings.SetFaceColor(rFaceColor);
+    aSettings.SetStyleSettings(aStyleSettings);
+    rScrollBar.SetSettings(aSettings);
+}
+
+SalInstanceScrolledWindow::SalInstanceScrolledWindow(VclScrolledWindow* 
pScrolledWindow,
+                                                     SalInstanceBuilder* 
pBuilder,
+                                                     bool bTakeOwnership,
+                                                     bool 
bUserManagedScrolling)
+    : SalInstanceContainer(pScrolledWindow, pBuilder, bTakeOwnership)
+    , m_xScrolledWindow(pScrolledWindow)
+    , m_bUserManagedScrolling(bUserManagedScrolling)
+{
+    ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
+    m_aOrigVScrollHdl = rVertScrollBar.GetScrollHdl();
+    rVertScrollBar.SetScrollHdl(LINK(this, SalInstanceScrolledWindow, 
VscrollHdl));
+    ScrollBar& rHorzScrollBar = m_xScrolledWindow->getHorzScrollBar();
+    m_aOrigHScrollHdl = rHorzScrollBar.GetScrollHdl();
+    rHorzScrollBar.SetScrollHdl(LINK(this, SalInstanceScrolledWindow, 
HscrollHdl));
+    m_xScrolledWindow->setUserManagedScrolling(m_bUserManagedScrolling);
+}
 
-    virtual void hadjustment_configure(int value, int lower, int upper, int 
step_increment,
-                                       int page_increment, int page_size) 
override
-    {
-        ScrollBar& rHorzScrollBar = m_xScrolledWindow->getHorzScrollBar();
-        rHorzScrollBar.SetRangeMin(lower);
-        rHorzScrollBar.SetRangeMax(upper);
-        rHorzScrollBar.SetLineSize(step_increment);
-        rHorzScrollBar.SetPageSize(page_increment);
-        rHorzScrollBar.SetThumbPos(value);
-        rHorzScrollBar.SetVisibleSize(page_size);
-    }
+void SalInstanceScrolledWindow::hadjustment_configure(int value, int lower, 
int upper,
+                                                      int step_increment, int 
page_increment,
+                                                      int page_size)
+{
+    ScrollBar& rHorzScrollBar = m_xScrolledWindow->getHorzScrollBar();
+    rHorzScrollBar.SetRangeMin(lower);
+    rHorzScrollBar.SetRangeMax(upper);
+    rHorzScrollBar.SetLineSize(step_increment);
+    rHorzScrollBar.SetPageSize(page_increment);
+    rHorzScrollBar.SetThumbPos(value);
+    rHorzScrollBar.SetVisibleSize(page_size);
+}
 
-    virtual int hadjustment_get_value() const override
-    {
-        ScrollBar& rHorzScrollBar = m_xScrolledWindow->getHorzScrollBar();
-        return rHorzScrollBar.GetThumbPos();
-    }
+int SalInstanceScrolledWindow::hadjustment_get_value() const
+{
+    ScrollBar& rHorzScrollBar = m_xScrolledWindow->getHorzScrollBar();
+    return rHorzScrollBar.GetThumbPos();
+}
 
-    virtual void hadjustment_set_value(int value) override
-    {
-        ScrollBar& rHorzScrollBar = m_xScrolledWindow->getHorzScrollBar();
-        rHorzScrollBar.SetThumbPos(value);
-        if (!m_bUserManagedScrolling)
-            m_aOrigHScrollHdl.Call(&rHorzScrollBar);
-    }
+void SalInstanceScrolledWindow::hadjustment_set_value(int value)
+{
+    ScrollBar& rHorzScrollBar = m_xScrolledWindow->getHorzScrollBar();
+    rHorzScrollBar.SetThumbPos(value);
+    if (!m_bUserManagedScrolling)
+        m_aOrigHScrollHdl.Call(&rHorzScrollBar);
+}
 
-    virtual int hadjustment_get_upper() const override
-    {
-        ScrollBar& rHorzScrollBar = m_xScrolledWindow->getHorzScrollBar();
-        return rHorzScrollBar.GetRangeMax();
-    }
+int SalInstanceScrolledWindow::hadjustment_get_upper() const
+{
+    ScrollBar& rHorzScrollBar = m_xScrolledWindow->getHorzScrollBar();
+    return rHorzScrollBar.GetRangeMax();
+}
 
-    virtual void hadjustment_set_upper(int upper) override
-    {
-        ScrollBar& rHorzScrollBar = m_xScrolledWindow->getHorzScrollBar();
-        rHorzScrollBar.SetRangeMax(upper);
-    }
+void SalInstanceScrolledWindow::hadjustment_set_upper(int upper)
+{
+    ScrollBar& rHorzScrollBar = m_xScrolledWindow->getHorzScrollBar();
+    rHorzScrollBar.SetRangeMax(upper);
+}
 
-    virtual int hadjustment_get_page_size() const override
-    {
-        ScrollBar& rHorzScrollBar = m_xScrolledWindow->getHorzScrollBar();
-        return rHorzScrollBar.GetVisibleSize();
-    }
+int SalInstanceScrolledWindow::hadjustment_get_page_size() const
+{
+    ScrollBar& rHorzScrollBar = m_xScrolledWindow->getHorzScrollBar();
+    return rHorzScrollBar.GetVisibleSize();
+}
 
-    virtual void hadjustment_set_page_size(int size) override
-    {
-        ScrollBar& rHorzScrollBar = m_xScrolledWindow->getHorzScrollBar();
-        return rHorzScrollBar.SetVisibleSize(size);
-    }
+void SalInstanceScrolledWindow::hadjustment_set_page_size(int size)
+{
+    ScrollBar& rHorzScrollBar = m_xScrolledWindow->getHorzScrollBar();
+    return rHorzScrollBar.SetVisibleSize(size);
+}
 
-    virtual void hadjustment_set_page_increment(int size) override
-    {
-        ScrollBar& rHorzScrollBar = m_xScrolledWindow->getHorzScrollBar();
-        return rHorzScrollBar.SetPageSize(size);
-    }
+void SalInstanceScrolledWindow::hadjustment_set_page_increment(int size)
+{
+    ScrollBar& rHorzScrollBar = m_xScrolledWindow->getHorzScrollBar();
+    return rHorzScrollBar.SetPageSize(size);
+}
 
-    virtual void hadjustment_set_step_increment(int size) override
-    {
-        ScrollBar& rHorzScrollBar = m_xScrolledWindow->getHorzScrollBar();
-        return rHorzScrollBar.SetLineSize(size);
-    }
+void SalInstanceScrolledWindow::hadjustment_set_step_increment(int size)
+{
+    ScrollBar& rHorzScrollBar = m_xScrolledWindow->getHorzScrollBar();
+    return rHorzScrollBar.SetLineSize(size);
+}
 
-    virtual void set_hpolicy(VclPolicyType eHPolicy) override
-    {
-        WinBits nWinBits = m_xScrolledWindow->GetStyle() & ~(WB_AUTOHSCROLL | 
WB_HSCROLL);
-        if (eHPolicy == VclPolicyType::ALWAYS)
-            nWinBits |= WB_HSCROLL;
-        else if (eHPolicy == VclPolicyType::AUTOMATIC)
-            nWinBits |= WB_AUTOHSCROLL;
-        m_xScrolledWindow->SetStyle(nWinBits);
-        m_xScrolledWindow->queue_resize();
-    }
+void SalInstanceScrolledWindow::set_hpolicy(VclPolicyType eHPolicy)
+{
+    WinBits nWinBits = m_xScrolledWindow->GetStyle() & ~(WB_AUTOHSCROLL | 
WB_HSCROLL);
+    if (eHPolicy == VclPolicyType::ALWAYS)
+        nWinBits |= WB_HSCROLL;
+    else if (eHPolicy == VclPolicyType::AUTOMATIC)
+        nWinBits |= WB_AUTOHSCROLL;
+    m_xScrolledWindow->SetStyle(nWinBits);
+    m_xScrolledWindow->queue_resize();
+}
 
-    virtual VclPolicyType get_hpolicy() const override
-    {
-        WinBits nWinBits = m_xScrolledWindow->GetStyle();
-        if (nWinBits & WB_AUTOHSCROLL)
-            return VclPolicyType::AUTOMATIC;
-        else if (nWinBits & WB_HSCROLL)
-            return VclPolicyType::ALWAYS;
-        return VclPolicyType::NEVER;
-    }
+VclPolicyType SalInstanceScrolledWindow::get_hpolicy() const
+{
+    WinBits nWinBits = m_xScrolledWindow->GetStyle();
+    if (nWinBits & WB_AUTOHSCROLL)
+        return VclPolicyType::AUTOMATIC;
+    else if (nWinBits & WB_HSCROLL)
+        return VclPolicyType::ALWAYS;
+    return VclPolicyType::NEVER;
+}
 
-    virtual void vadjustment_configure(int value, int lower, int upper, int 
step_increment,
-                                       int page_increment, int page_size) 
override
-    {
-        ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
-        rVertScrollBar.SetRangeMin(lower);
-        rVertScrollBar.SetRangeMax(upper);
-        rVertScrollBar.SetLineSize(step_increment);
-        rVertScrollBar.SetPageSize(page_increment);
-        rVertScrollBar.SetThumbPos(value);
-        rVertScrollBar.SetVisibleSize(page_size);
-    }
+void SalInstanceScrolledWindow::vadjustment_configure(int value, int lower, 
int upper,
+                                                      int step_increment, int 
page_increment,
+                                                      int page_size)
+{
+    ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
+    rVertScrollBar.SetRangeMin(lower);
+    rVertScrollBar.SetRangeMax(upper);
+    rVertScrollBar.SetLineSize(step_increment);
+    rVertScrollBar.SetPageSize(page_increment);
+    rVertScrollBar.SetThumbPos(value);
+    rVertScrollBar.SetVisibleSize(page_size);
+}
 
-    virtual int vadjustment_get_value() const override
-    {
-        ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
-        return rVertScrollBar.GetThumbPos();
-    }
+int SalInstanceScrolledWindow::vadjustment_get_value() const
+{
+    ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
+    return rVertScrollBar.GetThumbPos();
+}
 
-    virtual void vadjustment_set_value(int value) override
-    {
-        ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
-        rVertScrollBar.SetThumbPos(value);
-        if (!m_bUserManagedScrolling)
-            m_aOrigVScrollHdl.Call(&rVertScrollBar);
-    }
+void SalInstanceScrolledWindow::vadjustment_set_value(int value)
+{
+    ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
+    rVertScrollBar.SetThumbPos(value);
+    if (!m_bUserManagedScrolling)
+        m_aOrigVScrollHdl.Call(&rVertScrollBar);
+}
 
-    virtual int vadjustment_get_upper() const override
-    {
-        ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
-        return rVertScrollBar.GetRangeMax();
-    }
+int SalInstanceScrolledWindow::vadjustment_get_upper() const
+{
+    ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
+    return rVertScrollBar.GetRangeMax();
+}
 
-    virtual void vadjustment_set_upper(int upper) override
-    {
-        ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
-        rVertScrollBar.SetRangeMax(upper);
-    }
+void SalInstanceScrolledWindow::vadjustment_set_upper(int upper)
+{
+    ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
+    rVertScrollBar.SetRangeMax(upper);
+}
 
-    virtual int vadjustment_get_lower() const override
-    {
-        ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
-        return rVertScrollBar.GetRangeMin();
-    }
+int SalInstanceScrolledWindow::vadjustment_get_lower() const
+{
+    ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
+    return rVertScrollBar.GetRangeMin();
+}
 
-    virtual void vadjustment_set_lower(int lower) override
-    {
-        ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
-        rVertScrollBar.SetRangeMin(lower);
-    }
+void SalInstanceScrolledWindow::vadjustment_set_lower(int lower)
+{
+    ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
+    rVertScrollBar.SetRangeMin(lower);
+}
 
-    virtual int vadjustment_get_page_size() const override
-    {
-        ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
-        return rVertScrollBar.GetVisibleSize();
-    }
+int SalInstanceScrolledWindow::vadjustment_get_page_size() const
+{
+    ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
+    return rVertScrollBar.GetVisibleSize();
+}
 
-    virtual void vadjustment_set_page_size(int size) override
-    {
-        ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
-        return rVertScrollBar.SetVisibleSize(size);
-    }
+void SalInstanceScrolledWindow::vadjustment_set_page_size(int size)
+{
+    ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
+    return rVertScrollBar.SetVisibleSize(size);
+}
 
-    virtual void vadjustment_set_page_increment(int size) override
-    {
-        ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
-        return rVertScrollBar.SetPageSize(size);
-    }
+void SalInstanceScrolledWindow::vadjustment_set_page_increment(int size)
+{
+    ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
+    return rVertScrollBar.SetPageSize(size);
+}
 
-    virtual void vadjustment_set_step_increment(int size) override
-    {
-        ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
-        return rVertScrollBar.SetLineSize(size);
-    }
+void SalInstanceScrolledWindow::vadjustment_set_step_increment(int size)
+{
+    ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
+    return rVertScrollBar.SetLineSize(size);
+}
 
-    virtual void set_vpolicy(VclPolicyType eVPolicy) override
-    {
-        WinBits nWinBits = m_xScrolledWindow->GetStyle() & ~(WB_AUTOVSCROLL | 
WB_VSCROLL);
-        if (eVPolicy == VclPolicyType::ALWAYS)
-            nWinBits |= WB_VSCROLL;
-        else if (eVPolicy == VclPolicyType::AUTOMATIC)
-            nWinBits |= WB_AUTOVSCROLL;
-        m_xScrolledWindow->SetStyle(nWinBits);
-        m_xScrolledWindow->queue_resize();
-    }
+void SalInstanceScrolledWindow::set_vpolicy(VclPolicyType eVPolicy)
+{
+    WinBits nWinBits = m_xScrolledWindow->GetStyle() & ~(WB_AUTOVSCROLL | 
WB_VSCROLL);
+    if (eVPolicy == VclPolicyType::ALWAYS)
+        nWinBits |= WB_VSCROLL;
+    else if (eVPolicy == VclPolicyType::AUTOMATIC)
+        nWinBits |= WB_AUTOVSCROLL;
+    m_xScrolledWindow->SetStyle(nWinBits);
+    m_xScrolledWindow->queue_resize();
+}
 
-    virtual VclPolicyType get_vpolicy() const override
-    {
-        WinBits nWinBits = m_xScrolledWindow->GetStyle();
-        if (nWinBits & WB_AUTOVSCROLL)
-            return VclPolicyType::AUTOMATIC;
-        else if (nWinBits & WB_VSCROLL)
-            return VclPolicyType::ALWAYS;
-        return VclPolicyType::NEVER;
-    }
+VclPolicyType SalInstanceScrolledWindow::get_vpolicy() const
+{
+    WinBits nWinBits = m_xScrolledWindow->GetStyle();
+    if (nWinBits & WB_AUTOVSCROLL)
+        return VclPolicyType::AUTOMATIC;
+    else if (nWinBits & WB_VSCROLL)
+        return VclPolicyType::ALWAYS;
+    return VclPolicyType::NEVER;
+}
 
-    virtual int get_scroll_thickness() const override
-    {
-        return 
m_xScrolledWindow->getVertScrollBar().get_preferred_size().Width();
-    }
+int SalInstanceScrolledWindow::get_scroll_thickness() const
+{
+    return m_xScrolledWindow->getVertScrollBar().get_preferred_size().Width();
+}
 
-    virtual void set_scroll_thickness(int nThickness) override
-    {
-        ScrollBar& rHorzScrollBar = m_xScrolledWindow->getHorzScrollBar();
-        ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
-        rHorzScrollBar.set_height_request(nThickness);
-        rVertScrollBar.set_width_request(nThickness);
-    }
+void SalInstanceScrolledWindow::set_scroll_thickness(int nThickness)
+{
+    ScrollBar& rHorzScrollBar = m_xScrolledWindow->getHorzScrollBar();
+    ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
+    rHorzScrollBar.set_height_request(nThickness);
+    rVertScrollBar.set_width_request(nThickness);
+}
 
-    virtual void customize_scrollbars(const Color& rBackgroundColor, const 
Color& rShadowColor,
-                                      const Color& rFaceColor) override
-    {
-        ScrollBar& rHorzScrollBar = m_xScrolledWindow->getHorzScrollBar();
-        ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
-        customize_scrollbars(rHorzScrollBar, Color(0, 0, 0), rBackgroundColor, 
rShadowColor,
-                             rFaceColor);
-        customize_scrollbars(rVertScrollBar, Color(0, 0, 0), rBackgroundColor, 
rShadowColor,
-                             rFaceColor);
-    }
+void SalInstanceScrolledWindow::customize_scrollbars(const Color& 
rBackgroundColor,
+                                                     const Color& rShadowColor,
+                                                     const Color& rFaceColor)
+{
+    ScrollBar& rHorzScrollBar = m_xScrolledWindow->getHorzScrollBar();
+    ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
+    customize_scrollbars(rHorzScrollBar, Color(0, 0, 0), rBackgroundColor, 
rShadowColor,
+                         rFaceColor);
+    customize_scrollbars(rVertScrollBar, Color(0, 0, 0), rBackgroundColor, 
rShadowColor,
+                         rFaceColor);
+}
 
-    virtual ~SalInstanceScrolledWindow() override
-    {
-        ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
-        rVertScrollBar.SetScrollHdl(m_aOrigVScrollHdl);
-    }
-};
+SalInstanceScrolledWindow::~SalInstanceScrolledWindow()
+{
+    ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar();
+    rVertScrollBar.SetScrollHdl(m_aOrigVScrollHdl);
 }
 
 IMPL_LINK(SalInstanceScrolledWindow, VscrollHdl, ScrollBar*, pScrollBar, void)
commit 7e58604211085caffbbf5dfeefa29385f3267a01
Author:     Szymon Kłos <szymon.k...@collabora.com>
AuthorDate: Fri Mar 3 17:01:55 2023 +0100
Commit:     Szymon Kłos <szymon.k...@collabora.com>
CommitDate: Tue Mar 21 07:18:00 2023 +0000

    jsdialog: textselection action for text view
    
    Change-Id: I11e41b5be897c4341ed0e2baf9fc6772ad0163b8
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148247
    Tested-by: Szymon Kłos <szymon.k...@collabora.com>
    Reviewed-by: Szymon Kłos <szymon.k...@collabora.com>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149159

diff --git a/vcl/inc/jsdialog/jsdialogbuilder.hxx 
b/vcl/inc/jsdialog/jsdialogbuilder.hxx
index 96455be71797..0864c3d7ab8a 100644
--- a/vcl/inc/jsdialog/jsdialogbuilder.hxx
+++ b/vcl/inc/jsdialog/jsdialogbuilder.hxx
@@ -688,6 +688,7 @@ public:
     JSTextView(JSDialogSender* pSender, ::VclMultiLineEdit* pTextView, 
SalInstanceBuilder* pBuilder,
                bool bTakeOwnership);
     virtual void set_text(const OUString& rText) override;
+    virtual void replace_selection(const OUString& rText) override;
 };
 
 class JSTreeView final : public JSWidget<SalInstanceTreeView, ::SvTabListBox>
diff --git a/vcl/jsdialog/executor.cxx b/vcl/jsdialog/executor.cxx
index 313661557893..5598afa8ba19 100644
--- a/vcl/jsdialog/executor.cxx
+++ b/vcl/jsdialog/executor.cxx
@@ -370,6 +370,28 @@ bool ExecuteAction(const std::string& nWindowId, const 
OString& rWidget, StringM
                     LOKTrigger::trigger_changed(*pTextView);
                     return true;
                 }
+                else if (sAction == "textselection")
+                {
+                    // start;end
+                    OUString sTextData = rData["data"];
+                    int nSeparatorPos = sTextData.indexOf(';');
+                    if (nSeparatorPos <= 0)
+                        return true;
+
+                    std::u16string_view aStartPos = sTextData.subView(0, 
nSeparatorPos);
+                    std::u16string_view aEndPos = 
sTextData.subView(nSeparatorPos + 1);
+
+                    if (aStartPos.empty() || aEndPos.empty())
+                        return true;
+
+                    sal_Int32 nStart = o3tl::toInt32(aStartPos);
+                    sal_Int32 nEnd = o3tl::toInt32(aEndPos);
+
+                    pTextView->select_region(nStart, nEnd);
+                    LOKTrigger::trigger_changed(*pTextView);
+
+                    return true;
+                }
             }
         }
         else if (sControlType == "treeview")
diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx
index ea3332ef0c46..190f1e0770c7 100644
--- a/vcl/jsdialog/jsdialogbuilder.cxx
+++ b/vcl/jsdialog/jsdialogbuilder.cxx
@@ -1792,6 +1792,12 @@ void JSTextView::set_text(const OUString& rText)
     sendUpdate();
 }
 
+void JSTextView::replace_selection(const OUString& rText)
+{
+    SalInstanceTextView::replace_selection(rText);
+    sendUpdate();
+}
+
 JSTreeView::JSTreeView(JSDialogSender* pSender, ::SvTabListBox* pTreeView,
                        SalInstanceBuilder* pBuilder, bool bTakeOwnership)
     : JSWidget<SalInstanceTreeView, ::SvTabListBox>(pSender, pTreeView, 
pBuilder, bTakeOwnership)
commit 95e41f4a34262661e90736d9c50fb9ca683d5238
Author:     Szymon Kłos <szymon.k...@collabora.com>
AuthorDate: Wed Mar 8 10:58:03 2023 +0100
Commit:     Szymon Kłos <szymon.k...@collabora.com>
CommitDate: Tue Mar 21 07:17:54 2023 +0000

    jsdialog: treeview selection should be an action
    
    Change-Id: Iaaff603b647c18eb566cece272b0e93563c960b1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148463
    Tested-by: Szymon Kłos <szymon.k...@collabora.com>
    Reviewed-by: Szymon Kłos <szymon.k...@collabora.com>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149158
    Tested-by: Jenkins

diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx
index 355a4d45c45a..ea3332ef0c46 100644
--- a/vcl/jsdialog/jsdialogbuilder.cxx
+++ b/vcl/jsdialog/jsdialogbuilder.cxx
@@ -1840,7 +1840,11 @@ void JSTreeView::select(int pos)
         }
     }
     enable_notify_events();
-    sendUpdate();
+
+    std::unique_ptr<jsdialog::ActionDataMap> pMap = 
std::make_unique<jsdialog::ActionDataMap>();
+    (*pMap)[ACTION_TYPE] = "select";
+    (*pMap)["position"] = OUString::number(pos);
+    sendAction(std::move(pMap));
 }
 
 weld::TreeView* JSTreeView::get_drag_source() const { return g_DragSource; }

Reply via email to