d8a10d626df59a6b24af250d2892f18b1d5090bd
[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         /* Accelerator-related instance members */
45         GtkAccelGroup *accel_group;
46         gchar *accel_quit;
47         gchar *accel_next_tab;
48         gchar *accel_prev_tab;
49         gchar *accel_add_term;
50         gchar *accel_remove_term;
51         gchar *accel_copy;
52         gchar *accel_paste;
53         gchar *accel_goto_1;
54         gchar *accel_goto_2;
55         gchar *accel_goto_3;
56         gchar *accel_goto_4;
57         gchar *accel_goto_5;
58         gchar *accel_goto_6;
59         gchar *accel_goto_7;
60         gchar *accel_goto_8;
61         gchar *accel_goto_9;
62         gchar *accel_goto_10;
63
64         gint number;
65         GObject *controller; /* pointer back to TildaController */
66         enum window_states { WINDOW_UP, WINDOW_DOWN } state;
67
68         gchar *key;
69
70         gint height;
71         gint width;
72         gint x_position;
73         gint y_position;
74         gint animation_delay;
75         gint initial_terminals;
76
77         GtkPositionType tab_position;
78         GtkPositionType animation_orientation;
79
80         gboolean keep_above;
81         gboolean skip_taskbar_hint;
82         gboolean stick;
83         gboolean hidden_at_start;
84         gboolean centered_horizontally;
85         gboolean centered_vertically;
86         gboolean full_width_tabs;
87         gboolean have_real_transparency;
88 };
89
90 struct _TildaWindowClass {
91         GObjectClass parent;
92
93         /* class members */
94 };
95
96 /* used by TILDA_TYPE_WINDOW */
97 GType tilda_window_get_type (void);
98
99 /* API */
100 gboolean tilda_window_close (TildaWindow *self);
101 gboolean tilda_window_add_terminal (TildaWindow *self);
102 gboolean tilda_window_remove_terminal (TildaWindow *self, gint terminal_number);
103
104 #endif /* TILDA_WINDOW_H */
105
106 /* vim: set ts=4 sts=4 sw=4 noet tw=112: */