0:   //  ILanguageInformation.cs
1:   //  Copyright (c) 2001 Mike Krueger
2:   //
3:   //  This program is free software; you can redistribute it and/or modify
4:   //  it under the terms of the GNU General Public License as published by
5:   //  the Free Software Foundation; either version 2 of the License, or
6:   //  (at your option) any later version.
7:   //
8:   //  This program is distributed in the hope that it will be useful,
9:   //  but WITHOUT ANY WARRANTY; without even the implied warranty of
10:   //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11:   //  GNU General Public License for more details.
12:   //
13:   //  You should have received a copy of the GNU General Public License
14:   //  along with this program; if not, write to the Free Software
15:   //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16:  
17:   using System.Collections;
18:   using System.Windows.Forms;
19:   using System.Xml;
20:  
21:   using SharpDevelop.Internal.Templates;
22:   using SharpDevelop.Gui.Edit;
23:   using SharpDevelop.Gui;
24:   using SharpDevelop.Gui.Window;
25:  
26:   namespace SharpDevelop.Internal.Project {
27:  
28:       /// <summary>
29:       /// This class holds all information the ContentWindow needs from a 
30:       /// language module to create a view.
31:       /// It is needed to create own, custom views of a Content, this may not be
32:       /// a textarea, this can be anything :)
33:       /// </summary>
34:       public class WindowContentPane
35:       {
36:           public Control     Pane        null;
37:           public ISdEditable ISdEditable null;
38:       }
39:       
40:       /// <summary>
41:       /// This class holds all information the language modules need to create
42:       /// a predefined project for their language, if no project template for a 
43:       /// specific language is avaible, the language modules shouldn't care about
44:       /// this stuff.
45:       /// </summary>
46:       public class ProjectCreateInformation
47:       {
48:           public string Name;
49:           public string Solution;
50:           public string Location;
51:           public string Description// not yet used
52:           
53:           public ProjectTemplate ProjectTemplate;
54:       }
55:       
56:       /// <summary>
57:       /// This class holds all information the language modules need to create
58:       /// a predefined file for their language, if no file template for a 
59:       /// specific language is avaible, the language modules shouldn't care about
60:       /// this stuff.
61:       /// </summary>
62:       public class FileCreateInformation
63:       {
64:           public string Name;
65:           public string Solution;
66:           public string Location;
67:           public string Description// not yet used
68:           
69:           public ProjectTemplate ProjectTemplate;
70:       }
71:       
72:       public interface IProjectOptionsDialog
73:       {
74:           IConfiguration Configuration {
75:               get;
76:               set;
77:           }
78:           void Accept();
79:       }
80:       
81:       public interface IProjectCreator
82:       {
83:           /// <returns>
84:           /// A new empty project object.
85:           /// </returns>
86:           IProject EmptyProject {
87:               get;
88:           }
89:           
90:           IProject CreateProject(ProjectCreateInformation info);
91:  
92:           /// <summary>
93:           /// returns a compiler options user control, used in the project options dialog.
94:           /// </summary>
95:           UserControl CreateCompilerOptionsControl();
96:       }
97:       
98:       public interface IFileCreator
99:       {
100:           string CreateFile(FileCreateInformation info);
101:       }
102:       
103:       public interface IDisplayModule
104:       {
105:           /// <returns>
106:           /// The WindowContentPane of the ContentWindow which displays a file for this
107:           /// "language" definition.
108:           /// May return null, in this case a TextArea is assumed for this language.
109:           /// </returns>
110:           WindowContentPane GetContentPane(MainWindow mainwindowContentWindow window);
111:       }
112:       
113:       /// <summary>
114:       /// All language modules MUST define a class called "LanguageInformation" in
115:       /// their DLL, this class MUST not be inside a namespace and it MUST implement
116:       /// this interface to communicate with SharpDevelop.
117:       /// </summary>
118:       public interface ILanguageModule
119:       {
120:           /// <returns>
121:           /// An ISdFileCreator object, it doesn't need to be newed everytime. 
122:           /// Returns null if there is no new file template for this language type available.
123:           /// </returns>
124:           IFileCreator FileCreator {
125:               get;
126:           }
127:           
128:           /// <returns>
129:           /// An ISdProjectCreator object, it doesn't need to be newed everytime. 
130:           /// Returns null if there is no project management for this language type available.
131:           /// </returns>
132:           IProjectCreator ProjectCreator {
133:               get;
134:           }
135:           
136:           /// <returns>
137:           /// A compiler object, it doesn't need to be newed everytime. Returns null if there is
138:           /// no compilation for this language type available.
139:           /// </returns>
140:           ICompiler Compiler {
141:               get;
142:           }
143:           
144:           /// <summary>
145:           /// This function executes a file, the filename is given by filename,
146:           /// the file was compiled by the compiler object before.
147:           /// </summary>
148:           void Execute(MainWindow mainwindowstring filename);
149:           
150:           /// <summary>
151:           /// This function executes a project, the project is given as a parameter,
152:           /// the project was compiled by the compiler object before.
153:           /// </summary>
154:           void Execute(MainWindow mainwindowIProject project);
155:       }
156:   }

This page was automatically generated by SharpDevelop.