Exemple #1
0
        static uint RegisterSignal(string signal_name, GLib.GType gtype, GLib.Signal.Flags signal_flags, GLib.GType return_type, GLib.GType[] param_types, ClosureMarshal marshaler)
        {
            IntPtr[] native_param_types = new IntPtr [param_types.Length];
            for (int parm_idx = 0; parm_idx < param_types.Length; parm_idx++)
            {
                native_param_types [parm_idx] = param_types [parm_idx].Val;
            }

            IntPtr native_signal_name = GLib.Marshaller.StringToPtrGStrdup(signal_name);

            try {
                return(g_signal_newv(native_signal_name, gtype.Val, signal_flags, CreateClosure(marshaler), IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, return_type.Val, (uint)param_types.Length, native_param_types));
            } finally {
                GLib.Marshaller.Free(native_signal_name);
            }
        }
Exemple #2
0
 static extern uint g_signal_newv(IntPtr signal_name, IntPtr gtype, GLib.Signal.Flags signal_flags, IntPtr closure, IntPtr accumulator, IntPtr accu_data, IntPtr c_marshaller, IntPtr return_type, uint n_params, [MarshalAs(UnmanagedType.LPArray)] IntPtr[] param_types);