Browse Source

fix EventHandlerProxies

formsdesignerappdomain
Siegfried Pammer 14 years ago
parent
commit
01839c7a96
  1. 4
      src/AddIns/DisplayBindings/FormsDesigner/FormsDesigner.AddIn/FormsDesignerViewContent.cs
  2. 24
      src/AddIns/DisplayBindings/FormsDesigner/Project/FormsDesignerAppDomainHost.cs
  3. 54
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/EventHandlerProxy.cs

4
src/AddIns/DisplayBindings/FormsDesigner/FormsDesigner.AddIn/FormsDesignerViewContent.cs

@ -331,7 +331,7 @@ namespace ICSharpCode.FormsDesigner @@ -331,7 +331,7 @@ namespace ICSharpCode.FormsDesigner
LoggingService.Info("Form Designer: BEGIN INITIALIZE");
appDomainHost.AddService(typeof(IMessageService), new FormsMessageService());
appDomainHost.AddService(typeof(System.Windows.Forms.Design.IUIService), new UIService(this, this));
appDomainHost.AddService(typeof(System.Windows.Forms.Design.IUIService), new UIService(this, appDomainHost));
appDomainHost.AddService(typeof(IHelpService), new HelpService());
@ -420,7 +420,7 @@ namespace ICSharpCode.FormsDesigner @@ -420,7 +420,7 @@ namespace ICSharpCode.FormsDesigner
}
}
void ComponentChanged(object sender, ComponentChangedEventArgs e)
void ComponentChanged(object sender, ComponentChangedEventArgsProxy e)
{
bool loading = appDomainHost.IsLoaderLoading;
LoggingService.Debug("Forms designer: ComponentChanged: " + (e.Component == null ? "<null>" : e.Component.ToString()) + ", Member=" + (e.Member == null ? "<null>" : e.Member.Name) + ", OldValue=" + (e.OldValue == null ? "<null>" : e.OldValue.ToString()) + ", NewValue=" + (e.NewValue == null ? "<null>" : e.NewValue.ToString()) + "; Loading=" + loading + "; Unloading=" + this.unloading);

24
src/AddIns/DisplayBindings/FormsDesigner/Project/FormsDesignerAppDomainHost.cs

@ -141,36 +141,36 @@ namespace ICSharpCode.FormsDesigner @@ -141,36 +141,36 @@ namespace ICSharpCode.FormsDesigner
}
}
public event ComponentChangedEventHandler ComponentChanged;
public event EventHandler<ComponentChangedEventArgsProxy> ComponentChanged;
protected virtual void OnComponentChanged(ComponentChangedEventArgs e)
protected virtual void OnComponentChanged(ComponentChangedEventArgsProxy e)
{
if (ComponentChanged != null) {
ComponentChanged(this, e);
}
}
public event ComponentEventHandler ComponentAdded;
public event EventHandler<ComponentEventArgsProxy> ComponentAdded;
protected virtual void OnComponentAdded(ComponentEventArgs e)
protected virtual void OnComponentAdded(ComponentEventArgsProxy e)
{
if (ComponentAdded != null) {
ComponentAdded(this, e);
}
}
public event ComponentEventHandler ComponentRemoved;
public event EventHandler<ComponentEventArgsProxy> ComponentRemoved;
protected virtual void OnComponentRemoved(ComponentEventArgs e)
protected virtual void OnComponentRemoved(ComponentEventArgsProxy e)
{
if (ComponentRemoved != null) {
ComponentRemoved(this, e);
}
}
public event ComponentRenameEventHandler ComponentRename;
public event EventHandler<ComponentRenameEventArgsProxy> ComponentRename;
protected virtual void OnComponentRename(ComponentRenameEventArgs e)
protected virtual void OnComponentRename(ComponentRenameEventArgsProxy e)
{
if (ComponentRename != null) {
ComponentRename(this, e);
@ -230,22 +230,22 @@ namespace ICSharpCode.FormsDesigner @@ -230,22 +230,22 @@ namespace ICSharpCode.FormsDesigner
void componentChangeService_ComponentRename(object sender, ComponentRenameEventArgs e)
{
OnComponentRename(e);
OnComponentRename(new ComponentRenameEventArgsProxy { Component = e.Component, NewName = e.NewName, OldName = e.OldName });
}
void componentChangeService_ComponentRemoved(object sender, ComponentEventArgs e)
{
OnComponentRemoved(e);
OnComponentRemoved(new ComponentEventArgsProxy { Component = e.Component });
}
void componentChangeService_ComponentAdded(object sender, ComponentEventArgs e)
{
OnComponentAdded(e);
OnComponentAdded(new ComponentEventArgsProxy { Component = e.Component });
}
void componentChangeService_ComponentChanged(object sender, ComponentChangedEventArgs e)
{
OnComponentChanged(e);
OnComponentChanged(new ComponentChangedEventArgsProxy { Component = e.Component, Member = e.Member, NewValue = e.NewValue, OldValue = e.OldValue });
}
void designSurface_Unloading(object sender, EventArgs e)

54
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/EventHandlerProxy.cs

@ -1,6 +1,7 @@ @@ -1,6 +1,7 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Runtime.InteropServices;
@ -78,67 +79,90 @@ namespace ICSharpCode.FormsDesigner @@ -78,67 +79,90 @@ namespace ICSharpCode.FormsDesigner
}
}
[Serializable]
public class ComponentEventArgsProxy : EventArgs
{
public IComponent Component { get; set; }
}
public class ComponentEventHandlerProxy : MarshalByRefObject
{
ComponentEventHandler underlyingHandler;
ComponentEventHandler proxyHandler;
EventHandler<ComponentEventArgsProxy> underlyingHandler;
EventHandler<ComponentEventArgsProxy> proxyHandler;
public ComponentEventHandlerProxy(ComponentEventHandler underlyingHandler)
public ComponentEventHandlerProxy(EventHandler<ComponentEventArgsProxy> underlyingHandler)
{
this.underlyingHandler = underlyingHandler;
this.proxyHandler = OnEvent;
}
void OnEvent(object sender, ComponentEventArgs e)
void OnEvent(object sender, ComponentEventArgsProxy e)
{
underlyingHandler(sender, e);
}
public static implicit operator ComponentEventHandler(ComponentEventHandlerProxy proxy)
public static implicit operator EventHandler<ComponentEventArgsProxy>(ComponentEventHandlerProxy proxy)
{
return proxy.proxyHandler;
}
}
[Serializable]
public class ComponentRenameEventArgsProxy : EventArgs
{
public object Component { get; set; }
public string OldName { get; set; }
public string NewName { get; set; }
}
public class ComponentRenameEventHandlerProxy : MarshalByRefObject
{
ComponentRenameEventHandler underlyingHandler;
ComponentRenameEventHandler proxyHandler;
EventHandler<ComponentRenameEventArgsProxy> underlyingHandler;
EventHandler<ComponentRenameEventArgsProxy> proxyHandler;
public ComponentRenameEventHandlerProxy(ComponentRenameEventHandler underlyingHandler)
public ComponentRenameEventHandlerProxy(EventHandler<ComponentRenameEventArgsProxy> underlyingHandler)
{
this.underlyingHandler = underlyingHandler;
this.proxyHandler = OnEvent;
}
void OnEvent(object sender, ComponentRenameEventArgs e)
void OnEvent(object sender, ComponentRenameEventArgsProxy e)
{
underlyingHandler(sender, e);
}
public static implicit operator ComponentRenameEventHandler(ComponentRenameEventHandlerProxy proxy)
public static implicit operator EventHandler<ComponentRenameEventArgsProxy>(ComponentRenameEventHandlerProxy proxy)
{
return proxy.proxyHandler;
}
}
[Serializable]
public class ComponentChangedEventArgsProxy : EventArgs
{
public object Component { get; set; }
public MemberDescriptor Member { get; set; }
public object OldValue { get; set; }
public object NewValue { get; set; }
}
public class ComponentChangedEventHandlerProxy : MarshalByRefObject
{
ComponentChangedEventHandler underlyingHandler;
ComponentChangedEventHandler proxyHandler;
EventHandler<ComponentChangedEventArgsProxy> underlyingHandler;
EventHandler<ComponentChangedEventArgsProxy> proxyHandler;
public ComponentChangedEventHandlerProxy(ComponentChangedEventHandler underlyingHandler)
public ComponentChangedEventHandlerProxy(EventHandler<ComponentChangedEventArgsProxy> underlyingHandler)
{
this.underlyingHandler = underlyingHandler;
this.proxyHandler = OnEvent;
}
void OnEvent(object sender, ComponentChangedEventArgs e)
void OnEvent(object sender, ComponentChangedEventArgsProxy e)
{
underlyingHandler(sender, e);
}
public static implicit operator ComponentChangedEventHandler(ComponentChangedEventHandlerProxy proxy)
public static implicit operator EventHandler<ComponentChangedEventArgsProxy>(ComponentChangedEventHandlerProxy proxy)
{
return proxy.proxyHandler;
}

Loading…
Cancel
Save