multi style support factory wil be new class.
Create() can return Future not a Real Instance.
Event will give style information as a parameter.
e.g.
Efl.Ui.ListItemMultiFactory liFac = new Efl.Ui.ListItemMultiFactory(parent = lView);
Efl.Ui.ImageFactory imgFac = new Efl.Ui.ImageFactory(parent = lView);
imgFac.Connect("filepath");
liFac.ClassAdd(Efl.Ui.ListDefaultItem.GetClass(), "item_class", "default");
liFac.ClassAdd(Efl.Ui.ListTitleItem.GetClass(), "item_class", "title");
when the view call the create, it is just future and when style property is ready,
actual efl_add and createEvent is called.
liFac.CreateEvent += (object, model, parent, style) { To be discussed more
if (style == "default") {
var item = (Efl.Ui.ListDefaultItem) object;
item.icon = imgFac.Create(model, object);
item.label. ???? // how to connect asyncronous string to label part?
}
else if (style == "title") {
var item = (Efl.Ui.ListTitleItem) object;
item.icon = imgFac.Create(model, object);
item.label. ????
}}
This may possiblely named asynchronous factory , cause the other case of factory will be synchronous by giving create() with real instance.