[Window] Add positioning capability
[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         enum window_states { WINDOW_UP, WINDOW_DOWN } state;
46
47         gchar *key;
48
49         gint min_height;
50         gint min_width;
51         gint max_height;
52         gint max_width;
53         gint x_position;
54         gint y_position;
55
56         // FIXME: these really should be enum's if possible
57         gint tab_position;
58         gint animation_orientation;
59         gint animation_delay;
60         gint scrollbar_position;
61
62         gboolean keep_above;
63         gboolean show_in_taskbar;
64         gboolean pinned;
65         gboolean hidden_at_start;
66         gboolean centered_horizontally;
67         gboolean centered_vertically;
68         gboolean have_real_transparency;
69 };
70
71 struct _TildaWindowClass {
72         GObjectClass parent;
73
74         /* class members */
75 };
76
77 /* used by TILDA_TYPE_WINDOW */
78 GType tilda_window_get_type (void);
79
80 /* API */
81 gboolean tilda_window_remove_term (TildaWindow *tw, gint terminal_number);
82
83 #endif /* TILDA_WINDOW_H */
84
85 /* vim: set ts=4 sts=4 sw=4 noet tw=112: */
86