[geany/geany] 15fdda: Implement terminal background image

Mislav Blažević git-noreply at geany.org
Mon Jan 7 03:18:36 UTC 2013


Branch:      refs/heads/master
Author:      Mislav Blažević <krofnica996 at gmail.com>
Committer:   Mislav Blažević <krofnica996 at gmail.com>
Date:        Tue, 18 Dec 2012 11:19:53 UTC
Commit:      15fddad323dbd28c147f987936161c09455029ae
             https://github.com/geany/geany/commit/15fddad323dbd28c147f987936161c09455029ae

Log Message:
-----------
Implement terminal background image


Modified Paths:
--------------
    data/geany.glade
    src/keyfile.c
    src/prefs.c
    src/vte.c
    src/vte.h

Modified: data/geany.glade
77 files changed, 67 insertions(+), 10 deletions(-)
===================================================================
@@ -5880,11 +5880,11 @@
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="terminal_scrollback_lines_label">
+                              <object class="GtkLabel" id="bg_image">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
-                                <property name="label" translatable="yes">Scrollback lines:</property>
+                                <property name="label" translatable="yes">Background image:</property>
                               </object>
                               <packing>
                                 <property name="top_attach">3</property>
@@ -5894,11 +5894,11 @@
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkLabel" id="terminal_shell_label">
+                              <object class="GtkLabel" id="terminal_scrollback_lines_label">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
-                                <property name="label" translatable="yes">Shell:</property>
+                                <property name="label" translatable="yes">Scrollback lines:</property>
                               </object>
                               <packing>
                                 <property name="top_attach">4</property>
@@ -5908,6 +5908,20 @@
                               </packing>
                             </child>
                             <child>
+                              <object class="GtkLabel" id="terminal_shell_label">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Shell:</property>
+                              </object>
+                              <packing>
+                                <property name="top_attach">5</property>
+                                <property name="bottom_attach">6</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options">GTK_FILL</property>
+                              </packing>
+                            </child>
+                            <child>
                               <object class="GtkColorButton" id="color_fore">
                                 <property name="use_action_appearance">False</property>
                                 <property name="visible">True</property>
@@ -5944,6 +5958,49 @@
                               </packing>
                             </child>
                             <child>
+                              <object class="GtkEntry" id="entry_image">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="tooltip_text" translatable="yes">Sets the path to the background image in the terminal widget</property>
+                                <property name="invisible_char">•</property>
+                                <property name="primary_icon_activatable">False</property>
+                                <property name="secondary_icon_activatable">False</property>
+                                <property name="primary_icon_sensitive">True</property>
+                                <property name="secondary_icon_sensitive">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="top_attach">3</property>
+                                <property name="bottom_attach">4</property>
+                                <property name="y_options">GTK_FILL</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkButton" id="button_term_image">
+                                <property name="use_action_appearance">False</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <child>
+                                  <object class="GtkImage" id="image1337">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="stock">gtk-open</property>
+                                    <property name="icon-size">1</property>
+                                  </object>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="left_attach">2</property>
+                                <property name="right_attach">3</property>
+                                <property name="top_attach">3</property>
+                                <property name="bottom_attach">4</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options">GTK_FILL</property>
+                              </packing>
+                            </child>
+                            <child>
                               <object class="GtkSpinButton" id="spin_scrollback">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
@@ -5960,8 +6017,8 @@
                               <packing>
                                 <property name="left_attach">1</property>
                                 <property name="right_attach">3</property>
-                                <property name="top_attach">3</property>
-                                <property name="bottom_attach">4</property>
+                                <property name="top_attach">4</property>
+                                <property name="bottom_attach">5</property>
                                 <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
@@ -5979,8 +6036,8 @@
                               <packing>
                                 <property name="left_attach">1</property>
                                 <property name="right_attach">2</property>
-                                <property name="top_attach">4</property>
-                                <property name="bottom_attach">5</property>
+                                <property name="top_attach">5</property>
+                                <property name="bottom_attach">6</property>
                                 <property name="y_options">GTK_FILL</property>
                               </packing>
                             </child>
@@ -6002,8 +6059,8 @@
                               <packing>
                                 <property name="left_attach">2</property>
                                 <property name="right_attach">3</property>
-                                <property name="top_attach">4</property>
-                                <property name="bottom_attach">5</property>
+                                <property name="top_attach">5</property>
+                                <property name="bottom_attach">6</property>
                                 <property name="x_options">GTK_FILL</property>
                                 <property name="y_options">GTK_FILL</property>
                               </packing>


Modified: src/keyfile.c
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -519,6 +519,7 @@ static void save_dialog_prefs(GKeyFile *config)
 		g_key_file_set_boolean(config, "VTE", "cursor_blinks", vc->cursor_blinks);
 		g_key_file_set_integer(config, "VTE", "scrollback_lines", vc->scrollback_lines);
 		g_key_file_set_string(config, "VTE", "font", vc->font);
+		g_key_file_set_string(config, "VTE", "image", vc->image);
 		g_key_file_set_string(config, "VTE", "shell", vc->shell);
 		tmp_string = utils_get_hex_from_color(vc->colour_fore);
 		g_key_file_set_string(config, "VTE", "colour_fore", tmp_string);
@@ -843,6 +844,7 @@ static void load_dialog_prefs(GKeyFile *config)
 		vc->emulation = utils_get_setting_string(config, "VTE", "emulation", "xterm");
 		vc->send_selection_unsafe = utils_get_setting_boolean(config, "VTE",
 			"send_selection_unsafe", FALSE);
+		vc->image = utils_get_setting_string(config, "VTE", "image", "");
 		vc->shell = utils_get_setting_string(config, "VTE", "shell", shell);
 		vc->font = utils_get_setting_string(config, "VTE", "font", "Monospace 10");
 		vc->scroll_on_key = utils_get_setting_boolean(config, "VTE", "scroll_on_key", TRUE);


Modified: src/prefs.c
7 files changed, 7 insertions(+), 0 deletions(-)
===================================================================
@@ -744,6 +744,9 @@ static void prefs_init_dialog(void)
 		widget = ui_lookup_widget(ui_widgets.prefs_dialog, "color_back");
 		gtk_color_button_set_color(GTK_COLOR_BUTTON(widget), vc->colour_back);
 
+		widget = ui_lookup_widget(ui_widgets.prefs_dialog, "entry_image");
+		gtk_entry_set_text(GTK_ENTRY(widget), vc->image);
+
 		widget = ui_lookup_widget(ui_widgets.prefs_dialog, "spin_scrollback");
 		gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), vc->scrollback_lines);
 
@@ -1208,6 +1211,10 @@ static void kb_update(void)
 			gtk_spin_button_update(GTK_SPIN_BUTTON(widget));
 			vc->scrollback_lines = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
 
+			widget = ui_lookup_widget(ui_widgets.prefs_dialog, "entry_image");
+			g_free(vc->image);
+			vc->image = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
+
 			widget = ui_lookup_widget(ui_widgets.prefs_dialog, "entry_shell");
 			g_free(vc->shell);
 			vc->shell = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));


Modified: src/vte.c
10 files changed, 10 insertions(+), 0 deletions(-)
===================================================================
@@ -112,6 +112,7 @@ struct VteFunctions
 	void (*vte_terminal_set_cursor_blinks) (VteTerminal *terminal, gboolean blink);
 	void (*vte_terminal_select_all) (VteTerminal *terminal);
 	void (*vte_terminal_set_audible_bell) (VteTerminal *terminal, gboolean is_audible);
+	void (*vte_terminal_set_background_image_file) (VteTerminal *terminal, const char *path);
 };
 
 
@@ -303,6 +304,7 @@ void vte_close(void)
 	g_object_unref(vc->menu);
 	g_free(vc->emulation);
 	g_free(vc->shell);
+	g_free(vc->image);
 	g_free(vc->font);
 	g_free(vc->colour_back);
 	g_free(vc->colour_fore);
@@ -451,6 +453,7 @@ static gboolean vte_register_symbols(GModule *mod)
 	BIND_REQUIRED_SYMBOL(vte_terminal_set_color_foreground);
 	BIND_REQUIRED_SYMBOL(vte_terminal_set_color_bold);
 	BIND_REQUIRED_SYMBOL(vte_terminal_set_color_background);
+	BIND_REQUIRED_SYMBOL(vte_terminal_set_background_image_file);
 	BIND_REQUIRED_SYMBOL(vte_terminal_feed_child);
 	BIND_REQUIRED_SYMBOL(vte_terminal_im_append_menuitems);
 	if (! BIND_SYMBOL(vte_terminal_set_cursor_blink_mode))
@@ -480,6 +483,7 @@ void vte_apply_user_settings(void)
 	vf->vte_terminal_set_color_foreground(VTE_TERMINAL(vc->vte), vc->colour_fore);
 	vf->vte_terminal_set_color_bold(VTE_TERMINAL(vc->vte), vc->colour_fore);
 	vf->vte_terminal_set_color_background(VTE_TERMINAL(vc->vte), vc->colour_back);
+	vf->vte_terminal_set_background_image_file(VTE_TERMINAL(vc->vte), vc->image);
 	vf->vte_terminal_set_audible_bell(VTE_TERMINAL(vc->vte), prefs.beep_on_errors);
 	vte_set_cursor_blink_mode();
 
@@ -771,12 +775,18 @@ void vte_append_preferences_tab(void)
 		GtkWidget *frame_term, *button_shell, *entry_shell;
 		GtkWidget *check_run_in_vte, *check_skip_script;
 		GtkWidget *font_button, *fg_color_button, *bg_color_button;
+		GtkWidget *entry_image, *button_image;
 
 		button_shell = GTK_WIDGET(ui_lookup_widget(ui_widgets.prefs_dialog, "button_term_shell"));
 		entry_shell = GTK_WIDGET(ui_lookup_widget(ui_widgets.prefs_dialog, "entry_shell"));
 		ui_setup_open_button_callback(button_shell, NULL,
 			GTK_FILE_CHOOSER_ACTION_OPEN, GTK_ENTRY(entry_shell));
 
+		button_image = GTK_WIDGET(ui_lookup_widget(ui_widgets.prefs_dialog, "button_term_image"));
+		entry_image = GTK_WIDGET(ui_lookup_widget(ui_widgets.prefs_dialog, "entry_image"));
+		ui_setup_open_button_callback(button_image, NULL,
+			GTK_FILE_CHOOSER_ACTION_OPEN, GTK_ENTRY(entry_image));
+
 		check_skip_script = GTK_WIDGET(ui_lookup_widget(ui_widgets.prefs_dialog, "check_skip_script"));
 		gtk_widget_set_sensitive(check_skip_script, vc->run_in_vte);
 


Modified: src/vte.h
1 files changed, 1 insertions(+), 0 deletions(-)
===================================================================
@@ -54,6 +54,7 @@
 	gint scrollback_lines;
 	gchar *emulation;
 	gchar *shell;
+	gchar *image;
 	gchar *font;
 	gchar *send_cmd_prefix;
 	GdkColor *colour_fore;



--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).


More information about the Commits mailing list