summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt2
-rw-r--r--src/ld-canvas.c3
-rw-r--r--src/ld-marshal.c86
-rw-r--r--src/ld-marshal.h20
-rw-r--r--src/ld-marshal.list1
5 files changed, 111 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d51af9c..e42d8ca 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -80,12 +80,14 @@ GTK_DOC_RUN (WORKING_DIR ${project_DOC_DIR}
# Project source files
set (logdiag_SOURCES
src/logdiag.c
+ src/ld-marshal.c
src/ld-window-main.c
src/ld-document.c
src/ld-canvas.c
src/ld-symbol-library.c)
set (logdiag_HEADERS
${CMAKE_CURRENT_BINARY_DIR}/config.h
+ src/ld-marshal.h
src/ld-window-main.h
src/ld-document.h
src/ld-canvas.h
diff --git a/src/ld-canvas.c b/src/ld-canvas.c
index 1afff6e..d4e81f2 100644
--- a/src/ld-canvas.c
+++ b/src/ld-canvas.c
@@ -12,6 +12,7 @@
#include "config.h"
+#include "ld-marshal.h"
#include "ld-canvas.h"
#include "ld-document.h"
@@ -63,7 +64,7 @@ ld_canvas_class_init (LdCanvasClass *klass)
G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
0, // G_STRUCT_OFFSET (LdCanvasClass, ...)
NULL, NULL,
- gtk_marshal_NONE__POINTER_POINTER,
+ g_cclosure_user_marshal_VOID__OBJECT_OBJECT,
G_TYPE_NONE, 2, GTK_TYPE_ADJUSTMENT, GTK_TYPE_ADJUSTMENT);
*/
g_type_class_add_private (klass, sizeof (LdCanvasPrivate));
diff --git a/src/ld-marshal.c b/src/ld-marshal.c
new file mode 100644
index 0000000..19cc56d
--- /dev/null
+++ b/src/ld-marshal.c
@@ -0,0 +1,86 @@
+
+#include <glib-object.h>
+
+
+#ifdef G_ENABLE_DEBUG
+#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v)
+#define g_marshal_value_peek_char(v) g_value_get_char (v)
+#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v)
+#define g_marshal_value_peek_int(v) g_value_get_int (v)
+#define g_marshal_value_peek_uint(v) g_value_get_uint (v)
+#define g_marshal_value_peek_long(v) g_value_get_long (v)
+#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v)
+#define g_marshal_value_peek_int64(v) g_value_get_int64 (v)
+#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v)
+#define g_marshal_value_peek_enum(v) g_value_get_enum (v)
+#define g_marshal_value_peek_flags(v) g_value_get_flags (v)
+#define g_marshal_value_peek_float(v) g_value_get_float (v)
+#define g_marshal_value_peek_double(v) g_value_get_double (v)
+#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v)
+#define g_marshal_value_peek_param(v) g_value_get_param (v)
+#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v)
+#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v)
+#define g_marshal_value_peek_object(v) g_value_get_object (v)
+#else /* !G_ENABLE_DEBUG */
+/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
+ * Do not access GValues directly in your code. Instead, use the
+ * g_value_get_*() functions
+ */
+#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int
+#define g_marshal_value_peek_char(v) (v)->data[0].v_int
+#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint
+#define g_marshal_value_peek_int(v) (v)->data[0].v_int
+#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint
+#define g_marshal_value_peek_long(v) (v)->data[0].v_long
+#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong
+#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64
+#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64
+#define g_marshal_value_peek_enum(v) (v)->data[0].v_long
+#define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong
+#define g_marshal_value_peek_float(v) (v)->data[0].v_float
+#define g_marshal_value_peek_double(v) (v)->data[0].v_double
+#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer
+#endif /* !G_ENABLE_DEBUG */
+
+
+/* VOID:OBJECT,OBJECT (ld-marshal.list:1) */
+void
+g_cclosure_user_marshal_VOID__OBJECT_OBJECT (GClosure *closure,
+ GValue *return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint G_GNUC_UNUSED,
+ gpointer marshal_data)
+{
+ typedef void (*GMarshalFunc_VOID__OBJECT_OBJECT) (gpointer data1,
+ gpointer arg_1,
+ gpointer arg_2,
+ gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_OBJECT callback;
+ register GCClosure *cc = (GCClosure*) closure;
+ register gpointer data1, data2;
+
+ g_return_if_fail (n_param_values == 3);
+
+ if (G_CCLOSURE_SWAP_DATA (closure))
+ {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ }
+ else
+ {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback = (GMarshalFunc_VOID__OBJECT_OBJECT) (marshal_data ? marshal_data : cc->callback);
+
+ callback (data1,
+ g_marshal_value_peek_object (param_values + 1),
+ g_marshal_value_peek_object (param_values + 2),
+ data2);
+}
+
diff --git a/src/ld-marshal.h b/src/ld-marshal.h
new file mode 100644
index 0000000..545735a
--- /dev/null
+++ b/src/ld-marshal.h
@@ -0,0 +1,20 @@
+
+#ifndef __g_cclosure_user_marshal_MARSHAL_H__
+#define __g_cclosure_user_marshal_MARSHAL_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* VOID:OBJECT,OBJECT (ld-marshal.list:1) */
+extern void g_cclosure_user_marshal_VOID__OBJECT_OBJECT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+G_END_DECLS
+
+#endif /* __g_cclosure_user_marshal_MARSHAL_H__ */
+
diff --git a/src/ld-marshal.list b/src/ld-marshal.list
new file mode 100644
index 0000000..38076d6
--- /dev/null
+++ b/src/ld-marshal.list
@@ -0,0 +1 @@
+VOID:OBJECT,OBJECT