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