billiob pushed a commit to branch master.

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

commit 7bb1639260bc58ae4511d8fdac9e796663c4178b
Author: Boris Faure <bill...@gmail.com>
Date:   Wed Nov 4 23:17:32 2020 +0100

    options_colors: be able to select color scheme
---
 src/bin/options_colors.c | 40 +++++++++++++++++++++++++++-------------
 1 file changed, 27 insertions(+), 13 deletions(-)

diff --git a/src/bin/options_colors.c b/src/bin/options_colors.c
index ff7601a..da1a8b9 100644
--- a/src/bin/options_colors.c
+++ b/src/bin/options_colors.c
@@ -16,6 +16,7 @@ typedef struct _Color_Scheme_Ctx
    Evas_Coord pv_width;
    Evas_Coord pv_height;
    Eina_List *cs_infos;
+   Ecore_Timer *seltimer;
 } Color_Scheme_Ctx;
 
 typedef struct _Color_Scheme_Info
@@ -67,17 +68,33 @@ _cb_op_color_scheme_sel(void *data,
                         void *_event EINA_UNUSED)
 {
    Color_Scheme_Info *csi = data;
+   Color_Scheme *cs = csi->cs;
    Config *config = csi->ctx->config;
 
-   ERR("TODO: csi sel %p cfg:%p", csi, config);
-#if 0
-   if ((config->theme) && (!strcmp(t->name, config->theme)))
+   if ((config->color_scheme_name) &&
+       (!strcmp(cs->md.name, config->color_scheme_name)))
      return;
 
-   eina_stringshare_replace(&(config->theme), t->name);
+   eina_stringshare_replace(&(config->color_scheme_name), cs->md.name);
+   free((void*)config->color_scheme);
+   config->color_scheme = color_scheme_dup(cs);
+
    config_save(config);
-   change_theme(termio_win_get(t->ctx->term), config);
-#endif
+   change_theme(termio_win_get(csi->ctx->term), config);
+}
+
+static Eina_Bool
+_cb_sel_item(void *data)
+{
+   Color_Scheme_Info *csi = data;
+
+   if (csi)
+     {
+        elm_gengrid_item_selected_set(csi->item, EINA_TRUE);
+        elm_gengrid_item_bring_in(csi->item, ELM_GENGRID_ITEM_SCROLLTO_MIDDLE);
+        csi->ctx->seltimer = NULL;
+     }
+   return EINA_FALSE;
 }
 
 static void
@@ -94,6 +111,7 @@ _parent_del_cb(void *data,
         free(csi->cs);
         free(csi);
      }
+   ecore_timer_del(ctx->seltimer);
    free(ctx);
 }
 
@@ -116,7 +134,6 @@ options_colors(Evas_Object *opbox, Evas_Object *term)
    ctx->term = term;
    ctx->pv_width = (COLOR_MODE_PREVIEW_WIDTH+0) * chw;
    ctx->pv_height = (COLOR_MODE_PREVIEW_HEIGHT+0) * chh;
-   ERR("w:%d, h:%d", ctx->pv_width, ctx->pv_height);
    if (ctx->pv_width >= ctx->pv_height)
      ctx->pv_height = ctx->pv_width;
    else
@@ -147,7 +164,6 @@ options_colors(Evas_Object *opbox, Evas_Object *term)
    o = elm_gengrid_add(opbox);
    evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
-   //elm_gengrid_item_size_set(o, ctx->pv_width + 10, ctx->pv_height + 10);
 
    schemes = color_scheme_list();
 
@@ -166,15 +182,13 @@ options_colors(Evas_Object *opbox, Evas_Object *term)
           {
              ctx->cs_infos = eina_list_append(ctx->cs_infos, csi);
 
-#if 0
-             if ((config) && (config->theme) &&
-                 (!strcmp(config->theme, t->name)))
+             if ((config) && (config->color_scheme_name) &&
+                 (!strcmp(config->color_scheme_name, cs->md.name)))
                {
                   if (ctx->seltimer)
                     ecore_timer_del(ctx->seltimer);
-                  ctx->seltimer = ecore_timer_add(0.2, _cb_sel_item, t);
+                  ctx->seltimer = ecore_timer_add(0.2, _cb_sel_item, csi);
                }
-#endif
           }
         else
           {

-- 


Reply via email to