comparison 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
comparison
equal deleted inserted replaced
229:e8ea7f37e28f 230:83dd297aa363
35 35
36 #include <gtk/gtk.h> 36 #include <gtk/gtk.h>
37 #include "gaim.h" 37 #include "gaim.h"
38 #include "gtkhtml.h" 38 #include "gtkhtml.h"
39 39
40 #define DEFAULT_FONT_NAME "-adobe-helvetica-medium-r-normal--12-120-75-75-p-67-iso8859-1"
41
42 char *fontface;
43 char *fontname;
44
40 static GtkWidget *imdialog = NULL; /*I only want ONE of these :) */ 45 static GtkWidget *imdialog = NULL; /*I only want ONE of these :) */
41 static GList *dialogwindows = NULL; 46 static GList *dialogwindows = NULL;
42 static GtkWidget *linkdialog, *colordialog, *exportdialog, *importdialog, *logdialog; 47 static GtkWidget *linkdialog, *colordialog, *exportdialog, *importdialog, *logdialog, *fontdialog;
48
49 static void accept_callback(GtkWidget *widget, struct file_transfer *t);
43 50
44 struct create_away { 51 struct create_away {
45 GtkWidget *window; 52 GtkWidget *window;
46 GtkWidget *entry; 53 GtkWidget *entry;
47 GtkWidget *text; 54 GtkWidget *text;
1928 1935
1929 } 1936 }
1930 1937
1931 gtk_widget_show(colordialog); 1938 gtk_widget_show(colordialog);
1932 gdk_window_raise(colordialog->window); 1939 gdk_window_raise(colordialog->window);
1940 }
1941
1942 /*------------------------------------------------------------------------*/
1943 /* Font Selection Dialog */
1944 /*------------------------------------------------------------------------*/
1945
1946 void cancel_font(GtkWidget *widget, GtkWidget *font)
1947 {
1948 if (font)
1949 {
1950 set_state_lock(1);
1951 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(font), FALSE);
1952 set_state_lock(0);
1953 }
1954
1955 destroy_dialog(NULL, fontdialog);
1956 }
1957
1958 void apply_font(GtkWidget *widget, GtkFontSelection *fontsel)
1959 {
1960 /* this could be expanded to include font size, weight, etc.
1961 but for now only works with font face */
1962 int i, j = 0, k = 0;
1963
1964 fontface = g_malloc(64);
1965 fontname = gtk_font_selection_get_font_name(fontsel);
1966
1967 for (i = 0; i < strlen(fontname); i++)
1968 {
1969 if (fontname[i] == '-')
1970 {
1971 if (++j > 2)
1972 break;
1973 }
1974 else if (j == 2)
1975 fontface[k++] = fontname[i];
1976 }
1977 fontface[k] = '\0';
1978
1979 save_prefs();
1980
1981 cancel_font(widget, NULL);
1982 }
1983
1984 void show_font_dialog(GtkWidget *widget, GtkWidget *font)
1985 {
1986 GtkWidget *fontsel;
1987
1988 fontdialog = gtk_font_selection_dialog_new("Select Font");
1989 fontsel = GTK_FONT_SELECTION_DIALOG(fontdialog)->fontsel;
1990
1991 gtk_font_selection_dialog_set_font_name((GtkFontSelectionDialog *)fontdialog, DEFAULT_FONT_NAME);
1992 gtk_window_set_modal(GTK_WINDOW(fontdialog), TRUE);
1993 gtk_signal_connect(GTK_OBJECT(fontdialog), "delete_event", GTK_SIGNAL_FUNC(cancel_font), font);
1994 gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontdialog)->ok_button), "clicked", GTK_SIGNAL_FUNC(apply_font), fontsel);
1995 gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontdialog)->cancel_button), "clicked", GTK_SIGNAL_FUNC(cancel_font), font);
1996
1997 if (fontname)
1998 gtk_font_selection_dialog_set_font_name((GtkFontSelectionDialog *)fontdialog, fontname);
1999 else
2000 gtk_font_selection_dialog_set_font_name((GtkFontSelectionDialog *)fontdialog, DEFAULT_FONT_NAME);
2001
2002 gtk_widget_realize(fontdialog);
2003
2004 aol_icon(fontdialog->window);
2005
2006 gtk_widget_show(fontdialog);
2007 gdk_window_raise(fontdialog->window);
1933 } 2008 }
1934 2009
1935 /*------------------------------------------------------------------------*/ 2010 /*------------------------------------------------------------------------*/
1936 /* The dialog for import/export */ 2011 /* The dialog for import/export */
1937 /*------------------------------------------------------------------------*/ 2012 /*------------------------------------------------------------------------*/
2012 gtk_file_selection_set_filename(GTK_FILE_SELECTION(exportdialog), buf); 2087 gtk_file_selection_set_filename(GTK_FILE_SELECTION(exportdialog), buf);
2013 gtk_signal_connect(GTK_OBJECT(exportdialog), "destroy", 2088 gtk_signal_connect(GTK_OBJECT(exportdialog), "destroy",
2014 GTK_SIGNAL_FUNC(destroy_dialog), exportdialog); 2089 GTK_SIGNAL_FUNC(destroy_dialog), exportdialog);
2015 2090
2016 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(exportdialog)->ok_button), 2091 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(exportdialog)->ok_button),
2017 "clicked", GTK_SIGNAL_FUNC(do_export), 1); 2092 "clicked", GTK_SIGNAL_FUNC(do_export), (void*)1);
2018 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(exportdialog)->cancel_button), 2093 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(exportdialog)->cancel_button),
2019 "clicked", GTK_SIGNAL_FUNC(destroy_dialog), exportdialog); 2094 "clicked", GTK_SIGNAL_FUNC(destroy_dialog), exportdialog);
2020 2095
2021 2096
2022 } 2097 }
2132 gtk_file_selection_set_filename(GTK_FILE_SELECTION(importdialog), buf); 2207 gtk_file_selection_set_filename(GTK_FILE_SELECTION(importdialog), buf);
2133 gtk_signal_connect(GTK_OBJECT(importdialog), "destroy", 2208 gtk_signal_connect(GTK_OBJECT(importdialog), "destroy",
2134 GTK_SIGNAL_FUNC(destroy_dialog), importdialog); 2209 GTK_SIGNAL_FUNC(destroy_dialog), importdialog);
2135 2210
2136 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(importdialog)->ok_button), 2211 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(importdialog)->ok_button),
2137 "clicked", GTK_SIGNAL_FUNC(do_import), 1); 2212 "clicked", GTK_SIGNAL_FUNC(do_import), (void*)1);
2138 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(importdialog)->cancel_button), 2213 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(importdialog)->cancel_button),
2139 "clicked", GTK_SIGNAL_FUNC(destroy_dialog), importdialog); 2214 "clicked", GTK_SIGNAL_FUNC(destroy_dialog), importdialog);
2140 2215
2141 2216
2142 } 2217 }