Eolian: Legacy integration of Evas Box and Evas Out

This commit is contained in:
Yossi Kantor 2014-04-03 15:14:46 +03:00 committed by Daniel Zaoui
parent 334db73866
commit e791050383
3 changed files with 61 additions and 720 deletions

View File

@ -47,6 +47,7 @@ BUILT_SOURCES += \
lib/evas/canvas/evas_image.eo.legacy.h \
lib/evas/canvas/evas_out.eo.c \
lib/evas/canvas/evas_out.eo.h \
lib/evas/canvas/evas_out.eo.legacy.h \
lib/evas/canvas/evas_draggable_interface.eo.c \
lib/evas/canvas/evas_draggable_interface.eo.h \
lib/evas/canvas/evas_clickable_interface.eo.c \
@ -58,7 +59,8 @@ BUILT_SOURCES += \
lib/evas/canvas/evas_zoomable_interface.eo.c \
lib/evas/canvas/evas_zoomable_interface.eo.h \
lib/evas/canvas/evas_box.eo.c \
lib/evas/canvas/evas_box.eo.h
lib/evas/canvas/evas_box.eo.h \
lib/evas/canvas/evas_box.eo.legacy.h
evaseolianfilesdir = $(datadir)/eolian/include/evas-@VMAJ@
evaseolianfiles_DATA = \
@ -137,7 +139,9 @@ nodist_installed_evascanvasheaders_DATA = \
lib/evas/canvas/evas_common_interface.eo.legacy.h \
lib/evas/canvas/evas_object.eo.legacy.h \
lib/evas/canvas/evas_grid.eo.legacy.h \
lib/evas/canvas/evas_image.eo.legacy.h
lib/evas/canvas/evas_image.eo.legacy.h \
lib/evas/canvas/evas_out.eo.legacy.h \
lib/evas/canvas/evas_box.eo.legacy.h
noinst_HEADERS = \
lib/evas/include/evas_inline.x \

View File

@ -1951,29 +1951,7 @@ EAPI void evas_object_event_callback_add(Evas_Object *obj, Evas_Callback_Ty
/**
* Add (register) a callback function to a given Evas object event with a
* non-default priority set. Except for the priority field, it's exactly the
* same as @ref evas_object_event_callback_add
*
* @param obj Object to attach a callback to
* @param type The type of event that will trigger the callback
* @param priority The priority of the callback, lower values called first.
* @param func The function to be called when the event is triggered
* @param data The data pointer to be passed to @p func
*
* @see evas_object_event_callback_add
* @since 1.1
*/
EAPI void evas_object_event_callback_priority_add(Evas_Object *obj, Evas_Callback_Type type, Evas_Callback_Priority priority, Evas_Object_Event_Cb func, const void *data) EINA_ARG_NONNULL(1, 4);
/**
* Delete a callback function from an object
*
* @param obj Object to remove a callback from
* @param type The type of event that was triggering the callback
* @param func The function that was to be called when the event was triggered
* @return The data pointer that was to be passed to the callback
*
* This function removes the most recently added callback from the
* non-default priority set. Except for thg
* object @p obj which was triggered by the event type @p type and was
* calling the function @p func when triggered. If the removal is
* successful it will also return the data pointer that was passed to
@ -3089,35 +3067,8 @@ EAPI Evas_Object *evas_object_smart_clipped_clipper_get(const Evas_Ob
*
* @{
*/
/**
* Set a new layouting function to a given box object
*
* @param o The box object to operate on.
* @param cb The new layout function to set on @p o.
* @param data Data pointer to be passed to @p cb.
* @param free_data Function to free @p data, if need be.
*
* A box layout function affects how a box object displays child
* elements within its area. The list of pre-defined box layouts
* available in Evas is:
* - evas_object_box_layout_horizontal()
* - evas_object_box_layout_vertical()
* - evas_object_box_layout_homogeneous_horizontal()
* - evas_object_box_layout_homogeneous_vertical()
* - evas_object_box_layout_homogeneous_max_size_horizontal()
* - evas_object_box_layout_homogeneous_max_size_vertical()
* - evas_object_box_layout_flow_horizontal()
* - evas_object_box_layout_flow_vertical()
* - evas_object_box_layout_stack()
*
* Refer to each of their documentation texts for details on them.
*
* @note A box layouting function will be triggered by the @c
* 'calculate' smart callback of the box's smart class.
*/
EAPI void evas_object_box_layout_set(Evas_Object *o, Evas_Object_Box_Layout cb, const void *data, void (*free_data)(void *data)) EINA_ARG_NONNULL(1, 2);
/**
/**
* Add a new box object on the provided canvas.
*
* @param evas The canvas to create the box object on.
@ -3133,574 +3084,42 @@ EAPI void evas_object_box_layout_set(Evas_Object *o, Evas_
EAPI Evas_Object *evas_object_box_add(Evas *evas) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC;
/**
* Add a new box as a @b child of a given smart object.
* Get a property's value (by its given numerical identifier), on a
* given box child element -- by a variable argument list
*
* @param parent The parent smart object to put the new box in.
* @return @c NULL on error, a pointer to a new box object on
* success.
* @param o The box parenting the child element
* @param opt The box option structure bound to the child box element
* to get a property from
* @param property The numerical ID of the given property
* @param args The variable argument list with pointers to where to
* store the values of this property. They @b must point to variables
* of the same type the user has defined for them.
* @return @c EINA_TRUE on success, @c EINA_FALSE on failure.
*
* This is a helper function that has the same effect of putting a new
* box object into @p parent by use of evas_object_smart_member_add().
*
* @see evas_object_box_add()
* This is a variable argument list variant of the
* evas_object_box_option_property_get(). See its documentation for
* more details.
*/
EAPI Evas_Object *evas_object_box_add_to(Evas_Object *parent) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC;
EAPI Eina_Bool evas_object_box_option_property_vget(const Evas_Object *o, Evas_Object_Box_Option *opt, int property, va_list args) EINA_ARG_NONNULL(1, 2);
/**
* Layout function which sets the box @a o to a (basic) horizontal box
* Set a property value (by its given numerical identifier), on a
* given box child element -- by a variable argument list
*
* @param o The box object in question
* @param priv The smart data of the @p o
* @param data The data pointer passed on
* evas_object_box_layout_set(), if any
* @param o The box parenting the child element
* @param opt The box option structure bound to the child box element
* to set a property on
* @param property The numerical ID of the given property
* @param args The variable argument list implementing the value to
* be set for this property. It @b must be of the same type the user has
* defined for it.
* @return @c EINA_TRUE on success, @c EINA_FALSE on failure.
*
* In this layout, the box object's overall behavior is controlled by
* its padding/alignment properties, which are set by the
* <c>evas_object_box_{h,v}_{align,padding}_set()</c> family of
* functions. The size hints of the elements in the box -- set by the
* <c>evas_object_size_hint_{align,padding,weight}_set()</c> functions
* -- also control the way this function works.
*
* \par Box's properties:
* @c align_h controls the horizontal alignment of the child objects
* relative to the containing box. When set to @c 0.0, children are
* aligned to the left. A value of @c 1.0 makes them aligned to the
* right border. Values in between align them proportionally. Note
* that if the size required by the children, which is given by their
* widths and the @c padding_h property of the box, is bigger than the
* their container's width, the children will be displayed out of the
* box's bounds. A negative value of @c align_h makes the box to
* @b justify its children. The padding between them, in this case, is
* corrected so that the leftmost one touches the left border and the
* rightmost one touches the right border (even if they must
* overlap). The @c align_v and @c padding_v properties of the box
* @b don't contribute to its behaviour when this layout is chosen.
*
* \par Child element's properties:
* @c align_x does @b not influence the box's behavior. @c padding_l
* and @c padding_r sum up to the container's horizontal padding
* between elements. The child's @c padding_t, @c padding_b and
* @c align_y properties apply for padding/alignment relative to the
* overall height of the box. Finally, there is the @c weight_x
* property, which, if set to a non-zero value, tells the container
* that the child width is @b not pre-defined. If the container can't
* accommodate all its children, it sets the widths of the ones
* <b>with weights</b> to sizes as small as they can all fit into
* it. If the size required by the children is less than the
* available, the box increases its childrens' (which have weights)
* widths as to fit the remaining space. The @c weight_x property,
* besides telling the element is resizable, gives a @b weight for the
* resizing process. The parent box will try to distribute (or take
* off) widths accordingly to the @b normalized list of weights: most
* weighted children remain/get larger in this process than the least
* ones. @c weight_y does not influence the layout.
*
* If one desires that, besides having weights, child elements must be
* resized bounded to a minimum or maximum size, those size hints must
* be set, by the <c>evas_object_size_hint_{min,max}_set()</c>
* functions.
* This is a variable argument list variant of the
* evas_object_box_option_property_set(). See its documentation for
* more details.
*/
EAPI void evas_object_box_layout_horizontal(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) EINA_ARG_NONNULL(1, 2);
/**
* Layout function which sets the box @a o to a (basic) vertical box
*
* This function behaves analogously to
* evas_object_box_layout_horizontal(). The description of its
* behaviour can be derived from that function's documentation.
*/
EAPI void evas_object_box_layout_vertical(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) EINA_ARG_NONNULL(1, 2);
/**
* Layout function which sets the box @a o to a @b homogeneous
* vertical box
*
* This function behaves analogously to
* evas_object_box_layout_homogeneous_horizontal(). The description
* of its behaviour can be derived from that function's documentation.
*/
EAPI void evas_object_box_layout_homogeneous_vertical(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) EINA_ARG_NONNULL(1, 2);
/**
* Layout function which sets the box @a o to a @b homogeneous
* horizontal box
*
* @param o The box object in question
* @param priv The smart data of the @p o
* @param data The data pointer passed on
* evas_object_box_layout_set(), if any
*
* In a homogeneous horizontal box, its width is divided @b equally
* between the contained objects. The box's overall behavior is
* controlled by its padding/alignment properties, which are set by
* the <c>evas_object_box_{h,v}_{align,padding}_set()</c> family of
* functions. The size hints the elements in the box -- set by the
* <c>evas_object_size_hint_{align,padding,weight}_set()</c> functions
* -- also control the way this function works.
*
* \par Box's properties:
* @c align_h has no influence on the box for this layout.
* @c padding_h tells the box to draw empty spaces of that size, in
* pixels, between the (equal) child objects' cells. The @c align_v
* and @c padding_v properties of the box don't contribute to its
* behaviour when this layout is chosen.
*
* \par Child element's properties:
* @c padding_l and @c padding_r sum up to the required width of the
* child element. The @c align_x property tells the relative position
* of this overall child width in its allocated cell (@c 0.0 to
* extreme left, @c 1.0 to extreme right). A value of @c -1.0 to
* @c align_x makes the box try to resize this child element to the exact
* width of its cell (respecting the minimum and maximum size hints on
* the child's width and accounting for its horizontal padding
* hints). The child's @c padding_t, @c padding_b and @c align_y
* properties apply for padding/alignment relative to the overall
* height of the box. A value of @c -1.0 to @c align_y makes the box
* try to resize this child element to the exact height of its parent
* (respecting the maximum size hint on the child's height).
*/
EAPI void evas_object_box_layout_homogeneous_horizontal(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) EINA_ARG_NONNULL(1, 2);
/**
* Layout function which sets the box @a o to a <b>maximum size,
* homogeneous</b> horizontal box
*
* @param o The box object in question
* @param priv The smart data of the @p o
* @param data The data pointer passed on
* evas_object_box_layout_set(), if any
*
* In a maximum size, homogeneous horizontal box, besides having cells
* of <b>equal size</b> reserved for the child objects, this size will
* be defined by the size of the @b largest child in the box (in
* width). The box's overall behavior is controlled by its properties,
* which are set by the
* <c>evas_object_box_{h,v}_{align,padding}_set()</c> family of
* functions. The size hints of the elements in the box -- set by the
* <c>evas_object_size_hint_{align,padding,weight}_set()</c> functions
* -- also control the way this function works.
*
* \par Box's properties:
* @c padding_h tells the box to draw empty spaces of that size, in
* pixels, between the child objects' cells. @c align_h controls the
* horizontal alignment of the child objects, relative to the
* containing box. When set to @c 0.0, children are aligned to the
* left. A value of @c 1.0 lets them aligned to the right
* border. Values in between align them proportionally. A negative
* value of @c align_h makes the box to @b justify its children
* cells. The padding between them, in this case, is corrected so that
* the leftmost one touches the left border and the rightmost one
* touches the right border (even if they must overlap). The
* @c align_v and @c padding_v properties of the box don't contribute to
* its behaviour when this layout is chosen.
*
* \par Child element's properties:
* @c padding_l and @c padding_r sum up to the required width of the
* child element. The @c align_x property tells the relative position
* of this overall child width in its allocated cell (@c 0.0 to
* extreme left, @c 1.0 to extreme right). A value of @c -1.0 to
* @c align_x makes the box try to resize this child element to the exact
* width of its cell (respecting the minimum and maximum size hints on
* the child's width and accounting for its horizontal padding
* hints). The child's @c padding_t, @c padding_b and @c align_y
* properties apply for padding/alignment relative to the overall
* height of the box. A value of @c -1.0 to @c align_y makes the box
* try to resize this child element to the exact height of its parent
* (respecting the max hint on the child's height).
*/
EAPI void evas_object_box_layout_homogeneous_max_size_horizontal(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) EINA_ARG_NONNULL(1, 2);
/**
* Layout function which sets the box @a o to a <b>maximum size,
* homogeneous</b> vertical box
*
* This function behaves analogously to
* evas_object_box_layout_homogeneous_max_size_horizontal(). The
* description of its behaviour can be derived from that function's
* documentation.
*/
EAPI void evas_object_box_layout_homogeneous_max_size_vertical(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) EINA_ARG_NONNULL(1, 2);
/**
* Layout function which sets the box @a o to a @b flow horizontal
* box.
*
* @param o The box object in question
* @param priv The smart data of the @p o
* @param data The data pointer passed on
* evas_object_box_layout_set(), if any
*
* In a flow horizontal box, the box's child elements are placed in
* @b rows (think of text as an analogy). A row has as much elements as
* can fit into the box's width. The box's overall behavior is
* controlled by its properties, which are set by the
* <c>evas_object_box_{h,v}_{align,padding}_set()</c> family of
* functions. The size hints of the elements in the box -- set by the
* <c>evas_object_size_hint_{align,padding,weight}_set()</c> functions
* -- also control the way this function works.
*
* \par Box's properties:
* @c padding_h tells the box to draw empty spaces of that size, in
* pixels, between the child objects' cells. @c align_h dictates the
* horizontal alignment of the rows (@c 0.0 to left align them, @c 1.0
* to right align). A value of @c -1.0 to @c align_h lets the rows
* @b justified horizontally. @c align_v controls the vertical alignment
* of the entire set of rows (@c 0.0 to top, @c 1.0 to bottom). A
* value of @c -1.0 to @c align_v makes the box to @b justify the rows
* vertically. The padding between them, in this case, is corrected so
* that the first row touches the top border and the last one touches
* the bottom border (even if they must overlap). @c padding_v has no
* influence on the layout.
*
* \par Child element's properties:
* @c padding_l and @c padding_r sum up to the required width of the
* child element. The @c align_x property has no influence on the
* layout. The child's @c padding_t and @c padding_b sum up to the
* required height of the child element and is the only means (besides
* row justifying) of setting space between rows. Note, however, that
* @c align_y dictates positioning relative to the <b>largest
* height</b> required by a child object in the actual row.
*/
EAPI void evas_object_box_layout_flow_horizontal(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) EINA_ARG_NONNULL(1, 2);
/**
* Layout function which sets the box @a o to a @b flow vertical box.
*
* This function behaves analogously to
* evas_object_box_layout_flow_horizontal(). The description of its
* behaviour can be derived from that function's documentation.
*/
EAPI void evas_object_box_layout_flow_vertical(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) EINA_ARG_NONNULL(1, 2);
/**
* Layout function which sets the box @a o to a @b stacking box
*
* @param o The box object in question
* @param priv The smart data of the @p o
* @param data The data pointer passed on
* evas_object_box_layout_set(), if any
*
* In a stacking box, all children will be given the same size -- the
* box's own size -- and they will be stacked one above the other, so
* that the first object in @p o's internal list of child elements
* will be the bottommost in the stack.
*
* \par Box's properties:
* No box properties are used.
*
* \par Child element's properties:
* @c padding_l and @c padding_r sum up to the required width of the
* child element. The @c align_x property tells the relative position
* of this overall child width in its allocated cell (@c 0.0 to
* extreme left, @c 1.0 to extreme right). A value of @c -1.0 to @c
* align_x makes the box try to resize this child element to the exact
* width of its cell (respecting the min and max hints on the child's
* width and accounting for its horizontal padding properties). The
* same applies to the vertical axis.
*/
EAPI void evas_object_box_layout_stack(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) EINA_ARG_NONNULL(1, 2);
/**
* Set the alignment of the whole bounding box of contents, for a
* given box object.
*
* @param o The given box object to set alignment from
* @param horizontal The horizontal alignment, in pixels
* @param vertical the vertical alignment, in pixels
*
* This will influence how a box object is to align its bounding box
* of contents within its own area. The values @b must be in the range
* @c 0.0 - @c 1.0, or undefined behavior is expected. For horizontal
* alignment, @c 0.0 means to the left, with @c 1.0 meaning to the
* right. For vertical alignment, @c 0.0 means to the top, with @c 1.0
* meaning to the bottom.
*
* @note The default values for both alignments is @c 0.5.
*
* @see evas_object_box_align_get()
*/
EAPI void evas_object_box_align_set(Evas_Object *o, double horizontal, double vertical) EINA_ARG_NONNULL(1);
/**
* Get the alignment of the whole bounding box of contents, for a
* given box object.
*
* @param o The given box object to get alignment from
* @param horizontal Pointer to a variable where to store the
* horizontal alignment
* @param vertical Pointer to a variable where to store the vertical
* alignment
*
* @see evas_object_box_align_set() for more information
*/
EAPI void evas_object_box_align_get(const Evas_Object *o, double *horizontal, double *vertical) EINA_ARG_NONNULL(1);
/**
* Set the (space) padding between cells set for a given box object.
*
* @param o The given box object to set padding from
* @param horizontal The horizontal padding, in pixels
* @param vertical the vertical padding, in pixels
*
* @note The default values for both padding components is @c 0.
*
* @see evas_object_box_padding_get()
*/
EAPI void evas_object_box_padding_set(Evas_Object *o, Evas_Coord horizontal, Evas_Coord vertical) EINA_ARG_NONNULL(1);
/**
* Get the (space) padding between cells set for a given box object.
*
* @param o The given box object to get padding from
* @param horizontal Pointer to a variable where to store the
* horizontal padding
* @param vertical Pointer to a variable where to store the vertical
* padding
*
* @see evas_object_box_padding_set()
*/
EAPI void evas_object_box_padding_get(const Evas_Object *o, Evas_Coord *horizontal, Evas_Coord *vertical) EINA_ARG_NONNULL(1);
/**
* Append a new @a child object to the given box object @a o.
*
* @param o The given box object
* @param child A child Evas object to be made a member of @p o
* @return A box option bound to the recently added box item or @c
* NULL, on errors
*
* On success, the @c "child,added" smart event will take place.
*
* @note The actual placing of the item relative to @p o's area will
* depend on the layout set to it. For example, on horizontal layouts
* an item in the end of the box's list of children will appear on its
* right.
*
* @note This call will trigger the box's _Evas_Object_Box_Api::append
* smart function.
*/
EAPI Evas_Object_Box_Option *evas_object_box_append(Evas_Object *o, Evas_Object *child) EINA_ARG_NONNULL(1, 2);
/**
* Prepend a new @a child object to the given box object @a o.
*
* @param o The given box object
* @param child A child Evas object to be made a member of @p o
* @return A box option bound to the recently added box item or @c
* NULL, on errors
*
* On success, the @c "child,added" smart event will take place.
*
* @note The actual placing of the item relative to @p o's area will
* depend on the layout set to it. For example, on horizontal layouts
* an item in the beginning of the box's list of children will appear
* on its left.
*
* @note This call will trigger the box's
* _Evas_Object_Box_Api::prepend smart function.
*/
EAPI Evas_Object_Box_Option *evas_object_box_prepend(Evas_Object *o, Evas_Object *child) EINA_ARG_NONNULL(1, 2);
/**
* Insert a new @a child object <b>before another existing one</b>, in
* a given box object @a o.
*
* @param o The given box object
* @param child A child Evas object to be made a member of @p o
* @param reference The child object to place this new one before
* @return A box option bound to the recently added box item or @c
* NULL, on errors
*
* On success, the @c "child,added" smart event will take place.
*
* @note This function will fail if @p reference is not a member of @p
* o.
*
* @note The actual placing of the item relative to @p o's area will
* depend on the layout set to it.
*
* @note This call will trigger the box's
* _Evas_Object_Box_Api::insert_before smart function.
*/
EAPI Evas_Object_Box_Option *evas_object_box_insert_before(Evas_Object *o, Evas_Object *child, const Evas_Object *reference) EINA_ARG_NONNULL(1, 2, 3);
/**
* Insert a new @a child object <b>after another existing one</b>, in
* a given box object @a o.
*
* @param o The given box object
* @param child A child Evas object to be made a member of @p o
* @param reference The child object to place this new one after
* @return A box option bound to the recently added box item or @c
* NULL, on errors
*
* On success, the @c "child,added" smart event will take place.
*
* @note This function will fail if @p reference is not a member of @p
* o.
*
* @note The actual placing of the item relative to @p o's area will
* depend on the layout set to it.
*
* @note This call will trigger the box's
* _Evas_Object_Box_Api::insert_after smart function.
*/
EAPI Evas_Object_Box_Option *evas_object_box_insert_after(Evas_Object *o, Evas_Object *child, const Evas_Object *reference) EINA_ARG_NONNULL(1, 2, 3);
/**
* Insert a new @a child object <b>at a given position</b>, in a given
* box object @a o.
*
* @param o The given box object
* @param child A child Evas object to be made a member of @p o
* @param pos The numeric position (starting from @c 0) to place the
* new child object at
* @return A box option bound to the recently added box item or @c
* NULL, on errors
*
* On success, the @c "child,added" smart event will take place.
*
* @note This function will fail if the given position is invalid,
* given @p o's internal list of elements.
*
* @note The actual placing of the item relative to @p o's area will
* depend on the layout set to it.
*
* @note This call will trigger the box's
* _Evas_Object_Box_Api::insert_at smart function.
*/
EAPI Evas_Object_Box_Option *evas_object_box_insert_at(Evas_Object *o, Evas_Object *child, unsigned int pos) EINA_ARG_NONNULL(1, 2);
/**
* Remove a given object from a box object, unparenting it again.
*
* @param o The box object to remove a child object from
* @param child The handle to the child object to be removed
* @return @c EINA_TRUE, on success, @c EINA_FALSE otherwise
*
* On removal, you'll get an unparented object again, just as it was
* before you inserted it in the box. The
* _Evas_Object_Box_Api::option_free box smart callback will be called
* automatically for you and, also, the @c "child,removed" smart event
* will take place.
*
* @note This call will trigger the box's _Evas_Object_Box_Api::remove
* smart function.
*/
EAPI Eina_Bool evas_object_box_remove(Evas_Object *o, Evas_Object *child) EINA_ARG_NONNULL(1, 2);
/**
* Remove an object, <b>bound to a given position</b> in a box object,
* unparenting it again.
*
* @param o The box object to remove a child object from
* @param pos The numeric position (starting from @c 0) of the child
* object to be removed
* @return @c EINA_TRUE, on success, @c EINA_FALSE otherwise
*
* On removal, you'll get an unparented object again, just as it was
* before you inserted it in the box. The @c option_free() box smart
* callback will be called automatically for you and, also, the
* @c "child,removed" smart event will take place.
*
* @note This function will fail if the given position is invalid,
* given @p o's internal list of elements.
*
* @note This call will trigger the box's
* _Evas_Object_Box_Api::remove_at smart function.
*/
EAPI Eina_Bool evas_object_box_remove_at(Evas_Object *o, unsigned int pos) EINA_ARG_NONNULL(1);
/**
* Remove @b all child objects from a box object, unparenting them
* again.
*
* @param o The box object to remove a child object from
* @param clear if true, it will delete just removed children.
* @return @c EINA_TRUE, on success, @c EINA_FALSE otherwise
*
* This has the same effect of calling evas_object_box_remove() on
* each of @p o's child objects, in sequence. If, and only if, all
* those calls succeed, so does this one.
*/
EAPI Eina_Bool evas_object_box_remove_all(Evas_Object *o, Eina_Bool clear) EINA_ARG_NONNULL(1);
/**
* Get an iterator to walk the list of children of a given box object.
*
* @param o The box to retrieve an items iterator from
* @return An iterator on @p o's child objects, on success, or @c NULL,
* on errors
*
* @note Do @b not remove or delete objects while walking the list.
*/
EAPI Eina_Iterator *evas_object_box_iterator_new(const Evas_Object *o) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC;
/**
* Get an accessor (a structure providing random items access) to the
* list of children of a given box object.
*
* @param o The box to retrieve an items iterator from
* @return An accessor on @p o's child objects, on success, or @c NULL,
* on errors
*
* @note Do not remove or delete objects while walking the list.
*/
EAPI Eina_Accessor *evas_object_box_accessor_new(const Evas_Object *o) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC;
/**
* Get the list of children objects in a given box object.
*
* @param o The box to retrieve an items list from
* @return A list of @p o's child objects, on success, or @c NULL,
* on errors (or if it has no child objects)
*
* The returned list should be freed with @c eina_list_free() when you
* no longer need it.
*
* @note This is a duplicate of the list kept by the box internally.
* It's up to the user to destroy it when it no longer needs it.
* It's possible to remove objects from the box when walking
* this list, but these removals won't be reflected on it.
*/
EAPI Eina_List *evas_object_box_children_get(const Evas_Object *o) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC;
/**
* Get the name of the property of the child elements of the box @a o
* which have @a id as identifier
*
* @param o The box to search child options from
* @param property The numerical identifier of the option being searched,
* for its name
* @return The name of the given property or @c NULL, on errors.
*
* @note This call won't do anything for a canonical Evas box. Only
* users which have @b subclassed it, setting custom box items options
* (see #Evas_Object_Box_Option) on it, would benefit from this
* function. They'd have to implement it and set it to be the
* _Evas_Object_Box_Api::property_name_get smart class function of the
* box, which is originally set to @c NULL.
*/
EAPI const char *evas_object_box_option_property_name_get(const Evas_Object *o, int property) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
/**
* Get the numerical identifier of the property of the child elements
* of the box @a o which have @a name as name string
*
* @param o The box to search child options from
* @param name The name string of the option being searched, for
* its ID
* @return The numerical ID of the given property or @c -1, on
* errors.
*
* @note This call won't do anything for a canonical Evas box. Only
* users which have @b subclassed it, setting custom box items options
* (see #Evas_Object_Box_Option) on it, would benefit from this
* function. They'd have to implement it and set it to be the
* _Evas_Object_Box_Api::property_id_get smart class function of the
* box, which is originally set to @c NULL.
*/
EAPI int evas_object_box_option_property_id_get(const Evas_Object *o, const char *name) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2);
EAPI Eina_Bool evas_object_box_option_property_vset(Evas_Object *o, Evas_Object_Box_Option *opt, int property, va_list args) EINA_ARG_NONNULL(1, 2);
/**
* Set a property value (by its given numerical identifier), on a
@ -3729,25 +3148,6 @@ EAPI int evas_object_box_option_property_id_get(const Eva
*/
EAPI Eina_Bool evas_object_box_option_property_set(Evas_Object *o, Evas_Object_Box_Option *opt, int property, ...) EINA_ARG_NONNULL(1, 2);
/**
* Set a property value (by its given numerical identifier), on a
* given box child element -- by a variable argument list
*
* @param o The box parenting the child element
* @param opt The box option structure bound to the child box element
* to set a property on
* @param property The numerical ID of the given property
* @param args The variable argument list implementing the value to
* be set for this property. It @b must be of the same type the user has
* defined for it.
* @return @c EINA_TRUE on success, @c EINA_FALSE on failure.
*
* This is a variable argument list variant of the
* evas_object_box_option_property_set(). See its documentation for
* more details.
*/
EAPI Eina_Bool evas_object_box_option_property_vset(Evas_Object *o, Evas_Object_Box_Option *opt, int property, va_list args) EINA_ARG_NONNULL(1, 2);
/**
* Get a property's value (by its given numerical identifier), on a
* given box child element
@ -3776,23 +3176,23 @@ EAPI Eina_Bool evas_object_box_option_property_vset(Evas_Object
EAPI Eina_Bool evas_object_box_option_property_get(const Evas_Object *o, Evas_Object_Box_Option *opt, int property, ...) EINA_ARG_NONNULL(1, 2);
/**
* Get a property's value (by its given numerical identifier), on a
* given box child element -- by a variable argument list
* Get the list of children objects in a given box object.
*
* @param o The box parenting the child element
* @param opt The box option structure bound to the child box element
* to get a property from
* @param property The numerical ID of the given property
* @param args The variable argument list with pointers to where to
* store the values of this property. They @b must point to variables
* of the same type the user has defined for them.
* @return @c EINA_TRUE on success, @c EINA_FALSE on failure.
* @param o The box to retrieve an items list from
* @return A list of @p o's child objects, on success, or @c NULL,
* on errors (or if it has no child objects)
*
* This is a variable argument list variant of the
* evas_object_box_option_property_get(). See its documentation for
* more details.
* The returned list should be freed with @c eina_list_free() when you
* no longer need it.
*
* @note This is a duplicate of the list kept by the box internally.
* It's up to the user to destroy it when it no longer needs it.
* It's possible to remove objects from the box when walking
* this list, but these removals won't be reflected on it.
*/
EAPI Eina_Bool evas_object_box_option_property_vget(const Evas_Object *o, Evas_Object_Box_Option *opt, int property, va_list args) EINA_ARG_NONNULL(1, 2);
EAPI Eina_List *evas_object_box_children_get(const Evas_Object *o) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC;
#include "canvas/evas_box.eo.legacy.h"
/**
* @}
@ -4216,76 +3616,4 @@ EAPI Evas_Out *evas_out_add(Evas *e);
*/
EAPI void evas_output_del(Evas_Out *evo);
/**
* @since 1.8
*
* Sets the viewport region of the canvas that the output displays
*
* This sets both the viewport region in the canvas that displays on the
* given output, but also the viewport size will match the output
* resolution 1:1.
*
* @parem evo The output object
* @param x The X coordinate of the viewport
* @param y The Y coordinate of the viewport
* @param w The Width of the viewport
* @param h The Height of the viewport
*
* @see evas_out_engine_info_set
* @see evas_output_viewport_set
* @see evas_output_size_set
*/
EAPI void evas_output_view_set(Evas_Out *evo, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
/**
* @since 1.8
*
* Gets the viewport region of the canvas that the output displays
*
* @parem evo The output object
* @param x Pointer to X return value
* @param y Pointer to Y return value
* @param w Pointer to Width return value
* @param h Pointer to Height return value
*
* @see evas_out_engine_info_get
* @see evas_out_view_set
* @see evas_output_viewport_get
* @see evas_output_size_get
*/
EAPI void evas_output_view_get(const Evas_Out *evo, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
/**
* @since 1.8
*
* Sets the engine specific output parameters for a given output.
*
* @parem evo The output object
* @param info The engine parameters
* @return EINA_TRUE for success.
*
* @see evas_out_engine_info_get
* @see evas_output_viewport_set
* @see evas_output_size_set
*/
EAPI Eina_Bool evas_output_engine_info_set(Evas_Out *evo, Evas_Engine_Info *info);
/**
* @since 1.8
*
* Gets the engine specific output parameters for a given output.
*
* @param evo The output object
* @return info The engine parameters return (NULL on failure)
*
* @see evas_out_engine_info_set
* @see evas_output_viewport_get
* @see evas_output_size_get
*/
EAPI Evas_Engine_Info *evas_output_engine_info_get(const Evas_Out *evo);
/*
* XXX: need output add/del events on evas
* XXX: need output name/id, label, data
*/
#include "canvas/evas_out.eo.legacy.h"

View File

@ -201,6 +201,7 @@ class Evas_Box (Evas_Smart_Clipped)
internal_remove {
/*@ No description supplied by the EAPI. */
return Evas_Object *;
legacy null;
params {
@in Evas_Object *child;
}
@ -219,6 +220,7 @@ class Evas_Box (Evas_Smart_Clipped)
}
internal_option_free {
/*@ No description supplied by the EAPI. */
legacy null;
params {
@in Evas_Object_Box_Option *opt;
}
@ -371,6 +373,7 @@ class Evas_Box (Evas_Smart_Clipped)
}
internal_append {
/*@ No description supplied by the EAPI. */
legacy null;
return Evas_Object_Box_Option *;
params {
@in Evas_Object *child;
@ -400,6 +403,7 @@ class Evas_Box (Evas_Smart_Clipped)
}
internal_remove_at {
/*@ No description supplied by the EAPI. */
legacy null;
return Evas_Object *;
params {
@in unsigned int pos;
@ -454,6 +458,7 @@ class Evas_Box (Evas_Smart_Clipped)
}
internal_insert_at {
/*@ No description supplied by the EAPI. */
legacy null;
return Evas_Object_Box_Option *;
params {
@in Evas_Object *child;
@ -508,6 +513,7 @@ class Evas_Box (Evas_Smart_Clipped)
}
internal_insert_before {
/*@ No description supplied by the EAPI. */
legacy null;
return Evas_Object_Box_Option *;
params {
@in Evas_Object *child;
@ -554,6 +560,7 @@ class Evas_Box (Evas_Smart_Clipped)
}
internal_option_new {
/*@ No description supplied by the EAPI. */
legacy null;
return Evas_Object_Box_Option*;
params {
@in Evas_Object *child;
@ -575,6 +582,7 @@ class Evas_Box (Evas_Smart_Clipped)
}
internal_insert_after {
/*@ No description supplied by the EAPI. */
legacy null;
return Evas_Object_Box_Option *;
params {
@in Evas_Object *child;
@ -609,6 +617,7 @@ class Evas_Box (Evas_Smart_Clipped)
}
internal_prepend {
/*@ No description supplied by the EAPI. */
legacy null;
return Evas_Object_Box_Option*;
params {
@in Evas_Object *child;