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

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Tue Jun 30 08:34:12 UTC 2020


 include/vcl/texteng.hxx       |    3 +--
 include/vcl/vclenum.hxx       |    7 +++++++
 include/vcl/weld.hxx          |    2 ++
 vcl/inc/salvtables.hxx        |    2 ++
 vcl/source/app/salvtables.cxx |   20 ++++++++++++++++++++
 vcl/unx/gtk3/gtk3gtkinst.cxx  |   18 ++++++++++++++++++
 6 files changed, 50 insertions(+), 2 deletions(-)

New commits:
commit 011a4932aa35475a81917d5931e2a0f3a43c7336
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Mon Jun 29 14:54:05 2020 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Tue Jun 30 10:33:28 2020 +0200

    add set_alignment to Entry
    
    Change-Id: I004fb0e19c1bb25bdb5d11ba5d5d5f39b137874c
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97423
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/include/vcl/texteng.hxx b/include/vcl/texteng.hxx
index ee0ae62e0294..251325d195a0 100644
--- a/include/vcl/texteng.hxx
+++ b/include/vcl/texteng.hxx
@@ -34,6 +34,7 @@
 #include <tools/gen.hxx>
 #include <tools/color.hxx>
 #include <vcl/font.hxx>
+#include <vcl/vclenum.hxx>
 
 #include <com/sun/star/lang/Locale.hpp>
 #include <com/sun/star/uno/Reference.hxx>
@@ -66,8 +67,6 @@ namespace i18n {
 
 class LocaleDataWrapper;
 
-enum class TxtAlign { Left, Center, Right };
-
 typedef std::vector<TextView*> TextViews;
 
 class VCL_DLLPUBLIC TextEngine : public SfxBroadcaster
diff --git a/include/vcl/vclenum.hxx b/include/vcl/vclenum.hxx
index b5423b46e5de..3534fbd2815a 100644
--- a/include/vcl/vclenum.hxx
+++ b/include/vcl/vclenum.hxx
@@ -340,6 +340,13 @@ enum class DrawFrameStyle
     NWF                      = 0x0006,
 };
 
+enum class TxtAlign
+{
+    Left,
+    Center,
+    Right
+};
+
 #endif // INCLUDED_VCL_VCLENUM_HXX
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx
index 6d72135b21ee..db13a45a7731 100644
--- a/include/vcl/weld.hxx
+++ b/include/vcl/weld.hxx
@@ -1509,6 +1509,8 @@ public:
     virtual void copy_clipboard() = 0;
     virtual void paste_clipboard() = 0;
 
+    virtual void set_alignment(TxtAlign eXAlign) = 0;
+
     void save_value() { m_sSavedValue = get_text(); }
     OUString const& get_saved_value() const { return m_sSavedValue; }
     bool get_value_changed_from_saved() const { return m_sSavedValue != get_text(); }
diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx
index 527e3cd2b722..7e1e0dc9defa 100644
--- a/vcl/inc/salvtables.hxx
+++ b/vcl/inc/salvtables.hxx
@@ -607,6 +607,8 @@ public:
 
     virtual void paste_clipboard() override;
 
+    virtual void set_alignment(TxtAlign eXAlign) override;
+
     virtual ~SalInstanceEntry() override;
 };
 
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index a6012f4ca6a5..e9f0fedc8c97 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -3175,6 +3175,26 @@ void SalInstanceEntry::paste_clipboard()
     m_xEntry->Paste();
 }
 
+void SalInstanceEntry::set_alignment(TxtAlign eXAlign)
+{
+    WinBits nAlign(0);
+    switch (eXAlign)
+    {
+        case TxtAlign::Left:
+            nAlign = WB_LEFT;
+            break;
+        case TxtAlign::Center:
+            nAlign = WB_CENTER;
+            break;
+        case TxtAlign::Right:
+            nAlign = WB_RIGHT;
+            break;
+    }
+    WinBits nBits = m_xEntry->GetStyle();
+    nBits &= ~(WB_LEFT | WB_CENTER | WB_RIGHT);
+    m_xEntry->SetStyle(nBits & nAlign);
+}
+
 SalInstanceEntry::~SalInstanceEntry()
 {
     if (m_aCursorPositionHdl.IsSet())
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 620cc74b5fae..8e6ed420a381 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -8864,6 +8864,24 @@ public:
         enable_notify_events();
     }
 
+    virtual void set_alignment(TxtAlign eXAlign) override
+    {
+        gfloat xalign;
+        switch (eXAlign)
+        {
+            case TxtAlign::Left:
+                xalign = 0.0;
+                break;
+            case TxtAlign::Center:
+                xalign = 0.5;
+                break;
+            case TxtAlign::Right:
+                xalign = 1.0;
+                break;
+        }
+        gtk_entry_set_alignment(m_pEntry, xalign);
+    }
+
     virtual ~GtkInstanceEntry() override
     {
         g_signal_handler_disconnect(m_pEntry, m_nActivateSignalId);


More information about the Libreoffice-commits mailing list