[Controller] Add initial-windows property
[tilda-gobject.git] / tilda-window.h
1 #ifndef TILDA_WINDOW_H
2 #define TILDA_WINDOW_H
3
4 /*
5 Object Creation Order
6 ========================================
7 tilda_window_class_init()
8 tilda_window_constructor() BEGINS
9         tilda_window_instance_init()
10         tilda_window_set_property() FOR EACH CTOR PROPERTY USED
11 tilda_window_constructor() COMPLETES
12
13 ... usage ...
14
15 g_object_unref(...)
16 tilda_window_dispose()
17 tilda_window_finalize()
18 */
19
20 #include <glib.h>
21 #include <gtk/gtk.h>
22
23 #include "tilda-terminal.h"
24
25 #define TILDA_TYPE_WINDOW                               (tilda_window_get_type())
26 #define TILDA_WINDOW(obj)                               (G_TYPE_CHECK_INSTANCE_CAST ((obj), TILDA_TYPE_WINDOW, TildaWindow))
27 #define TILDA_WINDOW_CLASS(klass)               (G_TYPE_CHECK_CLASS_CAST ((klass), TILDA_TYPE_WINDOW, TildaWindowClass))
28 #define TILDA_IS_WINDOW(obj)                    (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TILDA_TYPE_WINDOW))
29 #define TILDA_IS_WINDOW_CLASS(klass)    (G_TYPE_CHECK_CLASS_TYPE ((klass), TILDA_TYPE_WINDOW))
30 #define TILDA_WINDOW_GET_CLASS(obj)             (G_TYPE_INSTANCE_GET_CLASS ((obj), TILDA_TYPE_WINDOW, TildaWindowClass))
31
32 typedef struct _TildaWindow TildaWindow;
33 typedef struct _TildaWindowClass TildaWindowClass;
34
35 struct _TildaWindow {
36         GObject parent;
37         gboolean dispose_has_run;
38
39         /* Instance Members */
40         GtkWidget *window;
41         GtkWidget *notebook;
42         GPtrArray *terms;
43
44         gint number;
45         GObject *controller; /* pointer back to TildaController */
46         enum window_states { WINDOW_UP, WINDOW_DOWN } state;
47
48         gchar *key;
49
50         gint height;
51         gint width;
52         gint x_position;
53         gint y_position;
54         gint animation_delay;
55         gint initial_terminals;
56
57         GtkPositionType tab_position;
58         GtkPositionType animation_orientation;
59
60         gboolean keep_above;
61         gboolean skip_taskbar_hint;
62         gboolean stick;
63         gboolean hidden_at_start;
64         gboolean centered_horizontally;
65         gboolean centered_vertically;
66         gboolean have_real_transparency;
67 };
68
69 struct _TildaWindowClass {
70         GObjectClass parent;
71
72         /* class members */
73 };
74
75 /* used by TILDA_TYPE_WINDOW */
76 GType tilda_window_get_type (void);
77
78 /* API */
79 gboolean tilda_window_close (TildaWindow *self);
80 gboolean tilda_window_add_terminal (TildaWindow *self);
81 gboolean tilda_window_remove_terminal (TildaWindow *self, gint terminal_number);
82
83 #endif /* TILDA_WINDOW_H */
84
85 /* vim: set ts=4 sts=4 sw=4 noet tw=112: */