aboutsummaryrefslogtreecommitdiff
path: root/libindicator/indicator-object.c
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2011-01-06 15:51:07 -0600
committerTed Gould <ted@gould.cx>2011-01-06 15:51:07 -0600
commit7a022258c1ea30082fedd56251a3205a5ed30487 (patch)
tree53a77aa1052c943584cdef5c0949c0e1c454e823 /libindicator/indicator-object.c
parent7d8375c7694f91fb05f72cf175a0a0219ba19bb1 (diff)
parent5de24f6cd9603be1649278a09eeacf1c01c1f8d2 (diff)
downloadlibayatana-indicator-7a022258c1ea30082fedd56251a3205a5ed30487.tar.gz
libayatana-indicator-7a022258c1ea30082fedd56251a3205a5ed30487.tar.bz2
libayatana-indicator-7a022258c1ea30082fedd56251a3205a5ed30487.zip
Adding an important field to relate to when to show the indicator.
Diffstat (limited to 'libindicator/indicator-object.c')
-rw-r--r--libindicator/indicator-object.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/libindicator/indicator-object.c b/libindicator/indicator-object.c
index 41484a6..7469cb9 100644
--- a/libindicator/indicator-object.c
+++ b/libindicator/indicator-object.c
@@ -59,6 +59,7 @@ enum {
ENTRY_MOVED,
SCROLL,
MENU_SHOW,
+ SHOW_NOW_CHANGED,
LAST_SIGNAL
};
@@ -181,6 +182,24 @@ indicator_object_class_init (IndicatorObjectClass *klass)
_indicator_object_marshal_VOID__POINTER_UINT,
G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_UINT);
+ /**
+ IndicatorObject::show-now-changed:
+ @arg0: The #IndicatorObject object
+ @arg1: A pointer to the #IndicatorObjectEntry that
+ is changing it's state
+ @arg2: The state of whether the entry should be shown
+
+ Whether the entry should be shown or not has changed so we need
+ to tell whoever is displaying it.
+ */
+ signals[SHOW_NOW_CHANGED] = g_signal_new (INDICATOR_OBJECT_SIGNAL_SHOW_NOW_CHANGED,
+ G_TYPE_FROM_CLASS(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (IndicatorObjectClass, show_now_changed),
+ NULL, NULL,
+ _indicator_object_marshal_VOID__POINTER_BOOLEAN,
+ G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_BOOLEAN);
+
return;
}
@@ -434,6 +453,30 @@ indicator_object_get_location (IndicatorObject * io, IndicatorObjectEntry * entr
}
/**
+ indicator_object_get_show_now:
+ @io: #IndicatorObject to query
+ @entry: The #IndicatorObjectEntry to look for.
+
+ This function returns whether the entry should be shown with
+ priority on the panel. If the object does not support checking
+ it assumes that its entries should never have priority.
+
+ Return value: Whether the entry should be shown with priority.
+*/
+guint
+indicator_object_get_show_now (IndicatorObject * io, IndicatorObjectEntry * entry)
+{
+ g_return_val_if_fail(INDICATOR_IS_OBJECT(io), 0);
+ IndicatorObjectClass * class = INDICATOR_OBJECT_GET_CLASS(io);
+
+ if (class->get_show_now) {
+ return class->get_show_now(io, entry);
+ }
+
+ return FALSE;
+}
+
+/**
indicator_object_entry_activate:
@io: #IndicatorObject to query
@entry: The #IndicatorObjectEntry whose entry was shown