| 516 box = pidgin_plugin_get_config_frame(plug); |
516 box = pidgin_plugin_get_config_frame(plug); |
| 517 if (box == NULL) |
517 if (box == NULL) |
| 518 break; |
518 break; |
| 519 |
519 |
| 520 dialog = gtk_dialog_new_with_buttons(PIDGIN_ALERT_TITLE, GTK_WINDOW(d), |
520 dialog = gtk_dialog_new_with_buttons(PIDGIN_ALERT_TITLE, GTK_WINDOW(d), |
| 521 GTK_DIALOG_NO_SEPARATOR | GTK_DIALOG_DESTROY_WITH_PARENT, |
521 GTK_DIALOG_DESTROY_WITH_PARENT, |
| 522 GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, |
522 GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, |
| 523 NULL); |
523 NULL); |
| 524 if (plugin_pref_dialogs == NULL) |
524 if (plugin_pref_dialogs == NULL) |
| 525 plugin_pref_dialogs = g_hash_table_new(NULL, NULL); |
525 plugin_pref_dialogs = g_hash_table_new(NULL, NULL); |
| 526 |
526 |
| 527 g_hash_table_insert(plugin_pref_dialogs, plug, dialog); |
527 g_hash_table_insert(plugin_pref_dialogs, plug, dialog); |
| 528 |
528 |
| 529 g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(pref_dialog_response_cb), plug); |
529 g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(pref_dialog_response_cb), plug); |
| 530 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), box); |
530 gtk_container_add(GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), box); |
| 531 gtk_window_set_role(GTK_WINDOW(dialog), "plugin_config"); |
531 gtk_window_set_role(GTK_WINDOW(dialog), "plugin_config"); |
| 532 gtk_window_set_title(GTK_WINDOW(dialog), _(purple_plugin_get_name(plug))); |
532 gtk_window_set_title(GTK_WINDOW(dialog), _(purple_plugin_get_name(plug))); |
| 533 gtk_widget_show_all(dialog); |
533 gtk_widget_show_all(dialog); |
| 534 g_value_unset(&val); |
534 g_value_unset(&val); |
| 535 break; |
535 break; |
| 560 |
560 |
| 561 static gboolean |
561 static gboolean |
| 562 pidgin_plugins_paint_tooltip(GtkWidget *tipwindow, gpointer data) |
562 pidgin_plugins_paint_tooltip(GtkWidget *tipwindow, gpointer data) |
| 563 { |
563 { |
| 564 PangoLayout *layout = g_object_get_data(G_OBJECT(tipwindow), "tooltip-plugin"); |
564 PangoLayout *layout = g_object_get_data(G_OBJECT(tipwindow), "tooltip-plugin"); |
| 565 gtk_paint_layout(tipwindow->style, tipwindow->window, GTK_STATE_NORMAL, FALSE, |
565 cairo_t *cr = gdk_cairo_create(GDK_DRAWABLE(gtk_widget_get_window(tipwindow))); |
| 566 NULL, tipwindow, "tooltip", |
566 gtk_paint_layout(gtk_widget_get_style(tipwindow), cr, GTK_STATE_NORMAL, FALSE, |
| |
567 tipwindow, "tooltip", |
| 567 6, 6, layout); |
568 6, 6, layout); |
| 568 return TRUE; |
569 cairo_destroy(cr); |
| |
570 |
| |
571 return TRUE; |
| 569 } |
572 } |
| 570 |
573 |
| 571 static gboolean |
574 static gboolean |
| 572 pidgin_plugins_create_tooltip(GtkWidget *tipwindow, GtkTreePath *path, |
575 pidgin_plugins_create_tooltip(GtkWidget *tipwindow, GtkTreePath *path, |
| 573 gpointer data, int *w, int *h) |
576 gpointer data, int *w, int *h) |
| 718 return; |
721 return; |
| 719 } |
722 } |
| 720 |
723 |
| 721 plugin_dialog = gtk_dialog_new_with_buttons(_("Plugins"), |
724 plugin_dialog = gtk_dialog_new_with_buttons(_("Plugins"), |
| 722 NULL, |
725 NULL, |
| 723 GTK_DIALOG_NO_SEPARATOR, |
726 0, |
| 724 NULL); |
727 NULL); |
| |
728 |
| 725 pref_button = gtk_dialog_add_button(GTK_DIALOG(plugin_dialog), |
729 pref_button = gtk_dialog_add_button(GTK_DIALOG(plugin_dialog), |
| 726 _("Configure Pl_ugin"), PIDGIN_RESPONSE_CONFIGURE); |
730 _("Configure Pl_ugin"), PIDGIN_RESPONSE_CONFIGURE); |
| 727 gtk_dialog_add_button(GTK_DIALOG(plugin_dialog), |
731 gtk_dialog_add_button(GTK_DIALOG(plugin_dialog), |
| 728 GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE); |
732 GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE); |
| 729 gtk_widget_set_sensitive(pref_button, FALSE); |
733 gtk_widget_set_sensitive(pref_button, FALSE); |
| 731 |
735 |
| 732 sw = gtk_scrolled_window_new(NULL,NULL); |
736 sw = gtk_scrolled_window_new(NULL,NULL); |
| 733 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); |
737 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); |
| 734 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
738 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
| 735 |
739 |
| 736 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(plugin_dialog)->vbox), sw, TRUE, TRUE, 0); |
740 gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(plugin_dialog))), |
| |
741 sw, TRUE, TRUE, 0); |
| 737 |
742 |
| 738 ls = gtk_list_store_new(4, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_BOOLEAN); |
743 ls = gtk_list_store_new(4, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_BOOLEAN); |
| 739 gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(ls), |
744 gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(ls), |
| 740 1, GTK_SORT_ASCENDING); |
745 1, GTK_SORT_ASCENDING); |
| 741 |
746 |
| 791 |
796 |
| 792 expander = gtk_expander_new(_("<b>Plugin Details</b>")); |
797 expander = gtk_expander_new(_("<b>Plugin Details</b>")); |
| 793 gtk_expander_set_use_markup(GTK_EXPANDER(expander), TRUE); |
798 gtk_expander_set_use_markup(GTK_EXPANDER(expander), TRUE); |
| 794 gtk_widget_set_sensitive(expander, FALSE); |
799 gtk_widget_set_sensitive(expander, FALSE); |
| 795 gtk_container_add(GTK_CONTAINER(expander), create_details()); |
800 gtk_container_add(GTK_CONTAINER(expander), create_details()); |
| 796 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(plugin_dialog)->vbox), expander, |
801 gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(plugin_dialog))), |
| 797 FALSE, FALSE, 0); |
802 expander, FALSE, FALSE, 0); |
| 798 |
803 |
| 799 |
804 |
| 800 g_signal_connect (G_OBJECT (sel), "changed", G_CALLBACK (prefs_plugin_sel), NULL); |
805 g_signal_connect (G_OBJECT (sel), "changed", G_CALLBACK (prefs_plugin_sel), NULL); |
| 801 g_signal_connect(G_OBJECT(plugin_dialog), "response", G_CALLBACK(plugin_dialog_response_cb), sel); |
806 g_signal_connect(G_OBJECT(plugin_dialog), "response", G_CALLBACK(plugin_dialog_response_cb), sel); |
| 802 gtk_window_set_default_size(GTK_WINDOW(plugin_dialog), 430, 530); |
807 gtk_window_set_default_size(GTK_WINDOW(plugin_dialog), 430, 530); |