Mercurial > pidgin.yaz
comparison pidgin/gtkimhtmltoolbar.c @ 25637:92e71f6e10d4
Patch from Marcus Lundblad ('mlundblad') to improve audio support in xmpp.
It's now possible to initiate an audio session, sometimes. It's somewhat
buggy.
Some other issues also need to be resolved:
* Properly get rid of the compile warnings
* Rename the serv_ functions with proper namespacing.
* Possibly rename the purple_media_ functions that don't deal with a
PurpleMedia (e.g. purple_media_audio_init_src) to something different,
e.g. purple_media_util_, or even purple_gst_util etc.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Sat, 22 Mar 2008 04:45:46 +0000 |
parents | 35d5b7804449 |
children | cbe97caec684 ff29208e03ef |
comparison
equal
deleted
inserted
replaced
25636:e4a4bc86c547 | 25637:92e71f6e10d4 |
---|---|
37 #include "gtkdialogs.h" | 37 #include "gtkdialogs.h" |
38 #include "gtkimhtmltoolbar.h" | 38 #include "gtkimhtmltoolbar.h" |
39 #include "gtkthemes.h" | 39 #include "gtkthemes.h" |
40 #include "gtkutils.h" | 40 #include "gtkutils.h" |
41 | 41 |
42 #include "debug.h" | |
43 | |
42 #include <gdk/gdkkeysyms.h> | 44 #include <gdk/gdkkeysyms.h> |
43 | 45 |
44 static GtkHBoxClass *parent_class = NULL; | 46 static GtkHBoxClass *parent_class = NULL; |
45 | 47 |
46 static void toggle_button_set_active_block(GtkToggleButton *button, | 48 static void toggle_button_set_active_block(GtkToggleButton *button, |
446 gtk_widget_grab_focus(toolbar->imhtml); | 448 gtk_widget_grab_focus(toolbar->imhtml); |
447 } | 449 } |
448 | 450 |
449 static void insert_hr_cb(GtkWidget *widget, GtkIMHtmlToolbar *toolbar) | 451 static void insert_hr_cb(GtkWidget *widget, GtkIMHtmlToolbar *toolbar) |
450 { | 452 { |
451 GtkTextIter iter; | 453 GtkTextIter iter; |
452 GtkTextMark *ins; | 454 GtkTextMark *ins; |
453 GtkIMHtmlScalable *hr; | 455 GtkIMHtmlScalable *hr; |
454 | 456 |
455 ins = gtk_text_buffer_get_insert(gtk_text_view_get_buffer(GTK_TEXT_VIEW(toolbar->imhtml))); | 457 ins = gtk_text_buffer_get_insert(gtk_text_view_get_buffer(GTK_TEXT_VIEW(toolbar->imhtml))); |
456 gtk_text_buffer_get_iter_at_mark(gtk_text_view_get_buffer(GTK_TEXT_VIEW(toolbar->imhtml)), &iter, ins); | 458 gtk_text_buffer_get_iter_at_mark(gtk_text_view_get_buffer(GTK_TEXT_VIEW(toolbar->imhtml)), &iter, ins); |
457 hr = gtk_imhtml_hr_new(); | 459 hr = gtk_imhtml_hr_new(); |
458 gtk_imhtml_hr_add_to(hr, GTK_IMHTML(toolbar->imhtml), &iter); | 460 gtk_imhtml_hr_add_to(hr, GTK_IMHTML(toolbar->imhtml), &iter); |
459 } | 461 } |
460 | 462 |
461 static void | 463 static void |
786 toolbar->smiley_dialog = dialog; | 788 toolbar->smiley_dialog = dialog; |
787 | 789 |
788 gtk_widget_grab_focus(toolbar->imhtml); | 790 gtk_widget_grab_focus(toolbar->imhtml); |
789 } | 791 } |
790 | 792 |
793 #ifdef USE_FARSIGHT | |
794 static void | |
795 init_voice_call_cb(GtkWidget *smiley, GtkIMHtmlToolbar *toolbar) | |
796 { | |
797 purple_debug_info("gtkimhtmltoolbar", "Call clicked!\n"); | |
798 } | |
799 #endif | |
800 | |
791 static void update_buttons_cb(GtkIMHtml *imhtml, GtkIMHtmlButtons buttons, GtkIMHtmlToolbar *toolbar) | 801 static void update_buttons_cb(GtkIMHtml *imhtml, GtkIMHtmlButtons buttons, GtkIMHtmlToolbar *toolbar) |
792 { | 802 { |
793 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->bold), buttons & GTK_IMHTML_BOLD); | 803 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->bold), buttons & GTK_IMHTML_BOLD); |
794 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->italic), buttons & GTK_IMHTML_ITALIC); | 804 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->italic), buttons & GTK_IMHTML_ITALIC); |
795 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->underline), buttons & GTK_IMHTML_UNDERLINE); | 805 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->underline), buttons & GTK_IMHTML_UNDERLINE); |
814 buttons & GTK_IMHTML_BACKCOLOR)); | 824 buttons & GTK_IMHTML_BACKCOLOR)); |
815 | 825 |
816 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->image), buttons & GTK_IMHTML_IMAGE); | 826 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->image), buttons & GTK_IMHTML_IMAGE); |
817 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->link), buttons & GTK_IMHTML_LINK); | 827 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->link), buttons & GTK_IMHTML_LINK); |
818 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->smiley), buttons & GTK_IMHTML_SMILEY); | 828 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->smiley), buttons & GTK_IMHTML_SMILEY); |
829 #ifdef USE_FARSIGHT | |
830 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->call), buttons & GTK_IMHTML_CALL); | |
831 #endif | |
819 } | 832 } |
820 | 833 |
821 /* we call this when we want to _set_active the toggle button, it'll | 834 /* we call this when we want to _set_active the toggle button, it'll |
822 * block the callback thats connected to the button so we don't have to | 835 * block the callback thats connected to the button so we don't have to |
823 * do the double toggling hack | 836 * do the double toggling hack |
1102 {PIDGIN_STOCK_CLEAR, clear_formatting_cb, &toolbar->clear, _("Reset Formatting")}, | 1115 {PIDGIN_STOCK_CLEAR, clear_formatting_cb, &toolbar->clear, _("Reset Formatting")}, |
1103 {"", NULL, NULL, NULL}, | 1116 {"", NULL, NULL, NULL}, |
1104 {PIDGIN_STOCK_TOOLBAR_INSERT_LINK, insert_link_cb, &toolbar->link, _("Insert Link")}, | 1117 {PIDGIN_STOCK_TOOLBAR_INSERT_LINK, insert_link_cb, &toolbar->link, _("Insert Link")}, |
1105 {PIDGIN_STOCK_TOOLBAR_INSERT_IMAGE, insert_image_cb, &toolbar->image, _("Insert IM Image")}, | 1118 {PIDGIN_STOCK_TOOLBAR_INSERT_IMAGE, insert_image_cb, &toolbar->image, _("Insert IM Image")}, |
1106 {PIDGIN_STOCK_TOOLBAR_SMILEY, insert_smiley_cb, &toolbar->smiley, _("Insert Smiley")}, | 1119 {PIDGIN_STOCK_TOOLBAR_SMILEY, insert_smiley_cb, &toolbar->smiley, _("Insert Smiley")}, |
1120 #ifdef USE_FARSIGHT | |
1121 {"", NULL, NULL, NULL}, | |
1122 {PIDGIN_STOCK_TOOLBAR_CALL, init_voice_call_cb, &toolbar->call, _("Call")}, | |
1123 #endif | |
1107 {NULL, NULL, NULL, NULL} | 1124 {NULL, NULL, NULL, NULL} |
1108 }; | 1125 }; |
1109 int iter; | 1126 int iter; |
1110 | 1127 |
1111 hbox = gtk_hbox_new(FALSE, 0); | 1128 hbox = gtk_hbox_new(FALSE, 0); |
1167 GtkWidget *image; | 1184 GtkWidget *image; |
1168 GtkWidget *label; | 1185 GtkWidget *label; |
1169 GtkWidget *insert_button; | 1186 GtkWidget *insert_button; |
1170 GtkWidget *font_button; | 1187 GtkWidget *font_button; |
1171 GtkWidget *smiley_button; | 1188 GtkWidget *smiley_button; |
1189 | |
1190 #ifdef USE_FARSIGHT | |
1191 GtkWidget *call_button; | |
1192 #endif /* USE_FARSIGHT */ | |
1193 | |
1172 GtkWidget *font_menu; | 1194 GtkWidget *font_menu; |
1173 GtkWidget *insert_menu; | 1195 GtkWidget *insert_menu; |
1174 GtkWidget *menuitem; | 1196 GtkWidget *menuitem; |
1175 GtkWidget *sep; | 1197 GtkWidget *sep; |
1176 int i; | 1198 int i; |
1308 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0); | 1330 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0); |
1309 gtk_box_pack_start(GTK_BOX(box), smiley_button, FALSE, FALSE, 0); | 1331 gtk_box_pack_start(GTK_BOX(box), smiley_button, FALSE, FALSE, 0); |
1310 g_signal_connect_swapped(G_OBJECT(smiley_button), "clicked", G_CALLBACK(gtk_button_clicked), toolbar->smiley); | 1332 g_signal_connect_swapped(G_OBJECT(smiley_button), "clicked", G_CALLBACK(gtk_button_clicked), toolbar->smiley); |
1311 gtk_widget_show_all(smiley_button); | 1333 gtk_widget_show_all(smiley_button); |
1312 | 1334 |
1335 #ifdef USE_FARSIGHT | |
1336 /* Sep */ | |
1337 sep = gtk_vseparator_new(); | |
1338 gtk_box_pack_start(GTK_BOX(box), sep, FALSE, FALSE, 0); | |
1339 gtk_widget_show_all(sep); | |
1340 | |
1341 /* Call */ | |
1342 call_button = gtk_button_new(); | |
1343 gtk_button_set_relief(GTK_BUTTON(call_button), GTK_RELIEF_NONE); | |
1344 bbox = gtk_hbox_new(FALSE, 3); | |
1345 gtk_container_add(GTK_CONTAINER(call_button), bbox); | |
1346 image = gtk_image_new_from_stock(PIDGIN_STOCK_TOOLBAR_CALL, | |
1347 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL)); | |
1348 gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0); | |
1349 label = gtk_label_new_with_mnemonic(_("Call")); | |
1350 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0); | |
1351 gtk_box_pack_start(GTK_BOX(box), call_button, FALSE, FALSE, 0); | |
1352 g_signal_connect_swapped(G_OBJECT(call_button), "clicked", G_CALLBACK(gtk_button_clicked), toolbar->call); | |
1353 gtk_widget_show_all(call_button); | |
1354 | |
1355 #endif /* USE_FARSIGHT */ | |
1356 | |
1313 gtk_box_pack_start(GTK_BOX(hbox), box, FALSE, FALSE, 0); | 1357 gtk_box_pack_start(GTK_BOX(hbox), box, FALSE, FALSE, 0); |
1314 g_object_set_data(G_OBJECT(hbox), "lean-view", box); | 1358 g_object_set_data(G_OBJECT(hbox), "lean-view", box); |
1315 gtk_widget_show(box); | 1359 gtk_widget_show(box); |
1316 | 1360 |
1317 purple_prefs_connect_callback(toolbar, PIDGIN_PREFS_ROOT "/conversations/toolbar/wide", | 1361 purple_prefs_connect_callback(toolbar, PIDGIN_PREFS_ROOT "/conversations/toolbar/wide", |