support a guide text for editor ctxpopup.
introduce a new smart callback "ctxpopup,activated" @feature
This commit is contained in:
parent
ab0dab409c
commit
fe41adaa28
|
@ -452,6 +452,14 @@ enventor_program_run_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||||
stats_info_msg_update(buf);
|
stats_info_msg_update(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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.");
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
enventor_ctxpopup_changed_cb(void *data, Evas_Object *obj,
|
enventor_ctxpopup_changed_cb(void *data, Evas_Object *obj,
|
||||||
void *event_info EINA_UNUSED)
|
void *event_info EINA_UNUSED)
|
||||||
|
@ -520,6 +528,8 @@ enventor_setup(app_data *ad)
|
||||||
enventor_live_view_updated_cb, ad);
|
enventor_live_view_updated_cb, ad);
|
||||||
evas_object_smart_callback_add(enventor, "program,run",
|
evas_object_smart_callback_add(enventor, "program,run",
|
||||||
enventor_program_run_cb, ad);
|
enventor_program_run_cb, ad);
|
||||||
|
evas_object_smart_callback_add(enventor, "ctxpopup,activated",
|
||||||
|
enventor_ctxpopup_activated_cb, ad);
|
||||||
evas_object_smart_callback_add(enventor, "ctxpopup,changed",
|
evas_object_smart_callback_add(enventor, "ctxpopup,changed",
|
||||||
enventor_ctxpopup_changed_cb, ad);
|
enventor_ctxpopup_changed_cb, ad);
|
||||||
evas_object_smart_callback_add(enventor, "ctxpopup,dismissed",
|
evas_object_smart_callback_add(enventor, "ctxpopup,dismissed",
|
||||||
|
|
|
@ -16,6 +16,14 @@
|
||||||
#define EOAPI EAPI
|
#define EOAPI EAPI
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
ENVENTOR_CTXPOPUP_TYPE_SLIDER = 0,
|
||||||
|
ENVENTOR_CTXPOPUP_TYPE_LIST,
|
||||||
|
ENVENTOR_CTXPOPUP_TYPE_TOGGLE,
|
||||||
|
ENVENTOR_CTXPOPUP_TYPE_IMAGE
|
||||||
|
} Enventor_Ctxpopup_Type;
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
ENVENTOR_PATH_TYPE_EDJ = 0,
|
ENVENTOR_PATH_TYPE_EDJ = 0,
|
||||||
|
|
|
@ -532,7 +532,8 @@ ctxpopup_img_preview_create(edit_data *ed,
|
||||||
Evas_Object *
|
Evas_Object *
|
||||||
ctxpopup_candidate_list_create(edit_data *ed, attr_value *attr,
|
ctxpopup_candidate_list_create(edit_data *ed, attr_value *attr,
|
||||||
Evas_Smart_Cb ctxpopup_dismiss_cb,
|
Evas_Smart_Cb ctxpopup_dismiss_cb,
|
||||||
Evas_Smart_Cb ctxpopup_changed_cb)
|
Evas_Smart_Cb ctxpopup_changed_cb,
|
||||||
|
Enventor_Ctxpopup_Type *type)
|
||||||
{
|
{
|
||||||
//create ctxpopup
|
//create ctxpopup
|
||||||
Evas_Object *ctxpopup = elm_ctxpopup_add(edit_obj_get(ed));
|
Evas_Object *ctxpopup = elm_ctxpopup_add(edit_obj_get(ed));
|
||||||
|
@ -562,43 +563,51 @@ ctxpopup_candidate_list_create(edit_data *ed, attr_value *attr,
|
||||||
case ATTR_VALUE_BOOLEAN:
|
case ATTR_VALUE_BOOLEAN:
|
||||||
{
|
{
|
||||||
toggle_layout_set(ctxpopup, ctxdata);
|
toggle_layout_set(ctxpopup, ctxdata);
|
||||||
|
*type = ENVENTOR_CTXPOPUP_TYPE_TOGGLE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ATTR_VALUE_INTEGER:
|
case ATTR_VALUE_INTEGER:
|
||||||
{
|
{
|
||||||
ctxdata->integer = EINA_TRUE;
|
ctxdata->integer = EINA_TRUE;
|
||||||
slider_layout_set(ctxpopup, ctxdata);
|
slider_layout_set(ctxpopup, ctxdata);
|
||||||
|
*type = ENVENTOR_CTXPOPUP_TYPE_SLIDER;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ATTR_VALUE_FLOAT:
|
case ATTR_VALUE_FLOAT:
|
||||||
{
|
{
|
||||||
ctxdata->integer = EINA_FALSE;
|
ctxdata->integer = EINA_FALSE;
|
||||||
slider_layout_set(ctxpopup, ctxdata);
|
slider_layout_set(ctxpopup, ctxdata);
|
||||||
|
*type = ENVENTOR_CTXPOPUP_TYPE_SLIDER;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ATTR_VALUE_CONSTANT:
|
case ATTR_VALUE_CONSTANT:
|
||||||
{
|
{
|
||||||
constant_candidate_set(ctxpopup, ctxdata);
|
constant_candidate_set(ctxpopup, ctxdata);
|
||||||
|
*type = ENVENTOR_CTXPOPUP_TYPE_LIST;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ATTR_VALUE_PART:
|
case ATTR_VALUE_PART:
|
||||||
{
|
{
|
||||||
if (!part_candidate_set(ctxpopup, ctxdata)) goto err;
|
if (!part_candidate_set(ctxpopup, ctxdata)) goto err;
|
||||||
|
*type = ENVENTOR_CTXPOPUP_TYPE_LIST;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ATTR_VALUE_STATE:
|
case ATTR_VALUE_STATE:
|
||||||
{
|
{
|
||||||
if (!state_candidate_set(ctxpopup, ctxdata, ed)) goto err;
|
if (!state_candidate_set(ctxpopup, ctxdata, ed)) goto err;
|
||||||
|
*type = ENVENTOR_CTXPOPUP_TYPE_LIST;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ATTR_VALUE_IMAGE:
|
case ATTR_VALUE_IMAGE:
|
||||||
{
|
{
|
||||||
if (!image_candidate_set(ctxpopup, ctxdata)) goto err;
|
if (!image_candidate_set(ctxpopup, ctxdata)) goto err;
|
||||||
|
*type = ENVENTOR_CTXPOPUP_TYPE_IMAGE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ATTR_VALUE_PROGRAM:
|
case ATTR_VALUE_PROGRAM:
|
||||||
{
|
{
|
||||||
if (!program_candidate_set(ctxpopup, ctxdata)) goto err;
|
if (!program_candidate_set(ctxpopup, ctxdata)) goto err;
|
||||||
|
*type = ENVENTOR_CTXPOPUP_TYPE_LIST;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -606,6 +615,7 @@ ctxpopup_candidate_list_create(edit_data *ed, attr_value *attr,
|
||||||
ctxdata);
|
ctxdata);
|
||||||
evas_object_smart_callback_add(ctxpopup, "dismissed", ctxpopup_dismiss_cb,
|
evas_object_smart_callback_add(ctxpopup, "dismissed", ctxpopup_dismiss_cb,
|
||||||
ed);
|
ed);
|
||||||
|
|
||||||
return ctxpopup;
|
return ctxpopup;
|
||||||
|
|
||||||
err:
|
err:
|
||||||
|
|
|
@ -673,6 +673,9 @@ image_preview_show(edit_data *ed, char *cur, Evas_Coord x, Evas_Coord y)
|
||||||
|
|
||||||
evas_object_move(ed->ctxpopup, x, y);
|
evas_object_move(ed->ctxpopup, x, y);
|
||||||
evas_object_show(ed->ctxpopup);
|
evas_object_show(ed->ctxpopup);
|
||||||
|
Enventor_Ctxpopup_Type type = ENVENTOR_CTXPOPUP_TYPE_IMAGE;
|
||||||
|
evas_object_smart_callback_call(ed->enventor, SIG_CTXPOPUP_ACTIVATED,
|
||||||
|
(void *) type);
|
||||||
elm_object_tree_focus_allow_set(ed->layout, EINA_FALSE);
|
elm_object_tree_focus_allow_set(ed->layout, EINA_FALSE);
|
||||||
succeed = EINA_TRUE;
|
succeed = EINA_TRUE;
|
||||||
}
|
}
|
||||||
|
@ -695,16 +698,21 @@ candidate_list_show(edit_data *ed, char *text, char *cur, char *selected)
|
||||||
parser_attribute_value_set(attr, cur);
|
parser_attribute_value_set(attr, cur);
|
||||||
|
|
||||||
//Show up the list of the types
|
//Show up the list of the types
|
||||||
|
Enventor_Ctxpopup_Type type;
|
||||||
Evas_Object *ctxpopup =
|
Evas_Object *ctxpopup =
|
||||||
ctxpopup_candidate_list_create(ed, attr,
|
ctxpopup_candidate_list_create(ed, attr,
|
||||||
ctxpopup_candidate_dismiss_cb,
|
ctxpopup_candidate_dismiss_cb,
|
||||||
ctxpopup_candidate_changed_cb);
|
ctxpopup_candidate_changed_cb,
|
||||||
|
&type);
|
||||||
if (!ctxpopup) return;
|
if (!ctxpopup) return;
|
||||||
|
|
||||||
int x, y;
|
int x, y;
|
||||||
evas_pointer_output_xy_get(evas_object_evas_get(ed->en_edit), &x, &y);
|
evas_pointer_output_xy_get(evas_object_evas_get(ed->en_edit), &x, &y);
|
||||||
evas_object_move(ctxpopup, x, y);
|
evas_object_move(ctxpopup, x, y);
|
||||||
evas_object_show(ctxpopup);
|
evas_object_show(ctxpopup);
|
||||||
|
evas_object_smart_callback_call(ed->enventor, SIG_CTXPOPUP_ACTIVATED,
|
||||||
|
(void *) type);
|
||||||
|
|
||||||
evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_DEL, ctxpopup_del_cb, ed);
|
evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_DEL, ctxpopup_del_cb, ed);
|
||||||
ed->ctxpopup = ctxpopup;
|
ed->ctxpopup = ctxpopup;
|
||||||
elm_object_tree_focus_allow_set(ed->layout, EINA_FALSE);
|
elm_object_tree_focus_allow_set(ed->layout, EINA_FALSE);
|
||||||
|
|
|
@ -19,6 +19,7 @@ const char SIG_COMPILE_ERROR[] = "compile,error";
|
||||||
const char SIG_PROGRAM_RUN[] = "program,run";
|
const char SIG_PROGRAM_RUN[] = "program,run";
|
||||||
const char SIG_CTXPOPUP_CHANGED[] = "ctxpopup,changed";
|
const char SIG_CTXPOPUP_CHANGED[] = "ctxpopup,changed";
|
||||||
const char SIG_CTXPOPUP_DISMISSED[] = "ctxpopup,dismissed";
|
const char SIG_CTXPOPUP_DISMISSED[] = "ctxpopup,dismissed";
|
||||||
|
const char SIG_CTXPOPUP_ACTIVATED[] = "ctxpopup,activated";
|
||||||
const char SIG_EDC_MODIFIED[] = "edc,modified";
|
const char SIG_EDC_MODIFIED[] = "edc,modified";
|
||||||
const char SIG_FOCUSED[] = "focused";
|
const char SIG_FOCUSED[] = "focused";
|
||||||
|
|
||||||
|
|
|
@ -269,6 +269,7 @@ class Enventor.Object (Elm.Widget, Efl.File) {
|
||||||
max_line,changed;
|
max_line,changed;
|
||||||
compile,error;
|
compile,error;
|
||||||
program,run;
|
program,run;
|
||||||
|
ctxpopup,activated;
|
||||||
ctxpopup,changed;
|
ctxpopup,changed;
|
||||||
ctxpopup,dismissed;
|
ctxpopup,dismissed;
|
||||||
edc,modified;
|
edc,modified;
|
||||||
|
|
|
@ -51,6 +51,7 @@ extern const char SIG_LIVE_VIEW_RESIZED[];
|
||||||
extern const char SIG_PROGRAM_RUN[];
|
extern const char SIG_PROGRAM_RUN[];
|
||||||
extern const char SIG_CTXPOPUP_CHANGED[];
|
extern const char SIG_CTXPOPUP_CHANGED[];
|
||||||
extern const char SIG_CTXPOPUP_DISMISSED[];
|
extern const char SIG_CTXPOPUP_DISMISSED[];
|
||||||
|
extern const char SIG_CTXPOPUP_ACTIVATED[];
|
||||||
extern const char SIG_EDC_MODIFIED[];
|
extern const char SIG_EDC_MODIFIED[];
|
||||||
extern const char SIG_FOCUSED[];
|
extern const char SIG_FOCUSED[];
|
||||||
|
|
||||||
|
@ -233,7 +234,7 @@ Eina_Bool template_insert(edit_data *ed, Enventor_Template_Insert_Type insert_ty
|
||||||
|
|
||||||
|
|
||||||
/* ctxpopup */
|
/* ctxpopup */
|
||||||
Evas_Object *ctxpopup_candidate_list_create(edit_data *ed, attr_value *attr, Evas_Smart_Cb ctxpopup_dismiss_cb, Evas_Smart_Cb ctxpopup_changed_cb);
|
Evas_Object *ctxpopup_candidate_list_create(edit_data *ed, attr_value *attr, Evas_Smart_Cb ctxpopup_dismiss_cb, Evas_Smart_Cb ctxpopup_changed_cb, Enventor_Ctxpopup_Type *type);
|
||||||
Evas_Object *ctxpopup_img_preview_create(edit_data*ed, const char *imgpath, Evas_Smart_Cb ctxpopup_dismiss_cb, Evas_Smart_Cb ctxpopup_relay_cb);
|
Evas_Object *ctxpopup_img_preview_create(edit_data*ed, const char *imgpath, Evas_Smart_Cb ctxpopup_dismiss_cb, Evas_Smart_Cb ctxpopup_relay_cb);
|
||||||
void ctxpopup_img_preview_reload(Evas_Object *ctxpopup, const char *imgpath);
|
void ctxpopup_img_preview_reload(Evas_Object *ctxpopup, const char *imgpath);
|
||||||
|
|
||||||
|
|
|
@ -46,6 +46,7 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = {
|
||||||
{SIG_PROGRAM_RUN, ""},
|
{SIG_PROGRAM_RUN, ""},
|
||||||
{SIG_CTXPOPUP_CHANGED, ""},
|
{SIG_CTXPOPUP_CHANGED, ""},
|
||||||
{SIG_CTXPOPUP_DISMISSED, ""},
|
{SIG_CTXPOPUP_DISMISSED, ""},
|
||||||
|
{SIG_CTXPOPUP_ACTIVATED, ""},
|
||||||
{SIG_EDC_MODIFIED, ""},
|
{SIG_EDC_MODIFIED, ""},
|
||||||
{SIG_FOCUSED, ""},
|
{SIG_FOCUSED, ""},
|
||||||
{NULL, NULL}
|
{NULL, NULL}
|
||||||
|
|
Loading…
Reference in New Issue