Example #1
0
 static void Forall_cb(IntPtr container, bool include_internals, IntPtr cb, IntPtr data)
 {
     try {
         //GtkContainer's unmanaged dispose calls forall, but by that time the managed object is gone
         //so it couldn't do anything useful, and resurrecting it would cause a resurrection cycle.
         //In that case, just chain to the native base in case it can do something.
         Container obj = (Container)GLib.Object.TryGetObject(container);
         if (obj != null)
         {
             CallbackInvoker invoker = new CallbackInvoker(cb, data);
             obj.ForAll(include_internals, new Gtk.Callback(invoker.Invoke));
         }
         else
         {
             gtksharp_container_base_forall(container, include_internals, cb, data);
         }
     } catch (Exception e) {
         GLib.ExceptionManager.RaiseUnhandledException(e, false);
     }
 }