diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/ExtractInterfaceDialog.cs b/src/Main/Base/Project/Src/Gui/Dialogs/ExtractInterfaceDialog.cs index 8f648650ec..76a8aa553f 100644 --- a/src/Main/Base/Project/Src/Gui/Dialogs/ExtractInterfaceDialog.cs +++ b/src/Main/Base/Project/Src/Gui/Dialogs/ExtractInterfaceDialog.cs @@ -91,33 +91,29 @@ namespace ICSharpCode.SharpDevelop.Gui this.selectMembersListBox.Items.Add(FormatMemberForDisplay(p), CheckState.Checked); } } - } - - // TODO: i think these really belong in the model (ExtractInterfaceOptions) - // rather than the view's code-behind... - string FormatMemberForDisplay(IMethod m) - { - StringBuilder sb = new StringBuilder(); - sb.AppendFormat("{0} {1} ( ", m.ReturnType.Name, m.Name); - foreach (IParameter p in m.Parameters) { - if (p != m.Parameters[0]) { - sb.Append(" , "); + foreach (IEvent classEvent in c.Events) { + if (classEvent.IsPublic && !classEvent.IsStatic) { + this.possibleInterfaceMembers.Add(classEvent); + this.selectMembersListBox.Items.Add(FormatMemberForDisplay(classEvent), CheckState.Checked); } - sb.AppendFormat("{0} {1}", p.ReturnType.Name, p.Name); } - sb.Append(" );"); - return sb.ToString(); } - string FormatMemberForDisplay(IProperty p) + // TODO: i think these really belong in the model (ExtractInterfaceOptions) + // rather than the view's code-behind... + string FormatMemberForDisplay(IMember m) { - StringBuilder sb = new StringBuilder(); - sb.AppendFormat("{0} {1} {{ ", p.ReturnType.Name, p.Name); - if (p.CanGet) sb.Append("get;"); - if (p.CanSet && p.CanSet) sb.Append(" "); - if (p.CanSet) sb.Append("set;"); - sb.Append(" }"); - return sb.ToString(); + IAmbience ambience = options.ClassEntity.ProjectContent.Language.GetAmbience(); + + if (m is IProperty) + ambience.ConversionFlags |= ConversionFlags.IncludeBody; + ambience.ConversionFlags &= ~(ConversionFlags.ShowAccessibility | ConversionFlags.ShowModifiers); + + return ambience.Convert(m) + .Replace('\n', ' ') + .Replace('\t', ' ') + .Replace('\r', ' ') + .Replace(" ", " "); } #region Event Handlers diff --git a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Refactoring/NRefactoryRefactoringProvider.cs b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Refactoring/NRefactoryRefactoringProvider.cs index 46674c35f5..cb95efba5b 100644 --- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Refactoring/NRefactoryRefactoringProvider.cs +++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Refactoring/NRefactoryRefactoringProvider.cs @@ -116,6 +116,12 @@ namespace ICSharpCode.SharpDevelop.Dom.Refactoring p.SetRegion.Block= BlockStatement.Null; p.Modifier = Modifiers.None; node = p; + } else { + if (an is EventDeclaration) { + EventDeclaration e = an as EventDeclaration; + e.Modifier = Modifiers.None; + node = e; + } } }