internal Application (IntPtr raw, bool dropref)
{
NativeHandle = raw;
if (dropref)
NativeMethods.event_object_unref (raw);
get_default_style = new GetDefaultStyleCallback (get_default_style_cb_safe);
convert_setter_values = new ConvertSetterValuesCallback (convert_setter_values_cb_safe);
convert_keyframe_value = new ConvertKeyframeValueCallback (convert_keyframe_value_cb_safe);
get_resource = new GetResourceCallback (get_resource_cb_safe);
NativeMethods.application_register_callbacks (NativeHandle, get_default_style, convert_setter_values, get_resource, convert_keyframe_value);
if (Current == null) {
Current = this;
SynchronizationContext context = new System.Windows.Threading.DispatcherSynchronizationContext ();
SynchronizationContext.SetSynchronizationContext (context);
} else {
root_visual = Current.root_visual;
}
lifetime_objects = new ApplicationLifetimeObjectsCollection ();
var handler = UIANewApplication;
if (handler != null)
handler (this, EventArgs.Empty);
}