|
@@ -33,11 +33,45 @@ static void mssh_pref_font_select(GtkWidget *widget, gpointer data)
|
|
|
gconf_client_set_string(client, MSSH_GCONF_KEY_FONT, font, NULL);
|
|
|
}
|
|
|
|
|
|
+static void mssh_pref_fg_colour_select(GtkWidget *widget, gpointer data)
|
|
|
+{
|
|
|
+ GConfClient *client;
|
|
|
+ GdkColor colour;
|
|
|
+ const gchar *colour_s;
|
|
|
+
|
|
|
+ client = gconf_client_get_default();
|
|
|
+
|
|
|
+ gtk_color_button_get_color(GTK_COLOR_BUTTON(widget), &colour);
|
|
|
+ colour_s = gdk_color_to_string(&colour);
|
|
|
+
|
|
|
+ gconf_client_set_string(client, MSSH_GCONF_KEY_FG_COLOUR, colour_s,
|
|
|
+ NULL);
|
|
|
+}
|
|
|
+
|
|
|
+static void mssh_pref_bg_colour_select(GtkWidget *widget, gpointer data)
|
|
|
+{
|
|
|
+ GConfClient *client;
|
|
|
+ GdkColor colour;
|
|
|
+ const gchar *colour_s;
|
|
|
+
|
|
|
+ client = gconf_client_get_default();
|
|
|
+
|
|
|
+ gtk_color_button_get_color(GTK_COLOR_BUTTON(widget), &colour);
|
|
|
+ colour_s = gdk_color_to_string(&colour);
|
|
|
+
|
|
|
+ gconf_client_set_string(client, MSSH_GCONF_KEY_BG_COLOUR, colour_s,
|
|
|
+ NULL);
|
|
|
+}
|
|
|
+
|
|
|
static void mssh_pref_init(MSSHPref* pref)
|
|
|
{
|
|
|
GConfClient *client;
|
|
|
GConfEntry *entry;
|
|
|
GConfValue *value;
|
|
|
+ GdkVisual *visual = gdk_visual_get_system();
|
|
|
+ GdkColormap *colour_map = gdk_colormap_new(visual, TRUE);
|
|
|
+ GdkColor colour;
|
|
|
+ const gchar *colour_s;
|
|
|
|
|
|
GtkWidget *frame = gtk_vbox_new(FALSE, 5);
|
|
|
GtkWidget *notebook = gtk_notebook_new();
|
|
@@ -50,7 +84,7 @@ static void mssh_pref_init(MSSHPref* pref)
|
|
|
GtkWidget *colour_table = gtk_table_new(2, 2, FALSE);
|
|
|
GtkWidget *bg_colour_label = gtk_label_new("Background:");
|
|
|
GtkWidget *bg_colour_select = gtk_color_button_new();
|
|
|
- GtkWidget *fg_colour_label = gtk_label_new("Forground:");
|
|
|
+ GtkWidget *fg_colour_label = gtk_label_new("Foreground:");
|
|
|
GtkWidget *fg_colour_select = gtk_color_button_new();
|
|
|
|
|
|
GtkWidget *exit_check = gtk_check_button_new_with_label(
|
|
@@ -126,6 +160,10 @@ static void mssh_pref_init(MSSHPref* pref)
|
|
|
|
|
|
g_signal_connect(G_OBJECT(font_select), "font-set",
|
|
|
G_CALLBACK(mssh_pref_font_select), NULL);
|
|
|
+ g_signal_connect(G_OBJECT(fg_colour_select), "color-set",
|
|
|
+ G_CALLBACK(mssh_pref_fg_colour_select), NULL);
|
|
|
+ g_signal_connect(G_OBJECT(bg_colour_select), "color-set",
|
|
|
+ G_CALLBACK(mssh_pref_bg_colour_select), NULL);
|
|
|
|
|
|
client = gconf_client_get_default();
|
|
|
|
|
@@ -134,6 +172,24 @@ static void mssh_pref_init(MSSHPref* pref)
|
|
|
value = gconf_entry_get_value(entry);
|
|
|
gtk_font_button_set_font_name(GTK_FONT_BUTTON(font_select),
|
|
|
gconf_value_get_string(value));
|
|
|
+
|
|
|
+ entry = gconf_client_get_entry(client, MSSH_GCONF_KEY_FG_COLOUR, NULL,
|
|
|
+ TRUE, NULL);
|
|
|
+ value = gconf_entry_get_value(entry);
|
|
|
+ colour_s = gconf_value_get_string(value);
|
|
|
+ gdk_colormap_alloc_color(colour_map, &colour, TRUE, TRUE);
|
|
|
+ gdk_color_parse(colour_s, &colour);
|
|
|
+ gtk_color_button_set_color(GTK_COLOR_BUTTON(fg_colour_select),
|
|
|
+ &colour);
|
|
|
+
|
|
|
+ entry = gconf_client_get_entry(client, MSSH_GCONF_KEY_BG_COLOUR, NULL,
|
|
|
+ TRUE, NULL);
|
|
|
+ value = gconf_entry_get_value(entry);
|
|
|
+ colour_s = gconf_value_get_string(value);
|
|
|
+ gdk_colormap_alloc_color(colour_map, &colour, TRUE, TRUE);
|
|
|
+ gdk_color_parse(colour_s, &colour);
|
|
|
+ gtk_color_button_set_color(GTK_COLOR_BUTTON(bg_colour_select),
|
|
|
+ &colour);
|
|
|
}
|
|
|
|
|
|
static void mssh_pref_class_init(MSSHPrefClass *klass)
|