forked from enlightenment/efl
Elm entry: Expose the internal textblock object.
This commit introduces two new API: elm_entry_textblock_get and elm_entry_calc_force. These two APIs can be used to manipulate the textblock object inside the entry in a safe manner. This exposes an interface that wasn't available before letting do new and cool things with entries. SVN revision: 65169
This commit is contained in:
parent
1566e476c8
commit
beac21bb68
|
@ -11078,6 +11078,39 @@ extern "C" {
|
|||
* @return The selected text within the entry or NULL on failure
|
||||
*/
|
||||
EAPI const char *elm_entry_selection_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
|
||||
/**
|
||||
* Returns the actual textblock object of the entry.
|
||||
*
|
||||
* This function exposes the internal textblock object that actually
|
||||
* contains and draws the text. This should be used for low-level
|
||||
* manipulations that are otherwise not possible.
|
||||
*
|
||||
* Changing the textblock directly from here will not notify edje/elm to
|
||||
* recalculate the textblock size automatically, so any modifications
|
||||
* done to the textblock returned by this function should be followed by
|
||||
* a call to elm_entry_calc_force().
|
||||
*
|
||||
* The return value is marked as const as an additional warning.
|
||||
* One should not use the returned object with any of the generic evas
|
||||
* functions (geometry_get/resize/move and etc), but only with the textblock
|
||||
* functions; The former will either not work at all, or break the correct
|
||||
* functionality.
|
||||
*
|
||||
* @param obj The entry object
|
||||
* @return The textblock object.
|
||||
*/
|
||||
EAPI const Evas_Object *elm_entry_textblock_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
|
||||
/**
|
||||
* Forces calculation of the entry size and text layouting.
|
||||
*
|
||||
* This should be used after modifying the textblock object directly. See
|
||||
* elm_entry_textblock_get() for more information.
|
||||
*
|
||||
* @param obj The entry object
|
||||
*
|
||||
* @see elm_entry_textblock_get()
|
||||
*/
|
||||
EAPI void elm_entry_calc_force(const Evas_Object *obj) EINA_ARG_NONNULL(1);
|
||||
/**
|
||||
* Inserts the given text into the entry at the current cursor position.
|
||||
*
|
||||
|
|
|
@ -2488,6 +2488,27 @@ elm_entry_is_empty(const Evas_Object *obj)
|
|||
return !ret;
|
||||
}
|
||||
|
||||
EAPI const Evas_Object *
|
||||
elm_entry_textblock_get(const Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return NULL;
|
||||
|
||||
return edje_object_part_object_get(wd->ent, "elm.text");
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_entry_calc_force(const Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return;
|
||||
|
||||
edje_object_calc_force(wd->ent);
|
||||
}
|
||||
|
||||
|
||||
EAPI const char *
|
||||
elm_entry_selection_get(const Evas_Object *obj)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue