diff options
Diffstat (limited to 'camel/camel-filter-driver.c')
-rw-r--r-- | camel/camel-filter-driver.c | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/camel/camel-filter-driver.c b/camel/camel-filter-driver.c index 0c500b78bb..47f60c2f7a 100644 --- a/camel/camel-filter-driver.c +++ b/camel/camel-filter-driver.c @@ -75,10 +75,13 @@ struct _CamelFilterDriverPrivate { void *statusdata; /* status callback data */ CamelFilterShellExecFunc *execfunc; /* execute shell command callback */ - void *execdata; /* execute shell command data */ + void *execdata; /* execute shell command callback data */ CamelFilterPlaySoundFunc *playfunc; /* play-sound command callback */ - void *playdata; /* play-sound command data */ + void *playdata; /* play-sound command callback data */ + + CamelFilterSystemBeepFunc *beep; /* system beep callback */ + void *beepdata; /* system beep callback data */ /* for callback */ CamelFilterGetFolderFunc get_folder; @@ -307,6 +310,15 @@ camel_filter_driver_set_play_sound_func (CamelFilterDriver *d, CamelFilterPlaySo } void +camel_filter_driver_set_system_beep_func (CamelFilterDriver *d, CamelFilterSystemBeepFunc *func, void *data) +{ + struct _CamelFilterDriverPrivate *p = _PRIVATE (d); + + p->beep = func; + p->beepdata = data; +} + +void camel_filter_driver_set_default_folder (CamelFilterDriver *d, CamelFolder *def) { struct _CamelFilterDriverPrivate *p = _PRIVATE (d); @@ -591,10 +603,14 @@ shell_exec (struct _ESExp *f, int argc, struct _ESExpResult **argv, CamelFilterD static ESExpResult * do_beep (struct _ESExp *f, int argc, struct _ESExpResult **argv, CamelFilterDriver *driver) { + struct _CamelFilterDriverPrivate *p = _PRIVATE (driver); + d(fprintf (stderr, "beep\n")); - camel_filter_driver_log (driver, FILTER_LOG_ACTION, "Beep"); - printf ("\a"); + if (p->beep) { + p->beep (driver, p->beepdata); + camel_filter_driver_log (driver, FILTER_LOG_ACTION, "Beep"); + } return NULL; } |