Awesome.

Just FYI, the dialog takes ages to open.

--
Tom.

On 16/12/13 14:54, Carsten Haitzler wrote:
> raster pushed a commit to branch master.
>
> http://git.enlightenment.org/apps/terminology.git/commit/?id=f40eab09f26f4ee2c6008dbd0f6ca1a2da8516b1
>
> commit f40eab09f26f4ee2c6008dbd0f6ca1a2da8516b1
> Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
> Date:   Mon Dec 16 23:51:35 2013 +0900
>
>      color options - fill in colors options panel.
>
>      this makes the colors config work and able to save/load a custom
>      color palette. when enabled it overrides the theme provided palette
>      for the "base" 48 colors (normal + bright with intense modes of each).
> ---
>   src/bin/col.c             |  94 +++++++++++-----
>   src/bin/col.h             |   3 +-
>   src/bin/config.c          |  46 +++++++-
>   src/bin/config.h          |   8 ++
>   src/bin/main.c            |   4 +-
>   src/bin/options_colors.c  | 269 
> ++++++++++++++++++++++++++++++++++++++++++++--
>   src/bin/options_themepv.c |   2 +-
>   src/bin/termio.c          |   2 +
>   8 files changed, 391 insertions(+), 37 deletions(-)
>
> diff --git a/src/bin/col.c b/src/bin/col.c
> index 2a5da82..7203ea3 100644
> --- a/src/bin/col.c
> +++ b/src/bin/col.c
> @@ -1,6 +1,7 @@
>   #include "private.h"
> +#include <Elementary.h>
> +#include "config.h"
>   #include "col.h"
> -#include <Edje.h>
>
>   typedef struct _Color Color;
>
> @@ -377,7 +378,7 @@ static const Color colors256[256] =
>   };
>
>   void
> -colors_term_init(Evas_Object *textgrid, Evas_Object *bg)
> +colors_term_init(Evas_Object *textgrid, Evas_Object *bg, Config *config)
>   {
>      int c, n;
>      int r, g, b, a;
> @@ -385,36 +386,56 @@ colors_term_init(Evas_Object *textgrid, Evas_Object *bg)
>
>      for (c = 0; c < 4 * 12; c++)
>        {
> -        snprintf(buf, sizeof(buf) - 1, "c%i", c);
> -
> -        n = c + 24 * ( c / 24);
> -
> -        if (edje_object_color_class_get(bg, buf,
> -                                        &r, &g, &b, &a,
> -                                        NULL, NULL, NULL, NULL,
> -                                        NULL, NULL, NULL, NULL))
> +        if (config->colors_use)
>             {
> +             n = c + (24 * (c / 24));
> +
> +             r = config->colors[c].r;
> +             g = config->colors[c].g;
> +             b = config->colors[c].b;
> +             a = config->colors[c].a;
>                /* normal */
> -             evas_object_textgrid_palette_set(
> -                 textgrid, EVAS_TEXTGRID_PALETTE_STANDARD, n,
> -                 r, g, b, a);
> +             evas_object_textgrid_palette_set
> +             (textgrid, EVAS_TEXTGRID_PALETTE_STANDARD, n,
> +              r, g, b, a);
>                /* faint */
> -             evas_object_textgrid_palette_set(
> -                 textgrid, EVAS_TEXTGRID_PALETTE_STANDARD, n + 24,
> -                 r/2, g/2, b/2, a/2);
> +             evas_object_textgrid_palette_set
> +             (textgrid, EVAS_TEXTGRID_PALETTE_STANDARD, n + 24,
> +              r / 2, g / 2, b / 2, a / 2);
>             }
>           else
>             {
> -             Color color = colors[c/24][(c%24)/12][c%12];
> -
> -             /* normal */
> -             evas_object_textgrid_palette_set(
> -                 textgrid, EVAS_TEXTGRID_PALETTE_STANDARD, n,
> -                 color.r, color.g, color.b, color.a);
> -             /* faint */
> -             evas_object_textgrid_palette_set(
> -                 textgrid, EVAS_TEXTGRID_PALETTE_STANDARD, n + 24,
> -                 color.r/2, color.g/2, color.b/2, color.a/2);
> +             snprintf(buf, sizeof(buf) - 1, "c%i", c);
> +
> +             n = c + (24 * (c / 24));
> +
> +             if (edje_object_color_class_get(bg, buf,
> +                                             &r, &g, &b, &a,
> +                                             NULL, NULL, NULL, NULL,
> +                                             NULL, NULL, NULL, NULL))
> +               {
> +                  /* normal */
> +                  evas_object_textgrid_palette_set
> +                  (textgrid, EVAS_TEXTGRID_PALETTE_STANDARD, n,
> +                   r, g, b, a);
> +                  /* faint */
> +                  evas_object_textgrid_palette_set
> +                  (textgrid, EVAS_TEXTGRID_PALETTE_STANDARD, n + 24,
> +                   r / 2, g / 2, b / 2, a / 2);
> +               }
> +             else
> +               {
> +                  Color color = colors[c / 24][(c % 24) / 12][c % 12];
> +
> +                  /* normal */
> +                  evas_object_textgrid_palette_set
> +                  (textgrid, EVAS_TEXTGRID_PALETTE_STANDARD, n,
> +                   color.r, color.g, color.b, color.a);
> +                  /* faint */
> +                  evas_object_textgrid_palette_set
> +                  (textgrid, EVAS_TEXTGRID_PALETTE_STANDARD, n + 24,
> +                   color.r / 2, color.g / 2, color.b / 2, color.a / 2);
> +               }
>             }
>        }
>      for (c = 0; c < 256; c++)
> @@ -440,3 +461,24 @@ colors_term_init(Evas_Object *textgrid, Evas_Object *bg)
>             }
>        }
>   }
> +
> +void
> +colors_standard_get(int set, int col, unsigned char *r, unsigned char *g, 
> unsigned char *b, unsigned char *a)
> +{
> +   if ((set >= 0) && (set < 4))
> +     {
> +        int s1, s2;
> +
> +        s1 = set / 2;
> +        s2 = set % 2;
> +        *r = colors[s1][s2][col].r;
> +        *g = colors[s1][s2][col].g;
> +        *b = colors[s1][s2][col].b;
> +        *a = colors[s1][s2][col].a;
> +        return;
> +     }
> +   *r = 0;
> +   *g = 0;
> +   *b = 0;
> +   *a = 0;
> +}
> diff --git a/src/bin/col.h b/src/bin/col.h
> index ecae5d7..8332ae7 100644
> --- a/src/bin/col.h
> +++ b/src/bin/col.h
> @@ -3,6 +3,7 @@
>
>   #include <Evas.h>
>
> -void colors_term_init(Evas_Object *textgrid, Evas_Object *bg);
> +void colors_term_init(Evas_Object *textgrid, Evas_Object *bg, Config 
> *config);
> +void colors_standard_get(int set, int col, unsigned char *r, unsigned char 
> *g, unsigned char *b, unsigned char *a);
>
>   #endif
> diff --git a/src/bin/config.c b/src/bin/config.c
> index 1c93927..bd93688 100644
> --- a/src/bin/config.c
> +++ b/src/bin/config.c
> @@ -4,12 +4,14 @@
>   #include <Efreet.h>
>   #include "config.h"
>   #include "main.h"
> +#include "col.h"
>
> -#define CONF_VER 1
> +#define CONF_VER 2
>
>   #define LIM(v, min, max) {if (v >= max) v = max; else if (v <= min) v = 
> min;}
>
>   static Eet_Data_Descriptor *edd_base = NULL;
> +static Eet_Data_Descriptor *edd_color = NULL;
>
>   static const char *
>   _config_home_get(void)
> @@ -28,6 +30,19 @@ config_init(void)
>      eet_eina_stream_data_descriptor_class_set
>        (&eddc, sizeof(eddc), "Config", sizeof(Config));
>      edd_base = eet_data_descriptor_stream_new(&eddc);
> +
> +   eet_eina_stream_data_descriptor_class_set
> +     (&eddc, sizeof(eddc), "Config_Color", sizeof(Config_Color));
> +   edd_color = eet_data_descriptor_stream_new(&eddc);
> +
> +   EET_DATA_DESCRIPTOR_ADD_BASIC
> +     (edd_color, Config_Color, "r", r, EET_T_UCHAR);
> +   EET_DATA_DESCRIPTOR_ADD_BASIC
> +     (edd_color, Config_Color, "g", g, EET_T_UCHAR);
> +   EET_DATA_DESCRIPTOR_ADD_BASIC
> +     (edd_color, Config_Color, "b", b, EET_T_UCHAR);
> +   EET_DATA_DESCRIPTOR_ADD_BASIC
> +     (edd_color, Config_Color, "a", a, EET_T_UCHAR);
>
>      EET_DATA_DESCRIPTOR_ADD_BASIC
>        (edd_base, Config, "version", version, EET_T_INT);
> @@ -100,6 +115,10 @@ config_init(void)
>      EET_DATA_DESCRIPTOR_ADD_BASIC
>        (edd_base, Config, "application_server_restore_views",
>         application_server_restore_views, EET_T_UCHAR);
> +   EET_DATA_DESCRIPTOR_ADD_BASIC
> +     (edd_base, Config, "colors_use", colors_use, EET_T_UCHAR);
> +   EET_DATA_DESCRIPTOR_ADD_ARRAY
> +     (edd_base, Config, "colors", colors, edd_color);
>   }
>
>   void
> @@ -110,6 +129,11 @@ config_shutdown(void)
>           eet_data_descriptor_free(edd_base);
>           edd_base = NULL;
>        }
> +   if (edd_color)
> +     {
> +        eet_data_descriptor_free(edd_color);
> +        edd_color = NULL;
> +     }
>      efreet_shutdown();
>   }
>
> @@ -186,6 +210,8 @@ config_sync(const Config *config_src, Config *config)
>      config->custom_geometry = config_src->custom_geometry;
>      config->cg_width = config_src->cg_width;
>      config->cg_height = config_src->cg_height;
> +   config->colors_use = config_src->colors_use;
> +   memcpy(config->colors, config_src->colors, sizeof(config->colors));
>   }
>
>   Config *
> @@ -406,6 +432,8 @@ config_load(const char *key)
>           config = calloc(1, sizeof(Config));
>           if (config)
>             {
> +             int i, j;
> +
>                config->version = CONF_VER;
>                config->font.bitmap = EINA_TRUE;
>                config->font.name = eina_stringshare_add("nexus.pcf");
> @@ -445,6 +473,20 @@ config_load(const char *key)
>                config->custom_geometry = EINA_FALSE;
>                config->cg_width = 80;
>                config->cg_height = 24;
> +             config->colors_use = EINA_FALSE;
> +             for (j = 0; j < 4; j++)
> +               {
> +                  for (i = 0; i < 12; i++)
> +                    {
> +                       unsigned char rr = 0, gg = 0, bb = 0, aa = 0;
> +
> +                       colors_standard_get(j, i, &rr, &gg, &bb, &aa);
> +                       config->colors[(j * 12) + i].r = rr;
> +                       config->colors[(j * 12) + i].g = gg;
> +                       config->colors[(j * 12) + i].b = bb;
> +                       config->colors[(j * 12) + i].a = aa;
> +                    }
> +               }
>             }
>        }
>
> @@ -498,6 +540,8 @@ config_fork(Config *config)
>      CPY(custom_geometry);
>      CPY(cg_width);
>      CPY(cg_height);
> +   CPY(colors_use);
> +   memcpy(config2->colors, config->colors, sizeof(config->colors));
>
>      CPY(temporary);
>      SCPY(config_key);
> diff --git a/src/bin/config.h b/src/bin/config.h
> index 18d4f29..ecf6cf5 100644
> --- a/src/bin/config.h
> +++ b/src/bin/config.h
> @@ -2,9 +2,15 @@
>   #define _CONFIG_H__ 1
>
>   typedef struct _Config Config;
> +typedef struct _Config_Color Config_Color;
>
>   /* TODO: separate config per terminal (tab, window) and global. */
>
> +struct _Config_Color
> +{
> +   unsigned char r, g, b, a;
> +};
> +
>   struct _Config
>   {
>      int version;
> @@ -48,6 +54,8 @@ struct _Config
>      Eina_Bool         drag_links;
>      int               cg_width;
>      int               cg_height;
> +   Eina_Bool         colors_use;
> +   Config_Color      colors[(4 * 12)];
>
>      Eina_Bool         temporary; /* not in EET */
>      const char       *config_key; /* not in EET, the key that config was 
> loaded */
> diff --git a/src/bin/main.c b/src/bin/main.c
> index 44f9c27..72de4c4 100644
> --- a/src/bin/main.c
> +++ b/src/bin/main.c
> @@ -121,7 +121,7 @@ void change_theme(Evas_Object *win, Config *config)
>
>           if (!theme_apply(edje, config, "terminology/background"))
>             ERR("Couldn't find terminology theme!");
> -        colors_term_init(termio_textgrid_get(term->term), edje);
> +        colors_term_init(termio_textgrid_get(term->term), edje, config);
>           termio_config_set(term->term, config);
>        }
>   }
> @@ -2172,7 +2172,7 @@ main_term_new(Win *wn, Config *config, const char *cmd,
>
>      term->term = o = termio_add(wn->win, config, cmd, login_shell, cd,
>                                  size_w, size_h);
> -   colors_term_init(termio_textgrid_get(term->term), term->bg);
> +   colors_term_init(termio_textgrid_get(term->term), term->bg, config);
>
>      termio_win_set(o, wn->win);
>      termio_theme_set(o, term->bg);
> diff --git a/src/bin/options_colors.c b/src/bin/options_colors.c
> index 62bc69f..10f025d 100644
> --- a/src/bin/options_colors.c
> +++ b/src/bin/options_colors.c
> @@ -6,15 +6,272 @@
>   #include "options.h"
>   #include "options_colors.h"
>
> -void
> -options_colors(Evas_Object *opbox, Evas_Object *term EINA_UNUSED)
> +static const char mapping[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11 };
> +static const char *mapping_names[] =
> +  {
> +     "Default",
> +     "Black",
> +     "Red",
> +     "Green",
> +     "Yellow",
> +     "Blue",
> +     "Magenta",
> +     "Cyan",
> +     "White",
> +     "Inverse",
> +     "Inverse Base"
> +  };
> +
> +static Elm_Object_Item *colitem[4][11] = { { NULL } };
> +static Evas_Object *colorsel = NULL;
> +static Elm_Object_Item *curitem = NULL;
> +static Evas_Object *colpal[4] = { NULL };
> +static Evas_Object *label = NULL, *reset = NULL;
> +
> +static void
> +_cb_op_use_custom_chg(void *data EINA_UNUSED, Evas_Object *obj, void *event 
> EINA_UNUSED)
> +{
> +   Evas_Object *term = data;
> +   Config *config = termio_config_get(term);
> +   Eina_Bool state = EINA_FALSE;
> +   int i;
> +
> +   state = elm_check_state_get(obj);
> +   elm_object_disabled_set(colorsel, !state);
> +   for (i = 0; i < 4; i++) elm_object_disabled_set(colpal[i], !state);
> +   elm_object_disabled_set(label, !state);
> +   config->colors_use = state;
> +   termio_config_update(term);
> +   config_save(config, NULL);
> +}
> +
> +static void
> +_cb_op_color_item_sel(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, 
> void *event)
> +{
> +   Elm_Object_Item *it = event;
> +   int r = 0, g = 0, b = 0, a = 0;
> +   int i, j;
> +
> +   curitem = it;
> +   elm_colorselector_palette_item_color_get(it, &r, &g, &b, &a);
> +   elm_colorselector_color_set(colorsel, r, g, b, a);
> +   for (j = 0; j < 4; j++)
> +     {
> +        for (i = 0; i < 11; i++)
> +          {
> +             if (colitem[j][i] == it)
> +               elm_object_text_set(label, mapping_names[i]);
> +          }
> +     }
> +}
> +
> +static void
> +_cb_op_color_chg(void *data EINA_UNUSED, Evas_Object *obj, void *event 
> EINA_UNUSED)
>   {
> -   Evas_Object *o;
> +   Evas_Object *term = data;
> +   Config *config = termio_config_get(term);
> +   int r = 0, g = 0, b = 0, a = 0, rr = 0, gg = 0, bb = 0, aa = 0;
> +   int i, j;
>
> -   o = elm_label_add(opbox);
> +   elm_colorselector_palette_item_color_get(curitem, &rr, &gg, &bb, &aa);
> +   elm_colorselector_color_get(obj, &r, &g, &b, &a);
> +   if ((r != rr) || (g != gg) || (b != bb) || (a != aa))
> +     {
> +        if (curitem)
> +          elm_colorselector_palette_item_color_set(curitem, r, g, b, a);
> +        elm_object_disabled_set(reset, EINA_FALSE);
> +        for (j = 0; j < 4; j++)
> +          {
> +             for (i = 0; i < 11; i++)
> +               {
> +                  if (colitem[j][i] == curitem)
> +                    {
> +                       config->colors[(j * 12) + mapping[i]].r = r;
> +                       config->colors[(j * 12) + mapping[i]].g = g;
> +                       config->colors[(j * 12) + mapping[i]].b = b;
> +                       config->colors[(j * 12) + mapping[i]].a = a;
> +                       termio_config_update(term);
> +                       config_save(config, NULL);
> +                       return;
> +                    }
> +               }
> +          }
> +     }
> +}
> +
> +static void
> +_cb_op_reset(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void 
> *event EINA_UNUSED)
> +{
> +   Evas_Object *term = data;
> +   Config *config = termio_config_get(term);
> +   int r = 0, g = 0, b = 0, a = 0;
> +   int i, j;
> +
> +   for (j = 0; j < 4; j++)
> +     {
> +        for (i = 0; i < 12; i++)
> +          {
> +             unsigned char rr = 0, gg = 0, bb = 0, aa = 0;
> +
> +             colors_standard_get(j, i, &rr, &gg, &bb, &aa);
> +             config->colors[(j * 12) + i].r = rr;
> +             config->colors[(j * 12) + i].g = gg;
> +             config->colors[(j * 12) + i].b = bb;
> +             config->colors[(j * 12) + i].a = aa;
> +          }
> +        for (i = 0; i < 11; i++)
> +          {
> +             elm_colorselector_palette_item_color_set
> +               (colitem[j][i],
> +                config->colors[(j * 12) + mapping[i]].r,
> +                config->colors[(j * 12) + mapping[i]].g,
> +                config->colors[(j * 12) + mapping[i]].b,
> +                config->colors[(j * 12) + mapping[i]].a);
> +          }
> +     }
> +   elm_object_disabled_set(reset, EINA_TRUE);
> +   elm_colorselector_palette_item_color_get(curitem, &r, &g, &b, &a);
> +   elm_colorselector_color_set(colorsel, r, g, b, a);
> +   termio_config_update(term);
> +   config_save(config, NULL);
> +}
> +
> +static void
> +_cb_op_scroller_resize(void *data EINA_UNUSED, Evas *e EINA_UNUSED, 
> Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
> +{
> +   // make color palettes wrap back. :) works with elm git.
> +   int i;
> +
> +   for (i = 0; i < 4; i++) evas_object_resize(colpal[i], 1, 1);
> +}
> +
> +void
> +options_colors(Evas_Object *opbox, Evas_Object *term)
> +{
> +   Config *config = termio_config_get(term);
> +   Evas_Object *o, *fr, *bx, *sc, *bx2, *bx3, *bx4;
> +   int i, j;
> +   int r = 0, g = 0, b = 0, a = 0;
> +
> +   fr = o = elm_frame_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_object_text_set(o, "Not Implemented Yet.");
> -   evas_object_show(o);
> +   elm_object_text_set(o, "Colors");
>      elm_box_pack_end(opbox, o);
> +   evas_object_show(o);
> +
> +   bx = o = elm_box_add(opbox);
> +   elm_box_horizontal_set(o, EINA_TRUE);
> +   evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
> +   evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.0);
> +   elm_object_content_set(fr, o);
> +   evas_object_show(o);
> +
> +   sc = o = elm_scroller_add(opbox);
> +   evas_object_event_callback_add(o, EVAS_CALLBACK_RESIZE,
> +                                  _cb_op_scroller_resize, NULL);
> +   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_box_pack_end(bx, o);
> +   evas_object_show(o);
> +
> +   bx3 = o = elm_box_add(opbox);
> +   evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
> +   evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.0);
> +   elm_object_content_set(sc, o);
> +   evas_object_show(o);
> +
> +   for (j = 0; j < 4; j++)
> +     {
> +        o = elm_label_add(opbox);
> +        if (j == 0) elm_object_text_set(o, "Normal");
> +        else if (j == 1) elm_object_text_set(o, "Bright");
> +        else if (j == 2) elm_object_text_set(o, "Normal 2");
> +        else if (j == 3) elm_object_text_set(o, "Bright 2");
> +        evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
> +        evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
> +        elm_box_pack_end(bx3, o);
> +        evas_object_show(o);
> +
> +        colpal[j] = o = elm_colorselector_add(opbox);
> +        evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
> +        evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
> +        elm_colorselector_mode_set(o, ELM_COLORSELECTOR_PALETTE);
> +        for (i = 0; i < 11; i++)
> +          {
> +             Elm_Object_Item *it;
> +
> +             it = elm_colorselector_palette_color_add
> +               (o,
> +                config->colors[(j * 12) + mapping[i]].r,
> +                config->colors[(j * 12) + mapping[i]].g,
> +                config->colors[(j * 12) + mapping[i]].b,
> +                config->colors[(j * 12) + mapping[i]].a);
> +             colitem[j][i] = it;
> +          }
> +        evas_object_smart_callback_add(o, "color,item,selected",
> +                                       _cb_op_color_item_sel, term);
> +        elm_box_pack_end(bx3, o);
> +        evas_object_show(o);
> +        if (j == 1)
> +          {
> +             o = elm_separator_add(opbox);
> +             evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
> +             evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
> +             elm_separator_horizontal_set(o, EINA_TRUE);
> +             elm_box_pack_end(bx3, o);
> +             evas_object_show(o);
> +          }
> +     }
> +
> +   curitem = colitem[0][0];
> +
> +   bx2 = o = elm_box_add(opbox);
> +   evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
> +   evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.0);
> +   elm_box_pack_end(bx, o);
> +   evas_object_show(o);
> +
> +   label = o = elm_label_add(opbox);
> +   elm_object_text_set(o, mapping_names[0]);
> +   evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
> +   evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
> +   elm_box_pack_end(bx2, o);
> +   evas_object_show(o);
> +
> +   colorsel = o = elm_colorselector_add(opbox);
> +   elm_colorselector_palette_item_color_get(colitem[0][0], &r, &g, &b, &a);
> +   elm_colorselector_color_set(o, r, g, b, a);
> +   elm_colorselector_mode_set(o, ELM_COLORSELECTOR_COMPONENTS);
> +   evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
> +   evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
> +   elm_box_pack_end(bx2, o);
> +   evas_object_show(o);
> +   evas_object_smart_callback_add(o, "changed", _cb_op_color_chg, term);
> +
> +   bx4 = o = elm_box_add(opbox);
> +   elm_box_horizontal_set(o, EINA_TRUE);
> +   evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
> +   evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.0);
> +   elm_box_pack_end(bx2, o);
> +   evas_object_show(o);
> +
> +   o = elm_check_add(opbox);
> +   evas_object_size_hint_weight_set(o, 1.0, 0.0);
> +   evas_object_size_hint_align_set(o, 0.0, 0.5);
> +   elm_object_text_set(o, "Use");
> +   elm_check_state_set(o, config->colors_use);
> +   elm_box_pack_end(bx4, o);
> +   evas_object_show(o);
> +   evas_object_smart_callback_add(o, "changed", _cb_op_use_custom_chg, term);
> +
> +   reset = o = elm_button_add(opbox);
> +   elm_object_disabled_set(o, EINA_TRUE);
> +   evas_object_size_hint_weight_set(o, 1.0, 0.0);
> +   evas_object_size_hint_align_set(o, 1.0, 0.5);
> +   elm_object_text_set(o, "Reset");
> +   elm_box_pack_end(bx4, o);
> +   evas_object_show(o);
> +   evas_object_smart_callback_add(o, "clicked", _cb_op_reset, term);
> +
>   }
> diff --git a/src/bin/options_themepv.c b/src/bin/options_themepv.c
> index f60c640..a40cd3e 100644
> --- a/src/bin/options_themepv.c
> +++ b/src/bin/options_themepv.c
> @@ -149,7 +149,7 @@ options_theme_preview_add(Evas_Object *parent, Config 
> *config, const char *file,
>
>      // create a texgrid and swallow pack into grid
>      o = evas_object_textgrid_add(evas);
> -   colors_term_init(o, obg);
> +   colors_term_init(o, obg, config);
>      evas_object_scale_set(o, elm_config_scale_get());
>      if (config->font.bitmap)
>        {
> diff --git a/src/bin/termio.c b/src/bin/termio.c
> index 994b8d2..7523aa2 100644
> --- a/src/bin/termio.c
> +++ b/src/bin/termio.c
> @@ -4701,6 +4701,8 @@ termio_config_update(Evas_Object *obj)
>             edje_object_signal_emit(sd->cursor.obj, "focus,in", 
> "terminology");
>        }
>
> +   colors_term_init(sd->grid.obj, sd->theme, sd->config);
> +
>      evas_object_scale_set(sd->grid.obj, elm_config_scale_get());
>      evas_object_textgrid_font_set(sd->grid.obj, sd->font.name, 
> sd->font.size);
>      evas_object_textgrid_cell_size_get(sd->grid.obj, &w, &h);
>


------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to