static const char *_getbase(Evas_Object *obj);
static void _signal_entry_changed(void *data, Evas_Object *obj, const char *emission, const char *source);
static void _signal_selection_start(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _signal_selection_end(void *data, Evas_Object *obj, const char *emission, const char *source);
static void _signal_selection_changed(void *data, Evas_Object *obj, const char *emission, const char *source);
static void _signal_selection_cleared(void *data, Evas_Object *obj, const char *emission, const char *source);
static void _signal_handler_move_start(void *data, Evas_Object *obj, const char *emission, const char *source);
void (*obj_hook) (Evas_Object *obj);
void (*obj_unhook) (Evas_Object *obj);
void (*obj_longpress) (Evas_Object *obj);
+ void (*obj_hidemenu) (Evas_Object *obj);
void (*obj_mouseup) (Evas_Object *obj);
};
_elm_module_symbol_get(m, "obj_unhook");
((Mod_Api *)(m->api) )->obj_longpress = // called on long press menu
_elm_module_symbol_get(m, "obj_longpress");
+ ((Mod_Api *)(m->api) )->obj_hidemenu = // called on hide menu
+ _elm_module_symbol_get(m, "obj_hidemenu");
((Mod_Api *)(m->api) )->obj_mouseup = // called on mouseup
_elm_module_symbol_get(m, "obj_mouseup");
ok: // ok - return api
{
Widget_Data *wd = elm_widget_data_get(data);
if (!wd) return;
- wd->selmode = EINA_FALSE;
- edje_object_part_text_select_allow_set(wd->ent, "elm.text", EINA_FALSE);
- edje_object_signal_emit(wd->ent, "elm,state,select,off", "elm");
+ //wd->selmode = EINA_FALSE;
+ //edje_object_part_text_select_allow_set(wd->ent, "elm.text", EINA_FALSE);
+ //edje_object_signal_emit(wd->ent, "elm,state,select,off", "elm");
elm_widget_scroll_hold_pop(data);
_store_selection(ELM_SEL_CLIPBOARD, data);
- edje_object_part_text_select_none(wd->ent, "elm.text");
+ //edje_object_part_text_select_none(wd->ent, "elm.text");
}
static void
{
Widget_Data *wd = elm_widget_data_get(data);
elm_object_scroll_freeze_push(data);
+
+ if ((wd->api) && (wd->api->obj_hidemenu))
+ {
+ wd->api->obj_hidemenu(data);
+ }
}
static void
{
Widget_Data *wd = elm_widget_data_get(data);
elm_object_scroll_freeze_pop(data);
+
+ if (wd->have_selection)
+ _long_press(data);
+}
+
+static void
+_signal_selection_end(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__)
+{
+/*
+ Widget_Data *wd = elm_widget_data_get(data);
+ Evas_Object *entry;
+ if (!wd) return;
+*/
+ _long_press(data);
}
static void
if (!wd) return;
wd->double_clicked = EINA_FALSE;
evas_object_smart_callback_call(data, SIG_PRESS, NULL);
+
+ if ((wd->api) && (wd->api->obj_hidemenu))
+ {
+ wd->api->obj_hidemenu(data);
+ }
}
static void
Widget_Data *wd = elm_widget_data_get(data);
if (!wd) return;
evas_object_smart_callback_call(data, SIG_CLICKED, NULL);
+
+// if (wd->have_selection)
+// _long_press(data);
}
static void
_signal_handler_move_end, obj);
edje_object_signal_callback_add(wd->ent, "selection,start", "elm.text",
_signal_selection_start, obj);
+ edje_object_signal_callback_add(wd->ent, "selection,end", "elm.text",
+ _signal_selection_end, obj);
edje_object_signal_callback_add(wd->ent, "selection,changed", "elm.text",
_signal_selection_changed, obj);
edje_object_signal_callback_add(wd->ent, "selection,cleared", "elm.text",
if (ext_mod->context_menu)
{
if (ext_mod->popup) evas_object_del(ext_mod->popup);
- else elm_widget_scroll_freeze_push(obj);
+// else elm_widget_scroll_freeze_push(obj);
top = elm_widget_top_get(obj);
if(top)
ext_mod->popup = elm_ctxpopup_add(top);
if ((context_menu_orientation) &&
(!strcmp(context_menu_orientation, "horizontal")))
elm_ctxpopup_horizontal_set(ext_mod->popup, EINA_TRUE);
+ elm_ctxpopup_screen_dimmed_disabled_set(ext_mod->popup, EINA_TRUE);
elm_widget_sub_object_add(obj, ext_mod->popup);
if (!ext_mod->selmode)
if (1) // need way to detect if someone has a selection
{
if (ext_mod->editable)
- elm_ctxpopup_item_add(ext_mod->popup, NULL, "Paste", _paste, obj );
+ elm_ctxpopup_item_add(ext_mod->popup, NULL, "Paste",_paste, obj );
}
}
// start for cbhm
}
+EAPI void
+obj_hidemenu(Evas_Object *obj)
+{
+ if (!obj || !ext_mod) {
+ return;
+ }
+
+ evas_object_hide(ext_mod->popup);
+// if (ext_mod->popup) evas_object_del(ext_mod->popup);
+}
+
+