~~Title: Efl.Pack_Linear~~
====== Efl.Pack_Linear (interface) ======
===== Description =====
%%Common interface for objects (containers) with multiple contents (sub-objects) which can be added and removed at runtime in a linear fashion.%%
%%This means the sub-objects are internally organized in an ordered list.%%
//Since 1.23//
{{page>:develop:api-include:efl:pack_linear:description&nouser&nolink&nodate}}
===== Inheritance =====
=> [[:develop:api:efl:pack|Efl.Pack]] //(interface)// => [[:develop:api:efl:container|Efl.Container]] //(interface)//
++++ Full hierarchy |
* [[:develop:api:efl:pack|Efl.Pack]] //(interface)//
* [[:develop:api:efl:container|Efl.Container]] //(interface)//
++++
===== Members =====
**[[:develop:api:efl:pack_linear:method:pack_after|pack_after]]**\\
> %%Append an object after the %%''existing''%% sub-object.%%
Eina_Bool efl_pack_after(Eo *obj, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing);
\\
**[[:develop:api:efl:pack_linear:method:pack_at|pack_at]]**\\
> %%Inserts %%''subobj''%% BEFORE the sub-object at position %%''index''%%.%%
Eina_Bool efl_pack_at(Eo *obj, Efl_Gfx_Entity *subobj, int index);
\\
**[[:develop:api:efl:pack_linear:method:pack_before|pack_before]]**\\
> %%Prepend an object before the %%''existing''%% sub-object.%%
Eina_Bool efl_pack_before(Eo *obj, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing);
\\
**[[:develop:api:efl:pack_linear:method:pack_begin|pack_begin]]**\\
> %%Prepend an object at the beginning of this container.%%
Eina_Bool efl_pack_begin(Eo *obj, Efl_Gfx_Entity *subobj);
\\
**[[:develop:api:efl:pack_linear:method:pack_content_get|pack_content_get]]**\\
> %%Sub-object at a given %%''index''%% in this container.%%
Efl_Gfx_Entity *efl_pack_content_get(Eo *obj, int index);
\\
**[[:develop:api:efl:pack_linear:method:pack_end|pack_end]]**\\
> %%Append object at the end of this container.%%
Eina_Bool efl_pack_end(Eo *obj, Efl_Gfx_Entity *subobj);
\\
**[[:develop:api:efl:pack_linear:method:pack_index_get|pack_index_get]]**\\
> %%Get the index of a sub-object in this container.%%
int efl_pack_index_get(Eo *obj, const Efl_Gfx_Entity *subobj);
\\
**[[:develop:api:efl:pack_linear:method:pack_unpack_at|pack_unpack_at]]**\\
> %%Pop out (remove) the sub-object at the specified %%''index''%%.%%
Efl_Gfx_Entity *efl_pack_unpack_at(Eo *obj, int index);
\\
==== Inherited ====
^ [[:develop:api:efl:container|Efl.Container]] ^^^
| | **[[:develop:api:efl:container:method:content_count|content_count]]** | %%Returns the number of contained sub-objects.%% |
| | **[[:develop:api:efl:container:method:content_iterate|content_iterate]]** | %%Begin iterating over this object's contents.%% |
^ [[:develop:api:efl:pack|Efl.Pack]] ^^^
| | **[[:develop:api:efl:pack:method:pack|pack]]** | %%Adds a sub-object to this container.%% |
| | **[[:develop:api:efl:pack:method:pack_clear|pack_clear]]** | %%Removes all packed sub-objects and unreferences them.%% |
| | **[[:develop:api:efl:pack:method:unpack|unpack]]** | %%Removes an existing sub-object from the container without deleting it.%% |
| | **[[:develop:api:efl:pack:method:unpack_all|unpack_all]]** | %%Removes all packed sub-objects without unreferencing them.%% |
===== Events =====
==== Inherited ====
^ [[:develop:api:efl:container|Efl.Container]] ^^^
| | **[[:develop:api:efl:container:event:content_added|content,added]]** | %%Sent after a new sub-object was added.%% |
| | **[[:develop:api:efl:container:event:content_removed|content,removed]]** | %%Sent after a sub-object was removed, before unref.%% |