/** * gs_screenshot_image_get_desktop_pixbuf: **/ static GdkPixbuf * gs_screenshot_image_get_desktop_pixbuf (GsScreenshotImage *ssimg) { GsScreenshotImagePrivate *priv; _cleanup_object_unref_ GnomeBG *bg = NULL; _cleanup_object_unref_ GnomeDesktopThumbnailFactory *factory = NULL; _cleanup_object_unref_ GSettings *settings = NULL; priv = gs_screenshot_image_get_instance_private (ssimg); factory = gnome_desktop_thumbnail_factory_new (GNOME_DESKTOP_THUMBNAIL_SIZE_LARGE); bg = gnome_bg_new (); settings = g_settings_new ("org.gnome.desktop.background"); gnome_bg_load_from_preferences (bg, settings); return gnome_bg_create_thumbnail (bg, factory, gdk_screen_get_default (), priv->width, priv->height); }
static void athena_desktop_background_init (AthenaDesktopBackground *self) { self->details = G_TYPE_INSTANCE_GET_PRIVATE (self, ATHENA_TYPE_DESKTOP_BACKGROUND, AthenaDesktopBackgroundDetails); self->details->bg = gnome_bg_new (); self->details->default_color.red = 0xffff; self->details->default_color.green = 0xffff; self->details->default_color.blue = 0xffff; g_signal_connect (self->details->bg, "changed", G_CALLBACK (athena_desktop_background_changed), self); g_signal_connect (self->details->bg, "transitioned", G_CALLBACK (athena_desktop_background_transitioned), self); }
main (int argc, char *argv[]) { GOptionContext *context = NULL; GError *error = NULL; GdkScreen *screen; GdkRectangle rect; GnomeBG *bg; GSettings *settings; GdkPixbuf *pixbuf; gdk_init (&argc, &argv); context = g_option_context_new ("- refresh wallpaper cache"); g_option_context_add_main_entries (context, entries, NULL); if (!g_option_context_parse (context, &argc, &argv, &error)) { g_printerr ("option parsing failed: %s\n", error->message); g_option_context_free(context); g_error_free (error); return (1); } if (context) g_option_context_free (context); /* cache only the first monitor */ screen = gdk_screen_get_default (); gdk_screen_get_monitor_geometry (screen, 0, &rect); bg = gnome_bg_new (); settings = g_settings_new ("org.cinnamon.desktop.background"); gnome_bg_load_from_preferences (bg, settings); pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, rect.width, rect.height); gnome_bg_draw (bg, pixbuf, screen, FALSE); g_object_unref (settings); return (0); }
static void gs_manager_init (GSManager *manager) { manager->priv = GS_MANAGER_GET_PRIVATE (manager); manager->priv->fade = gs_fade_new (); manager->priv->grab = gs_grab_new (); manager->priv->settings = get_system_settings (); manager->priv->bg = gnome_bg_new (); g_signal_connect (manager->priv->bg, "changed", G_CALLBACK (on_bg_changed), manager); g_signal_connect (manager->priv->settings, "change-event", G_CALLBACK (background_settings_change_event_cb), manager); gnome_bg_load_from_preferences (manager->priv->bg, manager->priv->settings); }