1 /* 2 * Nautilus-Actions 3 * A Nautilus extension which offers configurable context menu pivots. 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 __CORE_NA_UPDATER_H__ 31 #define __CORE_NA_UPDATER_H__ 32 33 /* @title: NAUpdater 34 * @short_description: The #NAUpdater Class Definition 35 * @include: core/na-updater.h 36 * 37 * #NAUpdater is a #NAPivot-derived class which allows its clients 38 * to update actions and menus. 39 */ 40 41 #include "na-pivot.h" 42 43 G_BEGIN_DECLS 44 45 #define NA_TYPE_UPDATER ( na_updater_get_type()) 46 #define NA_UPDATER( object ) ( G_TYPE_CHECK_INSTANCE_CAST( object, NA_TYPE_UPDATER, NAUpdater )) 47 #define NA_UPDATER_CLASS( klass ) ( G_TYPE_CHECK_CLASS_CAST( klass, NA_TYPE_UPDATER, NAUpdaterClass )) 48 #define NA_IS_UPDATER( object ) ( G_TYPE_CHECK_INSTANCE_TYPE( object, NA_TYPE_UPDATER )) 49 #define NA_IS_UPDATER_CLASS( klass ) ( G_TYPE_CHECK_CLASS_TYPE(( klass ), NA_TYPE_UPDATER )) 50 #define NA_UPDATER_GET_CLASS( object ) ( G_TYPE_INSTANCE_GET_CLASS(( object ), NA_TYPE_UPDATER, NAUpdaterClass )) 51 52 typedef struct _NAUpdaterPrivate NAUpdaterPrivate; 53 54 typedef struct { 55 /*< private >*/ 56 NAPivot parent; 57 NAUpdaterPrivate *private; 58 } 59 NAUpdater; 60 61 typedef struct _NAUpdaterClassPrivate NAUpdaterClassPrivate; 62 63 typedef struct { 64 /*< private >*/ 65 NAPivotClass parent; 66 NAUpdaterClassPrivate *private; 67 } 68 NAUpdaterClass; 69 70 GType na_updater_get_type( void ); 71 72 NAUpdater *na_updater_new( void ); 73 74 /* writability status 75 */ 76 void na_updater_check_item_writability_status( const NAUpdater *updater, const NAObjectItem *item ); 77 78 gboolean na_updater_are_preferences_locked ( const NAUpdater *updater ); 79 gboolean na_updater_is_level_zero_writable ( const NAUpdater *updater ); 80 81 /* update the tree in memory 82 */ 83 void na_updater_append_item( NAUpdater *updater, NAObjectItem *item ); 84 void na_updater_insert_item( NAUpdater *updater, NAObjectItem *item, const gchar *parent_id, gint pos ); 85 void na_updater_remove_item( NAUpdater *updater, NAObject *item ); 86 87 gboolean na_updater_should_pasted_be_relabeled( const NAUpdater *updater, const NAObject *item ); 88 89 /* read from / write to the physical storage subsystem 90 */ 91 GList *na_updater_load_items ( NAUpdater *updater ); 92 guint na_updater_write_item ( const NAUpdater *updater, NAObjectItem *item, GSList **messages ); 93 guint na_updater_delete_item( const NAUpdater *updater, const NAObjectItem *item, GSList **messages ); 94 95 G_END_DECLS 96 97 #endif /* __CORE_NA_UPDATER_H__ */ 98