chiark / gitweb /
Made toggle reference depend on glib2.8
[clg] / glib / alien / gobject.c
1 /* Common Lisp bindings for GTK+ v2.x
2  * Copyright 1999-2005 Espen S. Johnsen <espen@users.sf.net>
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining
5  * a copy of this software and associated documentation files (the
6  * "Software"), to deal in the Software without restriction, including
7  * without limitation the rights to use, copy, modify, merge, publish,
8  * distribute, sublicense, and/or sell copies of the Software, and to
9  * permit persons to whom the Software is furnished to do so, subject to
10  * the following conditions:
11  *
12  * The above copyright notice and this permission notice shall be
13  * included in all copies or substantial portions of the Software.
14  *
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
19  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
21  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22  */
23
24 /* $Id: gobject.c,v 1.3 2005-04-23 16:48:51 espen Exp $ */
25
26 #include <glib-object.h>
27
28 gpointer g_object_newvv (GType object_type, guint n_parameters,
29                          guchar* names[], GValue* values[])
30 {
31   GParameter parameters[n_parameters];
32   int i;
33
34   for (i = 0; i < n_parameters; i++) {
35     parameters[i].name = names[i];
36     g_value_init (&parameters[i].value, G_VALUE_TYPE (values[i]));
37     g_value_copy (values[i], &parameters[i].value);
38   }
39
40   return g_object_newv (object_type, n_parameters, &parameters);
41 }
42
43
44 guint size_of_gvalue ()
45 {
46   return sizeof (GValue);
47 }
48
49
50 GEnumValue*
51 g_enum_class_values (GEnumClass *class, guint *n_values)
52 {
53   *n_values = class->n_values;
54   return class->values;
55 }
56
57 GFlagsValue*
58 g_flags_class_values (GFlagsClass *class, guint *n_values)
59 {
60   *n_values = class->n_values;
61   return class->values;
62 }
63