diff options
author | Ken VanDine <ken.vandine@canonical.com> | 2009-12-10 14:41:37 -0500 |
---|---|---|
committer | Ken VanDine <ken.vandine@canonical.com> | 2009-12-10 14:41:37 -0500 |
commit | 73633e84bc52245fc239498d23208401bab42fd8 (patch) | |
tree | ef0801f89ab871fff30d7b8ca585e41d8a4bcaaf | |
parent | 893208964c5a9bf3133c9512271e466b6e9c00d1 (diff) | |
parent | 2b40fcfa82576f76ba719d0a9321db34c5368cc7 (diff) | |
download | ayatana-indicator-messages-73633e84bc52245fc239498d23208401bab42fd8.tar.gz ayatana-indicator-messages-73633e84bc52245fc239498d23208401bab42fd8.tar.bz2 ayatana-indicator-messages-73633e84bc52245fc239498d23208401bab42fd8.zip |
merged from trunk
-rw-r--r-- | configure.ac | 3 | ||||
-rw-r--r-- | src/im-menu-item.c | 8 | ||||
-rw-r--r-- | src/indicator-messages.c | 92 |
3 files changed, 87 insertions, 16 deletions
diff --git a/configure.ac b/configure.ac index 4b36234..29231a8 100644 --- a/configure.ac +++ b/configure.ac @@ -14,6 +14,7 @@ AC_ISC_POSIX AC_PROG_CC AM_PROG_CC_C_O AC_STDC_HEADERS +AC_DISABLE_STATIC AC_PROG_LIBTOOL AC_SUBST(VERSION) @@ -29,7 +30,7 @@ GTK_REQUIRED_VERSION=2.12 GIO_UNIX_REQUIRED_VERSION=2.18 PANEL_REQUIRED_VERSION=2.0.0 INDICATE_REQUIRED_VERSION=0.2.0 -INDICATOR_REQUIRED_VERSION=0.2.0 +INDICATOR_REQUIRED_VERSION=0.3.0 DBUSMENUGTK_REQUIRED_VERSION=0.1.1 PKG_CHECK_MODULES(APPLET, gtk+-2.0 >= $GTK_REQUIRED_VERSION diff --git a/src/im-menu-item.c b/src/im-menu-item.c index 35bb3be..9ea7ec7 100644 --- a/src/im-menu-item.c +++ b/src/im-menu-item.c @@ -213,6 +213,10 @@ update_time (ImMenuItem * self) } if (elapsed_minutes < 60) { + /* TRANSLATORS: This string is used to represent the number of minutes + since an IM has occured. It is in the right column + of a menu so being brief is desirable, but one character + is not a requirement. */ timestring = g_strdup_printf(ngettext("%d m", "%d m", elapsed_minutes), elapsed_minutes); } else { guint elapsed_hours = elapsed_minutes / 60; @@ -222,6 +226,10 @@ update_time (ImMenuItem * self) elapsed_hours += 1; } + /* TRANSLATORS: This string is used to represent the number of hours + since an IM has occured. It is in the right column + of a menu so being brief is desirable, but one character + is not a requirement. */ timestring = g_strdup_printf(ngettext("%d h", "%d h", elapsed_hours), elapsed_hours); } diff --git a/src/indicator-messages.c b/src/indicator-messages.c index e7d6207..54e67c9 100644 --- a/src/indicator-messages.c +++ b/src/indicator-messages.c @@ -22,6 +22,7 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #include <string.h> #include <glib.h> +#include <glib-object.h> #include <gtk/gtk.h> #include <libdbusmenu-gtk/menu.h> #include <libdbusmenu-gtk/menuitem.h> @@ -29,21 +30,88 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #include <dbus/dbus-glib-bindings.h> #include <libindicator/indicator.h> -INDICATOR_SET_VERSION -INDICATOR_SET_NAME("messages") +#include <libindicator/indicator-object.h> #include "dbus-data.h" #include "messages-service-client.h" -static GtkWidget * main_image = NULL; +#define INDICATOR_MESSAGES_TYPE (indicator_messages_get_type ()) +#define INDICATOR_MESSAGES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), INDICATOR_MESSAGES_TYPE, IndicatorMessages)) +#define INDICATOR_MESSAGES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), INDICATOR_MESSAGES_TYPE, IndicatorMessagesClass)) +#define IS_INDICATOR_MESSAGES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), INDICATOR_MESSAGES_TYPE)) +#define IS_INDICATOR_MESSAGES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), INDICATOR_MESSAGES_TYPE)) +#define INDICATOR_MESSAGES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), INDICATOR_MESSAGES_TYPE, IndicatorMessagesClass)) + +typedef struct _IndicatorMessages IndicatorMessages; +typedef struct _IndicatorMessagesClass IndicatorMessagesClass; +struct _IndicatorMessagesClass { + IndicatorObjectClass parent_class; +}; + +struct _IndicatorMessages { + IndicatorObject parent; +}; + +GType indicator_messages_get_type (void); + +/* Indicator Module Config */ +INDICATOR_SET_VERSION +INDICATOR_SET_TYPE(INDICATOR_MESSAGES_TYPE) + +/* Globals */ +static GtkWidget * main_image = NULL; #define DESIGN_TEAM_SIZE design_team_size static GtkIconSize design_team_size; - static DBusGProxy * icon_proxy = NULL; - static GtkSizeGroup * indicator_right_group = NULL; +/* Prototypes */ +static void indicator_messages_class_init (IndicatorMessagesClass *klass); +static void indicator_messages_init (IndicatorMessages *self); +static void indicator_messages_dispose (GObject *object); +static void indicator_messages_finalize (GObject *object); +static GtkImage * get_icon (IndicatorObject * io); +static GtkMenu * get_menu (IndicatorObject * io); + +G_DEFINE_TYPE (IndicatorMessages, indicator_messages, INDICATOR_OBJECT_TYPE); + +static void +indicator_messages_class_init (IndicatorMessagesClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->dispose = indicator_messages_dispose; + object_class->finalize = indicator_messages_finalize; + + IndicatorObjectClass * io_class = INDICATOR_OBJECT_CLASS(klass); + + io_class->get_image = get_icon; + io_class->get_menu = get_menu; + + return; +} + +static void +indicator_messages_init (IndicatorMessages *self) +{ +} + +static void +indicator_messages_dispose (GObject *object) +{ +G_OBJECT_CLASS (indicator_messages_parent_class)->dispose (object); +} + +static void +indicator_messages_finalize (GObject *object) +{ +G_OBJECT_CLASS (indicator_messages_parent_class)->finalize (object); +} + + + +/* Functions */ static void attention_changed_cb (DBusGProxy * proxy, gboolean dot, gpointer userdata) { @@ -303,14 +371,8 @@ new_launcher_item (DbusmenuMenuitem * newitem, DbusmenuMenuitem * parent, Dbusme return TRUE; } -GtkLabel * -get_label (void) -{ - return NULL; -} - -GtkImage * -get_icon (void) +static GtkImage * +get_icon (IndicatorObject * io) { design_team_size = gtk_icon_size_register("design-team-size", 22, 22); @@ -320,8 +382,8 @@ get_icon (void) return GTK_IMAGE(main_image); } -GtkMenu * -get_menu (void) +static GtkMenu * +get_menu (IndicatorObject * io) { guint returnval = 0; GError * error = NULL; |