Mercurial > pidgin
comparison src/gtkimhtmltoolbar.c @ 9025:b24967757d46
[gaim-migrate @ 9801]
"
- Fixed text-decoration: underline; parsing from being dependent on font-size
specified
- IM HTML Toolbar dialogs now automatically fill with the color/font for the
current text
- Made most of the IMHTML formatting buttons fire signals where appropriate
- Implemented a global on or off "Send default formatting with outgoing
messages" option
- If user previously sent a font name, we assume they want formatting on,
otherwise it defaults to off.
- Removed font and color from the GaimGtkConversation struct, because this
wasn't being used anywhere, by anything and just resulted in more confusing
code.
- Removed three functions related to the struct, including one that was
declared, but never actually written.
- Added get_current_fontface, get_current_fontsize, get_current_forecolor,
get_current_backcolor to gtk_imhtml_* to get the formatting at the cursor
(or whole buffer when wbfo is on)
- Removed all dialogs used only by the old default formatting preferences from
dialogs.c
- When font background, color, or face are "disabled" they are stored as an
empty string in their prefs.
- Fixed a bug where NULL for background, color, or face did not remove the
tags in wbfo
" all that, quoth SimGuy
committer: Tailor Script <tailor@pidgin.im>
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Sun, 23 May 2004 03:54:20 +0000 |
parents | 4ff4c34b7500 |
children | 1bd8bda384e7 |
comparison
equal
deleted
inserted
replaced
9024:85caba2f820a | 9025:b24967757d46 |
---|---|
151 } | 151 } |
152 | 152 |
153 static void | 153 static void |
154 toggle_font(GtkWidget *font, GtkIMHtmlToolbar *toolbar) | 154 toggle_font(GtkWidget *font, GtkIMHtmlToolbar *toolbar) |
155 { | 155 { |
156 #if 0 | 156 const char *fontname; |
157 char fonttif[128]; | |
158 const char *fontface; | |
159 #endif | |
160 | 157 |
161 g_return_if_fail(toolbar); | 158 g_return_if_fail(toolbar); |
159 | |
160 fontname = gtk_imhtml_get_current_fontface(GTK_IMHTML(toolbar->imhtml)); | |
162 | 161 |
163 if (!toolbar->font_dialog) { | 162 if (!toolbar->font_dialog) { |
164 toolbar->font_dialog = gtk_font_selection_dialog_new(_("Select Font")); | 163 toolbar->font_dialog = gtk_font_selection_dialog_new(_("Select Font")); |
165 | 164 |
166 g_object_set_data(G_OBJECT(toolbar->font_dialog), "gaim_toolbar", toolbar); | 165 g_object_set_data(G_OBJECT(toolbar->font_dialog), "gaim_toolbar", toolbar); |
167 | 166 |
168 /* if (gtkconv->fontface[0]) { | 167 if(fontname) { |
169 g_snprintf(fonttif, sizeof(fonttif), "%s 12", gtkconv->fontface); | 168 char fonttif[128]; |
170 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(gtkconv->dialogs.font), | 169 g_snprintf(fonttif, sizeof(fonttif), "%s 12", fontname); |
171 fonttif); | 170 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(toolbar->font_dialog), |
172 } else { | 171 fonttif); |
173 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(gtkconv->dialogs.font), | 172 } else { |
174 DEFAULT_FONT_FACE); | 173 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(toolbar->font_dialog), |
175 } | 174 DEFAULT_FONT_FACE); |
176 */ | 175 } |
177 | 176 |
178 g_signal_connect(G_OBJECT(toolbar->font_dialog), "delete_event", | 177 g_signal_connect(G_OBJECT(toolbar->font_dialog), "delete_event", |
179 G_CALLBACK(destroy_toolbar_font), toolbar); | 178 G_CALLBACK(destroy_toolbar_font), toolbar); |
180 g_signal_connect(G_OBJECT(GTK_FONT_SELECTION_DIALOG(toolbar->font_dialog)->ok_button), "clicked", | 179 g_signal_connect(G_OBJECT(GTK_FONT_SELECTION_DIALOG(toolbar->font_dialog)->ok_button), "clicked", |
181 G_CALLBACK(apply_font), toolbar->font_dialog); | 180 G_CALLBACK(apply_font), toolbar->font_dialog); |
229 static void | 228 static void |
230 toggle_fg_color(GtkWidget *color, GtkIMHtmlToolbar *toolbar) | 229 toggle_fg_color(GtkWidget *color, GtkIMHtmlToolbar *toolbar) |
231 { | 230 { |
232 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(color))) { | 231 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(color))) { |
233 GtkWidget *colorsel; | 232 GtkWidget *colorsel; |
234 /* GdkColor fgcolor; */ | 233 GdkColor fgcolor; |
235 | 234 const char *color = gtk_imhtml_get_current_forecolor(GTK_IMHTML(toolbar->imhtml)); |
236 /*gdk_color_parse(gaim_prefs_get_string("/gaim/gtk/conversations/fgcolor"), | 235 |
237 &fgcolor);*/ | |
238 if (!toolbar->fgcolor_dialog) { | 236 if (!toolbar->fgcolor_dialog) { |
239 | 237 |
240 toolbar->fgcolor_dialog = gtk_color_selection_dialog_new(_("Select Text Color")); | 238 toolbar->fgcolor_dialog = gtk_color_selection_dialog_new(_("Select Text Color")); |
241 colorsel = GTK_COLOR_SELECTION_DIALOG(toolbar->fgcolor_dialog)->colorsel; | 239 colorsel = GTK_COLOR_SELECTION_DIALOG(toolbar->fgcolor_dialog)->colorsel; |
242 //gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &fgcolor); | 240 if (color) { |
241 gdk_color_parse(color, &fgcolor); | |
242 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &fgcolor); | |
243 } | |
244 | |
243 g_object_set_data(G_OBJECT(colorsel), "gaim_toolbar", toolbar); | 245 g_object_set_data(G_OBJECT(colorsel), "gaim_toolbar", toolbar); |
244 | 246 |
245 g_signal_connect(G_OBJECT(toolbar->fgcolor_dialog), "delete_event", | 247 g_signal_connect(G_OBJECT(toolbar->fgcolor_dialog), "delete_event", |
246 G_CALLBACK(destroy_toolbar_fgcolor), toolbar); | 248 G_CALLBACK(destroy_toolbar_fgcolor), toolbar); |
247 g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(toolbar->fgcolor_dialog)->ok_button), "clicked", | 249 g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(toolbar->fgcolor_dialog)->ok_button), "clicked", |
299 static void | 301 static void |
300 toggle_bg_color(GtkWidget *color, GtkIMHtmlToolbar *toolbar) | 302 toggle_bg_color(GtkWidget *color, GtkIMHtmlToolbar *toolbar) |
301 { | 303 { |
302 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(color))) { | 304 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(color))) { |
303 GtkWidget *colorsel; | 305 GtkWidget *colorsel; |
304 /* GdkColor bgcolor; */ | 306 GdkColor bgcolor; |
305 | 307 const char *color = gtk_imhtml_get_current_backcolor(GTK_IMHTML(toolbar->imhtml)); |
306 /*gdk_color_parse(gaim_prefs_get_string("/gaim/gtk/conversations/bgcolor"), | 308 |
307 &bgcolor);*/ | |
308 if (!toolbar->bgcolor_dialog) { | 309 if (!toolbar->bgcolor_dialog) { |
309 | 310 |
310 toolbar->bgcolor_dialog = gtk_color_selection_dialog_new(_("Select Background Color")); | 311 toolbar->bgcolor_dialog = gtk_color_selection_dialog_new(_("Select Background Color")); |
311 colorsel = GTK_COLOR_SELECTION_DIALOG(toolbar->bgcolor_dialog)->colorsel; | 312 colorsel = GTK_COLOR_SELECTION_DIALOG(toolbar->bgcolor_dialog)->colorsel; |
312 //gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &bgcolor); | 313 if (color) { |
314 gdk_color_parse(color, &bgcolor); | |
315 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &bgcolor); | |
316 } | |
317 | |
313 g_object_set_data(G_OBJECT(colorsel), "gaim_toolbar", toolbar); | 318 g_object_set_data(G_OBJECT(colorsel), "gaim_toolbar", toolbar); |
314 | 319 |
315 g_signal_connect(G_OBJECT(toolbar->bgcolor_dialog), "delete_event", | 320 g_signal_connect(G_OBJECT(toolbar->bgcolor_dialog), "delete_event", |
316 G_CALLBACK(destroy_toolbar_bgcolor), toolbar); | 321 G_CALLBACK(destroy_toolbar_bgcolor), toolbar); |
317 g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(toolbar->bgcolor_dialog)->ok_button), "clicked", | 322 g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(toolbar->bgcolor_dialog)->ok_button), "clicked", |