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/>.
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_OBJECT_ITEM_H__
31 #define __FILEMANAGER_ACTIONS_API_OBJECT_ITEM_H__
34 * SECTION: object-item
35 * @title: FMAObjectItem
36 * @short_description: The Object Item Base Class Definition
37 * @include: filemanager-actions/fma-object-item.h
39 * This is a pure virtual class, i.e. not an instantiatable one, but
40 * serves as the base class for #FMAObjectAction and #FMAObjectMenu.
43 #include "fma-object-id.h"
47 #define FMA_TYPE_OBJECT_ITEM ( fma_object_item_get_type())
48 #define FMA_OBJECT_ITEM( object ) ( G_TYPE_CHECK_INSTANCE_CAST( object, FMA_TYPE_OBJECT_ITEM, FMAObjectItem ))
49 #define FMA_OBJECT_ITEM_CLASS( klass ) ( G_TYPE_CHECK_CLASS_CAST( klass, FMA_TYPE_OBJECT_ITEM, FMAObjectItemClass ))
50 #define FMA_IS_OBJECT_ITEM( object ) ( G_TYPE_CHECK_INSTANCE_TYPE( object, FMA_TYPE_OBJECT_ITEM ))
51 #define FMA_IS_OBJECT_ITEM_CLASS( klass ) ( G_TYPE_CHECK_CLASS_TYPE(( klass ), FMA_TYPE_OBJECT_ITEM ))
52 #define FMA_OBJECT_ITEM_GET_CLASS( object ) ( G_TYPE_INSTANCE_GET_CLASS(( object ), FMA_TYPE_OBJECT_ITEM, FMAObjectItemClass ))
54 typedef struct _FMAObjectItemPrivate FMAObjectItemPrivate
;
59 FMAObjectItemPrivate
*private;
63 typedef struct _FMAObjectItemClassPrivate FMAObjectItemClassPrivate
;
67 FMAObjectIdClass parent
;
68 FMAObjectItemClassPrivate
*private;
74 * @ITEM_TARGET_SELECTION: when targeting the selection context menu.
75 * @ITEM_TARGET_LOCATION: when targeting the background context menu.
76 * @ITEM_TARGET_TOOLBAR: when targeting the toolbar.
77 * @ITEM_TARGET_ANY: a wilcard target defined in order to be able
78 * to activate an action from a keyboard shortcut,
79 * while keeping this same action hidden from the UI.
81 * The #FMAItemTarget mode is driven by the file manager. It determines
82 * in which part of the file manager UI our actions will be displayed.
85 ITEM_TARGET_SELECTION
= 1,
92 GType
fma_object_item_get_type ( void );
94 FMAObjectId
*fma_object_item_get_item ( const FMAObjectItem
*item
, const gchar
*id
);
95 gint
fma_object_item_get_position ( const FMAObjectItem
*item
, const FMAObjectId
*child
);
96 void fma_object_item_append_item ( FMAObjectItem
*item
, const FMAObjectId
*child
);
97 void fma_object_item_insert_at ( FMAObjectItem
*item
, const FMAObjectId
*child
, gint pos
);
98 void fma_object_item_insert_item ( FMAObjectItem
*item
, const FMAObjectId
*child
, const FMAObjectId
*before
);
99 void fma_object_item_remove_item ( FMAObjectItem
*item
, const FMAObjectId
*child
);
101 guint
fma_object_item_get_items_count ( const FMAObjectItem
*item
);
103 void fma_object_item_count_items ( GList
*items
, gint
*menus
, gint
*actions
, gint
*profiles
, gboolean recurse
);
104 GList
*fma_object_item_copyref_items ( GList
*items
);
105 GList
*fma_object_item_free_items ( GList
*items
);
107 void fma_object_item_deals_with_version ( FMAObjectItem
*item
);
108 void fma_object_item_rebuild_children_slist( FMAObjectItem
*item
);
110 gboolean
fma_object_item_is_finally_writable ( const FMAObjectItem
*item
, guint
*reason
);
111 void fma_object_item_set_writability_status( FMAObjectItem
*item
, gboolean writable
, guint reason
);
115 #endif /* __FILEMANAGER_ACTIONS_API_OBJECT_ITEM_H__ */