[Libreoffice-commits] core.git: include/vcl vcl/source

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Wed Dec 4 13:33:52 UTC 2019


 include/vcl/decoview.hxx     |   10 ----------
 include/vcl/layout.hxx       |    1 +
 include/vcl/vclenum.hxx      |   11 +++++++++++
 vcl/source/window/layout.cxx |   19 ++++++++++++++++++-
 4 files changed, 30 insertions(+), 11 deletions(-)

New commits:
commit bfdee54f8cd0fa987d004e42564a19aba24b4393
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Wed Dec 4 12:11:49 2019 +0000
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Wed Dec 4 14:32:57 2019 +0100

    honour GtkScrolledWindow shadow-type
    
    Change-Id: If6cc9f9f6c310261d783f2698b86329aa2a12c5a
    Reviewed-on: https://gerrit.libreoffice.org/84401
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/include/vcl/decoview.hxx b/include/vcl/decoview.hxx
index 5bcdcc1a208a..40dc600b87d2 100644
--- a/include/vcl/decoview.hxx
+++ b/include/vcl/decoview.hxx
@@ -43,16 +43,6 @@ namespace o3tl
 }
 
 // Flags for DrawFrame()
-enum class DrawFrameStyle
-{
-    NONE                     = 0x0000,
-    In                       = 0x0001,
-    Out                      = 0x0002,
-    Group                    = 0x0003,
-    DoubleIn                 = 0x0004,
-    DoubleOut                = 0x0005,
-    NWF                      = 0x0006,
-};
 enum class DrawFrameFlags
 {
     NONE                     = 0x0000,
diff --git a/include/vcl/layout.hxx b/include/vcl/layout.hxx
index f60014bb315d..9d8290929db6 100644
--- a/include/vcl/layout.hxx
+++ b/include/vcl/layout.hxx
@@ -521,6 +521,7 @@ private:
     void InitScrollBars(const Size &rRequest);
     virtual bool EventNotify(NotifyEvent& rNEvt) override;
     bool m_bUserManagedScrolling;
+    DrawFrameStyle m_eDrawFrameStyle;
     VclPtr<ScrollBar> m_pVScroll;
     VclPtr<ScrollBar> m_pHScroll;
     VclPtr<ScrollBarBox> m_aScrollBarBox;
diff --git a/include/vcl/vclenum.hxx b/include/vcl/vclenum.hxx
index 95650b2ed889..738dca1fc3b0 100644
--- a/include/vcl/vclenum.hxx
+++ b/include/vcl/vclenum.hxx
@@ -326,6 +326,17 @@ namespace vcl
     };
 }
 
+enum class DrawFrameStyle
+{
+    NONE                     = 0x0000,
+    In                       = 0x0001,
+    Out                      = 0x0002,
+    Group                    = 0x0003,
+    DoubleIn                 = 0x0004,
+    DoubleOut                = 0x0005,
+    NWF                      = 0x0006,
+};
+
 #endif // INCLUDED_VCL_VCLENUM_HXX
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/source/window/layout.cxx b/vcl/source/window/layout.cxx
index db0f26397927..fbada38f6e48 100644
--- a/vcl/source/window/layout.cxx
+++ b/vcl/source/window/layout.cxx
@@ -1681,6 +1681,7 @@ IMPL_LINK( VclExpander, ClickHdl, CheckBox&, rBtn, void )
 VclScrolledWindow::VclScrolledWindow(vcl::Window *pParent)
     : VclBin(pParent, WB_HIDE | WB_CLIPCHILDREN | WB_AUTOHSCROLL | WB_AUTOVSCROLL | WB_TABSTOP)
     , m_bUserManagedScrolling(false)
+    , m_eDrawFrameStyle(DrawFrameStyle::NONE)
     , m_pVScroll(VclPtr<ScrollBar>::Create(this, WB_HIDE | WB_VERT))
     , m_pHScroll(VclPtr<ScrollBar>::Create(this, WB_HIDE | WB_HORZ))
     , m_aScrollBarBox(VclPtr<ScrollBarBox>::Create(this, WB_HIDE))
@@ -1888,6 +1889,22 @@ Size VclScrolledWindow::getVisibleChildSize() const
 
 bool VclScrolledWindow::set_property(const OString &rKey, const OUString &rValue)
 {
+    if (rKey == "shadow-type")
+    {
+        // despite the style names, this looks like the best mapping
+        if (rValue == "in")
+            m_eDrawFrameStyle = DrawFrameStyle::Out;
+        else if (rValue == "out")
+            m_eDrawFrameStyle = DrawFrameStyle::In;
+        else if (rValue == "etched-in")
+            m_eDrawFrameStyle = DrawFrameStyle::DoubleOut;
+        else if (rValue == "etched-out")
+            m_eDrawFrameStyle = DrawFrameStyle::DoubleIn;
+        else if (rValue == "none")
+            m_eDrawFrameStyle = DrawFrameStyle::NONE;
+        return true;
+    }
+
     bool bRet = VclBin::set_property(rKey, rValue);
     m_pVScroll->Show((GetStyle() & WB_VSCROLL) != 0);
     m_pHScroll->Show((GetStyle() & WB_HSCROLL) != 0);
@@ -1917,7 +1934,7 @@ void VclScrolledWindow::Paint(vcl::RenderContext& rRenderContext, const tools::R
 {
     VclBin::Paint(rRenderContext, rRect);
     DecorationView aDecoView(&rRenderContext);
-    aDecoView.DrawFrame(tools::Rectangle(Point(0,0), GetSizePixel()));
+    aDecoView.DrawFrame(tools::Rectangle(Point(0,0), GetSizePixel()), m_eDrawFrameStyle);
 }
 
 void VclViewport::setAllocation(const Size &rAllocation)


More information about the Libreoffice-commits mailing list