pidgin/plugins/xmppconsole/xmppconsole.c

changeset 41471
00f6072095a3
parent 41410
3c68dae90dc5
child 41531
2b86501d13fe
equal deleted inserted replaced
41470:70522200fe58 41471:00f6072095a3
581 581
582 /****************************************************************************** 582 /******************************************************************************
583 * Plugin implementation 583 * Plugin implementation
584 *****************************************************************************/ 584 *****************************************************************************/
585 static void 585 static void
586 create_console(PurplePluginAction *action) 586 create_console(G_GNUC_UNUSED GSimpleAction *action,
587 G_GNUC_UNUSED GVariant *parameter, G_GNUC_UNUSED gpointer data)
587 { 588 {
588 if (console == NULL) { 589 if (console == NULL) {
589 console = g_object_new(PIDGIN_TYPE_XMPP_CONSOLE, NULL); 590 console = g_object_new(PIDGIN_TYPE_XMPP_CONSOLE, NULL);
590 g_object_add_weak_pointer(G_OBJECT(console), (gpointer)&console); 591 g_object_add_weak_pointer(G_OBJECT(console), (gpointer)&console);
591 } 592 }
592 593
593 gtk_window_present(GTK_WINDOW(console)); 594 gtk_window_present(GTK_WINDOW(console));
594 } 595 }
595 596
596 static GList *
597 actions(PurplePlugin *plugin)
598 {
599 GList *l = NULL;
600 PurplePluginAction *act = NULL;
601
602 act = purple_plugin_action_new(_("XMPP Console"), create_console);
603 l = g_list_append(l, act);
604
605 return l;
606 }
607
608 static GPluginPluginInfo * 597 static GPluginPluginInfo *
609 xmpp_console_query(GError **error) 598 xmpp_console_query(GError **error)
610 { 599 {
600 GActionEntry entries[] = {
601 {
602 .name = "console",
603 .activate = create_console,
604 }
605 };
606 GMenu *menu = NULL;
607 GSimpleActionGroup *group = NULL;
611 const gchar * const authors[] = { 608 const gchar * const authors[] = {
612 "Sean Egan <seanegan@gmail.com>", 609 "Sean Egan <seanegan@gmail.com>",
613 NULL 610 NULL
614 }; 611 };
612
613 group = g_simple_action_group_new();
614 g_action_map_add_action_entries(G_ACTION_MAP(group), entries,
615 G_N_ELEMENTS(entries), NULL);
616
617 menu = g_menu_new();
618 g_menu_append(menu, _("XMPP Console"), "console");
615 619
616 return pidgin_plugin_info_new( 620 return pidgin_plugin_info_new(
617 "id", PLUGIN_ID, 621 "id", PLUGIN_ID,
618 "name", N_("XMPP Console"), 622 "name", N_("XMPP Console"),
619 "version", DISPLAY_VERSION, 623 "version", DISPLAY_VERSION,
622 "description", N_("This plugin is useful for debugging XMPP servers " 626 "description", N_("This plugin is useful for debugging XMPP servers "
623 "or clients."), 627 "or clients."),
624 "authors", authors, 628 "authors", authors,
625 "website", PURPLE_WEBSITE, 629 "website", PURPLE_WEBSITE,
626 "abi-version", PURPLE_ABI_VERSION, 630 "abi-version", PURPLE_ABI_VERSION,
627 "actions-cb", actions, 631 "action-group", group,
632 "action-menu", menu,
628 NULL 633 NULL
629 ); 634 );
630 } 635 }
631 636
632 static gboolean 637 static gboolean

mercurial