Update Reference Manual
[nautilus-actions.git] / src / api / na-boxed.h
blob5e4d540ac977c0c6c86130e234e5a2040b91a4db
1 /*
2 * Nautilus-Actions
3 * A Nautilus extension which offers configurable context menu actions.
5 * Copyright (C) 2005 The GNOME Foundation
6 * Copyright (C) 2006, 2007, 2008 Frederic Ruaudel and others (see AUTHORS)
7 * Copyright (C) 2009, 2010, 2011 Pierre Wieser and others (see AUTHORS)
9 * This Program 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 * This Program 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
17 * GNU General Public License for more details.
19 * You should have received a copy of the GNU General Public
20 * License along with this Library; see the file COPYING. If not,
21 * write to the Free Software Foundation, Inc., 59 Temple Place,
22 * Suite 330, Boston, MA 02111-1307, USA.
24 * Authors:
25 * Frederic Ruaudel <grumz@grumz.net>
26 * Rodrigo Moya <rodrigo@gnome-db.org>
27 * Pierre Wieser <pwieser@trychlos.org>
28 * ... and many others (see AUTHORS)
31 #ifndef __NAUTILUS_ACTIONS_API_NA_BOXED_H__
32 #define __NAUTILUS_ACTIONS_API_NA_BOXED_H__
34 /**
35 * SECTION: boxed
36 * @title: NABoxed
37 * @short_description: The NABoxed Structure
38 * @include: nautilus-actions/na-boxed.h
40 * The NABoxed structure is a way of handling various types of data in an
41 * opaque structure.
43 * Since: 3.1.0
46 #include <glib-object.h>
48 G_BEGIN_DECLS
50 #define NA_BOXED_TYPE ( na_boxed_get_type())
51 #define NA_BOXED( object ) ( G_TYPE_CHECK_INSTANCE_CAST( object, NA_BOXED_TYPE, NABoxed ))
52 #define NA_BOXED_CLASS( klass ) ( G_TYPE_CHECK_CLASS_CAST( klass, NA_BOXED_TYPE, NABoxedClass ))
53 #define NA_IS_BOXED( object ) ( G_TYPE_CHECK_INSTANCE_TYPE( object, NA_BOXED_TYPE ))
54 #define NA_IS_BOXED_CLASS( klass ) ( G_TYPE_CHECK_CLASS_TYPE(( klass ), NA_BOXED_TYPE ))
55 #define NA_BOXED_GET_CLASS( object ) ( G_TYPE_INSTANCE_GET_CLASS(( object ), NA_BOXED_TYPE, NABoxedClass ))
57 typedef struct _NABoxedPrivate NABoxedPrivate;
59 typedef struct {
60 /*< private >*/
61 GObject parent;
62 NABoxedPrivate *private;
64 NABoxed;
66 typedef struct _NABoxedClassPrivate NABoxedClassPrivate;
68 typedef struct {
69 /*< private >*/
70 GObjectClass parent;
71 NABoxedClassPrivate *private;
73 NABoxedClass;
75 GType na_boxed_get_type ( void );
76 void na_boxed_set_type ( NABoxed *boxed, guint type );
78 gboolean na_boxed_are_equal ( const NABoxed *a, const NABoxed *b );
79 NABoxed *na_boxed_copy ( const NABoxed *boxed );
80 void na_boxed_dump ( const NABoxed *boxed );
81 NABoxed *na_boxed_new_from_string( guint type, const gchar *string );
83 gboolean na_boxed_get_boolean ( const NABoxed *boxed );
84 gconstpointer na_boxed_get_pointer ( const NABoxed *boxed );
85 gchar *na_boxed_get_string ( const NABoxed *boxed );
86 GSList *na_boxed_get_string_list( const NABoxed *boxed );
87 guint na_boxed_get_uint ( const NABoxed *boxed );
88 GList *na_boxed_get_uint_list ( const NABoxed *boxed );
89 void na_boxed_get_as_value ( const NABoxed *boxed, GValue *value );
90 void *na_boxed_get_as_void ( const NABoxed *boxed );
92 void na_boxed_set_from_boxed ( NABoxed *boxed, const NABoxed *value );
93 void na_boxed_set_from_string( NABoxed *boxed, const gchar *value );
94 void na_boxed_set_from_value ( NABoxed *boxed, const GValue *value );
95 void na_boxed_set_from_void ( NABoxed *boxed, const void *value );
97 G_END_DECLS
99 #endif /* __NAUTILUS_ACTIONS_API_NA_BOXED_H__ */