summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFabio Mello <fabio.mello@intel.com>2014-02-14 10:35:57 -0200
committerSemun Lee <sm79.lee@samsung.com>2014-03-07 13:56:03 +0900
commit084d912cb688c5a9257b3446b2f5f40260d16c6f (patch)
tree313e9ac9cb29eec80883f89781e62553d40e920d /src
parent92210284ef62357b7a08fbd973d291ee1afe04ec (diff)
downloadui-gadget-1-084d912cb688c5a9257b3446b2f5f40260d16c6f.tar.gz
ui-gadget-1-084d912cb688c5a9257b3446b2f5f40260d16c6f.tar.bz2
ui-gadget-1-084d912cb688c5a9257b3446b2f5f40260d16c6f.zip
Apps should not require ecore_x.
The current UG_INIT_EFL() macro forces the applications who uses it to depend on ecore_x. This patch uses a higher level of abstraction in this macro, this approach lets ui-gadget-1 handle the display server without expose this to its dependents. Signed-off-by: Leandro Dorileo <leandro.maciel.dorileo@intel.com> Signed-off-by: Fabio Mello <fabio.mello@intel.com> Conflicts: CMakeLists.txt Change-Id: I9a1683df1ee64b2d997b0edfedc6bfc695aed9e7
Diffstat (limited to 'src')
-rw-r--r--src/manager.c11
-rw-r--r--src/ug.c15
2 files changed, 26 insertions, 0 deletions
diff --git a/src/manager.c b/src/manager.c
index 015e1eb..5c9cbed 100644
--- a/src/manager.c
+++ b/src/manager.c
@@ -29,6 +29,7 @@
#include <utilX.h>
#include <X11/Xatom.h>
#include <X11/Xutil.h>
+#include <Ecore_X.h>
#endif
#include <Ecore.h>
@@ -910,6 +911,16 @@ int ugman_init(Display *disp, Window xid, void *win, enum ug_option opt)
}
#endif
+int ugman_init_efl(Evas_Object *win, enum ug_option opt)
+{
+#ifndef WAYLAND
+ Ecore_X_Window xwin = elm_win_xwindow_get(win);
+ if (xwin)
+ return ugman_init((Display *)ecore_x_display_get(), xwin, win, opt);
+#endif
+ return -1;
+}
+
int ugman_resume(void)
{
/* RESUME */
diff --git a/src/ug.c b/src/ug.c
index af5bc47..60719bc 100644
--- a/src/ug.c
+++ b/src/ug.c
@@ -111,6 +111,21 @@ UG_API int ug_init(Display *disp, Window xid, void *win, enum ug_option opt)
}
#endif
+UG_API int ug_init_efl(Evas_Object *win, enum ug_option opt)
+{
+ if (!win) {
+ _ERR("ug_init_efl() failed: Invalid arguments");
+ return -1;
+ }
+
+ if (opt < UG_OPT_INDICATOR_ENABLE || opt >= UG_OPT_MAX) {
+ _ERR("ug_init_efl() failed: Invalid option");
+ return -1;
+ }
+
+ return ugman_init_efl(win, opt);
+}
+
UG_API int ug_pause(void)
{
return ugman_pause();