summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2009-09-11 23:24:52 +0200
committerLennart Poettering <lennart@poettering.net>2009-09-11 23:27:25 +0200
commit4813986f73bdabdc5497fb4971e3b9bba1b61659 (patch)
tree92727353432f72a20437903059f17c64f63a328b
parent5714f7a60061f444fcc71970168123814b8c4585 (diff)
gtk-module: generate event sound when expander is expanded
-rw-r--r--src/canberra-gtk-module.c26
1 files changed, 23 insertions, 3 deletions
diff --git a/src/canberra-gtk-module.c b/src/canberra-gtk-module.c
index 0a6cdbd..9e849b3 100644
--- a/src/canberra-gtk-module.c
+++ b/src/canberra-gtk-module.c
@@ -68,10 +68,10 @@ typedef struct {
drag-start
drag-accept
drag-fail
-
- TODO:
expander-toggle-on
expander-toggle-off
+
+ TODO:
scroll-xxx
window-switch
window-resize-xxx
@@ -100,7 +100,8 @@ static guint
signal_id_icon_view_selection_changed,
signal_id_widget_drag_begin,
signal_id_widget_drag_failed,
- signal_id_widget_drag_drop;
+ signal_id_widget_drag_drop,
+ signal_id_expander_activate;
static GQuark
disable_sound_quark,
@@ -674,6 +675,24 @@ static void dispatch_sound_event(SoundEventData *d) {
goto finish;
}
+ if (GTK_IS_EXPANDER(d->object) && d->signal_id == signal_id_expander_activate) {
+
+ if (gtk_expander_get_expanded(GTK_EXPANDER(d->object)))
+ ret = ca_gtk_play_for_event(d->event, 0,
+ CA_PROP_EVENT_ID, "expander-toggle-on",
+ CA_PROP_EVENT_DESCRIPTION, "Expander expanded",
+ CA_PROP_CANBERRA_CACHE_CONTROL, "permanent",
+ NULL);
+ else
+ ret = ca_gtk_play_for_event(d->event, 0,
+ CA_PROP_EVENT_ID, "expander-toggle-off",
+ CA_PROP_EVENT_DESCRIPTION, "Expander unexpanded",
+ CA_PROP_CANBERRA_CACHE_CONTROL, "permanent",
+ NULL);
+
+ goto finish;
+ }
+
if (GTK_IS_WIDGET(d->object)) {
if (d->signal_id == signal_id_widget_drag_begin) {
@@ -869,6 +888,7 @@ G_MODULE_EXPORT void gtk_module_init(gint *argc, gchar ***argv[]) {
install_hook(GTK_TYPE_WIDGET, "drag-begin", &signal_id_widget_drag_begin);
install_hook(GTK_TYPE_WIDGET, "drag-drop", &signal_id_widget_drag_drop);
install_hook(GTK_TYPE_WIDGET, "drag-failed", &signal_id_widget_drag_failed);
+ install_hook(GTK_TYPE_EXPANDER, "activate", &signal_id_expander_activate);
gtk_quit_add(1, quit_handler, NULL);
}