forked from enlightenment/enlightenment
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_free(E_Color_Dialog *dia);
|
||||
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.
|
||||
|
@ -38,6 +39,7 @@ e_color_dialog_new(E_Container *con, const E_Color *color)
|
|||
evas_object_show(o);
|
||||
e_widget_min_size_get(o, &mw, &mh);
|
||||
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 */
|
||||
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
|
||||
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_data = data;
|
||||
}
|
||||
|
||||
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_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
|
||||
_e_color_dialog_button1_click(void *data, E_Dialog *edia)
|
||||
{
|
||||
|
|
|
@ -24,13 +24,16 @@ struct _E_Color_Dialog
|
|||
void *select_data;
|
||||
void (*cancel_func)(E_Color_Dialog *dia, E_Color *color, void *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 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_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_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_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);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -668,7 +668,7 @@ _e_test_internal(E_Container *con)
|
|||
|
||||
d = e_color_dialog_new(con, NULL);
|
||||
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
|
||||
|
|
|
@ -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_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_change_cb(E_Color_Dialog *dia, E_Color *color, void *data);
|
||||
static void _e_wid_disable_hook(Evas_Object *obj);
|
||||
|
||||
static void
|
||||
|
@ -48,8 +49,9 @@ _e_wid_signal_cb1(void *data, Evas_Object *obj, const char *emission, const char
|
|||
if (!wd->dia)
|
||||
{
|
||||
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_cancel_callback_add(wd->dia, _e_wid_color_cancel_cb, wd);
|
||||
e_color_dialog_select_callback_set(wd->dia, _e_wid_color_select_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);
|
||||
}
|
||||
|
@ -72,6 +74,16 @@ _e_wid_color_cancel_cb(E_Color_Dialog *dia, E_Color *color, void *data)
|
|||
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
|
||||
_e_wid_del_hook(Evas_Object *obj)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue