Author: kelnos
Date: 2008-10-18 10:31:55 +0000 (Sat, 18 Oct 2008)
New Revision: 28290

Modified:
   xfconf/trunk/NEWS
   xfconf/trunk/docs/reference/Makefile.am
   xfconf/trunk/docs/reference/tmpl/xfconf-channel.sgml
   xfconf/trunk/docs/reference/xfconf-sections.txt
   xfconf/trunk/xfconf/xfconf-binding.c
   xfconf/trunk/xfconf/xfconf-channel.c
   xfconf/trunk/xfconf/xfconf-channel.h
   xfconf/trunk/xfconf/xfconf-private.h
   xfconf/trunk/xfconf/xfconf.symbols
Log:
add xfconf_channel_new_with_property_base()

Modified: xfconf/trunk/NEWS
===================================================================
--- xfconf/trunk/NEWS   2008-10-18 08:42:09 UTC (rev 28289)
+++ xfconf/trunk/NEWS   2008-10-18 10:31:55 UTC (rev 28290)
@@ -1,3 +1,12 @@
+Xfce 4.6beta2 (Xfce 4.5.92)
+===========================
+
+  * Add xfconf_channel_new_with_property_base() to restrict a channel
+    to a subset of the property tree.
+  * Add G_GNUC_DEPRECATED guards to xfconf_channel_remove_property()
+    and xfconf_channel_remove_properties().
+
+
 Xfce 4.6beta1 (Xfce 4.5.91)
 ===========================
 

Modified: xfconf/trunk/docs/reference/Makefile.am
===================================================================
--- xfconf/trunk/docs/reference/Makefile.am     2008-10-18 08:42:09 UTC (rev 
28289)
+++ xfconf/trunk/docs/reference/Makefile.am     2008-10-18 10:31:55 UTC (rev 
28290)
@@ -9,7 +9,7 @@
 DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
 
 # Extra options to supply to gtkdoc-scan
-SCAN_OPTIONS=--deprecated-guards="XFCE_DISABLE_DEPRECATED|XFCONF_DISABLE_DEPRECATED"
+SCAN_OPTIONS=--deprecated-guards="XFCONF_DISABLE_DEPRECATED"
 
 # The directory containing the source code. Relative to $(srcdir)
 DOC_SOURCE_DIR=../..

Modified: xfconf/trunk/docs/reference/tmpl/xfconf-channel.sgml
===================================================================
--- xfconf/trunk/docs/reference/tmpl/xfconf-channel.sgml        2008-10-18 
08:42:09 UTC (rev 28289)
+++ xfconf/trunk/docs/reference/tmpl/xfconf-channel.sgml        2008-10-18 
10:31:55 UTC (rev 28290)
@@ -40,6 +40,11 @@
 
 </para>
 
+<!-- ##### ARG XfconfChannel:property-base ##### -->
+<para>
+
+</para>
+
 <!-- ##### FUNCTION xfconf_channel_get ##### -->
 <para>
 
@@ -58,6 +63,16 @@
 @Returns: 
 
 
+<!-- ##### FUNCTION xfconf_channel_new_with_property_base ##### -->
+<para>
+
+</para>
+
[EMAIL PROTECTED]: 
[EMAIL PROTECTED]: 
[EMAIL PROTECTED]: 
+
+
 <!-- ##### FUNCTION xfconf_channel_has_property ##### -->
 <para>
 

Modified: xfconf/trunk/docs/reference/xfconf-sections.txt
===================================================================
--- xfconf/trunk/docs/reference/xfconf-sections.txt     2008-10-18 08:42:09 UTC 
(rev 28289)
+++ xfconf/trunk/docs/reference/xfconf-sections.txt     2008-10-18 10:31:55 UTC 
(rev 28290)
@@ -3,6 +3,7 @@
 XfconfChannel
 xfconf_channel_get
 xfconf_channel_new
+xfconf_channel_new_with_property_base
 xfconf_channel_has_property
 xfconf_channel_is_property_locked
 xfconf_channel_reset_property

Modified: xfconf/trunk/xfconf/xfconf-binding.c
===================================================================
--- xfconf/trunk/xfconf/xfconf-binding.c        2008-10-18 08:42:09 UTC (rev 
28289)
+++ xfconf/trunk/xfconf/xfconf-binding.c        2008-10-18 10:31:55 UTC (rev 
28290)
@@ -30,6 +30,7 @@
 #include "xfconf.h"
 #include "xfconf-alias.h"
 #include "xfconf-common-private.h"
+#include "xfconf-private.h"
 
 typedef struct
 {
@@ -277,15 +278,21 @@
     gchar buf[1024];
     GSList *bindings;
     GValue value = { 0, };
+    const gchar *property_base;
 
     binding = g_slice_new0(XfconfGBinding);
     binding->channel = channel;
-    binding->xfconf_property = g_strdup(xfconf_property);
     binding->xfconf_property_type = xfconf_property_type;
     binding->object = object;
     binding->object_property = g_strdup(object_property);
     binding->object_property_type = object_property_type;
 
+    property_base = _xfconf_channel_get_property_base(channel);
+    if(G_UNLIKELY(property_base))
+        binding->xfconf_property = g_strconcat(property_base, xfconf_property, 
NULL);
+    else
+        binding->xfconf_property = g_strdup(xfconf_property);
+
     g_object_weak_ref(G_OBJECT(channel),
                       xfconf_g_binding_channel_destroyed,
                       binding);
@@ -293,7 +300,7 @@
                       xfconf_g_binding_object_destroyed,
                       binding);
 
-    g_snprintf(buf, sizeof(buf), "property-changed::%s", xfconf_property);
+    g_snprintf(buf, sizeof(buf), "property-changed::%s", 
binding->xfconf_property);
     g_signal_connect(G_OBJECT(channel), buf,
                      G_CALLBACK(xfconf_g_binding_channel_property_changed),
                      binding);
@@ -405,12 +412,25 @@
 {
     GSList *bindings = g_object_steal_data(G_OBJECT(object), DATA_KEY);
     GSList *l;
+    gchar *real_xfconf_property;
+    const gchar *property_base;
 
+    g_return_if_fail(XFCONF_IS_CHANNEL(channel)
+                     && xfconf_property && *xfconf_property
+                     && G_IS_OBJECT(object)
+                     && object_property && *object_property);
+
+    property_base = _xfconf_channel_get_property_base(channel);
+    if(G_UNLIKELY (property_base))
+        real_xfconf_property = g_strconcat(property_base, xfconf_property, 
NULL);
+    else
+        real_xfconf_property = (gchar *)xfconf_property;
+
     for(l = bindings; l; l = l->next) {
         XfconfGBinding *binding = l->data;
 
         if(channel == binding->channel
-           && !strcmp(xfconf_property, binding->xfconf_property)
+           && !strcmp(real_xfconf_property, binding->xfconf_property)
            && !strcmp(object_property, binding->object_property))
         {
             bindings = g_slist_delete_link(bindings, l);
@@ -419,6 +439,9 @@
         }
     }
 
+    if(real_xfconf_property != xfconf_property)
+        g_free(real_xfconf_property);
+
     if(bindings) {
         g_object_set_data_full(G_OBJECT(object), DATA_KEY,
                                bindings, (GDestroyNotify)g_slist_free);

Modified: xfconf/trunk/xfconf/xfconf-channel.c
===================================================================
--- xfconf/trunk/xfconf/xfconf-channel.c        2008-10-18 08:42:09 UTC (rev 
28289)
+++ xfconf/trunk/xfconf/xfconf-channel.c        2008-10-18 10:31:55 UTC (rev 
28290)
@@ -36,6 +36,11 @@
 
 #define ALIGN_VAL(val, align)  ( ((val) + ((align) -1)) & ~((align) - 1) )
 
+#define REAL_PROP(channel, property) ( (channel)->property_base \
+                                       ? g_strconcat 
((channel)->property_base, \
+                                                      (property), NULL) \
+                                       : (gchar *)(property) )
+
 #ifdef XFCONF_ENABLE_CHECKS
 
 #define ERROR_DEFINE  GError *___error = NULL
@@ -66,6 +71,7 @@
     GObject parent;
 
     gchar *channel_name;
+    gchar *property_base;
 };
 
 typedef struct _XfconfChannelClass
@@ -87,6 +93,7 @@
 {
     PROP0 = 0,
     PROP_CHANNEL_NAME,
+    PROP_PROPERTY_BASE,
 };
 
 static void xfconf_channel_class_init(XfconfChannelClass *klass);
@@ -170,6 +177,23 @@
                                                         | G_PARAM_STATIC_NAME
                                                         | G_PARAM_STATIC_NICK
                                                         | 
G_PARAM_STATIC_BLURB));
+
+    /**
+     * XfconfChannel::property-base:
+     *
+     * The string identifier used for the property base inside a channel.
+     * This can be used to restrict a channel to a subset of properties.
+     **/
+    g_object_class_install_property(object_class, PROP_PROPERTY_BASE,
+                                    g_param_spec_string("property-base",
+                                                        "Property Base",
+                                                        "Base property path",
+                                                        NULL,
+                                                        G_PARAM_READWRITE
+                                                        | 
G_PARAM_CONSTRUCT_ONLY
+                                                        | G_PARAM_STATIC_NAME
+                                                        | G_PARAM_STATIC_NICK
+                                                        | 
G_PARAM_STATIC_BLURB));
 }
 
 static void
@@ -195,6 +219,10 @@
             XFCONF_CHANNEL(object)->channel_name = g_value_dup_string(value);
             break;
 
+        case PROP_PROPERTY_BASE:
+            XFCONF_CHANNEL(object)->property_base = g_value_dup_string(value);
+            break;
+
         default:
             G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
             break;
@@ -212,6 +240,10 @@
             g_value_set_string(value, XFCONF_CHANNEL(object)->channel_name);
             break;
 
+        case PROP_PROPERTY_BASE:
+            g_value_set_string(value, XFCONF_CHANNEL(object)->property_base);
+            break;
+
         default:
             G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
             break;
@@ -233,6 +265,7 @@
                                    channel);
 
     g_free(channel->channel_name);
+    g_free(channel->property_base);
 
     if(__channel_singletons)
         g_hash_table_remove(__channel_singletons, channel);
@@ -251,6 +284,14 @@
     }
 }
 
+
+const gchar *
+_xfconf_channel_get_property_base(XfconfChannel *channel)
+{
+    return channel->property_base;
+}
+
+
 static void
 xfconf_channel_property_changed(DBusGProxy *proxy,
                                 const gchar *channel_name,
@@ -260,9 +301,19 @@
 {
     XfconfChannel *channel = XFCONF_CHANNEL(user_data);
 
-    if(strcmp(channel_name, channel->channel_name))
+    if(strcmp(channel_name, channel->channel_name)
+       || (channel->property_base
+           && !g_str_has_prefix(property, channel->property_base)))
+    {
         return;
+    }
 
+    if(channel->property_base) {
+        property += strlen(channel->property_base);
+        if(!*property)
+            property = "/";
+    }
+
     g_signal_emit(G_OBJECT(channel), signals[SIG_PROPERTY_CHANGED],
                   g_quark_from_string(property), property, value);
 }
@@ -276,15 +327,49 @@
     XfconfChannel *channel = XFCONF_CHANNEL(user_data);
     GValue value = { 0, };
 
-    if(strcmp(channel_name, channel->channel_name))
+    if(strcmp(channel_name, channel->channel_name)
+       || (channel->property_base
+           && !g_str_has_prefix(property, channel->property_base)))
+    {
         return;
+    }
 
+    if(channel->property_base) {
+        property += strlen(channel->property_base);
+        if(!*property)
+            property = "/";
+    }
+
     g_signal_emit(G_OBJECT(channel), signals[SIG_PROPERTY_CHANGED],
                   g_quark_from_string(property), property, &value);
 }
 
 
+
 static gboolean
+xfconf_channel_set_internal(XfconfChannel *channel,
+                            const gchar *property,
+                            GValue *value)
+{
+    DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
+    gboolean ret;
+    gchar *real_property = REAL_PROP(channel, property);
+    ERROR_DEFINE;
+
+    g_return_val_if_fail(XFCONF_IS_CHANNEL(channel) && property, FALSE);
+
+    ret = xfconf_client_set_property(proxy, channel->channel_name, 
real_property,
+                                     value, ERROR);
+    if(!ret)
+        ERROR_CHECK;
+
+    if(real_property != property)
+        g_free(real_property);
+
+    return ret;
+}
+
+static gboolean
 xfconf_channel_get_internal(XfconfChannel *channel,
                             const gchar *property,
                             GValue *value)
@@ -292,6 +377,7 @@
     DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
     GValue tmp_val = { 0, }, *val;
     gboolean ret;
+    gchar *real_property = REAL_PROP(channel, property);
     ERROR_DEFINE;
 
     /* we support 2 ways of using this function:
@@ -306,8 +392,8 @@
     else
         val = value;
 
-    ret = xfconf_client_get_property(proxy, channel->channel_name, property,
-                                     val, ERROR);
+    ret = xfconf_client_get_property(proxy, channel->channel_name,
+                                     real_property, val, ERROR);
     if(!ret)
         ERROR_CHECK;
 
@@ -315,13 +401,15 @@
         if(!g_value_transform(val, value)) {
             g_warning("Unable to tranform value of type \"%s\" to type \"%s\" 
for property %s",
                       G_VALUE_TYPE_NAME(val), G_VALUE_TYPE_NAME(value),
-                      property);
-            g_value_unset(val);
-            return FALSE;
+                      real_property);
+            ret = FALSE;
         }
         g_value_unset(val);
     }
 
+    if(real_property != property)
+        g_free(real_property);
+
     return ret;
 }
 
@@ -480,6 +568,32 @@
 }
 
 /**
+ * xfconf_channel_new_with_property_base:
+ * @channel_name: A channel name.
+ * @property_base: A property root name.
+ *
+ * Creates a new channel using @name as the channel's identifier,
+ * restricting the accessible properties to be rooted at
+ * @property_base.  This function always returns a valid object;
+ * no checking is done to see if the channel exists or has a valid
+ * name.
+ *
+ * Returns: A new #XfconfChannel.  Release with g_object_unref()
+ *          when no longer needed.
+ *
+ * Since: 4.5.92
+ **/
+XfconfChannel *
+xfconf_channel_new_with_property_base(const gchar *channel_name,
+                                      const gchar *property_base)
+{
+    return g_object_new(XFCONF_TYPE_CHANNEL,
+                        "channel-name", channel_name,
+                        "property-base", property_base,
+                        NULL);
+}
+
+/**
  * xfconf_channel_has_property:
  * @channel: An #XfconfChannel.
  * @property: A property name.
@@ -494,15 +608,19 @@
 {
     DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
     gboolean exists = FALSE;
+    gchar *real_property = REAL_PROP(channel, property);
     ERROR_DEFINE;
 
-    if(!xfconf_client_property_exists(proxy, channel->channel_name, property,
-                                      &exists, ERROR))
+    if(!xfconf_client_property_exists(proxy, channel->channel_name,
+                                      real_property, &exists, ERROR))
     {
         ERROR_CHECK;
-        return FALSE;
+        exists = FALSE;
     }
 
+    if(real_property != property)
+        g_free(real_property);
+
     return exists;
 }
 
@@ -526,15 +644,19 @@
 {
     DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
     gboolean locked = FALSE;
+    gchar *real_property = REAL_PROP(channel, property);
     ERROR_DEFINE;
 
     if(!xfconf_client_is_property_locked(proxy, channel->channel_name,
                                          property, &locked, ERROR))
     {
         ERROR_CHECK;
-        return FALSE;
+        locked = FALSE;
     }
 
+    if(real_property != property)
+        g_free(real_property);
+
     return locked;
 }
 
@@ -567,6 +689,7 @@
                               gboolean recursive)
 {
     DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
+    gchar *real_property_base = REAL_PROP(channel, property_base);
     ERROR_DEFINE;
 
     g_return_if_fail(XFCONF_IS_CHANNEL(channel) &&
@@ -574,10 +697,13 @@
                       || recursive));
 
     if(!xfconf_client_reset_property(proxy, channel->channel_name,
-                                     property_base, recursive, ERROR))
+                                     real_property_base, recursive, ERROR))
     {
         ERROR_CHECK;
     }
+
+    if(real_property_base != property_base)
+        g_free(real_property_base);
 }
 
 /**
@@ -638,16 +764,29 @@
 {
     DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
     GHashTable *properties = NULL;
+    gchar *real_property_base;
     ERROR_DEFINE;
 
+    if(!property_base || (property_base[0] == '/' && !property_base[1]))
+        real_property_base = channel->property_base;
+    else
+        real_property_base = REAL_PROP(channel, property_base);
+
     if(!xfconf_client_get_all_properties(proxy, channel->channel_name,
-                                         property_base ? property_base : "/",
+                                         real_property_base
+                                         ? real_property_base : "/",
                                          &properties, ERROR))
     {
         ERROR_CHECK;
-        return NULL;
+        properties = NULL;
     }
 
+    if(real_property_base != property_base
+       && real_property_base != channel->property_base)
+    {
+        g_free(real_property_base);
+    }
+
     return properties;
 }
 
@@ -893,20 +1032,15 @@
                           const gchar *property,
                           const gchar *value)
 {
-    DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
     GValue val = { 0, };
     gboolean ret;
-    ERROR_DEFINE;
 
     g_return_val_if_fail(XFCONF_IS_CHANNEL(channel) && property && value, 
FALSE);
 
     g_value_init(&val, G_TYPE_STRING);
     g_value_set_string(&val, value);
 
-    ret = xfconf_client_set_property(proxy, channel->channel_name, property,
-                                     &val, ERROR);
-    if(!ret)
-        ERROR_CHECK;
+    ret = xfconf_channel_set_internal(channel, property, &val);
 
     g_value_unset(&val);
 
@@ -970,20 +1104,15 @@
                        const gchar *property,
                        gint value)
 {
-    DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
     GValue val = { 0, };
     gboolean ret;
-    ERROR_DEFINE;
 
     g_return_val_if_fail(XFCONF_IS_CHANNEL(channel) && property, FALSE);
 
     g_value_init(&val, G_TYPE_INT);
     g_value_set_int(&val, value);
 
-    ret = xfconf_client_set_property(proxy, channel->channel_name, property,
-                                     &val, ERROR);
-    if(!ret)
-        ERROR_CHECK;
+    ret = xfconf_channel_set_internal(channel, property, &val);
 
     g_value_unset(&val);
 
@@ -1005,20 +1134,15 @@
                         const gchar *property,
                         guint32 value)
 {
-    DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
     GValue val = { 0, };
     gboolean ret;
-    ERROR_DEFINE;
 
     g_return_val_if_fail(XFCONF_IS_CHANNEL(channel) && property, FALSE);
 
     g_value_init(&val, G_TYPE_UINT);
     g_value_set_uint(&val, value);
 
-    ret = xfconf_client_set_property(proxy, channel->channel_name, property,
-                                     &val, ERROR);
-    if(!ret)
-        ERROR_CHECK;
+    ret = xfconf_channel_set_internal(channel, property, &val);
 
     g_value_unset(&val);
 
@@ -1040,20 +1164,15 @@
                           const gchar *property,
                           guint64 value)
 {
-    DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
     GValue val = { 0, };
     gboolean ret;
-    ERROR_DEFINE;
 
     g_return_val_if_fail(XFCONF_IS_CHANNEL(channel) && property, FALSE);
 
     g_value_init(&val, G_TYPE_UINT64);
     g_value_set_uint64(&val, value);
 
-    ret = xfconf_client_set_property(proxy, channel->channel_name, property,
-                                     &val, ERROR);
-    if(!ret)
-        ERROR_CHECK;
+    ret = xfconf_channel_set_internal(channel, property, &val);
 
     g_value_unset(&val);
 
@@ -1075,20 +1194,15 @@
                           const gchar *property,
                           gdouble value)
 {
-    DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
     GValue val = { 0, };
     gboolean ret;
-    ERROR_DEFINE;
 
     g_return_val_if_fail(XFCONF_IS_CHANNEL(channel) && property, FALSE);
 
     g_value_init(&val, G_TYPE_DOUBLE);
     g_value_set_double(&val, value);
 
-    ret = xfconf_client_set_property(proxy, channel->channel_name, property,
-                                     &val, ERROR);
-    if(!ret)
-        ERROR_CHECK;
+    ret = xfconf_channel_set_internal(channel, property, &val);
 
     g_value_unset(&val);
 
@@ -1110,20 +1224,15 @@
                         const gchar *property,
                         gboolean value)
 {
-    DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
     GValue val = { 0, };
     gboolean ret;
-    ERROR_DEFINE;
 
     g_return_val_if_fail(XFCONF_IS_CHANNEL(channel) && property, FALSE);
 
     g_value_init(&val, G_TYPE_BOOLEAN);
     g_value_set_boolean(&val, value);
 
-    ret = xfconf_client_set_property(proxy, channel->channel_name, property,
-                                     &val, ERROR);
-    if(!ret)
-        ERROR_CHECK;
+    ret = xfconf_channel_set_internal(channel, property, &val);
 
     g_value_unset(&val);
 
@@ -1224,11 +1333,9 @@
                             const gchar *property,
                             const GValue *value)
 {
-    DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
     GValue *val, tmp_val = { 0, };
     GPtrArray *arr_new = NULL;
     gboolean ret;
-    ERROR_DEFINE;
 
     g_return_val_if_fail(XFCONF_IS_CHANNEL(channel) && property && value,
                          FALSE);
@@ -1254,10 +1361,7 @@
     } else
         val = (GValue *)value;
 
-    ret = xfconf_client_set_property(proxy, channel->channel_name, property,
-                                     val, ERROR);
-    if(!ret)
-        ERROR_CHECK;
+    ret = xfconf_channel_set_internal(channel, property, val);
 
     if(val == &tmp_val)
         g_value_unset(&tmp_val);
@@ -1439,19 +1543,15 @@
 xfconf_channel_get_arrayv(XfconfChannel *channel,
                           const gchar *property)
 {
-    DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
     GValue val = { 0, };
     GPtrArray *arr = NULL;
-    ERROR_DEFINE;
+    gboolean ret;
 
     g_return_val_if_fail(XFCONF_IS_CHANNEL(channel) && property, NULL);
     
-    if(!xfconf_client_get_property(proxy, channel->channel_name, property,
-                                   &val, ERROR))
-    {
-        ERROR_CHECK;
+    ret = xfconf_channel_get_internal(channel, property, &val);
+    if(!ret)
         return NULL;
-    }
     
     if(XFCONF_TYPE_G_VALUE_ARRAY != G_VALUE_TYPE(&val)) {
         g_value_unset(&val);
@@ -1622,11 +1722,9 @@
                           const gchar *property,
                           GPtrArray *values)
 {
-    DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
     GPtrArray *values_new = NULL;
     GValue val = { 0, };
     gboolean ret;
-    ERROR_DEFINE;
 
     g_return_val_if_fail(XFCONF_IS_CHANNEL(channel) && property && values,
                          FALSE);
@@ -1636,12 +1734,8 @@
     g_value_init(&val, XFCONF_TYPE_G_VALUE_ARRAY);
     g_value_set_static_boxed(&val, values_new ? values_new : values);
     
-    ret = xfconf_client_set_property(proxy, channel->channel_name, property,
-                                     &val, ERROR);
+    ret = xfconf_channel_set_internal(channel, property, &val);
     
-    if(!ret)
-        ERROR_CHECK;
-    
     g_value_unset(&val);
 
     if(values_new)

Modified: xfconf/trunk/xfconf/xfconf-channel.h
===================================================================
--- xfconf/trunk/xfconf/xfconf-channel.h        2008-10-18 08:42:09 UTC (rev 
28289)
+++ xfconf/trunk/xfconf/xfconf-channel.h        2008-10-18 10:31:55 UTC (rev 
28290)
@@ -39,10 +39,13 @@
 
 GType xfconf_channel_get_type() G_GNUC_CONST;
 
-XfconfChannel *xfconf_channel_get(const gchar *channel_name) 
G_GNUC_WARN_UNUSED_RESULT;
+XfconfChannel *xfconf_channel_get(const gchar *channel_name);
 
 XfconfChannel *xfconf_channel_new(const gchar *channel_name) 
G_GNUC_WARN_UNUSED_RESULT;
 
+XfconfChannel *xfconf_channel_new_with_property_base(const gchar *channel_name,
+                                                     const gchar 
*property_base) G_GNUC_WARN_UNUSED_RESULT;
+
 gboolean xfconf_channel_has_property(XfconfChannel *channel,
                                      const gchar *property);
 

Modified: xfconf/trunk/xfconf/xfconf-private.h
===================================================================
--- xfconf/trunk/xfconf/xfconf-private.h        2008-10-18 08:42:09 UTC (rev 
28289)
+++ xfconf/trunk/xfconf/xfconf-private.h        2008-10-18 10:31:55 UTC (rev 
28290)
@@ -30,6 +30,8 @@
 DBusGProxy *_xfconf_get_dbus_g_proxy();
 DBusGProxy *_xfconf_get_gui_dbus_g_proxy();
 
+const gchar *_xfconf_channel_get_property_base(XfconfChannel *channel);
+
 XfconfNamedStruct *_xfconf_named_struct_lookup(const gchar *struct_name);
 
 void _xfconf_channel_shutdown();

Modified: xfconf/trunk/xfconf/xfconf.symbols
===================================================================
--- xfconf/trunk/xfconf/xfconf.symbols  2008-10-18 08:42:09 UTC (rev 28289)
+++ xfconf/trunk/xfconf/xfconf.symbols  2008-10-18 10:31:55 UTC (rev 28290)
@@ -58,6 +58,7 @@
 xfconf_channel_get_type G_GNUC_CONST
 xfconf_channel_get
 xfconf_channel_new
+xfconf_channel_new_with_property_base
 xfconf_channel_has_property
 xfconf_channel_is_property_locked
 xfconf_channel_reset_property

_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to