[Config] Add GKeyFile reading capabilities
[tilda-gobject.git] / tilda-terminal.h
1 #ifndef TILDA_TERMINAL_H
2 #define TILDA_TERMINAL_H
3
4 #include <glib.h>
5 #include <gtk/gtk.h>
6 #include <vte/vte.h>
7
8 #include "tilda-window.h"
9
10
11 #define TILDA_TYPE_TERMINAL                             (tilda_terminal_get_type())
12 #define TILDA_TERMINAL(obj)                             (G_TYPE_CHECK_INSTANCE_CAST ((obj), TILDA_TYPE_TERMINAL, TildaTerminal))
13 #define TILDA_TERMINAL_CLASS(klass)             (G_TYPE_CHECK_CLASS_CAST ((klass), TILDA_TYPE_TERMINAL, TildaTerminalClass))
14 #define TILDA_IS_TERMINAL(obj)                  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TILDA_TYPE_TERMINAL))
15 #define TILDA_IS_TERMINAL_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), TILDA_TYPE_TERMINAL))
16 #define TILDA_TERMINAL_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), TILDA_TYPE_TERMINAL, TildaTerminalClass))
17
18 typedef struct _TildaTerminal TildaTerminal;
19 typedef struct _TildaTerminalClass TildaTerminalClass;
20
21 struct _TildaTerminal {
22         GObject parent;
23         gboolean dispose_has_run;
24
25         /* Instance Members */
26         GObject *parent_window;
27         GtkWidget *vte_term;
28         GtkWidget *scrollbar;
29         GtkWidget *hbox;
30         gint number;
31
32         gchar *background_image;
33         gchar *shell;
34         gchar *font;
35         gchar *title;
36         gchar *working_directory;
37         gchar *web_browser;
38
39         gint scrollback_lines;
40         gint transparency_percent;
41         // TODO: opacity, tint, etc
42
43         // TODO: these really are enums. Maybe the config system
44         // TODO: can be made to handle top, bottom, left, right.
45         // TODO: (similar to the true/false handling)
46         // TODO:
47         // TODO: or, maybe ints would just be better
48         // TODO: REMEMBER THOUGH: make the computer do what it's good at ;)
49         gint backspace_binding;
50         gint delete_binding;
51         gint dynamic_title;
52         gint exit_action;
53         gint scrollbar_position;
54         // TODO: gint colorscheme; the code can work around the need for
55         // TODO: this value. Just check if the back and fore colors match
56         // TODO: any pre-defined colorschemes exactly in the GUI.
57         GdkColor background_color;
58         GdkColor foreground_color;
59         // TODO: all other colors supported by VTE
60
61         gboolean scroll_background;
62         gboolean scroll_on_output;
63         gboolean scroll_on_keystroke;
64         gboolean antialiased;
65         gboolean allow_bold_text;
66         gboolean cursor_blinks;
67         gboolean audible_bell;
68         gboolean visible_bell;
69         gboolean double_buffered;
70         gboolean mouse_autohide;
71 };
72
73 struct _TildaTerminalClass {
74         GObjectClass parent;
75
76         /* Class Members */
77 };
78
79 /* Used by TILDA_TYPE_TERMINAL */
80 GType tilda_terminal_get_type (void);
81
82 /* API */
83 gboolean tilda_terminal_run_command (TildaTerminal *self, gchar *command, GError **error);
84 gboolean tilda_terminal_close (TildaTerminal *self, GError **error);
85
86 #endif /* TILDA_TERMINAL_H */
87
88 /* vim: set ts=4 sts=4 sw=4 noet tw=112: */