Languages

Menu
Sites
Language
Screen Filter

Hi,

I want to implement a filter screen.
How can I get the top-level parent window to Tizen?

Thank you.

 

 

[Reference]------------------------------------------------------------------------------------------

android source code (git)

https://github.com/hathibelagal/android-screen-filter/tree/master/src/com/hathy/shade

 

android app

http://www.apkask.com/android/download-blue-light-screen-filter-apk.html

Edited by: 시언 박 on 28 Jul, 2015

Responses

6 Replies
Seongwon Cho

Hi,

This is guide how to make a notification window in Tizen.

https://developer.tizen.org/development/tutorials/native-application/ui/efl-util

https://developer.tizen.org/dev-guide/2.3.0/org.tizen.native.mobile.apireference/group__CAPI__EFL__UTIL__MODULE.html

Please make sure...

1. Make ELM Window as ELM_WIN_NOTIFICATION type

2. Set Notification Level to ELM Window by

efl_util_set_notification_window_level()

3. Set Privilege

http://tizen.org/privilege/window.priority.set

 

시언 박

Hi, 

my first code.

Evas_Object *win = ad->win;
win = elm_win_util_standard_add(PACKAGE, PACKAGE);

elm_win_alpha_set(win, EINA_TRUE);
Evas *e = evas_object_evas_get(win);

Evas_Object *bg = evas_object_rectangle_add(e);
evas_object_color_set(bg, 255, 0, 0, 100);

evas_object_move(bg, 0, 0);
evas_object_resize(bg, 480, 800);

evas_object_show(bg);
evas_object_show(win);

This code simply had floated a transparent window. So I apply the color.
The window is the same sense of the filter. But I can not touch.

 

So, I made a notification window in Tizen.

    Evas_Object *eo;
	efl_util_error_e error;
	char *name = "Notification window";

	// Create notification window
	eo = elm_win_add(NULL, name, ELM_WIN_NOTIFICATION);
	if (!eo) return true;

	// Set notification level
	error = efl_util_set_notification_window_level(eo, EFL_UTIL_NOTIFICATION_LEVEL_1);
	elm_win_title_set(eo, name);
	elm_win_autodel_set(eo, EINA_TRUE);
	evas_object_smart_callback_add(eo, "delete,request", win_delete_request_cb, NULL);
	if (error != EFL_UTIL_ERROR_NONE) {
		// Do error handling
	}

	elm_win_alpha_set(eo, EINA_TRUE);

	evas_object_show(eo);

It also does not touch.

It seems simply to change the level of the window.

The screen filter should respond to the touch.

Is there any way?

 

 

 

 

 

 

Seongwon Cho

Even you make a notification window

You should receive touch event if you add event callback function.

 

And ...

When you make argb window please call elm_win_alpha_set() as soon as you make a EFL Window.

I mean

Evas_Object *win = elm_win_add ();
if (win)
   elm_win_alpha_set(win, EINA_TRUE);
...

 

 

시언 박

Thank you for your comment !

I understood.
I've implemented a callback function.
But it will not be able to apply an event to Normal Winow.

화면에 필터처럼 투명한 윈도우를 구현하는 건 했습니다. 

대다수의 윈도우는 레벨 1,2에 존재하기 때문에 필터 윈도우(가제)는 레벨3으로 설정하였습니다.

레벨 3에 있는 필터 윈도우에 터치를 하여 이벤트를 발생시키면 노말 또는 레벨 1,2의 윈도우에 있는(런처나, 다른 앱들) 버튼, 스크롤 등이 동작해야 하는데 발생한 이벤트를 밑의 윈도우에 넘겨줄 방법이 터치 이벤트에 대한 콜백 함수를 구현하면 되는 건지 궁금합니다.

코맨트에 달아주신 방법으로 터치 이벤트를 해보려했는데, 감이 잡히지 않고 어떻게 함수를 구현해야 밑의 윈도우에 접근할 수 있을지 몰라서 터치 관련해서 API를 계속 보면서 API를 적용해보고 있는 상태입니다.

제가 영어가 부족하여 한글을 쓰는 것이 명확하게 의사를 전달할 수 있을 것 같아서 한글로 댓글을 적은 점 양해 부탁드립니다.

 

Seongwon Cho

확실히 단언해서 말씀 드릴 수는 없지만...

제 기억으로는 Tizen 2.3 public api 로는 원하시는 해당 기능이 제공되지 않을 것 같습니다.

low level api를 이용하시면 구현하실 수는 있겠지만 Tizen store 등록이 되지 않을 겁니다.

 

I can't make sure but ...

I think no public APIs in Tizen2.3.

Even you make your application with more low level APIs but your application can't register to Tizen Store.

시언 박

Thank you !

Have a good time ~!!!