Page MenuHomePhabricator

Efl.Pack / Efl.Pack_Linear usage
Open, HighPublic

Description

Master ticket for unifying the behaviour of the Efl_Pack_Linear users

The interfaces are used in this widgets:

  • Efl.Ui.Tab_Pager
  • Efl.Ui.Pager
  • Efl.Ui.List
  • Efl.Ui.Grid
  • Efl.Ui.Flip
  • Efl.Ui.Box

Problems:

  1. Only Efl.Ui.Box follows the rules defined in Efl.Pack_Linear / Efl.Pack
  2. List Grid Tab_Pager Do require a special kind of widget to be passed in, is this acceptable ? The Interface do not define that, nor do we have the possibility to define that in some template / generic way.
  3. Not all APIs are implemented.
bu5hm4n created this task.Apr 4 2019, 7:11 AM
bu5hm4n updated the task description. (Show Details)Apr 4 2019, 7:14 AM
bu5hm4n triaged this task as High priority.

Can we have a discussion about that ?

I would need a answers for the 2. problem, in order to adjust the behavior test suite.

This comment was removed by segfaultxavi.
zmike added a comment.Tue, Sep 3, 12:02 PM

What's happening here?

Hmmmm, yeah. If this has not been fixed yet, these are valid concerns that need to be addressed.

The only solution to that would be an update to eolian i guess. And i do not think that this makes sense at this point. A Bandaid for this release could be that we document that in the class header, i can prepare a revision for that later on. But more is not able to realize in this release i guess.

segfaultxavi updated the task description. (Show Details)Wed, Sep 4, 3:15 AM

Of the 3 issues, number 1 and 3 are implementation issues, not API, right? They can be fixed later.
Issue number 2 would be nicely solved if eolian supported templates (c# generics), for sure, but that looks like a lot of work... how about a runtime check of the object type?

bu5hm4n added a subscriber: q66.Wed, Sep 11, 3:05 AM

Right now it is a runtime check in the containers, and that check is also kind-of-tested with the spec test suite.

Lets lower this to TODO and speak with @q66 about a template solution ?

zmike added a comment.Wed, Sep 11, 7:44 AM

I think 2. is mostly just an issue for languages with strict type safety. As long as it's possible to do casting then probably it's fine for now.

I'm wondering if we want to change from Efl.Gfx.Entity as the pack object type to just Efl.Object. There's a number of classes (e.g., all the item classes) which don't actually inherit from entity and never will.

Efl.Ui.Item is inheriting from layout ...

zmike added a comment.Wed, Sep 11, 7:55 AM

Oops I was thinking of part

Part cannot be added to the interfaces with Efl.Pack_Linear, so i think that does not matter here ?