## IndicateListener

IndicateListener

## Synopsis

    #include <indicator.h>

    struct              IndicateListener;
    struct              IndicateListenerClass;
                        IndicateListenerIndicator;
                        IndicateListenerServer;
    void                indicate_listener_display           (IndicateListener *listener,
                                                             IndicateListenerServer *server,
                                                             IndicateListenerIndicator *indicator,
                                                             guint timestamp);
    void                indicate_listener_get_property      (IndicateListener *listener,
                                                             IndicateListenerServer *server,
                                                             IndicateListenerIndicator *indicator,
                                                             gchar *property,
                                                             void (*callback) (IndicateListener * listener, IndicateListenerServer * server, IndicateListenerIndicator * indicator, gchar * property, const gchar * propertydata, gpointer data),
                                                             gpointer data);
    void                (*indicate_listener_get_property_cb)
                                                            (IndicateListener *listener,
                                                             IndicateListenerServer *server,
                                                             IndicateListenerIndicator *indicator,
                                                             gchar *property,
                                                             const gchar *propertydata,
                                                             gpointer data);
    IndicateListener *  indicate_listener_new               (void);

## Object Hierarchy

      GObject
       +----IndicateListener

## Signals

      "indicator-added"                                : Run Last
      "indicator-modified"                             : Run Last
      "indicator-removed"                              : Run Last
      "indicator-servers-report"                       : Run Last
      "server-added"                                   : Run Last
      "server-count-changed"                           : Run Last
      "server-removed"                                 : Run Last

## Description

## Details

### struct IndicateListener

    struct IndicateListener;

### struct IndicateListenerClass

    struct IndicateListenerClass {
    	/* Parent */
    	GObjectClass parent;

    	/* Signals */
    	void (* indicator_added) (IndicateListenerServer * server, IndicateListenerIndicator * indicator);
    	void (* indicator_removed) (IndicateListenerServer * server, IndicateListenerIndicator * indicator);
    	void (* indicator_modified) (IndicateListenerServer * server, IndicateListenerIndicator * indicator, gchar * property);

    	void (* server_added) (IndicateListenerServer * server, gchar * type);
    	void (* server_removed) (IndicateListenerServer * server, gchar * type);
    	void (* server_count_changed) (IndicateListenerServer * server, guint count);

    	void (* indicator_servers_report) (void);

    	/* Future Use */
    	void (*indicate_listener_reserved1)(void);
    	void (*indicate_listener_reserved2)(void);
    	void (*indicate_listener_reserved3)(void);
    };

The class has all of the signals that are supplied by the listener about what is happening on the server.

GObjectClass `parent`; | Parent class GObjectClass.
`indicator_added` () | Slot for IndicateListener::indicator-added.
`indicator_removed` () | Slot for IndicateListener::indicator-removed.
`indicator_modified` () | Slot for IndicateListener::indicator-modified.
`server_added` () | Slot for IndicateListener::server-added.
`server_removed` () | Slot for IndicateListener::server-removed.
`server_count_changed` () | Slot for IndicateListener::server-count-changed.
`indicator_servers_report` () | Slot for IndicateListener::indicator-servers-report.
`indicate_listener_reserved1` () | Reserved for future use
`indicate_listener_reserved2` () | Reserved for future use
`indicate_listener_reserved3` () | Reserved for future use

### IndicateListenerIndicator

    typedef struct {
    	guint id;
    } IndicateListenerIndicator;

A private structure used to identify a specific Indicate Indicator that exists on a IndicateListenerServer. Used as a paramaeter and a signal parameter.

### IndicateListenerServer

    typedef struct {
    	gchar * name;
    	GDBusProxy * proxy;
    	GDBusConnection * connection;
    	gboolean interests[INDICATE_INTEREST_LAST];
    	gint max_indicators;
    } IndicateListenerServer;

A private structure used to identify a specific Indicate server that exists on the bus. Used as a paramaeter and a signal parameter.

### indicate_listener_display ()

    void                indicate_listener_display           (IndicateListener *listener,
                                                             IndicateListenerServer *server,
                                                             IndicateListenerIndicator *indicator,
                                                             guint timestamp);

### indicate_listener_get_property ()

    void                indicate_listener_get_property      (IndicateListener *listener,
                                                             IndicateListenerServer *server,
                                                             IndicateListenerIndicator *indicator,
                                                             gchar *property,
                                                             void (*callback) (IndicateListener * listener, IndicateListenerServer * server, IndicateListenerIndicator * indicator, gchar * property, const gchar * propertydata, gpointer data),
                                                             gpointer data);

A function to get a property from an indicator on a server and bring it back locally. This wraps all the hassle of using the DBus API and makes it pretty easy to get properties.

`listener` : | The IndicateListener representing the connection
`server` : | The server that the indicator is on
`indicator` : | Which indicator is being queried
`property` : | Name of the property to get
`callback` : | The callback function to call with the data
`data` : | Arbitrary data to give the callback

### indicate_listener_get_property_cb ()

    void                (*indicate_listener_get_property_cb)
                                                            (IndicateListener *listener,
                                                             IndicateListenerServer *server,
                                                             IndicateListenerIndicator *indicator,
                                                             gchar *property,
                                                             const gchar *propertydata,
                                                             gpointer data);

### indicate_listener_new ()

    IndicateListener *  indicate_listener_new               (void);

Creates a new Listener object. Does not set this to the default listener object.

Returns : | A new listener object.

## Signal Details

### The `"indicator-added"` signal

    void                user_function                      (IndicateListener          *indicatelistener,
                                                            IndicateListenerServer    *arg1,
                                                            IndicateListenerIndicator *arg2,
                                                            gpointer                   user_data)             : Run Last

`indicatelistener` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.

### The `"indicator-modified"` signal

    void                user_function                      (IndicateListener          *indicatelistener,
                                                            IndicateListenerServer    *arg1,
                                                            IndicateListenerIndicator *arg2,
                                                            gchar                     *arg3,
                                                            gpointer                   user_data)             : Run Last

`indicatelistener` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.

### The `"indicator-removed"` signal

    void                user_function                      (IndicateListener          *indicatelistener,
                                                            IndicateListenerServer    *arg1,
                                                            IndicateListenerIndicator *arg2,
                                                            gpointer                   user_data)             : Run Last

`indicatelistener` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.

### The `"indicator-servers-report"` signal

    void                user_function                      (IndicateListener *indicatelistener,
                                                            gpointer          user_data)             : Run Last

`indicatelistener` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.

### The `"server-added"` signal

    void                user_function                      (IndicateListener       *indicatelistener,
                                                            IndicateListenerServer *arg1,
                                                            gchar                  *arg2,
                                                            gpointer                user_data)             : Run Last

`indicatelistener` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.

### The `"server-count-changed"` signal

    void                user_function                      (IndicateListener       *indicatelistener,
                                                            IndicateListenerServer *arg1,
                                                            guint                   arg2,
                                                            gpointer                user_data)             : Run Last

`indicatelistener` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.

### The `"server-removed"` signal

    void                user_function                      (IndicateListener       *indicatelistener,
                                                            IndicateListenerServer *arg1,
                                                            gchar                  *arg2,
                                                            gpointer                user_data)             : Run Last

`indicatelistener` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.