GsApp *
gs_app_tile_get_app (GsAppTile *tile)
{
	GsAppTilePrivate *priv;

	g_return_val_if_fail (GS_IS_APP_TILE (tile), NULL);

	priv = gs_app_tile_get_instance_private (tile);
	return priv->app;
}
Exemple #2
0
GsApp *
gs_app_tile_get_app (GsAppTile *tile)
{
	GsAppTileClass *klass;

	g_return_val_if_fail (GS_IS_APP_TILE (tile), NULL);

	klass = GS_APP_TILE_GET_CLASS (tile);
	g_assert (klass->get_app);

	return klass->get_app(tile);
}
Exemple #3
0
void
gs_app_tile_set_app (GsAppTile *tile, GsApp *app)
{
	GsAppTileClass *klass;

	g_return_if_fail (GS_IS_APP_TILE (tile));
	g_return_if_fail (!app || GS_IS_APP (app));

	klass = GS_APP_TILE_GET_CLASS (tile);
	g_assert (klass->get_app);

	klass->set_app(tile, app);
}
void
gs_app_tile_set_app (GsAppTile *tile, GsApp *app)
{
	GsAppTilePrivate *priv;
	const gchar *summary;

	g_return_if_fail (GS_IS_APP_TILE (tile));
	g_return_if_fail (GS_IS_APP (app) || app == NULL);

	priv = gs_app_tile_get_instance_private (tile);

	gtk_image_clear (GTK_IMAGE (priv->image));
	gtk_image_set_pixel_size (GTK_IMAGE (priv->image), 64);

	if (priv->app)
		g_signal_handlers_disconnect_by_func (priv->app, app_state_changed, tile);

	g_clear_object (&priv->app);
	if (!app)
		return;
	priv->app = g_object_ref (app);
	if (gs_app_get_rating_kind (priv->app) == GS_APP_RATING_KIND_USER) {
		gs_star_widget_set_rating (GS_STAR_WIDGET (priv->stars),
					   GS_APP_RATING_KIND_USER,
					   gs_app_get_rating (priv->app));
	} else {
		gs_star_widget_set_rating (GS_STAR_WIDGET (priv->stars),
					   GS_APP_RATING_KIND_KUDOS,
					   gs_app_get_kudos_percentage (priv->app));
	}

	gtk_stack_set_visible_child_name (GTK_STACK (priv->stack), "content");

	g_signal_connect (priv->app, "notify::state",
			  G_CALLBACK (app_state_changed), tile);
	app_state_changed (priv->app, NULL, tile);

	gs_image_set_from_pixbuf (GTK_IMAGE (priv->image), gs_app_get_pixbuf (app));
	gtk_label_set_label (GTK_LABEL (priv->name), gs_app_get_name (app));
	summary = gs_app_get_summary (app);
	gtk_label_set_label (GTK_LABEL (priv->summary), summary);
	gtk_widget_set_visible (priv->summary, summary && summary[0]);
}