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);
}
Example #2
0
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);
}
Example #4
0
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;
	}
}
Example #5
0
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;
	}
}
Example #6
0
static int
impl_get_n_items (GMenuModel *menu_model)
{
	RBDisplayPageMenu *menu = RB_DISPLAY_PAGE_MENU (menu_model);
	return menu->priv->item_count;
}