summaryrefslogtreecommitdiff
path: root/mate-panel/panel-toplevel.c
diff options
context:
space:
mode:
authorStefano Karapetsas <[email protected]>2012-10-11 00:01:30 +0200
committerStefano Karapetsas <[email protected]>2012-10-11 00:01:30 +0200
commit876f39364e2106c8cb96fa4a9067359e5a350583 (patch)
tree2936001f23a62397065495e3fd065cb260eff4d7 /mate-panel/panel-toplevel.c
parent66916b20f16f9f0aad4c527519b70ac3a72bbec7 (diff)
downloadmate-panel-876f39364e2106c8cb96fa4a9067359e5a350583.tar.bz2
mate-panel-876f39364e2106c8cb96fa4a9067359e5a350583.tar.xz
migrate mate-panel to gsettings
Diffstat (limited to 'mate-panel/panel-toplevel.c')
-rw-r--r--mate-panel/panel-toplevel.c44
1 files changed, 43 insertions, 1 deletions
diff --git a/mate-panel/panel-toplevel.c b/mate-panel/panel-toplevel.c
index 043e2e26..ed396980 100644
--- a/mate-panel/panel-toplevel.c
+++ b/mate-panel/panel-toplevel.c
@@ -47,6 +47,7 @@
#include "panel-struts.h"
#include "panel-config-global.h"
#include "panel-lockdown.h"
+#include "panel-schemas.h"
G_DEFINE_TYPE (PanelToplevel, panel_toplevel, GTK_TYPE_WINDOW)
@@ -76,6 +77,8 @@ typedef enum {
} PanelGrabOpType;
struct _PanelToplevelPrivate {
+ gchar *settings_path;
+
gboolean expand;
PanelOrientation orientation;
int size;
@@ -212,6 +215,7 @@ enum {
enum {
PROP_0,
PROP_NAME,
+ PROP_SETTINGS_PATH,
PROP_EXPAND,
PROP_ORIENTATION,
PROP_SIZE,
@@ -454,7 +458,7 @@ static void panel_toplevel_begin_grab_op(PanelToplevel* toplevel, PanelGrabOpTyp
op_type == PANEL_GRAB_OP_RESIZE_DOWN ||
op_type == PANEL_GRAB_OP_RESIZE_LEFT ||
op_type == PANEL_GRAB_OP_RESIZE_RIGHT) &&
- ! panel_profile_is_writable_toplevel_size (toplevel))
+ ! panel_profile_key_is_writable (toplevel, PANEL_TOPLEVEL_SIZE_KEY))
return;
if (toplevel->priv->attached && op_type == PANEL_GRAB_OP_MOVE) {
@@ -3819,6 +3823,9 @@ panel_toplevel_set_property (GObject *object,
case PROP_NAME:
panel_toplevel_set_name (toplevel, g_value_get_string (value));
break;
+ case PROP_SETTINGS_PATH:
+ panel_toplevel_set_settings_path (toplevel, g_value_get_string (value));
+ break;
case PROP_EXPAND:
panel_toplevel_set_expand (toplevel, g_value_get_boolean (value));
break;
@@ -3913,6 +3920,9 @@ panel_toplevel_get_property (GObject *object,
case PROP_NAME:
g_value_set_string (value, panel_toplevel_get_name (toplevel));
break;
+ case PROP_SETTINGS_PATH:
+ g_value_set_string (value, toplevel->priv->settings_path);
+ break;
case PROP_EXPAND:
g_value_set_boolean (value, toplevel->priv->expand);
break;
@@ -3982,6 +3992,21 @@ panel_toplevel_finalize (GObject *object)
toplevel_list = g_slist_remove (toplevel_list, toplevel);
+ if (toplevel->priv->settings_path) {
+ g_free (toplevel->priv->settings_path);
+ toplevel->priv->settings_path = NULL;
+ }
+
+ if (toplevel->settings) {
+ g_object_unref (toplevel->settings);
+ toplevel->settings = NULL;
+ }
+
+ if (toplevel->background_settings) {
+ g_object_unref (toplevel->background_settings);
+ toplevel->background_settings = NULL;
+ }
+
if (toplevel->priv->gtk_settings) {
g_signal_handlers_disconnect_by_func (toplevel->priv->gtk_settings,
G_CALLBACK (panel_toplevel_drag_threshold_changed),
@@ -4068,6 +4093,16 @@ panel_toplevel_class_init (PanelToplevelClass *klass)
g_object_class_install_property (
gobject_class,
+ PROP_SETTINGS_PATH,
+ g_param_spec_string (
+ "settings-path",
+ "GSettings path",
+ "The GSettings path used for this panel",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
+ g_object_class_install_property (
+ gobject_class,
PROP_EXPAND,
g_param_spec_boolean (
"expand",
@@ -4598,6 +4633,13 @@ panel_toplevel_set_name (PanelToplevel *toplevel,
g_object_notify (G_OBJECT (toplevel), "name");
}
+void
+panel_toplevel_set_settings_path (PanelToplevel *toplevel,
+ const char *settings_path)
+{
+ toplevel->priv->settings_path = g_strdup (settings_path);
+}
+
const char* panel_toplevel_get_name(PanelToplevel* toplevel)
{
g_return_val_if_fail(PANEL_IS_TOPLEVEL(toplevel), NULL);