--- a/ChangeLog.API Sat Sep 11 10:18:20 2021 -0500
+++ b/ChangeLog.API Sat Sep 11 10:19:20 2021 -0500
@@ -801,6 +801,7 @@
* pidgin_mini_dialog_links_supported
* pidgin_pixbuf_button_from_stock
* pidgin_pixbuf_toolbar_button_from_stock
+ * pidgin_dialogs_plugins_info * pidgin_pounce_editor_show
* pidgin_pounces_get_handle
--- a/pidgin/gtkdialogs.c Sat Sep 11 10:18:20 2021 -0500
+++ b/pidgin/gtkdialogs.c Sat Sep 11 10:19:20 2021 -0500
@@ -57,196 +57,6 @@
-static void destroy_win(GtkWidget *button, GtkWidget *win)
- gtk_widget_destroy(win);
-/* This function puts the version number onto the pixmap we use in the 'about'
-pidgin_logo_versionize(GdkPixbuf **original, GtkWidget *widget) {
- gint lwidth = 0, lheight = 0;
- style = gtk_widget_get_style(widget);
- gdk_pixbuf_render_pixmap_and_mask(*original, &pixmap, NULL, 255);
- width = gdk_pixbuf_get_width(*original);
- height = gdk_pixbuf_get_height(*original);
- g_object_unref(G_OBJECT(*original));
- context = gtk_widget_get_pango_context(widget);
- layout = pango_layout_new(context);
- markup = g_strdup_printf("<span foreground=\"#000000\">%s</span>", DISPLAY_VERSION);
- pango_layout_set_font_description(layout, style->font_desc);
- pango_layout_set_markup(layout, markup, strlen(markup));
- pango_layout_get_pixel_size(layout, &lwidth, &lheight);
- gdk_draw_layout(GDK_DRAWABLE(pixmap), style->bg_gc[GTK_STATE_NORMAL],
- width - (lwidth + 3), 1, layout);
- g_object_unref(G_OBJECT(layout));
- *original = gdk_pixbuf_get_from_drawable(NULL, pixmap, NULL,
- g_object_unref(G_OBJECT(pixmap));
-/* Note: Frees 'string' */
-pidgin_build_help_dialog(const char *title, const char *role, GString *string)
- GtkWidget *win, *vbox, *logo, *view, *button;
- win = pidgin_dialog_new(title, 0, role, TRUE);
- vbox = pidgin_dialog_get_vbox_with_properties(GTK_DIALOG(win), FALSE, 0);
- gtk_window_set_default_size(GTK_WINDOW(win), 475, 450);
- /* Generate a logo with a version number */
- filename = g_build_filename(PURPLE_DATADIR,
- "pixmaps", "pidgin", "logo.png", NULL);
- pixbuf = pidgin_pixbuf_new_from_file(filename);
- logo = gtk_image_new_from_pixbuf(pixbuf);
- g_object_unref(G_OBJECT(pixbuf));
- obj = gtk_widget_get_accessible(logo);
- tmp = g_strconcat(PIDGIN_NAME, " " DISPLAY_VERSION, NULL);
- atk_object_set_description(obj, tmp);
- gtk_box_pack_start(GTK_BOX(vbox), logo, FALSE, FALSE, 0);
- buffer = talkatu_html_buffer_new();
- talkatu_markup_append_html(TALKATU_BUFFER(buffer), string->str, -1);
- view = talkatu_view_new_with_buffer(buffer);
- gtk_box_pack_start(GTK_BOX(vbox), view, TRUE, TRUE, 0);
- button = pidgin_dialog_add_button(GTK_DIALOG(win), _("_Close"),
- G_CALLBACK(destroy_win), win);
- gtk_widget_set_can_default(button, TRUE);
- gtk_widget_grab_default(button);
- gtk_widget_show_all(win);
- gtk_window_present(GTK_WINDOW(win));
- g_string_free(string, TRUE);
-void pidgin_dialogs_plugins_info(void)
- GList *plugins, *l = NULL;
- PurplePlugin *plugin = NULL;
- PurplePluginInfo *info;
- GPluginPluginInfo *ginfo;
- PurplePluginExtraCb extra_cb;
- char *title = g_strdup_printf(_("%s Plugin Information"), PIDGIN_NAME);
- char *pname = NULL, *authors, *pauthors, *pextra;
- const char *pver, *plicense, *pwebsite, *pid;
- gboolean ploaded, ploadable;
- const char * const *authorlist;
- static GtkWidget *plugins_info = NULL;
- str = g_string_sized_new(4096);
- g_string_append_printf(str, "<h2>%s</h2><dl>", _("Plugin Information"));
- plugins = purple_plugins_find_all();
- for(l = plugins; l; l = l->next) {
- plugin = PURPLE_PLUGIN(l->data);
- info = purple_plugin_get_info(plugin);
- ginfo = GPLUGIN_PLUGIN_INFO(info);
- extra_cb = purple_plugin_info_get_extra_cb(info);
- pname = g_markup_escape_text(
- gplugin_plugin_info_get_name(ginfo), -1);
- authorlist = gplugin_plugin_info_get_authors(ginfo);
- authors = g_strjoinv(", ", (gchar **)authorlist);
- n_authors = g_strv_length((gchar **)authorlist);
- pauthors = g_markup_escape_text(authors, -1);
- pver = gplugin_plugin_info_get_version(ginfo);
- plicense = gplugin_plugin_info_get_license_id(ginfo);
- pwebsite = gplugin_plugin_info_get_website(ginfo);
- pid = gplugin_plugin_info_get_id(ginfo);
- ploadable = !purple_plugin_info_get_error(info);
- ploaded = purple_plugin_is_loaded(plugin);
- if (ploaded && extra_cb)
- pextra = extra_cb(plugin);
- g_string_append_printf(str, "<dt>%s</dt><dd>", pname);
- g_string_append_printf(str, "<b>%s:</b> %s<br/>",
- (n_authors > 1 ? "Authors" : "Author"),
- g_string_append_printf(str,
- "<b>Version:</b> %s<br/>"
- "<b>License:</b> %s<br/>"
- "<b>Website:</b> %s<br/>"
- "<b>ID String:</b> %s<br/>"
- "<b>Extra:</b> %s<br/>"
- "<b>Loadable:</b> %s<br/>"
- plicense ? plicense : "",
- pwebsite ? pwebsite : "",
- ploadable ? "Yes" : "<span style=\"color: #FF0000;\"><b>No</b></span>",
- ploaded ? "Yes" : "No");
- g_string_append(str, "</dl><br/>");
- plugins_info = pidgin_build_help_dialog(title, "plugins_info", str);
- g_signal_connect(G_OBJECT(plugins_info), "destroy",
- G_CALLBACK(gtk_widget_destroyed), &plugins_info);
pidgin_dialogs_im_cb(gpointer data, PurpleRequestFields *fields)
--- a/pidgin/gtkdialogs.h Sat Sep 11 10:18:20 2021 -0500
+++ b/pidgin/gtkdialogs.h Sat Sep 11 10:19:20 2021 -0500
@@ -38,14 +38,7 @@
/* Functions in gtkdialogs.c (these should actually stay in this file) */
void pidgin_dialogs_destroy_all(void);
- * pidgin_dialogs_plugins_info:
- * This should not be used by anything but Pidgin.
-void pidgin_dialogs_plugins_info(void);
void pidgin_dialogs_im(void);
void pidgin_dialogs_im_with_user(PurpleAccount *account, const char *username);
void pidgin_dialogs_info(void);