diff --git a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerGenerator/AbstractDesignerGenerator.cs b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerGenerator/AbstractDesignerGenerator.cs index d1cfc2e004..f09ad0cf1d 100644 --- a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerGenerator/AbstractDesignerGenerator.cs +++ b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerGenerator/AbstractDesignerGenerator.cs @@ -50,6 +50,12 @@ namespace ICSharpCode.FormsDesigner } } + public FormsDesignerViewContent ViewContent { + get { + return viewContent; + } + } + public void Attach(FormsDesignerViewContent viewContent) { this.viewContent = viewContent; @@ -130,7 +136,7 @@ namespace ICSharpCode.FormsDesigner protected abstract DomRegion GetReplaceRegion(ICSharpCode.TextEditor.Document.IDocument document, IMethod method); - public void MergeFormChanges(CodeCompileUnit unit) + public virtual void MergeFormChanges(CodeCompileUnit unit) { Reparse(); @@ -246,8 +252,32 @@ namespace ICSharpCode.FormsDesigner } IDocument document; - string saveDocumentToFile; // only set when InitializeComponent was loaded from code-behind file that was not opened - string designerFile; // file that contains InitializeComponents + string saveDocumentToFile; + string designerFile; + + /// + /// The document containing the content of the . Can be a + /// text editor document or independent of a text editor if partial classes are used. + /// + protected IDocument Document { + get { return document; } + set { document = value; } + } + /// + /// only set when InitializeComponent was loaded from code-behind file that was not open, + /// is normally either null or the same value as . + /// + protected string SaveDocumentToFile { + get { return saveDocumentToFile; } + set { saveDocumentToFile = value; } + } + /// + /// file that contains InitializeComponents + /// + protected string DesignerFile { + get { return designerFile; } + set { designerFile = value; } + } void SaveDocument() { @@ -319,7 +349,7 @@ namespace ICSharpCode.FormsDesigner /// /// /// - public bool InsertComponentEvent(IComponent component, EventDescriptor edesc, string eventMethodName, string body, out string file, out int position) + public virtual bool InsertComponentEvent(IComponent component, EventDescriptor edesc, string eventMethodName, string body, out string file, out int position) { if (this.failedDesignerInitialize) { position = 0; @@ -354,7 +384,7 @@ namespace ICSharpCode.FormsDesigner return c.Region.EndLine; } - public ICollection GetCompatibleMethods(EventDescriptor edesc) + public virtual ICollection GetCompatibleMethods(EventDescriptor edesc) { Reparse(); ArrayList compatibleMethods = new ArrayList(); @@ -379,7 +409,7 @@ namespace ICSharpCode.FormsDesigner return compatibleMethods; } - public ICollection GetCompatibleMethods(EventInfo edesc) + public virtual ICollection GetCompatibleMethods(EventInfo edesc) { Reparse(); ArrayList compatibleMethods = new ArrayList(); @@ -403,7 +433,7 @@ namespace ICSharpCode.FormsDesigner return compatibleMethods; } - IField GetField(IClass c, string name) + protected IField GetField(IClass c, string name) { foreach (IField field in c.Fields) { if (field.Name == name) { diff --git a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerGenerator/CodeDOMGenerator.cs b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerGenerator/CodeDOMGenerator.cs index 61a37e3b53..594cf45b3f 100644 --- a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerGenerator/CodeDOMGenerator.cs +++ b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerGenerator/CodeDOMGenerator.cs @@ -38,13 +38,23 @@ namespace ICSharpCode.FormsDesigner CodeDOMGeneratorUtility codeDOMGeneratorUtility = new CodeDOMGeneratorUtility(); string indentation; + protected CodeDomProvider CodeDomProvider { + get { return codeProvider; } + } + protected CodeDOMGeneratorUtility CodeDOMGeneratorUtility { + get { return codeDOMGeneratorUtility; } + } + protected string Indentation { + get { return indentation; } + } + public CodeDOMGenerator(CodeDomProvider codeProvider, string indentation) { this.codeProvider = codeProvider; this.indentation = indentation; } - public void ConvertContentDefinition(CodeMemberMethod method, TextWriter writer) + public virtual void ConvertContentDefinition(CodeMemberMethod method, TextWriter writer) { LoggingService.Info("Generate code for: "+method.Name);