jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=c772bb0390c3acc1105eef65eb09bd098bbb457a

commit c772bb0390c3acc1105eef65eb09bd098bbb457a
Author: Jee-Yong Um <jc9...@samsung.com>
Date:   Thu Aug 11 09:33:55 2016 +0900

    edje: group methods in edje_object.eo
---
 src/lib/edje/edje_object.eo | 2362 +++++++++++++++++++++----------------------
 1 file changed, 1181 insertions(+), 1181 deletions(-)

diff --git a/src/lib/edje/edje_object.eo b/src/lib/edje/edje_object.eo
index a251ed9..6054bb9 100644
--- a/src/lib/edje/edje_object.eo
+++ b/src/lib/edje/edje_object.eo
@@ -131,6 +131,25 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, 
Efl.Container, Efl.Part)
             }
          }
       }
+      @property transition_duration_factor {
+         set {
+              [[Set transition duration factor.
+
+                This define the transition duration factor on this
+                specific object. By default all animation are run at a speed
+                factor of 1.0.]]
+         }
+         get {
+              [[Get transition duration factor.
+
+                This define the transition duration factor on this
+                specific object. By default all animation are run at a speed
+                factor of 1.0.]]
+         }
+         values {
+            scale: double; [[The transition duration factor]]
+         }
+      }
       @property scale {
          set {
             [[Set the scaling factor for a given Edje object.
@@ -177,142 +196,6 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, 
Efl.Container, Efl.Part)
                                   that means the edc file is made based on 
scale 1.0.]]
          }
       }
-      @property text_change_cb {
-         set {
-            [[Set the object text callback.
-
-              This function sets the callback to be called when the text 
changes.]]
-         }
-         values {
-            func: Edje.Text.Change_Cb; [[The callback function to handle the 
text change]]
-            data: void_ptr; [[The data associated to the callback function.]]
-         }
-      }
-      @property part_text_cursor_begin {
-         set {
-            [[Moves the cursor to the beginning of the text part
-              \@ref evas_textblock_cursor_paragraph_first]]
-         }
-         values {
-            part: string; [[The part name]]
-            cur: Edje.Cursor; [[the edje cursor to work on]]
-         }
-      }
-      @property part_text_cursor_line_end {
-         set {
-            [[Move the cursor to the end of the line.
-              \@ref evas_textblock_cursor_line_char_last]]
-         }
-         values {
-            part: string; [[The part name]]
-            cur: Edje.Cursor; [[the edje cursor to work on]]
-         }
-      }
-      @property text_class {
-         set {
-            [[Sets Edje text class.
-
-              This function sets the text class for the Edje.]]
-            return: bool; [[$true, on success or $false, on error]]
-         }
-         get {
-            [[Gets font and font size from edje text class.
-
-              This function gets the font and the font size from the object
-              text class. The font string will only be valid until the text
-              class is changed or the edje object is deleted.]]
-            return: bool; [[$true, on success or $false, on error]]
-         }
-         keys {
-            text_class: string; [[The text class name]]
-         }
-         values {
-            font: string; [[Font name]]
-            size: Evas.Font.Size; [[Font Size]]
-         }
-      }
-      @property part_text_cursor_coord {
-         set {
-            [[Position the given cursor to a X,Y position.
-
-              This is frequently used with the user cursor.]]
-
-            return: bool; [[True on success, false on error.]]
-         }
-         values {
-            part: string; [[The part containing the object.]]
-            cur: Edje.Cursor; [[The cursor to adjust.]]
-            x: Evas.Coord; [[X Coordinate.]]
-            y: Evas.Coord; [[Y Coordinate.]]
-         }
-      }
-      @property part_text_cursor_end {
-         set {
-            [[Moves the cursor to the end of the text part.
-              \@ref evas_textblock_cursor_paragraph_last]]
-         }
-         values {
-            part: string; [[The part name]]
-            cur: Edje.Cursor; [[the edje cursor to work on]]
-         }
-      }
-      @property part_text_escaped {
-         set {
-            [[Sets the text for an object part, but converts HTML escapes to 
UTF8
-
-              This converts the given string text to UTF8 assuming it contains 
HTML
-              style escapes like "&amp;" and "&copy;" etc. IF the part is of 
type TEXT,
-              as opposed to TEXTBLOCK.
-
-              @since 1.2]]
-            return: bool; [[$true on success, $false otherwise]]
-         }
-         values {
-            part: string; [[The part name]]
-            text: string; [[The text string]]
-         }
-      }
-      @property item_provider {
-         set {
-            [[Set the function that provides item objects for named items in 
an edje entry text
-
-              Item objects may be deleted any time by Edje, and will be 
deleted when the
-              Edje object is deleted (or file is set to a new file).]]
-         }
-         values {
-            func: Edje.Item_Provider_Cb; [[The function to call (or $null to 
disable) to get item objects]]
-            data: void_ptr; [[The data pointer to pass to the func callback]]
-         }
-      }
-      @property part_text_cursor_line_begin {
-         set {
-            [[Move the cursor to the beginning of the line.
-              \@ref evas_textblock_cursor_line_char_first]]
-         }
-         values {
-            part: string; [[The part name]]
-            cur: Edje.Cursor; [[the edje cursor to work on]]
-         }
-      }
-      @property message_handler {
-         set {
-            [[Set an Edje message handler function for a given Edje object.
-
-              For scriptable programs on an Edje object's defining EDC file 
which
-              send messages with the send_message() primitive, one can attach
-              handler functions, to be called in the code which creates
-              that object (see \@ref edcref "the syntax" for EDC files).
-
-              This function associates a message handler function and the
-              attached data pointer to the object obj.
-
-              See also @.message_send()]]
-         }
-         values {
-            func: Edje.Message_Handler_Cb; [[The function to handle messages  
coming from obj]]
-            data: void_ptr; [[Auxiliary data to be passed to func]]
-         }
-      }
       @property size_min {
          get {
             [[Get the minimum size specified -- as an EDC property -- for a
@@ -353,35 +236,6 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, 
Efl.Container, Efl.Part)
             minh: Evas.Coord; [[Pointer to a variable where to store the 
minimum height]]
          }
       }
-      access_part_iterate {
-         [[Iterate over all accessibility-enabled part names.]]
-         legacy: null;
-         return: free(own(iterator<string>), eina_iterator_free);
-      }
-      @property load_error {
-         get {
-            [[Gets the (last) file loading error for a given Edje object
-
-              This function is meant to be used after an Edje EDJ file
-              loading, what takes place with the edje_object_file_set()
-              function. If that function does not return $true, one should
-              check for the reason of failure with this one.
-
-              \@ref edje_load_error_str()]]
-            return: Edje.Load_Error; [[The Edje loading error, one of:
-                                       - #EDJE_LOAD_ERROR_NONE
-                                       - #EDJE_LOAD_ERROR_GENERIC
-                                       - #EDJE_LOAD_ERROR_DOES_NOT_EXIST
-                                       - #EDJE_LOAD_ERROR_PERMISSION_DENIED
-                                       - 
#EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED
-                                       - #EDJE_LOAD_ERROR_CORRUPT_FILE
-                                       - #EDJE_LOAD_ERROR_UNKNOWN_FORMAT
-                                       - #EDJE_LOAD_ERROR_INCOMPATIBLE_FILE
-                                       - #EDJE_LOAD_ERROR_UNKNOWN_COLLECTION
-                                       - #EDJE_LOAD_ERROR_RECURSIVE_REFERENCE]]
-
-         }
-      }
       @property size_max {
          get {
             [[Get the maximum size specified -- as an EDC property -- for a
@@ -423,115 +277,287 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, 
Efl.Container, Efl.Part)
             maxh: Evas.Coord; [[Pointer to a variable where to store the 
maximum height]]
          }
       }
-      part_external_param_type_get @const {
-         [[Facility to query the type of the given parameter of the given 
part.]]
+      preload {
+         [[Preload the images on the Edje Object in the background.
 
-         return: Edje.External.Param_Type; [[#EDJE_EXTERNAL_PARAM_TYPE_MAX on 
errors, or another value
-                                             from #Edje_External_Param_Type on 
success.]]
+           This function requests the preload of all data images (on the given
+           object) in the background. The work is queued before being processed
+           (because there might be other pending requests of this type).
+           It emits a signal "preload,done" when finished.
+
+           Note: Use $true on scenarios where you don't need
+           the image data preloaded anymore.]]
+
+         return: bool; [[$false if obj was not a valid Edje object
+                         otherwise $true]]
          params {
-            @in part: string; [[The part name]]
-            @in param: string; [[the parameter name to use.]]
+            @in cancel: bool; [[$false will add it the preloading work queue,
+                                $true will remove it (if it was issued 
before).]]
          }
       }
-      part_text_select_allow_set @const {
-         [[Enables selection if the entry is an EXPLICIT selection mode
-           type.
+      @property load_error {
+         get {
+            [[Gets the (last) file loading error for a given Edje object
+
+              This function is meant to be used after an Edje EDJ file
+              loading, what takes place with the edje_object_file_set()
+              function. If that function does not return $true, one should
+              check for the reason of failure with this one.
+
+              \@ref edje_load_error_str()]]
+            return: Edje.Load_Error; [[The Edje loading error, one of:
+                                       - #EDJE_LOAD_ERROR_NONE
+                                       - #EDJE_LOAD_ERROR_GENERIC
+                                       - #EDJE_LOAD_ERROR_DOES_NOT_EXIST
+                                       - #EDJE_LOAD_ERROR_PERMISSION_DENIED
+                                       - 
#EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED
+                                       - #EDJE_LOAD_ERROR_CORRUPT_FILE
+                                       - #EDJE_LOAD_ERROR_UNKNOWN_FORMAT
+                                       - #EDJE_LOAD_ERROR_INCOMPATIBLE_FILE
+                                       - #EDJE_LOAD_ERROR_UNKNOWN_COLLECTION
+                                       - #EDJE_LOAD_ERROR_RECURSIVE_REFERENCE]]
 
-           The default is to  not allow selection. This function only affects 
user
-           selection, functions such as edje_object_part_text_select_all() and
-           edje_object_part_text_select_none() are not affected.]]
-         params {
-            @in part: string; [[The part name]]
-            @in allow: bool; [[true to enable, false otherwise]]
          }
       }
-      part_state_get @const {
-         [[Returns the state of the Edje part.]]
+      size_min_calc {
+         [[Calculate the minimum required size for a given Edje object.
+
+           This call works exactly as edje_object_size_min_restricted_calc(),
+           with the last two arguments set to 0. Please refer to its
+           documentation, then.]]
 
-         return: string; [[The part state:
-                                 "default" for the default state
-                                 "" for other states]]
          params {
-            @in part: string; [[The part name]]
-            @out val_ret: double;
+            @out minw: Evas.Coord; [[Pointer to a variable where to store the 
minimum
+                                     required width]]
+            @out minh: Evas.Coord; [[Pointer to a variable where to store the 
minimum
+                                     required height]]
          }
       }
-      text_markup_filter_callback_del_full {
-         [[Delete a function and matching user data from the markup filter 
list.
+      size_min_restricted_calc {
+         [[Calculate the minimum required size for a given Edje object.
 
-           Delete the given func filter and data user data from the list
-           in part.
-           Returns the user data pointer given when added.
+           This call will trigger an internal recalculation of all parts of
+           the obj object, in order to return its minimum required
+           dimensions for width and height. The user might choose to  impose
+           those minimum sizes, making the resulting calculation to get to 
values
+           equal or bigger than restrictedw and restrictedh, for width and
+           height, respectively.
 
-           See also @.text_markup_filter_callback_add and 
@.text_markup_filter_callback_del
+           Note: At the end of this call, obj  won't be automatically
+           resized to new dimensions, but just return the calculated
+           sizes. The caller is the one up to change its geometry or not.
 
-           @since 1.2.0]]
+           Warning: Be advised that invisible parts in obj  will be taken
+           into account in this calculation.]]
 
-         return: void_ptr; [[The same data pointer if successful, or $null 
otherwise]]
          params {
-            @in part: string; [[The part name]]
-            @in func: Edje.Markup_Filter_Cb; [[The function callback to 
remove]]
-            @in data: void_ptr; [[The data passed to the callback function]]
+            @out minw: Evas.Coord; [[Pointer to a variable where to store the 
minimum
+                                     required width]]
+            @out minh: Evas.Coord; [[Pointer to a variable where to store the 
minimum
+                                     required height]]
+            @in restrictedw: Evas.Coord; [[Do not allow object's calculated 
(minimum) width
+                                           to be less than this value]]
+            @in restrictedh: Evas.Coord; [[Do not allow object's calculated 
(minimum)
+                                           height to be less than this value]]
          }
       }
-      part_drag_step_set {
-         [[Sets the drag step increment.
+      parts_extends_calc {
+         [[Calculate the geometry of the region, relative to a given Edje
+           object's area, occupied by all parts in the object.
 
-           Sets the x,y step increments for a dragable object.
+           This function gets the geometry of the rectangle equal to the area
+           required to group all parts in obj's group/collection. The x
+           and y coordinates are relative to the top left corner of the
+           whole obj object's area. Parts placed out of the group's
+           boundaries will also be taken in account, so that x and y
+           may be negative.
 
-           Values for dx and dy are real numbers that range from 0 to 1,
-           representing the relative size of the dragable area on that axis by 
which the
-           part will be moved.
+           Note: Use $null pointers on the geometry components you're not
+           interested in: they'll be ignored by the function.
 
-           See also @.part_drag_step_get()]]
+           Note: On failure, this function will make all non-$null geometry
+           pointers' pointed variables be set to zero.]]
 
          return: bool;
          params {
-            @in part: string; [[The part name]]
-            @in dx: double; [[The x step amount]]
-            @in dy: double; [[The y step amount]]
+            @out x: Evas.Coord; [[A pointer to a variable where to store the 
parts region's
+                                  x coordinate]]
+            @out y: Evas.Coord; [[A pointer to a variable where to store the 
parts region's
+                                  y coordinate]]
+            @out w: Evas.Coord; [[A pointer to a variable where to store the 
parts region's
+                                  width]]
+            @out h: Evas.Coord; [[A pointer to a variable where to store the 
parts region's
+                                  height]]
          }
       }
-      part_drag_step_get @const {
-         [[Gets the drag step increment values.
+      calc_force {
+         [[Force a Size/Geometry calculation.
 
-           Gets the x and y step increments for the dragable object.
+           Forces the object obj to recalculation layout regardless of
+           freeze/thaw.]]
 
-           See also @.part_drag_step_set()]]
-           return: bool;
+      }
+      freeze {
+         [[Freezes the Edje object.
+
+           This function puts all changes on hold. Successive freezes will
+           nest, requiring an equal number of thaws.
+
+           See also @.thaw()]]
+
+         return: int; [[The frozen state or 0 on Error]]
+      }
+      thaw {
+         [[Thaws the Edje object.
+
+           This function thaws the given Edje object.
+
+           Note:: If sucessives freezes were done, an equal number of
+           thaws will be required.
+
+           See also @.freeze()]]
+
+         return: int; [[The frozen state or 0 if the object is not frozen or 
on error.]]
+      }
+      data_get @const {
+         [[Retrive an EDC data field's value from a given Edje object's group.
+
+           This function fetches an EDC data field's value, which is declared
+           on the objects building EDC file, under its group. EDC data blocks
+           are most commonly used to pass arbitrary parameters from an
+           application's theme to its code.
+
+           EDC data fields always hold  strings as values, hence the return
+           type of this function. Check the complete \@ref edcref "syntax 
reference"
+           for EDC files.
+
+           Warning: Do not confuse this call with edje_file_data_get(), which
+           queries for a  global EDC data field on an EDC declaration file.
+
+           \@ref edje_object_file_set()]]
+           /* FIXME-doc
+            * They look like the following:
+            * @code
+            * collections
+            *   {
+            *      group
+            *        {
+            *           name: "a_group";
+            *           data
+            *             {
+            *                item: "key1" "value1";
+            *                item: "key2" "value2";
+            *             }
+            *        }
+            *  }
+            * @endcode
+            */
+         return: string; [[The data's value string. Must not be freed.]]
          params {
-            @in part: string; [[The part]]
-            @out dx: double; [[The x step increment pointer]]
-            @out dy: double; [[The y step increment pointer]]
+            @in key: string; [[The data field's key string]]
          }
       }
-      part_text_imf_context_get @const {
-         [[Get the input method context in entry.
+      @property message_handler {
+         set {
+            [[Set an Edje message handler function for a given Edje object.
 
-           If ecore_imf was not available when edje was compiled, this 
function returns $null
-           otherwise, the returned pointer is an Ecore_IMF
+              For scriptable programs on an Edje object's defining EDC file 
which
+              send messages with the send_message() primitive, one can attach
+              handler functions, to be called in the code which creates
+              that object (see \@ref edcref "the syntax" for EDC files).
 
-           @since 1.2.0]]
-         return: void_ptr; [[The input method context (Ecore_IMF_Context *) in 
entry]]
-         params {
-            @in part: string; [[The part name]]
+              This function associates a message handler function and the
+              attached data pointer to the object obj.
+
+              See also @.message_send()]]
+         }
+         values {
+            func: Edje.Message_Handler_Cb; [[The function to handle messages  
coming from obj]]
+            data: void_ptr; [[Auxiliary data to be passed to func]]
          }
       }
-      part_text_select_begin @const {
-         [[Starts selecting at current cursor position]]
+      message_send {
+         [[Send an (Edje) message to a given Edje object
+
+           This function sends an Edje message to obj and to all of its
+           child objects, if it has any (swallowed objects are one kind of
+           child object). type and msg  must be matched accordingly,
+           as documented in #Edje_Message_Type.
+
+           The id argument as a form of code and theme defining a common
+           interface on message communication. One should define the same IDs
+           on both code and EDC declaration (see \@ref edcref "the syntax" for
+           EDC files), to individualize messages (binding them to a given
+           context).
+
+           The function to handle messages arriving  from obj is set with
+           edje_object_message_handler_set().]]
+
          params {
-            @in part: string; [[The part name]]
+            @in type: Edje.Message_Type; [[The type of message to send to obj]]
+            @in id: int; [[A identification number for the message to be sent]]
+            @in msg: void_ptr; [[The message's body, a struct depending on 
type]]
          }
       }
-      part_text_style_user_peek @const {
-         [[Return the text of the object part.
+      signal_callback_add {
+         [[Add a callback for an arriving Edje signal, emitted by
+           a given Edje object.
 
-           This function returns the style associated with the textblock part.
+           Edje signals are one of the communication interfaces between
+            code and a given Edje object's theme. With signals, one can
+           communicate two string values at a time, which are:
+           - "emission" value: the name of the signal, in general
+           - "source" value: a name for the signal's context, in general
+
+           Though there are those common uses for the two strings, one is free
+           to use them however they like.
+
+           Signal callback registration is powerful, in the way that  blobs
+           may be used to match multiple signals at once. All the
+           "*?[\" set of $fnmatch() operators can be used, both for
+           emission and source.
+
+           Edje has  internal signals it will emit, automatically, on
+           various actions taking place on group parts. For example, the mouse
+           cursor being moved, pressed, released, etc., over a given part's
+           area, all generate individual signals.
+
+           By using something like
+           edje_object_signal_callback_add(obj, "mouse,down,*", "button.*",
+           signal_cb, NULL);
+           being \@ref "button.*" the pattern for the names of parts 
implementing
+           buttons on an interface, you'd be registering for notifications on
+           events of mouse buttons being pressed down on either of those parts
+           (those events all have the @"mouse,down," common prefix on their
+           names, with a suffix giving the button number). The actual emission
+           and source strings of an event will be passed in as the  emission
+           and  source parameters of the callback function (e.g.
+           "mouse,down,2" and @"button.close"), for each of those events.
+
+           Note: See \@ref edcref "the syntax" for EDC files
+           See also @.signal_emit() on how to emits Edje signals from
+           code to a an object
+           \@ref edje_object_signal_callback_del_full()]]
+           /* FIXME-doc
+            * This function adds a callback function to a signal emitted by  
obj, to
+            * be issued every time an EDC program like the following
+            * @code
+            * program
+            *   {
+            *      name: "emit_example";
+            *      action: SIGNAL_EMIT "a_signal" "a_source";
+            *   }
+            * @endcode
+            * is run, if emission and source are given those same values,
+            * here.
+            */
 
-           @since 1.2.0]]
-         return: string; [[The text string]]
          params {
-            @in part: string; [[The part name]]
+            @in emission: string; [[The signal's "emission" string]]
+            @in source: string; [[The signal's "source" string]]
+            @in func: Edje.Signal_Cb; [[The callback function to be executed 
when the signal is
+                                        emitted.]]
+            @in data: void_ptr; [[A pointer to data to pass in to func.]]
          }
       }
       signal_callback_del {
@@ -555,432 +581,397 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, 
Efl.Container, Efl.Part)
             @in data: void_ptr; [[The callback function.]]
          }
       }
-      part_text_cursor_next {
-         [[Advances the cursor to the next cursor position.
-           \@ref evas_textblock_cursor_char_next]]
-
-         return: bool;
-         params {
-            @in part: string; [[The part name]]
-            @in cur: Edje.Cursor; [[The edje cursor to advance]]
-         }
-      }
-      part_text_style_user_push {
-         [[Set the style of the
+      signal_emit {
+         [[Send/emit an Edje signal to a given Edje object
 
-           This function sets the style associated with the textblock part.
-
-           @since 1.2.0]]
+           This function sends a signal to the object  obj. An Edje program,
+           at obj's EDC specification level, can respond to a signal by
+           having declared matching @'signal' and @'source' fields on its
+           block (see \@ref edcref "the syntax" for EDC files).
 
+           See also @.signal_callback_add() for more on Edje signals.]]
+           /* FIXME-doc
+            * @code
+            * program
+            *   {
+            *      name: "a_program";
+            *      signal: "a_signal";
+            *      source: "";
+            *      action: ...
+            *   }
+            * @endcode
+            */
          params {
-            @in part: string; [[The part name]]
-            @in style: string; [[The style to set (textblock conventions).]]
+            @in emission: string; [[The signal's "emission" string]]
+            @in source: string; [[The signal's "source" string]]
          }
       }
-      part_text_append {
-         [[Insert text for an object part.
-
-           This function inserts the text for an object part at the end; It 
does not
-           move the cursor.
+      message_signal_process {
+         [[Process an object's message queue.
 
-           @since 1.1]]
+           This function goes through the object message queue processing the
+           pending messages for  this specific Edje object. Normally they'd
+           be processed only at idle time.]]
 
-         params {
-            @in part: string; [[The part name]]
-            @in text: string; [[The text string]]
-         }
       }
-      part_geometry_get @const {
-         [[Retrieve the geometry of a given Edje part, in a given Edje
-           object's group definition, relative to the object's area.
+      @property global_color_class @class {
+         set {
+            [[Set Edje color class.
 
-           This function gets the geometry of an Edje part within its
-           group. The x and y coordinates are relative to the top left
-           corner of the whole obj object's area.
+              This function sets the color values for a process level color
+              class.  This will cause all edje parts in the current process 
that
+              have the specified color class to have their colors multiplied by
+              these values.  (Object level color classes set by
+              edje_object_color_class_set() will override the values set by 
this
+              function).
 
-           Note: Use $null pointers on the geometry components you're not
-           interested in: they'll be ignored by the function.
+              Setting color emits a signal "color_class,set" with source being
+              the given color class in all objects.
 
-           Note: On failure, this function will make all non-$null geometry
-           pointers' pointed variables be set to zero.]]
-         return: bool;
-         params {
-            @in part: string; [[The Edje part's name]]
-            @out x: Evas.Coord; [[A pointer to a variable where to store the 
part's x
-                                  coordinate]]
-            @out y: Evas.Coord; [[A pointer to a variable where to store the 
part's y
-                                  coordinate]]
-            @out w: Evas.Coord; [[A pointer to a variable where to store the 
part's width]]
-            @out h: Evas.Coord; [[A pointer to a variable where to store the 
part's height]]
+              Note: unlike Evas, Edje colors are not pre-multiplied. That is,
+              half-transparent white is 255 255 255 128.]]
+            legacy: null;
+            return: bool; [[true on sucess, false on failure.]]
          }
-      }
-      part_text_input_panel_hide @const {
-         [[Hide the input panel (virtual keyboard).
-           See also @.part_text_input_panel_show
+         get {
+            [[Get Edje color class.
 
-           Note that input panel is shown or hidden automatically according to 
the focus state.
-           This API can be used in the case of manually controlling by using 
edje_object_part_text_input_panel_enabled_set.
+              This function gets the color values for a process level color
+              class. This value is the globally set and not per-object, that 
is,
+              the value that would be used by objects if they did not override 
with
+              @.color_class.set().
 
-           @since 1.2.0]]
-         params {
-            @in part: string; [[The part name]]
-         }
-      }
-      part_text_item_geometry_get @const {
-         [[Return item geometry.
+              See also, @.global_color_class.set()
 
-           This function return a list of Evas_Textblock_Rectangle item
-           rectangles.]]
-         return: bool; [[1 if item exists, 0 if not]]
-         params {
-            @in part: string; [[The part name]]
-            @in item: string; [[The item name]]
-            @out cx: Evas.Coord; [[Item x return (relative to entry part)]]
-            @out cy: Evas.Coord; [[Item y return (relative to entry part)]]
-            @out cw: Evas.Coord; [[Item width return]]
-            @out ch: Evas.Coord; [[Item height return]]
+              Note: unlike Evas, Edje colors are not pre-multiplied. That is,
+              half-transparent white is 255 255 255 128.]]
+            legacy: null;
+            return: bool; [[true if found or false if not found and all values
+                            are zeored.]]
          }
-      }
-      part_text_select_abort @const {
-         [[Aborts any selection action on a part.]]
-         params {
-            @in part: string; [[The part name]]
+         keys {
+            color_class: string; [[The name of color class]]
+            mode: Edje.Color_Class.Mode;
+         }
+         values {
+            r: int; [[Object Red value]]
+            g: int; [[Object Green value]]
+            b: int; [[Object Blue value]]
+            a: int; [[Object Alpha value]]
          }
       }
-      text_insert_filter_callback_del_full {
-         [[Delete a function and matching user data from the filter list.
-
-           Delete the given func filter and data user data from the list
-           in part.
-           Returns the user data pointer given when added.
+      @property color_class {
+         set {
+            [[Sets the object color class.
 
-           See also @.text_insert_filter_callback_add and 
@.text_insert_filter_callback_del]]
+              This function sets the color values for an object level color
+              class. This will cause all edje parts in the specified object 
that
+              have the specified color class to have their colors multiplied by
+              these values.
 
-         return: void_ptr; [[The same data pointer if successful, or $null 
otherwise]]
-         params {
-            @in part: string; [[The part name]]
-            @in func: Edje.Text.Filter_Cb; [[The function callback to remove]]
-            @in data: void_ptr; [[The data passed to the callback function]]
-         }
-      }
-      part_text_style_user_pop {
-         [[Delete the top style form the user style stack.
+              The first color is the object, the second is the text outline, 
and
+              the third is the text shadow. (Note that the second two only 
apply
+              to text parts).
 
-           @since 1.2.0]]
+              Setting color emits a signal "color_class,set" with source being
+              the given color.
 
-         params {
-            @in part: string; [[The part name]]
+              Note: unlike Evas, Edje colors are not pre-multiplied. That is,
+              half-transparent white is 255 255 255 128.]]
+            legacy: null;
+            return: bool;
          }
-      }
-      part_text_input_panel_imdata_set {
-         [[Set the input panel-specific data to deliver to the input panel.
+         get {
+            [[Gets the object color class.
 
-           This API is used by applications to deliver specific data to the 
input panel.
-           The data format MUST be negotiated by both application and the 
input panel.
-           The size and format of data are defined by the input panel.
+              This function gets the color values for an object level color
+              class. If no explicit object color is set, then global values 
will
+              be used.
 
-           @since 1.2.0]]
+              The first color is the object, the second is the text outline, 
and
+              the third is the text shadow. (Note that the second two only 
apply
+              to text parts).
 
-         params {
-            @in part: string; [[The part name]]
-            @in data: const(void_ptr); [[The specific data to be set to the 
input panel.]]
-            @in len: int; [[the length of data, in bytes, to send to the input 
panel]]
+              Note: unlike Evas, Edje colors are not pre-multiplied. That is,
+              half-transparent white is 255 255 255 128.]]
+            legacy: null;
+            return: bool; [[true if found or false if not found and all
+                            values are zeroed.]]
          }
-      }
-      part_text_input_panel_imdata_get @const {
-         [[Get the specific data of the current active input panel.
-
-           @since 1.2.0]]
-         params {
-            @in part: string; [[The part name]]
-            @in data: void_ptr; [[The specific data to be got from the input 
panel]]
-            @in len: int *; [[The length of data]]
+         keys {
+            color_class: string; [[The name of color class]]
+            mode: Edje.Color_Class.Mode;
          }
-      }
-      part_text_insert {
-         [[Insert text for an object part.
-
-           This function inserts the text for an object part just before the
-           cursor position.]]
-
-         params {
-            @in part: string; [[The part name]]
-            @in text: string; [[The text string]]
+         values {
+            r: int; [[Object Red value]]
+            g: int; [[Object Green value]]
+            b: int; [[Object Blue value]]
+            a: int; [[Object Alpha value]]
          }
       }
-      part_text_cursor_copy {
-         [[Copy the cursor to another cursor.]]
+      color_class_description_get @const {
+         [[Gets the description of an object color class.
 
+           This function gets the description of a color class in use by an 
object.]]
+         return: string; [[The description of the target color class or $null 
if not found]]
          params {
-            @in part: string; [[The part name]]
-            @in src: Edje.Cursor; [[the cursor to copy from]]
-            @in dst: Edje.Cursor; [[the cursor to copy to]]
+            @in color_class: string;
          }
       }
-      parts_extends_calc {
-         [[Calculate the geometry of the region, relative to a given Edje
-           object's area, occupied by all parts in the object.
-
-           This function gets the geometry of the rectangle equal to the area
-           required to group all parts in obj's group/collection. The x
-           and y coordinates are relative to the top left corner of the
-           whole obj object's area. Parts placed out of the group's
-           boundaries will also be taken in account, so that x and y
-           may be negative.
-
-           Note: Use $null pointers on the geometry components you're not
-           interested in: they'll be ignored by the function.
-
-           Note: On failure, this function will make all non-$null geometry
-           pointers' pointed variables be set to zero.]]
+      color_class_clear @const {
+         [[Clear object color classes.
 
-         return: bool;
-         params {
-            @out x: Evas.Coord; [[A pointer to a variable where to store the 
parts region's
-                                  x coordinate]]
-            @out y: Evas.Coord; [[A pointer to a variable where to store the 
parts region's
-                                  y coordinate]]
-            @out w: Evas.Coord; [[A pointer to a variable where to store the 
parts region's
-                                  width]]
-            @out h: Evas.Coord; [[A pointer to a variable where to store the 
parts region's
-                                  height]]
-         }
+           @since 1.17.0]]
+         return: bool; [[$true, on success or $false, on error]]
       }
-      part_drag_value_set {
-         [[Set the dragable object location.
-
-           Places the dragable object at the given location.
-
-           Values for dx and dy are real numbers that range from 0 to 1,
-           representing the relative position to the dragable area on that 
axis.
-
-           This value means, for the vertical axis, that 0.0 will be at the 
top if the
-           first parameter of $y in the dragable part theme is 1, and at 
bottom if it
-           is -1.
+      color_class_del {
+         [[Delete the object color class.
 
-           For the horizontal axis, 0.0 means left if the first parameter of 
$x in the
-           dragable part theme is 1, and right if it is -1.
+           This function deletes any values at the object level for the
+           specified object and color class.
 
-           See also @.part_drag_value_get()]]
+           Deleting the color class will revert it to the values
+           defined by edje_color_class_set() or the color class
+           defined in the theme file.
 
-         return: bool;
+           Deleting the color class will emit the signal "color_class,del"
+           for the given Edje object.]]
          params {
-            @in part: string; [[The part name]]
-            @in dx: double; [[The x value]]
-            @in dy: double; [[The y value]]
+            @in color_class: string; [[The color class to be deleted.]]
          }
       }
-      part_drag_value_get @const {
-         [[Get the dragable object location.
-
-           Values for dx and dy are real numbers that range from 0 to 1,
-           representing the relative position to the dragable area on that 
axis.
-
-           See also @.part_drag_value_set()
+      @property text_class {
+         set {
+            [[Sets Edje text class.
 
-           Gets the drag location values.]]
-         return: bool;
-         params {
-            @in part: string; [[The part name]]
-            @out dx: double; [[The X value pointer]]
-            @out dy: double; [[The Y value pointer]]
+              This function sets the text class for the Edje.]]
+            return: bool; [[$true, on success or $false, on error]]
          }
-      }
-      calc_force {
-         [[Force a Size/Geometry calculation.
-
-           Forces the object obj to recalculation layout regardless of
-           freeze/thaw.]]
-
-      }
-      part_text_cursor_pos_set {
-         [[Sets the cursor position to the given value
-
-           @since 1.1.0]]
+         get {
+            [[Gets font and font size from edje text class.
 
-         params {
-            @in part: string; [[The part name]]
-            @in cur: Edje.Cursor; [[The cursor to move]]
-            @in pos: int; [[the position of the cursor]]
+              This function gets the font and the font size from the object
+              text class. The font string will only be valid until the text
+              class is changed or the edje object is deleted.]]
+            return: bool; [[$true, on success or $false, on error]]
+         }
+         keys {
+            text_class: string; [[The text class name]]
+         }
+         values {
+            font: string; [[Font name]]
+            size: Evas.Font.Size; [[Font Size]]
          }
       }
-      part_text_cursor_pos_get @const {
-         [[Retrieves the current position of the cursor
+      text_class_del {
+         [[Delete the object text class.
 
-           @since 1.1.0]]
-         return: int; [[The cursor position]]
+           This function deletes any values at the object level for the
+           specified object and text class.
+
+           Deleting the text class will revert it to the values
+           defined by edje_text_class_set() or the text class
+           defined in the theme file.
+
+           @since 1.17]]
          params {
-            @in part: string; [[The part name]]
-            @in cur: Edje.Cursor; [[The cursor to get the position]]
+            @in text_class: string; [[The color class to be deleted.]]
          }
       }
-      freeze {
-         [[Freezes the Edje object.
-
-           This function puts all changes on hold. Successive freezes will
-           nest, requiring an equal number of thaws.
+      @property size_class {
+         set {
+            [[Sets the object size class.
 
-           See also @.thaw()]]
+              This function sets the min and max values for an object level 
size
+              class. This will make all edje parts in the specified object that
+              have the specified size class update their min and max size with 
given values.
 
-         return: int; [[The frozen state or 0 on Error]]
-      }
-      part_text_cursor_content_get @const {
-         [[Returns the content (char) at the cursor position.
-           \@ref evas_textblock_cursor_content_get
+              @since 1.17]]
+            return: bool; [[$true, on success or $false, on error]]
+         }
+         get {
+            [[Gets the object size class.
 
-           You must free the return (if not $null) after you are done with 
it.]]
+              This function gets the min and max values for an object level 
size
+              class. These values will only be valid until the size class is 
changed
+              or the edje object is deleted.
 
-         return: own(char *); [[The character string pointed to (may be a 
multi-byte utf8 sequence) terminated by a nul byte.]]
-         params {
-            @in part: string; [[The part name]]
-            @in cur: Edje.Cursor; [[The cursor to use]]
+              @since 1.17]]
+            return: bool; [[$true, on success or $false, on error]]
+         }
+         keys {
+            size_class: string; [[The size class name]]
+         }
+         values {
+            minw: int; [[The min width]]
+            minh: int; [[The min height]]
+            maxw: int; [[The max width]]
+            maxh: int; [[The max height]]
          }
       }
-      part_text_input_panel_layout_set {
-         [[Set the layout of the input panel.
+      size_class_del {
+         [[Delete the object size class.
 
-           The layout of the input panel or virtual keyboard can make it 
easier or
-           harder to enter content. This allows you to hint what kind of input 
you
-           are expecting to enter and thus have the input panel automatically
-           come up with the right mode.
+           This function deletes any values at the object level for the
+           specified object and size class.
 
-           @since 1.1]]
+           Deleting the size class will revert it to the values
+           defined by edje_size_class_set() or the color class
+           defined in the theme file.
 
+           @since 1.17]]
          params {
-            @in part: string; [[The part name]]
-            @in layout: Edje.Input_Panel.Layout; [[layout type]]
+            @in size_class: string;
          }
       }
-      part_text_input_panel_layout_get @const {
-         [[Get the layout of the input panel.
+      access_part_iterate {
+         [[Iterate over all accessibility-enabled part names.]]
+         legacy: null;
+         return: free(own(iterator<string>), eina_iterator_free);
+      }
+      part_exists @const {
+         [[Check if an Edje part exists in a given Edje object's group
+           definition.
 
-           See also @.part_text_input_panel_layout_set
+           This function returns if a given part exists in the Edje group
+           bound to object obj (with edje_object_file_set()).
 
-           @since 1.1]]
-         return: Edje.Input_Panel.Layout; [[Layout type of the input panel]]
+           This call is useful, for example, when one could expect or not a
+           given GUI element, depending on the  theme applied to obj.]]
+         return: bool; [[$true, if the Edje part exists in obj's group or
+                         $false, otherwise (and on errors)]]
          params {
-            @in part: string; [[The part name]]
+            @in part: string; [[The part's name to check for existence in obj's
+                                      group]]
          }
       }
-      part_text_input_panel_language_set {
-         [[Set the language mode of the input panel.
+      part_object_get @const {
+         [[Get a handle to the Evas object implementing a given Edje
+           part, in an Edje object.
 
-           This API can be used if you want to show the Alphabet keyboard.
+           This function gets a pointer of the Evas object corresponding to a
+           given part in the obj object's group.
 
-           @since 1.2.0]]
+           You should  never modify the state of the returned object (with
+           \@ref evas_object_move() or \@ref evas_object_hide() for example),
+           because it's meant to be managed by Edje, solely. You are safe to
+           query information about its current state (with
+           evas_object_visible_get() or \@ref evas_object_color_get() for
+           example), though.
 
+           Note: If the type of Edje part is GROUP, SWALLOW or EXTERNAL,
+           returned handle by this function will indicate nothing or 
transparent
+           rectangle for events. Use $.part_swallow_get() in that case.]]
+         return: const(Efl.Canvas.Object); [[A pointer to the Evas object 
implementing the given part,
+                                        or $null on failure (e.g. the given 
part doesn't exist)]]
          params {
-            @in part: string; [[The part name]]
-            @in lang: Edje.Input_Panel.Lang; [[the language to be set to the 
input panel.]]
+            @in part: string; [[The Edje part's name]]
          }
       }
-      part_text_input_panel_language_get @const {
-         [[Get the language mode of the input panel.
-
-           See also @.part_text_input_panel_language_set for more details.
+      part_state_get @const {
+         [[Returns the state of the Edje part.]]
 
-           @since 1.2.0]]
-         return: Edje.Input_Panel.Lang; [[input panel language type]]
+         return: string; [[The part state:
+                                 "default" for the default state
+                                 "" for other states]]
          params {
             @in part: string; [[The part name]]
+            @out val_ret: double;
          }
       }
-      part_external_object_get @const {
-         [[Get the object created by this external part.
+      part_geometry_get @const {
+         [[Retrieve the geometry of a given Edje part, in a given Edje
+           object's group definition, relative to the object's area.
 
-           Parts of type external creates the part object using information
-           provided by external plugins. It's somehow like "swallow"
-           (edje_object_part_swallow()), but it's all set automatically.
+           This function gets the geometry of an Edje part within its
+           group. The x and y coordinates are relative to the top left
+           corner of the whole obj object's area.
 
-           This function returns the part created by such external plugins and
-           being currently managed by this Edje.
+           Note: Use $null pointers on the geometry components you're not
+           interested in: they'll be ignored by the function.
 
-           Note: Almost all swallow rules apply: you should not move, resize,
-           hide, show, set the color or clipper of such part. It's a bit
-           more restrictive as one must  never delete this object!]]
-         return: Efl.Canvas.Object; [[The externally created object, or $null 
if there is none or
-                                  part is not an external.]]
+           Note: On failure, this function will make all non-$null geometry
+           pointers' pointed variables be set to zero.]]
+         return: bool;
          params {
-            @in part: string; [[The part name]]
+            @in part: string; [[The Edje part's name]]
+            @out x: Evas.Coord; [[A pointer to a variable where to store the 
part's x
+                                  coordinate]]
+            @out y: Evas.Coord; [[A pointer to a variable where to store the 
part's y
+                                  coordinate]]
+            @out w: Evas.Coord; [[A pointer to a variable where to store the 
part's width]]
+            @out h: Evas.Coord; [[A pointer to a variable where to store the 
part's height]]
          }
       }
-      @property part_external_content {
-         [[Get an object contained in an part of type EXTERNAL
+      part_drag_step_set {
+         [[Sets the drag step increment.
 
-           The content string must not be $null. Its actual value depends on 
the
-           code providing the EXTERNAL.]]
-         get {}
-         keys {
-            part: string; [[The name of the part holding the EXTERNAL]]
-            content: string; [[A string identifying which content from the 
EXTERNAL to get]]
-         }
-         values {
-            v: Efl.Canvas.Object;
-         }
-      }
-      preload {
-         [[Preload the images on the Edje Object in the background.
+           Sets the x,y step increments for a dragable object.
 
-           This function requests the preload of all data images (on the given
-           object) in the background. The work is queued before being processed
-           (because there might be other pending requests of this type).
-           It emits a signal "preload,done" when finished.
+           Values for dx and dy are real numbers that range from 0 to 1,
+           representing the relative size of the dragable area on that axis by 
which the
+           part will be moved.
 
-           Note: Use $true on scenarios where you don't need
-           the image data preloaded anymore.]]
+           See also @.part_drag_step_get()]]
 
-         return: bool; [[$false if obj was not a valid Edje object
-                         otherwise $true]]
+         return: bool;
          params {
-            @in cancel: bool; [[$false will add it the preloading work queue,
-                                $true will remove it (if it was issued 
before).]]
+            @in part: string; [[The part name]]
+            @in dx: double; [[The x step amount]]
+            @in dy: double; [[The y step amount]]
          }
       }
-      part_text_input_panel_enabled_set {
-         [[Sets the attribute to show the input panel automatically.
+      part_drag_step_get @const {
+         [[Gets the drag step increment values.
 
-           @since 1.1.0]]
+           Gets the x and y step increments for the dragable object.
 
+           See also @.part_drag_step_set()]]
+           return: bool;
          params {
-            @in part: string; [[The part name]]
-            @in enabled: bool; [[If true, the input panel is appeared when 
entry is clicked or has a focus]]
+            @in part: string; [[The part]]
+            @out dx: double; [[The x step increment pointer]]
+            @out dy: double; [[The y step increment pointer]]
          }
       }
-      part_text_input_panel_enabled_get @const {
-         [[Retrieve the attribute to show the input panel automatically.
-           See also @.part_text_input_panel_enabled_set
+      part_drag_value_set {
+         [[Set the dragable object location.
 
-           @since 1.1.0]]
-         return: bool; [[true if it supports or false otherwise]]
-         params {
-            @in part: string; [[The part name]]
-         }
-      }
-      part_text_select_extend @const {
-         [[Extends the current selection to the current cursor position]]
-         params {
-            @in part: string; [[The part name]]
-         }
-      }
-      part_text_anchor_geometry_get @const {
-         [[Return a list of Evas_Textblock_Rectangle anchor rectangles.
+           Places the dragable object at the given location.
 
-           This function return a list of Evas_Textblock_Rectangle anchor
-           rectangles.]]
-         return: const(list<const(Evas.Textblock_Rectangle)*>); [[The list of 
anchor rects (const Evas_Textblock_Rectangle
-                                                                  *), do not 
modify! Geometry is relative to entry part.]]
+           Values for dx and dy are real numbers that range from 0 to 1,
+           representing the relative position to the dragable area on that 
axis.
+
+           This value means, for the vertical axis, that 0.0 will be at the 
top if the
+           first parameter of $y in the dragable part theme is 1, and at 
bottom if it
+           is -1.
+
+           For the horizontal axis, 0.0 means left if the first parameter of 
$x in the
+           dragable part theme is 1, and right if it is -1.
+
+           See also @.part_drag_value_get()]]
+
+         return: bool;
          params {
             @in part: string; [[The part name]]
-            @in anchor: string; [[The anchor name]]
+            @in dx: double; [[The x value]]
+            @in dy: double; [[The y value]]
          }
       }
-      part_text_cursor_down {
-         [[Moves the cursor to the char below the current cursor position.]]
+      part_drag_value_get @const {
+         [[Get the dragable object location.
+
+           Values for dx and dy are real numbers that range from 0 to 1,
+           representing the relative position to the dragable area on that 
axis.
+
+           See also @.part_drag_value_set()
 
+           Gets the drag location values.]]
          return: bool;
          params {
             @in part: string; [[The part name]]
-            @in cur: Edje.Cursor; [[the edje cursor to work on]]
+            @out dx: double; [[The X value pointer]]
+            @out dy: double; [[The Y value pointer]]
          }
       }
       part_drag_page_set {
@@ -1014,168 +1005,232 @@ class Edje.Object (Efl.Canvas.Group.Clipped, 
Efl.File, Efl.Container, Efl.Part)
             @out dy: double; [[The dy page increment pointer]]
          }
       }
-      signal_emit {
-         [[Send/emit an Edje signal to a given Edje object
+      part_drag_size_set {
+         [[Set the dragable object size.
 
-           This function sends a signal to the object  obj. An Edje program,
-           at obj's EDC specification level, can respond to a signal by
-           having declared matching @'signal' and @'source' fields on its
-           block (see \@ref edcref "the syntax" for EDC files).
+           Values for dw and dh are real numbers that range from 0 to 1,
+           representing the relative size of the dragable area on that axis.
 
-           See also @.signal_callback_add() for more on Edje signals.]]
-           /* FIXME-doc
-            * @code
-            * program
-            *   {
-            *      name: "a_program";
-            *      signal: "a_signal";
-            *      source: "";
-            *      action: ...
-            *   }
-            * @endcode
-            */
+           Sets the size of the dragable object.
+
+           See also @.part_drag_size_get()]]
+
+         return: bool;
          params {
-            @in emission: string; [[The signal's "emission" string]]
-            @in source: string; [[The signal's "source" string]]
+            @in part: string; [[The part name]]
+            @in dw: double; [[The drag width]]
+            @in dh: double; [[The drag height]]
          }
       }
-      part_text_input_panel_layout_variation_set {
-         [[Set the layout variation of the input panel.
+      part_drag_size_get @const {
+         [[Get the dragable object size.
 
-           The layout variation of the input panel or virtual keyboard can 
make it easier or
-           harder to enter content. This allows you to hint what kind of input 
you
-           are expecting to enter and thus have the input panel automatically
-           come up with the right mode.
+           Gets the dragable object size.
 
-           @since 1.8]]
+           See also @.part_drag_size_set()]]
+         return: bool;
+         params {
+            @in part: string; [[The part name]]
+            @out dw: double; [[The drag width pointer]]
+            @out dh: double; [[The drag height pointer]]
+         }
+      }
+      part_drag_dir_get @const {
+         [[Determine dragable directions.
+
+           The dragable directions are defined in the EDC file, inside the 
\@ref dragable
+           section, by the attributes $x and $y. See the \@ref edcref for more
+           information.]]
 
+         return: Edje.Drag_Dir; [[#EDJE_DRAG_DIR_NONE: Not dragable
+                                  #EDJE_DRAG_DIR_X: Dragable in X direction
+                                  #EDJE_DRAG_DIR_Y: Dragable in Y direction
+                                  #EDJE_DRAG_DIR_XY: Dragable in X & Y 
directions]]
          params {
             @in part: string; [[The part name]]
-            @in variation: int; [[layout variation type]]
          }
       }
-      part_text_input_panel_layout_variation_get @const {
-         [[Get the layout variation of the input panel.
+      part_drag_page {
+         [[Pages x,y steps.
 
-           See also @.part_text_input_panel_layout_variation_set
+           Pages x,y where the increment is defined by
+           edje_object_part_drag_page_set.
 
-           @since 1.8]]
-         return: int; [[Layout variation type of the input panel]]
+           Values for dx and dy are real numbers that range from 0 to 1.
+
+           Warning: Paging is bugged!
+
+           See also @.part_drag_step()]]
+
+         return: bool;
          params {
             @in part: string; [[The part name]]
+            @in dx: double; [[The x step]]
+            @in dy: double; [[The y step]]
          }
       }
-      message_send {
-         [[Send an (Edje) message to a given Edje object
+      part_drag_step {
+         [[Steps the dragable x,y steps.
 
-           This function sends an Edje message to obj and to all of its
-           child objects, if it has any (swallowed objects are one kind of
-           child object). type and msg  must be matched accordingly,
-           as documented in #Edje_Message_Type.
+           Steps x,y where the step increment is the amount set by
+           edje_object_part_drag_step_set.
 
-           The id argument as a form of code and theme defining a common
-           interface on message communication. One should define the same IDs
-           on both code and EDC declaration (see \@ref edcref "the syntax" for
-           EDC files), to individualize messages (binding them to a given
-           context).
+           Values for dx and dy are real numbers that range from 0 to 1.
 
-           The function to handle messages arriving  from obj is set with
-           edje_object_message_handler_set().]]
+           See also @.part_drag_page()]]
 
+         return: bool;
          params {
-            @in type: Edje.Message_Type; [[The type of message to send to obj]]
-            @in id: int; [[A identification number for the message to be sent]]
-            @in msg: void_ptr; [[The message's body, a struct depending on 
type]]
+            @in part: string; [[The part name]]
+            @in dx: double; [[The x step]]
+            @in dy: double; [[The y step]]
          }
       }
-      part_text_select_none @const {
-         [[Set the selection to be none.
+      part_external_param_type_get @const {
+         [[Facility to query the type of the given parameter of the given 
part.]]
 
-           This function sets the selection text to be none.]]
+         return: Edje.External.Param_Type; [[#EDJE_EXTERNAL_PARAM_TYPE_MAX on 
errors, or another value
+                                             from #Edje_External_Param_Type on 
success.]]
          params {
             @in part: string; [[The part name]]
+            @in param: string; [[the parameter name to use.]]
          }
       }
-      part_object_get @const {
-         [[Get a handle to the Evas object implementing a given Edje
-           part, in an Edje object.
+      part_external_object_get @const {
+         [[Get the object created by this external part.
 
-           This function gets a pointer of the Evas object corresponding to a
-           given part in the obj object's group.
+           Parts of type external creates the part object using information
+           provided by external plugins. It's somehow like "swallow"
+           (edje_object_part_swallow()), but it's all set automatically.
 
-           You should  never modify the state of the returned object (with
-           \@ref evas_object_move() or \@ref evas_object_hide() for example),
-           because it's meant to be managed by Edje, solely. You are safe to
-           query information about its current state (with
-           evas_object_visible_get() or \@ref evas_object_color_get() for
-           example), though.
+           This function returns the part created by such external plugins and
+           being currently managed by this Edje.
 
-           Note: If the type of Edje part is GROUP, SWALLOW or EXTERNAL,
-           returned handle by this function will indicate nothing or 
transparent
-           rectangle for events. Use $.part_swallow_get() in that case.]]
-         return: const(Efl.Canvas.Object); [[A pointer to the Evas object 
implementing the given part,
-                                        or $null on failure (e.g. the given 
part doesn't exist)]]
+           Note: Almost all swallow rules apply: you should not move, resize,
+           hide, show, set the color or clipper of such part. It's a bit
+           more restrictive as one must  never delete this object!]]
+         return: Efl.Canvas.Object; [[The externally created object, or $null 
if there is none or
+                                  part is not an external.]]
          params {
-            @in part: string; [[The Edje part's name]]
+            @in part: string; [[The part name]]
          }
       }
-      part_drag_size_set {
-         [[Set the dragable object size.
+      @property part_external_content {
+         [[Get an object contained in an part of type EXTERNAL
 
-           Values for dw and dh are real numbers that range from 0 to 1,
-           representing the relative size of the dragable area on that axis.
+           The content string must not be $null. Its actual value depends on 
the
+           code providing the EXTERNAL.]]
+         get {}
+         keys {
+            part: string; [[The name of the part holding the EXTERNAL]]
+            content: string; [[A string identifying which content from the 
EXTERNAL to get]]
+         }
+         values {
+            v: Efl.Canvas.Object;
+         }
+      }
+      part_external_param_set {
+         [[Set the parameter for the external part.
 
-           Sets the size of the dragable object.
+           Parts of type external may carry extra properties that have
+           meanings defined by the external plugin. For instance, it may be a
+           string that defines a button label and setting this property will
+           change that label on the fly.
 
-           See also @.part_drag_size_get()]]
+           Note: external parts have parameters set when they change
+           states. Those parameters will never be changed by this
+           function. The interpretation of how state_set parameters and
+           param_set will interact is up to the external plugin.
 
-         return: bool;
+           Note: this function will not check if parameter value is valid
+           using #Edje_External_Param_Info minimum, maximum, valid
+           choices and others. However these should be checked by the
+           underlying implementation provided by the external
+           plugin. This is done for performance reasons.]]
+
+         return: bool; [[$true if everything went fine, $false on errors.]]
          params {
             @in part: string; [[The part name]]
-            @in dw: double; [[The drag width]]
-            @in dh: double; [[The drag height]]
+            @in param: const(Edje.External.Param)*; [[the parameter details, 
including its name, type and
+                                                      actual value. This 
pointer should be valid, and the
+                                                      parameter must exist in
+                                                      
#Edje_External_Type.parameters_info, with the exact type,
+                                                      otherwise the operation 
will fail and $false will be
+                                                      returned.]]
          }
       }
-      part_drag_size_get @const {
-         [[Get the dragable object size.
+      part_external_param_get @const {
+         [[Get the parameter for the external part.
 
-           Gets the dragable object size.
+           Parts of type external may carry extra properties that have
+           meanings defined by the external plugin. For instance, it may be a
+           string that defines a button label. This property can be modified by
+           state parameters, by explicit calls to
+           edje_object_part_external_param_set() or getting the actual object
+           with edje_object_part_external_object_get() and calling native
+           functions.
 
-           See also @.part_drag_size_set()]]
-         return: bool;
+           This function asks the external plugin what is the current value,
+           independent on how it was set.]]
+
+         return: bool; [[$true if everything went fine and param members
+                         are filled with information, $false on errors and
+                         param member values are not set or valid.]]
          params {
             @in part: string; [[The part name]]
-            @out dw: double; [[The drag width pointer]]
-            @out dh: double; [[The drag height pointer]]
+            @out param: Edje.External.Param; [[the parameter details. It is 
used as both input and
+                                               output variable. This pointer 
should be valid, and the
+                                               parameter must exist in
+                                               
#Edje_External_Type.parameters_info, with the exact type,
+                                               otherwise the operation will 
fail and $false will be
+                                               returned.]]
          }
       }
-      text_insert_filter_callback_del {
-         [[Delete a function from the filter list.
+      @property text_change_cb {
+         set {
+            [[Set the object text callback.
 
-           Delete the given func filter from the list in part. Returns
-           the user data pointer given when added.
+              This function sets the callback to be called when the text 
changes.]]
+         }
+         values {
+            func: Edje.Text.Change_Cb; [[The callback function to handle the 
text change]]
+            data: void_ptr; [[The data associated to the callback function.]]
+         }
+      }
+      part_text_set {
+         [[Sets the text for an object part]]
+
+         return: bool; [[$true on success, $false otherwise]]
+         params {
+            @in part: string; [[The part name]]
+            @in text: string; [[The text string]]
+         }
+      }
+      part_text_get @const {
+         [[Return the text of the object part.
 
-           See also @.text_insert_filter_callback_add and 
@.text_insert_filter_callback_del_full]]
+           This function returns the text associated to the object part.
 
-         return: void_ptr; [[The user data pointer if successful, or $null 
otherwise]]
+           See also @.part_text_set().]]
+         return: string; [[The text string]]
          params {
             @in part: string; [[The part name]]
-            @in func: Edje.Text.Filter_Cb; [[The function callback to remove]]
          }
       }
-      part_drag_dir_get @const {
-         [[Determine dragable directions.
+      @property part_text_escaped {
+         set {
+            [[Sets the text for an object part, but converts HTML escapes to 
UTF8
 
-           The dragable directions are defined in the EDC file, inside the 
\@ref dragable
-           section, by the attributes $x and $y. See the \@ref edcref for more
-           information.]]
+              This converts the given string text to UTF8 assuming it contains 
HTML
+              style escapes like "&amp;" and "&copy;" etc. IF the part is of 
type TEXT,
+              as opposed to TEXTBLOCK.
 
-         return: Edje.Drag_Dir; [[#EDJE_DRAG_DIR_NONE: Not dragable
-                                  #EDJE_DRAG_DIR_X: Dragable in X direction
-                                  #EDJE_DRAG_DIR_Y: Dragable in Y direction
-                                  #EDJE_DRAG_DIR_XY: Dragable in X & Y 
directions]]
-         params {
-            @in part: string; [[The part name]]
+              @since 1.2]]
+            return: bool; [[$true on success, $false otherwise]]
+         }
+         values {
+            part: string; [[The part name]]
+            text: string; [[The text string]]
          }
       }
       part_text_unescaped_set {
@@ -1207,92 +1262,40 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, 
Efl.Container, Efl.Part)
             @in part: string; [[The part name]]
          }
       }
-      signal_callback_add {
-         [[Add a callback for an arriving Edje signal, emitted by
-           a given Edje object.
-
-           Edje signals are one of the communication interfaces between
-            code and a given Edje object's theme. With signals, one can
-           communicate two string values at a time, which are:
-           - "emission" value: the name of the signal, in general
-           - "source" value: a name for the signal's context, in general
-
-           Though there are those common uses for the two strings, one is free
-           to use them however they like.
-
-           Signal callback registration is powerful, in the way that  blobs
-           may be used to match multiple signals at once. All the
-           "*?[\" set of $fnmatch() operators can be used, both for
-           emission and source.
-
-           Edje has  internal signals it will emit, automatically, on
-           various actions taking place on group parts. For example, the mouse
-           cursor being moved, pressed, released, etc., over a given part's
-           area, all generate individual signals.
-
-           By using something like
-           edje_object_signal_callback_add(obj, "mouse,down,*", "button.*",
-           signal_cb, NULL);
-           being \@ref "button.*" the pattern for the names of parts 
implementing
-           buttons on an interface, you'd be registering for notifications on
-           events of mouse buttons being pressed down on either of those parts
-           (those events all have the @"mouse,down," common prefix on their
-           names, with a suffix giving the button number). The actual emission
-           and source strings of an event will be passed in as the  emission
-           and  source parameters of the callback function (e.g.
-           "mouse,down,2" and @"button.close"), for each of those events.
+      part_text_append {
+         [[Insert text for an object part.
 
-           Note: See \@ref edcref "the syntax" for EDC files
-           See also @.signal_emit() on how to emits Edje signals from
-           code to a an object
-           \@ref edje_object_signal_callback_del_full()]]
-           /* FIXME-doc
-            * This function adds a callback function to a signal emitted by  
obj, to
-            * be issued every time an EDC program like the following
-            * @code
-            * program
-            *   {
-            *      name: "emit_example";
-            *      action: SIGNAL_EMIT "a_signal" "a_source";
-            *   }
-            * @endcode
-            * is run, if emission and source are given those same values,
-            * here.
-            */
+           This function inserts the text for an object part at the end; It 
does not
+           move the cursor.
 
-         params {
-            @in emission: string; [[The signal's "emission" string]]
-            @in source: string; [[The signal's "source" string]]
-            @in func: Edje.Signal_Cb; [[The callback function to be executed 
when the signal is
-                                        emitted.]]
-            @in data: void_ptr; [[A pointer to data to pass in to func.]]
-         }
-      }
-      part_text_select_all @const {
-         [[Set the selection to be everything.
+           @since 1.1]]
 
-           This function selects all text of the object of the part.]]
          params {
             @in part: string; [[The part name]]
+            @in text: string; [[The text string]]
          }
       }
-      part_text_input_panel_return_key_disabled_set {
-         [[Set the return key on the input panel to be disabled.
+      part_text_insert {
+         [[Insert text for an object part.
 
-           @since 1.2.0]]
+           This function inserts the text for an object part just before the
+           cursor position.]]
 
          params {
             @in part: string; [[The part name]]
-            @in disabled: bool; [[The state]]
+            @in text: string; [[The text string]]
          }
       }
-      part_text_input_panel_return_key_disabled_get @const {
-         [[Get whether the return key on the input panel should be disabled or 
not.
+      part_text_user_insert @const {
+         [[This function inserts text as if the user has inserted it.
+
+           This means it actually registers as a change and emits signals, 
triggers
+           callbacks as appropriate.
 
            @since 1.2.0]]
-         return: bool; [[true if it should be disabled]]
          params {
             @in part: string; [[The part name]]
+            @in text: string; [[The text string]]
          }
       }
       part_text_autocapital_type_set {
@@ -1321,561 +1324,550 @@ class Edje.Object (Efl.Canvas.Group.Clipped, 
Efl.File, Efl.Container, Efl.Part)
 
          params {
             @in part: string; [[The part name]]
-            @in prediction: bool; [[If true, the prediction feature is 
allowed.]]
+            @in prediction: bool; [[If true, the prediction feature is 
allowed.]]
+         }
+      }
+      part_text_prediction_allow_get @const {
+         [[Get whether the prediction is allowed or not.
+
+           @since 1.2.0]]
+         return: bool; [[true if prediction feature is allowed.]]
+         params {
+            @in part: string; [[The part name]]
+         }
+      }
+      part_text_hide_visible_password {
+         [[Hide visible last character for password mode.
+
+           @since 1.18.0]]
+         params {
+            @in part: const(char)*; [[The part name]]
+         }
+         return: bool; [[$true if the visible character is hidden. $false if 
there is no visible character or the object is not set for password mode.]]
+      }
+      @property part_text_cursor_begin {
+         set {
+            [[Moves the cursor to the beginning of the text part
+              \@ref evas_textblock_cursor_paragraph_first]]
+         }
+         values {
+            part: string; [[The part name]]
+            cur: Edje.Cursor; [[the edje cursor to work on]]
+         }
+      }
+      @property part_text_cursor_end {
+         set {
+            [[Moves the cursor to the end of the text part.
+              \@ref evas_textblock_cursor_paragraph_last]]
+         }
+         values {
+            part: string; [[The part name]]
+            cur: Edje.Cursor; [[the edje cursor to work on]]
+         }
+      }
+      @property part_text_cursor_line_begin {
+         set {
+            [[Move the cursor to the beginning of the line.
+              \@ref evas_textblock_cursor_line_char_first]]
+         }
+         values {
+            part: string; [[The part name]]
+            cur: Edje.Cursor; [[the edje cursor to work on]]
+         }
+      }
+      @property part_text_cursor_line_end {
+         set {
+            [[Move the cursor to the end of the line.
+              \@ref evas_textblock_cursor_line_char_last]]
+         }
+         values {
+            part: string; [[The part name]]
+            cur: Edje.Cursor; [[the edje cursor to work on]]
+         }
+      }
+      part_text_cursor_prev {
+         [[Moves the cursor to the previous char
+           \@ref evas_textblock_cursor_char_prev]]
+
+         return: bool;
+         params {
+            @in part: string; [[The part name]]
+            @in cur: Edje.Cursor; [[the edje cursor to work on]]
+         }
+      }
+      part_text_cursor_next {
+         [[Advances the cursor to the next cursor position.
+           \@ref evas_textblock_cursor_char_next]]
+
+         return: bool;
+         params {
+            @in part: string; [[The part name]]
+            @in cur: Edje.Cursor; [[The edje cursor to advance]]
+         }
+      }
+      part_text_cursor_up {
+         [[Move the cursor to the char above the current cursor position.]]
+
+         return: bool;
+         params {
+            @in part: string; [[The part name]]
+            @in cur: Edje.Cursor; [[the edje cursor to work on]]
+         }
+      }
+      part_text_cursor_down {
+         [[Moves the cursor to the char below the current cursor position.]]
+
+         return: bool;
+         params {
+            @in part: string; [[The part name]]
+            @in cur: Edje.Cursor; [[the edje cursor to work on]]
+         }
+      }
+      part_text_cursor_geometry_get @const {
+         [[Returns the cursor geometry of the part relative to the edje
+           object.]]
+         params {
+            @in part: string; [[The part name]]
+            @out x: Evas.Coord; [[Cursor X position]]
+            @out y: Evas.Coord; [[Cursor Y position]]
+            @out w: Evas.Coord; [[Cursor width]]
+            @out h: Evas.Coord; [[Cursor height]]
+         }
+      }
+      @property part_text_cursor_coord {
+         set {
+            [[Position the given cursor to a X,Y position.
+
+              This is frequently used with the user cursor.]]
+
+            return: bool; [[True on success, false on error.]]
+         }
+         values {
+            part: string; [[The part containing the object.]]
+            cur: Edje.Cursor; [[The cursor to adjust.]]
+            x: Evas.Coord; [[X Coordinate.]]
+            y: Evas.Coord; [[Y Coordinate.]]
+         }
+      }
+      part_text_cursor_pos_set {
+         [[Sets the cursor position to the given value
+
+           @since 1.1.0]]
+
+         params {
+            @in part: string; [[The part name]]
+            @in cur: Edje.Cursor; [[The cursor to move]]
+            @in pos: int; [[the position of the cursor]]
+         }
+      }
+      part_text_cursor_pos_get @const {
+         [[Retrieves the current position of the cursor
+
+           @since 1.1.0]]
+         return: int; [[The cursor position]]
+         params {
+            @in part: string; [[The part name]]
+            @in cur: Edje.Cursor; [[The cursor to get the position]]
          }
       }
-      part_text_prediction_allow_get @const {
-         [[Get whether the prediction is allowed or not.
+      part_text_cursor_copy {
+         [[Copy the cursor to another cursor.]]
 
-           @since 1.2.0]]
-         return: bool; [[true if prediction feature is allowed.]]
          params {
             @in part: string; [[The part name]]
+            @in src: Edje.Cursor; [[the cursor to copy from]]
+            @in dst: Edje.Cursor; [[the cursor to copy to]]
          }
       }
-      data_get @const {
-         [[Retrive an EDC data field's value from a given Edje object's group.
-
-           This function fetches an EDC data field's value, which is declared
-           on the objects building EDC file, under its group. EDC data blocks
-           are most commonly used to pass arbitrary parameters from an
-           application's theme to its code.
-
-           EDC data fields always hold  strings as values, hence the return
-           type of this function. Check the complete \@ref edcref "syntax 
reference"
-           for EDC files.
+      part_text_cursor_content_get @const {
+         [[Returns the content (char) at the cursor position.
+           \@ref evas_textblock_cursor_content_get
 
-           Warning: Do not confuse this call with edje_file_data_get(), which
-           queries for a  global EDC data field on an EDC declaration file.
+           You must free the return (if not $null) after you are done with 
it.]]
 
-           \@ref edje_object_file_set()]]
-           /* FIXME-doc
-            * They look like the following:
-            * @code
-            * collections
-            *   {
-            *      group
-            *        {
-            *           name: "a_group";
-            *           data
-            *             {
-            *                item: "key1" "value1";
-            *                item: "key2" "value2";
-            *             }
-            *        }
-            *  }
-            * @endcode
-            */
-         return: string; [[The data's value string. Must not be freed.]]
+         return: own(char *); [[The character string pointed to (may be a 
multi-byte utf8 sequence) terminated by a nul byte.]]
          params {
-            @in key: string; [[The data field's key string]]
+            @in part: string; [[The part name]]
+            @in cur: Edje.Cursor; [[The cursor to use]]
          }
       }
-      text_markup_filter_callback_add {
-         [[Add a markup filter function for newly inserted text.
-
-           Whenever text is inserted (not the same as set) into the given part,
-           the list of markup filter functions will be called to decide if and 
how
-           the new text will be accepted.
-           The text parameter in the func filter is always markup. It can be
-           modified by the user and it's up to him to free the one passed if 
he's to
-           change the pointer. If doing so, the newly set text should be 
malloc'ed,
-           as once all the filters are called Edje will free it.
-           If the text is to be rejected, freeing it and setting the pointer 
to $null
-           will make Edje break out of the filter cycle and reject the inserted
-           text.
-           This function is different from 
edje_object_text_insert_filter_callback_add()
-           in that the text parameter in the fucn filter is always markup.
-
-           Warning: If you use this function with
-           edje_object_text_insert_filter_callback_add() togehter, all
-           Edje_Text_Filter_Cb functions and Edje_Markup_Filter_Cb functions
-           will be executed, and then filtered text will be inserted.
-
-           See also @.text_markup_filter_callback_del, 
@.text_markup_filter_callback_del_full
-           and @.text_insert_filter_callback_add
-
-           @since 1.2.0]]
+      part_text_cursor_is_format_get @const {
+         [[Returns whether the cursor points to a format.
+         \@ref evas_textblock_cursor_is_format]]
 
+         return: bool; [[true if it's true, false otherwise.]]
          params {
             @in part: string; [[The part name]]
-            @in func: Edje.Markup_Filter_Cb; [[The callback function that will 
act as markup filter]]
-            @in data: void_ptr; [[User provided data to pass to the filter 
function]]
+            @in cur: Edje.Cursor; [[The cursor to adjust.]]
          }
       }
-      message_signal_process {
-         [[Process an object's message queue.
-
-           This function goes through the object message queue processing the
-           pending messages for  this specific Edje object. Normally they'd
-           be processed only at idle time.]]
-
-      }
-      thaw {
-         [[Thaws the Edje object.
-
-           This function thaws the given Edje object.
-
-           Note:: If sucessives freezes were done, an equal number of
-           thaws will be required.
-
-           See also @.freeze()]]
-
-         return: int; [[The frozen state or 0 if the object is not frozen or 
on error.]]
-      }
-      part_text_imf_context_reset @const {
-         [[Reset the input method context if needed.
-
-           This can be necessary in the case where modifying the buffer would 
confuse on-going input method behavior
-
-           @since 1.2.0]]
+      part_text_cursor_is_visible_format_get @const {
+         [[Return true if the cursor points to a visible format
+           For example \\t, \\n, item and etc.
+           @ evas_textblock_cursor_format_is_visible_get]]
+         return: bool;
          params {
             @in part: string; [[The part name]]
+            @in cur: Edje.Cursor; [[The cursor to adjust.]]
          }
       }
-      part_text_input_panel_return_key_type_set {
-         [[Set the "return" key type. This type is used to set string or icon 
on the "return" key of the input panel.
-
-           An input panel displays the string or icon associated with this type
+      @property item_provider {
+         set {
+            [[Set the function that provides item objects for named items in 
an edje entry text
 
-           @since 1.2.0]]
+              Item objects may be deleted any time by Edje, and will be 
deleted when the
+              Edje object is deleted (or file is set to a new file).]]
+         }
+         values {
+            func: Edje.Item_Provider_Cb; [[The function to call (or $null to 
disable) to get item objects]]
+            data: void_ptr; [[The data pointer to pass to the func callback]]
+         }
+      }
+      part_text_select_allow_set @const {
+         [[Enables selection if the entry is an EXPLICIT selection mode
+           type.
 
+           The default is to  not allow selection. This function only affects 
user
+           selection, functions such as edje_object_part_text_select_all() and
+           edje_object_part_text_select_none() are not affected.]]
          params {
             @in part: string; [[The part name]]
-            @in return_key_type: Edje.Input_Panel.Return_Key_Type; [[The type 
of "return" key on the input panel]]
+            @in allow: bool; [[true to enable, false otherwise]]
          }
       }
-      part_text_input_panel_return_key_type_get @const {
-         [[Get the "return" key type.
-
-           See also @.part_text_input_panel_return_key_type_set() for more 
details
-
-           @since 1.2.0]]
-         return: Edje.Input_Panel.Return_Key_Type; [[The type of "return" key 
on the input panel]]
+      part_text_select_begin @const {
+         [[Starts selecting at current cursor position]]
          params {
             @in part: string; [[The part name]]
          }
       }
-      part_external_param_set {
-         [[Set the parameter for the external part.
-
-           Parts of type external may carry extra properties that have
-           meanings defined by the external plugin. For instance, it may be a
-           string that defines a button label and setting this property will
-           change that label on the fly.
-
-           Note: external parts have parameters set when they change
-           states. Those parameters will never be changed by this
-           function. The interpretation of how state_set parameters and
-           param_set will interact is up to the external plugin.
-
-           Note: this function will not check if parameter value is valid
-           using #Edje_External_Param_Info minimum, maximum, valid
-           choices and others. However these should be checked by the
-           underlying implementation provided by the external
-           plugin. This is done for performance reasons.]]
-
-         return: bool; [[$true if everything went fine, $false on errors.]]
+      part_text_select_abort @const {
+         [[Aborts any selection action on a part.]]
          params {
             @in part: string; [[The part name]]
-            @in param: const(Edje.External.Param)*; [[the parameter details, 
including its name, type and
-                                                      actual value. This 
pointer should be valid, and the
-                                                      parameter must exist in
-                                                      
#Edje_External_Type.parameters_info, with the exact type,
-                                                      otherwise the operation 
will fail and $false will be
-                                                      returned.]]
          }
       }
-      part_external_param_get @const {
-         [[Get the parameter for the external part.
-
-           Parts of type external may carry extra properties that have
-           meanings defined by the external plugin. For instance, it may be a
-           string that defines a button label. This property can be modified by
-           state parameters, by explicit calls to
-           edje_object_part_external_param_set() or getting the actual object
-           with edje_object_part_external_object_get() and calling native
-           functions.
-
-           This function asks the external plugin what is the current value,
-           independent on how it was set.]]
-
-         return: bool; [[$true if everything went fine and param members
-                         are filled with information, $false on errors and
-                         param member values are not set or valid.]]
+      part_text_select_extend @const {
+         [[Extends the current selection to the current cursor position]]
          params {
             @in part: string; [[The part name]]
-            @out param: Edje.External.Param; [[the parameter details. It is 
used as both input and
-                                               output variable. This pointer 
should be valid, and the
-                                               parameter must exist in
-                                               
#Edje_External_Type.parameters_info, with the exact type,
-                                               otherwise the operation will 
fail and $false will be
-                                               returned.]]
          }
       }
-      size_min_calc {
-         [[Calculate the minimum required size for a given Edje object.
-
-           This call works exactly as edje_object_size_min_restricted_calc(),
-           with the last two arguments set to 0. Please refer to its
-           documentation, then.]]
+      part_text_select_all @const {
+         [[Set the selection to be everything.
 
+           This function selects all text of the object of the part.]]
          params {
-            @out minw: Evas.Coord; [[Pointer to a variable where to store the 
minimum
-                                     required width]]
-            @out minh: Evas.Coord; [[Pointer to a variable where to store the 
minimum
-                                     required height]]
+            @in part: string; [[The part name]]
          }
       }
-      size_min_restricted_calc {
-         [[Calculate the minimum required size for a given Edje object.
-
-           This call will trigger an internal recalculation of all parts of
-           the obj object, in order to return its minimum required
-           dimensions for width and height. The user might choose to  impose
-           those minimum sizes, making the resulting calculation to get to 
values
-           equal or bigger than restrictedw and restrictedh, for width and
-           height, respectively.
-
-           Note: At the end of this call, obj  won't be automatically
-           resized to new dimensions, but just return the calculated
-           sizes. The caller is the one up to change its geometry or not.
-
-           Warning: Be advised that invisible parts in obj  will be taken
-           into account in this calculation.]]
+      part_text_select_none @const {
+         [[Set the selection to be none.
 
+           This function sets the selection text to be none.]]
          params {
-            @out minw: Evas.Coord; [[Pointer to a variable where to store the 
minimum
-                                     required width]]
-            @out minh: Evas.Coord; [[Pointer to a variable where to store the 
minimum
-                                     required height]]
-            @in restrictedw: Evas.Coord; [[Do not allow object's calculated 
(minimum) width
-                                           to be less than this value]]
-            @in restrictedh: Evas.Coord; [[Do not allow object's calculated 
(minimum)
-                                           height to be less than this value]]
+            @in part: string; [[The part name]]
          }
       }
-      part_drag_page {
-         [[Pages x,y steps.
-
-           Pages x,y where the increment is defined by
-           edje_object_part_drag_page_set.
+      part_text_selection_get @const {
+         [[Return the selection text of the object part.
 
-           Values for dx and dy are real numbers that range from 0 to 1.
+           This function returns selection text of the object part.
 
-           Warning: Paging is bugged!
+           See also @.part_text_select_all() and @.part_text_select_none()]]
+         return: string; [[The text string]]
+         params {
+            @in part: string; [[The part name]]
+         }
+      }
+      part_text_imf_context_get @const {
+         [[Get the input method context in entry.
 
-           See also @.part_drag_step()]]
+           If ecore_imf was not available when edje was compiled, this 
function returns $null
+           otherwise, the returned pointer is an Ecore_IMF
 
-         return: bool;
+           @since 1.2.0]]
+         return: void_ptr; [[The input method context (Ecore_IMF_Context *) in 
entry]]
          params {
             @in part: string; [[The part name]]
-            @in dx: double; [[The x step]]
-            @in dy: double; [[The y step]]
          }
       }
-      part_text_set {
-         [[Sets the text for an object part]]
+      part_text_imf_context_reset @const {
+         [[Reset the input method context if needed.
 
-         return: bool; [[$true on success, $false otherwise]]
+           This can be necessary in the case where modifying the buffer would 
confuse on-going input method behavior
+
+           @since 1.2.0]]
          params {
             @in part: string; [[The part name]]
-            @in text: string; [[The text string]]
          }
       }
-      part_text_get @const {
+      part_text_style_user_peek @const {
          [[Return the text of the object part.
 
-           This function returns the text associated to the object part.
+           This function returns the style associated with the textblock part.
 
-           See also @.part_text_set().]]
+           @since 1.2.0]]
          return: string; [[The text string]]
          params {
             @in part: string; [[The part name]]
          }
       }
-      part_text_input_panel_show_on_demand_set {
-         [[Set the attribute to show the input panel in case of only an user's 
explicit Mouse Up event.
-           It doesn't request to show the input panel even though it has focus.
+      part_text_style_user_push {
+         [[Set the style of the
 
-           @since 1.9.0]]
+           This function sets the style associated with the textblock part.
+
+           @since 1.2.0]]
 
          params {
             @in part: string; [[The part name]]
-            @in ondemand: bool; [[If true, the input panel will be shown in 
case of only Mouse up event. (Focus event will be ignored.)]]
+            @in style: string; [[The style to set (textblock conventions).]]
          }
       }
-      part_text_input_panel_show_on_demand_get @const {
-         [[Get the attribute to show the input panel in case of only an user's 
explicit Mouse Up event.
+      part_text_style_user_pop {
+         [[Delete the top style form the user style stack.
+
+           @since 1.2.0]]
 
-           @since 1.9.0]]
-         return: bool; [[$true if the input panel will be shown in case of 
only Mouse up event.]]
          params {
             @in part: string; [[The part name]]
          }
       }
-      part_text_input_hint_set {
-         [[Sets the input hint which allows input methods to fine-tune their 
behavior.
+      part_text_input_panel_show @const {
+         [[Show the input panel (virtual keyboard) based on the input panel 
property such as layout, autocapital types, and so on.
 
-           @since 1.12.0]]
+           Note that input panel is shown or hidden automatically according to 
the focus state.
+           This API can be used in the case of manually controlling by using 
edje_object_part_text_input_panel_enabled_set.
 
+           @since 1.2.0]]
          params {
             @in part: string; [[The part name]]
-            @in input_hints: Edje.Input_Hints; [[input hints]]
          }
       }
-      part_text_input_hint_get @const {
-         [[Gets the value of input hint
+      part_text_input_panel_hide @const {
+         [[Hide the input panel (virtual keyboard).
+           See also @.part_text_input_panel_show
 
-           @since 1.12.0]]
-         return: Edje.Input_Hints; [[The value of input hint]]
+           Note that input panel is shown or hidden automatically according to 
the focus state.
+           This API can be used in the case of manually controlling by using 
edje_object_part_text_input_panel_enabled_set.
+
+           @since 1.2.0]]
          params {
             @in part: string; [[The part name]]
          }
       }
-      part_text_selection_get @const {
-         [[Return the selection text of the object part.
+      part_text_input_panel_imdata_set {
+         [[Set the input panel-specific data to deliver to the input panel.
 
-           This function returns selection text of the object part.
+           This API is used by applications to deliver specific data to the 
input panel.
+           The data format MUST be negotiated by both application and the 
input panel.
+           The size and format of data are defined by the input panel.
+
+           @since 1.2.0]]
 
-           See also @.part_text_select_all() and @.part_text_select_none()]]
-         return: string; [[The text string]]
          params {
             @in part: string; [[The part name]]
+            @in data: const(void_ptr); [[The specific data to be set to the 
input panel.]]
+            @in len: int; [[the length of data, in bytes, to send to the input 
panel]]
          }
       }
-      part_text_cursor_is_format_get @const {
-         [[Returns whether the cursor points to a format.
-         \@ref evas_textblock_cursor_is_format]]
+      part_text_input_panel_imdata_get @const {
+         [[Get the specific data of the current active input panel.
 
-         return: bool; [[true if it's true, false otherwise.]]
+           @since 1.2.0]]
          params {
             @in part: string; [[The part name]]
-            @in cur: Edje.Cursor; [[The cursor to adjust.]]
+            @in data: void_ptr; [[The specific data to be got from the input 
panel]]
+            @in len: int *; [[The length of data]]
          }
       }
-      text_class_del {
-         [[Delete the object text class.
+      part_text_input_panel_layout_set {
+         [[Set the layout of the input panel.
 
-           This function deletes any values at the object level for the
-           specified object and text class.
+           The layout of the input panel or virtual keyboard can make it 
easier or
+           harder to enter content. This allows you to hint what kind of input 
you
+           are expecting to enter and thus have the input panel automatically
+           come up with the right mode.
 
-           Deleting the text class will revert it to the values
-           defined by edje_text_class_set() or the text class
-           defined in the theme file.
+           @since 1.1]]
 
-           @since 1.17]]
          params {
-            @in text_class: string; [[The color class to be deleted.]]
+            @in part: string; [[The part name]]
+            @in layout: Edje.Input_Panel.Layout; [[layout type]]
          }
       }
-      @property global_color_class @class {
-         set {
-            [[Set Edje color class.
-
-              This function sets the color values for a process level color
-              class.  This will cause all edje parts in the current process 
that
-              have the specified color class to have their colors multiplied by
-              these values.  (Object level color classes set by
-              edje_object_color_class_set() will override the values set by 
this
-              function).
+      part_text_input_panel_layout_get @const {
+         [[Get the layout of the input panel.
 
-              Setting color emits a signal "color_class,set" with source being
-              the given color class in all objects.
+           See also @.part_text_input_panel_layout_set
 
-              Note: unlike Evas, Edje colors are not pre-multiplied. That is,
-              half-transparent white is 255 255 255 128.]]
-            legacy: null;
-            return: bool; [[true on sucess, false on failure.]]
+           @since 1.1]]
+         return: Edje.Input_Panel.Layout; [[Layout type of the input panel]]
+         params {
+            @in part: string; [[The part name]]
          }
-         get {
-            [[Get Edje color class.
+      }
+      part_text_input_panel_language_set {
+         [[Set the language mode of the input panel.
 
-              This function gets the color values for a process level color
-              class. This value is the globally set and not per-object, that 
is,
-              the value that would be used by objects if they did not override 
with
-              @.color_class.set().
+           This API can be used if you want to show the Alphabet keyboard.
 
-              See also, @.global_color_class.set()
+           @since 1.2.0]]
 
-              Note: unlike Evas, Edje colors are not pre-multiplied. That is,
-              half-transparent white is 255 255 255 128.]]
-            legacy: null;
-            return: bool; [[true if found or false if not found and all values
-                            are zeored.]]
-         }
-         keys {
-            color_class: string; [[The name of color class]]
-            mode: Edje.Color_Class.Mode;
-         }
-         values {
-            r: int; [[Object Red value]]
-            g: int; [[Object Green value]]
-            b: int; [[Object Blue value]]
-            a: int; [[Object Alpha value]]
+         params {
+            @in part: string; [[The part name]]
+            @in lang: Edje.Input_Panel.Lang; [[the language to be set to the 
input panel.]]
          }
       }
-      @property color_class {
-         set {
-            [[Sets the object color class.
-
-              This function sets the color values for an object level color
-              class. This will cause all edje parts in the specified object 
that
-              have the specified color class to have their colors multiplied by
-              these values.
+      part_text_input_panel_layout_variation_set {
+         [[Set the layout variation of the input panel.
 
-              The first color is the object, the second is the text outline, 
and
-              the third is the text shadow. (Note that the second two only 
apply
-              to text parts).
+           The layout variation of the input panel or virtual keyboard can 
make it easier or
+           harder to enter content. This allows you to hint what kind of input 
you
+           are expecting to enter and thus have the input panel automatically
+           come up with the right mode.
 
-              Setting color emits a signal "color_class,set" with source being
-              the given color.
+           @since 1.8]]
 
-              Note: unlike Evas, Edje colors are not pre-multiplied. That is,
-              half-transparent white is 255 255 255 128.]]
-            legacy: null;
-            return: bool;
+         params {
+            @in part: string; [[The part name]]
+            @in variation: int; [[layout variation type]]
          }
-         get {
-            [[Gets the object color class.
+      }
+      part_text_input_panel_layout_variation_get @const {
+         [[Get the layout variation of the input panel.
 
-              This function gets the color values for an object level color
-              class. If no explicit object color is set, then global values 
will
-              be used.
+           See also @.part_text_input_panel_layout_variation_set
 
-              The first color is the object, the second is the text outline, 
and
-              the third is the text shadow. (Note that the second two only 
apply
-              to text parts).
+           @since 1.8]]
+         return: int; [[Layout variation type of the input panel]]
+         params {
+            @in part: string; [[The part name]]
+         }
+      }
+      part_text_input_panel_language_get @const {
+         [[Get the language mode of the input panel.
 
-              Note: unlike Evas, Edje colors are not pre-multiplied. That is,
-              half-transparent white is 255 255 255 128.]]
-            legacy: null;
-            return: bool; [[true if found or false if not found and all
-                            values are zeroed.]]
+           See also @.part_text_input_panel_language_set for more details.
+
+           @since 1.2.0]]
+         return: Edje.Input_Panel.Lang; [[input panel language type]]
+         params {
+            @in part: string; [[The part name]]
          }
-         keys {
-            color_class: string; [[The name of color class]]
-            mode: Edje.Color_Class.Mode;
+      }
+      part_text_input_panel_enabled_set {
+         [[Sets the attribute to show the input panel automatically.
+
+           @since 1.1.0]]
+
+         params {
+            @in part: string; [[The part name]]
+            @in enabled: bool; [[If true, the input panel is appeared when 
entry is clicked or has a focus]]
          }
-         values {
-            r: int; [[Object Red value]]
-            g: int; [[Object Green value]]
-            b: int; [[Object Blue value]]
-            a: int; [[Object Alpha value]]
+      }
+      part_text_input_panel_enabled_get @const {
+         [[Retrieve the attribute to show the input panel automatically.
+           See also @.part_text_input_panel_enabled_set
+
+           @since 1.1.0]]
+         return: bool; [[true if it supports or false otherwise]]
+         params {
+            @in part: string; [[The part name]]
          }
       }
-      color_class_description_get @const {
-         [[Gets the description of an object color class.
+      part_text_input_panel_return_key_disabled_set {
+         [[Set the return key on the input panel to be disabled.
+
+           @since 1.2.0]]
 
-           This function gets the description of a color class in use by an 
object.]]
-         return: string; [[The description of the target color class or $null 
if not found]]
          params {
-            @in color_class: string;
+            @in part: string; [[The part name]]
+            @in disabled: bool; [[The state]]
          }
       }
-      color_class_clear @const {
-         [[Clear object color classes.
+      part_text_input_panel_return_key_disabled_get @const {
+         [[Get whether the return key on the input panel should be disabled or 
not.
 
-           @since 1.17.0]]
-         return: bool; [[$true, on success or $false, on error]]
+           @since 1.2.0]]
+         return: bool; [[true if it should be disabled]]
+         params {
+            @in part: string; [[The part name]]
+         }
       }
-      color_class_del {
-         [[Delete the object color class.
+      part_text_input_panel_return_key_type_set {
+         [[Set the "return" key type. This type is used to set string or icon 
on the "return" key of the input panel.
 
-           This function deletes any values at the object level for the
-           specified object and color class.
+           An input panel displays the string or icon associated with this type
 
-           Deleting the color class will revert it to the values
-           defined by edje_color_class_set() or the color class
-           defined in the theme file.
+           @since 1.2.0]]
 
-           Deleting the color class will emit the signal "color_class,del"
-           for the given Edje object.]]
          params {
-            @in color_class: string; [[The color class to be deleted.]]
+            @in part: string; [[The part name]]
+            @in return_key_type: Edje.Input_Panel.Return_Key_Type; [[The type 
of "return" key on the input panel]]
          }
       }
-      @property size_class {
-         set {
-            [[Sets the object size class.
+      part_text_input_panel_return_key_type_get @const {
+         [[Get the "return" key type.
 
-              This function sets the min and max values for an object level 
size
-              class. This will make all edje parts in the specified object that
-              have the specified size class update their min and max size with 
given values.
+           See also @.part_text_input_panel_return_key_type_set() for more 
details
 
-              @since 1.17]]
-            return: bool; [[$true, on success or $false, on error]]
+           @since 1.2.0]]
+         return: Edje.Input_Panel.Return_Key_Type; [[The type of "return" key 
on the input panel]]
+         params {
+            @in part: string; [[The part name]]
          }
-         get {
-            [[Gets the object size class.
+      }
+      part_text_input_panel_show_on_demand_set {
+         [[Set the attribute to show the input panel in case of only an user's 
explicit Mouse Up event.
+           It doesn't request to show the input panel even though it has focus.
 
-              This function gets the min and max values for an object level 
size
-              class. These values will only be valid until the size class is 
changed
-              or the edje object is deleted.
+           @since 1.9.0]]
 
-              @since 1.17]]
-            return: bool; [[$true, on success or $false, on error]]
-         }
-         keys {
-            size_class: string; [[The size class name]]
-         }
-         values {
-            minw: int; [[The min width]]
-            minh: int; [[The min height]]
-            maxw: int; [[The max width]]
-            maxh: int; [[The max height]]
+         params {
+            @in part: string; [[The part name]]
+            @in ondemand: bool; [[If true, the input panel will be shown in 
case of only Mouse up event. (Focus event will be ignored.)]]
          }
       }
-      size_class_del {
-         [[Delete the object size class.
-
-          This function deletes any values at the object level for the
-           specified object and size class.
-
-           Deleting the size class will revert it to the values
-           defined by edje_size_class_set() or the color class
-           defined in the theme file.
+      part_text_input_panel_show_on_demand_get @const {
+         [[Get the attribute to show the input panel in case of only an user's 
explicit Mouse Up event.
 
-           @since 1.17]]
+           @since 1.9.0]]
+         return: bool; [[$true if the input panel will be shown in case of 
only Mouse up event.]]
          params {
-            @in size_class: string;
+            @in part: string; [[The part name]]
          }
       }
-      part_drag_step {
-         [[Steps the dragable x,y steps.
-
-           Steps x,y where the step increment is the amount set by
-           edje_object_part_drag_step_set.
-
-           Values for dx and dy are real numbers that range from 0 to 1.
+      part_text_input_hint_set {
+         [[Sets the input hint which allows input methods to fine-tune their 
behavior.
 
-           See also @.part_drag_page()]]
+           @since 1.12.0]]
 
-         return: bool;
          params {
             @in part: string; [[The part name]]
-            @in dx: double; [[The x step]]
-            @in dy: double; [[The y step]]
+            @in input_hints: Edje.Input_Hints; [[input hints]]
          }
       }
-      part_text_cursor_up {
-         [[Move the cursor to the char above the current cursor position.]]
+      part_text_input_hint_get @const {
+         [[Gets the value of input hint
 
-         return: bool;
+           @since 1.12.0]]
+         return: Edje.Input_Hints; [[The value of input hint]]
          params {
             @in part: string; [[The part name]]
-            @in cur: Edje.Cursor; [[the edje cursor to work on]]
          }
       }
-      part_text_cursor_geometry_get @const {
-         [[Returns the cursor geometry of the part relative to the edje
-           object.]]
+      part_text_anchor_geometry_get @const {
+         [[Return a list of Evas_Textblock_Rectangle anchor rectangles.
+
+           This function return a list of Evas_Textblock_Rectangle anchor
+           rectangles.]]
+         return: const(list<const(Evas.Textblock_Rectangle)*>); [[The list of 
anchor rects (const Evas_Textblock_Rectangle
+                                                                  *), do not 
modify! Geometry is relative to entry part.]]
          params {
             @in part: string; [[The part name]]
-            @out x: Evas.Coord; [[Cursor X position]]
-            @out y: Evas.Coord; [[Cursor Y position]]
-            @out w: Evas.Coord; [[Cursor width]]
-            @out h: Evas.Coord; [[Cursor height]]
+            @in anchor: string; [[The anchor name]]
          }
       }
       part_text_anchor_list_get @const {
@@ -1923,31 +1915,66 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, 
Efl.Container, Efl.Part)
             @in data: void_ptr; [[User provided data to pass to the filter 
function]]
          }
       }
-      part_text_input_panel_show @const {
-         [[Show the input panel (virtual keyboard) based on the input panel 
property such as layout, autocapital types, and so on.
+      text_insert_filter_callback_del {
+         [[Delete a function from the filter list.
 
-           Note that input panel is shown or hidden automatically according to 
the focus state.
-           This API can be used in the case of manually controlling by using 
edje_object_part_text_input_panel_enabled_set.
+           Delete the given func filter from the list in part. Returns
+           the user data pointer given when added.
 
-           @since 1.2.0]]
+           See also @.text_insert_filter_callback_add and 
@.text_insert_filter_callback_del_full]]
+
+         return: void_ptr; [[The user data pointer if successful, or $null 
otherwise]]
          params {
             @in part: string; [[The part name]]
+            @in func: Edje.Text.Filter_Cb; [[The function callback to remove]]
          }
       }
-      part_exists @const {
-         [[Check if an Edje part exists in a given Edje object's group
-           definition.
+      text_insert_filter_callback_del_full {
+         [[Delete a function and matching user data from the filter list.
 
-           This function returns if a given part exists in the Edje group
-           bound to object obj (with edje_object_file_set()).
+           Delete the given func filter and data user data from the list
+           in part.
+           Returns the user data pointer given when added.
 
-           This call is useful, for example, when one could expect or not a
-           given GUI element, depending on the  theme applied to obj.]]
-         return: bool; [[$true, if the Edje part exists in obj's group or
-                         $false, otherwise (and on errors)]]
+           See also @.text_insert_filter_callback_add and 
@.text_insert_filter_callback_del]]
+
+         return: void_ptr; [[The same data pointer if successful, or $null 
otherwise]]
          params {
-            @in part: string; [[The part's name to check for existence in obj's
-                                      group]]
+            @in part: string; [[The part name]]
+            @in func: Edje.Text.Filter_Cb; [[The function callback to remove]]
+            @in data: void_ptr; [[The data passed to the callback function]]
+         }
+      }
+      text_markup_filter_callback_add {
+         [[Add a markup filter function for newly inserted text.
+
+           Whenever text is inserted (not the same as set) into the given part,
+           the list of markup filter functions will be called to decide if and 
how
+           the new text will be accepted.
+           The text parameter in the func filter is always markup. It can be
+           modified by the user and it's up to him to free the one passed if 
he's to
+           change the pointer. If doing so, the newly set text should be 
malloc'ed,
+           as once all the filters are called Edje will free it.
+           If the text is to be rejected, freeing it and setting the pointer 
to $null
+           will make Edje break out of the filter cycle and reject the inserted
+           text.
+           This function is different from 
edje_object_text_insert_filter_callback_add()
+           in that the text parameter in the fucn filter is always markup.
+
+           Warning: If you use this function with
+           edje_object_text_insert_filter_callback_add() togehter, all
+           Edje_Text_Filter_Cb functions and Edje_Markup_Filter_Cb functions
+           will be executed, and then filtered text will be inserted.
+
+           See also @.text_markup_filter_callback_del, 
@.text_markup_filter_callback_del_full
+           and @.text_insert_filter_callback_add
+
+           @since 1.2.0]]
+
+         params {
+            @in part: string; [[The part name]]
+            @in func: Edje.Markup_Filter_Cb; [[The callback function that will 
act as markup filter]]
+            @in data: void_ptr; [[User provided data to pass to the filter 
function]]
          }
       }
       text_markup_filter_callback_del {
@@ -1966,36 +1993,37 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, 
Efl.Container, Efl.Part)
             @in func: Edje.Markup_Filter_Cb; [[The function callback to 
remove]]
          }
       }
-      part_text_cursor_is_visible_format_get @const {
-         [[Return true if the cursor points to a visible format
-           For example \\t, \\n, item and etc.
-           @ evas_textblock_cursor_format_is_visible_get]]
-         return: bool;
-         params {
-            @in part: string; [[The part name]]
-            @in cur: Edje.Cursor; [[The cursor to adjust.]]
-         }
-      }
-      part_text_user_insert @const {
-         [[This function inserts text as if the user has inserted it.
+      text_markup_filter_callback_del_full {
+         [[Delete a function and matching user data from the markup filter 
list.
 
-           This means it actually registers as a change and emits signals, 
triggers
-           callbacks as appropriate.
+           Delete the given func filter and data user data from the list
+           in part.
+           Returns the user data pointer given when added.
+
+           See also @.text_markup_filter_callback_add and 
@.text_markup_filter_callback_del
 
            @since 1.2.0]]
+
+         return: void_ptr; [[The same data pointer if successful, or $null 
otherwise]]
          params {
             @in part: string; [[The part name]]
-            @in text: string; [[The text string]]
+            @in func: Edje.Markup_Filter_Cb; [[The function callback to 
remove]]
+            @in data: void_ptr; [[The data passed to the callback function]]
          }
       }
-      part_text_cursor_prev {
-         [[Moves the cursor to the previous char
-           \@ref evas_textblock_cursor_char_prev]]
+      part_text_item_geometry_get @const {
+         [[Return item geometry.
 
-         return: bool;
+           This function return a list of Evas_Textblock_Rectangle item
+           rectangles.]]
+         return: bool; [[1 if item exists, 0 if not]]
          params {
             @in part: string; [[The part name]]
-            @in cur: Edje.Cursor; [[the edje cursor to work on]]
+            @in item: string; [[The item name]]
+            @out cx: Evas.Coord; [[Item x return (relative to entry part)]]
+            @out cy: Evas.Coord; [[Item y return (relative to entry part)]]
+            @out cw: Evas.Coord; [[Item width return]]
+            @out ch: Evas.Coord; [[Item height return]]
          }
       }
       part_text_item_list_get @const {
@@ -2007,34 +2035,6 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, 
Efl.Container, Efl.Part)
             @in part: string; [[The part name]]
          }
       }
-      @property transition_duration_factor {
-         set {
-              [[Set transition duration factor.
-
-                This define the transition duration factor on this
-                specific object. By default all animation are run at a speed
-                factor of 1.0.]]
-         }
-         get {
-              [[Get transition duration factor.
-
-                This define the transition duration factor on this
-                specific object. By default all animation are run at a speed
-                factor of 1.0.]]
-         }
-         values {
-            scale: double; [[The transition duration factor]]
-         }
-      }
-      part_text_hide_visible_password {
-         [[Hide visible last character for password mode.
-
-           @since 1.18.0]]
-         params {
-            @in part: const(char)*; [[The part name]]
-        }
-         return: bool; [[$true if the visible character is hidden. $false if 
there is no visible character or the object is not set for password mode.]]
-      }
    }
    implements {
       Efl.Object.constructor;

-- 


Reply via email to