From 1ed46d09fb9de5bd1058de81a807f61ff49ec91e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=83=81=EC=A7=84?= Date: Fri, 12 Feb 2010 05:31:26 +0000 Subject: [PATCH] =?UTF-8?q?From:=20=EC=9D=B4=EC=83=81=EC=A7=84=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I am attaching another patches for transparent window. 1. Use RGB Visual. 2. Set destination_alpha in ecore_evas for alpha composite in evas. 3. add Function - Ecore_Evas_Engine_Func->fn_transparent_set - ecore_evas_transparent_set , ecore_evas_transparent_get - elm_win_transparent_set, elm_win_transparent_get SVN revision: 46106 --- legacy/elementary/src/lib/Elementary.h.in | 2 ++ legacy/elementary/src/lib/elm_win.c | 28 +++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/legacy/elementary/src/lib/Elementary.h.in b/legacy/elementary/src/lib/Elementary.h.in index 1897d3694c..1a17d5a7d1 100644 --- a/legacy/elementary/src/lib/Elementary.h.in +++ b/legacy/elementary/src/lib/Elementary.h.in @@ -257,6 +257,8 @@ extern "C" { EAPI void elm_win_shaped_set(Evas_Object *obj, Eina_Bool shaped); EAPI Eina_Bool elm_win_shaped_get(Evas_Object *obj); EAPI void elm_win_alpha_set(Evas_Object *obj, Eina_Bool alpha); + EAPI Eina_Bool elm_win_transparent_get(Evas_Object *obj); + EAPI void elm_win_transparent_set(Evas_Object *obj, Eina_Bool transparent); EAPI Eina_Bool elm_win_alpha_get(Evas_Object *obj); EAPI void elm_win_override_set(Evas_Object *obj, Eina_Bool override); EAPI Eina_Bool elm_win_override_get(Evas_Object *obj); diff --git a/legacy/elementary/src/lib/elm_win.c b/legacy/elementary/src/lib/elm_win.c index f90ab534c6..3a6ac19e3f 100644 --- a/legacy/elementary/src/lib/elm_win.c +++ b/legacy/elementary/src/lib/elm_win.c @@ -634,6 +634,34 @@ elm_win_alpha_get(Evas_Object *obj) return ecore_evas_alpha_get(win->ee); } +EAPI void +elm_win_transparent_set(Evas_Object *obj, Eina_Bool transparent) +{ + Elm_Win *win; + if (strcmp(elm_widget_type_get(obj), "win")) return; + win = elm_widget_data_get(obj); + if (!win) return; + + if (win->xwin) + { + ecore_evas_transparent_set(win->ee, transparent); + _elm_win_xwin_update(win); + } + else + ecore_evas_transparent_set(win->ee, transparent); +} + +EAPI Eina_Bool +elm_win_transparent_get(Evas_Object *obj) +{ + Elm_Win *win; + if (strcmp(elm_widget_type_get(obj), "win")) return EINA_FALSE; + win = elm_widget_data_get(obj); + if (!win) return EINA_FALSE; + + return ecore_evas_transparent_get(win->ee); +} + EAPI void elm_win_override_set(Evas_Object *obj, Eina_Bool override) {