aboutsummaryrefslogtreecommitdiff
path: root/libindicate/server.h
diff options
context:
space:
mode:
Diffstat (limited to 'libindicate/server.h')
-rw-r--r--libindicate/server.h219
1 files changed, 0 insertions, 219 deletions
diff --git a/libindicate/server.h b/libindicate/server.h
deleted file mode 100644
index cff76c4..0000000
--- a/libindicate/server.h
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
-A library to allow applictions to provide simple indications of
-information to be displayed to users of the application through the
-interface shell.
-
-Copyright 2009 Canonical Ltd.
-
-Authors:
- Ted Gould <ted@canonical.com>
-
-This program is free software: you can redistribute it and/or modify it
-under the terms of either or both of the following licenses:
-
-1) the GNU Lesser General Public License version 3, as published by the
-Free Software Foundation; and/or
-2) the GNU Lesser General Public License version 2.1, as published by
-the Free Software Foundation.
-
-This program is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranties of
-MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
-PURPOSE. See the applicable version of the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of both the GNU Lesser General Public
-License version 3 and version 2.1 along with this program. If not, see
-<http://www.gnu.org/licenses/>
-*/
-
-#ifndef INDICATE_SERVER_H_INCLUDED__
-#define INDICATE_SERVER_H_INCLUDED__ 1
-
-#include <glib.h>
-#include <glib-object.h>
-
-#include "interests.h"
-
-G_BEGIN_DECLS
-
-/* Boilerplate */
-#define INDICATE_TYPE_SERVER (indicate_server_get_type ())
-#define INDICATE_SERVER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), INDICATE_TYPE_SERVER, IndicateServer))
-#define INDICATE_IS_SERVER(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), INDICATE_TYPE_SERVER))
-#define INDICATE_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), INDICATE_TYPE_SERVER, IndicateServerClass))
-#define INDICATE_IS_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), INDICATE_TYPE_SERVER))
-#define INDICATE_SERVER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), INDICATE_TYPE_SERVER, IndicateServerClass))
-
-#define INDICATE_SERVER_INDICATOR_NULL (0)
-
-#define INDICATE_SERVER_SIGNAL_INDICATOR_ADDED "indicator-added"
-#define INDICATE_SERVER_SIGNAL_INDICATOR_REMOVED "indicator-removed"
-#define INDICATE_SERVER_SIGNAL_INDICATOR_MODIFIED "indicator-modified"
-#define INDICATE_SERVER_SIGNAL_SERVER_SHOW "server-show"
-#define INDICATE_SERVER_SIGNAL_SERVER_HIDE "server-hide"
-#define INDICATE_SERVER_SIGNAL_SERVER_DISPLAY "server-display"
-#define INDICATE_SERVER_SIGNAL_INTEREST_ADDED "interest-added"
-#define INDICATE_SERVER_SIGNAL_INTEREST_REMOVED "interest-removed"
-
-/**
- IndicateServer:
-
- This is the object that represents the overall connection
- between this application and DBus. It acts as the proxy for
- incomming DBus calls and also sends the appropriate signals
- on DBus for events happening on other objects locally. It
- provides some settings that effection how the application as
- a whole is perceived by listeners of the indicator protocol.
-*/
-typedef struct _IndicateServer IndicateServer;
-struct _IndicateServer {
- GObject parent;
-};
-
-#include "indicator.h"
-
-/**
- IndicateServerClass:
- @parent: Parent Class
- @indicator_added: Slot for #IndicateServer::indicator-added.
- @indicator_removed: Slot for #IndicateServer::indicator-removed.
- @indicator_modified: Slot for #IndicateServer::indicator-modified.
- @server_show: Slot for #IndicateServer::server-show.
- @server_hide: Slot for #IndicateServer::server-hide.
- @server_display: Slot for #IndicateServer::server-display.
- @interest_added: Slot for #IndicateServer::interest-added.
- @interest_removed: Slot for #IndicateServer::interest-removed.
- @get_indicator_count: Returns the number of indicators that are visible
- on the bus. Hidden indicators should not be counted.
- @get_indicator_count_by_type: Returns the number of indicators that are
- of a given type and visible on the bus.
- @get_indicator_list: List all of the indicators that are visible.
- @get_indicator_list_by_type: List all of the indicators of a given
- type that are visible.
- @get_indicator_property: Get a property from a particular indicator.
- @get_indicator_property_group: Get the values for a set of properties
- as an array of entries, returning an array as well.
- @get_indicator_properties: Get a list of all the properties that are
- on a particular indicator.
- @show_indicator_to_user: Respond to someone on the bus asking to show
- a particular indicator to the user.
- @get_next_id: Get the next unused indicator ID.
- @show_interest: React to someone signifying that they are interested
- in this server.
- @remove_interest: Someone on the bus is no longer interest in this
- server, remove it's interest.
- @check_interest: Check to see if anyone on the bus is interested in this
- server for a particular feature.
- @indicate_server_reserved1: Reserved for future use
- @indicate_server_reserved2: Reserved for future use
- @indicate_server_reserved3: Reserved for future use
- @indicate_server_reserved4: Reserved for future use
-
- All of the functions and signals that make up the server class
- including those that are public API to the application and those
- that are public API to all of DBus. Subclasses may need to
- implement a large portion of these.
-*/
-typedef struct _IndicateServerClass IndicateServerClass;
-struct _IndicateServerClass {
- GObjectClass parent;
-
- /* Signals */
- void (* indicator_added) (IndicateServer * server, guint id, gchar * type);
- void (* indicator_removed) (IndicateServer * server, guint id, gchar * type);
- void (* indicator_modified) (IndicateServer * server, guint id, gchar * property);
- void (* server_show) (IndicateServer * server, gchar * type);
- void (* server_hide) (IndicateServer * server, gchar * type);
- void (* server_display) (IndicateServer * server);
- void (* interest_added) (IndicateServer * server, IndicateInterests interest);
- void (* interest_removed) (IndicateServer * server, IndicateInterests interest);
-
- /* Virtual Functions */
- gboolean (*get_indicator_count) (IndicateServer * server, guint * count, GError **error);
- gboolean (*get_indicator_count_by_type) (IndicateServer * server, gchar * type, guint * count, GError **error);
- gboolean (*get_indicator_list) (IndicateServer * server, GArray ** indicators, GError ** error);
- gboolean (*get_indicator_list_by_type) (IndicateServer * server, gchar * type, GArray ** indicators, GError ** error);
- gboolean (*get_indicator_property) (IndicateServer * server, guint id, gchar * property, gchar ** value, GError **error);
- gboolean (*get_indicator_property_group) (IndicateServer * server, guint id, GPtrArray * properties, gchar *** value, GError **error);
- gboolean (*get_indicator_properties) (IndicateServer * server, guint id, gchar *** properties, GError **error);
- gboolean (*show_indicator_to_user) (IndicateServer * server, guint id, GError ** error);
- guint (*get_next_id) (IndicateServer * server);
- gboolean (*show_interest) (IndicateServer * server, gchar * sender, IndicateInterests interest);
- gboolean (*remove_interest) (IndicateServer * server, gchar * sender, IndicateInterests interest);
- gboolean (*check_interest) (IndicateServer * server, IndicateInterests interest);
-
- /* Reserver for future use */
- void (*indicate_server_reserved1)(void);
- void (*indicate_server_reserved2)(void);
- void (*indicate_server_reserved3)(void);
- void (*indicate_server_reserved4)(void);
-};
-
-GType indicate_server_get_type (void) G_GNUC_CONST;
-
-/* Sets the object. By default this is /org/freedesktop/indicators */
-void indicate_server_set_dbus_object (const gchar * obj);
-
-/* Sets the desktop file to get data like name and description
- * out of */
-void indicate_server_set_desktop_file (IndicateServer * server, const gchar * path);
-void indicate_server_set_type (IndicateServer * server, const gchar * type);
-
-/* Show and hide the server on DBus, this allows for the server to
- * be created, change the object, and then shown. If for some
- * reason the app wanted to hide all it's indicators, this is a
- * sure fire way to do so. No idea why, but I'm sure I'll learn. */
-void indicate_server_show (IndicateServer * server);
-void indicate_server_hide (IndicateServer * server);
-
-guint indicate_server_get_next_id (IndicateServer * server);
-void indicate_server_add_indicator (IndicateServer * server, IndicateIndicator * indicator);
-void indicate_server_remove_indicator (IndicateServer * server, IndicateIndicator * indicator);
-
-IndicateServer * indicate_server_ref_default (void);
-void indicate_server_set_default (IndicateServer * server);
-
-/* Check to see if there is someone, out there, who likes this */
-gboolean indicate_server_check_interest (IndicateServer * server, IndicateInterests interest);
-
-
-/* Signal emission functions for sub-classes of the server */
-void indicate_server_emit_indicator_added (IndicateServer *server, guint id, const gchar *type);
-void indicate_server_emit_indicator_removed (IndicateServer *server, guint id, const gchar *type);
-void indicate_server_emit_indicator_modified (IndicateServer *server, guint id, const gchar *property);
-void indicate_server_emit_server_display (IndicateServer *server);
-
-/**
- SECTION:server
- @short_description: The representation of the application on DBus.
- @stability: Unstable
- @include: libindicate/server.h
-
- The server object is the object that provides the functions on
- to DBus for other applications to call. It does this by implementing
- the DBus indicator spec, but it also allows for subclassing so that
- subclasses don't have to worry about the DBus-isms as much as
- the functionality that they're trying to express.
-
- For simple applications there is limited need to set anything
- more than the desktop file and the type of the server using
- indicate_server_set_desktop_file() and indicate_server_set_type().
- Each of these function sets the respective value and expresses
- it in a way that other applications on the bus can read it.
-
- More advanced applications might find the need to subclass the
- #IndicateServer object and make their own. This is likely the
- case where applications have complex data stores that they don't
- want to turn into a large set of #GObjects that can take up a
- significant amount of memory in the program.
-
- In general, it is recommended that application authors go with
- the high memory path first, and then optimize by implementing
- their server on a second pass.
-*/
-
-G_END_DECLS
-
-#endif /* INDICATE_SERVER_H_INCLUDED__ */
-