--- /dev/null
+import edje_types;
+
+// FIXME: This EO doc needs a direct link to the "edcref" doc
+
+class Edje.Object (Efl.Canvas.Group, Efl.File, Efl.Container, Efl.Part,
+ Efl.Observer, Efl.Ui.Base, Efl.Canvas.Layout_Calc,
+ Efl.Canvas.Layout_Signal, Efl.Canvas.Layout_Group,
+ Efl.Player)
+{
+ [[Edje object class]]
+ legacy_prefix: edje_object;
+ eo_prefix: edje_obj;
+ event_prefix: edje_object;
+ data: Edje;
+ methods {
+ @property animation {
+ [[Whether this object is animating or not.
+
+ This property indicates whether animations are stopped or not.
+ Animations here refer to transitions between states.
+
+ If animations are disabled, transitions between states (as
+ defined in EDC) are then instantaneous. This is conceptually similar
+ to setting the @Efl.Player.play_speed to an infinitely high
+ value.
+ ]]
+ get {
+ [[Get the current state of animation, $true by default.]]
+ }
+ set {
+ [[Start or stop animating this object.]]
+ }
+ values {
+ on: bool; [[The animation state, $true by default.]]
+ }
+ }
+ @property perspective {
+ set {
+ [[Sets the given perspective object on this Edje object.
+
+ Make the given perspective object be the default perspective for this Edje
+ object.
+
+ There can be only one perspective object per Edje object, and if a
+ previous one was set, it will be removed and the new perspective object
+ will be used.
+
+ An Edje perspective will only affect a part if it doesn't point to another
+ part to be used as perspective.
+
+ \@ref edje_object_perspective_new()
+ See also @.perspective.get()
+ \@ref edje_perspective_set()]]
+ values {
+ ps: ptr(Edje.Perspective); [[The perspective object that will be used.]]
+ }
+ }
+ get {
+ [[Gets the current perspective used on this Edje object.
+
+ See also @.perspective.set()]]
+ values {
+ ps: ptr(const(Edje.Perspective)); [[The perspective object that will be used.]]
+ }
+ }
+ }
+
+ // TODO: Legacy only. EO may rely on futures.
+ preload {
+ [[Preloads the images on the Edje Object in the background.
+
+ 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 cancel: bool; [[$false will add it the preloading work queue,
+ $true will remove it (if it was issued before).]]
+ }
+ }
+ @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 $file_set() function. If that
+ function does not return $true, one should check for the reason
+ of failure with this one.
+ ]]
+ legacy: null;
+ }
+ values {
+ error: Efl.Image.Load.Error(Efl.Image.Load.Error.generic);
+ [[The load error code.]]
+ }
+ }
+
+ /* CLASS APIS BEGIN -------------------------------------------------- */
+ @property global_color_class @class {
+ set {
+ [[Sets 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).
+
+ Setting color emits a signal "color_class,set" with source being
+ the given color class in all objects.
+
+ 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 success, $false otherwise]]
+ }
+ get {
+ [[Gets Edje color class.
+
+ 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().
+
+ See also, @.global_color_class.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 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; [[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]]
+ }
+ }
+ @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.
+
+ 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).
+
+ Setting color emits a signal "color_class,set" with source being
+ the given color.
+
+ 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 success, $false otherwise]]
+ }
+ get {
+ [[Gets the object color class.
+
+ 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.
+
+ 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).
+
+ 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.]]
+ }
+ keys {
+ color_class: string; [[The name of color class]]
+ mode: Edje.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]]
+ }
+ }
+ @property color_class_description {
+ get {
+ [[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]]
+ }
+ keys {
+ color_class: string; [[Color class description]]
+ }
+ }
+ color_class_clear @const {
+ [[Clears object color classes.
+
+ @since 1.17.0]]
+ return: bool; [[$true on success, or $false on error]]
+ }
+ color_class_del {
+ [[Deletes the object color class.
+
+ This function deletes any values at the object level for the
+ specified object and color class.
+
+ 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.
+
+ 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.]]
+ }
+ }
+ @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: int; [[Font Size]]
+ }
+ }
+ text_class_del {
+ [[Deletes the object text class.
+
+ 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 text_class: string; [[The color class to be deleted.]]
+ }
+ }
+ @property size_class {
+ set {
+ [[Sets the object size class.
+
+ 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.
+
+ @since 1.17]]
+ return: bool; [[$true on success, or $false on error]]
+ }
+ get {
+ [[Gets the object size class.
+
+ 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.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]]
+ }
+ }
+ size_class_del {
+ [[Deletes 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.
+
+ @since 1.17]]
+ params {
+ @in size_class: string; [[Size class name]]
+ }
+ }
+ /* CLASS APIS END ---------------------------------------------------- */
+
+ access_part_iterate {
+ [[Iterates over all accessibility-enabled part names.]]
+ legacy: null;
+ return: iterator<string> @owned; [[Part name iterator]]
+ }
+
+ /* TEXT PART APIS BEGIN ---------------------------------------------- */
+ @property text_change_cb {
+ set {
+ [[Sets 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 item_provider {
+ set {
+ [[Sets 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]]
+ }
+ }
+ /* TEXT PART APIS END ------------------------------------------------ */
+
+ @property seat {
+ get {
+ [[Returns the seat device given its Edje's name.
+
+ Edje references seats by a name that differs from Evas.
+ Edje naming follows a incrementional convention: first
+ registered name is "seat1", second is "seat2", differently
+ from Evas.
+
+ @since 1.19]]
+
+ return: Efl.Input.Device; [[The seat device or $null if not found.]]
+ }
+ keys {
+ name: stringshare; [[The name's character string.]]
+ }
+ }
+ @property seat_name {
+ get {
+ [[Gets the name given to a set by Edje.
+
+ Edje references seats by a name that differs from Evas.
+ Edje naming follows a incrementional convention: first
+ registered name is "seat1", second is "seat2", differently
+ from Evas.
+
+ @since 1.19]]
+
+ return: stringshare; [[The name's character string or $null if not found.]]
+ }
+ keys {
+ device: Efl.Input.Device; [[The seat device]]
+ }
+ }
+ /***********************************************************************************
+ * TIZEN_ONLY_FEATURE: API for handling text properties of Edje *
+ ***********************************************************************************/
+ @property part_text_min_policy {
+ set {
+ [[Sets the object text min calculation policy.
+
+ Do not use this API without understanding whats going on.
+ It is made for internal usage.
+
+ \@if MOBILE \@since_tizen 3.0
+ \@elseif WEARABLE \@since_tizen 3.0
+ \@endif
+ \@internal
+ ]]
+ return: bool; [[$true on success, or $false on error]]
+ }
+ get {
+ [[Gets the object text min calculation policy.
+
+ Do not use this API without understanding whats going on.
+ It is made for internal usage.
+
+ \@if MOBILE \@since_tizen 3.0
+ \@elseif WEARABLE \@since_tizen 3.0
+ \@endif
+ \@internal
+ ]]
+ return: bool; [[$true on success, or $false on error]]
+ }
+ keys {
+ part: string; [[The part name]]
+ state_name: string; [[The state name]]
+ }
+ values {
+ min_x: bool; [[The min width policy]]
+ min_y: bool; [[The min height policy]]
+ }
+ }
+ @property part_text_valign {
+ set {
+ [[Sets the valign for text.
+
+ Do not use this API without understanding whats going on.
+ It is made for internal usage.
+ \@internal
+ ]]
+ return: bool; [[$true, on success or $false, on error]]
+ }
+ get {
+ [[Gets the valign for text.
+
+ Do not use this API without understanding whats going on.
+ It is made for internal usage.
+ \@internal
+ ]]
+ }
+ keys {
+ part: string; [[The part name]]
+ }
+ values {
+ valign: double; [[The valign 0.0~1.0. -1.0 for respect EDC's align value.]]
+ }
+ }
+ /*******
+ * END *
+ *******/
+ /***********************************************************************************
+ * TIZEN_ONLY_FEATURE: ellipsize.marquee, ellipsize.fade for TEXTBLOCK, TEXT part. *
+ ***********************************************************************************/
+ @property part_text_marquee_duration {
+ set {
+ [[Sets the duration for text's marquee.
+
+ Do not use this API without understanding whats going on.
+ It is made for internal usage.
+ \@internal
+ ]]
+ return: bool; [[$true, on success or $false, on error]]
+ }
+ get {
+ [[Gets the duration for text's marquee.
+
+ Do not use this API without understanding whats going on.
+ It is made for internal usage.
+ \@internal
+ ]]
+ }
+ keys {
+ part: string; [[The part name]]
+ }
+ values {
+ duration: double; [[The duration. 0.0 for respect EDC's duration value.]]
+ }
+ }
+ @property part_text_marquee_speed {
+ set {
+ [[Sets the speed for text's marquee.
+
+ Do not use this API without understanding whats going on.
+ It is made for internal usage.
+ \@internal
+ ]]
+ return: bool; [[$true, on success or $false, on error]]
+ }
+ get {
+ [[Gets the speed for text's marquee.
+
+ Do not use this API without understanding whats going on.
+ It is made for internal usage.
+ \@internal
+ ]]
+ }
+ keys {
+ part: string; [[The part name]]
+ }
+ values {
+ speed: double; [[The speed. 0.0 for respect EDC's speed value.]]
+ }
+ }
+ /*******
+ * END *
+ *******/
+ }
+ implements {
+ Efl.Gfx.visible { set; }
+ Efl.Gfx.position { set; }
+ Efl.Gfx.size { set; }
+ Efl.Object.constructor;
+ Efl.Object.destructor;
+ Efl.Object.debug_name_override;
+ Efl.Canvas.Object.no_render { set; }
+ Efl.Canvas.Object.paragraph_direction { set; }
+ Efl.Canvas.Group.group_calculate;
+ Efl.Canvas.Layout_Calc.calc_auto_update_hints { get; set; }
+ Efl.Canvas.Layout_Calc.calc_size_min;
+ Efl.Canvas.Layout_Calc.calc_parts_extends;
+ Efl.Canvas.Layout_Calc.calc_freeze;
+ Efl.Canvas.Layout_Calc.calc_thaw;
+ Efl.Canvas.Layout_Calc.calc_force;
+ Efl.Canvas.Layout_Group.group_size_min { get; }
+ Efl.Canvas.Layout_Group.group_size_max { get; }
+ Efl.Canvas.Layout_Group.group_data { get; }
+ Efl.Canvas.Layout_Signal.message_send;
+ Efl.Canvas.Layout_Signal.signal_callback_add;
+ Efl.Canvas.Layout_Signal.signal_callback_del;
+ Efl.Canvas.Layout_Signal.signal_emit;
+ Efl.Canvas.Layout_Signal.signal_process;
+ Efl.Ui.Base.mirrored { set; get; }
+ Efl.Ui.Base.language { set; get; }
+ Efl.Ui.Base.scale { set; get; }
+ Efl.Ui.Base.base_scale { get; }
+ Efl.File.file { get; set; }
+ Efl.File.mmap { get; set; }
+ Efl.Container.content_remove;
+ Efl.Part.part; [[Returns @Efl.Canvas.Layout.Part.]]
+ Efl.Observer.update;
+ Efl.Player.playable { get; }
+ Efl.Player.play { get; set; }
+ Efl.Player.play_speed { get; set; }
+ }
+ events {
+ recalc; [[Edje re-calculated the object.]]
+ }
+}