Refactoring homescreen.
[profile/ivi/ico-uxf-homescreen.git] / lib / system-controller / CicoSCWindowController.h
1 /*
2  * Copyright (c) 2013, TOYOTA MOTOR CORPORATION.
3  *
4  * This program is licensed under the terms and conditions of the
5  * Apache License, version 2.0.  The full text of the Apache License is at
6  * http://www.apache.org/licenses/LICENSE-2.0
7  *
8  */
9
10 //==========================================================================
11 /**
12  *  @file   CicoSCWindowController.h
13  *
14  *  @brief  
15  */
16 //==========================================================================
17 #ifndef __CICO_SC_WINDOW_CONTROLLER_H__
18 #define __CICO_SC_WINDOW_CONTROLLER_H__
19
20 #include <vector>
21 #include <map>
22
23 using namespace std;
24
25 #include "CicoSCWlWinMgrIF.h"
26
27 //==========================================================================
28 //  Forward declaration
29 //==========================================================================
30 class CicoSCCommand;
31 class CicoSCDisplay;
32 class CicoSCLayer;
33 class CicoSCWindow;
34 class CicoSCResourceManager;
35
36 //--------------------------------------------------------------------------
37 /**
38  *  @brief  window controller
39  */
40 //--------------------------------------------------------------------------
41 class CicoSCWindowController : public CicoSCWlWinMgrIF
42 {
43 public:
44     // default constructor
45     CicoSCWindowController();
46
47     // copy constructor
48     virtual ~CicoSCWindowController();
49
50     int initDB(void);
51
52     void handleCommand(const CicoSCCommand * cmd);
53
54     //
55     void setResourceManager(CicoSCResourceManager *resMgr);
56
57     int show(int         surfaceid,
58              const char  *animation,
59              int         animationTime);
60
61     int hide(int         surfaceid,
62              const char  *animation,
63              int         animationTime);
64
65     int resize(int        surfaceid,
66                int        w,
67                int        h,
68                const char *animation,
69                int        animationTime);
70
71     int move(int        surfaceid,
72              int        nodeid,
73              int        x,
74              int        y,
75              const char *animation,
76              int        animationTime);
77
78     int setGeometry(int        surfaceid,
79                     int        nodeid,
80                     int        x,
81                     int        y,
82                     int        w,
83                     int        h,
84                     const char *resizeAnimation,
85                     int        resizeAnimationTime,
86                     const char *moveAnimation,
87                     int        moveAnimationTime);
88
89     int raise(int surfaceid,
90              const char  *animation,
91              int         animationTime);
92
93     int lower(int surfaceid, const char *animation, int animationTime);
94
95     int setWindowLayer(int surfaceid, int layerid);
96
97     int showLayer(int displayid, int layerid);
98
99     int hideLayer(int displayid, int layerid);
100
101     void setLayerVisible(int layerid, int visible);
102
103     int active(int surfaceid, int target);
104
105     int mapSurface(int surfaceid, int framerate);
106
107     int unmapSurface(int surfaceid);
108
109     //
110     virtual void createdCB(void *data,
111                            struct ico_window_mgr *ico_window_mgr,
112                            uint32_t surfaceid,
113                            const char *winname,
114                            int32_t pid,
115                            const char *appid);
116
117     virtual void nameCB(void *data,
118                         struct ico_window_mgr *ico_window_mgr,
119                         uint32_t surfaceid,
120                         const char *winname);
121
122     virtual void destroyedCB(void *data,
123                              struct ico_window_mgr *ico_window_mgr,
124                              uint32_t surfaceid);
125
126     virtual void visibleCB(void *data,
127                            struct ico_window_mgr *ico_window_mgr,
128                            uint32_t surfaceid,
129                            int32_t visible,
130                            int32_t raise,
131                            int32_t hint);
132
133     virtual void configureCB(void *data,
134                              struct ico_window_mgr *ico_window_mgr,
135                              uint32_t surfaceid,
136                              uint32_t node,
137                              uint32_t layer,
138                              int32_t x,
139                              int32_t y,
140                              int32_t width,
141                              int32_t height,
142                              int32_t hint);
143
144     virtual void activeCB(void *data,
145                           struct ico_window_mgr *ico_window_mgr,
146                           uint32_t surfaceid,
147                           int32_t active);
148
149     virtual void layerVisibleCB(void *data,
150                                 struct ico_window_mgr *ico_window_mgr,
151                                 uint32_t layer,
152                                 int32_t visible);
153
154     virtual void appSurfacesCB(void *data,
155                                struct ico_window_mgr *ico_window_mgr,
156                                const char *appid,
157                                struct wl_array *surfaces);
158
159     virtual void mapSurfaceCB(void *data,
160                               struct ico_window_mgr *ico_window_mgr,
161                               int32_t event,
162                               uint32_t surfaceid,
163                               int32_t width,
164                               int32_t height,
165                               int32_t stride,
166                               int32_t format);
167
168     virtual void outputGeometryCB(void *data,
169                                   struct wl_output *wl_output,
170                                   int32_t x,
171                                   int32_t y,
172                                   int32_t physical_width,
173                                   int32_t physical_height,
174                                   int32_t subpixel,
175                                   const char *make,
176                                   const char *model,
177                                   int32_t transform);
178
179     virtual void outputModeCB(void *data,
180                               struct wl_output *wl_output,
181                               uint32_t flags,
182                               int32_t width,
183                               int32_t height,
184                               int32_t refresh);
185
186 private:
187     // assignment operator
188     CicoSCWindowController& operator=(const CicoSCWindowController &object);
189
190     // copy constructor
191     CicoSCWindowController(const CicoSCWindowController &object);
192
193     // find window obeject by surface id
194     CicoSCWindow* findWindow(int surfaceid);
195
196     // find layer obeject by display id and layer id
197     CicoSCLayer* findLayer(int displayid, int layerid);
198
199 private:
200     CicoSCResourceManager *m_resMgr;
201
202     // window obejct list
203     map<unsigned int, CicoSCWindow*> m_windowList;
204
205     // display objet list
206     vector<CicoSCDisplay*>   m_displayList;
207
208 };
209 #endif  // __CICO_SC_WINDOW_CONTROLLER_H__
210 // vim:set expandtab ts=4 sw=4: