summaryrefslogtreecommitdiff
path: root/src/lib/efl_wl/Efl_Wl.h
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2017-06-30 14:59:21 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2017-06-30 14:59:55 -0400
commitc2fde93c9ef1108c0809a538cf2ec482ed8369a9 (patch)
treed9879e4ebea4d25cda1a6cc1268461ad0d669c3b /src/lib/efl_wl/Efl_Wl.h
parent3775a9645da7e92599babccfe8454304cec367b7 (diff)
efl_wl: a multiseat wayland compositor in an evas smart object
build when wayland support is enabled and provide two test/demo cases beta api @feature Reviewed-By: Cedric BAIL <cedric@osg.samsung.com>
Diffstat (limited to '')
-rw-r--r--src/lib/efl_wl/Efl_Wl.h111
1 files changed, 111 insertions, 0 deletions
diff --git a/src/lib/efl_wl/Efl_Wl.h b/src/lib/efl_wl/Efl_Wl.h
new file mode 100644
index 0000000000..2de79e2e96
--- /dev/null
+++ b/src/lib/efl_wl/Efl_Wl.h
@@ -0,0 +1,111 @@
1#ifdef EFL_BETA_API_SUPPORT
2
3#ifndef EFL_WL_H
4# define EFL_WL_H
5#include <Evas.h>
6#include <Ecore.h>
7
8#ifdef EAPI
9# undef EAPI
10#endif
11
12#ifdef _WIN32
13# ifdef EFL_EINA_BUILD
14# ifdef DLL_EXPORT
15# define EAPI __declspec(dllexport)
16# else
17# define EAPI
18# endif /* ! DLL_EXPORT */
19# else
20# define EAPI __declspec(dllimport)
21# endif /* ! EFL_EINA_BUILD */
22#else
23# ifdef __GNUC__
24# if __GNUC__ >= 4
25# define EAPI __attribute__ ((visibility("default")))
26# else
27# define EAPI
28# endif
29# else
30# define EAPI
31# endif
32#endif
33
34/**
35 * @defgroup Efl_Wl_Group EFL Wayland
36 *
37 * A multiseat Wayland compositor in an Evas object.
38 * All toplevel windows will be sized to the size of the compositor object.
39 * @since 1.20
40 * @{
41 */
42
43/**
44 * @typedef Efl_Wl_Rotation
45 * The rotation to apply to the compositor's internal wl_output
46 */
47typedef enum
48{
49 EFL_WL_ROTATION_0,
50 EFL_WL_ROTATION_90,
51 EFL_WL_ROTATION_180,
52 EFL_WL_ROTATION_270
53} Efl_Wl_Rotation;
54
55/**
56 * Add a compositor widget to the given canvas.
57 *
58 * @param e The canvas
59 * @return The compositor object, @c NULL on failure
60 */
61EAPI Evas_Object *efl_wl_add(Evas *e);
62
63/**
64 * Run a command in the compositor widget.
65 *
66 * @note If GL is available, the ELM_ACCEL environment variable will be
67 * set to "gl" while executing the command.
68 *
69 * @param obj The compositor widget
70 * @param cmd The command to run
71 * @return The Ecore_Exe from the executed process, @c NULL on failure
72 */
73EAPI Ecore_Exe *efl_wl_run(Evas_Object *obj, const char *cmd);
74
75/**
76 * Put the bottom-most toplevel window on top and apply focus to it
77 *
78 * @param obj The compositor widget
79 * @return EINA_TRUE if the window stacking was changed
80 */
81EAPI Eina_Bool efl_wl_next(Evas_Object *obj);
82
83/**
84 * Put the second top-most toplevel window on top and apply focus to it
85 *
86 * @param obj The compositor widget
87 * @return EINA_TRUE if the window stacking was changed
88 */
89EAPI Eina_Bool efl_wl_prev(Evas_Object *obj);
90
91/**
92 * Set rotation and flip for the compositor's output
93 *
94 * @param obj The compositor widget
95 * @param rot The rotation to apply
96 * @param rtl If set, the output will apply a flip around the Y axis
97 * @note rtl is equivalent to WL_OUTPUT_TRANSFORM_FLIPPED and rotations are applied
98 * on top
99 */
100EAPI void efl_wl_rotate(Evas_Object *obj, Efl_Wl_Rotation rot, Eina_Bool rtl);
101
102/**
103 * Set the scale factor for the compositor's output
104 *
105 * @param obj The compositor widget
106 * @param scale The scale factor to set
107 */
108EAPI void efl_wl_scale_set(Evas_Object *obj, double scale);
109#endif
110
111#endif