There shouldn't be anything different than an efl_ui_win (like why standard ??)
- Restricted Diffusion Commit
rEFL934f23c9be2b: win: Remove unusable type "dnd"
rEFL50a082cab9fb: win: Remove "ioerr" event
rEFL372bf108a7b0: win: Make wm_available_rotations simpler for EO
rEFL313eb563b50b: win: Rename specific APIs to avoid clashes
rEFLcfe8170624c5: win: Fixup doc & code of icon_object
rEFLf88f0798bafd: win: Implement raise from stack (EO)
rEFL74290355dab1: win: Use array for available_profiles (EO)
rEFL4d6bb96e8d37: win: Drop calls to lower when using the EO API
rEFLb40d8296ffe5: win: Move focus_highlight_animate to widget (EO)
rEFL0972c49438f4: win: Merge focus_highlight_style with widget (EO)
rEFL89492d859ba6: win: Merge focus with elm_widget's (EO)
rEFL5cfd6988946d: win: Remove types socket and fake from EO
rEFLe9dffa723d82: win: Add Efl.Ui.Win_Inlined and remove parent2
rEFL093938e5d900: win: Remove special class Efl.Ui.Win.Standard
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?
- 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).
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 :)
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.
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.
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).
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.