diff options
author | Mike Blumenkrantz <zmike@osg.samsung.com> | 2017-06-30 14:59:21 -0400 |
---|---|---|
committer | Mike Blumenkrantz <zmike@osg.samsung.com> | 2017-06-30 14:59:55 -0400 |
commit | c2fde93c9ef1108c0809a538cf2ec482ed8369a9 (patch) | |
tree | d9879e4ebea4d25cda1a6cc1268461ad0d669c3b /src/lib/efl_wl/Efl_Wl.h | |
parent | 3775a9645da7e92599babccfe8454304cec367b7 (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 'src/lib/efl_wl/Efl_Wl.h')
-rw-r--r-- | src/lib/efl_wl/Efl_Wl.h | 111 |
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 | */ | ||
47 | typedef 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 | */ | ||
61 | EAPI 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 | */ | ||
73 | EAPI 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 | */ | ||
81 | EAPI 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 | */ | ||
89 | EAPI 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 | */ | ||
100 | EAPI 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 | */ | ||
108 | EAPI void efl_wl_scale_set(Evas_Object *obj, double scale); | ||
109 | #endif | ||
110 | |||
111 | #endif | ||