ctxpopup: Reset candidate values by backspace key.
toggle, slider and colorselector values of candidate ctxpopup are reset by backspace key.
This commit is contained in:
parent
f96c2a92a6
commit
69029879d8
|
@ -457,8 +457,12 @@ static void
|
|||
enventor_ctxpopup_activated_cb(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Enventor_Ctxpopup_Type type = (Enventor_Ctxpopup_Type) event_info;
|
||||
if (type != ENVENTOR_CTXPOPUP_TYPE_SLIDER) return;
|
||||
stats_info_msg_update("You could use a mouse wheel to change values elaborately.");
|
||||
|
||||
if (type == ENVENTOR_CTXPOPUP_TYPE_SLIDER)
|
||||
stats_info_msg_update("Mouse wheel: Change values elaborately. "
|
||||
"Backspace: Reset values.");
|
||||
else if (type == ENVENTOR_CTXPOPUP_TYPE_TOGGLE)
|
||||
stats_info_msg_update("Backspace: Reset values.");
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -58,6 +58,9 @@ static preset_colors_data preset_colors =
|
|||
/* Internal method implementation */
|
||||
/*****************************************************************************/
|
||||
|
||||
static Eina_Bool
|
||||
is_colorselector_type(ctxpopup_data *ctxdata);
|
||||
|
||||
static void
|
||||
update_preset_colors(Eina_Bool update)
|
||||
{
|
||||
|
@ -703,12 +706,56 @@ end:
|
|||
static void
|
||||
image_relay(ctxpopup_data *ctxdata, Eina_Bool up)
|
||||
{
|
||||
if (!ctxdata->relay_cb) return;
|
||||
|
||||
if (up)
|
||||
ctxdata->relay_cb(ctxdata->data, ctxdata->ctxpopup, (void *) 0);
|
||||
else
|
||||
ctxdata->relay_cb(ctxdata->data, ctxdata->ctxpopup, (void *) 1);
|
||||
}
|
||||
|
||||
static void
|
||||
candidate_reset(ctxpopup_data *ctxdata)
|
||||
{
|
||||
attr_value *attr = ctxdata->attr;
|
||||
if (!attr) return;
|
||||
|
||||
//Colorselector Candidate
|
||||
if (is_colorselector_type(ctxdata))
|
||||
{
|
||||
elm_colorselector_color_set(ctxdata->colorselector, attr->val[0],
|
||||
attr->val[1], attr->val[2], attr->val[3]);
|
||||
colorselector_changed_cb(ctxdata, ctxdata->colorselector, NULL);
|
||||
}
|
||||
//Toggle Candidate
|
||||
else if ((attr->type == ATTR_VALUE_BOOLEAN))
|
||||
{
|
||||
Eina_List *l;
|
||||
Evas_Object *toggle;
|
||||
int i = 0;
|
||||
EINA_LIST_FOREACH(ctxdata->toggles, l, toggle)
|
||||
{
|
||||
elm_check_state_set(toggle, (Eina_Bool) roundf(attr->val[i]));
|
||||
toggle_changed_cb(ctxdata, toggle, NULL);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
//Slider Candidate
|
||||
else if ((attr->type == ATTR_VALUE_INTEGER) ||
|
||||
(attr->type == ATTR_VALUE_FLOAT))
|
||||
{
|
||||
Eina_List *l;
|
||||
Evas_Object *slider;
|
||||
int i = 0;
|
||||
EINA_LIST_FOREACH(ctxdata->sliders, l, slider)
|
||||
{
|
||||
elm_slider_value_set(slider, attr->val[i]);
|
||||
slider_changed_cb(ctxdata, slider, NULL);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
ctxpopup_mouse_wheel_cb(void *data, Evas *e EINA_UNUSED,
|
||||
Evas_Object *obj EINA_UNUSED, void *event_info)
|
||||
|
@ -729,6 +776,7 @@ ctxpopup_key_down_cb(void *data, Evas *e EINA_UNUSED,
|
|||
|
||||
if (!strcmp(ev->key, "Down")) image_relay(ctxdata, EINA_FALSE);
|
||||
else if (!strcmp(ev->key, "Up")) image_relay(ctxdata, EINA_TRUE);
|
||||
else if (!strcmp(ev->key, "BackSpace")) candidate_reset(ctxdata);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -900,6 +948,8 @@ ctxpopup_candidate_list_create(edit_data *ed, attr_value *attr,
|
|||
break;
|
||||
}
|
||||
}
|
||||
evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_KEY_DOWN,
|
||||
ctxpopup_key_down_cb, ctxdata);
|
||||
evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_DEL, ctxpopup_del_cb,
|
||||
ctxdata);
|
||||
evas_object_smart_callback_add(ctxpopup, "dismissed", ctxpopup_dismiss_cb,
|
||||
|
|
Loading…
Reference in New Issue