comparison pidgin/gtkimhtml.c @ 18043:6b7b13adb9b1

propagate from branch 'im.pidgin.pidgin' (head ac83216c7b78e652b47f1fd0bcb91f1eaf2cdf36) to branch 'im.pidgin.pidgin.2.1.0' (head 30a48520e9bc26b0d3914edad456b063cd6cf9fe)
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Mon, 04 Jun 2007 23:48:54 +0000
parents 92e27556160c 38a72d6dce7f
children 58e28ccf08e6
comparison
equal deleted inserted replaced
18036:ee9f7ee0be66 18043:6b7b13adb9b1
1342 gtk_binding_entry_add_signal (binding_set, GDK_minus, GDK_CONTROL_MASK, "format_function_toggle", 1, G_TYPE_INT, GTK_IMHTML_SHRINK); 1342 gtk_binding_entry_add_signal (binding_set, GDK_minus, GDK_CONTROL_MASK, "format_function_toggle", 1, G_TYPE_INT, GTK_IMHTML_SHRINK);
1343 binding_set = gtk_binding_set_by_class(klass); 1343 binding_set = gtk_binding_set_by_class(klass);
1344 gtk_binding_entry_add_signal (binding_set, GDK_r, GDK_CONTROL_MASK, "format_function_clear", 0); 1344 gtk_binding_entry_add_signal (binding_set, GDK_r, GDK_CONTROL_MASK, "format_function_clear", 0);
1345 gtk_binding_entry_add_signal (binding_set, GDK_KP_Enter, 0, "message_send", 0); 1345 gtk_binding_entry_add_signal (binding_set, GDK_KP_Enter, 0, "message_send", 0);
1346 gtk_binding_entry_add_signal (binding_set, GDK_Return, 0, "message_send", 0); 1346 gtk_binding_entry_add_signal (binding_set, GDK_Return, 0, "message_send", 0);
1347 gtk_binding_entry_add_signal (binding_set, GDK_z, GDK_CONTROL_MASK, "undo", 0); 1347 gtk_binding_entry_add_signal (binding_set, GDK_z, GDK_CONTROL_MASK, "undo", 0);
1348 gtk_binding_entry_add_signal (binding_set, GDK_z, GDK_CONTROL_MASK | GDK_SHIFT_MASK, "redo", 0); 1348 gtk_binding_entry_add_signal (binding_set, GDK_z, GDK_CONTROL_MASK | GDK_SHIFT_MASK, "redo", 0);
1349 gtk_binding_entry_add_signal (binding_set, GDK_F14, 0, "undo", 0); 1349 gtk_binding_entry_add_signal (binding_set, GDK_F14, 0, "undo", 0);
1350 1350
1351 } 1351 }
1352 1352
1353 static void gtk_imhtml_init (GtkIMHtml *imhtml) 1353 static void gtk_imhtml_init (GtkIMHtml *imhtml)
1354 { 1354 {
4905 void gtk_imhtml_set_funcs(GtkIMHtml *imhtml, GtkIMHtmlFuncs *f) 4905 void gtk_imhtml_set_funcs(GtkIMHtml *imhtml, GtkIMHtmlFuncs *f)
4906 { 4906 {
4907 g_return_if_fail(imhtml != NULL); 4907 g_return_if_fail(imhtml != NULL);
4908 imhtml->funcs = f; 4908 imhtml->funcs = f;
4909 } 4909 }
4910
4911 void gtk_imhtml_setup_entry(GtkIMHtml *imhtml, PurpleConnectionFlags flags)
4912 {
4913 if (flags & PURPLE_CONNECTION_HTML) {
4914 char color[8];
4915 GdkColor fg_color, bg_color;
4916
4917 gtk_imhtml_set_format_functions(imhtml, GTK_IMHTML_ALL);
4918 if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/send_bold") != imhtml->edit.bold)
4919 gtk_imhtml_toggle_bold(imhtml);
4920
4921 if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/send_italic") != imhtml->edit.italic)
4922 gtk_imhtml_toggle_italic(imhtml);
4923
4924 if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/send_underline") != imhtml->edit.underline)
4925 gtk_imhtml_toggle_underline(imhtml);
4926
4927 gtk_imhtml_toggle_fontface(imhtml,
4928 purple_prefs_get_string(PIDGIN_PREFS_ROOT "/conversations/font_face"));
4929
4930 if (!(flags & PURPLE_CONNECTION_NO_FONTSIZE))
4931 {
4932 int size = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/conversations/font_size");
4933
4934 /* 3 is the default. */
4935 if (size != 3)
4936 gtk_imhtml_font_set_size(imhtml, size);
4937 }
4938
4939 if(strcmp(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/conversations/fgcolor"), "") != 0)
4940 {
4941 gdk_color_parse(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/conversations/fgcolor"),
4942 &fg_color);
4943 g_snprintf(color, sizeof(color), "#%02x%02x%02x",
4944 fg_color.red / 256,
4945 fg_color.green / 256,
4946 fg_color.blue / 256);
4947 } else
4948 strcpy(color, "");
4949
4950 gtk_imhtml_toggle_forecolor(imhtml, color);
4951
4952 if(!(flags & PURPLE_CONNECTION_NO_BGCOLOR) &&
4953 strcmp(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/conversations/bgcolor"), "") != 0)
4954 {
4955 gdk_color_parse(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/conversations/bgcolor"),
4956 &bg_color);
4957 g_snprintf(color, sizeof(color), "#%02x%02x%02x",
4958 bg_color.red / 256,
4959 bg_color.green / 256,
4960 bg_color.blue / 256);
4961 } else
4962 strcpy(color, "");
4963
4964 gtk_imhtml_toggle_background(imhtml, color);
4965
4966 if (flags & PURPLE_CONNECTION_FORMATTING_WBFO)
4967 gtk_imhtml_set_whole_buffer_formatting_only(imhtml, TRUE);
4968 else
4969 gtk_imhtml_set_whole_buffer_formatting_only(imhtml, FALSE);
4970 } else {
4971 imhtml_clear_formatting(imhtml);
4972 gtk_imhtml_set_format_functions(imhtml, 0);
4973 }
4974 }
4975
4976