Page MenuHomePhabricator

One window !
Closed, ResolvedPublic

Description

There shouldn't be anything different than an efl_ui_win (like why standard ??)

cedric created this task.Mar 30 2017, 2:48 AM

I agree, the Efl.Ui.Window.Standard should be removed from the Eo api.

Following the good python recipe:
"There should be one-- and preferably only one --obvious way to do it."

jpeg added a comment.May 16 2017, 6:18 AM

OK, I have a pending patch to simply remove Efl.Ui.Win.Standard. All windows will be "standard" if their type is BASIC or DIALOG_BASIC, by default, when using efl_add (not when using the legacy APIs).

I don't like the API efl_ui_win_type_set(). It's part of the constructor... but still I don't like it.
In particular some types are not meant to be used:

  • FAKE was made for E and E only,
  • DROPDOWN_MENU, POPUP_MENU, COMBO, DND, TOOLBAR, MENU, UTILITY, SPLASH are not actually used in EFL. They may work as hints for the compositor, depending on the platform (X11, WL, etc...) and the window manager itself of course.

I think those types should be removed from the EO API. What do you think?

jpeg added a comment.Jul 6 2017, 11:27 PM

Questions:

  • Do we actually need "alpha" flag on the window? I think we can remove it. We can check the background color to know if it's opaque or has transparency. The window background rect could be made always visible, since it's behind everything else. Hell we could even read back the color value from the theme and set that as the default color for the window so that X draws it properly (no garbage pixels when the window content takes a while to show up - but a performance cost).

@jpeg Isn't possible for a theme to use an image as bg instead of a rect?
can your automatic discover work with an image? maybe a png image with just some pixels transparent?

jpeg added a comment.Jul 9 2017, 10:48 PM

@jpeg Isn't possible for a theme to use an image as bg instead of a rect?
can your automatic discover work with an image? maybe a png image with just some pixels transparent?

Evas knows if an image has transparent pixels, so that particular point would not be an issue. But as you're pointing out theming would make it extremely hard for EFL to guess if the entire window area is opaque or not... hmm. I guess we'll have to do with the manual flag then :)

cedric raised the priority of this task from TODO to High.Jul 10 2017, 3:29 PM
jpeg added a comment.Jul 27 2017, 11:08 PM

Question.
Can we remove "name" from Efl.Ui.Win and use efl_name instead?
The difference we have here is that the name is unchangeable after creation for a window. And it's visible by the window manager. Wayland support is not implemented yet in master.

jpeg added a comment.Aug 18 2017, 1:25 AM

In fact I've decided to go against this ticket (but in a meaningful way), by splitting off Socket and Inlined into their own classes. Fake is a type to be removed as well (only for legacy), as Ecore_Evas isn't meant to be a part of EO interfaces. The patches shall be merged next week. They can be found in my work branch until then.

jpeg added a comment.Aug 21 2017, 9:37 PM

I think autodel should be ON by default for windows. Also this could be an interface (i'm thinking of things like popup that can be dismissed and then never be deleted but also never visible).

jpeg added a comment.EditedAug 30 2017, 11:23 PM

Remaining to-do:

  • Conformant support (wayland mostly), see T5964
  • Fix duplicated functions: focus_hilight_style, focus, raise
  • Fix generic names: "name", "type", "role"
  • Other generic names: "activate"
jpeg added a comment.EditedNov 16 2017, 2:33 AM

Remaining API's that don't respect EO guidelines:

jpeg closed this task as Resolved.Jan 17 2018, 9:30 PM

Okay. I think this is it.
Stack API is beta. Types I believe are useless (use a subclass). Some methods / properties lack proper documentation. But overall this looks better now.
If you reopen this, please mention specific points to address.

Diffusion added a commit: Restricted Diffusion Commit.Aug 20 2018, 1:01 PM