efl/src/lib/ecore/efl_container_model.eo

60 lines
1.9 KiB
Plaintext
Raw Normal View History

import eina_types;
class @beta Efl.Container_Model extends Efl.Loop_Model
{
[[
Class used to create data models from Eina containers.
Each container supplied represents a series of property values, each item
efl_model : rename all efl_model based classes. Summary: As the result of discussion in T7458, we need to rename all efl_model based classes with efl_XXX_Model sequence. I've run few vote for this, see V42, V43 few classes are totally renamed as our consideration of misnaming. | Efl.Model_Loop | Efl.Loop_Model | | Efl.Model_Item | Efl.Generic_Model | | Efl.Model_Container | Efl.Container_Model | | Efl.Model_Container_Item | Efl.Container_Model_Item | | Efl.Model_Composite | Efl.Composite_Model | | Efl.Model_Composite_Boolean | Efl.Boolean_Model | | Efl.Model_Composite_Boolean_Chlidren | Efl.Boolean_Model_Item | | Efl.Model_Composite_Selection | Efl.Select_Model | | Efl.Model_Composite_Selection_Chlidren | Efl.Select_Model_Item | | Efl.Model_View | Efl.View_Model | | Eio.Model | Efl.Io.Model | | Efl.Ui.Model_State | Efl.Ui.State_Model | | Efl.Ui.Model_Size | Efl.Ui.Size_Model | | Efl.Ui.Model_Exact | Efl.Ui.Exact_Model | | Efl.Ui.Model_Average | Efl.Ui.Average_Model | | Efl.Ui.Model_Homogeneous | Efl.Ui.Homogeneous_Model | I worried about Efl.Io.Model changes, cause it is widely used, but as I tested, there is no issue found yet. Eldbus.Model also may can changed Efl.Dbus.Model, but I cannot found any class who using Efl.Dbus namespace, so I left it future work. Test Plan: Run the Make Test, it works well except Efl test about selection. there are class inheritance problem exist in select_model, I reported it and will fix it in another patch. Reviewers: cedric, felipealmeida, woohyun, Hermet Reviewed By: cedric Subscribers: lauromoura Tags: #efl, #do_not_merge Differential Revision: https://phab.enlightenment.org/D7533
2019-01-30 20:35:34 -08:00
being the property value for a child object (@Efl.Container_Model_Item).
The data in the given containers are copied and stored internally.
Several containers can be supplied and the number of allocated children is
based on the container of the largest size.
]]
methods {
child_property_value_type_get {
[[Gets the type of the given property.]]
params {
name: string; [[Property name]]
}
return: ptr(const(Eina.Value_Type)); [[Property type]]
}
child_property_values_get {
[[Gets the values for the given property.]]
params {
name: string; [[Property name]]
}
return: iterator<void_ptr> @owned @warn_unused;
[[The currently wrapped values]]
}
child_property_add {
[[Adds the given property to child objects and supply the values.
Each item will represent the value of the given property in the
respective child within the data model.
New children objects are allocated as necessary.
Value type is required for compatibility with the @Efl.Model API.]]
params {
name: string; [[Property name]]
@cref type: Eina.Value_Type; [[Property type]]
values: iterator<const(void_ptr)> @owned; [[Values to be added]]
}
return: bool; [[$true on success, $false otherwise]]
}
}
implements {
Efl.Object.constructor;
Efl.Object.destructor;
Efl.Model.properties { get; }
Efl.Model.property { set; get; }
Efl.Model.child_add;
Efl.Model.child_del;
Efl.Model.children_slice_get;
Efl.Model.children_count { get; }
}
}