1/*
2 * This library is free software; you can redistribute it and/or
3 * modify it under the terms of the GNU Lesser General Public
4 * License as published by the Free Software Foundation; either
5 * version 2 of the License, or (at your option) any later version.
6 *
7 * This library is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10 * Lesser General Public License for more details.
11 *
12 * You should have received a copy of the GNU Lesser General Public
13 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
14 *
15 * Authors: Cody Russell <[email protected]>
16 * Alexander Larsson <[email protected]>
17 */
18
19#ifndef __GTK_OFFSCREEN_WINDOW_H__
20#define __GTK_OFFSCREEN_WINDOW_H__
21
22#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
23#error "Only <gtk/gtk.h> can be included directly."
24#endif
25
26#include <gtk/gtkwindow.h>
27
28G_BEGIN_DECLS
29
30#define GTK_TYPE_OFFSCREEN_WINDOW (gtk_offscreen_window_get_type ())
31#define GTK_OFFSCREEN_WINDOW(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GTK_TYPE_OFFSCREEN_WINDOW, GtkOffscreenWindow))
32#define GTK_OFFSCREEN_WINDOW_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GTK_TYPE_OFFSCREEN_WINDOW, GtkOffscreenWindowClass))
33#define GTK_IS_OFFSCREEN_WINDOW(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GTK_TYPE_OFFSCREEN_WINDOW))
34#define GTK_IS_OFFSCREEN_WINDOW_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GTK_TYPE_OFFSCREEN_WINDOW))
35#define GTK_OFFSCREEN_WINDOW_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GTK_TYPE_OFFSCREEN_WINDOW, GtkOffscreenWindowClass))
36
37typedef struct _GtkOffscreenWindow GtkOffscreenWindow;
38typedef struct _GtkOffscreenWindowClass GtkOffscreenWindowClass;
39
40struct _GtkOffscreenWindow
41{
42 GtkWindow parent_object;
43};
44
45/**
46 * GtkOffscreenWindowClass:
47 * @parent_class: The parent class.
48 */
49struct _GtkOffscreenWindowClass
50{
51 GtkWindowClass parent_class;
52
53 /*< private >*/
54
55 /* Padding for future expansion */
56 void (*_gtk_reserved1) (void);
57 void (*_gtk_reserved2) (void);
58 void (*_gtk_reserved3) (void);
59 void (*_gtk_reserved4) (void);
60};
61
62GDK_AVAILABLE_IN_ALL
63GType gtk_offscreen_window_get_type (void) G_GNUC_CONST;
64
65GDK_AVAILABLE_IN_ALL
66GtkWidget *gtk_offscreen_window_new (void);
67GDK_AVAILABLE_IN_ALL
68cairo_surface_t *gtk_offscreen_window_get_surface (GtkOffscreenWindow *offscreen);
69GDK_AVAILABLE_IN_ALL
70GdkPixbuf *gtk_offscreen_window_get_pixbuf (GtkOffscreenWindow *offscreen);
71
72G_END_DECLS
73
74#endif /* __GTK_OFFSCREEN_WINDOW_H__ */
75