1 /* 2 * Nautilus-Actions 3 * A Nautilus extension which offers configurable context menu actions. 4 * 5 * Copyright (C) 2005 The GNOME Foundation 6 * Copyright (C) 2006-2008 Frederic Ruaudel and others (see AUTHORS) 7 * Copyright (C) 2009-2014 Pierre Wieser and others (see AUTHORS) 8 * 9 * Nautilus-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. 13 * 14 * Nautilus-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. 18 * 19 * You should have received a copy of the GNU General Public License 20 * along with Nautilus-Actions; see the file COPYING. If not, see 21 * <http://www.gnu.org/licenses/>. 22 * 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) 28 */ 29 30 #ifndef __NAUTILUS_ACTIONS_API_NA_TIMEOUT_H__ 31 #define __NAUTILUS_ACTIONS_API_NA_TIMEOUT_H__ 32 33 /** 34 * SECTION: timeout 35 * @title: NATimeout 36 * @short_description: The NATimeout Structure 37 * @include: nautilus-actions/na-timeout.h 38 * 39 * The NATimeout structure is a convenience structure to manage timeout 40 * functions. 41 * 42 * Since: 3.1 43 */ 44 45 #include <glib-object.h> 46 47 G_BEGIN_DECLS 48 49 /** 50 * NATimeoutFunc: 51 * @user_data: data to be passed to the callback function. 52 * 53 * Prototype of the callback function. 54 * 55 * Since: 3.1 56 */ 57 typedef void ( *NATimeoutFunc )( void *user_data ); 58 59 /** 60 * NATimeout: 61 * @timeout: (i) timeout configurable parameter (ms) 62 * @handler: (i) handler function 63 * @user_data: (i) user data 64 * 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. 68 * 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. 72 * 73 * Such a structure must be allocated for each managed event. 74 * 75 * When an event is detected, the na_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. 79 * 80 * Since: 3.1 81 */ 82 typedef struct { 83 /*< public >*/ 84 guint timeout; 85 NATimeoutFunc handler; 86 gpointer user_data; 87 /*< private >*/ 88 GTimeVal last_time; 89 guint source_id; 90 } 91 NATimeout; 92 93 void na_timeout_event( NATimeout *timeout ); 94 95 G_END_DECLS 96 97 #endif /* __NAUTILUS_ACTIONS_API_NA_TIMEOUT_H__ */ 98