Tizen 2.0 Release
[profile/ivi/libscl-ui.git] / scl / gwes / efl / sclwindows-efl.h
1 /*
2  * Copyright 2012-2013 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Flora License, Version 1.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://floralicense.org/license/
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 #include "sclwindows.h"
19 #include <Evas.h>
20 #include <Eina.h>
21
22 #ifndef __SCL_WINDOWS_EFL_H__
23 #define __SCL_WINDOWS_EFL_H__
24
25 typedef enum {
26     EFLOBJECT_NONE,
27     EFLOBJECT_IMAGE,
28     EFLOBJECT_CLIPOBJECT,
29     EFLOBJECT_TEXTBLOCK,
30     EFLOBJECT_RECTANGLE,
31 } EFLOBJECT_TYPE;
32
33 namespace scl
34 {
35 typedef struct {
36     EFLOBJECT_TYPE type;
37     SclRectangle position;
38     Evas_Object *object;
39     char *etc_info;
40     sclboolean extracted;
41     void *data;
42 } EFLObject;
43 class CSCLWindowsImplEfl : public CSCLWindowsImpl
44 {
45 public :
46     CSCLWindowsImplEfl();
47     ~CSCLWindowsImplEfl();
48
49     sclwindow create_base_window(const sclwindow parent, SclWindowContext *winctx, const scl16 width, const scl16 height);
50     sclwindow create_window(const sclwindow parent, SclWindowContext *winctx, const scl16 width, const scl16 height);
51     sclwindow create_magnifier_window(const sclwindow parent, SclWindowContext *winctx, const scl16 width, const scl16 height);
52     sclwindow create_dim_window(const sclwindow parent, SclWindowContext *winctx, const scl16 width, const scl16 height);
53     bool destroy_window(sclwindow window);
54     void show_window(const sclwindow window, sclboolean queue);
55     void hide_window(const sclwindow window,  const sclboolean fForce = FALSE);
56     void move_window(const sclwindow window, const scl16 x, const scl16 y);
57     void resize_window(const sclwindow window, const scl16 width, const scl16 height);
58     void move_resize_window(const sclwindow window, const scl16 x, const scl16 y, const scl16 width, const scl16 height);
59     void update_window(const sclwindow window, const scl16 x = 0, const scl16 y = 0, const scl16 width = 0, const scl16 height = 0);
60     void set_window_rotation(const sclwindow window, const SCLRotation rotation);
61     void show_message_box(const sclwindow parent, const scl8 msgType, sclchar* title, sclchar* msg);
62     sclboolean get_window_rect(const sclwindow window, SclRectangle *rect);
63     void set_parent(const sclwindow parent, const sclwindow window);
64     void set_keep_above(const sclwindow window, const sclboolean keepabove);
65
66     /* EFL specific utility functions */
67     void set_window_accepts_focus(const sclwindow window, const sclboolean accepts);
68 };
69 } /* End of scl namespace */
70 #endif