898
898
return g_simple_action_group_lookup (app->source_actions, source_id) != NULL;
902
g_menu_find_item_with_action (GMenu *menu,
908
GMenuItem *item = NULL;
910
n_elements = g_menu_model_get_n_items (G_MENU_MODEL (menu));
912
for (i = 0; i < n_elements && item == NULL; i++)
916
item = g_menu_item_new_from_model (G_MENU_MODEL (menu), i);
917
attr = g_menu_item_get_attribute_value (item, G_MENU_ATTRIBUTE_ACTION, G_VARIANT_TYPE_STRING);
919
if (!g_str_equal (action, g_variant_get_string (attr, NULL)))
920
g_clear_object (&item);
922
g_variant_unref (attr);
932
g_menu_replace_item (GMenu *menu,
936
g_menu_remove (menu, pos);
937
g_menu_insert_item (menu, pos, item);
941
* messaging_menu_app_set_source_label:
942
* @app: a #MessagingMenuApp
943
* @source_id: a source id
944
* @label: the new label for the source
946
* Changes the label of @source_id to @label.
949
messaging_menu_app_set_source_label (MessagingMenuApp *app,
950
const gchar *source_id,
956
g_return_if_fail (MESSAGING_MENU_IS_APP (app));
957
g_return_if_fail (source_id != NULL);
958
g_return_if_fail (label != NULL);
960
item = g_menu_find_item_with_action (app->menu, source_id, &pos);
964
g_menu_item_set_attribute (item, G_MENU_ATTRIBUTE_LABEL, "s", label);
965
g_menu_replace_item (app->menu, pos, item);
967
g_object_unref (item);
971
* messaging_menu_app_set_source_icon:
972
* @app: a #MessagingMenuApp
973
* @source_id: a source id
974
* @icon: the new icon for the source
976
* Changes the icon of @source_id to @icon.
979
messaging_menu_app_set_source_icon (MessagingMenuApp *app,
980
const gchar *source_id,
987
g_return_if_fail (MESSAGING_MENU_IS_APP (app));
988
g_return_if_fail (source_id != NULL);
990
item = g_menu_find_item_with_action (app->menu, source_id, &pos);
994
iconstr = icon ? g_icon_to_string (icon) : NULL;
995
g_menu_item_set_attribute (item, "x-canonical-icon", "s", iconstr);
996
g_menu_replace_item (app->menu, pos, item);
999
g_object_unref (item);
902
1003
* messaging_menu_app_set_source_count:
903
1004
* @app: a #MessagingMenuApp