billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=2832f79b59f5ed02edca8ee87f6a506397d7e636

commit 2832f79b59f5ed02edca8ee87f6a506397d7e636
Author: Boris Faure <[email protected]>
Date:   Thu May 21 23:49:28 2020 +0200

    theme: add name to the color being previewed
---
 THEME.md                              |  4 ++++
 data/themes/default/color_preview.edc | 15 ++++++++++++++
 src/bin/termio.c                      | 37 ++++++++++++++++++++++++-----------
 3 files changed, 45 insertions(+), 11 deletions(-)

diff --git a/THEME.md b/THEME.md
index 034e3bb..d177184 100644
--- a/THEME.md
+++ b/THEME.md
@@ -237,3 +237,7 @@ To mark the tab as having missed a bell.
 # `terminology/color_preview`
 A group to preview a color in a tooltip. The color is defined by the color
 class `color_preview`.
+
+## Swallowed part
+### `name`
+Name of the color being previewed
diff --git a/data/themes/default/color_preview.edc 
b/data/themes/default/color_preview.edc
index ae9d93c..1b86ba0 100644
--- a/data/themes/default/color_preview.edc
+++ b/data/themes/default/color_preview.edc
@@ -16,6 +16,21 @@ group { name: "terminology/color_preview";
             color_class: "color_preview";
          }
       }
+      part { name: "name"; type: TEXT;
+         mouse_events: 0;
+         effect: OUTLINE_SOFT_SHADOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            color: 255 255 255 255;
+            color2: 0 0 0 128;
+            color3: 0 0 0 20;
+            align: 0.5 0.0;
+            text { font: "monospace"; size: 10;
+               align: 0.5 0.0;
+               min: 0 1;
+            }
+         }
+      }
       part { name: "overlay";
          mouse_events: 0;
          description { state: "default" 0.0;
diff --git a/src/bin/termio.c b/src/bin/termio.c
index 32610f0..bf93bf0 100644
--- a/src/bin/termio.c
+++ b/src/bin/termio.c
@@ -1096,6 +1096,24 @@ termio_paste_selection(Evas_Object *obj, Elm_Sel_Type 
type)
                          _getsel_cb, obj);
 }
 
+static const char *
+_color_to_txt(const Termio *sd)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(sd, NULL);
+
+   if (sd->link.color.a == 255)
+     return eina_stringshare_printf("#%.2x%.2x%.2x",
+                                    sd->link.color.r,
+                                    sd->link.color.g,
+                                    sd->link.color.b);
+   else
+     return eina_stringshare_printf("#%.2x%.2x%.2x%.2x",
+                                    sd->link.color.r,
+                                    sd->link.color.g,
+                                    sd->link.color.b,
+                                    sd->link.color.a);
+}
+
 static void
 _cb_ctxp_color_copy(void *data,
                     Evas_Object *obj,
@@ -1105,20 +1123,12 @@ _cb_ctxp_color_copy(void *data,
    const char *txt;
    EINA_SAFETY_ON_NULL_RETURN(sd);
 
-   if (sd->link.color.a == 255)
-     txt = eina_stringshare_printf("#%.2x%.2x%.2x",
-                                   sd->link.color.r,
-                                   sd->link.color.g,
-                                   sd->link.color.b);
-   else
-     txt = eina_stringshare_printf("#%.2x%.2x%.2x%.2x",
-                                   sd->link.color.r,
-                                   sd->link.color.g,
-                                   sd->link.color.b,
-                                   sd->link.color.a);
+   txt = _color_to_txt(sd);
+   if (!sd) return;
 
    termio_take_selection_text(sd, ELM_SEL_TYPE_CLIPBOARD, txt);
 
+   eina_stringshare_del(txt);
    sd->ctxpopup = NULL;
    evas_object_del(obj);
 }
@@ -1410,6 +1420,7 @@ _color_tooltip_content(void *data,
    Termio *sd = data;
    Evas_Object *o;
    Evas *canvas = evas_object_evas_get(obj);
+   const char *txt;
 
    o = edje_object_add(canvas);
    theme_apply(o, sd->config, "terminology/color_preview");
@@ -1418,6 +1429,10 @@ _color_tooltip_content(void *data,
        sd->link.color.r, sd->link.color.g, sd->link.color.b, sd->link.color.a,
        sd->link.color.r, sd->link.color.g, sd->link.color.b, sd->link.color.a,
        sd->link.color.r, sd->link.color.g, sd->link.color.b, sd->link.color.a);
+
+   txt = _color_to_txt(sd);
+   edje_object_part_text_set(o, "name", txt);
+   eina_stringshare_del(txt);
    return o;
 }
 

-- 


Reply via email to