- char *typename;
-} our_gtk_type_table[] = {
- { TRUE, "NONE", "void " },
- { TRUE, "CHAR", "gchar " },
- { TRUE, "UCHAR", "guchar " },
- { TRUE, "BOOL", "gboolean " },
- { TRUE, "INT", "gint " },
- { TRUE, "UINT", "guint " },
- { TRUE, "LONG", "glong " },
- { TRUE, "ULONG", "gulong " },
- { TRUE, "FLOAT", "gfloat " },
- { TRUE, "DOUBLE", "gdouble " },
- { TRUE, "STRING", /*"GtkString"*/"gchar *" },
- { TRUE, "ENUM", /*"GtkEnum"*/"gint " },
- { TRUE, "FLAGS", /*"GtkFlags"*/"guint " },
- { TRUE, "BOXED", /*"GtkBoxed"*/"gpointer " },
- { TRUE, "POINTER", "gpointer " },
- { TRUE, "OBJECT", "GtkObject *" },
- { FALSE, "SIGNAL", /*"GtkSignal"*/"___twopointertype " },
- { FALSE, "ARGS", /*"GtkArgs"*/"___twopointertype " },
- { FALSE, "CALLBACK", /*"GtkCallback"*/"___threepointertype " },
- { FALSE, "C_CALLBACK", /*"GtkCCallback"*/"___twopointertype " },
- { FALSE, "FOREIGN", /*"GtkForeign"*/"___twopointertype " },
+ char *cast;
+ char *type_name;
+ char *type_pointer;
+ int special;
+};
+const OurGtkType our_gtk_type_table[] = {
+ { TRUE, "NONE", "void ", "void", NULL, -1 },
+ { TRUE, "CHAR", "gchar ", "gchar", NULL, -1 },
+ { TRUE, "UCHAR", "guchar ", "guchar", NULL, -1 },
+ { TRUE, "UNICHAR", "gunichar ", "gunichar", NULL, -1 },
+ { TRUE, "BOOLEAN", "gboolean ", "gboolean", NULL, -1 },
+ { TRUE, "INT", "gint ", "gint", NULL, -1 },
+ { TRUE, "UINT", "guint ", "guint", NULL, -1 },
+ { TRUE, "LONG", "glong ", "glong", NULL, -1 },
+ { TRUE, "ULONG", "gulong ", "gulong", NULL, -1 },
+ { TRUE, "INT64", "gint64 ", "gint64", NULL, -1 },
+ { TRUE, "UINT64", "guint64 ", "guint64", NULL, -1 },
+ { TRUE, "ENUM", /*"enum"*/"gint ", "gint", NULL, -1 },
+ { TRUE, "FLAGS", /*"flags"*/"guint ", "guint", NULL, -1 },
+ { TRUE, "FLOAT", "gfloat ", "gfloat", NULL, -1 },
+ { TRUE, "DOUBLE", "gdouble ", "gdouble", NULL, -1 },
+ { TRUE, "STRING", /*"string"*/"gchar *", "gchar", "*", -1 },
+ { TRUE, "POINTER", "gpointer ", "gpointer", NULL, -1 },
+ { TRUE, "BOXED", /*"boxed"*/"gpointer ", "gpointer", NULL, -1 },
+ { TRUE, "OBJECT", "GObject *", "GObject", "*", -1 },
+ { TRUE, "PARAM", "GParamSpec *", "GParamSpec", "*", -1 },
+
+ /* FIXME: VALUE_ARRAY, CLOSURE */
+ /* Note that those have some issues with g_value_ calls etc... so
+ * we can't just add them */
+
+ /* Do we need this??? */
+#if 0
+ { FALSE, "SIGNAL", /*"GtkSignal"*/"___twopointertype ",
+ SPECIAL_2POINTER },
+ { FALSE, "ARGS", /*"GtkArgs"*/"___intpointertype ",
+ SPECIAL_INT_POINTER },
+ { FALSE, "CALLBACK", /*"GtkCallback"*/"___threepointertype ",
+ SPECIAL_3POINTER },
+ { FALSE, "C_CALLBACK", /*"GtkCCallback"*/"___twopointertype ",
+ SPECIAL_2POINTER },
+ { FALSE, "FOREIGN", /*"GtkForeign"*/"___twopointertype ",
+ SPECIAL_2POINTER },
+#endif