store the initial color when opening a color dialog, and return that on cancel
use this in color well SVN revision: 26590
This commit is contained in:
parent
5526d92029
commit
71dd864f27
|
@ -29,12 +29,15 @@ e_color_dialog_new(E_Container *con, const E_Color *color)
|
||||||
e_dialog_title_set(dia->dia, "Color Selector");
|
e_dialog_title_set(dia->dia, "Color Selector");
|
||||||
|
|
||||||
dia->color = calloc(1, sizeof(E_Color));
|
dia->color = calloc(1, sizeof(E_Color));
|
||||||
|
dia->initial = calloc(1, sizeof(E_Color));
|
||||||
|
|
||||||
if (color)
|
if (color)
|
||||||
e_color_copy(color, dia->color);
|
e_color_copy(color, dia->color);
|
||||||
else
|
else
|
||||||
dia->color->a = 255;
|
dia->color->a = 255;
|
||||||
|
|
||||||
|
e_color_copy(dia->color, dia->initial);
|
||||||
|
|
||||||
o = e_widget_csel_add(dia->dia->win->evas, dia->color);
|
o = e_widget_csel_add(dia->dia->win->evas, dia->color);
|
||||||
evas_object_show(o);
|
evas_object_show(o);
|
||||||
e_widget_min_size_get(o, &mw, &mh);
|
e_widget_min_size_get(o, &mw, &mh);
|
||||||
|
@ -114,8 +117,8 @@ _e_color_dialog_button2_click(void *data, E_Dialog *edia)
|
||||||
E_Color_Dialog *dia;
|
E_Color_Dialog *dia;
|
||||||
|
|
||||||
dia = data;
|
dia = data;
|
||||||
if(dia->cancel_func && dia->color)
|
if(dia->cancel_func && dia->initial)
|
||||||
dia->cancel_func(dia, dia->color, dia->cancel_data);
|
dia->cancel_func(dia, dia->initial, dia->cancel_data);
|
||||||
_e_color_dialog_free(data);
|
_e_color_dialog_free(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ struct _E_Color_Dialog
|
||||||
E_Container *con;
|
E_Container *con;
|
||||||
E_Dialog *dia;
|
E_Dialog *dia;
|
||||||
|
|
||||||
E_Color *color;
|
E_Color *color, *initial;
|
||||||
|
|
||||||
void (*select_func)(E_Color_Dialog *dia, E_Color *color, void *data);
|
void (*select_func)(E_Color_Dialog *dia, E_Color *color, void *data);
|
||||||
void *select_data;
|
void *select_data;
|
||||||
|
@ -31,6 +31,8 @@ struct _E_Color_Dialog
|
||||||
EAPI E_Color_Dialog *e_color_dialog_new (E_Container *con, const E_Color *initial_color);
|
EAPI E_Color_Dialog *e_color_dialog_new (E_Container *con, const E_Color *initial_color);
|
||||||
EAPI void e_color_dialog_show (E_Color_Dialog *dia);
|
EAPI void e_color_dialog_show (E_Color_Dialog *dia);
|
||||||
EAPI void e_color_dialog_title_set (E_Color_Dialog *dia, const char *title);
|
EAPI void e_color_dialog_title_set (E_Color_Dialog *dia, const char *title);
|
||||||
|
|
||||||
|
/* select and change pass the current color back, cancel passes the initial color */
|
||||||
EAPI void e_color_dialog_select_callback_set(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data);
|
EAPI void e_color_dialog_select_callback_set(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data);
|
||||||
EAPI void e_color_dialog_cancel_callback_set(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data);
|
EAPI void e_color_dialog_cancel_callback_set(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data);
|
||||||
EAPI void e_color_dialog_change_callback_set(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data);
|
EAPI void e_color_dialog_change_callback_set(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data);
|
||||||
|
|
|
@ -71,6 +71,9 @@ _e_wid_color_cancel_cb(E_Color_Dialog *dia, E_Color *color, void *data)
|
||||||
{
|
{
|
||||||
E_Widget_Data *wd;
|
E_Widget_Data *wd;
|
||||||
wd = data;
|
wd = data;
|
||||||
|
/* cancel sends the original color back */
|
||||||
|
e_color_copy(color, wd->color);
|
||||||
|
_e_wid_update(wd);
|
||||||
wd->dia = NULL;
|
wd->dia = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue