[network-manager-netbook] Add 3G and ethernet state getters/setters/signals to the main state object.



commit 8b6d0f457b5da06dd70518efe09e5b4e9a1a5b88
Author: Tambet Ingo <tambet gmail com>
Date:   Tue May 26 12:42:12 2009 +0300

    Add 3G and ethernet state getters/setters/signals to the main state object.
---
 src/nmn-nm-data.c |   86 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/nmn-nm-data.h |   17 ++++++++++-
 2 files changed, 102 insertions(+), 1 deletions(-)

diff --git a/src/nmn-nm-data.c b/src/nmn-nm-data.c
index fbd2d9b..51e5649 100644
--- a/src/nmn-nm-data.c
+++ b/src/nmn-nm-data.c
@@ -6,12 +6,24 @@
 
 G_DEFINE_TYPE (NmnNMData, nmn_nm_data, NM_TYPE_CLIENT)
 
+enum {
+    ETHERNET_TOGGLED,
+    MODEMS_TOGGLED,
+
+    LAST_SIGNAL
+};
+
+static guint signals[LAST_SIGNAL];
+
 #define GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), NMN_TYPE_NM_DATA, NmnNMDataPrivate))
 
 typedef struct {
     NMSettings *user_settings;
     NMSettings *system_settings;
 
+    gboolean ethernet_active;
+    gboolean modems_active;
+
     gboolean disposed;
 } NmnNMDataPrivate;
 
@@ -40,9 +52,62 @@ nmn_nm_data_get_system_settings (NmnNMData *self)
     return GET_PRIVATE (self)->system_settings;
 }
 
+gboolean
+nmn_nm_data_ethernet_get_active (NmnNMData *self)
+{
+    g_return_val_if_fail (NMN_IS_NM_DATA (self), FALSE);
+
+    return GET_PRIVATE (self)->ethernet_active;
+}
+
+void
+nmn_nm_data_ethernet_toggled (NmnNMData *self,
+                              gboolean active)
+{
+    NmnNMDataPrivate *priv;
+
+    g_return_if_fail (NMN_IS_NM_DATA (self));
+
+    priv = GET_PRIVATE (self);
+    if (priv->ethernet_active != active) {
+        /* FIXME: Save in gconf? */
+        priv->ethernet_active = active;
+        g_signal_emit (self, signals[ETHERNET_TOGGLED], 0, active);
+    }
+}
+
+gboolean
+nmn_nm_data_modems_get_active (NmnNMData *self)
+{
+    g_return_val_if_fail (NMN_IS_NM_DATA (self), FALSE);
+
+    return GET_PRIVATE (self)->modems_active;
+}
+
+void
+nmn_nm_data_modems_toggled (NmnNMData *self,
+                            gboolean active)
+{
+    NmnNMDataPrivate *priv;
+
+    g_return_if_fail (NMN_IS_NM_DATA (self));
+
+    priv = GET_PRIVATE (self);
+    if (priv->modems_active != active) {
+        /* FIXME: Save in gconf? */
+        priv->modems_active = active;
+        g_signal_emit (self, signals[MODEMS_TOGGLED], 0, active);
+    }
+}
+
 static void
 nmn_nm_data_init (NmnNMData *self)
 {
+    NmnNMDataPrivate *priv = GET_PRIVATE (self);
+
+    /* FIXME: Load from gconf? */
+    priv->ethernet_active = TRUE;
+    priv->modems_active = TRUE;
 }
 
 static GObject*
@@ -93,4 +158,25 @@ nmn_nm_data_class_init (NmnNMDataClass *class)
 
     object_class->constructor = constructor;
     object_class->dispose = dispose;
+
+    /* signals */
+    signals[ETHERNET_TOGGLED] = g_signal_new 
+        ("ethernet-toggled",
+         G_OBJECT_CLASS_TYPE (class),
+         G_SIGNAL_RUN_LAST,
+         G_STRUCT_OFFSET (NmnNMDataClass, ethernet_toggled),
+         NULL, NULL,
+         g_cclosure_marshal_VOID__BOOLEAN,
+         G_TYPE_NONE, 1,
+         G_TYPE_BOOLEAN);
+
+    signals[MODEMS_TOGGLED] = g_signal_new 
+        ("modems-toggled",
+         G_OBJECT_CLASS_TYPE (class),
+         G_SIGNAL_RUN_LAST,
+         G_STRUCT_OFFSET (NmnNMDataClass, modems_toggled),
+         NULL, NULL,
+         g_cclosure_marshal_VOID__BOOLEAN,
+         G_TYPE_NONE, 1,
+         G_TYPE_BOOLEAN);
 }
diff --git a/src/nmn-nm-data.h b/src/nmn-nm-data.h
index 6f0bc49..8886f45 100644
--- a/src/nmn-nm-data.h
+++ b/src/nmn-nm-data.h
@@ -20,12 +20,27 @@ typedef struct {
 
 typedef struct {
     NMClientClass parent;
+
+    /* Signals */
+    void (*ethernet_toggled) (NmnNMData *self,
+                              gboolean active);
+
+    void (*modems_toggled) (NmnNMData *self,
+                            gboolean active);
 } NmnNMDataClass;
 
 GType nmn_nm_data_get_type (void);
 
-NmnNMData *nmn_nm_data_new                 (DBusGConnection *bus);
+NmnNMData     *nmn_nm_data_new                 (DBusGConnection *bus);
 NMSettings    *nmn_nm_data_get_user_settings   (NmnNMData *data);
 NMSettings    *nmn_nm_data_get_system_settings (NmnNMData *data);
 
+gboolean       nmn_nm_data_ethernet_get_active (NmnNMData *self); 
+void           nmn_nm_data_ethernet_toggled    (NmnNMData *self,
+                                                gboolean active);
+
+gboolean       nmn_nm_data_modems_get_active   (NmnNMData *self); 
+void           nmn_nm_data_modems_toggled      (NmnNMData *self,
+                                                gboolean active);
+
 #endif /* NMN_NM_DATA_H */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]