aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Gould <ted@canonical.com>2009-03-24 16:57:06 -0500
committerTed Gould <ted@canonical.com>2009-03-24 16:57:06 -0500
commit9137a01fe438d2d1c3b7e3037ebd5ea66bcae57d (patch)
tree65245cbb11fb32a86a8c92d1730f21b6d234e6ff
parent908e7e4b29013ec23b7e4f7d21dae17a03907089 (diff)
downloadayatana-indicator-messages-9137a01fe438d2d1c3b7e3037ebd5ea66bcae57d.tar.gz
ayatana-indicator-messages-9137a01fe438d2d1c3b7e3037ebd5ea66bcae57d.tar.bz2
ayatana-indicator-messages-9137a01fe438d2d1c3b7e3037ebd5ea66bcae57d.zip
Making it so that an indicator gets displayed when someone logs in, eventually it disappears.
-rw-r--r--src/im-menu-item.c24
-rw-r--r--src/im-menu-item.h2
-rw-r--r--src/indicator-messages.c4
3 files changed, 17 insertions, 13 deletions
diff --git a/src/im-menu-item.c b/src/im-menu-item.c
index eaf65a6..90c7422 100644
--- a/src/im-menu-item.c
+++ b/src/im-menu-item.c
@@ -43,6 +43,7 @@ struct _ImMenuItemPrivate
IndicateListenerIndicator * indicator;
glong seconds;
+ gboolean show_time;
GtkHBox * hbox;
GtkLabel * user;
@@ -208,18 +209,20 @@ time_cb (IndicateListener * listener, IndicateListenerServer * server, IndicateL
priv->seconds = propertydata->tv_sec;
- time_t timet;
- struct tm * structtm;
+ if (priv->show_time) {
+ time_t timet;
+ struct tm * structtm;
- timet = propertydata->tv_sec;
- structtm = localtime(&timet);
+ timet = propertydata->tv_sec;
+ structtm = localtime(&timet);
- /* I can't imagine needing more than 80 characters */
- gchar timestring[80];
- strftime(timestring, 80, _("%I:%M"), structtm);
+ /* I can't imagine needing more than 80 characters */
+ gchar timestring[80];
+ strftime(timestring, 80, _("%I:%M"), structtm);
- gtk_label_set_label(priv->time, timestring);
- gtk_widget_show(GTK_WIDGET(priv->time));
+ gtk_label_set_label(priv->time, timestring);
+ gtk_widget_show(GTK_WIDGET(priv->time));
+ }
g_signal_emit(G_OBJECT(self), signals[TIME_CHANGED], 0, priv->seconds, TRUE);
@@ -281,7 +284,7 @@ indicator_modified_cb (IndicateListener * listener, IndicateListenerServer * ser
}
ImMenuItem *
-im_menu_item_new (IndicateListener * listener, IndicateListenerServer * server, IndicateListenerIndicator * indicator)
+im_menu_item_new (IndicateListener * listener, IndicateListenerServer * server, IndicateListenerIndicator * indicator, gboolean show_time)
{
g_debug("Building a new IM Menu Item");
ImMenuItem * self = g_object_new(IM_MENU_ITEM_TYPE, NULL);
@@ -291,6 +294,7 @@ im_menu_item_new (IndicateListener * listener, IndicateListenerServer * server,
priv->listener = listener;
priv->server = server;
priv->indicator = indicator;
+ priv->show_time = show_time;
indicate_listener_get_property(listener, server, indicator, "sender", sender_cb, self);
indicate_listener_get_property_time(listener, server, indicator, "time", time_cb, self);
diff --git a/src/im-menu-item.h b/src/im-menu-item.h
index 34da453..f1f95ea 100644
--- a/src/im-menu-item.h
+++ b/src/im-menu-item.h
@@ -52,7 +52,7 @@ struct _ImMenuItem {
};
GType im_menu_item_get_type (void);
-ImMenuItem * im_menu_item_new (IndicateListener * listener, IndicateListenerServer * server, IndicateListenerIndicator * indicator);
+ImMenuItem * im_menu_item_new (IndicateListener * listener, IndicateListenerServer * server, IndicateListenerIndicator * indicator, gboolean show_time);
glong im_menu_item_get_seconds (ImMenuItem * menuitem);
G_END_DECLS
diff --git a/src/indicator-messages.c b/src/indicator-messages.c
index c600460..0df7dfa 100644
--- a/src/indicator-messages.c
+++ b/src/indicator-messages.c
@@ -342,13 +342,13 @@ subtype_cb (IndicateListener * listener, IndicateListenerServer * server, Indica
g_debug("Message subtype: %s", propertydata);
- if (!strcmp(propertydata, "im")) {
+ if (!strcmp(propertydata, "im") || !strcmp(propertydata, "login")) {
imList_t * listItem = g_new(imList_t, 1);
listItem->server = server;
listItem->indicator = indicator;
g_debug("Building IM Item");
- ImMenuItem * menuitem = im_menu_item_new(listener, server, indicator);
+ ImMenuItem * menuitem = im_menu_item_new(listener, server, indicator, !strcmp(propertydata, "im"));
g_object_ref(G_OBJECT(menuitem));
listItem->menuitem = GTK_WIDGET(menuitem);