Release Clutter 1.11.4 (snapshot)
[profile/ivi/clutter.git] / clutter / clutter-stage-window.h
1 #ifndef __CLUTTER_STAGE_WINDOW_H__
2 #define __CLUTTER_STAGE_WINDOW_H__
3
4 #include <cogl/cogl.h>
5 #include <clutter/clutter-types.h>
6
7 G_BEGIN_DECLS
8
9 #define CLUTTER_TYPE_STAGE_WINDOW               (_clutter_stage_window_get_type ())
10 #define CLUTTER_STAGE_WINDOW(obj)               (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_STAGE_WINDOW, ClutterStageWindow))
11 #define CLUTTER_IS_STAGE_WINDOW(obj)            (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_STAGE_WINDOW))
12 #define CLUTTER_STAGE_WINDOW_GET_IFACE(obj)     (G_TYPE_INSTANCE_GET_INTERFACE ((obj), CLUTTER_TYPE_STAGE_WINDOW, ClutterStageWindowIface))
13
14 /*
15  * ClutterStageWindow: (skip)
16  *
17  * <structname>ClutterStageWindow</structname> is an opaque structure
18  * whose members should not be accessed directly
19  *
20  * Since: 0.8
21  */
22 typedef struct _ClutterStageWindow      ClutterStageWindow; /* dummy */
23 typedef struct _ClutterStageWindowIface ClutterStageWindowIface;
24
25 /*
26  * ClutterStageWindowIface: (skip)
27  *
28  * The interface implemented by backends for stage windows
29  *
30  * Since: 0.8
31  */
32 struct _ClutterStageWindowIface
33 {
34   /*< private >*/
35   GTypeInterface parent_iface;
36
37   ClutterActor     *(* get_wrapper)             (ClutterStageWindow *stage_window);
38
39   void              (* set_title)               (ClutterStageWindow *stage_window,
40                                                  const gchar        *title);
41   void              (* set_fullscreen)          (ClutterStageWindow *stage_window,
42                                                  gboolean            is_fullscreen);
43   void              (* set_cursor_visible)      (ClutterStageWindow *stage_window,
44                                                  gboolean            cursor_visible);
45   void              (* set_user_resizable)      (ClutterStageWindow *stage_window,
46                                                  gboolean            is_resizable);
47
48   gboolean          (* realize)                 (ClutterStageWindow *stage_window);
49   void              (* unrealize)               (ClutterStageWindow *stage_window);
50
51   void              (* show)                    (ClutterStageWindow *stage_window,
52                                                  gboolean            do_raise);
53   void              (* hide)                    (ClutterStageWindow *stage_window);
54
55   void              (* resize)                  (ClutterStageWindow *stage_window,
56                                                  gint                width,
57                                                  gint                height);
58   void              (* get_geometry)            (ClutterStageWindow *stage_window,
59                                                  cairo_rectangle_int_t *geometry);
60
61   int               (* get_pending_swaps)       (ClutterStageWindow *stage_window);
62
63   void              (* add_redraw_clip)         (ClutterStageWindow    *stage_window,
64                                                  cairo_rectangle_int_t *stage_rectangle);
65   gboolean          (* has_redraw_clips)        (ClutterStageWindow    *stage_window);
66   gboolean          (* ignoring_redraw_clips)   (ClutterStageWindow    *stage_window);
67   gboolean          (* get_redraw_clip_bounds)  (ClutterStageWindow    *stage_window,
68                                                  cairo_rectangle_int_t *clip);
69
70
71   void              (* set_accept_focus)        (ClutterStageWindow *stage_window,
72                                                  gboolean            accept_focus);
73
74   void              (* redraw)                  (ClutterStageWindow *stage_window);
75
76   CoglFramebuffer  *(* get_active_framebuffer)  (ClutterStageWindow *stage_window);
77
78   gboolean          (* can_clip_redraws)        (ClutterStageWindow *stage_window);
79 };
80
81 GType _clutter_stage_window_get_type (void) G_GNUC_CONST;
82
83 ClutterActor *    _clutter_stage_window_get_wrapper        (ClutterStageWindow *window);
84
85 void              _clutter_stage_window_set_title          (ClutterStageWindow *window,
86                                                             const gchar        *title);
87 void              _clutter_stage_window_set_fullscreen     (ClutterStageWindow *window,
88                                                             gboolean            is_fullscreen);
89 void              _clutter_stage_window_set_cursor_visible (ClutterStageWindow *window,
90                                                             gboolean            is_visible);
91 void              _clutter_stage_window_set_user_resizable (ClutterStageWindow *window,
92                                                             gboolean            is_resizable);
93
94 gboolean          _clutter_stage_window_realize                 (ClutterStageWindow *window);
95 void              _clutter_stage_window_unrealize               (ClutterStageWindow *window);
96
97 void              _clutter_stage_window_show                    (ClutterStageWindow *window,
98                                                                  gboolean            do_raise);
99 void              _clutter_stage_window_hide                    (ClutterStageWindow *window);
100
101 void              _clutter_stage_window_resize                  (ClutterStageWindow *window,
102                                                                  gint                width,
103                                                                  gint                height);
104 void              _clutter_stage_window_get_geometry            (ClutterStageWindow *window,
105                                                                  cairo_rectangle_int_t *geometry);
106 int               _clutter_stage_window_get_pending_swaps       (ClutterStageWindow *window);
107
108 void              _clutter_stage_window_add_redraw_clip         (ClutterStageWindow    *window,
109                                                                  cairo_rectangle_int_t *stage_clip);
110 gboolean          _clutter_stage_window_has_redraw_clips        (ClutterStageWindow    *window);
111 gboolean          _clutter_stage_window_ignoring_redraw_clips   (ClutterStageWindow    *window);
112 gboolean          _clutter_stage_window_get_redraw_clip_bounds  (ClutterStageWindow    *window,
113                                                                  cairo_rectangle_int_t *clip);
114
115 void              _clutter_stage_window_set_accept_focus        (ClutterStageWindow *window,
116                                                                  gboolean            accept_focus);
117
118 void              _clutter_stage_window_redraw                  (ClutterStageWindow *window);
119
120 CoglFramebuffer  *_clutter_stage_window_get_active_framebuffer  (ClutterStageWindow *window);
121
122 gboolean          _clutter_stage_window_can_clip_redraws        (ClutterStageWindow *window);
123
124 G_END_DECLS
125
126 #endif /* __CLUTTER_STAGE_WINDOW_H__ */