当前位置: 首页>>代码示例>>C#>>正文


C# Value.Dispose方法代码示例

本文整理汇总了C#中GLib.Value.Dispose方法的典型用法代码示例。如果您正苦于以下问题:C# Value.Dispose方法的具体用法?C# Value.Dispose怎么用?C# Value.Dispose使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在GLib.Value的用法示例。


在下文中一共展示了Value.Dispose方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: PropertyInfo

        public PropertyInfo(IntPtr pspec_ptr)
        {
            GParamSpec pspec = (GParamSpec) Marshal.PtrToStructure (pspec_ptr, typeof (GParamSpec));
              IntPtr name = g_param_spec_get_name (pspec_ptr);
              IntPtr nick = g_param_spec_get_nick (pspec_ptr);
              IntPtr blurb = g_param_spec_get_blurb (pspec_ptr);

              this.name = GLib.Marshaller.Utf8PtrToString (name);
              this.nick = GLib.Marshaller.Utf8PtrToString (nick);
              this.blurb = GLib.Marshaller.Utf8PtrToString (blurb);

              this.readable = ( (pspec.Flags & (1 << 0)) != 0);
              this.writeable = ( (pspec.Flags & (1 << 1)) != 0);
              this.controllable = ( (pspec.Flags & (1 << 9)) != 0);
              /* TODO: Add more flags later, like the mutable flags */

              this.gtype = new GLib.GType (pspec.ValueType);
              this.type = (System.Type) this.gtype;

              this.dflt = this.min = this.max = null;

              try {
            GLib.Value v = new GLib.Value (new GLib.GType (pspec.ValueType));
            g_param_value_set_default (pspec_ptr, ref v);
            this.dflt = v.Val;
            v.Dispose ();

            if (EnumInfo.IsEnumType (this.gtype)) {
              EnumInfo ei = new EnumInfo (this.gtype);
              this.min = ei.Min;
              this.max = ei.Max;
            } else {
              GLib.Value min = new GLib.Value (new GLib.GType (pspec.ValueType));
              GLib.Value max = new GLib.Value (new GLib.GType (pspec.ValueType));
              if (gstsharp_g_param_spec_get_range (pspec_ptr, ref min, ref max)) {
            this.min = (object) min.Val;
            this.max = (object) max.Val;
              }
              min.Dispose ();
              max.Dispose ();
            }
              } catch (Exception) {}
        }
开发者ID:Forage,项目名称:gstreamer-sharp,代码行数:43,代码来源:PropertyInfo.cs

示例2: SetGValue

 public void SetGValue(ref GLib.Value val)
 {
     foreach (object o in content) {
         GLib.Value v = new GLib.Value (o);
         gst_value_list_append_value (ref val, ref v);
         v.Dispose ();
     }
 }
开发者ID:GStreamer,项目名称:gstreamer-sharp,代码行数:8,代码来源:Value.cs

示例3: OnNewWindowPolicyDecisionRequested

		protected virtual bool OnNewWindowPolicyDecisionRequested (WebFrame frame, NetworkRequest request, WebNavigationAction action, WebPolicyDecision decision)
		{
			var val = new Value (GType.Int);
			var valueArray = new ValueArray (5u);
			var array = new Value[5];

			array [0] = new Value (this);
			valueArray.Append (array [0]);
			array [1] = new Value (frame);
			valueArray.Append (array [1]);
			array [2] = new Value (request);
			valueArray.Append (array [2]);
			array [3] = new Value (action);
			valueArray.Append (array [3]);
			array [4] = new Value (decision);
			valueArray.Append (array [4]);
			GLib.Object.g_signal_chain_from_overridden (valueArray.ArrayPtr, ref val);
			var array2 = array;
			for (int i = 0; i < array2.Length; i++) {
				var value = array2 [i];
				value.Dispose ();
			}
			bool result = (bool)val;
			val.Dispose ();
			return result;
		}
开发者ID:gene-l-thomas,项目名称:Eto,代码行数:26,代码来源:EtoWebView.cs

示例4: MoveNext

            public bool MoveNext()
            {
                IntPtr raw_ret;
                bool retry = false;

                if (iterator.Handle == IntPtr.Zero)
                    return false;

                do {
                    GLib.Value value = new GLib.Value (GLib.GType.Boolean);
                    value.Dispose ();

                    IteratorResult ret = iterator.Next (ref value);

                    switch (ret) {
                    case IteratorResult.Done:
                        return false;
                    case IteratorResult.Ok:
                        if (seen.Contains (value)) {
                            retry = true;
                            break;
                        }
                        seen.Add (value , null);
                        current = value.Val;
                        return true;
                    case IteratorResult.Resync:
                        iterator.Resync ();
                        retry = true;
                        break;
                        default:
                    case IteratorResult.Error:
                        throw new Exception ("Error while iterating");
                    }
                } while (retry);

                return false;
            }
开发者ID:knocte,项目名称:gstreamer-sharp-1,代码行数:37,代码来源:Iterator.cs

示例5: Emit

        public static object Emit(GLib.Object o, string name, params object[] parameters)
        {
            SignalQuery query;
              IntPtr type = gstsharp_g_type_from_instance (o.Handle);
              GType gtype = new GType (type);
              string signal_name, signal_detail;
              uint signal_detail_quark = 0;
              int colon;

              colon = name.LastIndexOf ("::");

              if (colon == -1) {
            signal_name = name;
            signal_detail = String.Empty;
              } else {
            signal_name = name.Substring (0, colon);
            signal_detail = name.Substring (colon + 2);
              }

              GTypeSignalKey key = new GTypeSignalKey (gtype, signal_name);

              if (SignalEmitInfo[key] == null) {
            IntPtr native_string = GLib.Marshaller.StringToPtrGStrdup (signal_name);
            uint signal_id = g_signal_lookup (native_string, type);
            GLib.Marshaller.Free (native_string);

            if (signal_id == 0)
              throw new NotSupportedException (String.Format ("{0} has no signal of name {1}", o, name));
            GSignalQuery q = new GSignalQuery ();
            g_signal_query (signal_id, ref q);

            if (q.signal_id == 0)
              throw new NotSupportedException (String.Format ("{0} couldn't be queried for signal with name {1}", o, name));

            query = new SignalQuery ();

            query.signal_id = signal_id;
            query.signal_name = GLib.Marshaller.Utf8PtrToString (q.signal_name);
            query.itype = new GType (q.itype);
            query.signal_flags = q.signal_flags;
            query.return_type = new GType (q.return_type);
            query.n_params = q.n_params;
            query.param_types = new Type[q.n_params];

            for (int i = 0; i < query.n_params; i++) {
              IntPtr t = Marshal.ReadIntPtr (q.param_types, i);
              GType g = new GType (t);

              query.param_types[i] = (Type) g;
            }

            SignalEmitInfo.Add (key, query);
              }

              query = (SignalQuery) SignalEmitInfo[key];
              GLib.Value[] signal_parameters = new GLib.Value[query.n_params + 1];
              signal_parameters[0] = new GLib.Value (o);

              if (parameters.Length != query.n_params)
            throw new ApplicationException (String.Format ("Invalid number of parameters: expected {0}, got {1}", query.n_params, parameters.Length));

              for (int i = 0; i < query.n_params; i++) {
            Type expected_type = (Type) query.param_types[i];
            Type given_type = parameters[i].GetType ();

            if (expected_type != given_type && ! given_type.IsSubclassOf (given_type))
              throw new ApplicationException (String.Format ("Invalid parameter type: expected {0}, got {1}", expected_type, given_type));

            signal_parameters[i + 1] = new GLib.Value (parameters[i]);
              }

              GLib.Value return_value = new GLib.Value ();
              if (query.return_type != GType.Invalid && query.return_type != GType.None)
            return_value.Init (query.return_type);

              if (signal_detail != String.Empty) {
            IntPtr native_string = GLib.Marshaller.StringToPtrGStrdup (signal_detail);
            signal_detail_quark = g_quark_from_string (native_string);
            GLib.Marshaller.Free (native_string);
              }

              g_signal_emitv (signal_parameters, query.signal_id, signal_detail_quark, ref return_value);

              foreach (GLib.Value v in signal_parameters)
            v.Dispose ();

              object ret = (query.return_type != GType.Invalid && query.return_type != GType.None) ? return_value.Val : null;

              if (ret != null)
            return_value.Dispose ();

              return ret;
        }
开发者ID:knocte,项目名称:gstreamer-sharp-1,代码行数:93,代码来源:DynamicSignal.cs

示例6: RowSeparatorFunc

		bool RowSeparatorFunc (Gtk.TreeModel model, Gtk.TreeIter iter)
		{
			GLib.Value val = new GLib.Value ();
			model.GetValue (iter, 0, ref val);
			bool sep = ((string)val) == "";
			val.Dispose ();
			return sep;
		}
开发者ID:Kalnor,项目名称:monodevelop,代码行数:8,代码来源:GroupPicker.cs


注:本文中的GLib.Value.Dispose方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。