billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=423ad1f52cc5028703e1e4c0591b431f00ae06e5

commit 423ad1f52cc5028703e1e4c0591b431f00ae06e5
Author: Boris Faure <[email protected]>
Date:   Wed Sep 9 21:32:46 2020 +0200

    color schemes: add eet-related code
---
 src/bin/colors.c | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/bin/colors.h | 40 +++++++++++++++++++++++++++
 src/bin/main.c   |  2 ++
 3 files changed, 124 insertions(+)

diff --git a/src/bin/colors.c b/src/bin/colors.c
index 46208b1..abbe24f 100644
--- a/src/bin/colors.c
+++ b/src/bin/colors.c
@@ -370,6 +370,9 @@ static const Color default_colors256[256] =
    { 0xee, 0xee, 0xee, 0xff },
 };
 
+static Eet_Data_Descriptor *edd_cs = NULL;
+static Eet_Data_Descriptor *edd_color = NULL;
+
 void
 colors_term_init(Evas_Object *textgrid,
                  const Evas_Object *bg,
@@ -655,3 +658,82 @@ color_scheme_apply(Evas_Object *edje,
 #undef CS_YELLOW
 #undef CS_SET
 }
+
+void
+colors_init(void)
+{
+   Eet_Data_Descriptor_Class eddc;
+
+   eet_eina_stream_data_descriptor_class_set
+     (&eddc, sizeof(eddc), "Color", sizeof(Color));
+   edd_color = eet_data_descriptor_stream_new(&eddc);
+
+   EET_DATA_DESCRIPTOR_ADD_BASIC
+     (edd_color, Color, "r", r, EET_T_UCHAR);
+   EET_DATA_DESCRIPTOR_ADD_BASIC
+     (edd_color, Color, "g", g, EET_T_UCHAR);
+   EET_DATA_DESCRIPTOR_ADD_BASIC
+     (edd_color, Color, "b", b, EET_T_UCHAR);
+   EET_DATA_DESCRIPTOR_ADD_BASIC
+     (edd_color, Color, "a", a, EET_T_UCHAR);
+
+   eet_eina_stream_data_descriptor_class_set
+     (&eddc, sizeof(eddc), "Color_Scheme", sizeof(Color_Scheme));
+   edd_cs = eet_data_descriptor_stream_new(&eddc);
+
+   EET_DATA_DESCRIPTOR_ADD_BASIC
+     (edd_cs, Color_Scheme, "version", version, EET_T_INT);
+
+   EET_DATA_DESCRIPTOR_ADD_BASIC
+     (edd_cs, Color_Scheme, "md.version", md.version, EET_T_INT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC
+     (edd_cs, Color_Scheme, "md.name", md.name, EET_T_STRING);
+   EET_DATA_DESCRIPTOR_ADD_BASIC
+     (edd_cs, Color_Scheme, "md.author", md.author, EET_T_STRING);
+   EET_DATA_DESCRIPTOR_ADD_BASIC
+     (edd_cs, Color_Scheme, "md.website", md.website, EET_T_STRING);
+   EET_DATA_DESCRIPTOR_ADD_BASIC
+     (edd_cs, Color_Scheme, "md.license", md.license, EET_T_STRING);
+
+   EET_DATA_DESCRIPTOR_ADD_SUB_NESTED
+      (edd_cs, Color_Scheme, "def", def, edd_color);
+   EET_DATA_DESCRIPTOR_ADD_SUB_NESTED
+      (edd_cs, Color_Scheme, "bg", bg, edd_color);
+   EET_DATA_DESCRIPTOR_ADD_SUB_NESTED
+      (edd_cs, Color_Scheme, "fg", fg, edd_color);
+   EET_DATA_DESCRIPTOR_ADD_SUB_NESTED
+      (edd_cs, Color_Scheme, "main", main, edd_color);
+   EET_DATA_DESCRIPTOR_ADD_SUB_NESTED
+      (edd_cs, Color_Scheme, "hl", hl, edd_color);
+   EET_DATA_DESCRIPTOR_ADD_SUB_NESTED
+      (edd_cs, Color_Scheme, "end_sel", end_sel, edd_color);
+
+   EET_DATA_DESCRIPTOR_ADD_SUB_NESTED
+      (edd_cs, Color_Scheme, "tab_missed_1", tab_missed_1, edd_color);
+   EET_DATA_DESCRIPTOR_ADD_SUB_NESTED
+      (edd_cs, Color_Scheme, "tab_missed_2", tab_missed_2, edd_color);
+   EET_DATA_DESCRIPTOR_ADD_SUB_NESTED
+      (edd_cs, Color_Scheme, "tab_missed_3", tab_missed_3, edd_color);
+   EET_DATA_DESCRIPTOR_ADD_SUB_NESTED
+      (edd_cs, Color_Scheme, "tab_missed_over_1", tab_missed_over_1, 
edd_color);
+   EET_DATA_DESCRIPTOR_ADD_SUB_NESTED
+      (edd_cs, Color_Scheme, "tab_missed_over_2", tab_missed_over_2, 
edd_color);
+   EET_DATA_DESCRIPTOR_ADD_SUB_NESTED
+      (edd_cs, Color_Scheme, "tab_missed_over_3", tab_missed_over_3, 
edd_color);
+
+   EET_DATA_DESCRIPTOR_ADD_SUB_NESTED
+      (edd_cs, Color_Scheme, "tab_title_2", tab_title_2, edd_color);
+
+   EET_DATA_DESCRIPTOR_ADD_ARRAY
+     (edd_cs, Color_Scheme, "ansi", ansi, edd_color);
+}
+
+void
+colors_shutdown(void)
+{
+   eet_data_descriptor_free(edd_cs);
+   edd_cs = NULL;
+
+   eet_data_descriptor_free(edd_color);
+   edd_color = NULL;
+}
diff --git a/src/bin/colors.h b/src/bin/colors.h
index e2f2f58..ed30ae1 100644
--- a/src/bin/colors.h
+++ b/src/bin/colors.h
@@ -4,6 +4,39 @@
 #include <Evas.h>
 #include "config.h"
 
+typedef struct _Color_Scheme Color_Scheme;
+
+struct _Color_Scheme
+{
+   int version;
+   struct {
+        int         version;
+        const char *name;
+        const char *author;
+        const char *website;
+        const char *license;
+   } md;
+
+   Color def;
+   Color bg;
+   Color fg;
+   Color main;
+   Color hl;
+   Color end_sel;
+
+   Color tab_missed_1;
+   Color tab_missed_2;
+   Color tab_missed_3;
+   Color tab_missed_over_1;
+   Color tab_missed_over_2;
+   Color tab_missed_over_3;
+
+   Color tab_title_2;
+
+   Color ansi[16];
+};
+
+
 void
 colors_term_init(Evas_Object *textgrid,
                  const Evas_Object *bg,
@@ -28,4 +61,11 @@ void
 color_scheme_apply(Evas_Object *edje,
                    const Config *config);
 
+void
+colors_init(void);
+
+void
+colors_shutdown(void);
+
+
 #endif
diff --git a/src/bin/main.c b/src/bin/main.c
index 917e50b..4e76ab5 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -879,6 +879,7 @@ elm_main(int argc, char **argv)
      }
 
    config_init();
+   colors_init();
 
    _main_config = config_load();
    if (key_bindings_load(_main_config) < 0)
@@ -1063,6 +1064,7 @@ elm_main(int argc, char **argv)
 
    config_del(_main_config);
    key_bindings_shutdown();
+   colors_shutdown();
    config_shutdown();
    controls_shutdown();
    eina_log_domain_unregister(_log_domain);

-- 


Reply via email to