├── .gitattributes ├── .gitignore ├── CSharpIDE.sln ├── CSharpIDE ├── App.config ├── CSharpIDE.csproj ├── Models │ ├── Project.cs │ └── ProjectFile.cs ├── Presenters │ ├── MainPresenter.cs │ └── NewProjectPresenter.cs ├── Program.cs ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ └── Settings.settings ├── Resources │ ├── ArrowDown.png │ ├── ArrowUp.png │ ├── BuildSolution.png │ ├── Close.png │ ├── CloseProject.png │ ├── Copy.png │ ├── Cut.png │ ├── FileExclude.png │ ├── NewFile.png │ ├── NewProject.png │ ├── Open.png │ ├── OpenFileDialog.png │ ├── Paste.png │ ├── RemoveFile.png │ ├── RightJustify.png │ ├── Run.png │ ├── Save.png │ └── Saveall.png ├── Services │ ├── IOC.cs │ ├── Interfaces │ │ └── IMainServices.cs │ └── MainServices.cs ├── Views │ ├── Interfaces │ │ ├── IMainWindow.cs │ │ ├── INewProjectWindow.cs │ │ └── IShow.cs │ ├── MainWindow.Designer.cs │ ├── MainWindow.cs │ ├── MainWindow.resx │ ├── NewProjectWindow.Designer.cs │ ├── NewProjectWindow.cs │ └── NewProjectWindow.resx └── packages.config ├── FilesForProject └── MainFile.cs └── Images ├── Child.png └── Parent.png /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | ## 4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 5 | 6 | # User-specific files 7 | *.rsuser 8 | *.suo 9 | *.user 10 | *.userosscache 11 | *.sln.docstates 12 | 13 | # User-specific files (MonoDevelop/Xamarin Studio) 14 | *.userprefs 15 | 16 | # Build results 17 | [Dd]ebug/ 18 | [Dd]ebugPublic/ 19 | [Rr]elease/ 20 | [Rr]eleases/ 21 | x64/ 22 | x86/ 23 | [Aa][Rr][Mm]/ 24 | [Aa][Rr][Mm]64/ 25 | bld/ 26 | [Bb]in/ 27 | [Oo]bj/ 28 | [Ll]og/ 29 | 30 | # Visual Studio 2015/2017 cache/options directory 31 | .vs/ 32 | # Uncomment if you have tasks that create the project's static files in wwwroot 33 | #wwwroot/ 34 | 35 | # Visual Studio 2017 auto generated files 36 | Generated\ Files/ 37 | 38 | # MSTest test Results 39 | [Tt]est[Rr]esult*/ 40 | [Bb]uild[Ll]og.* 41 | 42 | # NUNIT 43 | *.VisualState.xml 44 | TestResult.xml 45 | 46 | # Build Results of an ATL Project 47 | [Dd]ebugPS/ 48 | [Rr]eleasePS/ 49 | dlldata.c 50 | 51 | # Benchmark Results 52 | BenchmarkDotNet.Artifacts/ 53 | 54 | # .NET Core 55 | project.lock.json 56 | project.fragment.lock.json 57 | artifacts/ 58 | 59 | # StyleCop 60 | StyleCopReport.xml 61 | 62 | # Files built by Visual Studio 63 | *_i.c 64 | *_p.c 65 | *_h.h 66 | *.ilk 67 | *.meta 68 | *.obj 69 | *.iobj 70 | *.pch 71 | *.pdb 72 | *.ipdb 73 | *.pgc 74 | *.pgd 75 | *.rsp 76 | *.sbr 77 | *.tlb 78 | *.tli 79 | *.tlh 80 | *.tmp 81 | *.tmp_proj 82 | *_wpftmp.csproj 83 | *.log 84 | *.vspscc 85 | *.vssscc 86 | .builds 87 | *.pidb 88 | *.svclog 89 | *.scc 90 | 91 | # Chutzpah Test files 92 | _Chutzpah* 93 | 94 | # Visual C++ cache files 95 | ipch/ 96 | *.aps 97 | *.ncb 98 | *.opendb 99 | *.opensdf 100 | *.sdf 101 | *.cachefile 102 | *.VC.db 103 | *.VC.VC.opendb 104 | 105 | # Visual Studio profiler 106 | *.psess 107 | *.vsp 108 | *.vspx 109 | *.sap 110 | 111 | # Visual Studio Trace Files 112 | *.e2e 113 | 114 | # TFS 2012 Local Workspace 115 | $tf/ 116 | 117 | # Guidance Automation Toolkit 118 | *.gpState 119 | 120 | # ReSharper is a .NET coding add-in 121 | _ReSharper*/ 122 | *.[Rr]e[Ss]harper 123 | *.DotSettings.user 124 | 125 | # JustCode is a .NET coding add-in 126 | .JustCode 127 | 128 | # TeamCity is a build add-in 129 | _TeamCity* 130 | 131 | # DotCover is a Code Coverage Tool 132 | *.dotCover 133 | 134 | # AxoCover is a Code Coverage Tool 135 | .axoCover/* 136 | !.axoCover/settings.json 137 | 138 | # Visual Studio code coverage results 139 | *.coverage 140 | *.coveragexml 141 | 142 | # NCrunch 143 | _NCrunch_* 144 | .*crunch*.local.xml 145 | nCrunchTemp_* 146 | 147 | # MightyMoose 148 | *.mm.* 149 | AutoTest.Net/ 150 | 151 | # Web workbench (sass) 152 | .sass-cache/ 153 | 154 | # Installshield output folder 155 | [Ee]xpress/ 156 | 157 | # DocProject is a documentation generator add-in 158 | DocProject/buildhelp/ 159 | DocProject/Help/*.HxT 160 | DocProject/Help/*.HxC 161 | DocProject/Help/*.hhc 162 | DocProject/Help/*.hhk 163 | DocProject/Help/*.hhp 164 | DocProject/Help/Html2 165 | DocProject/Help/html 166 | 167 | # Click-Once directory 168 | publish/ 169 | 170 | # Publish Web Output 171 | *.[Pp]ublish.xml 172 | *.azurePubxml 173 | # Note: Comment the next line if you want to checkin your web deploy settings, 174 | # but database connection strings (with potential passwords) will be unencrypted 175 | *.pubxml 176 | *.publishproj 177 | 178 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 179 | # checkin your Azure Web App publish settings, but sensitive information contained 180 | # in these scripts will be unencrypted 181 | PublishScripts/ 182 | 183 | # NuGet Packages 184 | *.nupkg 185 | # The packages folder can be ignored because of Package Restore 186 | **/[Pp]ackages/* 187 | # except build/, which is used as an MSBuild target. 188 | !**/[Pp]ackages/build/ 189 | # Uncomment if necessary however generally it will be regenerated when needed 190 | #!**/[Pp]ackages/repositories.config 191 | # NuGet v3's project.json files produces more ignorable files 192 | *.nuget.props 193 | *.nuget.targets 194 | 195 | # Microsoft Azure Build Output 196 | csx/ 197 | *.build.csdef 198 | 199 | # Microsoft Azure Emulator 200 | ecf/ 201 | rcf/ 202 | 203 | # Windows Store app package directories and files 204 | AppPackages/ 205 | BundleArtifacts/ 206 | Package.StoreAssociation.xml 207 | _pkginfo.txt 208 | *.appx 209 | 210 | # Visual Studio cache files 211 | # files ending in .cache can be ignored 212 | *.[Cc]ache 213 | # but keep track of directories ending in .cache 214 | !?*.[Cc]ache/ 215 | 216 | # Others 217 | ClientBin/ 218 | ~$* 219 | *~ 220 | *.dbmdl 221 | *.dbproj.schemaview 222 | *.jfm 223 | *.pfx 224 | *.publishsettings 225 | orleans.codegen.cs 226 | 227 | # Including strong name files can present a security risk 228 | # (https://github.com/github/gitignore/pull/2483#issue-259490424) 229 | #*.snk 230 | 231 | # Since there are multiple workflows, uncomment next line to ignore bower_components 232 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 233 | #bower_components/ 234 | 235 | # RIA/Silverlight projects 236 | Generated_Code/ 237 | 238 | # Backup & report files from converting an old project file 239 | # to a newer Visual Studio version. Backup files are not needed, 240 | # because we have git ;-) 241 | _UpgradeReport_Files/ 242 | Backup*/ 243 | UpgradeLog*.XML 244 | UpgradeLog*.htm 245 | ServiceFabricBackup/ 246 | *.rptproj.bak 247 | 248 | # SQL Server files 249 | *.mdf 250 | *.ldf 251 | *.ndf 252 | 253 | # Business Intelligence projects 254 | *.rdl.data 255 | *.bim.layout 256 | *.bim_*.settings 257 | *.rptproj.rsuser 258 | *- Backup*.rdl 259 | 260 | # Microsoft Fakes 261 | FakesAssemblies/ 262 | 263 | # GhostDoc plugin setting file 264 | *.GhostDoc.xml 265 | 266 | # Node.js Tools for Visual Studio 267 | .ntvs_analysis.dat 268 | node_modules/ 269 | 270 | # Visual Studio 6 build log 271 | *.plg 272 | 273 | # Visual Studio 6 workspace options file 274 | *.opt 275 | 276 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 277 | *.vbw 278 | 279 | # Visual Studio LightSwitch build output 280 | **/*.HTMLClient/GeneratedArtifacts 281 | **/*.DesktopClient/GeneratedArtifacts 282 | **/*.DesktopClient/ModelManifest.xml 283 | **/*.Server/GeneratedArtifacts 284 | **/*.Server/ModelManifest.xml 285 | _Pvt_Extensions 286 | 287 | # Paket dependency manager 288 | .paket/paket.exe 289 | paket-files/ 290 | 291 | # FAKE - F# Make 292 | .fake/ 293 | 294 | # JetBrains Rider 295 | .idea/ 296 | *.sln.iml 297 | 298 | # CodeRush personal settings 299 | .cr/personal 300 | 301 | # Python Tools for Visual Studio (PTVS) 302 | __pycache__/ 303 | *.pyc 304 | 305 | # Cake - Uncomment if you are using it 306 | # tools/** 307 | # !tools/packages.config 308 | 309 | # Tabs Studio 310 | *.tss 311 | 312 | # Telerik's JustMock configuration file 313 | *.jmconfig 314 | 315 | # BizTalk build output 316 | *.btp.cs 317 | *.btm.cs 318 | *.odx.cs 319 | *.xsd.cs 320 | 321 | # OpenCover UI analysis results 322 | OpenCover/ 323 | 324 | # Azure Stream Analytics local run output 325 | ASALocalRun/ 326 | 327 | # MSBuild Binary and Structured Log 328 | *.binlog 329 | 330 | # NVidia Nsight GPU debugger configuration file 331 | *.nvuser 332 | 333 | # MFractors (Xamarin productivity tool) working folder 334 | .mfractor/ 335 | 336 | # Local History for Visual Studio 337 | .localhistory/ 338 | 339 | # BeatPulse healthcheck temp database 340 | healthchecksdb -------------------------------------------------------------------------------- /CSharpIDE.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.29521.150 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpIDE", "CSharpIDE\CSharpIDE.csproj", "{A1A70B36-C06B-4364-B0A8-731FAF21F9FD}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {A1A70B36-C06B-4364-B0A8-731FAF21F9FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {A1A70B36-C06B-4364-B0A8-731FAF21F9FD}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {A1A70B36-C06B-4364-B0A8-731FAF21F9FD}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {A1A70B36-C06B-4364-B0A8-731FAF21F9FD}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {43A958A2-7E96-4E7B-9E36-114025146267} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /CSharpIDE/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CSharpIDE/CSharpIDE.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {A1A70B36-C06B-4364-B0A8-731FAF21F9FD} 8 | WinExe 9 | CSharpIDE 10 | CSharpIDE 11 | v4.7.2 12 | 512 13 | true 14 | true 15 | 16 | 17 | AnyCPU 18 | true 19 | full 20 | false 21 | bin\Debug\ 22 | DEBUG;TRACE 23 | prompt 24 | 4 25 | 26 | 27 | AnyCPU 28 | pdbonly 29 | true 30 | bin\Release\ 31 | TRACE 32 | prompt 33 | 4 34 | 35 | 36 | 37 | ..\packages\Autofac.5.1.2\lib\net461\Autofac.dll 38 | 39 | 40 | ..\packages\FCTB.2.16.24\lib\FastColoredTextBox.dll 41 | 42 | 43 | ..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll 44 | 45 | 46 | 47 | 48 | 49 | ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll 50 | 51 | 52 | ..\packages\System.Threading.Tasks.Extensions.4.5.2\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | Form 79 | 80 | 81 | MainWindow.cs 82 | 83 | 84 | Form 85 | 86 | 87 | NewProjectWindow.cs 88 | 89 | 90 | ResXFileCodeGenerator 91 | Resources.Designer.cs 92 | Designer 93 | 94 | 95 | True 96 | Resources.resx 97 | 98 | 99 | MainWindow.cs 100 | 101 | 102 | NewProjectWindow.cs 103 | 104 | 105 | 106 | SettingsSingleFileGenerator 107 | Settings.Designer.cs 108 | 109 | 110 | True 111 | Settings.settings 112 | True 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | -------------------------------------------------------------------------------- /CSharpIDE/Models/Project.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace CSharpIDE.Models 8 | { 9 | public class Project 10 | { 11 | public string Name { get; set; } 12 | public string Path { get; set; } 13 | public List Files { get; set; } 14 | 15 | public Project() 16 | { 17 | Files = new List(); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /CSharpIDE/Models/ProjectFile.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Xml.Serialization; 7 | 8 | namespace CSharpIDE.Models 9 | { 10 | public class ProjectFile 11 | { 12 | public string Name { get; set; } 13 | 14 | [XmlIgnore] 15 | public string Data { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /CSharpIDE/Presenters/MainPresenter.cs: -------------------------------------------------------------------------------- 1 | using CSharpIDE.Services; 2 | using CSharpIDE.Services.Interfaces; 3 | using CSharpIDE.Views.Interfaces; 4 | using System; 5 | using System.Collections.Generic; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | 11 | namespace CSharpIDE.Presenters 12 | { 13 | public class MainPresenter 14 | { 15 | public IMainWindow MainWindow { get; set; } 16 | public IMainServices MainServices { get; set; } 17 | public MainPresenter(IMainWindow mainWindow, IMainServices mainServices) 18 | { 19 | MainWindow = mainWindow; 20 | MainServices = mainServices; 21 | subscribe(); 22 | } 23 | 24 | private void subscribe() 25 | { 26 | MainWindow.NewProjectEvent += MainWindow_NewProjectEvent; 27 | MainWindow.OpenProjectEvent += MainWindow_OpenProjectEvent; 28 | MainWindow.NewFileEvent += MainWindow_NewFileEvent; 29 | MainWindow.OpenFileEvent += MainWindow_OpenFileEvent; 30 | MainWindow.SaveFocusedFile += MainWindow_SaveFocusedFile; 31 | MainWindow.SaveAllFiles += MainWindow_SaveAllFiles; 32 | MainWindow.ExcludeFile += MainWindow_ExcludeFile; 33 | MainWindow.RemoveFile += MainWindow_RemoveFile; 34 | MainWindow.BuildProject += MainWindow_BuildProject; 35 | MainWindow.RunProject += MainWindow_RunProject; 36 | } 37 | 38 | private void MainWindow_RunProject(object sender, EventArgs e) 39 | { 40 | MainServices.RunProject(); 41 | MainWindow.Results = MainServices.Results; 42 | 43 | } 44 | 45 | private void MainWindow_BuildProject(object sender, EventArgs e) 46 | { 47 | MainServices.BuildProject(); 48 | } 49 | 50 | private void MainWindow_RemoveFile(object sender, EventArgs e) 51 | { 52 | MainServices.RemoveFile(MainWindow.SelectedFileName); 53 | MainWindow.Project = MainServices.Project; 54 | } 55 | 56 | private void MainWindow_ExcludeFile(object sender, EventArgs e) 57 | { 58 | MainServices.ExcludeFile(MainWindow.SelectedFileName); 59 | MainWindow.Project = MainServices.Project; 60 | } 61 | 62 | private void MainWindow_SaveAllFiles(object sender, EventArgs e) 63 | { 64 | MainServices.Project = MainWindow.Project; 65 | MainServices.WriteFiles(); 66 | } 67 | 68 | private void MainWindow_OpenFileEvent(object sender, EventArgs e) 69 | { 70 | MainServices.OpenFile(MainWindow.OFDFileName, MainWindow.OFDPath); 71 | MainWindow.Project = MainServices.Project; 72 | } 73 | 74 | private void MainWindow_SaveFocusedFile(object sender, EventArgs e) 75 | { 76 | MainServices.SaveFile(MainWindow.ProjectFile); 77 | MainWindow.Project = MainServices.Project; 78 | } 79 | 80 | private void MainWindow_NewProjectEvent(object sender, EventArgs e) 81 | { 82 | var newProjectPresenter = IOC.Reference.Resolve(); 83 | 84 | if (newProjectPresenter.NewProjectWindow.ShowDialog()) 85 | { 86 | MainServices.Project.Name = newProjectPresenter.NewProjectWindow.ProjectName; 87 | MainServices.Project.Path = newProjectPresenter.NewProjectWindow.ProjectPath; 88 | MainWindow.Project = MainServices.Project; 89 | MainServices.CreateNewProject(); 90 | } 91 | } 92 | 93 | private void MainWindow_OpenProjectEvent(object sender, EventArgs e) 94 | { 95 | MainServices.LoadProject(MainWindow.OFDFileName, MainWindow.OFDPath); 96 | MainWindow.Project = MainServices.Project; 97 | } 98 | 99 | private void MainWindow_NewFileEvent(object sender, EventArgs e) 100 | { 101 | MainServices.AddFileToProject(MainWindow.ProjectFile); 102 | MainWindow.Project = MainServices.Project; 103 | } 104 | } 105 | } 106 | -------------------------------------------------------------------------------- /CSharpIDE/Presenters/NewProjectPresenter.cs: -------------------------------------------------------------------------------- 1 | using CSharpIDE.Views.Interfaces; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Windows.Forms; 8 | 9 | namespace CSharpIDE.Presenters 10 | { 11 | public class NewProjectPresenter 12 | { 13 | public INewProjectWindow NewProjectWindow { get; set; } 14 | 15 | public NewProjectPresenter(INewProjectWindow new_Project) 16 | { 17 | NewProjectWindow = new_Project; 18 | subscribe(); 19 | } 20 | 21 | private void subscribe() 22 | { 23 | NewProjectWindow.ChooseFolder += ChooseFolderPR; 24 | } 25 | 26 | public void ChooseFolderPR(object txtFolder, EventArgs e) 27 | { 28 | using (var fbd = new FolderBrowserDialog()) 29 | { 30 | DialogResult result = fbd.ShowDialog(); 31 | if (result == DialogResult.OK && !string.IsNullOrWhiteSpace(fbd.SelectedPath)) 32 | { 33 | NewProjectWindow.ProjectPath = fbd.SelectedPath; 34 | (txtFolder as TextBox).Text = NewProjectWindow.ProjectPath; 35 | } 36 | } 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /CSharpIDE/Program.cs: -------------------------------------------------------------------------------- 1 | using CSharpIDE.Views; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | using System.Windows.Forms; 7 | using CSharpIDE.Models; 8 | using CSharpIDE.Presenters; 9 | using CSharpIDE.Services; 10 | using CSharpIDE.Services.Interfaces; 11 | using CSharpIDE.Views.Interfaces; 12 | 13 | 14 | namespace CSharpIDE 15 | { 16 | static class Program 17 | { 18 | /// 19 | /// Главная точка входа для приложения. 20 | /// 21 | [STAThread] 22 | static void Main() 23 | { 24 | Application.EnableVisualStyles(); 25 | Application.SetCompatibleTextRenderingDefault(false); 26 | 27 | IOC.Reference.Register() 28 | .Register() 29 | .Register() 30 | .Register() 31 | .Register() 32 | .Register() 33 | .Register() 34 | .Build(); 35 | 36 | MainPresenter mainPresenter = IOC.Reference.Resolve(); 37 | 38 | Application.Run(mainPresenter.MainWindow as MainWindow); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /CSharpIDE/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // Общие сведения об этой сборке предоставляются следующим набором 6 | // набора атрибутов. Измените значения этих атрибутов для изменения сведений, 7 | // связанных со сборкой. 8 | [assembly: AssemblyTitle("CSharpIDE")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("CSharpIDE")] 13 | [assembly: AssemblyCopyright("Copyright © 2020")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми 18 | // для компонентов COM. Если необходимо обратиться к типу в этой сборке через 19 | // COM, следует установить атрибут ComVisible в TRUE для этого типа. 20 | [assembly: ComVisible(false)] 21 | 22 | // Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM 23 | [assembly: Guid("a1a70b36-c06b-4364-b0a8-731faf21f9fd")] 24 | 25 | // Сведения о версии сборки состоят из указанных ниже четырех значений: 26 | // 27 | // Основной номер версии 28 | // Дополнительный номер версии 29 | // Номер сборки 30 | // Редакция 31 | // 32 | // Можно задать все значения или принять номера сборки и редакции по умолчанию 33 | // используя "*", как показано ниже: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /CSharpIDE/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // Этот код создан программным средством. 4 | // Версия среды выполнения: 4.0.30319.42000 5 | // 6 | // Изменения в этом файле могут привести к неправильному поведению и будут утрачены, если 7 | // код создан повторно. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace CSharpIDE.Properties 12 | { 13 | 14 | 15 | /// 16 | /// Класс ресурсов со строгим типом для поиска локализованных строк и пр. 17 | /// 18 | // Этот класс был автоматически создан при помощи StronglyTypedResourceBuilder 19 | // класс с помощью таких средств, как ResGen или Visual Studio. 20 | // Для добавления или удаления члена измените файл .ResX, а затем перезапустите ResGen 21 | // с параметром /str или заново постройте свой VS-проект. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources 26 | { 27 | 28 | private static global::System.Resources.ResourceManager resourceMan; 29 | 30 | private static global::System.Globalization.CultureInfo resourceCulture; 31 | 32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 33 | internal Resources() 34 | { 35 | } 36 | 37 | /// 38 | /// Возврат кэшированного экземпляра ResourceManager, используемого этим классом. 39 | /// 40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 41 | internal static global::System.Resources.ResourceManager ResourceManager 42 | { 43 | get 44 | { 45 | if ((resourceMan == null)) 46 | { 47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CSharpIDE.Properties.Resources", typeof(Resources).Assembly); 48 | resourceMan = temp; 49 | } 50 | return resourceMan; 51 | } 52 | } 53 | 54 | /// 55 | /// Переопределяет свойство CurrentUICulture текущего потока для всех 56 | /// подстановки ресурсов с помощью этого класса ресурсов со строгим типом. 57 | /// 58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 59 | internal static global::System.Globalization.CultureInfo Culture 60 | { 61 | get 62 | { 63 | return resourceCulture; 64 | } 65 | set 66 | { 67 | resourceCulture = value; 68 | } 69 | } 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /CSharpIDE/Properties/Resources.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | text/microsoft-resx 107 | 108 | 109 | 2.0 110 | 111 | 112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 113 | 114 | 115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | -------------------------------------------------------------------------------- /CSharpIDE/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace CSharpIDE.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /CSharpIDE/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CSharpIDE/Resources/ArrowDown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXFFOO56566/Csharp-IDE-MVP-Design-Pattern/81196425cbb0fbd531049dde3d38f5eba3a00bb9/CSharpIDE/Resources/ArrowDown.png -------------------------------------------------------------------------------- /CSharpIDE/Resources/ArrowUp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXFFOO56566/Csharp-IDE-MVP-Design-Pattern/81196425cbb0fbd531049dde3d38f5eba3a00bb9/CSharpIDE/Resources/ArrowUp.png -------------------------------------------------------------------------------- /CSharpIDE/Resources/BuildSolution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXFFOO56566/Csharp-IDE-MVP-Design-Pattern/81196425cbb0fbd531049dde3d38f5eba3a00bb9/CSharpIDE/Resources/BuildSolution.png -------------------------------------------------------------------------------- /CSharpIDE/Resources/Close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXFFOO56566/Csharp-IDE-MVP-Design-Pattern/81196425cbb0fbd531049dde3d38f5eba3a00bb9/CSharpIDE/Resources/Close.png -------------------------------------------------------------------------------- /CSharpIDE/Resources/CloseProject.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXFFOO56566/Csharp-IDE-MVP-Design-Pattern/81196425cbb0fbd531049dde3d38f5eba3a00bb9/CSharpIDE/Resources/CloseProject.png -------------------------------------------------------------------------------- /CSharpIDE/Resources/Copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXFFOO56566/Csharp-IDE-MVP-Design-Pattern/81196425cbb0fbd531049dde3d38f5eba3a00bb9/CSharpIDE/Resources/Copy.png -------------------------------------------------------------------------------- /CSharpIDE/Resources/Cut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXFFOO56566/Csharp-IDE-MVP-Design-Pattern/81196425cbb0fbd531049dde3d38f5eba3a00bb9/CSharpIDE/Resources/Cut.png -------------------------------------------------------------------------------- /CSharpIDE/Resources/FileExclude.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXFFOO56566/Csharp-IDE-MVP-Design-Pattern/81196425cbb0fbd531049dde3d38f5eba3a00bb9/CSharpIDE/Resources/FileExclude.png -------------------------------------------------------------------------------- /CSharpIDE/Resources/NewFile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXFFOO56566/Csharp-IDE-MVP-Design-Pattern/81196425cbb0fbd531049dde3d38f5eba3a00bb9/CSharpIDE/Resources/NewFile.png -------------------------------------------------------------------------------- /CSharpIDE/Resources/NewProject.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXFFOO56566/Csharp-IDE-MVP-Design-Pattern/81196425cbb0fbd531049dde3d38f5eba3a00bb9/CSharpIDE/Resources/NewProject.png -------------------------------------------------------------------------------- /CSharpIDE/Resources/Open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXFFOO56566/Csharp-IDE-MVP-Design-Pattern/81196425cbb0fbd531049dde3d38f5eba3a00bb9/CSharpIDE/Resources/Open.png -------------------------------------------------------------------------------- /CSharpIDE/Resources/OpenFileDialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXFFOO56566/Csharp-IDE-MVP-Design-Pattern/81196425cbb0fbd531049dde3d38f5eba3a00bb9/CSharpIDE/Resources/OpenFileDialog.png -------------------------------------------------------------------------------- /CSharpIDE/Resources/Paste.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXFFOO56566/Csharp-IDE-MVP-Design-Pattern/81196425cbb0fbd531049dde3d38f5eba3a00bb9/CSharpIDE/Resources/Paste.png -------------------------------------------------------------------------------- /CSharpIDE/Resources/RemoveFile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXFFOO56566/Csharp-IDE-MVP-Design-Pattern/81196425cbb0fbd531049dde3d38f5eba3a00bb9/CSharpIDE/Resources/RemoveFile.png -------------------------------------------------------------------------------- /CSharpIDE/Resources/RightJustify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXFFOO56566/Csharp-IDE-MVP-Design-Pattern/81196425cbb0fbd531049dde3d38f5eba3a00bb9/CSharpIDE/Resources/RightJustify.png -------------------------------------------------------------------------------- /CSharpIDE/Resources/Run.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXFFOO56566/Csharp-IDE-MVP-Design-Pattern/81196425cbb0fbd531049dde3d38f5eba3a00bb9/CSharpIDE/Resources/Run.png -------------------------------------------------------------------------------- /CSharpIDE/Resources/Save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXFFOO56566/Csharp-IDE-MVP-Design-Pattern/81196425cbb0fbd531049dde3d38f5eba3a00bb9/CSharpIDE/Resources/Save.png -------------------------------------------------------------------------------- /CSharpIDE/Resources/Saveall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXFFOO56566/Csharp-IDE-MVP-Design-Pattern/81196425cbb0fbd531049dde3d38f5eba3a00bb9/CSharpIDE/Resources/Saveall.png -------------------------------------------------------------------------------- /CSharpIDE/Services/IOC.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using Autofac; 7 | 8 | namespace CSharpIDE.Services 9 | { 10 | public class IOC 11 | { 12 | public IOC Register() 13 | { 14 | builder.RegisterType().As(); 15 | return Reference; 16 | } 17 | 18 | public IOC Register() 19 | { 20 | builder.RegisterType(); 21 | return Reference; 22 | } 23 | 24 | public void Build() 25 | { 26 | container = builder.Build(); 27 | } 28 | 29 | public T Resolve() 30 | { 31 | return container.Resolve(); 32 | } 33 | 34 | private IOC() 35 | { 36 | builder = new ContainerBuilder(); 37 | } 38 | 39 | private static IOC reference = new IOC(); 40 | public static IOC Reference { get { return reference; } } 41 | 42 | private IContainer container; 43 | private ContainerBuilder builder; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /CSharpIDE/Services/Interfaces/IMainServices.cs: -------------------------------------------------------------------------------- 1 | using CSharpIDE.Models; 2 | using System; 3 | using System.CodeDom.Compiler; 4 | using System.Collections.Generic; 5 | using System.IO; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | 11 | namespace CSharpIDE.Services.Interfaces 12 | { 13 | public interface IMainServices 14 | { 15 | Project Project { get; set; } 16 | CompilerResults Results { get; set; } 17 | 18 | void AddFileToProject(ProjectFile file); 19 | void BuildProject(); 20 | void LoadProject(string ofdFileName, string ofdPath); 21 | void RunProject(); 22 | void SaveFile(ProjectFile file); 23 | void WriteFile(ProjectFile file); 24 | void CreateNewProject(); 25 | void OpenFile(string ofdFileName, string ofdPath); 26 | void WriteFiles(); 27 | void ExcludeFile(string file); 28 | void RemoveFile(string file); 29 | CompilerResults CompilerResults(string[] sources, string output, params string[] references); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /CSharpIDE/Services/MainServices.cs: -------------------------------------------------------------------------------- 1 | using CSharpIDE.Models; 2 | using CSharpIDE.Services.Interfaces; 3 | using Microsoft.CSharp; 4 | using System; 5 | using System.CodeDom.Compiler; 6 | using System.Collections.Generic; 7 | using System.Diagnostics; 8 | using System.IO; 9 | using System.Linq; 10 | using System.Text; 11 | using System.Threading.Tasks; 12 | using System.Windows.Forms; 13 | using System.Xml.Serialization; 14 | 15 | namespace CSharpIDE.Services 16 | { 17 | public class MainServices : IMainServices 18 | { 19 | public Project Project { get; set; } 20 | public CompilerResults Results { get; set; } 21 | 22 | public MainServices() 23 | { 24 | Project = new Project(); 25 | } 26 | public void AddFileToProject(ProjectFile file) 27 | { 28 | WriteFile(file); 29 | Project.Files.Add(file); 30 | RefreshMysln(); 31 | } 32 | 33 | public void BuildProject() 34 | { 35 | if (Project.Name != null && Project.Name != string.Empty) 36 | { 37 | string[] sources = new string[Project.Files.Count]; 38 | for (int i = 0; i < Project.Files.Count; i++) 39 | { 40 | sources[i] = Project.Files[i].Data; 41 | } 42 | Results = CompilerResults(sources, "compile.exe"); 43 | } 44 | } 45 | 46 | public CompilerResults CompilerResults(string[] sources, string output, params string[] references) 47 | { 48 | var parameters = new CompilerParameters(references, output); 49 | parameters.GenerateExecutable = true; 50 | using (var provider = new CSharpCodeProvider()) 51 | return provider.CompileAssemblyFromSource(parameters, sources); 52 | } 53 | 54 | public void LoadProject(string ofdFileName, string ofdPath) 55 | { 56 | XmlSerializer xmlSerializer = new XmlSerializer(typeof(Project)); 57 | using (TextReader textReader = new StreamReader($@"{ofdPath}\\{ofdFileName}.mysln")) 58 | Project = (xmlSerializer.Deserialize(textReader) as Project); 59 | Project.Path = ofdPath; 60 | GetData(); 61 | } 62 | 63 | private void GetData() 64 | { 65 | if (Project.Path != null) 66 | { 67 | foreach (var item in Project.Files) 68 | { 69 | using (TextReader textReader = new StreamReader($@"{Project.Path}\\{item.Name}")) 70 | item.Data = textReader.ReadToEnd(); 71 | } 72 | } 73 | } 74 | 75 | public void RunProject() 76 | { 77 | if (Project.Name != null && Project.Name != string.Empty) 78 | { 79 | BuildProject(); 80 | if (Results.Errors.Count != 0) 81 | MessageBox.Show("Please Check Code!", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); 82 | else 83 | Process.Start("compile.exe"); 84 | } 85 | } 86 | 87 | public void SaveFile(ProjectFile file) 88 | { 89 | WriteFile(file); 90 | foreach (var item in Project.Files) 91 | { 92 | if(item.Name == file.Name) 93 | { 94 | item.Data = file.Data; 95 | } 96 | } 97 | RefreshMysln(); 98 | } 99 | //bug info while performing any file operation 100 | public void WriteFile(ProjectFile file) 101 | { 102 | using (TextWriter textWriter = new StreamWriter($@"{Project.Path}\\{file.Name}")) 103 | { 104 | textWriter.WriteLine(file.Data); 105 | } 106 | 107 | } 108 | 109 | 110 | //Create new project file function 111 | public void CreateNewProject() 112 | { 113 | Project.Files.Clear(); 114 | Directory.CreateDirectory($@"{Project.Path}\\{Project.Name}"); 115 | Project.Path += "\\" + Project.Name; 116 | string textcode; 117 | using (TextReader textReader = new StreamReader($@"..\..\..\FilesForProject\MainFile.cs")) 118 | textcode = textReader.ReadToEnd(); 119 | AddFileToProject(new ProjectFile() { Name = "Program.cs", Data = textcode }); 120 | } 121 | 122 | private void RefreshMysln() 123 | { 124 | XmlSerializer xmlSerializer = new XmlSerializer(typeof(Project)); 125 | using (TextWriter textWriter = new StreamWriter($@"{Project.Path}\\{Project.Name}.mysln")) 126 | xmlSerializer.Serialize(textWriter, Project); 127 | } 128 | 129 | public void OpenFile(string ofdFileName, string ofdPath) 130 | { 131 | string textcode; 132 | using (TextReader textReader = new StreamReader($@"{ofdPath}\\{ofdFileName}.cs")) 133 | textcode = textReader.ReadToEnd(); 134 | ProjectFile projectFile = new ProjectFile() { Name = ofdFileName+".cs", Data = textcode }; 135 | AddFileToProject(projectFile); 136 | } 137 | 138 | public void WriteFiles() 139 | { 140 | foreach(ProjectFile item in Project.Files) 141 | { 142 | WriteFile(item); 143 | } 144 | } 145 | 146 | public void ExcludeFile(string file) 147 | { 148 | for (int i = 0; i < Project.Files.Count; i++) 149 | { 150 | if(Project.Files[i].Name == file) 151 | { 152 | Project.Files.RemoveAt(i); 153 | } 154 | } 155 | RefreshMysln(); 156 | } 157 | 158 | public void RemoveFile(string file) 159 | { 160 | ExcludeFile(file); 161 | if (File.Exists(Path.Combine(Project.Path, file))) 162 | { 163 | File.Delete(Path.Combine(Project.Path, file)); 164 | } 165 | } 166 | } 167 | } 168 | -------------------------------------------------------------------------------- /CSharpIDE/Views/Interfaces/IMainWindow.cs: -------------------------------------------------------------------------------- 1 | using CSharpIDE.Models; 2 | using System; 3 | using System.CodeDom.Compiler; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | using System.Windows.Forms; 9 | 10 | namespace CSharpIDE.Views.Interfaces 11 | { 12 | public interface IMainWindow : IShow 13 | { 14 | event EventHandler NewProjectEvent; 15 | event EventHandler OpenProjectEvent; 16 | event EventHandler NewFileEvent; 17 | event EventHandler OpenFileEvent; 18 | event EventHandler SaveFocusedFile; 19 | event EventHandler SaveAllFiles; 20 | event EventHandler BuildProject; 21 | event EventHandler RunProject; 22 | event EventHandler RemoveFile; 23 | event EventHandler ExcludeFile; 24 | 25 | CompilerResults Results { get; set; } 26 | Project Project { get; set; } 27 | string OFDFileName { get; set; } 28 | string OFDPath { get; set; } 29 | string SelectedFileName { get; set; } 30 | ProjectFile ProjectFile { get; set; } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /CSharpIDE/Views/Interfaces/INewProjectWindow.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace CSharpIDE.Views.Interfaces 8 | { 9 | public interface INewProjectWindow : IShow 10 | { 11 | event EventHandler ChooseFolder; 12 | string ProjectName { get; } 13 | string ProjectPath { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /CSharpIDE/Views/Interfaces/IShow.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace CSharpIDE.Views.Interfaces 8 | { 9 | public interface IShow 10 | { 11 | bool ShowDialog(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /CSharpIDE/Views/MainWindow.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace CSharpIDE.Views 2 | { 3 | partial class MainWindow 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.components = new System.ComponentModel.Container(); 32 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainWindow)); 33 | this.MainMenuStrip = new System.Windows.Forms.MenuStrip(); 34 | this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 35 | this.createProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 36 | this.openProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 37 | this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); 38 | this.newFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 39 | this.openFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 40 | this.saveFocusedFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 41 | this.saveAllFilesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 42 | this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); 43 | this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 44 | this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 45 | this.cutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 46 | this.copyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 47 | this.pasteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 48 | this.viewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 49 | this.projectTreeCollapsedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 50 | this.errorsTreeCollapsedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 51 | this.projectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 52 | this.addNewFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 53 | this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); 54 | this.buildToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 55 | this.runToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 56 | this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); 57 | this.closeProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 58 | this.toolStrip1 = new System.Windows.Forms.ToolStrip(); 59 | this.NewProjectTS = new System.Windows.Forms.ToolStripButton(); 60 | this.OpenProjectTS = new System.Windows.Forms.ToolStripButton(); 61 | this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator(); 62 | this.NewFileTS = new System.Windows.Forms.ToolStripButton(); 63 | this.OpenFileTS = new System.Windows.Forms.ToolStripButton(); 64 | this.SaveFileTS = new System.Windows.Forms.ToolStripButton(); 65 | this.SaveAllFilesTS = new System.Windows.Forms.ToolStripButton(); 66 | this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator(); 67 | this.CutTS = new System.Windows.Forms.ToolStripButton(); 68 | this.CopyTS = new System.Windows.Forms.ToolStripButton(); 69 | this.PasteTS = new System.Windows.Forms.ToolStripButton(); 70 | this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator(); 71 | this.BuildTS = new System.Windows.Forms.ToolStripButton(); 72 | this.RunTS = new System.Windows.Forms.ToolStripButton(); 73 | this.CommentTS = new System.Windows.Forms.ToolStripButton(); 74 | this.splitContainer1 = new System.Windows.Forms.SplitContainer(); 75 | this.splitContainer2 = new System.Windows.Forms.SplitContainer(); 76 | this.ProjectTreeView = new System.Windows.Forms.TreeView(); 77 | this.MainTabControl = new System.Windows.Forms.TabControl(); 78 | this.TabControlBottom = new System.Windows.Forms.TabControl(); 79 | this.Errors = new System.Windows.Forms.TabPage(); 80 | this.Warnings = new System.Windows.Forms.TabPage(); 81 | this.Output = new System.Windows.Forms.TabPage(); 82 | this.richTextBox1 = new System.Windows.Forms.RichTextBox(); 83 | this.TreeViewContextMenu = new System.Windows.Forms.ContextMenuStrip(this.components); 84 | this.excludeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 85 | this.removeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 86 | this.TabContextMenu = new System.Windows.Forms.ContextMenuStrip(this.components); 87 | this.cutToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); 88 | this.copyToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); 89 | this.pasteToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); 90 | this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator(); 91 | this.lineUpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 92 | this.lineDownToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 93 | this.toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator(); 94 | this.saveFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 95 | this.closePageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 96 | this.ProjectContextMenu = new System.Windows.Forms.ContextMenuStrip(this.components); 97 | this.addNewFileToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); 98 | this.toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator(); 99 | this.buildToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); 100 | this.runToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); 101 | this.toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator(); 102 | this.closeProjectToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); 103 | this.MainMenuStrip.SuspendLayout(); 104 | this.toolStrip1.SuspendLayout(); 105 | ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); 106 | this.splitContainer1.Panel1.SuspendLayout(); 107 | this.splitContainer1.Panel2.SuspendLayout(); 108 | this.splitContainer1.SuspendLayout(); 109 | ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit(); 110 | this.splitContainer2.Panel1.SuspendLayout(); 111 | this.splitContainer2.Panel2.SuspendLayout(); 112 | this.splitContainer2.SuspendLayout(); 113 | this.TabControlBottom.SuspendLayout(); 114 | this.Output.SuspendLayout(); 115 | this.TreeViewContextMenu.SuspendLayout(); 116 | this.TabContextMenu.SuspendLayout(); 117 | this.ProjectContextMenu.SuspendLayout(); 118 | this.SuspendLayout(); 119 | // 120 | // MainMenuStrip 121 | // 122 | this.MainMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { 123 | this.fileToolStripMenuItem, 124 | this.editToolStripMenuItem, 125 | this.viewToolStripMenuItem, 126 | this.projectToolStripMenuItem}); 127 | this.MainMenuStrip.Location = new System.Drawing.Point(0, 0); 128 | this.MainMenuStrip.Name = "MainMenuStrip"; 129 | this.MainMenuStrip.Size = new System.Drawing.Size(800, 24); 130 | this.MainMenuStrip.TabIndex = 1; 131 | this.MainMenuStrip.Text = "menuStrip1"; 132 | // 133 | // fileToolStripMenuItem 134 | // 135 | this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { 136 | this.createProjectToolStripMenuItem, 137 | this.openProjectToolStripMenuItem, 138 | this.toolStripSeparator1, 139 | this.newFileToolStripMenuItem, 140 | this.openFileToolStripMenuItem, 141 | this.saveFocusedFileToolStripMenuItem, 142 | this.saveAllFilesToolStripMenuItem, 143 | this.toolStripSeparator2, 144 | this.exitToolStripMenuItem}); 145 | this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; 146 | this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); 147 | this.fileToolStripMenuItem.Text = "File"; 148 | // 149 | // createProjectToolStripMenuItem 150 | // 151 | this.createProjectToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("createProjectToolStripMenuItem.Image"))); 152 | this.createProjectToolStripMenuItem.Name = "createProjectToolStripMenuItem"; 153 | this.createProjectToolStripMenuItem.Size = new System.Drawing.Size(166, 22); 154 | this.createProjectToolStripMenuItem.Text = "Create Project"; 155 | this.createProjectToolStripMenuItem.Click += new System.EventHandler(this.createProjectToolStripMenuItem_Click); 156 | // 157 | // openProjectToolStripMenuItem 158 | // 159 | this.openProjectToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("openProjectToolStripMenuItem.Image"))); 160 | this.openProjectToolStripMenuItem.Name = "openProjectToolStripMenuItem"; 161 | this.openProjectToolStripMenuItem.Size = new System.Drawing.Size(166, 22); 162 | this.openProjectToolStripMenuItem.Text = "Open Project"; 163 | this.openProjectToolStripMenuItem.Click += new System.EventHandler(this.openProjectToolStripMenuItem_Click); 164 | // 165 | // toolStripSeparator1 166 | // 167 | this.toolStripSeparator1.Name = "toolStripSeparator1"; 168 | this.toolStripSeparator1.Size = new System.Drawing.Size(163, 6); 169 | // 170 | // newFileToolStripMenuItem 171 | // 172 | this.newFileToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("newFileToolStripMenuItem.Image"))); 173 | this.newFileToolStripMenuItem.Name = "newFileToolStripMenuItem"; 174 | this.newFileToolStripMenuItem.Size = new System.Drawing.Size(166, 22); 175 | this.newFileToolStripMenuItem.Text = "New File"; 176 | this.newFileToolStripMenuItem.Click += new System.EventHandler(this.newFileToolStripMenuItem_Click); 177 | // 178 | // openFileToolStripMenuItem 179 | // 180 | this.openFileToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("openFileToolStripMenuItem.Image"))); 181 | this.openFileToolStripMenuItem.Name = "openFileToolStripMenuItem"; 182 | this.openFileToolStripMenuItem.Size = new System.Drawing.Size(166, 22); 183 | this.openFileToolStripMenuItem.Text = "Open File"; 184 | this.openFileToolStripMenuItem.Click += new System.EventHandler(this.openFileToolStripMenuItem_Click); 185 | // 186 | // saveFocusedFileToolStripMenuItem 187 | // 188 | this.saveFocusedFileToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("saveFocusedFileToolStripMenuItem.Image"))); 189 | this.saveFocusedFileToolStripMenuItem.Name = "saveFocusedFileToolStripMenuItem"; 190 | this.saveFocusedFileToolStripMenuItem.Size = new System.Drawing.Size(166, 22); 191 | this.saveFocusedFileToolStripMenuItem.Text = "Save Focused File"; 192 | this.saveFocusedFileToolStripMenuItem.Click += new System.EventHandler(this.saveFocusedFileToolStripMenuItem_Click); 193 | // 194 | // saveAllFilesToolStripMenuItem 195 | // 196 | this.saveAllFilesToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("saveAllFilesToolStripMenuItem.Image"))); 197 | this.saveAllFilesToolStripMenuItem.Name = "saveAllFilesToolStripMenuItem"; 198 | this.saveAllFilesToolStripMenuItem.Size = new System.Drawing.Size(166, 22); 199 | this.saveAllFilesToolStripMenuItem.Text = "Save All Files"; 200 | this.saveAllFilesToolStripMenuItem.Click += new System.EventHandler(this.saveAllFilesToolStripMenuItem_Click); 201 | // 202 | // toolStripSeparator2 203 | // 204 | this.toolStripSeparator2.Name = "toolStripSeparator2"; 205 | this.toolStripSeparator2.Size = new System.Drawing.Size(163, 6); 206 | // 207 | // exitToolStripMenuItem 208 | // 209 | this.exitToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("exitToolStripMenuItem.Image"))); 210 | this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; 211 | this.exitToolStripMenuItem.Size = new System.Drawing.Size(166, 22); 212 | this.exitToolStripMenuItem.Text = "Exit"; 213 | this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); 214 | // 215 | // editToolStripMenuItem 216 | // 217 | this.editToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { 218 | this.cutToolStripMenuItem, 219 | this.copyToolStripMenuItem, 220 | this.pasteToolStripMenuItem}); 221 | this.editToolStripMenuItem.Name = "editToolStripMenuItem"; 222 | this.editToolStripMenuItem.Size = new System.Drawing.Size(39, 20); 223 | this.editToolStripMenuItem.Text = "Edit"; 224 | // 225 | // cutToolStripMenuItem 226 | // 227 | this.cutToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("cutToolStripMenuItem.Image"))); 228 | this.cutToolStripMenuItem.Name = "cutToolStripMenuItem"; 229 | this.cutToolStripMenuItem.Size = new System.Drawing.Size(102, 22); 230 | this.cutToolStripMenuItem.Text = "Cut"; 231 | this.cutToolStripMenuItem.Click += new System.EventHandler(this.cutToolStripMenuItem_Click); 232 | // 233 | // copyToolStripMenuItem 234 | // 235 | this.copyToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("copyToolStripMenuItem.Image"))); 236 | this.copyToolStripMenuItem.Name = "copyToolStripMenuItem"; 237 | this.copyToolStripMenuItem.Size = new System.Drawing.Size(102, 22); 238 | this.copyToolStripMenuItem.Text = "Copy"; 239 | this.copyToolStripMenuItem.Click += new System.EventHandler(this.copyToolStripMenuItem_Click); 240 | // 241 | // pasteToolStripMenuItem 242 | // 243 | this.pasteToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("pasteToolStripMenuItem.Image"))); 244 | this.pasteToolStripMenuItem.Name = "pasteToolStripMenuItem"; 245 | this.pasteToolStripMenuItem.Size = new System.Drawing.Size(102, 22); 246 | this.pasteToolStripMenuItem.Text = "Paste"; 247 | this.pasteToolStripMenuItem.Click += new System.EventHandler(this.pasteToolStripMenuItem_Click); 248 | // 249 | // viewToolStripMenuItem 250 | // 251 | this.viewToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { 252 | this.projectTreeCollapsedToolStripMenuItem, 253 | this.errorsTreeCollapsedToolStripMenuItem}); 254 | this.viewToolStripMenuItem.Name = "viewToolStripMenuItem"; 255 | this.viewToolStripMenuItem.Size = new System.Drawing.Size(44, 20); 256 | this.viewToolStripMenuItem.Text = "View"; 257 | // 258 | // projectTreeCollapsedToolStripMenuItem 259 | // 260 | this.projectTreeCollapsedToolStripMenuItem.Name = "projectTreeCollapsedToolStripMenuItem"; 261 | this.projectTreeCollapsedToolStripMenuItem.Size = new System.Drawing.Size(190, 22); 262 | this.projectTreeCollapsedToolStripMenuItem.Text = "Project Tree Collapsed"; 263 | this.projectTreeCollapsedToolStripMenuItem.Click += new System.EventHandler(this.projectTreeCollapsedToolStripMenuItem_Click); 264 | // 265 | // errorsTreeCollapsedToolStripMenuItem 266 | // 267 | this.errorsTreeCollapsedToolStripMenuItem.Name = "errorsTreeCollapsedToolStripMenuItem"; 268 | this.errorsTreeCollapsedToolStripMenuItem.Size = new System.Drawing.Size(190, 22); 269 | this.errorsTreeCollapsedToolStripMenuItem.Text = "Errors Tree Collapsed"; 270 | this.errorsTreeCollapsedToolStripMenuItem.Click += new System.EventHandler(this.errorsTreeCollapsedToolStripMenuItem_Click); 271 | // 272 | // projectToolStripMenuItem 273 | // 274 | this.projectToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { 275 | this.addNewFileToolStripMenuItem, 276 | this.toolStripSeparator3, 277 | this.buildToolStripMenuItem, 278 | this.runToolStripMenuItem, 279 | this.toolStripSeparator4, 280 | this.closeProjectToolStripMenuItem}); 281 | this.projectToolStripMenuItem.Name = "projectToolStripMenuItem"; 282 | this.projectToolStripMenuItem.Size = new System.Drawing.Size(56, 20); 283 | this.projectToolStripMenuItem.Text = "Project"; 284 | // 285 | // addNewFileToolStripMenuItem 286 | // 287 | this.addNewFileToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("addNewFileToolStripMenuItem.Image"))); 288 | this.addNewFileToolStripMenuItem.Name = "addNewFileToolStripMenuItem"; 289 | this.addNewFileToolStripMenuItem.Size = new System.Drawing.Size(144, 22); 290 | this.addNewFileToolStripMenuItem.Text = "Add New File"; 291 | this.addNewFileToolStripMenuItem.Click += new System.EventHandler(this.addNewFileToolStripMenuItem_Click); 292 | // 293 | // toolStripSeparator3 294 | // 295 | this.toolStripSeparator3.Name = "toolStripSeparator3"; 296 | this.toolStripSeparator3.Size = new System.Drawing.Size(141, 6); 297 | // 298 | // buildToolStripMenuItem 299 | // 300 | this.buildToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("buildToolStripMenuItem.Image"))); 301 | this.buildToolStripMenuItem.Name = "buildToolStripMenuItem"; 302 | this.buildToolStripMenuItem.Size = new System.Drawing.Size(144, 22); 303 | this.buildToolStripMenuItem.Text = "Build"; 304 | this.buildToolStripMenuItem.Click += new System.EventHandler(this.buildToolStripMenuItem_Click); 305 | // 306 | // runToolStripMenuItem 307 | // 308 | this.runToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("runToolStripMenuItem.Image"))); 309 | this.runToolStripMenuItem.Name = "runToolStripMenuItem"; 310 | this.runToolStripMenuItem.Size = new System.Drawing.Size(144, 22); 311 | this.runToolStripMenuItem.Text = "Run"; 312 | this.runToolStripMenuItem.Click += new System.EventHandler(this.runToolStripMenuItem_Click); 313 | // 314 | // toolStripSeparator4 315 | // 316 | this.toolStripSeparator4.Name = "toolStripSeparator4"; 317 | this.toolStripSeparator4.Size = new System.Drawing.Size(141, 6); 318 | // 319 | // closeProjectToolStripMenuItem 320 | // 321 | this.closeProjectToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("closeProjectToolStripMenuItem.Image"))); 322 | this.closeProjectToolStripMenuItem.Name = "closeProjectToolStripMenuItem"; 323 | this.closeProjectToolStripMenuItem.Size = new System.Drawing.Size(144, 22); 324 | this.closeProjectToolStripMenuItem.Text = "Close Project"; 325 | this.closeProjectToolStripMenuItem.Click += new System.EventHandler(this.closeProjectToolStripMenuItem_Click); 326 | // 327 | // toolStrip1 328 | // 329 | this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { 330 | this.NewProjectTS, 331 | this.OpenProjectTS, 332 | this.toolStripSeparator5, 333 | this.NewFileTS, 334 | this.OpenFileTS, 335 | this.SaveFileTS, 336 | this.SaveAllFilesTS, 337 | this.toolStripSeparator6, 338 | this.CutTS, 339 | this.CopyTS, 340 | this.PasteTS, 341 | this.toolStripSeparator7, 342 | this.BuildTS, 343 | this.RunTS, 344 | this.CommentTS}); 345 | this.toolStrip1.Location = new System.Drawing.Point(0, 24); 346 | this.toolStrip1.Name = "toolStrip1"; 347 | this.toolStrip1.Size = new System.Drawing.Size(800, 25); 348 | this.toolStrip1.TabIndex = 2; 349 | this.toolStrip1.Text = "toolStrip1"; 350 | // 351 | // NewProjectTS 352 | // 353 | this.NewProjectTS.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; 354 | this.NewProjectTS.Image = ((System.Drawing.Image)(resources.GetObject("NewProjectTS.Image"))); 355 | this.NewProjectTS.ImageTransparentColor = System.Drawing.Color.Magenta; 356 | this.NewProjectTS.Name = "NewProjectTS"; 357 | this.NewProjectTS.Size = new System.Drawing.Size(23, 22); 358 | this.NewProjectTS.Text = "Create Project"; 359 | this.NewProjectTS.Click += new System.EventHandler(this.NewProjectTS_Click); 360 | // 361 | // OpenProjectTS 362 | // 363 | this.OpenProjectTS.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; 364 | this.OpenProjectTS.Image = ((System.Drawing.Image)(resources.GetObject("OpenProjectTS.Image"))); 365 | this.OpenProjectTS.ImageTransparentColor = System.Drawing.Color.Magenta; 366 | this.OpenProjectTS.Name = "OpenProjectTS"; 367 | this.OpenProjectTS.Size = new System.Drawing.Size(23, 22); 368 | this.OpenProjectTS.Text = "Open Project"; 369 | this.OpenProjectTS.Click += new System.EventHandler(this.OpenProjectTS_Click); 370 | // 371 | // toolStripSeparator5 372 | // 373 | this.toolStripSeparator5.Name = "toolStripSeparator5"; 374 | this.toolStripSeparator5.Size = new System.Drawing.Size(6, 25); 375 | // 376 | // NewFileTS 377 | // 378 | this.NewFileTS.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; 379 | this.NewFileTS.Image = ((System.Drawing.Image)(resources.GetObject("NewFileTS.Image"))); 380 | this.NewFileTS.ImageTransparentColor = System.Drawing.Color.Magenta; 381 | this.NewFileTS.Name = "NewFileTS"; 382 | this.NewFileTS.Size = new System.Drawing.Size(23, 22); 383 | this.NewFileTS.Text = "New File"; 384 | this.NewFileTS.Click += new System.EventHandler(this.NewFileTS_Click); 385 | // 386 | // OpenFileTS 387 | // 388 | this.OpenFileTS.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; 389 | this.OpenFileTS.Image = ((System.Drawing.Image)(resources.GetObject("OpenFileTS.Image"))); 390 | this.OpenFileTS.ImageTransparentColor = System.Drawing.Color.Magenta; 391 | this.OpenFileTS.Name = "OpenFileTS"; 392 | this.OpenFileTS.Size = new System.Drawing.Size(23, 22); 393 | this.OpenFileTS.Text = "Open FIle"; 394 | this.OpenFileTS.Click += new System.EventHandler(this.OpenFileTS_Click); 395 | // 396 | // SaveFileTS 397 | // 398 | this.SaveFileTS.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; 399 | this.SaveFileTS.Image = ((System.Drawing.Image)(resources.GetObject("SaveFileTS.Image"))); 400 | this.SaveFileTS.ImageTransparentColor = System.Drawing.Color.Magenta; 401 | this.SaveFileTS.Name = "SaveFileTS"; 402 | this.SaveFileTS.Size = new System.Drawing.Size(23, 22); 403 | this.SaveFileTS.Text = "Save Focused File"; 404 | this.SaveFileTS.Click += new System.EventHandler(this.SaveFileTS_Click); 405 | // 406 | // SaveAllFilesTS 407 | // 408 | this.SaveAllFilesTS.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; 409 | this.SaveAllFilesTS.Image = ((System.Drawing.Image)(resources.GetObject("SaveAllFilesTS.Image"))); 410 | this.SaveAllFilesTS.ImageTransparentColor = System.Drawing.Color.Magenta; 411 | this.SaveAllFilesTS.Name = "SaveAllFilesTS"; 412 | this.SaveAllFilesTS.Size = new System.Drawing.Size(23, 22); 413 | this.SaveAllFilesTS.Text = "Save All Files"; 414 | this.SaveAllFilesTS.Click += new System.EventHandler(this.SaveAllFilesTS_Click); 415 | // 416 | // toolStripSeparator6 417 | // 418 | this.toolStripSeparator6.Name = "toolStripSeparator6"; 419 | this.toolStripSeparator6.Size = new System.Drawing.Size(6, 25); 420 | // 421 | // CutTS 422 | // 423 | this.CutTS.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; 424 | this.CutTS.Image = ((System.Drawing.Image)(resources.GetObject("CutTS.Image"))); 425 | this.CutTS.ImageTransparentColor = System.Drawing.Color.Magenta; 426 | this.CutTS.Name = "CutTS"; 427 | this.CutTS.Size = new System.Drawing.Size(23, 22); 428 | this.CutTS.Text = "Cut"; 429 | this.CutTS.Click += new System.EventHandler(this.CutTS_Click); 430 | // 431 | // CopyTS 432 | // 433 | this.CopyTS.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; 434 | this.CopyTS.Image = ((System.Drawing.Image)(resources.GetObject("CopyTS.Image"))); 435 | this.CopyTS.ImageTransparentColor = System.Drawing.Color.Magenta; 436 | this.CopyTS.Name = "CopyTS"; 437 | this.CopyTS.Size = new System.Drawing.Size(23, 22); 438 | this.CopyTS.Text = "Copy"; 439 | this.CopyTS.Click += new System.EventHandler(this.CopyTS_Click); 440 | // 441 | // PasteTS 442 | // 443 | this.PasteTS.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; 444 | this.PasteTS.Image = ((System.Drawing.Image)(resources.GetObject("PasteTS.Image"))); 445 | this.PasteTS.ImageTransparentColor = System.Drawing.Color.Magenta; 446 | this.PasteTS.Name = "PasteTS"; 447 | this.PasteTS.Size = new System.Drawing.Size(23, 22); 448 | this.PasteTS.Text = "Paste"; 449 | this.PasteTS.Click += new System.EventHandler(this.PasteTS_Click); 450 | // 451 | // toolStripSeparator7 452 | // 453 | this.toolStripSeparator7.Name = "toolStripSeparator7"; 454 | this.toolStripSeparator7.Size = new System.Drawing.Size(6, 25); 455 | // 456 | // BuildTS 457 | // 458 | this.BuildTS.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; 459 | this.BuildTS.Image = ((System.Drawing.Image)(resources.GetObject("BuildTS.Image"))); 460 | this.BuildTS.ImageTransparentColor = System.Drawing.Color.Magenta; 461 | this.BuildTS.Name = "BuildTS"; 462 | this.BuildTS.Size = new System.Drawing.Size(23, 22); 463 | this.BuildTS.Text = "Build"; 464 | this.BuildTS.Click += new System.EventHandler(this.BuildTS_Click); 465 | // 466 | // RunTS 467 | // 468 | this.RunTS.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; 469 | this.RunTS.Image = ((System.Drawing.Image)(resources.GetObject("RunTS.Image"))); 470 | this.RunTS.ImageTransparentColor = System.Drawing.Color.Magenta; 471 | this.RunTS.Name = "RunTS"; 472 | this.RunTS.Size = new System.Drawing.Size(23, 22); 473 | this.RunTS.Text = "Run"; 474 | this.RunTS.Click += new System.EventHandler(this.RunTS_Click); 475 | // 476 | // CommentTS 477 | // 478 | this.CommentTS.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; 479 | this.CommentTS.Image = ((System.Drawing.Image)(resources.GetObject("CommentTS.Image"))); 480 | this.CommentTS.ImageTransparentColor = System.Drawing.Color.Magenta; 481 | this.CommentTS.Name = "CommentTS"; 482 | this.CommentTS.Size = new System.Drawing.Size(23, 22); 483 | this.CommentTS.Text = "Comment Selected"; 484 | this.CommentTS.Click += new System.EventHandler(this.CommentTS_Click); 485 | // 486 | // splitContainer1 487 | // 488 | this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; 489 | this.splitContainer1.Location = new System.Drawing.Point(0, 49); 490 | this.splitContainer1.Name = "splitContainer1"; 491 | this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal; 492 | // 493 | // splitContainer1.Panel1 494 | // 495 | this.splitContainer1.Panel1.Controls.Add(this.splitContainer2); 496 | // 497 | // splitContainer1.Panel2 498 | // 499 | this.splitContainer1.Panel2.Controls.Add(this.TabControlBottom); 500 | this.splitContainer1.Size = new System.Drawing.Size(800, 401); 501 | this.splitContainer1.SplitterDistance = 266; 502 | this.splitContainer1.TabIndex = 3; 503 | // 504 | // splitContainer2 505 | // 506 | this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill; 507 | this.splitContainer2.Location = new System.Drawing.Point(0, 0); 508 | this.splitContainer2.Name = "splitContainer2"; 509 | // 510 | // splitContainer2.Panel1 511 | // 512 | this.splitContainer2.Panel1.Controls.Add(this.ProjectTreeView); 513 | // 514 | // splitContainer2.Panel2 515 | // 516 | this.splitContainer2.Panel2.Controls.Add(this.MainTabControl); 517 | this.splitContainer2.Size = new System.Drawing.Size(800, 266); 518 | this.splitContainer2.SplitterDistance = 266; 519 | this.splitContainer2.TabIndex = 0; 520 | // 521 | // ProjectTreeView 522 | // 523 | this.ProjectTreeView.Dock = System.Windows.Forms.DockStyle.Fill; 524 | this.ProjectTreeView.Location = new System.Drawing.Point(0, 0); 525 | this.ProjectTreeView.Name = "ProjectTreeView"; 526 | this.ProjectTreeView.Size = new System.Drawing.Size(266, 266); 527 | this.ProjectTreeView.TabIndex = 0; 528 | this.ProjectTreeView.NodeMouseDoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.ProjectTreeView_NodeMouseDoubleClick); 529 | this.ProjectTreeView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.ProjectTreeView_MouseDown); 530 | // 531 | // MainTabControl 532 | // 533 | this.MainTabControl.Dock = System.Windows.Forms.DockStyle.Fill; 534 | this.MainTabControl.Location = new System.Drawing.Point(0, 0); 535 | this.MainTabControl.Name = "MainTabControl"; 536 | this.MainTabControl.SelectedIndex = 0; 537 | this.MainTabControl.Size = new System.Drawing.Size(530, 266); 538 | this.MainTabControl.TabIndex = 0; 539 | // 540 | // TabControlBottom 541 | // 542 | this.TabControlBottom.Alignment = System.Windows.Forms.TabAlignment.Bottom; 543 | this.TabControlBottom.Controls.Add(this.Errors); 544 | this.TabControlBottom.Controls.Add(this.Warnings); 545 | this.TabControlBottom.Controls.Add(this.Output); 546 | this.TabControlBottom.Dock = System.Windows.Forms.DockStyle.Fill; 547 | this.TabControlBottom.Location = new System.Drawing.Point(0, 0); 548 | this.TabControlBottom.Name = "TabControlBottom"; 549 | this.TabControlBottom.SelectedIndex = 0; 550 | this.TabControlBottom.Size = new System.Drawing.Size(800, 131); 551 | this.TabControlBottom.TabIndex = 0; 552 | this.TabControlBottom.Tag = ""; 553 | // 554 | // Errors 555 | // 556 | this.Errors.Location = new System.Drawing.Point(4, 4); 557 | this.Errors.Name = "Errors"; 558 | this.Errors.Padding = new System.Windows.Forms.Padding(3); 559 | this.Errors.Size = new System.Drawing.Size(792, 105); 560 | this.Errors.TabIndex = 0; 561 | this.Errors.Text = "Errors"; 562 | this.Errors.UseVisualStyleBackColor = true; 563 | // 564 | // Warnings 565 | // 566 | this.Warnings.Location = new System.Drawing.Point(4, 4); 567 | this.Warnings.Name = "Warnings"; 568 | this.Warnings.Padding = new System.Windows.Forms.Padding(3); 569 | this.Warnings.Size = new System.Drawing.Size(792, 105); 570 | this.Warnings.TabIndex = 1; 571 | this.Warnings.Text = "Warnings"; 572 | this.Warnings.UseVisualStyleBackColor = true; 573 | // 574 | // Output 575 | // 576 | this.Output.Controls.Add(this.richTextBox1); 577 | this.Output.Location = new System.Drawing.Point(4, 4); 578 | this.Output.Name = "Output"; 579 | this.Output.Padding = new System.Windows.Forms.Padding(3); 580 | this.Output.Size = new System.Drawing.Size(792, 105); 581 | this.Output.TabIndex = 2; 582 | this.Output.Text = "Output"; 583 | this.Output.UseVisualStyleBackColor = true; 584 | // 585 | // richTextBox1 586 | // 587 | this.richTextBox1.BackColor = System.Drawing.SystemColors.InactiveCaption; 588 | this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Fill; 589 | this.richTextBox1.Location = new System.Drawing.Point(3, 3); 590 | this.richTextBox1.Name = "richTextBox1"; 591 | this.richTextBox1.Size = new System.Drawing.Size(786, 99); 592 | this.richTextBox1.TabIndex = 0; 593 | this.richTextBox1.Text = ""; 594 | // 595 | // TreeViewContextMenu 596 | // 597 | this.TreeViewContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { 598 | this.excludeToolStripMenuItem, 599 | this.removeToolStripMenuItem}); 600 | this.TreeViewContextMenu.Name = "TreeViewContextMenu"; 601 | this.TreeViewContextMenu.Size = new System.Drawing.Size(118, 48); 602 | // 603 | // excludeToolStripMenuItem 604 | // 605 | this.excludeToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("excludeToolStripMenuItem.Image"))); 606 | this.excludeToolStripMenuItem.Name = "excludeToolStripMenuItem"; 607 | this.excludeToolStripMenuItem.Size = new System.Drawing.Size(117, 22); 608 | this.excludeToolStripMenuItem.Text = "Exclude"; 609 | this.excludeToolStripMenuItem.Click += new System.EventHandler(this.excludeToolStripMenuItem_Click); 610 | // 611 | // removeToolStripMenuItem 612 | // 613 | this.removeToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("removeToolStripMenuItem.Image"))); 614 | this.removeToolStripMenuItem.Name = "removeToolStripMenuItem"; 615 | this.removeToolStripMenuItem.Size = new System.Drawing.Size(117, 22); 616 | this.removeToolStripMenuItem.Text = "Remove"; 617 | this.removeToolStripMenuItem.Click += new System.EventHandler(this.removeToolStripMenuItem_Click); 618 | // 619 | // TabContextMenu 620 | // 621 | this.TabContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { 622 | this.cutToolStripMenuItem1, 623 | this.copyToolStripMenuItem1, 624 | this.pasteToolStripMenuItem1, 625 | this.toolStripSeparator8, 626 | this.lineUpToolStripMenuItem, 627 | this.lineDownToolStripMenuItem, 628 | this.toolStripSeparator9, 629 | this.saveFileToolStripMenuItem, 630 | this.closePageToolStripMenuItem}); 631 | this.TabContextMenu.Name = "TabContextMenu"; 632 | this.TabContextMenu.Size = new System.Drawing.Size(133, 170); 633 | // 634 | // cutToolStripMenuItem1 635 | // 636 | this.cutToolStripMenuItem1.Image = ((System.Drawing.Image)(resources.GetObject("cutToolStripMenuItem1.Image"))); 637 | this.cutToolStripMenuItem1.Name = "cutToolStripMenuItem1"; 638 | this.cutToolStripMenuItem1.Size = new System.Drawing.Size(132, 22); 639 | this.cutToolStripMenuItem1.Text = "Cut"; 640 | this.cutToolStripMenuItem1.Click += new System.EventHandler(this.cutToolStripMenuItem1_Click); 641 | // 642 | // copyToolStripMenuItem1 643 | // 644 | this.copyToolStripMenuItem1.Image = ((System.Drawing.Image)(resources.GetObject("copyToolStripMenuItem1.Image"))); 645 | this.copyToolStripMenuItem1.Name = "copyToolStripMenuItem1"; 646 | this.copyToolStripMenuItem1.Size = new System.Drawing.Size(132, 22); 647 | this.copyToolStripMenuItem1.Text = "Copy"; 648 | this.copyToolStripMenuItem1.Click += new System.EventHandler(this.copyToolStripMenuItem1_Click); 649 | // 650 | // pasteToolStripMenuItem1 651 | // 652 | this.pasteToolStripMenuItem1.Image = ((System.Drawing.Image)(resources.GetObject("pasteToolStripMenuItem1.Image"))); 653 | this.pasteToolStripMenuItem1.Name = "pasteToolStripMenuItem1"; 654 | this.pasteToolStripMenuItem1.Size = new System.Drawing.Size(132, 22); 655 | this.pasteToolStripMenuItem1.Text = "Paste"; 656 | this.pasteToolStripMenuItem1.Click += new System.EventHandler(this.pasteToolStripMenuItem1_Click); 657 | // 658 | // toolStripSeparator8 659 | // 660 | this.toolStripSeparator8.Name = "toolStripSeparator8"; 661 | this.toolStripSeparator8.Size = new System.Drawing.Size(129, 6); 662 | // 663 | // lineUpToolStripMenuItem 664 | // 665 | this.lineUpToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("lineUpToolStripMenuItem.Image"))); 666 | this.lineUpToolStripMenuItem.Name = "lineUpToolStripMenuItem"; 667 | this.lineUpToolStripMenuItem.Size = new System.Drawing.Size(132, 22); 668 | this.lineUpToolStripMenuItem.Text = "Line Up"; 669 | this.lineUpToolStripMenuItem.Click += new System.EventHandler(this.lineUpToolStripMenuItem_Click); 670 | // 671 | // lineDownToolStripMenuItem 672 | // 673 | this.lineDownToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("lineDownToolStripMenuItem.Image"))); 674 | this.lineDownToolStripMenuItem.Name = "lineDownToolStripMenuItem"; 675 | this.lineDownToolStripMenuItem.Size = new System.Drawing.Size(132, 22); 676 | this.lineDownToolStripMenuItem.Text = "Line Down"; 677 | this.lineDownToolStripMenuItem.Click += new System.EventHandler(this.lineDownToolStripMenuItem_Click); 678 | // 679 | // toolStripSeparator9 680 | // 681 | this.toolStripSeparator9.Name = "toolStripSeparator9"; 682 | this.toolStripSeparator9.Size = new System.Drawing.Size(129, 6); 683 | // 684 | // saveFileToolStripMenuItem 685 | // 686 | this.saveFileToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("saveFileToolStripMenuItem.Image"))); 687 | this.saveFileToolStripMenuItem.Name = "saveFileToolStripMenuItem"; 688 | this.saveFileToolStripMenuItem.Size = new System.Drawing.Size(132, 22); 689 | this.saveFileToolStripMenuItem.Text = "Save File"; 690 | this.saveFileToolStripMenuItem.Click += new System.EventHandler(this.saveFileToolStripMenuItem_Click); 691 | // 692 | // closePageToolStripMenuItem 693 | // 694 | this.closePageToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("closePageToolStripMenuItem.Image"))); 695 | this.closePageToolStripMenuItem.Name = "closePageToolStripMenuItem"; 696 | this.closePageToolStripMenuItem.Size = new System.Drawing.Size(132, 22); 697 | this.closePageToolStripMenuItem.Text = "Close Page"; 698 | this.closePageToolStripMenuItem.Click += new System.EventHandler(this.closePageToolStripMenuItem_Click); 699 | // 700 | // ProjectContextMenu 701 | // 702 | this.ProjectContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { 703 | this.addNewFileToolStripMenuItem1, 704 | this.toolStripSeparator10, 705 | this.buildToolStripMenuItem1, 706 | this.runToolStripMenuItem1, 707 | this.toolStripSeparator11, 708 | this.closeProjectToolStripMenuItem1}); 709 | this.ProjectContextMenu.Name = "ProjectContextMenu"; 710 | this.ProjectContextMenu.Size = new System.Drawing.Size(145, 104); 711 | // 712 | // addNewFileToolStripMenuItem1 713 | // 714 | this.addNewFileToolStripMenuItem1.Image = ((System.Drawing.Image)(resources.GetObject("addNewFileToolStripMenuItem1.Image"))); 715 | this.addNewFileToolStripMenuItem1.Name = "addNewFileToolStripMenuItem1"; 716 | this.addNewFileToolStripMenuItem1.Size = new System.Drawing.Size(144, 22); 717 | this.addNewFileToolStripMenuItem1.Text = "Add New File"; 718 | this.addNewFileToolStripMenuItem1.Click += new System.EventHandler(this.addNewFileToolStripMenuItem1_Click); 719 | // 720 | // toolStripSeparator10 721 | // 722 | this.toolStripSeparator10.Name = "toolStripSeparator10"; 723 | this.toolStripSeparator10.Size = new System.Drawing.Size(141, 6); 724 | // 725 | // buildToolStripMenuItem1 726 | // 727 | this.buildToolStripMenuItem1.Image = ((System.Drawing.Image)(resources.GetObject("buildToolStripMenuItem1.Image"))); 728 | this.buildToolStripMenuItem1.Name = "buildToolStripMenuItem1"; 729 | this.buildToolStripMenuItem1.Size = new System.Drawing.Size(144, 22); 730 | this.buildToolStripMenuItem1.Text = "Build"; 731 | this.buildToolStripMenuItem1.Click += new System.EventHandler(this.buildToolStripMenuItem1_Click); 732 | // 733 | // runToolStripMenuItem1 734 | // 735 | this.runToolStripMenuItem1.Image = ((System.Drawing.Image)(resources.GetObject("runToolStripMenuItem1.Image"))); 736 | this.runToolStripMenuItem1.Name = "runToolStripMenuItem1"; 737 | this.runToolStripMenuItem1.Size = new System.Drawing.Size(144, 22); 738 | this.runToolStripMenuItem1.Text = "Run"; 739 | this.runToolStripMenuItem1.Click += new System.EventHandler(this.runToolStripMenuItem1_Click); 740 | // 741 | // toolStripSeparator11 742 | // 743 | this.toolStripSeparator11.Name = "toolStripSeparator11"; 744 | this.toolStripSeparator11.Size = new System.Drawing.Size(141, 6); 745 | // 746 | // closeProjectToolStripMenuItem1 747 | // 748 | this.closeProjectToolStripMenuItem1.Image = ((System.Drawing.Image)(resources.GetObject("closeProjectToolStripMenuItem1.Image"))); 749 | this.closeProjectToolStripMenuItem1.Name = "closeProjectToolStripMenuItem1"; 750 | this.closeProjectToolStripMenuItem1.Size = new System.Drawing.Size(144, 22); 751 | this.closeProjectToolStripMenuItem1.Text = "Close Project"; 752 | this.closeProjectToolStripMenuItem1.Click += new System.EventHandler(this.closeProjectToolStripMenuItem1_Click); 753 | // 754 | // MainWindow 755 | // 756 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 757 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 758 | this.ClientSize = new System.Drawing.Size(800, 450); 759 | this.Controls.Add(this.splitContainer1); 760 | this.Controls.Add(this.toolStrip1); 761 | this.Controls.Add(this.MainMenuStrip); 762 | this.Name = "MainWindow"; 763 | this.Text = "C# IDE"; 764 | this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainWindow_FormClosing); 765 | this.MainMenuStrip.ResumeLayout(false); 766 | this.MainMenuStrip.PerformLayout(); 767 | this.toolStrip1.ResumeLayout(false); 768 | this.toolStrip1.PerformLayout(); 769 | this.splitContainer1.Panel1.ResumeLayout(false); 770 | this.splitContainer1.Panel2.ResumeLayout(false); 771 | ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); 772 | this.splitContainer1.ResumeLayout(false); 773 | this.splitContainer2.Panel1.ResumeLayout(false); 774 | this.splitContainer2.Panel2.ResumeLayout(false); 775 | ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit(); 776 | this.splitContainer2.ResumeLayout(false); 777 | this.TabControlBottom.ResumeLayout(false); 778 | this.Output.ResumeLayout(false); 779 | this.TreeViewContextMenu.ResumeLayout(false); 780 | this.TabContextMenu.ResumeLayout(false); 781 | this.ProjectContextMenu.ResumeLayout(false); 782 | this.ResumeLayout(false); 783 | this.PerformLayout(); 784 | 785 | } 786 | 787 | #endregion 788 | 789 | private System.Windows.Forms.MenuStrip MainMenuStrip; 790 | private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; 791 | private System.Windows.Forms.ToolStripMenuItem createProjectToolStripMenuItem; 792 | private System.Windows.Forms.ToolStripMenuItem openProjectToolStripMenuItem; 793 | private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; 794 | private System.Windows.Forms.ToolStripMenuItem newFileToolStripMenuItem; 795 | private System.Windows.Forms.ToolStripMenuItem openFileToolStripMenuItem; 796 | private System.Windows.Forms.ToolStripMenuItem saveFocusedFileToolStripMenuItem; 797 | private System.Windows.Forms.ToolStripMenuItem saveAllFilesToolStripMenuItem; 798 | private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; 799 | private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; 800 | private System.Windows.Forms.ToolStripMenuItem editToolStripMenuItem; 801 | private System.Windows.Forms.ToolStripMenuItem cutToolStripMenuItem; 802 | private System.Windows.Forms.ToolStripMenuItem copyToolStripMenuItem; 803 | private System.Windows.Forms.ToolStripMenuItem pasteToolStripMenuItem; 804 | private System.Windows.Forms.ToolStripMenuItem viewToolStripMenuItem; 805 | private System.Windows.Forms.ToolStripMenuItem projectTreeCollapsedToolStripMenuItem; 806 | private System.Windows.Forms.ToolStripMenuItem errorsTreeCollapsedToolStripMenuItem; 807 | private System.Windows.Forms.ToolStripMenuItem projectToolStripMenuItem; 808 | private System.Windows.Forms.ToolStripMenuItem addNewFileToolStripMenuItem; 809 | private System.Windows.Forms.ToolStripSeparator toolStripSeparator3; 810 | private System.Windows.Forms.ToolStripMenuItem buildToolStripMenuItem; 811 | private System.Windows.Forms.ToolStripMenuItem runToolStripMenuItem; 812 | private System.Windows.Forms.ToolStripSeparator toolStripSeparator4; 813 | private System.Windows.Forms.ToolStripMenuItem closeProjectToolStripMenuItem; 814 | private System.Windows.Forms.ToolStrip toolStrip1; 815 | private System.Windows.Forms.SplitContainer splitContainer1; 816 | private System.Windows.Forms.SplitContainer splitContainer2; 817 | private System.Windows.Forms.TreeView ProjectTreeView; 818 | private System.Windows.Forms.TabControl MainTabControl; 819 | private System.Windows.Forms.TabControl TabControlBottom; 820 | private System.Windows.Forms.TabPage Errors; 821 | private System.Windows.Forms.TabPage Warnings; 822 | private System.Windows.Forms.TabPage Output; 823 | private System.Windows.Forms.RichTextBox richTextBox1; 824 | private System.Windows.Forms.ToolStripButton NewProjectTS; 825 | private System.Windows.Forms.ToolStripButton OpenProjectTS; 826 | private System.Windows.Forms.ToolStripSeparator toolStripSeparator5; 827 | private System.Windows.Forms.ToolStripButton NewFileTS; 828 | private System.Windows.Forms.ToolStripButton OpenFileTS; 829 | private System.Windows.Forms.ToolStripButton SaveFileTS; 830 | private System.Windows.Forms.ToolStripButton SaveAllFilesTS; 831 | private System.Windows.Forms.ToolStripSeparator toolStripSeparator6; 832 | private System.Windows.Forms.ToolStripButton CutTS; 833 | private System.Windows.Forms.ToolStripButton CopyTS; 834 | private System.Windows.Forms.ToolStripButton PasteTS; 835 | private System.Windows.Forms.ToolStripSeparator toolStripSeparator7; 836 | private System.Windows.Forms.ToolStripButton BuildTS; 837 | private System.Windows.Forms.ToolStripButton RunTS; 838 | private System.Windows.Forms.ToolStripButton CommentTS; 839 | private System.Windows.Forms.ContextMenuStrip TreeViewContextMenu; 840 | private System.Windows.Forms.ToolStripMenuItem excludeToolStripMenuItem; 841 | private System.Windows.Forms.ToolStripMenuItem removeToolStripMenuItem; 842 | private System.Windows.Forms.ContextMenuStrip TabContextMenu; 843 | private System.Windows.Forms.ToolStripMenuItem cutToolStripMenuItem1; 844 | private System.Windows.Forms.ToolStripMenuItem copyToolStripMenuItem1; 845 | private System.Windows.Forms.ToolStripMenuItem pasteToolStripMenuItem1; 846 | private System.Windows.Forms.ToolStripSeparator toolStripSeparator8; 847 | private System.Windows.Forms.ToolStripMenuItem lineUpToolStripMenuItem; 848 | private System.Windows.Forms.ToolStripMenuItem lineDownToolStripMenuItem; 849 | private System.Windows.Forms.ToolStripSeparator toolStripSeparator9; 850 | private System.Windows.Forms.ToolStripMenuItem saveFileToolStripMenuItem; 851 | private System.Windows.Forms.ToolStripMenuItem closePageToolStripMenuItem; 852 | private System.Windows.Forms.ContextMenuStrip ProjectContextMenu; 853 | private System.Windows.Forms.ToolStripMenuItem addNewFileToolStripMenuItem1; 854 | private System.Windows.Forms.ToolStripSeparator toolStripSeparator10; 855 | private System.Windows.Forms.ToolStripMenuItem buildToolStripMenuItem1; 856 | private System.Windows.Forms.ToolStripMenuItem runToolStripMenuItem1; 857 | private System.Windows.Forms.ToolStripSeparator toolStripSeparator11; 858 | private System.Windows.Forms.ToolStripMenuItem closeProjectToolStripMenuItem1; 859 | } 860 | } -------------------------------------------------------------------------------- /CSharpIDE/Views/MainWindow.cs: -------------------------------------------------------------------------------- 1 | using CSharpIDE.Models; 2 | using CSharpIDE.Views.Interfaces; 3 | using FastColoredTextBoxNS; 4 | using System; 5 | using System.CodeDom.Compiler; 6 | using System.Collections.Generic; 7 | using System.ComponentModel; 8 | using System.Data; 9 | using System.Drawing; 10 | using System.IO; 11 | using System.Linq; 12 | using System.Text; 13 | using System.Threading.Tasks; 14 | using System.Windows.Forms; 15 | 16 | namespace CSharpIDE.Views 17 | { 18 | public partial class MainWindow : Form, IMainWindow 19 | { 20 | private Project project; 21 | public CompilerResults Results { get; set; } 22 | private ImageList imageList; 23 | public Project Project { get => project; set => project = value; } 24 | public string OFDFileName {get;set;} 25 | public string OFDPath { get; set; } 26 | public string SelectedFileName { get; set; } 27 | public ProjectFile ProjectFile { get; set; } 28 | 29 | public MainWindow() 30 | { 31 | InitializeComponent(); 32 | Project = new Project(); 33 | imageList = new ImageList(); 34 | AddImagesToList(); 35 | } 36 | 37 | #region private functions 38 | 39 | private void AddImagesToList() 40 | { 41 | imageList.Images.Add("Parent", Image.FromFile(@"..\..\..\Images\Parent.png")); 42 | imageList.Images.Add("Child", Image.FromFile(@"..\..\..\Images\Child.png")); 43 | ProjectTreeView.ImageList = imageList; 44 | ProjectTreeView.ImageIndex = 1; 45 | ProjectTreeView.SelectedImageIndex = 1; 46 | } 47 | private void RefreshTreeView() 48 | { 49 | if (Project.Name != null) 50 | { 51 | ProjectTreeView.Nodes.Clear(); 52 | TreeNode rootnode = new TreeNode(Project.Name); 53 | 54 | ProjectTreeView.Nodes.Add(rootnode); 55 | rootnode.ImageIndex = 1; 56 | rootnode.SelectedImageIndex = 1; 57 | 58 | foreach (var item in Project.Files) 59 | { 60 | rootnode.Nodes.Add(item.Name); 61 | rootnode.Nodes[rootnode.Nodes.Count - 1].ContextMenuStrip = TreeViewContextMenu; 62 | rootnode.ImageIndex = 0; 63 | rootnode.SelectedImageIndex = 0; 64 | } 65 | ProjectTreeView.ExpandAll(); 66 | } 67 | } 68 | private void AddNewTab(ProjectFile file) 69 | { 70 | TabPage tabPage = new TabPage(); 71 | FastColoredTextBox fastColoredTextBox = new FastColoredTextBox(); 72 | fastColoredTextBox.Dock = DockStyle.Fill; 73 | fastColoredTextBox.Language = Language.CSharp; 74 | fastColoredTextBox.Text = file.Data; 75 | fastColoredTextBox.TextChanged += Ts_TextChanged; 76 | fastColoredTextBox.ContextMenuStrip = TabContextMenu; 77 | tabPage.Text = file.Name; 78 | tabPage.BorderStyle = BorderStyle.FixedSingle; 79 | tabPage.Controls.Add(fastColoredTextBox); 80 | MainTabControl.TabPages.Add(tabPage); 81 | MainTabControl.SelectedTab = MainTabControl.TabPages[MainTabControl.TabPages.Count - 1]; 82 | } 83 | private void Ts_TextChanged(object sender, TextChangedEventArgs e) 84 | { 85 | if (MainTabControl.SelectedTab.Text[MainTabControl.SelectedTab.Text.Length - 1] != '*') 86 | MainTabControl.SelectedTab.Text += "*"; 87 | } 88 | 89 | #endregion 90 | 91 | #region events 92 | 93 | public event EventHandler NewProjectEvent; 94 | public event EventHandler OpenProjectEvent; 95 | public event EventHandler NewFileEvent; 96 | public event EventHandler SaveFocusedFile; 97 | public event EventHandler SaveAllFiles; 98 | public event EventHandler BuildProject; 99 | public event EventHandler RunProject; 100 | public event EventHandler OpenFileEvent; 101 | public event EventHandler RemoveFile; 102 | public event EventHandler ExcludeFile; 103 | 104 | #endregion 105 | 106 | #region menustrip 107 | 108 | private void createProjectToolStripMenuItem_Click(object sender, EventArgs e) 109 | { 110 | NewProjectEvent.Invoke(sender, e); 111 | RefreshTreeView(); 112 | } 113 | 114 | private void openProjectToolStripMenuItem_Click(object sender, EventArgs e) 115 | { 116 | using (var fd = new OpenFileDialog()) 117 | { 118 | fd.Filter = "mysln file|*.mysln"; 119 | DialogResult result = fd.ShowDialog(); 120 | if (result == DialogResult.OK && !string.IsNullOrWhiteSpace(fd.FileName) && fd.FileName.Contains(".mysln")) 121 | { 122 | OFDFileName = Path.GetFileNameWithoutExtension(fd.FileName); 123 | OFDPath = Path.GetDirectoryName(fd.FileName); 124 | OpenProjectEvent.Invoke(sender, e); 125 | RefreshTreeView(); 126 | } 127 | } 128 | //MessageBox.Show(OFDPath + "\\" + OFDFileName); 129 | 130 | } 131 | 132 | private void newFileToolStripMenuItem_Click(object sender, EventArgs e) 133 | { 134 | using (var sfd = new SaveFileDialog()) 135 | { 136 | sfd.Filter = "CSharp file|*.cs"; 137 | 138 | DialogResult result = sfd.ShowDialog(); 139 | if (result == DialogResult.OK) 140 | { 141 | ProjectFile = new ProjectFile() { Name = Path.GetFileNameWithoutExtension(sfd.FileName) + ".cs" }; 142 | NewFileEvent.Invoke(sender, e); 143 | RefreshTreeView(); 144 | } 145 | } 146 | 147 | } 148 | 149 | private void openFileToolStripMenuItem_Click(object sender, EventArgs e) 150 | { 151 | using (var fd = new OpenFileDialog()) 152 | { 153 | fd.Filter = "cs file|*.cs"; 154 | DialogResult result = fd.ShowDialog(); 155 | if (result == DialogResult.OK && !string.IsNullOrWhiteSpace(fd.FileName) && fd.FileName.Contains(".cs")) 156 | { 157 | OFDFileName = Path.GetFileNameWithoutExtension(fd.FileName); 158 | OFDPath = Path.GetDirectoryName(fd.FileName); 159 | OpenFileEvent.Invoke(sender, e); 160 | RefreshTreeView(); 161 | } 162 | } 163 | 164 | } 165 | 166 | private void saveFocusedFileToolStripMenuItem_Click(object sender, EventArgs e) 167 | { 168 | if (MainTabControl.SelectedTab.Text[MainTabControl.SelectedTab.Text.Length - 1] == '*') 169 | { 170 | MainTabControl.SelectedTab.Text = MainTabControl.SelectedTab.Text.Remove(MainTabControl.SelectedTab.Text.Length - 1, 1); 171 | ProjectFile = new ProjectFile() { Name = MainTabControl.SelectedTab.Text, Data = (MainTabControl.SelectedTab.Controls[0] as FastColoredTextBox).Text }; 172 | //MessageBox.Show(ProjectFile.Name); 173 | //MessageBox.Show(ProjectFile.Data); 174 | SaveFocusedFile.Invoke(sender, e); 175 | RefreshTreeView(); 176 | } 177 | 178 | } 179 | 180 | private void saveAllFilesToolStripMenuItem_Click(object sender, EventArgs e) 181 | { 182 | 183 | foreach (TabPage item in MainTabControl.TabPages) 184 | { 185 | if (item.Text[item.Text.Length - 1] == '*') 186 | { 187 | item.Text = item.Text.Remove(item.Text.Length - 1, 1); 188 | foreach (ProjectFile _file in project.Files) 189 | { 190 | if (_file.Name == item.Text) _file.Data = (item.Controls[0] as FastColoredTextBox).Text; 191 | } 192 | } 193 | } 194 | SaveAllFiles.Invoke(sender, e); 195 | } 196 | 197 | private void exitToolStripMenuItem_Click(object sender, EventArgs e) 198 | { 199 | if(Project.Name!=null) 200 | { 201 | var confirmResult = MessageBox.Show("Do you want to save changes?", "", MessageBoxButtons.YesNo); 202 | if (confirmResult == DialogResult.Yes) 203 | { 204 | saveAllFilesToolStripMenuItem_Click(sender, e); 205 | } 206 | } 207 | Environment.Exit(0); 208 | } 209 | 210 | private void cutToolStripMenuItem_Click(object sender, EventArgs e) 211 | { 212 | (MainTabControl.SelectedTab.Controls[0] as FastColoredTextBox).Cut(); 213 | } 214 | 215 | private void copyToolStripMenuItem_Click(object sender, EventArgs e) 216 | { 217 | (MainTabControl.SelectedTab.Controls[0] as FastColoredTextBox).Copy(); 218 | } 219 | 220 | private void pasteToolStripMenuItem_Click(object sender, EventArgs e) 221 | { 222 | (MainTabControl.SelectedTab.Controls[0] as FastColoredTextBox).Paste(); 223 | } 224 | 225 | private void addNewFileToolStripMenuItem_Click(object sender, EventArgs e) 226 | { 227 | newFileToolStripMenuItem_Click(sender, e); 228 | } 229 | 230 | private void buildToolStripMenuItem_Click(object sender, EventArgs e) 231 | { 232 | BuildProject.Invoke(sender, e); 233 | } 234 | 235 | private void runToolStripMenuItem_Click(object sender, EventArgs e) 236 | { 237 | RunProject.Invoke(sender, e); 238 | LoadResults(); 239 | } 240 | 241 | private void LoadResults() 242 | { 243 | if (Results.Errors.Count == 0 && Results != null) 244 | { 245 | #region Errors 246 | TableLayoutPanel panel = new TableLayoutPanel(); 247 | panel.Dock = DockStyle.Fill; 248 | panel.AutoScroll = true; 249 | panel.CellBorderStyle = TableLayoutPanelCellBorderStyle.Single; 250 | panel.ColumnCount = 4; 251 | panel.RowCount = 1; 252 | panel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 20F)); 253 | panel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 40F)); 254 | panel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 30F)); 255 | panel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 20F)); 256 | 257 | panel.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F)); 258 | panel.Controls.Add(new Label() { Text = "Error Code" }, 0, 0); 259 | panel.Controls.Add(new Label() { Text = "Message" }, 1, 0); 260 | panel.Controls.Add(new Label() { Text = "Line" }, 2, 0); 261 | panel.Controls.Add(new Label() { Text = "File" }, 3, 0); 262 | panel.RowCount = panel.RowCount + 1; 263 | panel.RowStyles.Add(new RowStyle(SizeType.Absolute, 20)); 264 | 265 | TabControlBottom.TabPages[0].Controls.Clear(); 266 | TabControlBottom.TabPages[0].Controls.Add(panel); 267 | 268 | #endregion 269 | 270 | #region Warnings 271 | 272 | TableLayoutPanel warningpanel = new TableLayoutPanel(); 273 | warningpanel.Dock = DockStyle.Fill; 274 | warningpanel.AutoScroll = true; 275 | warningpanel.CellBorderStyle = TableLayoutPanelCellBorderStyle.Single; 276 | warningpanel.ColumnCount = 4; 277 | warningpanel.RowCount = 1; 278 | warningpanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 20F)); 279 | warningpanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 40F)); 280 | warningpanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 30F)); 281 | warningpanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 20F)); 282 | 283 | warningpanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F)); 284 | warningpanel.Controls.Add(new Label() { Text = "Warning Code" }, 0, 0); 285 | warningpanel.Controls.Add(new Label() { Text = "Message" }, 1, 0); 286 | warningpanel.Controls.Add(new Label() { Text = "Line" }, 2, 0); 287 | warningpanel.Controls.Add(new Label() { Text = "File" }, 3, 0); 288 | warningpanel.RowCount = warningpanel.RowCount + 1; 289 | warningpanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 20)); 290 | 291 | TabControlBottom.TabPages[1].Controls.Clear(); 292 | TabControlBottom.TabPages[1].Controls.Add(warningpanel); 293 | 294 | #endregion 295 | 296 | #region Output 297 | string tmp = string.Empty; 298 | TabControlBottom.SelectedTab = TabControlBottom.TabPages[2]; 299 | TabControlBottom.TabPages[2].Controls[0].Text = $"Build started: {Project.Name}\nPath: {Project.Path}\nBuild: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped"; 300 | #endregion 301 | } 302 | else 303 | { 304 | #region Warnings 305 | TableLayoutPanel warningpanel = new TableLayoutPanel(); 306 | warningpanel.Dock = DockStyle.Fill; 307 | warningpanel.AutoScroll = true; 308 | warningpanel.CellBorderStyle = TableLayoutPanelCellBorderStyle.Single; 309 | warningpanel.ColumnCount = 4; 310 | warningpanel.RowCount = 1; 311 | warningpanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 20F)); 312 | warningpanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 40F)); 313 | warningpanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 30F)); 314 | warningpanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 20F)); 315 | 316 | warningpanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F)); 317 | warningpanel.Controls.Add(new Label() { Text = "Warning Code" }, 0, 0); 318 | warningpanel.Controls.Add(new Label() { Text = "Message" }, 1, 0); 319 | warningpanel.Controls.Add(new Label() { Text = "Line" }, 2, 0); 320 | warningpanel.Controls.Add(new Label() { Text = "File" }, 3, 0); 321 | warningpanel.RowCount = warningpanel.RowCount + 1; 322 | warningpanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 20)); 323 | 324 | TabControlBottom.TabPages[1].Controls.Clear(); 325 | TabControlBottom.TabPages[1].Controls.Add(warningpanel); 326 | 327 | #endregion 328 | 329 | #region Errors 330 | 331 | TableLayoutPanel panel = new TableLayoutPanel(); 332 | panel.Dock = DockStyle.Fill; 333 | panel.AutoScroll = true; 334 | panel.CellBorderStyle = TableLayoutPanelCellBorderStyle.Single; 335 | panel.ColumnCount = 4; 336 | panel.RowCount = 1; 337 | panel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 20F)); 338 | panel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 40F)); 339 | panel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 30F)); 340 | panel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 20F)); 341 | 342 | panel.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F)); 343 | panel.Controls.Add(new Label() { Text = "Error Code" }, 0, 0); 344 | panel.Controls.Add(new Label() { Text = "Message" }, 1, 0); 345 | panel.Controls.Add(new Label() { Text = "Line" }, 2, 0); 346 | panel.Controls.Add(new Label() { Text = "File" }, 3, 0); 347 | 348 | 349 | foreach (CompilerError err in Results.Errors) 350 | { 351 | panel.RowCount = panel.RowCount + 1; 352 | panel.RowStyles.Add(new RowStyle(SizeType.Absolute, 20)); 353 | panel.Controls.Add(new Label() { Text = err.ErrorNumber }, 0, panel.RowCount - 1); 354 | panel.Controls.Add(new Label() { Text = err.ErrorText }, 1, panel.RowCount - 1); 355 | panel.Controls.Add(new Label() { Text = err.Line.ToString() }, 2, panel.RowCount - 1); 356 | panel.Controls.Add(new Label() { Text = err.FileName }, 3, panel.RowCount - 1); 357 | } 358 | panel.RowCount = panel.RowCount + 1; 359 | panel.RowStyles.Add(new RowStyle(SizeType.Absolute, 20)); 360 | 361 | TabControlBottom.TabPages[0].Controls.Clear(); 362 | TabControlBottom.TabPages[0].Controls.Add(panel); 363 | TabControlBottom.SelectedTab = TabControlBottom.TabPages[0]; 364 | 365 | #endregion 366 | } 367 | } 368 | 369 | private void closeProjectToolStripMenuItem_Click(object sender, EventArgs e) 370 | { 371 | if (Project.Name != null) 372 | { 373 | var confirmResult = MessageBox.Show("Do you want to save changes?", "", MessageBoxButtons.YesNo); 374 | if (confirmResult == DialogResult.Yes) 375 | { 376 | saveAllFilesToolStripMenuItem_Click(sender, e); 377 | } 378 | } 379 | Project = null; 380 | ProjectTreeView.Nodes.Clear(); 381 | MainTabControl.TabPages.Clear(); 382 | } 383 | 384 | private void projectTreeCollapsedToolStripMenuItem_Click(object sender, EventArgs e) 385 | { 386 | if (projectTreeCollapsedToolStripMenuItem.Checked) 387 | { 388 | projectTreeCollapsedToolStripMenuItem.Checked = false; 389 | splitContainer2.Panel1Collapsed = false; 390 | } 391 | else 392 | { 393 | projectTreeCollapsedToolStripMenuItem.Checked = true; 394 | splitContainer2.Panel1Collapsed = true; 395 | } 396 | } 397 | 398 | private void errorsTreeCollapsedToolStripMenuItem_Click(object sender, EventArgs e) 399 | { 400 | if(errorsTreeCollapsedToolStripMenuItem.Checked) 401 | { 402 | errorsTreeCollapsedToolStripMenuItem.Checked = false; 403 | splitContainer1.Panel2Collapsed = false; 404 | } 405 | else 406 | { 407 | errorsTreeCollapsedToolStripMenuItem.Checked = true; 408 | splitContainer1.Panel2Collapsed = true; 409 | } 410 | } 411 | 412 | #endregion 413 | 414 | #region toolstrip 415 | 416 | private void NewProjectTS_Click(object sender, EventArgs e) 417 | { 418 | createProjectToolStripMenuItem_Click(sender, e); 419 | } 420 | 421 | private void OpenProjectTS_Click(object sender, EventArgs e) 422 | { 423 | openProjectToolStripMenuItem_Click(sender, e); 424 | 425 | } 426 | 427 | private void NewFileTS_Click(object sender, EventArgs e) 428 | { 429 | newFileToolStripMenuItem_Click(sender, e); 430 | } 431 | 432 | private void OpenFileTS_Click(object sender, EventArgs e) 433 | { 434 | openFileToolStripMenuItem_Click(sender, e); 435 | } 436 | 437 | private void SaveFileTS_Click(object sender, EventArgs e) 438 | { 439 | saveFocusedFileToolStripMenuItem_Click(sender, e); 440 | } 441 | 442 | private void SaveAllFilesTS_Click(object sender, EventArgs e) 443 | { 444 | saveAllFilesToolStripMenuItem_Click(sender, e); 445 | } 446 | 447 | private void CutTS_Click(object sender, EventArgs e) 448 | { 449 | cutToolStripMenuItem_Click(sender, e); 450 | } 451 | 452 | private void CopyTS_Click(object sender, EventArgs e) 453 | { 454 | copyToolStripMenuItem_Click(sender, e); 455 | } 456 | 457 | private void PasteTS_Click(object sender, EventArgs e) 458 | { 459 | pasteToolStripMenuItem_Click(sender, e); 460 | } 461 | 462 | private void BuildTS_Click(object sender, EventArgs e) 463 | { 464 | buildToolStripMenuItem_Click(sender, e); 465 | } 466 | 467 | private void RunTS_Click(object sender, EventArgs e) 468 | { 469 | runToolStripMenuItem_Click(sender, e); 470 | } 471 | 472 | private void CommentTS_Click(object sender, EventArgs e) 473 | { 474 | (MainTabControl.SelectedTab.Controls[0] as FastColoredTextBox).CommentSelected(); 475 | } 476 | 477 | #endregion 478 | 479 | #region projecttree 480 | 481 | private void ProjectTreeView_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) 482 | { 483 | bool chk = false; 484 | foreach (var item in Project.Files) 485 | { 486 | if(item.Name == e.Node.Text) 487 | { 488 | foreach (var itemT in MainTabControl.TabPages) 489 | { 490 | if((itemT as TabPage).Text == item.Name) { 491 | MainTabControl.SelectedTab = (itemT as TabPage); 492 | chk = true; 493 | } 494 | } 495 | if (!chk) AddNewTab(item); 496 | } 497 | } 498 | } 499 | 500 | #endregion 501 | 502 | #region contextMenuTab 503 | private void cutToolStripMenuItem1_Click(object sender, EventArgs e) 504 | { 505 | cutToolStripMenuItem_Click(sender, e); 506 | } 507 | 508 | private void copyToolStripMenuItem1_Click(object sender, EventArgs e) 509 | { 510 | copyToolStripMenuItem_Click(sender, e); 511 | } 512 | 513 | private void pasteToolStripMenuItem1_Click(object sender, EventArgs e) 514 | { 515 | pasteToolStripMenuItem_Click(sender, e); 516 | } 517 | 518 | private void saveFileToolStripMenuItem_Click(object sender, EventArgs e) 519 | { 520 | saveFocusedFileToolStripMenuItem_Click(sender, e); 521 | } 522 | 523 | private void lineUpToolStripMenuItem_Click(object sender, EventArgs e) 524 | { 525 | int line = (MainTabControl.SelectedTab.Controls[0] as FastColoredTextBox).Selection.Start.iLine; 526 | if(line>0) 527 | { 528 | string linetext = (MainTabControl.SelectedTab.Controls[0] as FastColoredTextBox).Lines[line]; 529 | string linetext2 = (MainTabControl.SelectedTab.Controls[0] as FastColoredTextBox).Lines[line-1]; 530 | (MainTabControl.SelectedTab.Controls[0] as FastColoredTextBox).Selection = new Range((MainTabControl.SelectedTab.Controls[0] as FastColoredTextBox), line); 531 | (MainTabControl.SelectedTab.Controls[0] as FastColoredTextBox).SelectedText = linetext2; 532 | (MainTabControl.SelectedTab.Controls[0] as FastColoredTextBox).Selection = new Range((MainTabControl.SelectedTab.Controls[0] as FastColoredTextBox), line-1); 533 | (MainTabControl.SelectedTab.Controls[0] as FastColoredTextBox).SelectedText = linetext; 534 | } 535 | } 536 | 537 | private void lineDownToolStripMenuItem_Click(object sender, EventArgs e) 538 | { 539 | int line = (MainTabControl.SelectedTab.Controls[0] as FastColoredTextBox).Selection.Start.iLine; 540 | if (line < (MainTabControl.SelectedTab.Controls[0] as FastColoredTextBox).LinesCount-1) 541 | { 542 | string linetext = (MainTabControl.SelectedTab.Controls[0] as FastColoredTextBox).Lines[line]; 543 | string linetext2 = (MainTabControl.SelectedTab.Controls[0] as FastColoredTextBox).Lines[line + 1]; 544 | (MainTabControl.SelectedTab.Controls[0] as FastColoredTextBox).Selection = new Range((MainTabControl.SelectedTab.Controls[0] as FastColoredTextBox), line); 545 | (MainTabControl.SelectedTab.Controls[0] as FastColoredTextBox).SelectedText = linetext2; 546 | (MainTabControl.SelectedTab.Controls[0] as FastColoredTextBox).Selection = new Range((MainTabControl.SelectedTab.Controls[0] as FastColoredTextBox), line + 1); 547 | (MainTabControl.SelectedTab.Controls[0] as FastColoredTextBox).SelectedText = linetext; 548 | } 549 | } 550 | 551 | private void closePageToolStripMenuItem_Click(object sender, EventArgs e) 552 | { 553 | if (MainTabControl.SelectedTab.Text[MainTabControl.SelectedTab.Text.Length-1]=='*') 554 | { 555 | var confirmResult = MessageBox.Show("Do you want to save changes?", "", MessageBoxButtons.YesNo); 556 | if (confirmResult == DialogResult.Yes) 557 | { 558 | saveFileToolStripMenuItem_Click(sender, e); 559 | } 560 | } 561 | MainTabControl.TabPages.Remove(MainTabControl.SelectedTab); 562 | } 563 | 564 | #endregion 565 | 566 | #region treeviewcontextmenu 567 | private void excludeToolStripMenuItem_Click(object sender, EventArgs e) 568 | { 569 | SelectedFileName = ProjectTreeView.SelectedNode.Text; 570 | for (int i = 0; i < MainTabControl.TabPages.Count; i++) 571 | { 572 | if (MainTabControl.TabPages[i].Text == SelectedFileName) 573 | { 574 | MainTabControl.TabPages.RemoveAt(i); 575 | break; 576 | } 577 | } 578 | ExcludeFile.Invoke(sender, e); 579 | RefreshTreeView(); 580 | } 581 | 582 | private void removeToolStripMenuItem_Click(object sender, EventArgs e) 583 | { 584 | SelectedFileName = ProjectTreeView.SelectedNode.Text; 585 | for (int i = 0; i < MainTabControl.TabPages.Count; i++) 586 | { 587 | if (MainTabControl.TabPages[i].Text == SelectedFileName) 588 | { 589 | MainTabControl.TabPages.RemoveAt(i); 590 | break; 591 | } 592 | } 593 | RemoveFile.Invoke(sender, e); 594 | RefreshTreeView(); 595 | } 596 | 597 | private void ProjectTreeView_MouseDown(object sender, MouseEventArgs e) 598 | { 599 | if (e.Button != MouseButtons.Right) return; 600 | 601 | TreeNode node_here = ProjectTreeView.GetNodeAt(e.X, e.Y); 602 | ProjectTreeView.SelectedNode = node_here; 603 | 604 | if (node_here == null) return; 605 | } 606 | 607 | #endregion 608 | 609 | #region projectcontextmenu 610 | 611 | private void addNewFileToolStripMenuItem1_Click(object sender, EventArgs e) 612 | { 613 | newFileToolStripMenuItem_Click(sender, e); 614 | } 615 | 616 | private void buildToolStripMenuItem1_Click(object sender, EventArgs e) 617 | { 618 | buildToolStripMenuItem_Click(sender, e); 619 | } 620 | 621 | private void runToolStripMenuItem1_Click(object sender, EventArgs e) 622 | { 623 | runToolStripMenuItem_Click(sender, e); 624 | } 625 | 626 | private void closeProjectToolStripMenuItem1_Click(object sender, EventArgs e) 627 | { 628 | closeProjectToolStripMenuItem_Click(sender, e); 629 | } 630 | 631 | #endregion 632 | 633 | #region window 634 | private void MainWindow_FormClosing(object sender, FormClosingEventArgs e) 635 | { 636 | if (Project.Name != null) 637 | { 638 | var confirmResult = MessageBox.Show("Do you want to save changes?", "", MessageBoxButtons.YesNo); 639 | if (confirmResult == DialogResult.Yes) 640 | { 641 | saveAllFilesToolStripMenuItem_Click(sender, e); 642 | } 643 | } 644 | } 645 | #endregion 646 | 647 | bool IShow.ShowDialog() 648 | { 649 | return this.ShowDialog() == DialogResult.OK; 650 | } 651 | } 652 | } 653 | -------------------------------------------------------------------------------- /CSharpIDE/Views/MainWindow.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 17, 17 122 | 123 | 124 | 125 | 126 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAIFJREFUOE/l 127 | jcsNgDAMQzsH43QvZkNiClbgBFx6DXIVV6FKqyKOWHrqJ7YTrFJKQvRrTDa4zlO5A7X0ZYP1qZa2YAL7 128 | tuQQwZsztfqCwQa9t1p9cYsXHKGUMFSfMcYmjwJSb/eCBPNcQNngeVxd3AIInxh6IcsfCkZoFrwhiHxB 129 | wg2E1Uvx1CE3UgAAAABJRU5ErkJggg== 130 | 131 | 132 | 133 | 134 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO 135 | xAAADsQBlSsOGwAAAMdJREFUOE9j+P//P0WY4du3b/8pwWADnJycyMKDzIAP7z+ShKlvwKdPn8ECyPjj 136 | h09YNYMwVhd8/vzlv17R2v8MwXP+x0zYh9cQFANSUlL+f/ny5f/Xr1//P3/zAcUQkBhBA+btOP+fP3YR 137 | WBM67lp//v8XoMvwGgDSDLLt+qPXYMGcWYfBmkEuefb6PYZmDANAineefQAWABmE0PyBuDCAueDE9adg 138 | QRgGhQ1IIS4MN2Dl4VvwMEA2gBjMAAJARj+GIFGAgQEAVPbtp6sx/pwAAAAASUVORK5CYII= 139 | 140 | 141 | 142 | 143 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAJRJREFUOE/t 144 | kMsNgCAQRKnDKqyBvrzSlolV2IIn9cIVHWTX5SMSz27yRGTmaVRyrLWOCI+q41yIyeI0dHwPrkR5IgEV 145 | 0/VKlMcLEALLPPoSgT2dhXw2LJDF0l6wnvShH38BeCpqrT3GGOxZ0vQPtnVnUkkkINK3pwIpYQGNLCIo 146 | yxKcIZMJaH7BLajxKmjBC3D5jlMHobhVGh8R3fQAAAAASUVORK5CYII= 147 | 148 | 149 | 150 | 151 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAPtJREFUOE9j 152 | AIFv374ZAPF7IP6PhEF8A7ACYgBIMUiTXtHa/wzBc/7HTNhHvCFARf1ADLb5+ZsP/0kyBKR55eFb//lj 153 | F4E1oeOu9edhXsKKQQaANYNsu/7oNVgQxAZpBrkExL+zrQorhhsAUrzz7AMUzVDng/GH9x8xMIoB6C5A 154 | xtg0gzCyAf0g22FhQEgjDMMNgAYkXCMMY9OEjFG8AMJ3dzViVYgLoxhwb1cTWAAfBlnw7sUjrAbMf3Zu 155 | JYYGbPjRiflYDXD4+Oo+hmJc+PXDy6gGQAPx/sNDEzEUY8P393ZiNaDgzb0TGIpx4WeXt4FpZAMEQBzS 156 | 8bf/AO4d/gCMoglQAAAAAElFTkSuQmCC 157 | 158 | 159 | 160 | 161 | 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 208 | uAHk4/8MAP4fvt/BiqjtAAAAAElFTkSuQmCC 209 | 210 | 211 | 212 | 213 | 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 261 | P1AAAAAASUVORK5CYII= 262 | 263 | 264 | 265 | 266 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m 267 | dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAANpSURBVDhPZZF9TBN3GMdP0gBVWrAtbS0OGrFyFe68 268 | FvijtBC0XKltk2WpEhFjNJBp2EBDgQpo0RgUlIxoNGqIif6he0uWZW7L/lKzZL4rmTGR2QxFeSlIW1qv 269 | pWuXPnuuWZlxl3zz3O95vp/neX53xIumptWPzeaRZ5s3Pz9HUR5KJMoDAOJDjRsMuVO1tX0LFov3S4oa 270 | +kwul1UIhSuIJxbL8Ivubm56eBheu1zhkzR9oqWgQPQ+HDQaxX9arT2B3t5wbGQEFtvbI98wzGiZQFBE 271 | PDUYJt8cOQJvPB7wDw6Cr6NjcXDTplOSjIxcHh7T6fI4u93ztrv7HTc0BNH+fkh2dcHv1dWzRoGgmbhE 272 | UQOTe/cuzR06BLO9vRA+fhym2tqCLpI89mlurgqv1glud2gR87G+Pki6XDDmcES35+ffyCYIK1GYk7P6 273 | mFZ7emb37mjw4EGY7+yEyOHD8LK52f/Qbr8z29o6HUN4qacH4MABeGKzRawSyXcEDxOEOHVHuUAgObph 274 | w+nXTicX2rcvGUBjFCcttbdDqKUFuMZGiDudybG6uohDofgeQRaVzbPLHwofWZdafdS7detcyOEAv9EI 275 | wdJSWFSpgFMo4HZxcaBeKv0KfXWozGUu/cJroLq68D5N3w9KpTAvEMAcloOocE4OXCbJcZVSuf19P6// 276 | Dm73Gt/OnQOvVCqfD9MLqMC/cU4ohGckGTxpMn1RqdXK/9cg0Nqq5HbtuvhXSUkigJPfYpoTiSCC6/Ow 277 | F89T2dkwU17+7jzLnqU1GuVyg8D+/Wp/Y+MFn1qdnEajHxVF+CnDcD/V1r76gySjL7Oy4DfMj2GcqKiI 278 | nzWbz5g0GlWqQaih4cp8URHwa/NwAuEJnS7eTNM/MOvX7xmpqro4wzDRh5mZ8CPWf8X4vLw8fs1iGS2V 279 | y9cRHMv6FzIyUmvHEJ7U6xNtev3NLKHQxk8wbNz40RWWPT/BMEu3EP4afQ9kMvDa7X9/UlLyOXFjy5ZT 280 | QYqKJpRKmNLrkyl45cqP0/+ZV01ZWcGo2XxhXKeL3UP4Z6024dbpHqwVi5uIDpMp/xeb7eoMy4Y9lZV3 281 | EXYiLEzDaVVpNIXfsux1b319vIumH+WJxTvQJ0kV+2tq1jXgOrJVq7bxyQ/htKzFxVonSboVItEe9EkB 282 | gPgH0/f87qQKSvgAAAAASUVORK5CYII= 283 | 284 | 285 | 286 | 287 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO 288 | wwAADsMBx2+oZAAAARNJREFUOE+Vkj2OgzAQRn2EPcIeIWegR9qWU3CFvUEOQ09PlS3olyLZhiKJ+Csd 289 | PzNDDCSW9pNG2PO98YwtTKi+7w/jOF4Jpw9JG9aah5H0XgB5ntuiKOwwDN+SNqzJ4cFIei9n2iRJbJZl 290 | HqSzdieHByP4XiGoU2j38GDB9wIuy3IFh4dWVbW62kt1XffLXXUK7U4OT7D3ch2+6rpeptDu5PAEiyuc 291 | 4l/dEa/etq0vvJz/fLCOvj5ywBGIeHdAEEcpm0WCO6Zp6uFYwMCuDuFUjNPpx96ud/8FZhKdJvRgqZHy 292 | 5x8IoMG+aRofrzxqpmn6XA7YTqBdYp4vRm6zegO+es+YJ+WzBF66hr/s1mM/O8Y8AKj29kGG9z1nAAAA 293 | AElFTkSuQmCC 294 | 295 | 296 | 297 | 298 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO 299 | xAAADsQBlSsOGwAAAFpJREFUOE/tkksKwDAIRD2b979L2o3bKZZ8QBI7LVl24BEU560iACTGzMBwd1cC 300 | VU2hBEc5p+wX+MCQCnyZQQnaQeQXjIK/jU+CyGtB/Wc9+wUZjwKG2usBIBcLsdOjzbsLeQAAAABJRU5E 301 | rkJggg== 302 | 303 | 304 | 305 | 306 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO 307 | xAAADsQBlSsOGwAAAIhJREFUOE/tjcENgCAMRR3BUZyBKRiOXRzBJdQLB/TCtfZXTEwoBI1Hm7wEPr+P 308 | TpsY48CMDCUmZOlZhogEdbgcnHNkrRVwRsb0qVIWcEl+xeIyrwLO3nvJUy0XXIvAGJMJkN07qgClFqqC 309 | LexVvhfgUqNJgFDjkaBULOW/QBFolN4ywRtOAXUHNgDU6Dh53sUAAAAASUVORK5CYII= 310 | 311 | 312 | 313 | 314 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAJRJREFUOE/t 315 | kMsNgCAQRKnDKqyBvrzSlolV2IIn9cIVHWTX5SMSz27yRGTmaVRyrLWOCI+q41yIyeI0dHwPrkR5IgEV 316 | 0/VKlMcLEALLPPoSgT2dhXw2LJDF0l6wnvShH38BeCpqrT3GGOxZ0vQPtnVnUkkkINK3pwIpYQGNLCIo 317 | yxKcIZMJaH7BLajxKmjBC3D5jlMHobhVGh8R3fQAAAAASUVORK5CYII= 318 | 319 | 320 | 321 | 322 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO 323 | wwAADsMBx2+oZAAAAKBJREFUOE+1kMENgCAMRR3JGbizBYN4Ygq2YBAvjAJcMd9Y0hQUNdrkp+1v+4JO 324 | PHLOa4xxPuqilNqFGh5m2EHdDSxCKaVFAsiDjvU2MDTGlBDCvsgB8DAbAujIOdethwBrbV2WwqwBwJDy 325 | 3hetdT1EDa+3W58tB/TN/J9w0c0pYKQuAJnDrnrK3wKe6BKAnnuyJw/5H8AdNYA3qoD3ymUDT3a7lRlk 326 | 7YwAAAAASUVORK5CYII= 327 | 328 | 329 | 330 | 331 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO 332 | wwAADsMBx2+oZAAAAJ1JREFUOE9jQAbfvn07/+XLFwMol3QANOA/EL///v17AlSINAAyIGZexP97L+/9 333 | //r16/z3798LQKWIAyADLLpM/rtMdPi/+8pOkGtI8xLMABju3tlJmpfQDQBhkryEbMC5O+f+R88NB7OJ 334 | 9hKyAR/ef/z/9OXT/7UbquFiBL1EVQMo9gIMkx2IIEx2NFKUkChOyiQ5GR2Q7GQGBgYA9iM1vHWiKSMA 335 | AAAASUVORK5CYII= 336 | 337 | 338 | 339 | 340 | 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 389 | 390 | 391 | 392 | 153, 17 393 | 394 | 395 | 396 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 397 | YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACASURBVDhP5Y27DYAwEEMzB+NkL2ZDYgpWoAKatCBH5+iI 398 | HBRosfSUz9m+4JVSOol99ckH53Eod2CWZ/lgfZqlLZjAukw5RPDmzKxaMPigeptVi1tUsIdSwlB9xhib 399 | 3ApIvV0FCea5gPLBfTsekQUQPjFUIc8fCnpoFrzBYl8VwgVaqxwhPungeAAAAABJRU5ErkJggg== 400 | 401 | 402 | 403 | 404 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 405 | YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADBSURBVDhPY6AYfPv27T8lGGyAk5MTWXiQGfDh/UeSMPUN 406 | +PTpM1gAGX/88AmrZhDG6oLPn7/81yta+58heM7/mAn78BqCYkBKSsr/L1++/P/69ev/528+oBgCEiNo 407 | wLwd5//zxy4Ca0LHXevP//8CdBleA0CaQbZdf/QaLJgz6zBYM8glz16/x9CMYQBI8c6zD8ACIIMQmj8Q 408 | FwYwF5y4/hQsCMOgsAEpxIXhBqw8fAseBsgGEINhObIfQ5AowMAAAAbyvdeBCXL+AAAAAElFTkSuQmCC 409 | 410 | 411 | 412 | 413 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 414 | YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACMSURBVDhP7Y3BCYAwFEM7h1M4Q/fy2rUEp3AFT1UovSrR 415 | /22orQpeDTxqNS8aToxxVeTVu7A4dM35DKRyHxbzUyr1oASmsd8lBXf9JtVyUGCxdCd8CKEV9QgXaqK1 416 | dsc5h3t5RKX8nP1yUh1BUcn/ng/wiOgpLKLIMoNv6Ih2zT+QBu54HHiD1L/EmA2wn/hWQ4oVCwAAAABJ 417 | RU5ErkJggg== 418 | 419 | 420 | 421 | 422 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 423 | YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEISURBVDhPlZC7CsIwFIZ9A30S8RF8B1d9B3F0000XdRcK 424 | bg7iVrCggy5d1MFBEG1thyoqpqW3MfaEpjQm9RL4aHM4/3eS5GB5nlcKggBF4BQI6qThl0UlxcYE5ypD 425 | XO0vfpdEjb14Kr48bPyXBMLj1QHnayMSeqc73dIrCQEBCcO0vXknRfiHMJwE9ke5KSQRQPNsfWbC8fEJ 426 | NnI4GMH7CdKIwkBa0IPp9A2+BSmJIH7IJEgRhdIwVwBOSkvYmAUj0JQ2KXwCBjyvJi/wfV+yNmMuIMJU 427 | JV4QhmHZuelccxZ3Y8cKYLmuqxvLAdcsQp93eEF0jfpDU7nmLKydTL6JACFUgM3/BPgFb2b9wUqYs/wA 428 | AAAASUVORK5CYII= 429 | 430 | 431 | 432 | 433 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 434 | YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABRSURBVDhPY6AK+Pbt239S8NevX+dDtUIASJAheA4cf3j/ 435 | EY6RxUB0zIR9mIaQYgAIwwyBaifdABAm2gBkjKyGtgYQg0cNGJQGkIOh2ikBDAwAR/4LjdUkCHIAAAAA 436 | SUVORK5CYII= 437 | 438 | 439 | 440 | 441 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 442 | YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACBSURBVDhPY8AFvn379h8Pfv/lyxcDqFLsAKSQIXgOGH94 443 | /xGMYeyYCfsIG4LPABANMwSqHBNgMwDZIBAGq8EFkA2wqdqIgkk2ABcGqwERuPCsnVewaoRhkBq8gQUK 444 | KHyGEDQAROMzBKcByAbBFOLCxAcWLjBqAMQAYjBUORpgYAAATWQCY5khhWoAAAAASUVORK5CYII= 445 | 446 | 447 | 448 | 449 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 450 | YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAETSURBVDhPlZI9joMwEEZ9hD3CHiFnoEfallNwhb1BDkNP 451 | T5Ut6Jci2YYiifgrHT8zQwwklvaTRtjzvfGMLUyovu8P4zheCacPSRvWmoeR9F4AeZ7boijsMAzfkjas 452 | yeHBSHovZ9okSWyWZR6ks3Ynhwcj+F4hqFNo9/BgwfcCLstyBYeHVlW1utpLdV33y111Cu1ODk+w93Id 453 | vuq6XqbQ7uTwBIsrnOJf3RGv3ratL7yc/3ywjr4+csARiHh3QBBHKZtFgjumaerhWMDArg7hVIzT6cfe 454 | rnf/BWYSnSb0YKmR8ucfCKDBvmkaH688aqZp+lwO2E6gXWKeL0Zus3oDvnrPmCflswReuoa/7NZjPzvG 455 | PACo9vZBhvc9ZwAAAABJRU5ErkJggg== 456 | 457 | 458 | 459 | 460 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 461 | YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABVSURBVDhP7YxBCgAgCAR9m///S3XxWghGUWJLdGxhkHId 462 | 8iIiFcHqe3TJzCGQIKfi8l6gD4RQoJ8RkKAXVr5gHOjsXAlW7BwXWH3PM0HEUYBg9SlEDZN0dAOhJqHd 463 | AAAAAElFTkSuQmCC 464 | 465 | 466 | 467 | 468 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 469 | YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACKSURBVDhP7Y3LDYAgEEQpwVKsgSoojl4swSbUCwc0Aa7q 470 | 4BJN+IjGo5O8ZJndGVhKxpjWWts551aih0fre+0BLaVchRAezPB2NXSSV/gVwXGYPJiVUt6ns1ghCDjn 471 | UQG86w3FToVgDcWCWS9Fvi/Ao0RVAcwUjwpyhzmf4n8BFApS5HZRwRuONGMbrIJ1JIN8O2QAAAAASUVO 472 | RK5CYII= 473 | 474 | 475 | 476 | 477 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 478 | YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACgSURBVDhPtZDBDYAgDEUdyRm4swWDeGIKtmAQL4wCXDHf 479 | WNIUFDXa5Kftb/uCTjxyzmuMcT7qopTahRoeZthB3Q0sQimlRQLIg471NjA0xpQQwr7IAfAwGwLoyDnX 480 | rYcAa21dlsKsAcCQ8t4XrXU9RA2vt1ufLQf0zfyfcNHNKWCkLgCZw656yt8CnugSgJ57sicP+R/AHTWA 481 | N6qA98plA092u5UZZO2MAAAAAElFTkSuQmCC 482 | 483 | 484 | 485 | 486 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 487 | YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACdSURBVDhPY0AG3759O//lyxcDKJd0ADTgPxC///79ewJU 488 | iDQAMiBmXsT/ey/v/f/69ev89+/fC0CliAMgAyy6TP67THT4v/vKTpBrSPMSzAAY7t7ZSZqX0A0AYZK8 489 | hGzAuTvn/kfPDQezifYSsgEf3n/8//Tl0/+1G6rhYgS9RFUDKPYCDJMdiCBMdjRSlJAoTsokORkdkOxk 490 | BgYGAPYjNbx1oikjAAAAAElFTkSuQmCC 491 | 492 | 493 | 494 | 495 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 496 | YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABUSURBVDhPvY5RCgAgCEM7m/c/j7+FMQliCJY1eD+yN2yq 497 | 2m+YAyJyRN3ADW0PK0VAW7Eje5fxbiADtLzoQM+97tQPnACdhwk7qPJYgb3u/BmI0T4Ao0RiAwtknZYA 498 | AAAASUVORK5CYII= 499 | 500 | 501 | 502 | 258, 17 503 | 504 | 505 | 506 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO 507 | xAAADsQBlSsOGwAAAMhJREFUOE/Fkr0NwjAQRj0CBQNkBGbIPPRs4Cm8Q0ahRKJykw4phFzcHr74TBzj 508 | n1DxSa9I5O/5lItARGGMwQpXy0Gk4gVt22ZRSnlJw7U1oeA5jF94iZSSJIPlxFWXvYJQwlWXXwQEneWq 509 | S00Q8j/Ba5wQAJYy01ncRmoCmAAflzP2R/GBnm2HNtIUBXRzXI4kXVFAY6fKHuoVBTPMy8FU6D3cb1tB 510 | jNZ6c2PMZoIcu75BLvZAYxliCZfXLZTCEtp7OBn/B0K8AamwnoxTTW2KAAAAAElFTkSuQmCC 511 | 512 | 513 | 514 | 515 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO 516 | xAAADsQBlSsOGwAAAVdJREFUOE+lk7FKw1AUhn0BwQdwcHJwEpzcsjkJmZ06+AABfYDqA1h3h+AiHQrS 517 | xUkoOjiIEFwERSgOtoqDdcl6/b+bc9OmJHbwhx+Sc/7z33NyT5acc/9iiTzP18S2mIgrFq6AuJiKA2Mr 518 | JKKfz7F7PDv11PtQrJjoPZ58jL4fTo7d2+01mqzU6CGl8Hx92fPu6ADBpeU4tTPK7l0v2nD93W2HkWKb 519 | vhjMG0A7hZGGT93UXWytemKkWGylBRTwI+AeDBATo5s508TKqlCiVWcSnulCmtTk9agzgTeH+xRPP1oT 520 | FhgMTFYPCTpfr8+LRmicP+XrzhZgRDfcezCzG5heH2gqtruOxYzTibMHk/F7dcm4mlAIMeJkiSLyiMUU 521 | HbmrvR1yfsk8Qouh2NosdnwGiiXk6IKaUhOc/yoOUC5iNEZ86XeLdaZA5AW2TdsIafhr2Qkdlme/FMP+ 522 | sdnP7QgAAAAASUVORK5CYII= 523 | 524 | 525 | 526 | 433, 17 527 | 528 | 529 | 530 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO 531 | wwAADsMBx2+oZAAAARNJREFUOE+Vkj2OgzAQRn2EPcIeIWegR9qWU3CFvUEOQ09PlS3olyLZhiKJ+Csd 532 | PzNDDCSW9pNG2PO98YwtTKi+7w/jOF4Jpw9JG9aah5H0XgB5ntuiKOwwDN+SNqzJ4cFIei9n2iRJbJZl 533 | HqSzdieHByP4XiGoU2j38GDB9wIuy3IFh4dWVbW62kt1XffLXXUK7U4OT7D3ch2+6rpeptDu5PAEiyuc 534 | 4l/dEa/etq0vvJz/fLCOvj5ywBGIeHdAEEcpm0WCO6Zp6uFYwMCuDuFUjNPpx96ud/8FZhKdJvRgqZHy 535 | 5x8IoMG+aRofrzxqpmn6XA7YTqBdYp4vRm6zegO+es+YJ+WzBF66hr/s1mM/O8Y8AKj29kGG9z1nAAAA 536 | AElFTkSuQmCC 537 | 538 | 539 | 540 | 541 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO 542 | xAAADsQBlSsOGwAAAFpJREFUOE/tkksKwDAIRD2b979L2o3bKZZ8QBI7LVl24BEU560iACTGzMBwd1cC 543 | VU2hBEc5p+wX+MCQCnyZQQnaQeQXjIK/jU+CyGtB/Wc9+wUZjwKG2usBIBcLsdOjzbsLeQAAAABJRU5E 544 | rkJggg== 545 | 546 | 547 | 548 | 549 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO 550 | xAAADsQBlSsOGwAAAIhJREFUOE/tjcENgCAMRR3BUZyBKRiOXRzBJdQLB/TCtfZXTEwoBI1Hm7wEPr+P 551 | TpsY48CMDCUmZOlZhogEdbgcnHNkrRVwRsb0qVIWcEl+xeIyrwLO3nvJUy0XXIvAGJMJkN07qgClFqqC 552 | LexVvhfgUqNJgFDjkaBULOW/QBFolN4ywRtOAXUHNgDU6Dh53sUAAAAASUVORK5CYII= 553 | 554 | 555 | 556 | 557 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO 558 | xAAADsQBlSsOGwAAAJlJREFUOE+lktENgCAMRJmN4VjDLfmttmnJXalR4yWXUOQ9E6WJyK/ykDLnPLQ+ 559 | rhBDA8Rh8ZKEGBo8AY8xrFlCDA1XEO69W7OEGBwquJIgkwUlHA0JMpsAD1frV4J4E0IheRQEnAX4DJlN 560 | 4LWPmQTrXiBTCexX6RoFvmcSZLJgXZZKoNEzyJAAcyfQEEMDRCGsb1uIweF7pZ0wbIqJ5IDpuQAAAABJ 561 | RU5ErkJggg== 562 | 563 | 564 | 565 | 566 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO 567 | xAAADsQBlSsOGwAAAKFJREFUOE+lkUEKwzAMBPM2P87f6C99dbPCKrOKS1K6IGI5O0NpjjnnX+MLMsaY 568 | nHUdMcYWRFBrLeax4Cy+VuerQB0yVaBySHYCvdOZzE4QEj0pyDsNmYug955AFXzekbkIBGSRAt3lmcxW 569 | kJLd+VbAcp38ZWSqIP6onSRhdciYgJ+KEsLqGGPLCiUVVoyxBUlJhRVjbClZEoMVY7j8PvN4A80ziomU 570 | 990nAAAAAElFTkSuQmCC 571 | 572 | 573 | 574 | 575 | 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 622 | uAHk4/8MAP4fvt/BiqjtAAAAAElFTkSuQmCC 623 | 624 | 625 | 626 | 627 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m 628 | dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAANpSURBVDhPZZF9TBN3GMdP0gBVWrAtbS0OGrFyFe68 629 | FvijtBC0XKltk2WpEhFjNJBp2EBDgQpo0RgUlIxoNGqIif6he0uWZW7L/lKzZL4rmTGR2QxFeSlIW1qv 630 | pWuXPnuuWZlxl3zz3O95vp/neX53xIumptWPzeaRZ5s3Pz9HUR5KJMoDAOJDjRsMuVO1tX0LFov3S4oa 631 | +kwul1UIhSuIJxbL8Ivubm56eBheu1zhkzR9oqWgQPQ+HDQaxX9arT2B3t5wbGQEFtvbI98wzGiZQFBE 632 | PDUYJt8cOQJvPB7wDw6Cr6NjcXDTplOSjIxcHh7T6fI4u93ztrv7HTc0BNH+fkh2dcHv1dWzRoGgmbhE 633 | UQOTe/cuzR06BLO9vRA+fhym2tqCLpI89mlurgqv1glud2gR87G+Pki6XDDmcES35+ffyCYIK1GYk7P6 634 | mFZ7emb37mjw4EGY7+yEyOHD8LK52f/Qbr8z29o6HUN4qacH4MABeGKzRawSyXcEDxOEOHVHuUAgObph 635 | w+nXTicX2rcvGUBjFCcttbdDqKUFuMZGiDudybG6uohDofgeQRaVzbPLHwofWZdafdS7detcyOEAv9EI 636 | wdJSWFSpgFMo4HZxcaBeKv0KfXWozGUu/cJroLq68D5N3w9KpTAvEMAcloOocE4OXCbJcZVSuf19P6// 637 | Dm73Gt/OnQOvVCqfD9MLqMC/cU4ohGckGTxpMn1RqdXK/9cg0Nqq5HbtuvhXSUkigJPfYpoTiSCC6/Ow 638 | F89T2dkwU17+7jzLnqU1GuVyg8D+/Wp/Y+MFn1qdnEajHxVF+CnDcD/V1r76gySjL7Oy4DfMj2GcqKiI 639 | nzWbz5g0GlWqQaih4cp8URHwa/NwAuEJnS7eTNM/MOvX7xmpqro4wzDRh5mZ8CPWf8X4vLw8fs1iGS2V 640 | y9cRHMv6FzIyUmvHEJ7U6xNtev3NLKHQxk8wbNz40RWWPT/BMEu3EP4afQ9kMvDa7X9/UlLyOXFjy5ZT 641 | QYqKJpRKmNLrkyl45cqP0/+ZV01ZWcGo2XxhXKeL3UP4Z6024dbpHqwVi5uIDpMp/xeb7eoMy4Y9lZV3 642 | EXYiLEzDaVVpNIXfsux1b319vIumH+WJxTvQJ0kV+2tq1jXgOrJVq7bxyQ/htKzFxVonSboVItEe9EkB 643 | gPgH0/f87qQKSvgAAAAASUVORK5CYII= 644 | 645 | 646 | 647 | 578, 17 648 | 649 | 650 | 651 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAJRJREFUOE/t 652 | kMsNgCAQRKnDKqyBvrzSlolV2IIn9cIVHWTX5SMSz27yRGTmaVRyrLWOCI+q41yIyeI0dHwPrkR5IgEV 653 | 0/VKlMcLEALLPPoSgT2dhXw2LJDF0l6wnvShH38BeCpqrT3GGOxZ0vQPtnVnUkkkINK3pwIpYQGNLCIo 654 | yxKcIZMJaH7BLajxKmjBC3D5jlMHobhVGh8R3fQAAAAASUVORK5CYII= 655 | 656 | 657 | 658 | 659 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO 660 | wwAADsMBx2+oZAAAAKBJREFUOE+1kMENgCAMRR3JGbizBYN4Ygq2YBAvjAJcMd9Y0hQUNdrkp+1v+4JO 661 | PHLOa4xxPuqilNqFGh5m2EHdDSxCKaVFAsiDjvU2MDTGlBDCvsgB8DAbAujIOdethwBrbV2WwqwBwJDy 662 | 3hetdT1EDa+3W58tB/TN/J9w0c0pYKQuAJnDrnrK3wKe6BKAnnuyJw/5H8AdNYA3qoD3ymUDT3a7lRlk 663 | 7YwAAAAASUVORK5CYII= 664 | 665 | 666 | 667 | 668 | iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO 669 | wwAADsMBx2+oZAAAAJ1JREFUOE9jQAbfvn07/+XLFwMol3QANOA/EL///v17AlSINAAyIGZexP97L+/9 670 | //r16/z3798LQKWIAyADLLpM/rtMdPi/+8pOkGtI8xLMABju3tlJmpfQDQBhkryEbMC5O+f+R88NB7OJ 671 | 9hKyAR/ef/z/9OXT/7UbquFiBL1EVQMo9gIMkx2IIEx2NFKUkChOyiQ5GR2Q7GQGBgYA9iM1vHWiKSMA 672 | AAAASUVORK5CYII= 673 | 674 | 675 | 676 | 677 | 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 726 | 727 | 728 | -------------------------------------------------------------------------------- /CSharpIDE/Views/NewProjectWindow.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace CSharpIDE.Views 2 | { 3 | partial class NewProjectWindow 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.ProjectNameTxtBox = new System.Windows.Forms.TextBox(); 32 | this.label1 = new System.Windows.Forms.Label(); 33 | this.label2 = new System.Windows.Forms.Label(); 34 | this.ProjectPathTxtBox = new System.Windows.Forms.TextBox(); 35 | this.OKButton = new System.Windows.Forms.Button(); 36 | this.CancelButton = new System.Windows.Forms.Button(); 37 | this.ChooseFolderButton = new System.Windows.Forms.Button(); 38 | this.SuspendLayout(); 39 | // 40 | // ProjectNameTxtBox 41 | // 42 | this.ProjectNameTxtBox.Location = new System.Drawing.Point(15, 25); 43 | this.ProjectNameTxtBox.Name = "ProjectNameTxtBox"; 44 | this.ProjectNameTxtBox.Size = new System.Drawing.Size(178, 20); 45 | this.ProjectNameTxtBox.TabIndex = 0; 46 | this.ProjectNameTxtBox.TextChanged += new System.EventHandler(this.ProjectNameTxtBox_TextChanged); 47 | // 48 | // label1 49 | // 50 | this.label1.AutoSize = true; 51 | this.label1.Location = new System.Drawing.Point(12, 9); 52 | this.label1.Name = "label1"; 53 | this.label1.Size = new System.Drawing.Size(38, 13); 54 | this.label1.TabIndex = 1; 55 | this.label1.Text = "Name:"; 56 | // 57 | // label2 58 | // 59 | this.label2.AutoSize = true; 60 | this.label2.Location = new System.Drawing.Point(12, 48); 61 | this.label2.Name = "label2"; 62 | this.label2.Size = new System.Drawing.Size(39, 13); 63 | this.label2.TabIndex = 2; 64 | this.label2.Text = "Folder:"; 65 | // 66 | // ProjectPathTxtBox 67 | // 68 | this.ProjectPathTxtBox.Enabled = false; 69 | this.ProjectPathTxtBox.Location = new System.Drawing.Point(15, 64); 70 | this.ProjectPathTxtBox.Name = "ProjectPathTxtBox"; 71 | this.ProjectPathTxtBox.Size = new System.Drawing.Size(178, 20); 72 | this.ProjectPathTxtBox.TabIndex = 3; 73 | this.ProjectPathTxtBox.TextChanged += new System.EventHandler(this.ProjectPathTxtBox_TextChanged); 74 | // 75 | // OKButton 76 | // 77 | this.OKButton.DialogResult = System.Windows.Forms.DialogResult.OK; 78 | this.OKButton.Location = new System.Drawing.Point(15, 127); 79 | this.OKButton.Name = "OKButton"; 80 | this.OKButton.Size = new System.Drawing.Size(75, 23); 81 | this.OKButton.TabIndex = 5; 82 | this.OKButton.Text = "OK"; 83 | this.OKButton.UseVisualStyleBackColor = true; 84 | // 85 | // CancelButton 86 | // 87 | this.CancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; 88 | this.CancelButton.Location = new System.Drawing.Point(118, 127); 89 | this.CancelButton.Name = "CancelButton"; 90 | this.CancelButton.Size = new System.Drawing.Size(75, 23); 91 | this.CancelButton.TabIndex = 6; 92 | this.CancelButton.Text = "Cancel"; 93 | this.CancelButton.UseVisualStyleBackColor = true; 94 | // 95 | // ChooseFolderButton 96 | // 97 | this.ChooseFolderButton.Location = new System.Drawing.Point(15, 91); 98 | this.ChooseFolderButton.Name = "ChooseFolderButton"; 99 | this.ChooseFolderButton.Size = new System.Drawing.Size(178, 23); 100 | this.ChooseFolderButton.TabIndex = 7; 101 | this.ChooseFolderButton.Text = "Choose Folder"; 102 | this.ChooseFolderButton.UseVisualStyleBackColor = true; 103 | this.ChooseFolderButton.Click += new System.EventHandler(this.ChooseFolderButton_Click); 104 | // 105 | // NewProjectWindow 106 | // 107 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 108 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 109 | this.ClientSize = new System.Drawing.Size(205, 162); 110 | this.Controls.Add(this.ChooseFolderButton); 111 | this.Controls.Add(this.CancelButton); 112 | this.Controls.Add(this.OKButton); 113 | this.Controls.Add(this.ProjectPathTxtBox); 114 | this.Controls.Add(this.label2); 115 | this.Controls.Add(this.label1); 116 | this.Controls.Add(this.ProjectNameTxtBox); 117 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; 118 | this.Name = "NewProjectWindow"; 119 | this.Text = "Create New Project"; 120 | this.ResumeLayout(false); 121 | this.PerformLayout(); 122 | 123 | } 124 | 125 | #endregion 126 | 127 | private System.Windows.Forms.TextBox ProjectNameTxtBox; 128 | private System.Windows.Forms.Label label1; 129 | private System.Windows.Forms.Label label2; 130 | private System.Windows.Forms.TextBox ProjectPathTxtBox; 131 | private System.Windows.Forms.Button OKButton; 132 | private System.Windows.Forms.Button CancelButton; 133 | private System.Windows.Forms.Button ChooseFolderButton; 134 | } 135 | } -------------------------------------------------------------------------------- /CSharpIDE/Views/NewProjectWindow.cs: -------------------------------------------------------------------------------- 1 | using CSharpIDE.Models; 2 | using CSharpIDE.Views.Interfaces; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.ComponentModel; 6 | using System.Data; 7 | using System.Drawing; 8 | using System.Linq; 9 | using System.Text; 10 | using System.Threading.Tasks; 11 | using System.Windows.Forms; 12 | 13 | namespace CSharpIDE.Views 14 | { 15 | public partial class NewProjectWindow : Form, INewProjectWindow 16 | { 17 | public string ProjectName { get => ProjectNameTxtBox.Text; } 18 | public string ProjectPath { get => ProjectPathTxtBox.Text; set => ProjectPathTxtBox.Text = value; } 19 | 20 | public NewProjectWindow() 21 | { 22 | InitializeComponent(); 23 | OKButton.Enabled = false; 24 | } 25 | 26 | public event EventHandler ChooseFolder; 27 | 28 | bool IShow.ShowDialog() 29 | { 30 | return this.ShowDialog() == DialogResult.OK; 31 | } 32 | 33 | private void ProjectNameTxtBox_TextChanged(object sender, EventArgs e) 34 | { 35 | if(ProjectNameTxtBox.Text.Length>0 && ProjectPathTxtBox.Text.Length>0) 36 | { 37 | OKButton.Enabled = true; 38 | } 39 | else 40 | { 41 | OKButton.Enabled = false; 42 | } 43 | } 44 | 45 | private void ChooseFolderButton_Click(object sender, EventArgs e) 46 | { 47 | ChooseFolder.Invoke(ProjectPathTxtBox, e); 48 | } 49 | 50 | private void ProjectPathTxtBox_TextChanged(object sender, EventArgs e) 51 | { 52 | ProjectNameTxtBox_TextChanged(sender, e); 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /CSharpIDE/Views/NewProjectWindow.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /CSharpIDE/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /FilesForProject/MainFile.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | class Program 4 | { 5 | static void Main(string[] args) 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Images/Child.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXFFOO56566/Csharp-IDE-MVP-Design-Pattern/81196425cbb0fbd531049dde3d38f5eba3a00bb9/Images/Child.png -------------------------------------------------------------------------------- /Images/Parent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EXFFOO56566/Csharp-IDE-MVP-Design-Pattern/81196425cbb0fbd531049dde3d38f5eba3a00bb9/Images/Parent.png --------------------------------------------------------------------------------