static void impl_dispose (GObject *object) { RBDisplayPageMenu *menu; menu = RB_DISPLAY_PAGE_MENU (object); if (menu->priv->model) { g_signal_handlers_disconnect_by_data (menu->priv->model, menu); g_clear_object (&menu->priv->model); } g_clear_object (&menu->priv->root_page); G_OBJECT_CLASS (rb_display_page_menu_parent_class)->dispose (object); }
static void impl_constructed (GObject *object) { RBDisplayPageMenu *menu; RB_CHAIN_GOBJECT_METHOD (rb_display_page_menu_parent_class, constructed, object); menu = RB_DISPLAY_PAGE_MENU (object); g_signal_connect (menu->priv->real_model, "row-inserted", G_CALLBACK (row_inserted_cb), menu); g_signal_connect (menu->priv->real_model, "row-deleted", G_CALLBACK (row_deleted_cb), menu); g_signal_connect (menu->priv->real_model, "row-changed", G_CALLBACK (row_changed_cb), menu); g_signal_connect (menu->priv->real_model, "rows-reordered", G_CALLBACK (rows_reordered_cb), menu); rebuild_menu (menu); }
static void impl_constructed (GObject *object) { RBDisplayPageMenu *menu; GtkTreeModel *real_model; RB_CHAIN_GOBJECT_METHOD (rb_display_page_menu_parent_class, constructed, object); menu = RB_DISPLAY_PAGE_MENU (object); real_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (menu->priv->model)); g_signal_connect (real_model, "row-inserted", G_CALLBACK (row_inserted_cb), menu); g_signal_connect (real_model, "row-deleted", G_CALLBACK (row_deleted_cb), menu); g_signal_connect (real_model, "row-changed", G_CALLBACK (row_changed_cb), menu); g_signal_connect (real_model, "rows-reordered", G_CALLBACK (rows_reordered_cb), menu); rebuild_menu (menu); }
static void impl_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { RBDisplayPageMenu *menu = RB_DISPLAY_PAGE_MENU (object); switch (prop_id) { case PROP_MODEL: g_value_set_object (value, menu->priv->model); break; case PROP_ROOT_PAGE: g_value_set_object (value, menu->priv->root_page); break; case PROP_PAGE_TYPE: g_value_set_gtype (value, menu->priv->page_type); break; case PROP_ACTION: g_value_set_string (value, menu->priv->action); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }
static void impl_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { RBDisplayPageMenu *menu = RB_DISPLAY_PAGE_MENU (object); switch (prop_id) { case PROP_MODEL: menu->priv->model = g_value_get_object (value); menu->priv->real_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (menu->priv->model)); break; case PROP_ROOT_PAGE: menu->priv->root_page = g_value_get_object (value); break; case PROP_PAGE_TYPE: menu->priv->page_type = g_value_get_gtype (value); break; case PROP_ACTION: menu->priv->action = g_value_dup_string (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }
static int impl_get_n_items (GMenuModel *menu_model) { RBDisplayPageMenu *menu = RB_DISPLAY_PAGE_MENU (menu_model); return menu->priv->item_count; }