efl/src/lib/elementary/efl_ui_collection_view.eo

69 lines
2.8 KiB
Plaintext

class Efl.Ui.Collection_View extends Efl.Ui.Layout_Base implements
Efl.Ui.Layout_Orientable,
Efl.Ui.Focus.Manager_Sub,
Efl.Ui.Widget_Focus_Manager,
Efl.Ui.Item_Clickable
composites Efl.Ui.Scrollable, Efl.Ui.Scrollbar, Efl.Ui.Multi_Selectable_Index_Range, Efl.Ui.Single_Selectable
{
[[This widget displays a list of items in an arrangement controlled by an external @.position_manager
object. By using different @.position_manager objects this widget can show unidimensional lists or
two-dimensional grids of items, for example.
This class is intended to act as a base for widgets like List_View or @Efl.Ui.Grid_View,
which hide this complexity from the user.
Items are generated by the @Efl.Ui.Factory defined with .factory.set to match the content of the
@Efl.Model defined with @Efl.Ui.View.model.set. They are dynamically created/destroyed to only have
the one that are necessary to display all the one that are to far out of the viewport will not be
created to lighten the usage for very large list.
The direction of the arrangement can be controlled through @Efl.Ui.Layout_Orientable.orientation.
If all items do not fit in the current widget size scrolling facilities are provided.
Items inside this widget can be selected according to the @Efl.Ui.Multi_Selectable.select_mode
policy, and the selection can be retrieved with @Efl.Ui.Multi_Selectable_Index_Range.selected_ndx_iterator_new.
@since 1.23
]]
methods {
@property factory {
[[Define the factory used to create all the items.]]
get {}
set {}
values {
factory: Efl.Ui.Factory; [[The factory.]]
}
}
@property position_manager @beta {
[[Position manager object that handles placement of items.]]
get {
values {
position_manager : Efl.Ui.Position_Manager.Entity; [[ A borrowed reference to the manager. ]]
}
}
set { }
values {
position_manager : Efl.Ui.Position_Manager.Entity @move; [[The objects ownership is passed to the item container.]]
}
}
}
implements {
Efl.Object.constructor;
Efl.Object.invalidate;
Efl.Ui.Layout_Orientable.orientation { get; set; }
Efl.Ui.Widget.theme_apply;
Efl.Ui.Scrollable.match_content { set; }
Efl.Ui.Widget_Focus_Manager.focus_manager_create;
Efl.Ui.Focus.Manager.move;
Efl.Ui.Widget.focus_state_apply;
}
events {
item,realized : Efl.Ui.Item; [[Event triggered when an @Efl.Ui.Item has been provided by the @Efl.Ui.Factory and is about to be used.]]
item,unrealized : Efl.Ui.Item; [[Event triggered when the @Efl.Ui.Collection_View is about to give an @Efl.Ui.Item back to the @Efl.Ui.Factory.]]
}
}