GLib.Variant InvokeNative (GLib.Value value, GLib.VariantType expected_type)
		{
			IntPtr native_value = GLib.Marshaller.StructureToPtrAlloc (value);
			GLib.Variant __result = new GLib.Variant(native_cb (native_value, expected_type == null ? IntPtr.Zero : expected_type.Handle, __data));
			value = (GLib.Value) Marshal.PtrToStructure (native_value, typeof (GLib.Value));
			Marshal.FreeHGlobal (native_value);
			return __result;
		}
		GLib.Variant InvokeNative (GLib.DBusConnection connection, string sender, string object_path, string interface_name, string property_name)
		{
			IntPtr native_sender = GLib.Marshaller.StringToPtrGStrdup (sender);
			IntPtr native_object_path = GLib.Marshaller.StringToPtrGStrdup (object_path);
			IntPtr native_interface_name = GLib.Marshaller.StringToPtrGStrdup (interface_name);
			IntPtr native_property_name = GLib.Marshaller.StringToPtrGStrdup (property_name);
			IntPtr error = IntPtr.Zero;
			GLib.Variant __result = new GLib.Variant(native_cb (connection == null ? IntPtr.Zero : connection.Handle, native_sender, native_object_path, native_interface_name, native_property_name, out error, __data));
			GLib.Marshaller.Free (native_sender);
			GLib.Marshaller.Free (native_object_path);
			GLib.Marshaller.Free (native_interface_name);
			GLib.Marshaller.Free (native_property_name);
			return __result;
		}
예제 #3
0
 public IntPtr NativeCallback(IntPtr value, IntPtr expected_type, IntPtr user_data)
 {
     try {
         GLib.Variant __ret = managed((GLib.Value)Marshal.PtrToStructure(value, typeof(GLib.Value)), new GLib.VariantType(expected_type));
         if (release_on_call)
         {
             gch.Free();
         }
         return(__ret == null ? IntPtr.Zero : __ret.Handle);
     } catch (Exception e) {
         GLib.ExceptionManager.RaiseUnhandledException(e, true);
         // NOTREACHED: Above call does not return.
         throw e;
     }
 }
예제 #4
0
 private void InternalStateChanged(GLib.Variant p0)
 {
     GLib.Value      ret             = GLib.Value.Empty;
     GLib.ValueArray inst_and_params = new GLib.ValueArray(2);
     GLib.Value[]    vals            = new GLib.Value [2];
     vals [0] = new GLib.Value(this);
     inst_and_params.Append(vals [0]);
     vals [1] = new GLib.Value(p0);
     inst_and_params.Append(vals [1]);
     g_signal_chain_from_overridden(inst_and_params.ArrayPtr, ref ret);
     foreach (GLib.Value v in vals)
     {
         v.Dispose();
     }
 }
예제 #5
0
        private bool InternalGetNext(string out_name, GLib.Variant value)
        {
            GetNextNativeDelegate unmanaged = class_abi.BaseOverride <GetNextNativeDelegate>(this.LookupGType(), "get_next");

            if (unmanaged == null)
            {
                return(false);
            }

            IntPtr native_out_name = GLib.Marshaller.StringToPtrGStrdup(out_name);
            bool   __result        = unmanaged(this.Handle, native_out_name, value == null ? IntPtr.Zero : value.Handle);

            GLib.Marshaller.Free(native_out_name);
            return(__result);
        }
예제 #6
0
        private void InternalLaunched(GLib.IAppInfo info, GLib.Variant platform_data)
        {
            LaunchedNativeDelegate unmanaged = null;

            unsafe {
                IntPtr *raw_ptr = (IntPtr *)(((long)this.LookupGType().GetThresholdType().GetClassPtr()) + (long)class_abi.GetFieldOffset("launched"));
                unmanaged = (LaunchedNativeDelegate)Marshal.GetDelegateForFunctionPointer(*raw_ptr, typeof(LaunchedNativeDelegate));
            }
            if (unmanaged == null)
            {
                return;
            }

            unmanaged(this.Handle, info == null ? IntPtr.Zero : ((info is GLib.Object) ? (info as GLib.Object).Handle : (info as GLib.AppInfoAdapter).Handle), platform_data == null ? IntPtr.Zero : platform_data.Handle);
        }
예제 #7
0
 private void InternalActionStateChanged(string action_name, GLib.Variant state)
 {
     GLib.Value      ret             = GLib.Value.Empty;
     GLib.ValueArray inst_and_params = new GLib.ValueArray(3);
     GLib.Value[]    vals            = new GLib.Value [3];
     vals [0] = new GLib.Value(this);
     inst_and_params.Append(vals [0]);
     vals [1] = new GLib.Value(action_name);
     inst_and_params.Append(vals [1]);
     vals [2] = new GLib.Value(state);
     inst_and_params.Append(vals [2]);
     g_signal_chain_from_overridden(inst_and_params.ArrayPtr, ref ret);
     foreach (GLib.Value v in vals)
     {
         v.Dispose();
     }
 }
예제 #8
0
        private GLib.IIcon InternalDeserializeIcon(GLib.Variant value)
        {
            DeserializeIconNativeDelegate unmanaged = null;

            unsafe {
                IntPtr *raw_ptr = (IntPtr *)(((long)this.LookupGType().GetThresholdType().GetClassPtr()) + (long)class_abi.GetFieldOffset("deserialize_icon"));
                unmanaged = (DeserializeIconNativeDelegate)Marshal.GetDelegateForFunctionPointer(*raw_ptr, typeof(DeserializeIconNativeDelegate));
            }
            if (unmanaged == null)
            {
                return(null);
            }

            IntPtr __result = unmanaged(this.Handle, value == null ? IntPtr.Zero : value.Handle);

            return(GLib.IconAdapter.GetObject(__result, false));
        }
예제 #9
0
        public IntPtr OnGetProperty(IntPtr connection, IntPtr sender, IntPtr object_path, IntPtr interface_name, IntPtr property_name, out IntPtr error, IntPtr user_data)
        {
            error = IntPtr.Zero;

            try {
                if (get_property == null)
                {
                    return(IntPtr.Zero);
                }

                GLib.Variant __ret = get_property(GLib.Object.GetObject(connection) as GLib.DBusConnection, GLib.Marshaller.Utf8PtrToString(sender), GLib.Marshaller.Utf8PtrToString(object_path), GLib.Marshaller.Utf8PtrToString(interface_name), GLib.Marshaller.Utf8PtrToString(property_name));
                return(__ret == null ? IntPtr.Zero : __ret.Handle);
            } catch (Exception e) {
                GLib.ExceptionManager.RaiseUnhandledException(e, true);
                // NOTREACHED: Above call does not return.
                throw e;
            }
        }
예제 #10
0
        public SimpleAction(string name, GLib.VariantType parameter_type, GLib.Variant state) : base(IntPtr.Zero)
        {
            if (GetType() != typeof(SimpleAction))
            {
                var vals  = new List <GLib.Value> ();
                var names = new List <string> ();
                names.Add("name");
                vals.Add(new GLib.Value(name));
                names.Add("parameter_type");
                vals.Add(new GLib.Value(parameter_type));
                CreateNativeObject(names.ToArray(), vals.ToArray());
                return;
            }
            IntPtr native_name = GLib.Marshaller.StringToPtrGStrdup(name);

            Raw = g_simple_action_new_stateful(native_name, parameter_type == null ? IntPtr.Zero : parameter_type.Handle, state == null ? IntPtr.Zero : state.Handle);
            GLib.Marshaller.Free(native_name);
        }
예제 #11
0
        private bool InternalGetNext(string out_name, GLib.Variant value)
        {
            GetNextNativeDelegate unmanaged = null;

            unsafe {
                IntPtr *raw_ptr = (IntPtr *)(((long)this.LookupGType().GetThresholdType().GetClassPtr()) + (long)class_abi.GetFieldOffset("get_next"));
                unmanaged = (GetNextNativeDelegate)Marshal.GetDelegateForFunctionPointer(*raw_ptr, typeof(GetNextNativeDelegate));
            }
            if (unmanaged == null)
            {
                return(false);
            }

            IntPtr native_out_name = GLib.Marshaller.StringToPtrGStrdup(out_name);
            bool   __result        = unmanaged(this.Handle, native_out_name, value == null ? IntPtr.Zero : value.Handle);

            GLib.Marshaller.Free(native_out_name);
            return(__result);
        }
예제 #12
0
		public GLib.Variant GetValue(string key) {
			IntPtr native_key = GLib.Marshaller.StringToPtrGStrdup (key);
			IntPtr raw_ret = g_settings_get_value(Handle, native_key);
			GLib.Variant ret = new GLib.Variant(raw_ret);
			GLib.Marshaller.Free (native_key);
			return ret;
		}
예제 #13
0
 protected virtual bool OnGetNext(string out_name, GLib.Variant value)
 {
     return(InternalGetNext(out_name, value));
 }
예제 #14
0
        bool InvokeNative(GLib.Variant value, IntPtr result)
        {
            bool __result = native_cb(value == null ? IntPtr.Zero : value.Handle, result, __data);

            return(__result);
        }
예제 #15
0
 public void ChangeState(GLib.Variant value)
 {
     g_action_change_state(Handle, value == null ? IntPtr.Zero : value.Handle);
 }
예제 #16
0
        public static string ActionAndTarget(string action_namespace, string action_name, GLib.Variant target)
        {
            IntPtr native_action_namespace = GLib.Marshaller.StringToPtrGStrdup(action_namespace);
            IntPtr native_action_name      = GLib.Marshaller.StringToPtrGStrdup(action_name);
            IntPtr raw_ret = gtk_print_action_and_target(native_action_namespace, native_action_name, target == null ? IntPtr.Zero : target.Handle);
            string ret     = GLib.Marshaller.PtrToStringGFree(raw_ret);

            GLib.Marshaller.Free(native_action_namespace);
            GLib.Marshaller.Free(native_action_name);
            return(ret);
        }
예제 #17
0
 protected virtual void OnActionStateChanged(string action_name, GLib.Variant state)
 {
     InternalActionStateChanged(action_name, state);
 }
예제 #18
0
 protected virtual void OnActivated(GLib.Variant p0)
 {
     InternalActivated(p0);
 }
예제 #19
0
		public GLib.Variant GetActionStateHint(string action_name) {
			IntPtr native_action_name = GLib.Marshaller.StringToPtrGStrdup (action_name);
			IntPtr raw_ret = g_action_group_get_action_state_hint(Handle, native_action_name);
			GLib.Variant ret = new GLib.Variant(raw_ret);
			GLib.Marshaller.Free (native_action_name);
			return ret;
		}
예제 #20
0
        public static bool ParseDetailedName(string detailed_name, string action_name, GLib.Variant target_value)
        {
            IntPtr native_detailed_name = GLib.Marshaller.StringToPtrGStrdup(detailed_name);
            IntPtr error   = IntPtr.Zero;
            bool   raw_ret = g_action_parse_detailed_name(native_detailed_name, GLib.Marshaller.StringToPtrGStrdup(action_name), target_value == null ? IntPtr.Zero : target_value.Handle, out error);
            bool   ret     = raw_ret;

            GLib.Marshaller.Free(native_detailed_name);
            if (error != IntPtr.Zero)
            {
                throw new GLib.GException(error);
            }
            return(ret);
        }
예제 #21
0
 protected virtual void OnLaunched(GLib.IAppInfo info, GLib.Variant platform_data)
 {
     InternalLaunched(info, platform_data);
 }
예제 #22
0
 protected virtual GLib.IIcon OnDeserializeIcon(GLib.Variant value)
 {
     return(InternalDeserializeIcon(value));
 }
예제 #23
0
        public bool QueryAction(string action_name, out bool enabled, GLib.VariantType parameter_type, GLib.VariantType state_type, GLib.Variant state_hint, GLib.Variant state)
        {
            IntPtr native_action_name = GLib.Marshaller.StringToPtrGStrdup(action_name);
            bool   raw_ret            = g_action_group_query_action(Handle, native_action_name, out enabled, parameter_type == null ? IntPtr.Zero : parameter_type.Handle, state_type == null ? IntPtr.Zero : state_type.Handle, state_hint == null ? IntPtr.Zero : state_hint.Handle, state == null ? IntPtr.Zero : state.Handle);
            bool   ret = raw_ret;

            GLib.Marshaller.Free(native_action_name);
            return(ret);
        }
예제 #24
0
        public void ActionStateChanged(Gtk.IActionObservable observable, string action_name, GLib.Variant state)
        {
            IntPtr native_action_name = GLib.Marshaller.StringToPtrGStrdup(action_name);

            gtk_action_observer_action_state_changed(Handle, observable == null ? IntPtr.Zero : ((observable is GLib.Object) ? (observable as GLib.Object).Handle : (observable as Gtk.ActionObservableAdapter).Handle), native_action_name, state == null ? IntPtr.Zero : state.Handle);
            GLib.Marshaller.Free(native_action_name);
        }
예제 #25
0
 protected virtual void OnStateChanged(GLib.Variant p0)
 {
     InternalStateChanged(p0);
 }
예제 #26
0
		public static GLib.Variant SetMapping(GLib.Value value, GLib.VariantType expected_type, IntPtr user_data) {
			IntPtr native_value = GLib.Marshaller.StructureToPtrAlloc (value);
			IntPtr raw_ret = g_settings_set_mapping(native_value, expected_type == null ? IntPtr.Zero : expected_type.Handle, user_data);
			GLib.Variant ret = new GLib.Variant(raw_ret);
			value = (GLib.Value) Marshal.PtrToStructure (native_value, typeof (GLib.Value));
			Marshal.FreeHGlobal (native_value);
			return ret;
		}
예제 #27
0
        public void ActionAdded(Gtk.IActionObservable observable, string action_name, GLib.VariantType parameter_type, bool enabled, GLib.Variant state)
        {
            IntPtr native_action_name = GLib.Marshaller.StringToPtrGStrdup(action_name);

            gtk_action_observer_action_added(Handle, observable == null ? IntPtr.Zero : ((observable is GLib.Object) ? (observable as GLib.Object).Handle : (observable as Gtk.ActionObservableAdapter).Handle), native_action_name, parameter_type == null ? IntPtr.Zero : parameter_type.Handle, enabled, state == null ? IntPtr.Zero : state.Handle);
            GLib.Marshaller.Free(native_action_name);
        }
예제 #28
0
		public unsafe GLib.Variant CallSync(string method_name, GLib.Variant parameters, GLib.DBusCallFlags flags, int timeout_msec, GLib.Cancellable cancellable) {
			IntPtr native_method_name = GLib.Marshaller.StringToPtrGStrdup (method_name);
			IntPtr error = IntPtr.Zero;
			IntPtr raw_ret = g_dbus_proxy_call_sync(Handle, native_method_name, parameters == null ? IntPtr.Zero : parameters.Handle, (int) flags, timeout_msec, cancellable == null ? IntPtr.Zero : cancellable.Handle, out error);
			GLib.Variant ret = new GLib.Variant(raw_ret);
			GLib.Marshaller.Free (native_method_name);
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}
예제 #29
0
 public void Activate(GLib.Variant parameter)
 {
     g_action_activate(Handle, parameter == null ? IntPtr.Zero : parameter.Handle);
 }
예제 #30
0
 public PaperSize(GLib.Variant variant)
 {
     Raw = gtk_paper_size_new_from_gvariant(variant == null ? IntPtr.Zero : variant.Handle);
 }
예제 #31
0
		public unsafe GLib.Variant CallFinish(GLib.IAsyncResult res) {
			IntPtr error = IntPtr.Zero;
			IntPtr raw_ret = g_dbus_proxy_call_finish(Handle, res == null ? IntPtr.Zero : ((res is GLib.Object) ? (res as GLib.Object).Handle : (res as GLib.AsyncResultAdapter).Handle), out error);
			GLib.Variant ret = new GLib.Variant(raw_ret);
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}
예제 #32
0
		public unsafe GLib.Variant CallSync(string bus_name, string object_path, string interface_name, string method_name, GLib.Variant parameters, GLib.VariantType reply_type, GLib.DBusCallFlags flags, int timeout_msec, GLib.Cancellable cancellable) {
			IntPtr native_bus_name = GLib.Marshaller.StringToPtrGStrdup (bus_name);
			IntPtr native_object_path = GLib.Marshaller.StringToPtrGStrdup (object_path);
			IntPtr native_interface_name = GLib.Marshaller.StringToPtrGStrdup (interface_name);
			IntPtr native_method_name = GLib.Marshaller.StringToPtrGStrdup (method_name);
			IntPtr error = IntPtr.Zero;
			IntPtr raw_ret = g_dbus_connection_call_sync(Handle, native_bus_name, native_object_path, native_interface_name, native_method_name, parameters == null ? IntPtr.Zero : parameters.Handle, reply_type == null ? IntPtr.Zero : reply_type.Handle, (int) flags, timeout_msec, cancellable == null ? IntPtr.Zero : cancellable.Handle, out error);
			GLib.Variant ret = new GLib.Variant(raw_ret);
			GLib.Marshaller.Free (native_bus_name);
			GLib.Marshaller.Free (native_object_path);
			GLib.Marshaller.Free (native_interface_name);
			GLib.Marshaller.Free (native_method_name);
			if (error != IntPtr.Zero) throw new GLib.GException (error);
			return ret;
		}
예제 #33
0
		public GLib.Variant GetCachedProperty(string property_name) {
			IntPtr native_property_name = GLib.Marshaller.StringToPtrGStrdup (property_name);
			IntPtr raw_ret = g_dbus_proxy_get_cached_property(Handle, native_property_name);
			GLib.Variant ret = new GLib.Variant(raw_ret);
			GLib.Marshaller.Free (native_property_name);
			return ret;
		}
예제 #34
0
		public GLib.Variant GetHeader(GLib.DBusMessageHeaderField header_field) {
			IntPtr raw_ret = g_dbus_message_get_header(Handle, (int) header_field);
			GLib.Variant ret = new GLib.Variant(raw_ret);
			return ret;
		}