static void rstto_settings_init (GObject *object) { gchar *accelmap_path = NULL; RsttoSettings *settings = RSTTO_SETTINGS (object); settings->priv = g_new0 (RsttoSettingsPriv, 1); settings->priv->channel = xfconf_channel_new ("ristretto"); accelmap_path = xfce_resource_lookup (XFCE_RESOURCE_CONFIG, "ristretto/accels.scm"); if (accelmap_path) { gtk_accel_map_load (accelmap_path); g_free (accelmap_path); accelmap_path = NULL; } else { /* If the accels.scm file is missing, we are probably * dealing with a first-boot. Add default accelerators. */ gtk_accel_map_change_entry ("<Window>/fullscreen", GDK_KEY_F, 0, FALSE); gtk_accel_map_change_entry ("<Window>/unfullscreen", GDK_KEY_Escape, 0, FALSE); gtk_accel_map_change_entry ("<Window>/next-image", GDK_KEY_Page_Down, 0, FALSE); gtk_accel_map_change_entry ("<Window>/previous-image", GDK_KEY_Page_Up, 0, FALSE); gtk_accel_map_change_entry ("<Window>/quit", GDK_KEY_q, 0, FALSE); gtk_accel_map_change_entry ("<Window>/delete", GDK_KEY_Delete, GDK_SHIFT_MASK, FALSE); gtk_accel_map_change_entry ("<Window>/refresh", GDK_KEY_r, GDK_CONTROL_MASK, FALSE); gtk_accel_map_change_entry ("<Actions>/RsttoWindow/play", GDK_KEY_F5, 0, FALSE); } settings->priv->slideshow_timeout = 5; settings->priv->bgcolor = g_new0 (GdkColor, 1); settings->priv->bgcolor_fullscreen = g_new0 (GdkColor, 1); settings->priv->navigationbar_position = g_strdup ("left"); settings->priv->show_toolbar = TRUE; settings->priv->window_width = 600; settings->priv->window_height = 440; settings->priv->wrap_images = TRUE; settings->priv->show_thumbnailbar = TRUE; settings->priv->show_statusbar = TRUE; settings->priv->use_thunar_properties = TRUE; settings->priv->maximize_on_startup = TRUE; settings->priv->hide_thumbnails_fullscreen = TRUE; settings->priv->errors.missing_thumbnailer = TRUE; settings->priv->thumbnail_size = THUMBNAIL_SIZE_NORMAL; xfconf_g_property_bind ( settings->priv->channel, "/window/width", G_TYPE_UINT, settings, "window-width"); xfconf_g_property_bind ( settings->priv->channel, "/window/height", G_TYPE_UINT, settings, "window-height"); xfconf_g_property_bind ( settings->priv->channel, "/file/current-uri", G_TYPE_STRING, settings, "current-uri"); xfconf_g_property_bind ( settings->priv->channel, "/window/toolbar/show", G_TYPE_BOOLEAN, settings, "show-toolbar"); xfconf_g_property_bind ( settings->priv->channel, "/window/navigationbar/sort-type", G_TYPE_UINT, settings, "sort-type"); xfconf_g_property_bind ( settings->priv->channel, "/window/navigationbar/position", G_TYPE_STRING, settings, "navigationbar-position"); xfconf_g_property_bind ( settings->priv->channel, "/window/thumbnails/show", G_TYPE_BOOLEAN, settings, "show-thumbnailbar"); xfconf_g_property_bind ( settings->priv->channel, "/window/statusbar/show", G_TYPE_BOOLEAN, settings, "show-statusbar"); xfconf_g_property_bind ( settings->priv->channel, "/window/thumbnails/size", G_TYPE_UINT, settings, "thumbnail-size"); xfconf_g_property_bind ( settings->priv->channel, "/window/thumbnails/hide-fullscreen", G_TYPE_BOOLEAN, settings, "hide-thumbnails-fullscreen"); xfconf_g_property_bind ( settings->priv->channel, "/slideshow/timeout", G_TYPE_UINT, settings, "slideshow-timeout"); xfconf_g_property_bind ( settings->priv->channel, "/window/bgcolor-override", G_TYPE_BOOLEAN, settings, "bgcolor-override"); xfconf_g_property_bind_gdkcolor ( settings->priv->channel, "/window/bgcolor", settings, "bgcolor"); xfconf_g_property_bind_gdkcolor ( settings->priv->channel, "/window/bgcolor-fullscreen", settings, "bgcolor-fullscreen"); xfconf_g_property_bind ( settings->priv->channel, "/window/invert-zoom-direction", G_TYPE_BOOLEAN, settings, "invert-zoom-direction"); xfconf_g_property_bind ( settings->priv->channel, "/window/show-clock", G_TYPE_BOOLEAN, settings, "show-clock"); xfconf_g_property_bind ( settings->priv->channel, "/image/wrap", G_TYPE_BOOLEAN, settings, "wrap-images"); xfconf_g_property_bind ( settings->priv->channel, "/image/limit-quality", G_TYPE_BOOLEAN, settings, "limit-quality"); xfconf_g_property_bind ( settings->priv->channel, "/window/use-thunar-properties", G_TYPE_BOOLEAN, settings, "use-thunar-properties"); xfconf_g_property_bind ( settings->priv->channel, "/window/maximize-on-startup", G_TYPE_BOOLEAN, settings, "maximize-on-startup"); xfconf_g_property_bind ( settings->priv->channel, "/errors/missing-thumbnailer", G_TYPE_BOOLEAN, settings, "show-error-missing-thumbnailer"); xfconf_g_property_bind ( settings->priv->channel, "/desktop/type", G_TYPE_STRING, settings, "desktop-type"); }
static void xfce_workspace_connect_backdrop_settings(XfceWorkspace *workspace, XfceBackdrop *backdrop, guint monitor) { XfconfChannel *channel = workspace->priv->channel; char buf[1024]; gint pp_len; gchar *monitor_name = NULL; TRACE("entering"); monitor_name = gdk_screen_get_monitor_plug_name(workspace->priv->gscreen, monitor); if(monitor_name == NULL) { g_snprintf(buf, sizeof(buf), "%smonitor%d/workspace%d/", workspace->priv->property_prefix, monitor, workspace->priv->workspace_num); } else { g_snprintf(buf, sizeof(buf), "%smonitor%s/workspace%d/", workspace->priv->property_prefix, monitor_name, workspace->priv->workspace_num); } pp_len = strlen(buf); DBG("prefix string: %s", buf); g_strlcat(buf, "color-style", sizeof(buf)); xfconf_g_property_bind(channel, buf, XFCE_TYPE_BACKDROP_COLOR_STYLE, G_OBJECT(backdrop), "color-style"); buf[pp_len] = 0; g_strlcat(buf, "color1", sizeof(buf)); workspace->priv->first_color_id[monitor] = xfconf_g_property_bind_gdkcolor(channel, buf, G_OBJECT(backdrop), "first-color"); buf[pp_len] = 0; g_strlcat(buf, "color2", sizeof(buf)); workspace->priv->second_color_id[monitor] = xfconf_g_property_bind_gdkcolor(channel, buf, G_OBJECT(backdrop), "second-color"); buf[pp_len] = 0; g_strlcat(buf, "image-style", sizeof(buf)); xfconf_g_property_bind(channel, buf, XFCE_TYPE_BACKDROP_IMAGE_STYLE, G_OBJECT(backdrop), "image-style"); buf[pp_len] = 0; g_strlcat(buf, "backdrop-cycle-enable", sizeof(buf)); xfconf_g_property_bind(channel, buf, G_TYPE_BOOLEAN, G_OBJECT(backdrop), "backdrop-cycle-enable"); buf[pp_len] = 0; g_strlcat(buf, "backdrop-cycle-period", sizeof(buf)); xfconf_g_property_bind(channel, buf, XFCE_TYPE_BACKDROP_CYCLE_PERIOD, G_OBJECT(backdrop), "backdrop-cycle-period"); buf[pp_len] = 0; g_strlcat(buf, "backdrop-cycle-timer", sizeof(buf)); xfconf_g_property_bind(channel, buf, G_TYPE_UINT, G_OBJECT(backdrop), "backdrop-cycle-timer"); buf[pp_len] = 0; g_strlcat(buf, "backdrop-cycle-random-order", sizeof(buf)); xfconf_g_property_bind(channel, buf, G_TYPE_BOOLEAN, G_OBJECT(backdrop), "backdrop-cycle-random-order"); buf[pp_len] = 0; g_strlcat(buf, "last-image", sizeof(buf)); xfconf_g_property_bind(channel, buf, G_TYPE_STRING, G_OBJECT(backdrop), "image-filename"); /* If we didn't get a filename try to load one from a previous version */ if(xfce_backdrop_get_image_filename(backdrop) == NULL) xfce_workspace_migrate_backdrop_image(workspace, backdrop, monitor); /* If we didn't get a proper color style, attempt to get the old one */ if(xfce_backdrop_get_color_style(backdrop) == XFCE_BACKDROP_COLOR_INVALID) xfce_workspace_migrate_backdrop_color_style(workspace, backdrop, monitor); /* Same for image style, this also deals with 'Auto' */ if(xfce_backdrop_get_image_style(backdrop) == XFCE_BACKDROP_IMAGE_INVALID) xfce_workspace_migrate_backdrop_image_style(workspace, backdrop, monitor); /* determine if the backdrop will be required to keep a ref of it's pixbuf * when it generates one */ xfce_backdrop_set_cache_pixbuf(backdrop, workspace->priv->cache_pixbufs); g_free(monitor_name); }