extern static IntPtr g_param_spec_ulong( IntPtr name, IntPtr nick, IntPtr blurb, nulong min, nulong max, nulong defaultValue, ParamFlags flags);
public void TestParamSpecULong() { nulong min = 1; nulong max = 5; nulong defaultValue = 3; var param = TestParamSpec(GType.ULong, (name, nick, blurb, flags) => new ParamSpecULong(name, nick, blurb, min, max, defaultValue, flags)); Assert.That(param.Minimum, Is.EqualTo(min)); Assert.That(param.Maximum, Is.EqualTo(max)); Assert.That(param.DefaultValue, Is.EqualTo(defaultValue)); Assert.That(param.GetGType().Name, Is.EqualTo("GParamULong")); Utility.AssertNoGLibLog(); }
public void TestULong() { var v = new Value(GType.ULong); Assert.That(v.ValueGType, Is.EqualTo(GType.ULong)); nulong expected = 1; v.Set(expected); Assert.That((nulong)v, Is.EqualTo(expected)); Assert.That(v.Get(), Is.EqualTo(expected)); var v2 = new Value(GType.Boolean); Assert.That(() => v2.Set(1UL), Throws.ArgumentException); Assert.That(() => (nulong)v2, Throws.InstanceOf <InvalidCastException> ()); Utility.AssertNoGLibLog(); }
static IntPtr New(string name, string nick, string blurb, nulong min, nulong max, nulong defaultValue, ParamFlags flags) { if (name == null) { throw new ArgumentNullException(nameof(name)); } if (nick == null) { throw new ArgumentNullException(nameof(nick)); } if (blurb == null) { throw new ArgumentNullException(nameof(blurb)); } var namePtr = GMarshal.StringToUtf8Ptr(name); var nickPtr = GMarshal.StringToUtf8Ptr(nick); var blurbPtr = GMarshal.StringToUtf8Ptr(blurb); var ret = g_param_spec_ulong(namePtr, nickPtr, blurbPtr, min, max, defaultValue, flags); // Any strings that have the cooresponding static flag set must not // be freed because they are passed to g_intern_static_string(). if (!flags.HasFlag(ParamFlags.StaticName)) { GMarshal.Free(namePtr); } if (!flags.HasFlag(ParamFlags.StaticNick)) { GMarshal.Free(nickPtr); } if (!flags.HasFlag(ParamFlags.StaticBlurb)) { GMarshal.Free(blurbPtr); } return(ret); }
public ParamSpecULong(string name, string nick, string blurb, nulong min, nulong max, nulong defaultValue, ParamFlags flags) : this(New(name, nick, blurb, min, max, defaultValue, flags), Transfer.None) { }