src/gtkutils.c

changeset 7956
21d891f33b89
parent 7943
fd47c7b061f6
child 7988
fe4616ea76c3
equal deleted inserted replaced
7955:fdb05712d343 7956:21d891f33b89
617 static void 617 static void
618 protocol_menu_cb(GtkWidget *optmenu, GCallback cb) 618 protocol_menu_cb(GtkWidget *optmenu, GCallback cb)
619 { 619 {
620 GtkWidget *menu; 620 GtkWidget *menu;
621 GtkWidget *item; 621 GtkWidget *item;
622 GaimProtocol protocol; 622 const char *protocol;
623 gpointer user_data; 623 gpointer user_data;
624 624
625 menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(optmenu)); 625 menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(optmenu));
626 item = gtk_menu_get_active(GTK_MENU(menu)); 626 item = gtk_menu_get_active(GTK_MENU(menu));
627 627
628 protocol = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(item), "protocol")); 628 protocol = g_object_get_data(G_OBJECT(item), "protocol");
629 user_data = (g_object_get_data(G_OBJECT(optmenu), "user_data")); 629 user_data = (g_object_get_data(G_OBJECT(optmenu), "user_data"));
630 630
631 if (cb != NULL) 631 if (cb != NULL)
632 ((void (*)(GtkWidget *, GaimProtocol, gpointer))cb)(item, protocol, 632 ((void (*)(GtkWidget *, const char *, gpointer))cb)(item, protocol,
633 user_data); 633 user_data);
634 } 634 }
635 635
636 GtkWidget * 636 GtkWidget *
637 gaim_gtk_protocol_option_menu_new(GaimProtocol protocol, GCallback cb, 637 gaim_gtk_protocol_option_menu_new(const char *id, GCallback cb,
638 gpointer user_data) 638 gpointer user_data)
639 { 639 {
640 GaimPluginProtocolInfo *prpl_info; 640 GaimPluginProtocolInfo *prpl_info;
641 GaimPlugin *plugin; 641 GaimPlugin *plugin;
642 GtkWidget *hbox; 642 GtkWidget *hbox;
710 gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT); 710 gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);
711 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); 711 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
712 gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0); 712 gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0);
713 gtk_widget_show(label); 713 gtk_widget_show(label);
714 714
715 g_object_set_data(G_OBJECT(item), "protocol", 715 g_object_set_data(G_OBJECT(item), "protocol", plugin->info->id);
716 GINT_TO_POINTER(prpl_info->protocol));
717 716
718 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); 717 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
719 gtk_widget_show(item); 718 gtk_widget_show(item);
720 719
721 if (prpl_info->protocol == protocol) 720 if (!strcmp(plugin->info->id, id))
722 selected_index = i; 721 selected_index = i;
723 } 722 }
724 723
725 gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), menu); 724 gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), menu);
726 725
797 } 796 }
798 797
799 if (check_account_func && !check_account_func(account)) 798 if (check_account_func && !check_account_func(account))
800 continue; 799 continue;
801 800
802 plugin = gaim_find_prpl(gaim_account_get_protocol(account)); 801 plugin = gaim_find_prpl(gaim_account_get_protocol_id(account));
803 802
804 if (plugin != NULL) 803 if (plugin != NULL)
805 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(plugin); 804 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(plugin);
806 805
807 /* Create the item. */ 806 /* Create the item. */

mercurial