summaryrefslogtreecommitdiff
path: root/vcl/unx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-07-02 15:54:18 +0100
committerCaolán McNamara <caolanm@redhat.com>2020-07-02 20:21:46 +0200
commit4582ac7de8291a81c867492aad770206fbaca224 (patch)
tree5a16332ceb1e99e9aa317c970b3db80bc826b75e /vcl/unx
parent54c866828a9b85c23830e4a8be2c27b59ffd3cd5 (diff)
add ability to set Entry font color
reluctantly, but the SvNumberformat color feature exists and it's expected to be possible to use that color in the currency fields Change-Id: I31834e5667fcad42021532957dee4f79621f58a5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97774 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl/unx')
-rw-r--r--vcl/unx/gtk3/gtk3gtkinst.cxx20
1 files changed, 20 insertions, 0 deletions
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 1aa1af96882a..0959bb53421e 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -8638,6 +8638,11 @@ namespace
gtk_entry_set_icon_from_icon_name(pEntry, GTK_ENTRY_ICON_SECONDARY, nullptr);
}
+ gboolean filter_pango_attrs(PangoAttribute *attr, gpointer /*data*/)
+ {
+ return attr->klass->type == PANGO_ATTR_FOREGROUND;
+ }
+
class GtkInstanceEntry : public GtkInstanceWidget, public virtual weld::Entry
{
private:
@@ -8835,6 +8840,21 @@ public:
return GtkInstanceWidget::get_font();
}
+ void set_font_color(const Color& rColor) override
+ {
+ PangoAttrList* pOrigList = gtk_entry_get_attributes(m_pEntry);
+ if (rColor == COL_AUTO && !pOrigList) // nothing to do
+ return;
+
+ PangoAttrList* pAttrList = pOrigList ? pango_attr_list_filter(pOrigList, filter_pango_attrs, nullptr) : pango_attr_list_new();
+
+ if (rColor != COL_AUTO)
+ pango_attr_list_insert(pAttrList, pango_attr_foreground_new(rColor.GetRed()/255.0, rColor.GetGreen()/255.0, rColor.GetBlue()/255.0));
+
+ gtk_entry_set_attributes(m_pEntry, pAttrList);
+ pango_attr_list_unref(pAttrList);
+ }
+
void fire_signal_changed()
{
signal_changed();