1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
|
#include <config.h>
#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <math.h>
#include "nemo-desktop-preferences.h"
typedef struct
{
GtkBuilder *builder;
GSettings *desktop_settings;
} NemoDesktopPreferencesPrivate;
struct _NemoDesktopPreferences
{
GtkBin parent_object;
NemoDesktopPreferencesPrivate *priv;
};
G_DEFINE_TYPE_WITH_PRIVATE (NemoDesktopPreferences, nemo_desktop_preferences, GTK_TYPE_BIN)
/* copied from nemo-file-management-properties.c */
static void
bind_builder_bool (GtkBuilder *builder,
GSettings *settings,
const char *widget_name,
const char *prefs)
{
g_settings_bind (settings, prefs,
gtk_builder_get_object (builder, widget_name),
"active", G_SETTINGS_BIND_DEFAULT);
}
static void
bind_builder_string_combo (GtkBuilder *builder,
GSettings *settings,
const char *widget_name,
const char *prefs)
{
g_settings_bind (settings, prefs,
gtk_builder_get_object (builder, widget_name),
"active-id", G_SETTINGS_BIND_DEFAULT);
}
static void
nemo_desktop_preferences_init (NemoDesktopPreferences *preferences)
{
GtkWidget *widget;
NemoDesktopPreferencesPrivate *priv = nemo_desktop_preferences_get_instance_private (preferences);
preferences->priv = priv;
priv->desktop_settings = g_settings_new ("org.nemo.desktop");
priv->builder = gtk_builder_new ();
gtk_builder_set_translation_domain (priv->builder, GETTEXT_PACKAGE);
gtk_builder_add_from_resource (priv->builder, "/org/nemo/nemo-desktop-preferences.glade", NULL);
widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "prefs_box"));
gtk_container_add (GTK_CONTAINER (preferences), widget);
bind_builder_string_combo (priv->builder,
priv->desktop_settings,
"layout_combo",
"desktop-layout");
bind_builder_bool (priv->builder,
priv->desktop_settings,
"computer_switch",
"computer-icon-visible");
bind_builder_bool (priv->builder,
priv->desktop_settings,
"home_switch",
"home-icon-visible");
bind_builder_bool (priv->builder,
priv->desktop_settings,
"trash_switch",
"trash-icon-visible");
bind_builder_bool (priv->builder,
priv->desktop_settings,
"drives_switch",
"volumes-visible");
bind_builder_bool (priv->builder,
priv->desktop_settings,
"network_switch",
"network-icon-visible");
bind_builder_bool (priv->builder,
priv->desktop_settings,
"orphan_switch",
"show-orphaned-desktop-icons");
gtk_widget_show_all (GTK_WIDGET (preferences));
}
static void
nemo_desktop_preferences_dispose (GObject *object)
{
NemoDesktopPreferences *preferences = NEMO_DESKTOP_PREFERENCES (object);
g_clear_object (&preferences->priv->builder);
g_clear_object (&preferences->priv->desktop_settings);
G_OBJECT_CLASS (nemo_desktop_preferences_parent_class)->dispose (object);
}
static void
nemo_desktop_preferences_class_init (NemoDesktopPreferencesClass *klass)
{
G_OBJECT_CLASS (klass)->dispose = nemo_desktop_preferences_dispose;
}
NemoDesktopPreferences *
nemo_desktop_preferences_new (void)
{
return g_object_new (NEMO_TYPE_DESKTOP_PREFERENCES, NULL);
}
|