Addition of the window animation interface.
[profile/ivi/ico-uxf-weston-plugin.git] / src / ico_ivi_shell.h
1 /*
2  * Copyright © 2010-2011 Intel Corporation
3  * Copyright © 2008-2011 Kristian Høgsberg
4  * Copyright © 2013 TOYOTA MOTOR CORPORATION.
5  *
6  * Permission to use, copy, modify, distribute, and sell this software and
7  * its documentation for any purpose is hereby granted without fee, provided
8  * that the above copyright notice appear in all copies and that both that
9  * copyright notice and this permission notice appear in supporting
10  * documentation, and that the name of the copyright holders not be used in
11  * advertising or publicity pertaining to distribution of the software
12  * without specific, written prior permission.  The copyright holders make
13  * no representations about the suitability of this software for any
14  * purpose.  It is provided "as is" without express or implied warranty.
15  *
16  * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
17  * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
18  * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
19  * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
20  * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
21  * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
22  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
23  */
24 /**
25  * @brief   Public functions in ico_ivi_shell Weston plugin
26  *
27  * @date    Feb-08-2013
28  */
29
30 #ifndef _ICO_IVI_SHELL_H_
31 #define _ICO_IVI_SHELL_H_
32
33 struct shell_surface;
34
35 /* max length                           */
36 #define ICO_WINDOW_ANIMATION_LEN    20          /* length of window animation name  */
37 /* option flag                          */
38 #define ICO_OPTION_FLAG_UNVISIBLE   0x00000001  /* unvisible control    */
39 /* client attribute                     */
40 #define ICO_CLEINT_ATTR_NOCONFIGURE 0           /* client no need configure event   */
41
42 /* Prototype for get/set function       */
43 void ivi_shell_set_layer(struct shell_surface *shsurf, const int layer);
44 bool ivi_shell_is_visible(struct shell_surface *shsurf);
45 void ivi_shell_set_visible(struct shell_surface *shsurf, const int visible);
46 void ivi_shell_set_raise(struct shell_surface *shsurf, const int raise);
47 void ivi_shell_set_toplevel(struct shell_surface *shsurf);
48 void ivi_shell_set_surface_type(struct shell_surface *shsurf);
49 void ivi_shell_send_configure(struct shell_surface *shsurf, const int id,
50                               const int edges, const int width, const int height);
51 void ivi_shell_set_positionsize(struct shell_surface *shsurf, const int x,
52                                 const int y, const int width, const int height);
53 void ivi_shell_set_layer_visible(const int layer, const int visible);
54 void ivi_shell_surface_configure(struct shell_surface *shsurf, const int x,
55                                  const int y, const int width, const int height);
56 void ivi_shell_set_active(struct shell_surface *shsurf, const int target);
57 void ivi_shell_set_client_attr(struct wl_client *client, const int attr, const int value);
58 void ivi_shell_restrain_configure(struct shell_surface *shsurf, const int restrain);
59 const char *ivi_shell_default_animation(int *msec, int *fps);
60
61 /* Prototypr for hook routine           */
62 void ivi_shell_hook_bind(void (*hook_bind)(struct wl_client *client));
63 void ivi_shell_hook_unbind(void (*hook_unbind)(struct wl_client *client));
64 void ivi_shell_hook_create(void (*hook_create)(struct wl_client *client,
65                             struct wl_resource *resource, struct weston_surface *surface,
66                             struct shell_surface *shsurf));
67 void ivi_shell_hook_destroy(void (*hook_destroy)(struct weston_surface *surface));
68 void ivi_shell_hook_map(void (*hook_map)(struct weston_surface *surface,
69                             int32_t *width, int32_t *height, int32_t *sx, int32_t *sy));
70 void ivi_shell_hook_change(void (*hook_change)(struct weston_surface *surface,
71                             const int to, const int manager));
72 void ivi_shell_hook_select(void (*hook_select)(struct weston_surface *surface));
73
74 /* Prototype for hook of Multi Input Manager    */
75 void ico_win_mgr_hook_set_user(void (*hook_set_user)(struct wl_client *client,
76                                                     const char *appid));
77 void ico_win_mgr_hook_create(void (*hook_create)(struct wl_client *client,
78                                                  struct weston_surface *surface,
79                                                  int surfaceId,
80                                                  const char *appid));
81 void ico_win_mgr_hook_destroy(void (*hook_destroy)(struct weston_surface *surface));
82
83 #endif  /*_ICO_IVI_SHELL_H_*/