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 __BASE_IUNIQUE_H__ 31 #define __BASE_IUNIQUE_H__ 32 33 /** 34 * SECTION: base_iunique 35 * @short_description: #BaseIUnique interface definition. 36 * @include: nact/base-iunique.h 37 * 38 * This interface implements the features to make an application 39 * unique, i.e. check that we run only one instance of it. 40 * 41 * This interface is implemented by the BaseApplication class. 42 */ 43 44 #include <glib-object.h> 45 46 G_BEGIN_DECLS 47 48 #define BASE_TYPE_IUNIQUE ( base_iunique_get_type()) 49 #define BASE_IUNIQUE( instance ) ( G_TYPE_CHECK_INSTANCE_CAST( instance, BASE_TYPE_IUNIQUE, BaseIUnique )) 50 #define BASE_IS_IUNIQUE( instance ) ( G_TYPE_CHECK_INSTANCE_TYPE( instance, BASE_TYPE_IUNIQUE )) 51 #define BASE_IUNIQUE_GET_INTERFACE( instance ) ( G_TYPE_INSTANCE_GET_INTERFACE(( instance ), BASE_TYPE_IUNIQUE, BaseIUniqueInterface )) 52 53 typedef struct _BaseIUnique BaseIUnique; 54 typedef struct _BaseIUniqueInterfacePrivate BaseIUniqueInterfacePrivate; 55 56 typedef struct { 57 /*< private >*/ 58 GTypeInterface parent; 59 BaseIUniqueInterfacePrivate *private; 60 61 /*< public >*/ 62 /** 63 * get_application_name: 64 * @instance: this #NAIExporter instance. 65 * 66 * Returns: the 'display' name of the application. 67 */ 68 const gchar * ( *get_application_name )( const BaseIUnique *instance ); 69 } 70 BaseIUniqueInterface; 71 72 GType base_iunique_get_type ( void ); 73 74 gboolean base_iunique_init_with_name( BaseIUnique *instance, const gchar *unique_app_name ); 75 76 G_END_DECLS 77 78 #endif /* __BASE_IUNIQUE_H__ */ 79