add a change callback to the color dialog
update grad preview live as you select a color SVN revision: 26587
This commit is contained in:
parent
7869f73061
commit
02f37f014b
|
@ -8,6 +8,7 @@ static void _e_color_dialog_button1_click(void *data, E_Dialog *edia);
|
||||||
static void _e_color_dialog_button2_click(void *data, E_Dialog *edia);
|
static void _e_color_dialog_button2_click(void *data, E_Dialog *edia);
|
||||||
static void _e_color_dialog_free(E_Color_Dialog *dia);
|
static void _e_color_dialog_free(E_Color_Dialog *dia);
|
||||||
static void _e_color_dialog_dia_del(void *obj);
|
static void _e_color_dialog_dia_del(void *obj);
|
||||||
|
static void _e_color_dialog_cb_csel_change(void *data, Evas_Object *obj);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a color selector dialog.
|
* Create a color selector dialog.
|
||||||
|
@ -38,6 +39,7 @@ e_color_dialog_new(E_Container *con, const E_Color *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);
|
||||||
e_dialog_content_set(dia->dia, o, 460, 260);
|
e_dialog_content_set(dia->dia, o, 460, 260);
|
||||||
|
e_widget_on_change_hook_set(o, _e_color_dialog_cb_csel_change, dia);
|
||||||
|
|
||||||
/* buttons at the bottom */
|
/* buttons at the bottom */
|
||||||
e_dialog_button_add(dia->dia, "OK", NULL, _e_color_dialog_button1_click, dia);
|
e_dialog_button_add(dia->dia, "OK", NULL, _e_color_dialog_button1_click, dia);
|
||||||
|
@ -65,19 +67,37 @@ e_color_dialog_title_set(E_Color_Dialog *dia, const char *title)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
e_color_dialog_select_callback_add(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data)
|
e_color_dialog_select_callback_set(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data)
|
||||||
{
|
{
|
||||||
dia->select_func = func;
|
dia->select_func = func;
|
||||||
dia->select_data = data;
|
dia->select_data = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
e_color_dialog_cancel_callback_add(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data)
|
e_color_dialog_cancel_callback_set(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data)
|
||||||
{
|
{
|
||||||
dia->cancel_func = func;
|
dia->cancel_func = func;
|
||||||
dia->cancel_data = data;
|
dia->cancel_data = 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)
|
||||||
|
{
|
||||||
|
dia->change_func = func;
|
||||||
|
dia->change_data = data;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_color_dialog_cb_csel_change(void *data, Evas_Object *obj)
|
||||||
|
{
|
||||||
|
E_Color_Dialog *dia;
|
||||||
|
dia = data;
|
||||||
|
printf("COLOR DIALOG csel change\n");
|
||||||
|
if (dia->change_func && dia->color)
|
||||||
|
dia->change_func(dia, dia->color, dia->change_data);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_color_dialog_button1_click(void *data, E_Dialog *edia)
|
_e_color_dialog_button1_click(void *data, E_Dialog *edia)
|
||||||
{
|
{
|
||||||
|
|
|
@ -24,13 +24,16 @@ struct _E_Color_Dialog
|
||||||
void *select_data;
|
void *select_data;
|
||||||
void (*cancel_func)(E_Color_Dialog *dia, E_Color *color, void *data);
|
void (*cancel_func)(E_Color_Dialog *dia, E_Color *color, void *data);
|
||||||
void *cancel_data;
|
void *cancel_data;
|
||||||
|
void (*change_func)(E_Color_Dialog *dia, E_Color *color, void *data);
|
||||||
|
void *change_data;
|
||||||
};
|
};
|
||||||
|
|
||||||
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);
|
||||||
EAPI void e_color_dialog_select_callback_add(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_add(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);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -668,7 +668,7 @@ _e_test_internal(E_Container *con)
|
||||||
|
|
||||||
d = e_color_dialog_new(con, NULL);
|
d = e_color_dialog_new(con, NULL);
|
||||||
e_color_dialog_show(d);
|
e_color_dialog_show(d);
|
||||||
e_color_dialog_select_callback_add(d, _e_test_cb_ok, NULL);
|
e_color_dialog_select_callback_set(d, _e_test_cb_ok, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -20,6 +20,7 @@ static void _e_wid_update(E_Widget_Data *wd);
|
||||||
static void _e_wid_signal_cb1(void *data, Evas_Object *obj, const char *emission, const char *source);
|
static void _e_wid_signal_cb1(void *data, Evas_Object *obj, const char *emission, const char *source);
|
||||||
static void _e_wid_color_select_cb(E_Color_Dialog *dia, E_Color *color, void *data);
|
static void _e_wid_color_select_cb(E_Color_Dialog *dia, E_Color *color, void *data);
|
||||||
static void _e_wid_color_cancel_cb(E_Color_Dialog *dia, E_Color *color, void *data);
|
static void _e_wid_color_cancel_cb(E_Color_Dialog *dia, E_Color *color, void *data);
|
||||||
|
static void _e_wid_color_change_cb(E_Color_Dialog *dia, E_Color *color, void *data);
|
||||||
static void _e_wid_disable_hook(Evas_Object *obj);
|
static void _e_wid_disable_hook(Evas_Object *obj);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -48,8 +49,9 @@ _e_wid_signal_cb1(void *data, Evas_Object *obj, const char *emission, const char
|
||||||
if (!wd->dia)
|
if (!wd->dia)
|
||||||
{
|
{
|
||||||
wd->dia = e_color_dialog_new(wd->con, wd->color);
|
wd->dia = e_color_dialog_new(wd->con, wd->color);
|
||||||
e_color_dialog_select_callback_add(wd->dia, _e_wid_color_select_cb, wd);
|
e_color_dialog_select_callback_set(wd->dia, _e_wid_color_select_cb, wd);
|
||||||
e_color_dialog_cancel_callback_add(wd->dia, _e_wid_color_cancel_cb, wd);
|
e_color_dialog_cancel_callback_set(wd->dia, _e_wid_color_cancel_cb, wd);
|
||||||
|
e_color_dialog_change_callback_set(wd->dia, _e_wid_color_change_cb, wd);
|
||||||
}
|
}
|
||||||
e_color_dialog_show(wd->dia);
|
e_color_dialog_show(wd->dia);
|
||||||
}
|
}
|
||||||
|
@ -72,6 +74,16 @@ _e_wid_color_cancel_cb(E_Color_Dialog *dia, E_Color *color, void *data)
|
||||||
wd->dia = NULL;
|
wd->dia = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_wid_color_change_cb(E_Color_Dialog *dia, E_Color *color, void *data)
|
||||||
|
{
|
||||||
|
E_Widget_Data *wd;
|
||||||
|
wd = data;
|
||||||
|
printf("COLOR WELL change_cb\n");
|
||||||
|
e_color_copy(color, wd->color);
|
||||||
|
_e_wid_update(wd);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_wid_del_hook(Evas_Object *obj)
|
_e_wid_del_hook(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue