README: add deprecation notice
[nautilus-actions.git] / src / api / fma-timeout.h
blob2a949fbfe2c023bd8c65457f7c56772a451b94d9
1 /*
2 * FileManager-Actions
3 * A file-manager extension which offers configurable context menu actions.
5 * Copyright (C) 2005 The GNOME Foundation
6 * Copyright (C) 2006-2008 Frederic Ruaudel and others (see AUTHORS)
7 * Copyright (C) 2009-2015 Pierre Wieser and others (see AUTHORS)
9 * FileManager-Actions is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of
12 * the License, or (at your option) any later version.
14 * FileManager-Actions is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * General Public License for more details.
19 * You should have received a copy of the GNU General Public License
20 * along with FileManager-Actions; see the file COPYING. If not, see
21 * <http://www.gnu.org/licenses/>.
23 * Authors:
24 * Frederic Ruaudel <grumz@grumz.net>
25 * Rodrigo Moya <rodrigo@gnome-db.org>
26 * Pierre Wieser <pwieser@trychlos.org>
27 * ... and many others (see AUTHORS)
30 #ifndef __FILEMANAGER_ACTIONS_API_TIMEOUT_H__
31 #define __FILEMANAGER_ACTIONS_API_TIMEOUT_H__
33 /**
34 * SECTION: timeout
35 * @title: FMATimeout
36 * @short_description: The FMATimeout Structure
37 * @include: filemanager-actions/fma-timeout.h
39 * The FMATimeout structure is a convenience structure to manage timeout
40 * functions.
42 * Since: 3.1
45 #include <glib-object.h>
47 G_BEGIN_DECLS
49 /**
50 * FMATimeoutFunc:
51 * @user_data: data to be passed to the callback function.
53 * Prototype of the callback function.
55 * Since: 3.1
57 typedef void ( *FMATimeoutFunc )( void *user_data );
59 /**
60 * FMATimeout:
61 * @timeout: timeout configurable parameter (ms)
62 * @handler: handler function
63 * @user_data: user data
65 * This structure let the user (i.e. the code which uses it) manage functions
66 * which should only be called after some time of inactivity, which is typically
67 * the case of 'item-change' handlers.
69 * The structure is supposed to be initialized at construction time with
70 * @timeout in milliseconds, @handler and @user_data input parameters.
71 * The private data should be set to %NULL.
73 * Such a structure must be allocated for each managed event.
75 * When an event is detected, the fma_timeout_event() function must be called
76 * with this structure. The function makes sure that the @handler callback
77 * will be triggered as soon as no event will be recorded after @timeout
78 * milliseconds of inactivity.
80 * Since: 3.1
82 typedef struct {
83 /*< public >*/
84 guint timeout;
85 FMATimeoutFunc handler;
86 gpointer user_data;
87 /*< private >*/
88 GTimeVal last_time;
89 guint source_id;
91 FMATimeout;
93 void fma_timeout_event( FMATimeout *timeout );
95 G_END_DECLS
97 #endif /* __FILEMANAGER_ACTIONS_API_TIMEOUT_H__ */