[Terminal] Add all properties
authorIra W. Snyder <devel@irasnyder.com>
Sat, 12 Jan 2008 21:20:00 +0000 (13:20 -0800)
committerIra W. Snyder <devel@irasnyder.com>
Sat, 12 Jan 2008 21:20:00 +0000 (13:20 -0800)
Add all of the definitions for all of the properties. Only some of
them are currently fully functional, however.

tilda-terminal.c

index 4238274..92e73b6 100644 (file)
@@ -41,6 +41,16 @@ enum tilda_terminal_properties {
        TILDA_TERMINAL_DELETE_BINDING,
        TILDA_TERMINAL_DYNAMIC_TITLE,
        TILDA_TERMINAL_EXIT_ACTION,
+
+       TILDA_TERMINAL_SCROLL_BACKGROUND,
+       TILDA_TERMINAL_SCROLL_ON_OUTPUT,
+       TILDA_TERMINAL_SCROLL_ON_KEYSTROKE,
+       TILDA_TERMINAL_ANTIALIASED,
+       TILDA_TERMINAL_ALLOW_BOLD_TEXT,
+       TILDA_TERMINAL_CURSOR_BLINKS,
+       TILDA_TERMINAL_AUDIBLE_BELL,
+       TILDA_TERMINAL_VISIBLE_BELL,
+       TILDA_TERMINAL_DOUBLE_BUFFERED,
 };
 
 static void
@@ -88,7 +98,7 @@ tilda_terminal_set_property (GObject      *object,
                case TILDA_TERMINAL_BACKGROUND_IMAGE:
                        g_free (self->background_image);
                        self->background_image = g_value_dup_string (value);
-                       // TODO: Actually set it in self->vte_term
+                       vte_terminal_set_background_image_file (VTE_TERMINAL(self->vte_term), self->background_image);
                        g_print ("terminal back img: %s\n", self->background_image);
                        break;
 
@@ -101,7 +111,9 @@ tilda_terminal_set_property (GObject      *object,
                case TILDA_TERMINAL_FONT:
                        g_free (self->font);
                        self->font = g_value_dup_string (value);
-                       vte_terminal_set_font_from_string (VTE_TERMINAL(self->vte_term), self->font);
+                       vte_terminal_set_font_from_string_full (VTE_TERMINAL(self->vte_term),
+                                                                                                       self->font,
+                                                                                                       self->antialiased);
                        g_print ("terminal font: %s\n", self->font);
                        break;
 
@@ -119,6 +131,7 @@ tilda_terminal_set_property (GObject      *object,
 
                case TILDA_TERMINAL_SCROLLBACK_LINES:
                        self->scrollback_lines = g_value_get_int (value);
+                       vte_terminal_set_scrollback_lines (VTE_TERMINAL(self->vte_term), self->scrollback_lines);
                        g_print ("terminal scrollback lines: %d\n", self->scrollback_lines);
                        break;
 
@@ -129,13 +142,13 @@ tilda_terminal_set_property (GObject      *object,
 
                case TILDA_TERMINAL_BACKSPACE_BINDING:
                        self->backspace_binding = g_value_get_int (value);
-                       //vte_terminal_set_backspace_binding (VTE_TERMINAL(self->vte_term), self->backspace_binding);
+                       vte_terminal_set_backspace_binding (VTE_TERMINAL(self->vte_term), self->backspace_binding);
                        g_print ("terminal backspace key: %d\n", self->backspace_binding);
                        break;
 
                case TILDA_TERMINAL_DELETE_BINDING:
                        self->delete_binding = g_value_get_int (value);
-                       //vte_terminal_set_delete_binding (VTE_TERMINAL(self->vte_term), self->delete_binding);
+                       vte_terminal_set_delete_binding (VTE_TERMINAL(self->vte_term), self->delete_binding);
                        g_print ("terminal delete key: %d\n", self->delete_binding);
                        break;
 
@@ -149,6 +162,62 @@ tilda_terminal_set_property (GObject      *object,
                        g_print ("terminal exit action: %d\n", self->exit_action);
                        break;
 
+               case TILDA_TERMINAL_SCROLL_BACKGROUND:
+                       self->scroll_background = g_value_get_boolean (value);
+                       vte_terminal_set_scroll_background (VTE_TERMINAL(self->vte_term), self->scroll_background);
+                       g_print ("terminal scroll background: %d\n", self->scroll_background);
+                       break;
+
+               case TILDA_TERMINAL_SCROLL_ON_OUTPUT:
+                       self->scroll_on_output = g_value_get_boolean (value);
+                       vte_terminal_set_scroll_on_output (VTE_TERMINAL(self->vte_term), self->scroll_on_output);
+                       g_print ("terminal scroll on output: %d\n", self->scroll_on_output);
+                       break;
+
+               case TILDA_TERMINAL_SCROLL_ON_KEYSTROKE:
+                       self->scroll_on_keystroke = g_value_get_boolean (value);
+                       vte_terminal_set_scroll_on_keystroke (VTE_TERMINAL(self->vte_term), self->scroll_on_keystroke);
+                       g_print ("terminal scroll on keystroke: %d\n", self->scroll_on_keystroke);
+                       break;
+
+               case TILDA_TERMINAL_ANTIALIASED:
+                       self->antialiased = g_value_get_boolean (value);
+                       vte_terminal_set_font_from_string_full (VTE_TERMINAL(self->vte_term),
+                                                                                                       self->font,
+                                                                                                       self->antialiased);
+                       g_print ("terminal antialiased: %d\n", self->antialiased);
+                       break;
+
+               case TILDA_TERMINAL_ALLOW_BOLD_TEXT:
+                       self->allow_bold_text = g_value_get_boolean (value);
+                       vte_terminal_set_allow_bold (VTE_TERMINAL(self->vte_term), self->allow_bold_text);
+                       g_print ("terminal allow bold text: %d\n", self->allow_bold_text);
+                       break;
+
+               case TILDA_TERMINAL_CURSOR_BLINKS:
+                       self->cursor_blinks = g_value_get_boolean (value);
+                       vte_terminal_set_cursor_blinks (VTE_TERMINAL(self->vte_term), self->cursor_blinks);
+                       g_print ("terminal cursor blinks: %d\n", self->cursor_blinks);
+                       break;
+
+               case TILDA_TERMINAL_AUDIBLE_BELL:
+                       self->audible_bell = g_value_get_boolean (value);
+                       vte_terminal_set_audible_bell (VTE_TERMINAL(self->vte_term), self->audible_bell);
+                       g_print ("terminal audible bell: %d\n", self->audible_bell);
+                       break;
+
+               case TILDA_TERMINAL_VISIBLE_BELL:
+                       self->visible_bell = g_value_get_boolean (value);
+                       vte_terminal_set_visible_bell (VTE_TERMINAL(self->vte_term), self->visible_bell);
+                       g_print ("terminal visible bell: %d\n", self->visible_bell);
+                       break;
+
+               case TILDA_TERMINAL_DOUBLE_BUFFERED:
+                       self->double_buffered = g_value_get_boolean (value);
+                       gtk_widget_set_double_buffered (GTK_WIDGET(self->vte_term), self->double_buffered);
+                       g_print ("terminal double buffered: %d\n", self->double_buffered);
+                       break;
+
                default:
                        /* We don't have this property... */
                        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -206,6 +275,58 @@ tilda_terminal_get_property (GObject    *object,
                        g_value_set_int (value, self->transparency_percent);
                        break;
 
+               case TILDA_TERMINAL_BACKSPACE_BINDING:
+                       g_value_set_int (value, self->backspace_binding);
+                       break;
+
+               case TILDA_TERMINAL_DELETE_BINDING:
+                       g_value_set_int (value, self->delete_binding);
+                       break;
+
+               case TILDA_TERMINAL_DYNAMIC_TITLE:
+                       g_value_set_int (value, self->dynamic_title);
+                       break;
+
+               case TILDA_TERMINAL_EXIT_ACTION:
+                       g_value_set_int (value, self->exit_action);
+                       break;
+
+               case TILDA_TERMINAL_SCROLL_BACKGROUND:
+                       g_value_set_boolean (value, self->scroll_background);
+                       break;
+
+               case TILDA_TERMINAL_SCROLL_ON_OUTPUT:
+                       g_value_set_boolean (value, self->scroll_on_output);
+                       break;
+
+               case TILDA_TERMINAL_SCROLL_ON_KEYSTROKE:
+                       g_value_set_boolean (value, self->scroll_on_keystroke);
+                       break;
+
+               case TILDA_TERMINAL_ANTIALIASED:
+                       g_value_set_boolean (value, self->antialiased);
+                       break;
+
+               case TILDA_TERMINAL_ALLOW_BOLD_TEXT:
+                       g_value_set_boolean (value, self->allow_bold_text);
+                       break;
+
+               case TILDA_TERMINAL_CURSOR_BLINKS:
+                       g_value_set_boolean (value, self->cursor_blinks);
+                       break;
+
+               case TILDA_TERMINAL_AUDIBLE_BELL:
+                       g_value_set_boolean (value, self->audible_bell);
+                       break;
+
+               case TILDA_TERMINAL_VISIBLE_BELL:
+                       g_value_set_boolean (value, self->visible_bell);
+                       break;
+
+               case TILDA_TERMINAL_DOUBLE_BUFFERED:
+                       g_value_set_boolean (value, self->double_buffered);
+                       break;
+
                default:
                        /* We don't have this property... */
                        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -421,6 +542,126 @@ tilda_terminal_class_init (gpointer g_class,
        g_object_class_install_property (gobject_class,
                                                                         TILDA_TERMINAL_TRANSPARENCY_PERCENT,
                                                                         pspec);
+
+       pspec = g_param_spec_int ("backspace-binding",
+                                                         "Terminal's backspace binding",
+                                                         "Get/Set terminal's backspace key binding",
+                                                         VTE_ERASE_AUTO,
+                                                         VTE_ERASE_DELETE_SEQUENCE,
+                                                         VTE_ERASE_AUTO,
+                                                         G_PARAM_READWRITE);
+
+       g_object_class_install_property (gobject_class,
+                                                                        TILDA_TERMINAL_BACKSPACE_BINDING,
+                                                                        pspec);
+
+       pspec = g_param_spec_int ("delete-binding",
+                                                         "Terminal's delete binding",
+                                                         "Get/Set terminal's delete key binding",
+                                                         VTE_ERASE_AUTO,
+                                                         VTE_ERASE_DELETE_SEQUENCE,
+                                                         VTE_ERASE_AUTO,
+                                                         G_PARAM_READWRITE);
+
+       g_object_class_install_property (gobject_class,
+                                                                        TILDA_TERMINAL_DELETE_BINDING,
+                                                                        pspec);
+
+       pspec = g_param_spec_int ("dynamic-title",
+                                                         "Terminal's dynamic title generation method",
+                                                         "Get/Set terminal's dynamic title generation method",
+                                                         0,
+                                                         INT_MAX,
+                                                         0,
+                                                         G_PARAM_READWRITE);
+
+       g_object_class_install_property (gobject_class,
+                                                                        TILDA_TERMINAL_DYNAMIC_TITLE,
+                                                                        pspec);
+
+       pspec = g_param_spec_int ("exit-action",
+                                                         "Terminal's action upon child exit",
+                                                         "Get/Set terminal's action upon child exit",
+                                                         0,
+                                                         INT_MAX,
+                                                         0,
+                                                         G_PARAM_READWRITE);
+
+       g_object_class_install_property (gobject_class,
+                                                                        TILDA_TERMINAL_EXIT_ACTION,
+                                                                        pspec);
+
+       pspec = g_param_spec_boolean ("scroll-background",
+                                                                 "Controls terminal's scrolling behavior",
+                                                                 "Get/Set terminal's scrolling behavior",
+                                                                 FALSE,
+                                                                 G_PARAM_READWRITE);
+
+       g_object_class_install_property (gobject_class,
+                                                                        TILDA_TERMINAL_SCROLL_BACKGROUND,
+                                                                        pspec);
+
+       pspec = g_param_spec_boolean ("scroll-on-output",
+                                                                 "Controls terminal's scrolling behavior on output",
+                                                                 "Get/Set terminal's scrolling behavior on output",
+                                                                 FALSE,
+                                                                 G_PARAM_READWRITE);
+
+       g_object_class_install_property (gobject_class,
+                                                                        TILDA_TERMINAL_SCROLL_ON_OUTPUT,
+                                                                        pspec);
+
+       pspec = g_param_spec_boolean ("scroll-on-keystroke",
+                                                                 "Controls the terminal's scrolling behavior on keystroke",
+                                                                 NULL, FALSE, G_PARAM_READWRITE);
+
+       g_object_class_install_property (gobject_class,
+                                                                        TILDA_TERMINAL_SCROLL_ON_KEYSTROKE,
+                                                                        pspec);
+
+       pspec = g_param_spec_boolean ("antialiased",
+                                                                 "Attempt to antialias fonts",
+                                                                 NULL, FALSE, G_PARAM_READWRITE);
+
+       g_object_class_install_property (gobject_class,
+                                                                        TILDA_TERMINAL_ANTIALIASED,
+                                                                        pspec);
+
+       pspec = g_param_spec_boolean ("allow-bold-text",
+                                                                 "Allow bold text",
+                                                                 NULL, FALSE, G_PARAM_READWRITE);
+
+       g_object_class_install_property (gobject_class,
+                                                                        TILDA_TERMINAL_ALLOW_BOLD_TEXT,
+                                                                        pspec);
+
+       pspec = g_param_spec_boolean ("cursor-blinks",
+                                                                 NULL, NULL, FALSE, G_PARAM_READWRITE);
+
+       g_object_class_install_property (gobject_class,
+                                                                        TILDA_TERMINAL_CURSOR_BLINKS,
+                                                                        pspec);
+
+       pspec = g_param_spec_boolean ("audible-bell",
+                                                                 NULL, NULL, FALSE, G_PARAM_READWRITE);
+
+       g_object_class_install_property (gobject_class,
+                                                                        TILDA_TERMINAL_AUDIBLE_BELL,
+                                                                        pspec);
+
+       pspec = g_param_spec_boolean ("visible-bell",
+                                                                 NULL, NULL, FALSE, G_PARAM_READWRITE);
+
+       g_object_class_install_property (gobject_class,
+                                                                        TILDA_TERMINAL_VISIBLE_BELL,
+                                                                        pspec);
+
+       pspec = g_param_spec_boolean ("double-buffered",
+                                                                 NULL, NULL, FALSE, G_PARAM_READWRITE);
+
+       g_object_class_install_property (gobject_class,
+                                                                        TILDA_TERMINAL_DOUBLE_BUFFERED,
+                                                                        pspec);
 }
 
 GType