support a guide text for editor ctxpopup.

introduce a new smart callback "ctxpopup,activated"

@feature
This commit is contained in:
Hermet Park 2016-02-09 17:50:34 +09:00
parent ab0dab409c
commit fe41adaa28
8 changed files with 43 additions and 3 deletions

View File

@ -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",

View File

@ -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,

View File

@ -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:

View File

@ -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);

View File

@ -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";

View File

@ -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;

View File

@ -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);

View File

@ -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}