1 /* Copyright (C) 2008 Bradley Smith <brad@brad-smith.co.uk>
2  *
3  * GNU Robots, ui-window.h.
4  *
5  * GNU Robots is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * GNU Robots is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with GNU Robots.  If not, see <http://www.gnu.org/licenses/>.
17  */
18 
19 #ifndef __UI_WINDOW_H__
20 #define __UI_WINDOW_H__
21 
22 #include "map.h"
23 
24 #include <gtk/gtkwindow.h>
25 
26 G_BEGIN_DECLS
27 
28 #define UI_TYPE_WINDOW \
29     ui_window_get_type()
30 #define UI_WINDOW(obj) \
31     G_TYPE_CHECK_INSTANCE_CAST(obj, UI_TYPE_WINDOW, UIWindow)
32 #define UI_WINDOW_CLASS(klass) \
33     G_TYPE_CHECK_CLASS_CAST(klass, UI_WINDOW_TYPE, UIWindowClass)
34 #define IS_UI_WINDOW(obj) \
35     G_TYPE_CHECK_INSTANCE_TYPE(obj, UI_TYPE_WINDOW)
36 #define IS_UI_WINDOW_CLASS(klass) \
37     G_TYPE_CHECK_CLASS_TYPE(klass, UI_TYPE_WINDOW)
38 
39 typedef struct _UIWindow UIWindow;
40 typedef struct _UIWindowClass UIWindowClass;
41 typedef struct _UIWindowPrivate UIWindowPrivate;
42 
43 struct _UIWindow
44 {
45   GtkWindow widget;
46   UIWindowPrivate* priv;
47 };
48 
49 struct _UIWindowClass
50 {
51   GtkWindowClass parent_class;
52 };
53 
54 GType ui_window_get_type(void) G_GNUC_CONST;
55 
56 GtkWidget *ui_window_new();
57 void ui_window_postinit(UIWindow *window, Map* map);
58 
59 G_END_DECLS
60 
61 #endif /* __UI_WINDOW_H__ */
62