billiob pushed a commit to branch master.

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

commit a1d4f5ea6db65ad0955272c22fa26cc09b081a35
Author: Boris Faure <bill...@gmail.com>
Date:   Mon Sep 21 23:04:46 2020 +0200

    colors: load it from files
---
 src/bin/colors.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/src/bin/colors.c b/src/bin/colors.c
index f047f5f..df215d3 100644
--- a/src/bin/colors.c
+++ b/src/bin/colors.c
@@ -705,6 +705,58 @@ color_scheme_apply(Evas_Object *edje,
 #undef CS_SET
 }
 
+Color_Scheme *
+_color_scheme_from_file(const char *path, const char *name)
+{
+   Eet_File *ef;
+   Color_Scheme *cs;
+
+   ef = eet_open(path, EET_FILE_MODE_READ);
+   if (!ef)
+     return NULL;
+
+   cs = eet_data_read(ef, edd_cs, name);
+   eet_close(ef);
+
+   return cs;
+}
+
+Color_Scheme *
+color_scheme_get(const char *name)
+{
+   static char path_user[PATH_MAX] = "";
+   static char path_app[PATH_MAX] = "";
+   Color_Scheme *cs_user;
+   Color_Scheme *cs_app;
+
+   snprintf(path_user, sizeof(path_user) - 1,
+            "%s/terminology/" COLORSCHEMES_FILENAME,
+            efreet_config_home_get());
+
+   snprintf(path_app, sizeof(path_app) - 1,
+            "%s/" COLORSCHEMES_FILENAME,
+            elm_app_data_dir_get());
+
+
+   cs_user = _color_scheme_from_file(path_user, name);
+   cs_app = _color_scheme_from_file(path_app, name);
+
+   if (cs_user && cs_app)
+     {
+        /* Prefer user file */
+        if (cs_user->md.version >= cs_app->md.version)
+          return cs_user;
+        else
+          return cs_app;
+     }
+   else if (cs_user)
+     return cs_user;
+   else if (cs_app)
+     return cs_app;
+   else
+     return NULL;
+}
+
 void
 colors_init(void)
 {

-- 


Reply via email to