add more util calls for enty manipulation
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 20 Mar 2009 15:07:39 +0000 (15:07 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 20 Mar 2009 15:07:39 +0000 (15:07 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/edje@39600 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/Edje.h
src/lib/edje_entry.c
src/lib/edje_private.h
src/lib/edje_util.c

index 2ca4e06..460bdbd 100644 (file)
@@ -256,6 +256,7 @@ extern "C" {
    EAPI const Eina_List *edje_object_part_text_anchor_geometry_get(const Evas_Object *obj, const char *part, const char *anchor);
    EAPI void             edje_object_part_text_cursor_geometry_get(const Evas_Object *obj, const char *part, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
    EAPI void             edje_object_part_text_select_allow_set(const Evas_Object *obj, const char *part, Evas_Bool allow);
+   EAPI void             edje_object_part_text_select_abort(const Evas_Object *obj, const char *part);
        
    EAPI void         edje_object_part_swallow        (Evas_Object *obj, const char *part, Evas_Object *obj_swallow);
    EAPI void         edje_object_part_unswallow      (Evas_Object *obj, Evas_Object *obj_swallow);
index 64c1741..c1760ea 100644 (file)
@@ -1482,3 +1482,14 @@ _edje_entry_select_allow_set(Edje_Real_Part *rp, Evas_Bool allow)
    Entry *en = rp->entry_data;
    en->select_allow = allow;
 }
+
+void
+_edje_entry_select_abort(Edje_Real_Part *rp)
+{
+   Entry *en = rp->entry_data;
+   if (en->selecting)
+     {
+        en->selecting = 0;
+        _edje_entry_real_part_configure(rp);
+     }
+}
index 389341a..6d24e0c 100644 (file)
@@ -1307,5 +1307,6 @@ const Eina_List *_edje_entry_anchor_geometry_get(Edje_Real_Part *rp, const char
 const Eina_List *_edje_entry_anchors_list(Edje_Real_Part *rp);
 void _edje_entry_cursor_geometry_get(Edje_Real_Part *rp, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch);
 void _edje_entry_select_allow_set(Edje_Real_Part *rp, Evas_Bool allow);
+void _edje_entry_select_abort(Edje_Real_Part *rp);
 
 #endif
index 8de42de..8c1fddc 100644 (file)
@@ -1101,7 +1101,7 @@ edje_object_part_text_cursor_geometry_get(const Evas_Object *obj, const char *pa
    return;
 }
 
-/** XX
+/** Enables selection if the entyr is an EXPLICIT selection mode type
  * @param obj A valid Evas_Object handle
  * @param part The part name
  */
@@ -1119,6 +1119,24 @@ edje_object_part_text_select_allow_set(const Evas_Object *obj, const char *part,
      _edje_entry_select_allow_set(rp, allow);
 }
 
+/** Aborts any selection action on a part
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ */
+EAPI void
+edje_object_part_text_select_abort(const Evas_Object *obj, const char *part)
+{
+   Edje *ed;
+   Edje_Real_Part *rp;
+
+   ed = _edje_fetch(obj);
+   if ((!ed) || (!part)) return;
+   rp = _edje_real_part_recursive_get(ed, (char *)part);
+   if (!rp) return;
+   if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
+     _edje_entry_select_abort(rp);
+}
+
 /** Swallows an object into the edje
  * @param obj A valid Evas_Object handle
  * @param part The part name