Lines Matching refs:menu
124 GMenuExporterMenu *menu; member
129 g_menu_exporter_menu_free (GMenuExporterMenu *menu) in g_menu_exporter_menu_free() argument
131 g_menu_exporter_group_remove_menu (menu->group, menu->id); in g_menu_exporter_menu_free()
133 if (menu->handler_id != 0) in g_menu_exporter_menu_free()
134 g_signal_handler_disconnect (menu->model, menu->handler_id); in g_menu_exporter_menu_free()
136 if (menu->item_links != NULL) in g_menu_exporter_menu_free()
137 g_sequence_free (menu->item_links); in g_menu_exporter_menu_free()
139 g_object_unref (menu->model); in g_menu_exporter_menu_free()
141 g_slice_free (GMenuExporterMenu, menu); in g_menu_exporter_menu_free()
154 g_menu_exporter_menu_free (tmp->menu); in g_menu_exporter_link_free()
162 g_menu_exporter_menu_create_links (GMenuExporterMenu *menu, in g_menu_exporter_menu_create_links() argument
170 iter = g_menu_model_iterate_item_links (menu->model, position); in g_menu_exporter_menu_create_links()
181 group = g_menu_exporter_create_group (g_menu_exporter_group_get_exporter (menu->group)); in g_menu_exporter_menu_create_links()
183 group = menu->group; in g_menu_exporter_menu_create_links()
187 tmp->menu = g_menu_exporter_group_add_menu (group, model); in g_menu_exporter_menu_create_links()
200 g_menu_exporter_menu_describe_item (GMenuExporterMenu *menu, in g_menu_exporter_menu_describe_item() argument
212 attr_iter = g_menu_model_iterate_item_attributes (menu->model, position); in g_menu_exporter_menu_describe_item()
220 iter = g_sequence_get_iter_at_pos (menu->item_links, position); in g_menu_exporter_menu_describe_item()
223 … g_variant_new ("(uu)", g_menu_exporter_group_get_id (link->menu->group), link->menu->id)); in g_menu_exporter_menu_describe_item()
229 g_menu_exporter_menu_list (GMenuExporterMenu *menu) in g_menu_exporter_menu_list() argument
236 n = g_sequence_get_length (menu->item_links); in g_menu_exporter_menu_list()
238 g_variant_builder_add_value (&builder, g_menu_exporter_menu_describe_item (menu, i)); in g_menu_exporter_menu_list()
250 GMenuExporterMenu *menu = user_data; in g_menu_exporter_menu_items_changed() local
254 g_assert (menu->model == model); in g_menu_exporter_menu_items_changed()
255 g_assert (menu->item_links != NULL); in g_menu_exporter_menu_items_changed()
256 g_assert (position + removed <= g_sequence_get_length (menu->item_links)); in g_menu_exporter_menu_items_changed()
258 point = g_sequence_get_iter_at_pos (menu->item_links, position + removed); in g_menu_exporter_menu_items_changed()
259 g_sequence_remove_range (g_sequence_get_iter_at_pos (menu->item_links, position), point); in g_menu_exporter_menu_items_changed()
262 g_sequence_insert_before (point, g_menu_exporter_menu_create_links (menu, i)); in g_menu_exporter_menu_items_changed()
264 if (g_menu_exporter_group_is_subscribed (menu->group)) in g_menu_exporter_menu_items_changed()
269 g_variant_builder_add (&builder, "u", g_menu_exporter_group_get_id (menu->group)); in g_menu_exporter_menu_items_changed()
270 g_variant_builder_add (&builder, "u", menu->id); in g_menu_exporter_menu_items_changed()
276 g_variant_builder_add_value (&builder, g_menu_exporter_menu_describe_item (menu, i)); in g_menu_exporter_menu_items_changed()
279 …g_menu_exporter_report (g_menu_exporter_group_get_exporter (menu->group), g_variant_builder_end (&… in g_menu_exporter_menu_items_changed()
284 g_menu_exporter_menu_prepare (GMenuExporterMenu *menu) in g_menu_exporter_menu_prepare() argument
288 g_assert (menu->item_links == NULL); in g_menu_exporter_menu_prepare()
290 if (g_menu_model_is_mutable (menu->model)) in g_menu_exporter_menu_prepare()
291 menu->handler_id = g_signal_connect (menu->model, "items-changed", in g_menu_exporter_menu_prepare()
292 G_CALLBACK (g_menu_exporter_menu_items_changed), menu); in g_menu_exporter_menu_prepare()
294 menu->item_links = g_sequence_new (g_menu_exporter_link_free); in g_menu_exporter_menu_prepare()
296 n_items = g_menu_model_get_n_items (menu->model); in g_menu_exporter_menu_prepare()
298 g_menu_exporter_menu_items_changed (menu->model, 0, 0, n_items, menu); in g_menu_exporter_menu_prepare()
306 GMenuExporterMenu *menu; in g_menu_exporter_menu_new() local
308 menu = g_slice_new0 (GMenuExporterMenu); in g_menu_exporter_menu_new()
309 menu->group = group; in g_menu_exporter_menu_new()
310 menu->id = id; in g_menu_exporter_menu_new()
311 menu->model = g_object_ref (model); in g_menu_exporter_menu_new()
313 return menu; in g_menu_exporter_menu_new()
352 GMenuExporterMenu *menu; in g_menu_exporter_group_subscribe() local
360 menu = g_hash_table_lookup (group->menus, 0); in g_menu_exporter_group_subscribe()
368 if (menu) in g_menu_exporter_group_subscribe()
369 g_menu_exporter_menu_prepare (menu); in g_menu_exporter_group_subscribe()
378 GMenuExporterMenu *menu = val; in g_menu_exporter_group_subscribe() local
380 if (!g_sequence_is_empty (menu->item_links)) in g_menu_exporter_group_subscribe()
385 g_variant_builder_add_value (builder, g_menu_exporter_menu_list (menu)); in g_menu_exporter_group_subscribe()
433 GMenuExporterMenu *menu; in g_menu_exporter_group_add_menu() local
437 menu = g_menu_exporter_menu_new (group, id, model); in g_menu_exporter_group_add_menu()
438 g_hash_table_insert (group->menus, GINT_TO_POINTER (id), menu); in g_menu_exporter_group_add_menu()
441 g_menu_exporter_menu_prepare (menu); in g_menu_exporter_group_add_menu()
443 return menu; in g_menu_exporter_group_add_menu()
782 GMenuModel *menu, in g_dbus_connection_export_menu_model() argument
806 exporter->root = g_menu_exporter_group_add_menu (g_menu_exporter_create_group (exporter), menu); in g_dbus_connection_export_menu_model()