| 1764 |
1764 |
| 1765 if (act == NULL) { |
1765 if (act == NULL) { |
| 1766 return pidgin_separator(menu); |
1766 return pidgin_separator(menu); |
| 1767 } |
1767 } |
| 1768 |
1768 |
| 1769 stock_id = purple_menu_action_get_stock_icon(act); |
1769 stock_id = purple_action_menu_get_stock_icon(act); |
| 1770 if (stock_id) { |
1770 if (stock_id) { |
| 1771 icon_image = gtk_image_new_from_stock(stock_id, |
1771 icon_image = gtk_image_new_from_stock(stock_id, |
| 1772 gtk_icon_size_from_name( |
1772 gtk_icon_size_from_name( |
| 1773 PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL)); |
1773 PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL)); |
| 1774 } |
1774 } |
| 1775 |
1775 |
| 1776 if (icon_image) { |
1776 if (icon_image) { |
| 1777 menuitem = gtk_image_menu_item_new_with_mnemonic( |
1777 menuitem = gtk_image_menu_item_new_with_mnemonic( |
| 1778 purple_menu_action_get_label(act)); |
1778 purple_action_menu_get_label(act)); |
| 1779 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), |
1779 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), |
| 1780 icon_image); |
1780 icon_image); |
| 1781 } else { |
1781 } else { |
| 1782 menuitem = gtk_menu_item_new_with_mnemonic( |
1782 menuitem = gtk_menu_item_new_with_mnemonic( |
| 1783 purple_menu_action_get_label(act)); |
1783 purple_action_menu_get_label(act)); |
| 1784 } |
1784 } |
| 1785 |
1785 |
| 1786 list = purple_menu_action_get_children(act); |
1786 list = purple_action_menu_get_children(act); |
| 1787 |
1787 |
| 1788 if (list == NULL) { |
1788 if (list == NULL) { |
| 1789 PurpleCallback callback; |
1789 PurpleCallback callback; |
| 1790 |
1790 |
| 1791 callback = purple_menu_action_get_callback(act); |
1791 callback = purple_action_menu_get_callback(act); |
| 1792 |
1792 |
| 1793 if (callback != NULL) { |
1793 if (callback != NULL) { |
| 1794 g_object_set_data(G_OBJECT(menuitem), |
1794 g_object_set_data(G_OBJECT(menuitem), |
| 1795 "purplecallback", |
1795 "purplecallback", |
| 1796 callback); |
1796 callback); |
| 1797 g_object_set_data(G_OBJECT(menuitem), |
1797 g_object_set_data(G_OBJECT(menuitem), |
| 1798 "purplecallbackdata", |
1798 "purplecallbackdata", |
| 1799 purple_menu_action_get_data(act)); |
1799 purple_action_menu_get_data(act)); |
| 1800 g_signal_connect(G_OBJECT(menuitem), "activate", |
1800 g_signal_connect(G_OBJECT(menuitem), "activate", |
| 1801 G_CALLBACK(menu_action_cb), |
1801 G_CALLBACK(menu_action_cb), |
| 1802 object); |
1802 object); |
| 1803 } else { |
1803 } else { |
| 1804 gtk_widget_set_sensitive(menuitem, FALSE); |
1804 gtk_widget_set_sensitive(menuitem, FALSE); |
| 1817 |
1817 |
| 1818 group = gtk_menu_get_accel_group(GTK_MENU(menu)); |
1818 group = gtk_menu_get_accel_group(GTK_MENU(menu)); |
| 1819 if (group) { |
1819 if (group) { |
| 1820 char *path = g_strdup_printf("%s/%s", |
1820 char *path = g_strdup_printf("%s/%s", |
| 1821 gtk_menu_item_get_accel_path(GTK_MENU_ITEM(menuitem)), |
1821 gtk_menu_item_get_accel_path(GTK_MENU_ITEM(menuitem)), |
| 1822 purple_menu_action_get_label(act)); |
1822 purple_action_menu_get_label(act)); |
| 1823 gtk_menu_set_accel_path(GTK_MENU(submenu), path); |
1823 gtk_menu_set_accel_path(GTK_MENU(submenu), path); |
| 1824 g_free(path); |
1824 g_free(path); |
| 1825 gtk_menu_set_accel_group(GTK_MENU(submenu), group); |
1825 gtk_menu_set_accel_group(GTK_MENU(submenu), group); |
| 1826 } |
1826 } |
| 1827 |
1827 |
| 1829 PurpleActionMenu *act = (PurpleActionMenu *)l->data; |
1829 PurpleActionMenu *act = (PurpleActionMenu *)l->data; |
| 1830 |
1830 |
| 1831 pidgin_append_menu_action(submenu, act, object); |
1831 pidgin_append_menu_action(submenu, act, object); |
| 1832 } |
1832 } |
| 1833 g_list_free(list); |
1833 g_list_free(list); |
| 1834 purple_menu_action_set_children(act, NULL); |
1834 purple_action_menu_set_children(act, NULL); |
| 1835 } |
1835 } |
| 1836 purple_menu_action_free(act); |
1836 purple_action_menu_free(act); |
| 1837 return menuitem; |
1837 return menuitem; |
| 1838 } |
1838 } |
| 1839 |
1839 |
| 1840 static gboolean buddyname_completion_match_func(GtkEntryCompletion *completion, |
1840 static gboolean buddyname_completion_match_func(GtkEntryCompletion *completion, |
| 1841 const gchar *key, GtkTreeIter *iter, gpointer user_data) |
1841 const gchar *key, GtkTreeIter *iter, gpointer user_data) |