From b76642fa768fd6fb34abc2a02a8bdf548081add7 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 1 Apr 2009 14:49:02 -0500 Subject: Getting some interests in the game. --- libindicate/Makefile.am | 6 ++++-- libindicate/interests-priv.h | 46 +++++++++++++++++++++++++++++++++++++++ libindicate/interests.h | 51 ++++++++++++++++++++++++++++++++++++++++++++ libindicate/listener.h | 1 + libindicate/server.c | 1 + libindicate/server.h | 10 ++++++++- 6 files changed, 112 insertions(+), 3 deletions(-) create mode 100644 libindicate/interests-priv.h create mode 100644 libindicate/interests.h diff --git a/libindicate/Makefile.am b/libindicate/Makefile.am index 5a6f466..c31fe5b 100644 --- a/libindicate/Makefile.am +++ b/libindicate/Makefile.am @@ -25,7 +25,8 @@ indicate_headers = \ indicator.h \ indicator-message.h \ listener.h \ - server.h + server.h \ + interests.h libindicateinclude_HEADERS = \ $(indicate_headers) @@ -41,7 +42,8 @@ libindicate_la_SOURCES = \ listener-marshal.c \ listener-marshal.h \ indicator.c \ - indicator-message.c + indicator-message.c \ + interestes-priv.h libindicate_la_LDFLAGS = \ -version-info $(LIBINDICATE_CURRENT):$(LIBINDICATE_REVISION):$(LIBINDICATE_AGE) \ diff --git a/libindicate/interests-priv.h b/libindicate/interests-priv.h new file mode 100644 index 0000000..eb4e791 --- /dev/null +++ b/libindicate/interests-priv.h @@ -0,0 +1,46 @@ +/* +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 + +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 + +*/ + +#ifndef INDICATE_INTERESTS_PRIV_H_INCLUDED__ +#define INDICATE_INTERESTS_PRIV_H_INCLUDED__ 1 + +#include + +G_BEGIN_DECLS + +#define INDICATE_INTEREST_STRING_SERVER_DISPLAY "server-display" +#define INDICATE_INTEREST_STRING_SERVER_SIGNAL "server-signal" +#define INDICATE_INTEREST_STRING_INDICATOR_DISPLAY "indicator-display" +#define INDICATE_INTEREST_STRING_INDICATOR_SIGNAL "indicator-signal" +#define INDICATE_INTEREST_STRING_INDICATOR_COUNT "indicator-count" + +G_END_DECLS + +#endif /* INDICATE_INTERESTS_PRIV_H_INCLUDED__ */ + diff --git a/libindicate/interests.h b/libindicate/interests.h new file mode 100644 index 0000000..1543075 --- /dev/null +++ b/libindicate/interests.h @@ -0,0 +1,51 @@ +/* +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 + +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 + +*/ + +#ifndef INDICATE_INTERESTS_H_INCLUDED__ +#define INDICATE_INTERESTS_H_INCLUDED__ 1 + +#include + +G_BEGIN_DECLS + +typedef enum _IndicateServerInterests IndicateServerInterests; +enum _IndicateServerInterests { + INDICATE_INTEREST_END, /**< Finishes a list of interests */ + INDICATE_INTEREST_SERVER_DISPLAY, /**< Displays the server's existance to the user */ + INDICATE_INTEREST_SERVER_SIGNAL, /**< Will send signals to the server to be displayed */ + INDICATE_INTEREST_INDICATOR_DISPLAY, /**< Displays indicators to the user */ + INDICATE_INTEREST_INDICATOR_SIGNAL, /**< Will return signals based on individual indicators being responded to */ + INDICATE_INTEREST_INDICATOR_COUNT, /**< Only displays a count of the indicators */ + INDICATE_INTEREST_INDICATOR_LAST /**< Makes merges and counting easier */ +}; + +G_END_DECLS + +#endif /* INDICATE_INTERESTS_H_INCLUDED__ */ + diff --git a/libindicate/listener.h b/libindicate/listener.h index c4e724d..9bd04d6 100644 --- a/libindicate/listener.h +++ b/libindicate/listener.h @@ -36,6 +36,7 @@ License version 3 and version 2.1 along with this program. If not, see #include #include "indicator.h" +#include "interests-priv.h" #include "server.h" G_BEGIN_DECLS diff --git a/libindicate/server.c b/libindicate/server.c index 39753d2..ec5d957 100644 --- a/libindicate/server.c +++ b/libindicate/server.c @@ -28,6 +28,7 @@ License version 3 and version 2.1 along with this program. If not, see */ #include "server.h" +#include "interests-priv.h" #include "dbus-indicate-server.h" /* Errors */ diff --git a/libindicate/server.h b/libindicate/server.h index 8aa0cf1..d5ba9a6 100644 --- a/libindicate/server.h +++ b/libindicate/server.h @@ -34,6 +34,7 @@ License version 3 and version 2.1 along with this program. If not, see #include #include "indicator.h" +#include "interests.h" G_BEGIN_DECLS @@ -53,7 +54,7 @@ G_BEGIN_DECLS #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_LISTENER_INTERESTED "listener-interested" typedef struct _IndicateServer IndicateServer; struct _IndicateServer { @@ -71,6 +72,7 @@ struct _IndicateServerClass { void (* server_show) (IndicateServer * server, gchar * type); void (* server_hide) (IndicateServer * server, gchar * type); void (* server_display) (IndicateServer * server); + void (* listener_interested) (IndicateServer * server, IndicateServerInterests * interests); /* Virtual Functions */ gboolean (*get_indicator_count) (IndicateServer * server, guint * count, GError **error); @@ -82,6 +84,12 @@ struct _IndicateServerClass { 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); + + /* 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; -- cgit v1.2.3