options: color picker added

Fixes T1032
This commit is contained in:
Wonguk Jeong 2014-08-25 19:49:43 +02:00
parent 8b2a3aa838
commit a25b27e232
1 changed files with 17 additions and 0 deletions

View File

@ -25,6 +25,7 @@ static const char *mapping_names[] =
static Elm_Object_Item *colitem[4][11] = { { NULL } };
static Evas_Object *colorsel = NULL;
static Evas_Object *colorpicker = NULL;
static Elm_Object_Item *curitem = NULL;
static Evas_Object *colpal[4] = { NULL };
static Evas_Object *label = NULL, *reset = NULL;
@ -39,6 +40,7 @@ _cb_op_use_custom_chg(void *data EINA_UNUSED, Evas_Object *obj, void *event EINA
state = elm_check_state_get(obj);
elm_object_disabled_set(colorsel, !state);
elm_object_disabled_set(colorpicker, !state);
for (i = 0; i < 4; i++) elm_object_disabled_set(colpal[i], !state);
elm_object_disabled_set(label, !state);
config->colors_use = state;
@ -56,6 +58,7 @@ _cb_op_color_item_sel(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void
curitem = it;
elm_colorselector_palette_item_color_get(it, &r, &g, &b, &a);
elm_colorselector_color_set(colorsel, r, g, b, a);
elm_colorselector_color_set(colorpicker, r, g, b, a);
for (j = 0; j < 4; j++)
{
for (i = 0; i < 11; i++)
@ -76,6 +79,10 @@ _cb_op_color_chg(void *data EINA_UNUSED, Evas_Object *obj, void *event EINA_UNUS
elm_colorselector_palette_item_color_get(curitem, &rr, &gg, &bb, &aa);
elm_colorselector_color_get(obj, &r, &g, &b, &a);
if (obj == colorsel)
elm_colorselector_color_set(colorpicker, r, g, b, a);
else
elm_colorselector_color_set(colorsel, r, g, b, a);
if ((r != rr) || (g != gg) || (b != bb) || (a != aa))
{
if (curitem)
@ -133,6 +140,7 @@ _cb_op_reset(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event E
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);
elm_colorselector_color_set(colorpicker, r, g, b, a);
termio_config_update(term);
config_save(config, NULL);
}
@ -250,6 +258,15 @@ options_colors(Evas_Object *opbox, Evas_Object *term)
evas_object_show(o);
evas_object_smart_callback_add(o, "changed", _cb_op_color_chg, term);
colorpicker = o = elm_colorselector_add(opbox);
elm_colorselector_color_set(o, r, g, b, a);
elm_colorselector_mode_set(o, ELM_COLORSELECTOR_PICKER);
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);