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.
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);
}
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)
{
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
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
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
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);
}
}
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)
{
E_Widget_Data *wd;