Select the types of activity you want to include in your feed.
[READ-ONLY] Mirror of https://github.com/jackmawer/ServoUtility. Servo Utility, formally WhiteRose, is a cross-platform .NET library to build FreeSO update and launcher utilities.
···11+# Auto detect text files and perform LF normalization
22+* text=auto
33+44+# Custom for Visual Studio
55+*.cs diff=csharp
66+77+# Standard to msysgit
88+*.doc diff=astextplain
99+*.DOC diff=astextplain
1010+*.docx diff=astextplain
1111+*.DOCX diff=astextplain
1212+*.dot diff=astextplain
1313+*.DOT diff=astextplain
1414+*.pdf diff=astextplain
1515+*.PDF diff=astextplain
1616+*.rtf diff=astextplain
1717+*.RTF diff=astextplain
+303
.gitignore
···11+## Ignore Visual Studio temporary files, build results, and
22+## files generated by popular Visual Studio add-ons.
33+44+# User-specific files
55+*.suo
66+*.user
77+*.userosscache
88+*.sln.docstates
99+1010+# User-specific files (MonoDevelop/Xamarin Studio)
1111+*.userprefs
1212+1313+# Build results
1414+[Dd]ebug/
1515+[Dd]ebugPublic/
1616+[Rr]elease/
1717+[Rr]eleases/
1818+x64/
1919+x86/
2020+bld/
2121+[Bb]in/
2222+[Oo]bj/
2323+[Ll]og/
2424+2525+# Visual Studio 2015 cache/options directory
2626+.vs/
2727+# Uncomment if you have tasks that create the project's static files in wwwroot
2828+#wwwroot/
2929+3030+# MSTest test Results
3131+[Tt]est[Rr]esult*/
3232+[Bb]uild[Ll]og.*
3333+3434+# NUNIT
3535+*.VisualState.xml
3636+TestResult.xml
3737+3838+# Build Results of an ATL Project
3939+[Dd]ebugPS/
4040+[Rr]eleasePS/
4141+dlldata.c
4242+4343+# DNX
4444+project.lock.json
4545+artifacts/
4646+4747+*_i.c
4848+*_p.c
4949+*_i.h
5050+*.ilk
5151+*.meta
5252+*.obj
5353+*.pch
5454+*.pdb
5555+*.pgc
5656+*.pgd
5757+*.rsp
5858+*.sbr
5959+*.tlb
6060+*.tli
6161+*.tlh
6262+*.tmp
6363+*.tmp_proj
6464+*.log
6565+*.vspscc
6666+*.vssscc
6767+.builds
6868+*.pidb
6969+*.svclog
7070+*.scc
7171+7272+# Chutzpah Test files
7373+_Chutzpah*
7474+7575+# Visual C++ cache files
7676+ipch/
7777+*.aps
7878+*.ncb
7979+*.opendb
8080+*.opensdf
8181+*.sdf
8282+*.cachefile
8383+*.VC.db
8484+*.VC.VC.opendb
8585+8686+# Visual Studio profiler
8787+*.psess
8888+*.vsp
8989+*.vspx
9090+*.sap
9191+9292+# TFS 2012 Local Workspace
9393+$tf/
9494+9595+# Guidance Automation Toolkit
9696+*.gpState
9797+9898+# ReSharper is a .NET coding add-in
9999+_ReSharper*/
100100+*.[Rr]e[Ss]harper
101101+*.DotSettings.user
102102+103103+# JustCode is a .NET coding add-in
104104+.JustCode
105105+106106+# TeamCity is a build add-in
107107+_TeamCity*
108108+109109+# DotCover is a Code Coverage Tool
110110+*.dotCover
111111+112112+# NCrunch
113113+_NCrunch_*
114114+.*crunch*.local.xml
115115+nCrunchTemp_*
116116+117117+# MightyMoose
118118+*.mm.*
119119+AutoTest.Net/
120120+121121+# Web workbench (sass)
122122+.sass-cache/
123123+124124+# Installshield output folder
125125+[Ee]xpress/
126126+127127+# DocProject is a documentation generator add-in
128128+DocProject/buildhelp/
129129+DocProject/Help/*.HxT
130130+DocProject/Help/*.HxC
131131+DocProject/Help/*.hhc
132132+DocProject/Help/*.hhk
133133+DocProject/Help/*.hhp
134134+DocProject/Help/Html2
135135+DocProject/Help/html
136136+137137+# Click-Once directory
138138+publish/
139139+140140+# Publish Web Output
141141+*.[Pp]ublish.xml
142142+*.azurePubxml
143143+# TODO: Comment the next line if you want to checkin your web deploy settings
144144+# but database connection strings (with potential passwords) will be unencrypted
145145+*.pubxml
146146+*.publishproj
147147+148148+# Microsoft Azure Web App publish settings. Comment the next line if you want to
149149+# checkin your Azure Web App publish settings, but sensitive information contained
150150+# in these scripts will be unencrypted
151151+PublishScripts/
152152+153153+# NuGet Packages
154154+*.nupkg
155155+# The packages folder can be ignored because of Package Restore
156156+**/packages/*
157157+# except build/, which is used as an MSBuild target.
158158+!**/packages/build/
159159+# Uncomment if necessary however generally it will be regenerated when needed
160160+#!**/packages/repositories.config
161161+# NuGet v3's project.json files produces more ignoreable files
162162+*.nuget.props
163163+*.nuget.targets
164164+165165+# Microsoft Azure Build Output
166166+csx/
167167+*.build.csdef
168168+169169+# Microsoft Azure Emulator
170170+ecf/
171171+rcf/
172172+173173+# Windows Store app package directories and files
174174+AppPackages/
175175+BundleArtifacts/
176176+Package.StoreAssociation.xml
177177+_pkginfo.txt
178178+179179+# Visual Studio cache files
180180+# files ending in .cache can be ignored
181181+*.[Cc]ache
182182+# but keep track of directories ending in .cache
183183+!*.[Cc]ache/
184184+185185+# Others
186186+ClientBin/
187187+~$*
188188+*~
189189+*.dbmdl
190190+*.dbproj.schemaview
191191+*.pfx
192192+*.publishsettings
193193+node_modules/
194194+orleans.codegen.cs
195195+196196+# Since there are multiple workflows, uncomment next line to ignore bower_components
197197+# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
198198+#bower_components/
199199+200200+# RIA/Silverlight projects
201201+Generated_Code/
202202+203203+# Backup & report files from converting an old project file
204204+# to a newer Visual Studio version. Backup files are not needed,
205205+# because we have git ;-)
206206+_UpgradeReport_Files/
207207+Backup*/
208208+UpgradeLog*.XML
209209+UpgradeLog*.htm
210210+211211+# SQL Server files
212212+*.mdf
213213+*.ldf
214214+215215+# Business Intelligence projects
216216+*.rdl.data
217217+*.bim.layout
218218+*.bim_*.settings
219219+220220+# Microsoft Fakes
221221+FakesAssemblies/
222222+223223+# GhostDoc plugin setting file
224224+*.GhostDoc.xml
225225+226226+# Node.js Tools for Visual Studio
227227+.ntvs_analysis.dat
228228+229229+# Visual Studio 6 build log
230230+*.plg
231231+232232+# Visual Studio 6 workspace options file
233233+*.opt
234234+235235+# Visual Studio LightSwitch build output
236236+**/*.HTMLClient/GeneratedArtifacts
237237+**/*.DesktopClient/GeneratedArtifacts
238238+**/*.DesktopClient/ModelManifest.xml
239239+**/*.Server/GeneratedArtifacts
240240+**/*.Server/ModelManifest.xml
241241+_Pvt_Extensions
242242+243243+# Paket dependency manager
244244+.paket/paket.exe
245245+paket-files/
246246+247247+# FAKE - F# Make
248248+.fake/
249249+250250+# JetBrains Rider
251251+.idea/
252252+*.sln.iml
253253+254254+# =========================
255255+# Operating System Files
256256+# =========================
257257+258258+# OSX
259259+# =========================
260260+261261+.DS_Store
262262+.AppleDouble
263263+.LSOverride
264264+265265+# Thumbnails
266266+._*
267267+268268+# Files that might appear in the root of a volume
269269+.DocumentRevisions-V100
270270+.fseventsd
271271+.Spotlight-V100
272272+.TemporaryItems
273273+.Trashes
274274+.VolumeIcon.icns
275275+276276+# Directories potentially created on remote AFP share
277277+.AppleDB
278278+.AppleDesktop
279279+Network Trash Folder
280280+Temporary Items
281281+.apdisk
282282+283283+# Windows
284284+# =========================
285285+286286+# Windows image file caches
287287+Thumbs.db
288288+ehthumbs.db
289289+290290+# Folder config file
291291+Desktop.ini
292292+293293+# Recycle Bin used on file shares
294294+$RECYCLE.BIN/
295295+296296+# Windows Installer files
297297+*.cab
298298+*.msi
299299+*.msm
300300+*.msp
301301+302302+# Windows shortcuts
303303+*.lnk
+5
README.md
···11+# WhiteRose
22+33+
44+55+The WhiteRose library is a cross-platform .NET library to build FreeSO update utilities.
+24
UNLICENSE
···11+This is free and unencumbered software released into the public domain.
22+33+Anyone is free to copy, modify, publish, use, compile, sell, or
44+distribute this software, either in source code form or as a compiled
55+binary, for any purpose, commercial or non-commercial, and by any
66+means.
77+88+In jurisdictions that recognize copyright laws, the author or authors
99+of this software dedicate any and all copyright interest in the
1010+software to the public domain. We make this dedication for the benefit
1111+of the public at large and to the detriment of our heirs and
1212+successors. We intend this dedication to be an overt act of
1313+relinquishment in perpetuity of all present and future rights to this
1414+software under copyright law.
1515+1616+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
1717+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
1818+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
1919+IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
2020+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
2121+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
2222+OTHER DEALINGS IN THE SOFTWARE.
2323+2424+For more information, please refer to <http://unlicense.org/>
+23
WhiteRose.sln
···11+22+Microsoft Visual Studio Solution File, Format Version 12.00
33+# Visual Studio 2012
44+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WhiteRose", "WhiteRose\WhiteRose.csproj", "{F7757A83-3FC4-4F98-B537-A1F08E76471D}"
55+EndProject
66+Global
77+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
88+ Debug|Any CPU = Debug|Any CPU
99+ Release|Any CPU = Release|Any CPU
1010+ Debug|x64 = Debug|x64
1111+ Release|x64 = Release|x64
1212+ EndGlobalSection
1313+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
1414+ {F7757A83-3FC4-4F98-B537-A1F08E76471D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
1515+ {F7757A83-3FC4-4F98-B537-A1F08E76471D}.Debug|Any CPU.Build.0 = Debug|Any CPU
1616+ {F7757A83-3FC4-4F98-B537-A1F08E76471D}.Release|Any CPU.ActiveCfg = Release|Any CPU
1717+ {F7757A83-3FC4-4F98-B537-A1F08E76471D}.Release|Any CPU.Build.0 = Release|Any CPU
1818+ {F7757A83-3FC4-4F98-B537-A1F08E76471D}.Debug|x64.ActiveCfg = Debug|Any CPU
1919+ {F7757A83-3FC4-4F98-B537-A1F08E76471D}.Debug|x64.Build.0 = Debug|Any CPU
2020+ {F7757A83-3FC4-4F98-B537-A1F08E76471D}.Release|x64.ActiveCfg = Release|Any CPU
2121+ {F7757A83-3FC4-4F98-B537-A1F08E76471D}.Release|x64.Build.0 = Release|Any CPU
2222+ EndGlobalSection
2323+EndGlobal
+286
WhiteRose/FSO.cs
···11+// This software is under the public domain. See the UNLICENSE file for more details.
22+33+using System;
44+using System.Diagnostics;
55+using System.IO;
66+using Eto.Forms;
77+using System.Text.RegularExpressions;
88+using Ionic.Zip;
99+using System.Net;
1010+using System.Linq;
1111+using System.Text;
1212+using System.Reflection;
1313+1414+namespace WhiteRose
1515+{
1616+ public static class FSO
1717+ {
1818+1919+ public static string[] fsoParmas { get; set; }
2020+2121+ public static string libVer = "WhiteRose " + Assembly.GetExecutingAssembly().GetName().Version.ToString();
2222+2323+ /// <summary>
2424+ /// Returns all files by their extensions within the current directory.
2525+ /// You only need to type in the name of the extension.
2626+ /// </summary>
2727+ /// <param name="fileExt"></param>
2828+ /// <returns></returns>
2929+ public static FileInfo[] FileWildCard(string fileExt)
3030+ {
3131+ var dir = new DirectoryInfo(Environment.CurrentDirectory);
3232+ var files = dir.GetFiles("*." + fileExt.ToLower()).Where(p => p.Extension == "." + fileExt.ToLower()).ToArray();
3333+ return files;
3434+ }
3535+3636+ /// <summary>
3737+ /// Returns all files by their extensions in the selected directory.
3838+ /// </summary>
3939+ /// <param name="fileExt"></param>
4040+ /// <returns></returns>
4141+ public static FileInfo[] FileWildCard(string fileExt, string fileDir)
4242+ {
4343+ var dir = new DirectoryInfo(fileDir);
4444+ var files = dir.GetFiles("*." + fileExt.ToLower()).Where(p => p.Extension == "." + fileExt.ToLower()).ToArray();
4545+ return files;
4646+ }
4747+4848+ /// <summary>
4949+ /// Returns a given URL. If it isn't there,
5050+ /// defualt to Google.
5151+ /// </summary>
5252+ /// <param name="url"></param>
5353+ /// <returns>new Uri(url);</returns>
5454+ [Obsolete]
5555+ public static Uri WebPage(string url)
5656+ {
5757+ try {
5858+ return new Uri(url);
5959+ }
6060+ catch {
6161+ return new Uri("https://google.com");
6262+ }
6363+ }
6464+6565+ /// <summary>
6666+ ///
6767+ /// </summary>
6868+ /// <param name="url"></param>
6969+ /// <returns>new Uri(url);</returns>
7070+ public static Uri WebURI(string url, string fallback = "https://google.com")
7171+ {
7272+ try {
7373+ return new Uri(url);
7474+ }
7575+ catch {
7676+ return new Uri(fallback);
7777+ }
7878+ }
7979+8080+ /// <summary>
8181+ /// Launches the FreeSO executable with the specified
8282+ /// game arguments defined in the application settings.
8383+ ///
8484+ /// Defualt settings: FSO.IDE.exe must be located in same
8585+ /// directory and the game arguments are "800x600 w"
8686+ /// </summary>
8787+ /// <param name="args"></param>
8888+ public static void StartFSO()
8989+ {
9090+ var fso = Properties.Settings.Default.Client;
9191+ var fsoProcess = new Process();
9292+9393+ if (File.Exists(fso))
9494+ {
9595+ fsoProcess.StartInfo.FileName = fso;
9696+ fsoProcess.StartInfo.UseShellExecute = true;
9797+ fsoProcess.StartInfo.Arguments = Properties.Settings.Default.Args;
9898+ fsoProcess.Start();
9999+ }
100100+ else {
101101+ MessageBox.Show(fso + " not found.");
102102+ }
103103+ }
104104+105105+ /// <summary>
106106+ /// Launches the FreeSO IDE executable with the specified
107107+ /// game arguments defined in the application settings.
108108+ ///
109109+ /// Defualt settings: FSO.IDE.exe must be located in same
110110+ /// directory and the game arguments are "800x600 w"
111111+ /// </summary>
112112+ /// <param name="args"></param>
113113+ public static void StartIDE()
114114+ {
115115+ var ide = Properties.Settings.Default.IDE;
116116+ var fsoProcess = new Process();
117117+118118+ if (File.Exists(ide))
119119+ {
120120+ fsoProcess.StartInfo.FileName = ide;
121121+ fsoProcess.StartInfo.UseShellExecute = true;
122122+ fsoProcess.StartInfo.Arguments = Properties.Settings.Default.Args;
123123+ fsoProcess.Start();
124124+ }
125125+ else
126126+ {
127127+ MessageBox.Show(ide + " not found.");
128128+ }
129129+ }
130130+131131+ /// <summary>
132132+ /// Return the latest dist number as a string
133133+ /// Thanks to LRB. http://forum.freeso.org/threads/974/
134134+ /// </summary>
135135+ /// <returns>sLine</returns>
136136+ // TODO: We need a new way to parse HTML files!
137137+ public static string DistNumLegacy()
138138+ {
139139+ string url = "http://servo.freeso.org/externalStatus.html?js=1";
140140+ WebRequest wrGETURL;
141141+ wrGETURL = WebRequest.Create(url);
142142+ Stream objStream;
143143+ objStream = wrGETURL.GetResponse().GetResponseStream();
144144+ var objReader = new StreamReader(objStream);
145145+ string sLine = "";
146146+ string fll;
147147+ fll = objReader.ReadLine();
148148+ sLine = fll.Remove(0, 855);
149149+ sLine = sLine.Remove(sLine.IndexOf("</a>", StringComparison.Ordinal));
150150+ return sLine;
151151+ }
152152+153153+ /// <summary>
154154+ /// New disNum method.
155155+ /// </summary>
156156+ /// <returns></returns>
157157+ // TODO: Put new HTML parser logic here. Make public afterwords.
158158+ static string DistNum()
159159+ {
160160+ return null;
161161+ }
162162+163163+ /// <summary>
164164+ ///
165165+ /// </summary>
166166+ /// <param name="file"></param>
167167+ /// <returns></returns>
168168+ public static string ReadBuild(string file)
169169+ {
170170+ string line;
171171+172172+ try {
173173+ string buildFile = Environment.CurrentDirectory + @"/" + file;
174174+ var fileRead = new StreamReader(buildFile);
175175+ while ((line = fileRead.ReadLine()) != null) {
176176+ return "#" + line;
177177+ }
178178+179179+ fileRead.Close();
180180+ }
181181+ catch {
182182+ return "NONE";
183183+ }
184184+185185+ return "";
186186+ }
187187+188188+ /// <summary>
189189+ ///
190190+ /// </summary>
191191+ /// <param name="file"></param>
192192+ public static void WriteBuild(string file)
193193+ {
194194+ string buildFile = Environment.CurrentDirectory + @"/" + file;
195195+ string localDist = DistNumLegacy();
196196+197197+ try {
198198+ File.WriteAllText(buildFile, localDist);
199199+ }
200200+ catch (Exception ex) {
201201+ MessageBox.Show(ex.Message);
202202+ }
203203+ }
204204+205205+ #region ZipGC
206206+207207+ /// <summary>
208208+ /// Cleans up any ZIP files.
209209+ /// </summary>
210210+ public static void ZipGC()
211211+ {
212212+ var files = FileWildCard("zip");
213213+214214+ foreach (FileInfo file in files) {
215215+ try {
216216+ file.Attributes = FileAttributes.Normal;
217217+ File.Delete(file.FullName);
218218+ }
219219+ catch (Exception ex) {
220220+ Console.WriteLine(ex.Message);
221221+ }
222222+ }
223223+ }
224224+225225+ /// <summary>
226226+ /// Detects for any present zips and unpacks them.
227227+ /// </summary>
228228+ public static void wildUnZip()
229229+ {
230230+ var dir = new DirectoryInfo(Environment.CurrentDirectory);
231231+ var files = dir.GetFiles("*.zip").Where(p => p.Extension == ".zip").ToArray();
232232+233233+ foreach (FileInfo file in files) {
234234+ using (ZipFile zip2 = ZipFile.Read(file.FullName)) {
235235+ foreach (ZipEntry ex in zip2) {
236236+ ex.Extract(Environment.CurrentDirectory, ExtractExistingFileAction.OverwriteSilently);
237237+ }
238238+ }
239239+ }
240240+ }
241241+242242+ public static void distUnZip(string dist)
243243+ {
244244+ using (ZipFile zip2 = ZipFile.Read(dist)) {
245245+ foreach (ZipEntry ex in zip2) {
246246+ ex.Extract(Environment.CurrentDirectory, ExtractExistingFileAction.OverwriteSilently);
247247+ }
248248+ }
249249+ }
250250+251251+ #endregion
252252+253253+ /// <summary>
254254+ ///
255255+ /// </summary>
256256+ /// <param name="array"></param>
257257+ /// <returns></returns>
258258+ public static string ConvertStringArrayToString(string[] array)
259259+ {
260260+ //
261261+ // Concatenate all the elements into a StringBuilder.
262262+ //
263263+ var builder = new StringBuilder();
264264+ foreach (string value in array) {
265265+ builder.Append(value);
266266+ builder.Append(' ');
267267+ }
268268+ return builder.ToString();
269269+ }
270270+271271+ /// <summary>
272272+ ///
273273+ /// </summary>
274274+ /// <param name="array"></param>
275275+ /// <returns></returns>
276276+ public static string ConvertStringArrayToStringJoin(string[] array)
277277+ {
278278+ //
279279+ // Use string Join to concatenate the string elements.
280280+ //
281281+ string result = string.Join(".", array);
282282+ return result;
283283+ }
284284+285285+ }
286286+}
+26
WhiteRose/Properties/AssemblyInfo.cs
···11+using System.Reflection;
22+using System.Runtime.CompilerServices;
33+44+// Information about this assembly is defined by the following attributes.
55+// Change them to the values specific to your project.
66+77+[assembly: AssemblyTitle("WhiteRose")]
88+[assembly: AssemblyDescription("")]
99+[assembly: AssemblyConfiguration("")]
1010+[assembly: AssemblyCompany("")]
1111+[assembly: AssemblyProduct("")]
1212+[assembly: AssemblyCopyright("(c) Tomas CaseyWilcox")]
1313+[assembly: AssemblyTrademark("")]
1414+[assembly: AssemblyCulture("")]
1515+1616+// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
1717+// The form "{Major}.{Minor}.*" will automatically update the build and revision,
1818+// and "{Major}.{Minor}.{Build}.*" will update just the revision.
1919+2020+[assembly: AssemblyVersion("1.0.*")]
2121+2222+// The following attributes are used to specify the signing key for the assembly,
2323+// if desired. See the Mono documentation for more information about signing.
2424+2525+//[assembly: AssemblyDelaySign(false)]
2626+//[assembly: AssemblyKeyFile("")]
+62
WhiteRose/Properties/Settings.Designer.cs
···11+//------------------------------------------------------------------------------
22+// <auto-generated>
33+// This code was generated by a tool.
44+// Runtime Version:4.0.30319.42000
55+//
66+// Changes to this file may cause incorrect behavior and will be lost if
77+// the code is regenerated.
88+// </auto-generated>
99+//------------------------------------------------------------------------------
1010+1111+namespace WhiteRose.Properties {
1212+1313+1414+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
1515+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
1616+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
1717+1818+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
1919+2020+ public static Settings Default {
2121+ get {
2222+ return defaultInstance;
2323+ }
2424+ }
2525+2626+ [global::System.Configuration.UserScopedSettingAttribute()]
2727+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
2828+ [global::System.Configuration.DefaultSettingValueAttribute("FreeSO.exe")]
2929+ public string Client {
3030+ get {
3131+ return ((string)(this["Client"]));
3232+ }
3333+ set {
3434+ this["Client"] = value;
3535+ }
3636+ }
3737+3838+ [global::System.Configuration.UserScopedSettingAttribute()]
3939+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
4040+ [global::System.Configuration.DefaultSettingValueAttribute("FSO.IDE.exe")]
4141+ public string IDE {
4242+ get {
4343+ return ((string)(this["IDE"]));
4444+ }
4545+ set {
4646+ this["IDE"] = value;
4747+ }
4848+ }
4949+5050+ [global::System.Configuration.UserScopedSettingAttribute()]
5151+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
5252+ [global::System.Configuration.DefaultSettingValueAttribute("800x600 w")]
5353+ public string Args {
5454+ get {
5555+ return ((string)(this["Args"]));
5656+ }
5757+ set {
5858+ this["Args"] = value;
5959+ }
6060+ }
6161+ }
6262+}