summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-06-29 14:54:05 +0100
committerCaolán McNamara <caolanm@redhat.com>2020-06-30 10:33:28 +0200
commit011a4932aa35475a81917d5931e2a0f3a43c7336 (patch)
treebdda61baa9b7c5e4ea3cb6cb567807a7d5567718
parentc99375b5b4f83895507ea2a44eceafeed800c2aa (diff)
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@redhat.com>
-rw-r--r--include/vcl/texteng.hxx3
-rw-r--r--include/vcl/vclenum.hxx7
-rw-r--r--include/vcl/weld.hxx2
-rw-r--r--vcl/inc/salvtables.hxx2
-rw-r--r--vcl/source/app/salvtables.cxx20
-rw-r--r--vcl/unx/gtk3/gtk3gtkinst.cxx18
6 files changed, 50 insertions, 2 deletions
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);