edje: Import missing eo descriptions for ellipsize feature
authorYoungbok Shin <youngb.shin@samsung.com>
Thu, 23 Nov 2017 07:14:08 +0000 (16:14 +0900)
committerJiyoun Park <jy0703.park@samsung.com>
Thu, 21 Dec 2017 08:28:30 +0000 (17:28 +0900)
@tizen_fix

Change-Id: I7f46d4aebd0f431faeae59095b8a719885df2489

src/lib/edje/edje_object.eo [new file with mode: 0644]

diff --git a/src/lib/edje/edje_object.eo b/src/lib/edje/edje_object.eo
new file mode 100644 (file)
index 0000000..479f850
--- /dev/null
@@ -0,0 +1,549 @@
+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.]]
+   }
+}