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",