diff src/dialogs.c @ 230:83dd297aa363

[gaim-migrate @ 240] Added a few patches from fflewddur to add default away messages, save prefs after deleting an away message, and *duh* *duh* *duh* *duh* presenting..... font face selection dialog! Thanks fflewddur. I also added a pixmap for font face to eventually go on the conversation windows, but I didn't implement it yet. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Wed, 10 May 2000 10:56:25 +0000
parents e8ea7f37e28f
children 4a638177f917
line wrap: on
line diff
--- a/src/dialogs.c	Wed May 10 08:29:02 2000 +0000
+++ b/src/dialogs.c	Wed May 10 10:56:25 2000 +0000
@@ -37,9 +37,16 @@
 #include "gaim.h"
 #include "gtkhtml.h"
 
+#define DEFAULT_FONT_NAME "-adobe-helvetica-medium-r-normal--12-120-75-75-p-67-iso8859-1"
+
+char *fontface;
+char *fontname;
+
 static GtkWidget *imdialog = NULL; /*I only want ONE of these :) */
 static GList *dialogwindows = NULL;
-static GtkWidget *linkdialog, *colordialog, *exportdialog, *importdialog, *logdialog;
+static GtkWidget *linkdialog, *colordialog, *exportdialog, *importdialog, *logdialog, *fontdialog;
+
+static void accept_callback(GtkWidget *widget, struct file_transfer *t);
 
 struct create_away {
         GtkWidget *window;
@@ -1933,6 +1940,74 @@
 }
 
 /*------------------------------------------------------------------------*/
+/*  Font Selection Dialog                                                 */
+/*------------------------------------------------------------------------*/
+
+void cancel_font(GtkWidget *widget, GtkWidget *font)
+{
+	if (font)
+    {
+		set_state_lock(1);
+        gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(font), FALSE);
+        set_state_lock(0);
+	}
+	
+	destroy_dialog(NULL, fontdialog);
+}
+
+void apply_font(GtkWidget *widget, GtkFontSelection *fontsel)
+{
+	/* this could be expanded to include font size, weight, etc.
+	   but for now only works with font face */
+	int i, j = 0, k = 0;
+
+	fontface = g_malloc(64);
+	fontname = gtk_font_selection_get_font_name(fontsel);
+	
+	for (i = 0; i < strlen(fontname); i++)
+	{
+		if (fontname[i] == '-')
+		{
+			if (++j > 2)
+				break;	
+		}		
+		else if (j == 2)
+			fontface[k++] = fontname[i];
+	}
+	fontface[k] = '\0';
+	
+	save_prefs();
+	
+	cancel_font(widget, NULL);	
+}
+
+void show_font_dialog(GtkWidget *widget, GtkWidget *font)
+{
+	GtkWidget *fontsel;
+
+	fontdialog = gtk_font_selection_dialog_new("Select Font");
+	fontsel = GTK_FONT_SELECTION_DIALOG(fontdialog)->fontsel;
+	
+	gtk_font_selection_dialog_set_font_name((GtkFontSelectionDialog *)fontdialog, DEFAULT_FONT_NAME);	
+	gtk_window_set_modal(GTK_WINDOW(fontdialog), TRUE);
+	gtk_signal_connect(GTK_OBJECT(fontdialog), "delete_event", GTK_SIGNAL_FUNC(cancel_font), font);
+	gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontdialog)->ok_button), "clicked", GTK_SIGNAL_FUNC(apply_font), fontsel);
+	gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontdialog)->cancel_button), "clicked", GTK_SIGNAL_FUNC(cancel_font), font);
+	
+	if (fontname)
+		gtk_font_selection_dialog_set_font_name((GtkFontSelectionDialog *)fontdialog, fontname);
+	else
+		gtk_font_selection_dialog_set_font_name((GtkFontSelectionDialog *)fontdialog, DEFAULT_FONT_NAME);		
+		
+	gtk_widget_realize(fontdialog);
+	
+	aol_icon(fontdialog->window);
+		
+	gtk_widget_show(fontdialog);
+	gdk_window_raise(fontdialog->window);
+}
+
+/*------------------------------------------------------------------------*/
 /*  The dialog for import/export                                          */
 /*------------------------------------------------------------------------*/
 
@@ -2014,7 +2089,7 @@
                                    GTK_SIGNAL_FUNC(destroy_dialog), exportdialog);
                 
                 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(exportdialog)->ok_button),
-                                   "clicked", GTK_SIGNAL_FUNC(do_export), 1);
+                                   "clicked", GTK_SIGNAL_FUNC(do_export), (void*)1);
                 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(exportdialog)->cancel_button),
                                    "clicked", GTK_SIGNAL_FUNC(destroy_dialog), exportdialog);
                 
@@ -2134,7 +2209,7 @@
                                    GTK_SIGNAL_FUNC(destroy_dialog), importdialog);
                 
                 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(importdialog)->ok_button),
-                                   "clicked", GTK_SIGNAL_FUNC(do_import), 1);
+                                   "clicked", GTK_SIGNAL_FUNC(do_import), (void*)1);
                 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(importdialog)->cancel_button),
                                    "clicked", GTK_SIGNAL_FUNC(destroy_dialog), importdialog);