Mercurial > pidgin.yaz
comparison src/dialogs.c @ 234:985635758c33
[gaim-migrate @ 244]
More patches from fflew. This adds a font selector to the conversation window,
among other things.
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Tue, 16 May 2000 20:48:47 +0000 |
parents | 4a638177f917 |
children | 62d470738cc7 |
comparison
equal
deleted
inserted
replaced
233:b8c5efaef154 | 234:985635758c33 |
---|---|
282 if (dest == colordialog) | 282 if (dest == colordialog) |
283 colordialog = NULL; | 283 colordialog = NULL; |
284 | 284 |
285 if (dest == linkdialog) | 285 if (dest == linkdialog) |
286 linkdialog = NULL; | 286 linkdialog = NULL; |
287 | |
288 if (dest == fontdialog) | |
289 fontdialog = NULL; | |
287 | 290 |
288 dialogwindows = g_list_remove(dialogwindows, dest); | 291 dialogwindows = g_list_remove(dialogwindows, dest); |
289 gtk_widget_destroy(dest); | 292 gtk_widget_destroy(dest); |
290 | 293 |
291 } | 294 } |
332 if (logdialog) { | 335 if (logdialog) { |
333 destroy_dialog(NULL, logdialog); | 336 destroy_dialog(NULL, logdialog); |
334 logdialog = NULL; | 337 logdialog = NULL; |
335 } | 338 } |
336 | 339 |
340 if (fontdialog) { | |
341 destroy_dialog(NULL, fontdialog); | |
342 fontdialog = NULL; | |
343 } | |
337 } | 344 } |
338 | 345 |
339 static void do_warn(GtkWidget *widget, struct warning *w) | 346 static void do_warn(GtkWidget *widget, struct warning *w) |
340 { | 347 { |
341 serv_warn(w->who, (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w->anon))) ? | 348 serv_warn(w->who, (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w->anon))) ? |
1941 | 1948 |
1942 /*------------------------------------------------------------------------*/ | 1949 /*------------------------------------------------------------------------*/ |
1943 /* Font Selection Dialog */ | 1950 /* Font Selection Dialog */ |
1944 /*------------------------------------------------------------------------*/ | 1951 /*------------------------------------------------------------------------*/ |
1945 | 1952 |
1946 void cancel_font(GtkWidget *widget, GtkWidget *font) | 1953 void cancel_font(GtkWidget *widget, GtkWidget *window) |
1947 { | 1954 { |
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); | 1955 destroy_dialog(NULL, fontdialog); |
1956 } | 1956 } |
1957 | 1957 |
1958 void apply_font(GtkWidget *widget, GtkFontSelection *fontsel) | 1958 void apply_font(GtkWidget *widget, GtkFontSelection *fontsel) |
1959 { | 1959 { |
1960 /* this could be expanded to include font size, weight, etc. | 1960 /* this could be expanded to include font size, weight, etc. |
1961 but for now only works with font face */ | 1961 but for now only works with font face */ |
1962 int i, j = 0, k = 0; | 1962 int i, j = 0, k = 0; |
1963 | 1963 struct conversation *c = gtk_object_get_user_data(GTK_OBJECT(fontsel)); |
1964 fontface = g_malloc(64); | 1964 |
1965 fontname = gtk_font_selection_get_font_name(fontsel); | 1965 if (c) |
1966 | |
1967 for (i = 0; i < strlen(fontname); i++) | |
1968 { | 1966 { |
1969 if (fontname[i] == '-') | 1967 g_free(c->current_fontname); |
1968 g_free(c->current_fontface); | |
1969 c->current_fontface = g_malloc(64); | |
1970 c->current_fontname = gtk_font_selection_get_font_name(fontsel); | |
1971 | |
1972 for (i = 0; i < strlen(c->current_fontname); i++) | |
1970 { | 1973 { |
1971 if (++j > 2) | 1974 if (c->current_fontname[i] == '-') |
1972 break; | 1975 { |
1973 } | 1976 if (++j > 2) |
1974 else if (j == 2) | 1977 break; |
1975 fontface[k++] = fontname[i]; | 1978 } |
1976 } | 1979 else if (j == 2) |
1977 fontface[k] = '\0'; | 1980 c->current_fontface[k++] = c->current_fontname[i]; |
1978 | 1981 } |
1979 save_prefs(); | 1982 c->current_fontface[k] = '\0'; |
1980 | 1983 |
1981 cancel_font(widget, NULL); | 1984 set_font_face(NULL, c); |
1985 } | |
1986 else | |
1987 { | |
1988 if (fontface) | |
1989 g_free(fontface); | |
1990 | |
1991 fontface = g_malloc(64); | |
1992 fontname = gtk_font_selection_get_font_name(fontsel); | |
1993 | |
1994 for (i = 0; i < strlen(fontname); i++) | |
1995 { | |
1996 if (fontname[i] == '-') | |
1997 { | |
1998 if (++j > 2) | |
1999 break; | |
2000 } | |
2001 else if (j == 2) | |
2002 fontface[k++] = fontname[i]; | |
2003 } | |
2004 fontface[k] = '\0'; | |
2005 | |
2006 save_prefs(); | |
2007 } | |
2008 | |
2009 cancel_font(widget, NULL); | |
1982 } | 2010 } |
1983 | 2011 |
1984 void show_font_dialog(GtkWidget *widget, GtkWidget *font) | 2012 void show_font_dialog(GtkWidget *widget, GtkWidget *font) |
1985 { | 2013 { |
1986 GtkWidget *fontsel; | 2014 GtkWidget *fontsel; |
1987 | 2015 |
1988 fontdialog = gtk_font_selection_dialog_new("Select Font"); | 2016 fontdialog = gtk_font_selection_dialog_new("Select Font"); |
1989 fontsel = GTK_FONT_SELECTION_DIALOG(fontdialog)->fontsel; | 2017 fontsel = GTK_FONT_SELECTION_DIALOG(fontdialog)->fontsel; |
1990 | 2018 |
2019 if (font) | |
2020 gtk_object_set_user_data(GTK_OBJECT(fontsel), gtk_object_get_user_data(GTK_OBJECT(font))); | |
2021 else | |
2022 gtk_object_set_user_data(GTK_OBJECT(fontsel), NULL); | |
2023 | |
1991 gtk_font_selection_dialog_set_font_name((GtkFontSelectionDialog *)fontdialog, DEFAULT_FONT_NAME); | 2024 gtk_font_selection_dialog_set_font_name((GtkFontSelectionDialog *)fontdialog, DEFAULT_FONT_NAME); |
1992 gtk_window_set_modal(GTK_WINDOW(fontdialog), TRUE); | 2025 gtk_window_set_modal(GTK_WINDOW(fontdialog), TRUE); |
1993 gtk_signal_connect(GTK_OBJECT(fontdialog), "delete_event", GTK_SIGNAL_FUNC(cancel_font), font); | 2026 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); | 2027 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); | 2028 gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontdialog)->cancel_button), "clicked", GTK_SIGNAL_FUNC(cancel_font), font); |