Add signal handling with the GMainLoop
[dana/openbox.git] / obt / signal.h
1 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
2
3    obt/signal.h for the Openbox window manager
4    Copyright (c) 2010        Dana Jansens
5
6    This program is free software; you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation; either version 2 of the License, or
9    (at your option) any later version.
10
11    This program is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15
16    See the COPYING file for a copy of the GNU General Public License.
17 */
18
19 #ifndef __obt_signal_h
20 #define __obt_signal_h
21
22 #include <glib.h>
23
24 G_BEGIN_DECLS
25
26 typedef void (*ObtSignalHandler)(gint signal, gpointer data);
27
28 /*! Listen for signals and report them through the default GMainContext within
29    main program thread (except signals that require immediate exit).
30    The app should not set its own signal handler function or it will interfere
31    with this one. */
32 void obt_signal_listen(void);
33 /*! Stop listening to signals and clean up */
34 void obt_signal_stop(void);
35
36 /*! Adds a signal handler for a signal.  The callback function @func will be
37   called when the signal @sig is fired.  @sig must not be a signal that
38   would cause the core to dump as these are handled internally.
39  */
40 void obt_signal_add_callback(gint sig, ObtSignalHandler func, gpointer data);
41 /*! Removes the most recently added callback with the given function. */
42 void obt_signal_remove_callback(gint sig, ObtSignalHandler func);
43
44 G_END_DECLS
45
46 #endif