summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2021-10-31 18:22:48 +0000
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2021-10-31 18:24:48 +0000
commit1166e4e7ed5dd55f3273e968620e07244e4d6def (patch)
tree8d2a1aa96141df0fe1a7722bfc88260e762f47a8
parent921e379155158aaf8d5a96d685e7c4714b0994f5 (diff)
downloadenlightenment-1166e4e7ed5dd55f3273e968620e07244e4d6def.tar.gz
paledit - make del button become reset if there is a shadow sys pal
-rw-r--r--src/bin/tools/paledit/palsel.c44
1 files changed, 32 insertions, 12 deletions
diff --git a/src/bin/tools/paledit/palsel.c b/src/bin/tools/paledit/palsel.c
index 3479e7f585..f3e4da0c02 100644
--- a/src/bin/tools/paledit/palsel.c
+++ b/src/bin/tools/paledit/palsel.c
@@ -120,7 +120,9 @@ _cb_select_new_click(void *data, Evas_Object *obj EINA_UNUSED, void *event_info
static void
_cb_select_del_click(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
+ Evas_Object *win = data;
char *palname = evas_object_data_get(data, "pal_selected_palette");
+
if (palname)
{
Elm_Object_Item *it_sel, *it = NULL;
@@ -131,14 +133,23 @@ _cb_select_del_click(void *data, Evas_Object *obj EINA_UNUSED, void *event_info
it = elm_genlist_item_next_get(it_sel);
if (!it) it = elm_genlist_item_prev_get(it_sel);
}
- elm_object_item_del(it_sel);
- elm_config_palette_delete(palname);
- evas_object_data_del(data, "pal_selected_palette");
- free(palname);
- if (it)
+ if (elm_config_palette_system_has(palname))
+ {
+ elm_config_palette_delete(palname);
+ pal_load(win);
+ elm_popup_dismiss(evas_object_data_get(win, "pal_popup"));
+ }
+ else
{
- elm_genlist_item_show(it, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
- elm_genlist_item_selected_set(it, EINA_TRUE);
+ elm_object_item_del(it_sel);
+ elm_config_palette_delete(palname);
+ evas_object_data_del(data, "pal_selected_palette");
+ free(palname);
+ if (it)
+ {
+ elm_genlist_item_show(it, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
+ elm_genlist_item_selected_set(it, EINA_TRUE);
+ }
}
}
}
@@ -199,12 +210,16 @@ _cb_palette_gl_del(void *data, Evas_Object *obj EINA_UNUSED)
static void
_cb_palette_gl_sel(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
{
- Evas_Object *win = data;
+ Evas_Object *win = data, *o;
Elm_Object_Item *it = event_info;
+ char *palname;
free(evas_object_data_get(win, "pal_selected_palette"));
- evas_object_data_set(win, "pal_selected_palette",
- strdup(elm_object_item_data_get(it)));
+ palname = elm_object_item_data_get(it);
+ evas_object_data_set(win, "pal_selected_palette", strdup(palname));
+ o = evas_object_data_get(win, "pal_popup_list_del_button");
+ if (elm_config_palette_system_has(palname)) elm_object_text_set(o, "Reset");
+ else elm_object_text_set(o, "Del");
}
static void
@@ -237,10 +252,14 @@ _palette_list_fill(Evas_Object *win, Evas_Object *list)
}
elm_config_palette_list_free(palettes);
elm_genlist_item_class_free(itc);
+ free(evas_object_data_get(win, "pal_selected_palette"));
+ evas_object_data_del(win, "pal_selected_palette");
if (sel_it)
{
elm_genlist_item_show(sel_it, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
elm_genlist_item_selected_set(sel_it, EINA_TRUE);
+ evas_object_data_set(win, "pal_selected_palette",
+ strdup(elm_object_item_data_get(sel_it)));
}
}
@@ -276,8 +295,6 @@ palsel_add(Evas_Object *win)
evas_object_show(o);
evas_object_data_set(win, "pal_popup_list", o);
- _palette_list_fill(win, li);
-
bx = o = elm_box_add(win);
elm_box_homogeneous_set(o, EINA_TRUE);
elm_box_padding_set(o, ELM_SCALE_SIZE(5), 0);
@@ -300,6 +317,7 @@ palsel_add(Evas_Object *win)
evas_object_smart_callback_add(o, "clicked", _cb_select_del_click, win);
elm_box_pack_end(bx, o);
evas_object_show(o);
+ evas_object_data_set(win, "pal_popup_list_del_button", o);
o = elm_button_add(win);
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0);
@@ -329,5 +347,7 @@ palsel_add(Evas_Object *win)
elm_box_pack_end(bx, o);
evas_object_show(o);
+ _palette_list_fill(win, li);
+
return pop;
}