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");
|
||||
|
||||
dia->color = calloc(1, sizeof(E_Color));
|
||||
dia->initial = calloc(1, sizeof(E_Color));
|
||||
|
||||
if (color)
|
||||
e_color_copy(color, dia->color);
|
||||
else
|
||||
dia->color->a = 255;
|
||||
|
||||
e_color_copy(dia->color, dia->initial);
|
||||
|
||||
o = e_widget_csel_add(dia->dia->win->evas, dia->color);
|
||||
evas_object_show(o);
|
||||
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;
|
||||
|
||||
dia = data;
|
||||
if(dia->cancel_func && dia->color)
|
||||
dia->cancel_func(dia, dia->color, dia->cancel_data);
|
||||
if(dia->cancel_func && dia->initial)
|
||||
dia->cancel_func(dia, dia->initial, dia->cancel_data);
|
||||
_e_color_dialog_free(data);
|
||||
}
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ struct _E_Color_Dialog
|
|||
E_Container *con;
|
||||
E_Dialog *dia;
|
||||
|
||||
E_Color *color;
|
||||
E_Color *color, *initial;
|
||||
|
||||
void (*select_func)(E_Color_Dialog *dia, E_Color *color, void *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 void e_color_dialog_show (E_Color_Dialog *dia);
|
||||
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_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);
|
||||
|
|
|
@ -71,6 +71,9 @@ _e_wid_color_cancel_cb(E_Color_Dialog *dia, E_Color *color, void *data)
|
|||
{
|
||||
E_Widget_Data *wd;
|
||||
wd = data;
|
||||
/* cancel sends the original color back */
|
||||
e_color_copy(color, wd->color);
|
||||
_e_wid_update(wd);
|
||||
wd->dia = NULL;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue