diff --cc terminal/terminal-screen.c
index 4442bca,37e50a6..0000000
--- a/terminal/terminal-screen.c
+++ b/terminal/terminal-screen.c
@@@ -2294,12 -2315,28 +2294,38 @@@ terminal_screen_search_find_previous (T
vte_terminal_search_find_previous (VTE_TERMINAL (screen->terminal));
}
+
+
+void
+terminal_screen_set_input_enabled (TerminalScreen *screen,
+ gboolean enabled)
+{
+ terminal_return_if_fail (TERMINAL_IS_SCREEN (screen));
+ vte_terminal_set_input_enabled (VTE_TERMINAL (screen->terminal), enabled);
+}
++
+ void
+ terminal_screen_set_tab_color (TerminalScreen *screen)
+ {
+ char *markup;
+ GtkLabel *label = GTK_LABEL (screen->tab_label);
+ const char *format = "\%s";
+ GHashTable *color_list;
+ GHashTableIter iter;
+ gpointer key, value;
+
+ g_object_get (G_OBJECT (screen->preferences), "tab-colors-list", &color_list, NULL);
+ if (!color_list)
+ return;
+
+ g_hash_table_iter_init (&iter, color_list);
+ while (g_hash_table_iter_next (&iter, &key, &value))
+ {
+ if (strstr (gtk_label_get_text(label), key) != NULL) {
+ markup = g_markup_printf_escaped (format, value, gtk_label_get_text (label));
+ gtk_label_set_markup (label, markup);
+ g_free (markup);
+ break;
+ }
+ }
+ }
diff --git a/terminal/terminal-preferences.c b/terminal/terminal-preferences.c
index 0b49b5e..9bbbaa4 100644
--- a/terminal/terminal-preferences.c
+++ b/terminal/terminal-preferences.c
@@ -107,6 +107,7 @@ enum
PROP_WORD_CHARS,
PROP_TAB_ACTIVITY_COLOR,
PROP_TAB_ACTIVITY_TIMEOUT,
+ PROP_TAB_COLORS_LIST,
N_PROPERTIES,
};
@@ -237,7 +238,12 @@ transform_string_to_enum (const GValue *src,
g_value_set_enum (dst, genum_value->value);
}
-
+static void
+transform_hashtable_to_string (const GValue *src,
+ GValue *dst)
+{
+ //TODO
+}
G_DEFINE_TYPE (TerminalPreferences, terminal_preferences, G_TYPE_OBJECT)
@@ -283,6 +289,8 @@ terminal_preferences_class_init (TerminalPreferencesClass *klass)
g_value_register_transform_func (G_TYPE_STRING, TERMINAL_TYPE_ERASE_BINDING, transform_string_to_enum);
if (!g_value_type_transformable (G_TYPE_STRING, TERMINAL_TYPE_CURSOR_SHAPE))
g_value_register_transform_func (G_TYPE_STRING, TERMINAL_TYPE_CURSOR_SHAPE, transform_string_to_enum);
+// if (!g_value_type_transformable (G_TYPE_HASH_TABLE, G_TYPE_STRING))
+// g_value_register_transform_func (G_TYPE_HASH_TABLE, G_TYPE_STRING, transform_hashtable_to_string);
/**
* TerminalPreferences:background-mode:
@@ -961,6 +969,16 @@ terminal_preferences_class_init (TerminalPreferencesClass *klass)
"-A-Za-z0-9,./?%:_=+@~",
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ /**
+ * TerminalPreferences:title-mode:
+ **/
+ preferences_props[PROP_TAB_COLORS_LIST] =
+ g_param_spec_boxed ("tab-colors-list",
+ "TabColorsList",
+ "TabColorsList",
+ G_TYPE_HASH_TABLE,
+ G_PARAM_READWRITE);
+
/* install all properties */
g_object_class_install_properties (gobject_class, N_PROPERTIES, preferences_props);
}
diff --git a/terminal/terminal-screen.h b/terminal/terminal-screen.h
index 1351b5a..cf95ff3 100644
--- a/terminal/terminal-screen.h
+++ b/terminal/terminal-screen.h
@@ -108,6 +108,7 @@ void terminal_screen_search_find_next (TerminalScreen *scree
void terminal_screen_search_find_previous (TerminalScreen *screen);
void terminal_screen_update_font (TerminalScreen *screen);
+void terminal_screen_set_tab_color (TerminalScreen *screen);
void terminal_screen_set_input_enabled (TerminalScreen *screen,
gboolean enabled);
diff --git a/terminal/terminal-window-ui.xml b/terminal/terminal-window-ui.xml
index 9e50e82..62c9d50 100644
--- a/terminal/terminal-window-ui.xml
+++ b/terminal/terminal-window-ui.xml
@@ -40,6 +40,7 @@