Commit Graph

88 Commits

Author SHA1 Message Date
Jean-Philippe Andre 8557fe818f input: Move pointer props to Canvas
efl_input_pointer_position is defined by two classes... bad!

Fixes T6066
2017-09-26 17:58:07 +09:00
Cedric BAIL 596dba5fe5 elementary: provide and implement lifecycle event on the window.
pause event means that the window is not visible anymore to any user.
resume is triggered when the window became visible again or just
became visible again.
2017-09-25 15:48:53 -07:00
Jean-Philippe Andre 3617053547 win: Use Eina.Size2D for pointer position
Also rename the function for more consistency.
2017-09-19 10:51:48 +09:00
Daniel Kolesa 78a5ac09f8 elementary: convert to new ownership 2017-09-15 17:05:30 +02:00
Jean-Philippe Andre 6d0957b0a5 widget: Rename focus_manager_factory to create
factory is not a verb :)

Ref T5363
2017-09-13 13:43:55 +09:00
Lukasz Stanislawski 9cf8e75668 elm: rename Elm.Interface.Atspi.Component => Efl.Access.Component
Reviewers: jpeg, cedric

Differential Revision: https://phab.enlightenment.org/D5164
2017-09-12 15:49:29 +09:00
Lukasz Stanislawski dfd17229fd elm: rename Elm.Interface.Atspi.Window => Efl.Access.Window
Reviewers: cedric, jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5162
2017-09-12 15:48:10 +09:00
Jean-Philippe Andre cfe8170624 win: Fixup doc & code of icon_object
Ref T5322
2017-09-01 10:09:37 +09:00
Jean-Philippe Andre 74290355da win: Use array for available_profiles (EO)
The legacy API wraps the EO API.
All tested with "Configuration" test case in elm_test.

Ref T5322
2017-09-01 10:09:37 +09:00
Jean-Philippe Andre 4d6bb96e8d win: Drop calls to lower when using the EO API
Note: The distinction is made on how the window was created, not on
which API is used (evas_object_lower or efl_gfx_stack_lower or
elm_win_lower).

Ref T5322
2017-09-01 10:09:37 +09:00
Jean-Philippe Andre f88f0798ba win: Implement raise from stack (EO)
I think the intercept is not required anymore. All raise functions call
the ecore evas raise function.

Ref T5322
2017-09-01 10:09:37 +09:00
Jean-Philippe Andre b40d8296ff win: Move focus_highlight_animate to widget (EO)
Similar to the previous commits. Moved for consistency.

Ref T5363
Ref T5322
2017-09-01 10:09:37 +09:00
Jean-Philippe Andre 94632f8a44 win: Move focus_highlight_enabled to widget (EO)
This was actually declared in the internal legacy API in widget.
Forwards the calls to the window.

Ref T
2017-09-01 10:09:37 +09:00
Jean-Philippe Andre 0972c49438 win: Merge focus_highlight_style with widget (EO)
Note: elm_test "Focus Style" can be used to test this API. The test case
is a bit broken (overly complex EDC?) but if you're patient you can see
the difference between "glow" and "glow_effect".

Ref T5363
Ref T5322
2017-09-01 10:09:37 +09:00
Jean-Philippe Andre c0d7ea4af0 widget: Rename on_focus to on_focus_update (EO)
on_focus seems to imply that focus was just given to the widget, but
that function is called on any focus change (in and out).

Ref T5363
2017-09-01 10:09:37 +09:00
Jean-Philippe Andre 89492d859b win: Merge focus with elm_widget's (EO)
I believe this should work fine!

Ref T5363
Ref T5322
2017-09-01 10:09:37 +09:00
Jean-Philippe Andre 5cfd698894 win: Remove types socket and fake from EO
Fake: This should never have had the fake_canvas_set API. It already can
not work after efl_finalize. And Ecore_Evas isn't part of EO API so it
doesn't make sense at this point to try to expose the fake window as
part of EO API.

Socket: This is the only type of window that implements socket_listen.
So we can just move this function to a new subclass.

NOTE: Socket & plug are currently broken, even in 1.20 (at least for me)!

Ref T5322
2017-08-23 11:16:45 +09:00
Jean-Philippe Andre e9dffa723d win: Add Efl.Ui.Win_Inlined and remove parent2
Inlined windows are the only use case for parent2. We might as well want
to create a separate subclass for those special windows.

Ref T5322
Ref T5363
2017-08-23 11:16:45 +09:00
Taehyub Kim 94d3fd3d82 win: implement efl_provider_find for EFL_UI_WIN_CLASS
Summary:
Implement efl_provider_find function for efl_ui_win class.
This will support to search window class by efl_provider_find function.

Reviewers: jpeg, cedric, Jaehyun_Cho, thiepha, woohyun, Blackmole

Reviewed By: jpeg, cedric

Differential Revision: https://phab.enlightenment.org/D5045
2017-08-04 10:24:03 +09:00
Jean-Philippe Andre 999dbd9764 eo debug name: Use strbuf instead of slstr
This should be a little bit more efficient, even if more "risky"
in terms of leaks. The final API still looks exactly the same.
2017-08-04 10:24:03 +09:00
Jean-Philippe Andre 569ad0bac4 evas/edje/elm: Override debug_name in core classes
This is really only a demonstration of what kind of information
we can print with efl_debug_name_get(). Hopefully this can help
debugging with printf/ERR logs and even help with live debugging
inside gdb.

This shouldn't be used for other purposes than debugging, as the
exact string format is not defined.

@feature
2017-08-04 10:24:03 +09:00
Mike Blumenkrantz 812be4a43b elm_win: do not implement aspect_get()
this breaks aspect hints.

@fix
2017-07-28 15:40:47 -04:00
Jean-Philippe Andre 9baa8752a9 win: Fix ABI compatibility for grab modifiers
This fixes an ABI change when moving from unsigned long long
modifier mask to a simple enum. This is a fix for the release
of EFL 1.20.
2017-07-17 14:24:30 +09:00
Mike Blumenkrantz 81adac88dc elm_win: manually create a wl2 window for FAKE wins under wayland
this enables elm_cnp to function using protocol
2017-07-07 15:22:23 -04:00
Jean-Philippe Andre 8ba83b102f win: Implement Efl.Canvas device & seat get
By name or id
2017-06-15 17:35:44 +09:00
Marcel Hollerbach af858d1d93 elm_widget: add factory method to the widget
with this function you can trap the creation of the mangers, and change
the behaviour as you need it. For example returning a custom manager.
2017-06-09 10:16:19 +02:00
Jean-Philippe Andre 55b529cebc evas/elm: Make group_add/group_del internal functions
This hides those two legacy functions from the EO API.
2017-05-19 14:07:00 +09:00
Jean-Philippe Andre 781594088e evas: Make Efl.Canvas.Object.legacy_ctor internal
Continuing...
2017-05-19 14:07:00 +09:00
Jean-Philippe Andre 093938e5d9 win: Remove special class Efl.Ui.Win.Standard
All windows should be standard, really. Except when using legacy
elm_win_add() or if type_set() was called with a specific type.

I dislike type_set...

Ref T5322
2017-05-17 10:39:43 +09:00
Jean-Philippe Andre 2d6f53f2b9 evas: Replace Evas.Modifier_Mask with Efl.Input enums
This removes Evas.Modifier_Mask from EO.

This introduces two new types instead:
 - Efl.Input.Modifier
 - Efl.Input.Lock

Those are enums, not strings, containing all the known and
currently supported lock and modifier keys. The enums are
bit masks.

This effectively removes the ability for an application to
create and handle specific modifier or lock keys - with EO
API (legacy compatibility is unchanged, of course). I wonder
who ever required this?
2017-05-16 20:47:48 +09:00
Marcel Hollerbach 9aa7c63b2f efl_ui_win: make it a focus manager
Added a focusmanager with the window itself as the root.
2017-04-20 14:38:57 +02:00
Shinwoo Kim 7a2aeec9ce elementary: win - override atspi component get interface
The efl_ui_win overrides _elm_interface_atspi_component_extents_get to give
correct value if screen_coord is EINA_FALSE which means relative position.
The efl_ui_win has given its object geometry value + ecore evas geometry value.
The object geometry value was equal to the ecore evas geometry value, so the
relative position was not correct(twice of ecore evas geometry value).
2017-04-07 13:43:00 +09:00
Jean-Philippe Andre c234422357 win: Mark unstable APIs as @beta (stack API)
We have a tag for unstable API, use it. It'll be visible in the
doc and force users to add the macro before being able to compile
code.

This amends d8dd685966.
2017-03-29 09:51:28 +09:00
Carsten Haitzler d8dd685966 window stacks - make these unstable bta api for now
until settled, make these as beta for now.
2017-03-28 13:51:39 +09:00
Chris Michael 23eb88709b elementary: Fix minor typo in efl_ui_win.eo
Small patch to fix a minor typo in the "noblank" property of
efl_ui_win.eo

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-03-14 10:51:54 -04:00
Carsten Haitzler 11432d42a7 elm theme/test - add start of nviframe window style and test it 2017-01-12 20:21:04 +09:00
Jee-Yong Um 6d0a2398ad Elm.Widget: rename "event.*" methods to solve name conflict
Summary:
Elm.Widget.event_callback_add conflicts with Efl.Object.event_callback_add.
To solve this problem, "widget_" prefix is added to methods starting with
"event".

Reviewers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4521
2017-01-03 10:59:49 +09:00
Daniel Kolesa 45e6a3e86a eolian: disallow duplicate implements 2017-01-02 16:09:04 +01:00
Daniel Kolesa 6d9d15d35c elm: use new property implement syntax everywhere 2016-12-27 19:16:02 +01:00
Carsten Haitzler cc5dd2bd87 efl window stacks - implement pop to for x11 in the portable way 2016-12-22 15:17:43 +09:00
Stefan Schmidt 343cec01e9 docs: elm: fix stack_base property doc to cover getter function as well
Documenting the property itself will make sure getter as well as setter
are documented.
2016-12-20 09:12:27 +01:00
Carsten Haitzler 39af0d88aa efl stack wins - add base property/boolean to indicate win is a base
part of adding stacks...
2016-12-20 10:57:55 +09:00
Carsten Haitzler 75a429328a efl_ui_win - teamwork really has issues and i think needs deprecation
teamwork api in elm win (efl_ui_win) has a few issues:

1. it directly ddigs into ecore_wl2 and uses internal headers to use
zwp_* api's directly... which effectively tied elementary directly to
libwayland and thats not a good thing - thats why ecore_wl2 exists -
to act as a layer in between
2. the only thing that supports it is e and only wiht a module and
there is no fallback code in elm to work outside this environment, so
it's kind of broken by design and will not actually reliably work
3. from a stability and security point of view, and api and protocol
that allow a client to ask your wm/compositor to open ANY url - go
make a network request possibly to a hostile url/site is bad. needing
to handle so so so so many protocols, file types etc. etc. is going to
lead to issues that SHOULD at least be isolated in the app, but now it
spreads into your wm/compositor too. :(
4. there is ZERO benefit to asking the wm to do this. the app is
using efl already. it already has all the same abilities with the same
libraries to download/display etc. so why doesnt the app do it itself?
5. doesnt work in windows, osx, framebuffer (fbcon or drm)... only in
x11 and wayland. (and then only with e + module)
6. there is no way to detect if it's going to work and write your own
fallback (which shouldnt be needed/done anyway).

nice work and enthusiasm on making teamwork but it just isn't the right
thing - not in its current form and not by design (security reasons) :(

@deprecate
2016-12-16 16:16:53 +09:00
Carsten Haitzler 48ac4747b1 efl_ui_win - add window "view stack" api's and ability
this adds the a stack of windows (view stack, something like naviframe
but using multiple windows instead) to elementary allowing windows to
be put into a stack and treated as one "application" when ijn such a
stack with the newest window on top being the active/focused one (or
should be). this allows for special show/hide animations as well as
possibly special sizing policies and placement policies.

@feature
2016-12-16 16:16:53 +09:00
Jean-Philippe Andre 8a40c063ce win: Implement max size hint support
evas_object_size_hint_max() would not work on a window, unless
it somehow managed to not size itself (which would be another
issue). This patch allows apps to call size_hint_max_set() on
a window. A test case is provided in elm_test (Dialog).

@feature
2016-11-30 15:15:02 +09:00
Jean-Philippe Andre c31a70a4f5 win: Add content_set API for window main content
The idea is to not have resize object in a stack anymore,
but a couple of swallows in the frame and if the stack of
resize objects is wanted, then the user can still explicitely
create it.
2016-11-23 13:04:13 +09:00
Jean-Philippe Andre 0e52264ae0 win: Add background part to the win border
Use Efl.Part for window to manipulate the background.

Two part names are used in EDC:
 - elm.rect.background
 - elm.swallow.background

For apps the part name is only "background".

To set a solid color background (alpha is ok):
 efl_gfx_color_set(efl_part(win, "background"), r, g, b, a);

To set an image:
 efl_file_set(efl_part(win, "background"), "image.jpg", NULL);

To set an object:
 efl_content_set(efl_part(win, "background"), subobj);

The solid bg is invisible by default, will become visible and use
COPY render mode if a color is set. Standard window uses the
swallow part.

@feature
2016-11-23 13:04:12 +09:00
Stefan Schmidt 1a1aea4ab2 docs: efl_ui_win: fill gaps in efl_ui_win eo file documentation 2016-11-22 10:41:04 +01:00
Jean-Philippe Andre 4f3c8bc433 win: Adjust documentation & test for a new API
This amends bfea8c8fca to use better EO syntax in the
doc, as well as fix warnings in the test case. This also changes
move to be 1 rather than 0.
2016-11-22 15:37:33 +09:00
Ji-Youn Park bfea8c8fca efl_ui_win: add function client can start moving or resizing the window.
The result of this API can only guarantee that the request has been forwared to the server,
    In fact, there is no guarantee that the request can be processed by the server.

    In order to use this API correctly, avoid the following conditions.
    (The following situations will return a failure)

    1. Calling a function in the absence of a touch(mouse) down event.
    2. Calling the function twice more than once before the touch(mouse) up event.
    3. Calling the function when the elm win already resizing or moving the window.
    4. Calling the function using a combination of unsupported modes.

    Right usage
    1. touch(mouse) down event
    2. efl_ui_win_move_resize_start only once using the supported mode combination.
    3. touch(mouse) up event

    If a touch(mouse) up event occurs after calling the function, it automatically ends the window move and resize operation.

    Since there are some non-exclusive modes, you can use a combination of modes.(ELM_WIN_MOVE_RESIZE_MOVE is exclusive with others)
    However, Some combination of mode is limited for technical reasons.
    At present, only the following nine combinations are allowed.
    For more information, see the Elm.Win.Move_Resize_Mode.

    1. EFL_UI_WIN_MOVE_RESIZE_MOVE
    2. EFL_UI_WIN_MOVE_RESIZE_TOP
    3. EFL_UI_WIN_MOVE_RESIZE_BOTTOM
    4. EFL_UI_WIN_MOVE_RESIZE_LEFT
    5. EFL_UI_WIN_MOVE_RESIZE_RIGHT
    6. EFL_UI_WIN_MOVE_RESIZE_TOP | EFL_UI_WIN_MOVE_RESIZE_LEFT
    7. EFL_UI_WIN_MOVE_RESIZE_TOP | EFL_UI_WIN_MOVE_RESIZE_RIGHT
    8. EFL_UI_WIN_MOVE_RESIZE_BOTTOM | EFL_UI_WIN_MOVE_RESIZE_LEFT
    9. EFL_UI_WIN_MOVE_RESIZE_BOTTOM | EFL_UI_WIN_MOVE_RESIZE_RIGHT
2016-11-21 20:21:15 +08:30