├── DisunityGuiHelper
├── WinShellIcon.ico
├── Resources
│ └── DropZoneImage.png
├── Properties
│ ├── Settings.settings
│ ├── AssemblyInfo.cs
│ ├── Settings.Designer.cs
│ ├── Resources.Designer.cs
│ └── Resources.resx
├── App.config
├── Settings.cs
├── src
│ ├── ToolTarget.cs
│ ├── ToolDialog.cs
│ ├── ToolGuidedCmd.cs
│ ├── ToolConfig.cs
│ ├── ToolOutput.cs
│ ├── Program.cs
│ ├── ToolWindow.cs
│ ├── ATA4.cs
│ └── ToolWindow.Designer.cs
└── DisunityGuiHelper.csproj
├── .gitattributes
├── README.md
├── DisunityGuiHelper.sln
└── .gitignore
/DisunityGuiHelper/WinShellIcon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Scrivener07/DisunityGuiHelper/HEAD/DisunityGuiHelper/WinShellIcon.ico
--------------------------------------------------------------------------------
/DisunityGuiHelper/Resources/DropZoneImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Scrivener07/DisunityGuiHelper/HEAD/DisunityGuiHelper/Resources/DropZoneImage.png
--------------------------------------------------------------------------------
/DisunityGuiHelper/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
4 | # Custom for Visual Studio
5 | *.cs diff=csharp
6 | *.sln merge=union
7 | *.csproj merge=union
8 | *.vbproj merge=union
9 | *.fsproj merge=union
10 | *.dbproj merge=union
11 |
12 | # Standard to msysgit
13 | *.doc diff=astextplain
14 | *.DOC diff=astextplain
15 | *.docx diff=astextplain
16 | *.DOCX diff=astextplain
17 | *.dot diff=astextplain
18 | *.DOT diff=astextplain
19 | *.pdf diff=astextplain
20 | *.PDF diff=astextplain
21 | *.rtf diff=astextplain
22 | *.RTF diff=astextplain
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Disunity Gui Helper
2 | =========
3 | An unofficial stopgap interface tool for [Disunity](https://github.com/ata4/disunity). An interface is planned for later versions of Disunity when it is ready. This tool will provide an interface in the interim.
4 | Disunity and Java are required for this application to run. 64bit processor recommended for larger files.
5 |
6 | Get the latest release [here](https://github.com/Scrivener07/DisunityGuiHelper/releases) or check out some screenshots of [Guided Command](http://i1268.photobucket.com/albums/jj569/Scrivener07/Gcmd.png) and
7 | [Expert Command](http://i1268.photobucket.com/albums/jj569/Scrivener07/Ecmd.png) in action.
8 |
9 | Directions..
10 | Add the exe to the same folder as disunity.jar and run.
11 |
12 |
--------------------------------------------------------------------------------
/DisunityGuiHelper/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/DisunityGuiHelper.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Express 2013 for Windows Desktop
4 | VisualStudioVersion = 12.0.30110.0
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DisunityGuiHelper", "DisunityGuiHelper\DisunityGuiHelper.csproj", "{82495A72-D51E-4CDD-870C-CD84DCA99BEF}"
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 | {82495A72-D51E-4CDD-870C-CD84DCA99BEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {82495A72-D51E-4CDD-870C-CD84DCA99BEF}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {82495A72-D51E-4CDD-870C-CD84DCA99BEF}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {82495A72-D51E-4CDD-870C-CD84DCA99BEF}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | EndGlobal
23 |
--------------------------------------------------------------------------------
/DisunityGuiHelper/Settings.cs:
--------------------------------------------------------------------------------
1 | namespace DisunityGuiHelper.Properties {
2 |
3 |
4 | // This class allows you to handle specific events on the settings class:
5 | // The SettingChanging event is raised before a setting's value is changed.
6 | // The PropertyChanged event is raised after a setting's value is changed.
7 | // The SettingsLoaded event is raised after the setting values are loaded.
8 | // The SettingsSaving event is raised before the setting values are saved.
9 | public sealed partial class Settings {
10 |
11 | public Settings() {
12 | // // To add event handlers for saving and changing settings, uncomment the lines below:
13 | //
14 | // this.SettingChanging += this.SettingChangingEventHandler;
15 | //
16 | // this.SettingsSaving += this.SettingsSavingEventHandler;
17 | //
18 | }
19 |
20 | private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) {
21 | // Add code to handle the SettingChangingEvent event here.
22 | }
23 |
24 | private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) {
25 | // Add code to handle the SettingsSaving event here.
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/DisunityGuiHelper/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("DisunityGui")]
9 | [assembly: AssemblyDescription("A graphical user interface for Disunity.")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("Disunity Gui Helper")]
13 | [assembly: AssemblyCopyright("Copyright © 2014")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("20513468-c9b6-4600-885d-ba28eb644c0e")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("0.0.2.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/DisunityGuiHelper/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.18444
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 DisunityGuiHelper.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
16 | public sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 |
26 | [global::System.Configuration.UserScopedSettingAttribute()]
27 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
28 | [global::System.Configuration.DefaultSettingValueAttribute("")]
29 | public string WorkingTargetFolder {
30 | get {
31 | return ((string)(this["WorkingTargetFolder"]));
32 | }
33 | set {
34 | this["WorkingTargetFolder"] = value;
35 | }
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/DisunityGuiHelper/src/ToolTarget.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.Windows.Forms;
7 | using System.Diagnostics;
8 | using System.IO;
9 | using System.Drawing;
10 |
11 |
12 | // TODO: Add batching support.
13 |
14 | namespace DisunityGuiHelper
15 | {
16 | public partial class ToolWindow
17 | {
18 |
19 |
20 | // Browse Target
21 | ///-----------------------------------------------------------------------------------
22 | private void TargetBrowseButton_OnClick(object sender, EventArgs e)
23 | {
24 | ShowFileBrowser(typefilter_UNITY);
25 | SetTargetPath(BrowseFileDialog.FileName);
26 | }
27 |
28 |
29 |
30 | private void DropZonePanel_OnDragEnter(object sender, DragEventArgs e)
31 | {
32 | if (e.Data.GetDataPresent(DataFormats.FileDrop))
33 | {
34 | e.Effect = DragDropEffects.All;
35 | }
36 | else
37 | {
38 | e.Effect = DragDropEffects.None;
39 | }
40 | }
41 |
42 |
43 |
44 | private void DropZonePanel_OnDragDrop(object sender, DragEventArgs e)
45 | {
46 | string[] dzPath = (string[])e.Data.GetData(DataFormats.FileDrop, false);
47 |
48 | if (dzPath.Length > 1) //multi-target
49 | {
50 | this.WriteOutput(WarnNoBatch);
51 | }
52 | SetTargetPath(dzPath[0]);
53 |
54 | //for (int i = 0; i < dzPath.Length; i++)
55 | //{
56 | // SetTargetPath(dzPath[i]);
57 | //}
58 | }
59 |
60 |
61 |
62 | private void SetTargetPath(string evalPath)
63 | {
64 | if (File.Exists(evalPath))
65 | {
66 | ProcessTarget = evalPath;
67 | TargetTextBox.Text = evalPath;
68 | WriteOutput("Pending File: " + evalPath);
69 | }
70 | else
71 | {
72 | ProcessTarget = null;
73 | TargetTextBox.Text = "Select a unity file to process.";
74 | WriteOutput("No file selected");
75 | }
76 | }
77 |
78 |
79 |
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/DisunityGuiHelper/src/ToolDialog.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.Windows.Forms;
7 | using System.Diagnostics;
8 | using System.IO;
9 |
10 |
11 |
12 | namespace DisunityGuiHelper
13 | {
14 | public partial class ToolWindow
15 | {
16 |
17 | public const string typefilter_ALL = "All Files (*.*)|*.*";
18 | public const string typefilter_UNITY = "Unity Files |*.*";
19 | public const string typefilter_TEXT = "Text |*.txt|Any File|*.*";
20 |
21 |
22 | private string ShowFolderBrowser(bool a_addPathSeperator = false)
23 | {
24 | if (this.BrowseFolderDialog.ShowDialog() == DialogResult.OK)
25 | {
26 | if (a_addPathSeperator)
27 | {
28 | return this.BrowseFolderDialog.SelectedPath + "\\";
29 | }
30 | else
31 | {
32 | return this.BrowseFolderDialog.SelectedPath;
33 | }
34 | }
35 | else
36 | {
37 | return null;
38 | }
39 | }
40 |
41 |
42 |
43 | private string ShowFileBrowser(string filter = typefilter_ALL)
44 | {
45 | this.BrowseFileDialog.FileName = null;
46 | this.BrowseFileDialog.Filter = filter;
47 | if (this.BrowseFileDialog.ShowDialog() == DialogResult.OK)
48 | {
49 | return this.BrowseFileDialog.FileName;
50 | }
51 | else
52 | {
53 | return null;
54 | }
55 | }
56 |
57 |
58 |
59 | private bool ShowSaveFileBrowser(object data, string filter = typefilter_TEXT)
60 | {
61 | this.SaveFileDialog.FileName = "DisunityReport";
62 | this.SaveFileDialog.Filter = filter;
63 |
64 | if (this.SaveFileDialog.ShowDialog() == DialogResult.OK)
65 | {
66 | using (StreamWriter sw = new StreamWriter(SaveFileDialog.FileName))
67 | {
68 | sw.Write(data);
69 | sw.Flush();
70 | sw.Close();
71 | return true;
72 | }
73 | }
74 | else
75 | {
76 | return false;
77 | }
78 | }
79 |
80 |
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/DisunityGuiHelper/src/ToolGuidedCmd.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.Windows.Forms;
7 | using System.Diagnostics;
8 | using System.IO;
9 | using System.Drawing;
10 |
11 |
12 |
13 | namespace DisunityGuiHelper
14 | {
15 |
16 | public partial class ToolWindow
17 | {
18 |
19 |
20 | // Guided Command
21 | ///-----------------------------------------------------------------------------------
22 | private void SetupPresetSelection()
23 | {
24 | this.RunPresetSelection.Items.Clear();
25 | foreach (string item in DisunityHelper.CommandList)
26 | {
27 | this.RunPresetSelection.Items.Add(item);
28 | }
29 | this.RunPresetSelection.SelectedIndex = 0;
30 | RunPresetInput = this.RunPresetSelection.SelectedIndex;
31 | }
32 |
33 |
34 |
35 | private void RunPresetSelection_OnChangeCommitted(object sender, EventArgs e)
36 | {
37 | RunPresetInput = this.RunPresetSelection.SelectedIndex;
38 | WriteOutput("Pending Command: " + DisunityHelper.CommandList.ElementAt(RunPresetInput));
39 | UpdateHint();
40 | UpdateFilter();
41 | }
42 |
43 |
44 |
45 | // Filter
46 | ///-----------------------------------------------------------------------------------
47 | private void FilterTextBox_OnTextChanged(object sender, EventArgs e)
48 | {
49 | ProcessFilter = this.FilterTextBox.Text.ToLower();
50 | }
51 |
52 |
53 |
54 | private void UpdateFilter()
55 | {
56 | Trace.WriteLine("Updating class filter controls..");
57 |
58 | if (UseExpert)
59 | {
60 | this.FilterLabel.Enabled = false;
61 | this.FilterLabel.Visible = false;
62 | this.FilterTextBox.Enabled = false;
63 | this.FilterTextBox.Visible = false;
64 | }
65 | else
66 | {
67 | bool CanUseFilter = (RunPresetInput == ATA4.IDExtract || RunPresetInput == ATA4.IDExtractRaw || RunPresetInput == ATA4.IDDump || RunPresetInput == ATA4.IDDumpStruct || RunPresetInput == ATA4.IDBundleExtract);
68 |
69 | if (CanUseFilter)
70 | {
71 | this.FilterLabel.Enabled = true;
72 | this.FilterLabel.Visible = true;
73 | this.FilterTextBox.Enabled = true;
74 | this.FilterTextBox.Visible = true;
75 | EnableSupport();
76 | this.WriteHint(ATA4.ClassFilterMessage);
77 | }
78 | else
79 | {
80 | this.FilterLabel.Enabled = false;
81 | this.FilterLabel.Visible = false;
82 | this.FilterTextBox.Enabled = false;
83 | this.FilterTextBox.Visible = false;
84 | EnableSupport(false);
85 | }
86 | }
87 |
88 | }
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 | }
101 | }
102 |
--------------------------------------------------------------------------------
/DisunityGuiHelper/src/ToolConfig.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.Windows.Forms;
7 | using System.Diagnostics;
8 | using System.IO;
9 | using System.Drawing;
10 |
11 | namespace DisunityGuiHelper
12 | {
13 | public partial class ToolWindow
14 | {
15 |
16 | private bool IsBusy = false;
17 |
18 | string hintExpert = "You are using expert mode.\n".Replace("\n", Environment.NewLine) +
19 | "In this mode you can execute any commands by typing them into the command field.\n".Replace("\n", Environment.NewLine) +
20 | "This tool will still provide the java and disunity arguments for you.\n".Replace("\n", Environment.NewLine) +
21 | "The gui will provide the target parameter as well if 'Use Target' is checked.".Replace("\n", Environment.NewLine);
22 |
23 | string WarnNoBatch = "Sorry, batch processing not implemented yet." +
24 | "You can use 'Expert Mode' or the standalone version of disunity to gain this functionality.";
25 |
26 |
27 |
28 | // Application Status
29 | ///-----------------------------------------------------------------------------------
30 | private void SetBusyLight()
31 | {
32 | IsBusy = true;
33 | this.ExecuteButton.Enabled = false;
34 | this.ExecuteButton.Click -= ExecuteButton_OnClick;
35 | this.BusyIndicator.BackColor = Color.IndianRed;
36 | this.BusyStatusLabel.Text = "Busy";
37 | this.HelpHintTextbox.Text = "The application is busy processing your command..\nPlease dont try to interact with or exit this application until it is ready.".Replace("\n", Environment.NewLine);
38 | this.BusyIndicator.Refresh();
39 | this.BusyStatusLabel.Refresh();
40 | this.HelpHintTextbox.Refresh();
41 | }
42 |
43 |
44 | private void SetReadyLight()
45 | {
46 | this.ExecuteButton.Enabled = true;
47 | this.ExecuteButton.Click += ExecuteButton_OnClick;
48 | this.BusyIndicator.BackColor = Color.MediumSeaGreen;
49 | this.BusyStatusLabel.Text = "Ready";
50 | this.BusyIndicator.Refresh();
51 | this.BusyStatusLabel.Refresh();
52 | IsBusy = false;
53 | UpdateHint();
54 | }
55 |
56 |
57 |
58 |
59 | // Support
60 | ///-----------------------------------------------------------------------------------
61 | private void SupportButton_OnClick(object sender, EventArgs e)
62 | {
63 | if (true)
64 | {
65 | this.WriteOutput(ATA4.ShowHintMessage());
66 | }
67 | }
68 |
69 |
70 | private void UpdateHint()
71 | {
72 | if (UseExpert)
73 | {
74 | this.HelpHintTextbox.Text = hintExpert;
75 | }
76 | else
77 | {
78 | HelpHintTextbox.Text = DisunityHelper.CommandHintList[RunPresetSelection.SelectedIndex];
79 | }
80 | }
81 |
82 |
83 |
84 | public void WriteHint(string text)
85 | {
86 | this.HelpHintTextbox.Text += text;
87 | Debug.WriteLine(text);
88 | }
89 |
90 |
91 |
92 | private void EnableSupport(bool enable = true)
93 | {
94 | if (enable)
95 | {
96 | this.SupportButton.Enabled = true;
97 | this.SupportButton.Visible = true;
98 | }
99 | else
100 | {
101 | this.SupportButton.Enabled = false;
102 | this.SupportButton.Visible = false;
103 | }
104 | }
105 |
106 |
107 |
108 | }
109 | }
110 |
--------------------------------------------------------------------------------
/DisunityGuiHelper/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.18444
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 DisunityGuiHelper.Properties {
12 | using System;
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
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 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resources() {
33 | }
34 |
35 | ///
36 | /// Returns the cached ResourceManager instance used by this class.
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | internal static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DisunityGuiHelper.Properties.Resources", typeof(Resources).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// Overrides the current thread's CurrentUICulture property for all
51 | /// resource lookups using this strongly typed resource class.
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | internal static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 |
63 | ///
64 | /// Looks up a localized resource of type System.Drawing.Bitmap.
65 | ///
66 | internal static System.Drawing.Bitmap DropZoneImage {
67 | get {
68 | object obj = ResourceManager.GetObject("DropZoneImage", resourceCulture);
69 | return ((System.Drawing.Bitmap)(obj));
70 | }
71 | }
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | #################
2 | ## Eclipse
3 | #################
4 |
5 | *.pydevproject
6 | .project
7 | .metadata
8 | bin/
9 | tmp/
10 | *.tmp
11 | *.bak
12 | *.swp
13 | *~.nib
14 | local.properties
15 | .classpath
16 | .settings/
17 | .loadpath
18 |
19 | # External tool builders
20 | .externalToolBuilders/
21 |
22 | # Locally stored "Eclipse launch configurations"
23 | *.launch
24 |
25 | # CDT-specific
26 | .cproject
27 |
28 | # PDT-specific
29 | .buildpath
30 |
31 |
32 | #################
33 | ## Visual Studio
34 | #################
35 |
36 | ## Ignore Visual Studio temporary files, build results, and
37 | ## files generated by popular Visual Studio add-ons.
38 |
39 | # User-specific files
40 | *.suo
41 | *.user
42 | *.sln.docstates
43 |
44 | # Build results
45 |
46 | [Dd]ebug/
47 | [Rr]elease/
48 | x64/
49 | build/
50 | [Bb]in/
51 | [Oo]bj/
52 |
53 | # MSTest test Results
54 | [Tt]est[Rr]esult*/
55 | [Bb]uild[Ll]og.*
56 |
57 | *_i.c
58 | *_p.c
59 | *.ilk
60 | *.meta
61 | *.obj
62 | *.pch
63 | *.pdb
64 | *.pgc
65 | *.pgd
66 | *.rsp
67 | *.sbr
68 | *.tlb
69 | *.tli
70 | *.tlh
71 | *.tmp
72 | *.tmp_proj
73 | *.log
74 | *.vspscc
75 | *.vssscc
76 | .builds
77 | *.pidb
78 | *.log
79 | *.scc
80 |
81 | # Visual C++ cache files
82 | ipch/
83 | *.aps
84 | *.ncb
85 | *.opensdf
86 | *.sdf
87 | *.cachefile
88 |
89 | # Visual Studio profiler
90 | *.psess
91 | *.vsp
92 | *.vspx
93 |
94 | # Guidance Automation Toolkit
95 | *.gpState
96 |
97 | # ReSharper is a .NET coding add-in
98 | _ReSharper*/
99 | *.[Rr]e[Ss]harper
100 |
101 | # TeamCity is a build add-in
102 | _TeamCity*
103 |
104 | # DotCover is a Code Coverage Tool
105 | *.dotCover
106 |
107 | # NCrunch
108 | *.ncrunch*
109 | .*crunch*.local.xml
110 |
111 | # Installshield output folder
112 | [Ee]xpress/
113 |
114 | # DocProject is a documentation generator add-in
115 | DocProject/buildhelp/
116 | DocProject/Help/*.HxT
117 | DocProject/Help/*.HxC
118 | DocProject/Help/*.hhc
119 | DocProject/Help/*.hhk
120 | DocProject/Help/*.hhp
121 | DocProject/Help/Html2
122 | DocProject/Help/html
123 |
124 | # Click-Once directory
125 | publish/
126 |
127 | # Publish Web Output
128 | *.Publish.xml
129 | *.pubxml
130 |
131 | # NuGet Packages Directory
132 | ## TODO: If you have NuGet Package Restore enabled, uncomment the next line
133 | #packages/
134 |
135 | # Windows Azure Build Output
136 | csx
137 | *.build.csdef
138 |
139 | # Windows Store app package directory
140 | AppPackages/
141 |
142 | # Others
143 | sql/
144 | *.Cache
145 | ClientBin/
146 | [Ss]tyle[Cc]op.*
147 | ~$*
148 | *~
149 | *.dbmdl
150 | *.[Pp]ublish.xml
151 | *.pfx
152 | *.publishsettings
153 |
154 | # RIA/Silverlight projects
155 | Generated_Code/
156 |
157 | # Backup & report files from converting an old project file to a newer
158 | # Visual Studio version. Backup files are not needed, because we have git ;-)
159 | _UpgradeReport_Files/
160 | Backup*/
161 | UpgradeLog*.XML
162 | UpgradeLog*.htm
163 |
164 | # SQL Server files
165 | App_Data/*.mdf
166 | App_Data/*.ldf
167 |
168 | #############
169 | ## Windows detritus
170 | #############
171 |
172 | # Windows image file caches
173 | Thumbs.db
174 | ehthumbs.db
175 |
176 | # Folder config file
177 | Desktop.ini
178 |
179 | # Recycle Bin used on file shares
180 | $RECYCLE.BIN/
181 |
182 | # Mac crap
183 | .DS_Store
184 |
185 |
186 | #############
187 | ## Python
188 | #############
189 |
190 | *.py[co]
191 |
192 | # Packages
193 | *.egg
194 | *.egg-info
195 | dist/
196 | build/
197 | eggs/
198 | parts/
199 | var/
200 | sdist/
201 | develop-eggs/
202 | .installed.cfg
203 |
204 | # Installer logs
205 | pip-log.txt
206 |
207 | # Unit test / coverage reports
208 | .coverage
209 | .tox
210 |
211 | #Translations
212 | *.mo
213 |
214 | #Mr Developer
215 | .mr.developer.cfg
216 |
--------------------------------------------------------------------------------
/DisunityGuiHelper/src/ToolOutput.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.Diagnostics;
7 | using System.Drawing;
8 | using System.Windows.Forms;
9 |
10 |
11 | // TODO: UseScrollToEnd does not hold position
12 |
13 | namespace DisunityGuiHelper
14 | {
15 |
16 | ///
17 | /// A RichTextBox that behaves similar to a console output window.
18 | ///
19 | public partial class ToolWindow
20 | {
21 |
22 | public int CurrentColumn
23 | {
24 | get { return this.OutputBox.SelectionStart - this.OutputBox.GetFirstCharIndexOfCurrentLine() + 1; }
25 | }
26 |
27 | public int CurrentLine
28 | {
29 | get { return this.OutputBox.GetLineFromCharIndex(this.OutputBox.SelectionStart) + 1; }
30 | }
31 |
32 |
33 | // Output
34 | ///-----------------------------------------------------------------------------------
35 |
36 | private void SetupOutput()
37 | {
38 | this.OutputBox.HideSelection = false;
39 | this.OutputBox.ShowSelectionMargin = true;
40 | }
41 |
42 |
43 |
44 |
45 | public void WriteOutput(string text)
46 | {
47 | string output = text + Environment.NewLine + Environment.NewLine;
48 | if (UseScrollToEnd)
49 | {
50 | this.OutputBox.AppendText(output);
51 | }
52 | else
53 | {
54 | this.OutputBox.Text += output;
55 | }
56 | }
57 |
58 |
59 |
60 | private void ClearOutput()
61 | {
62 | this.OutputBox.Lines = new string[] { "" };
63 | }
64 |
65 |
66 |
67 | private void HightlightText()
68 | {
69 | if (UseHighlightLine)
70 | {
71 | this.OutputBox.Select(this.OutputBox.SelectionStart, this.OutputBox.SelectionLength);
72 | this.OutputBox.SelectionBackColor = Color.Khaki;
73 | }
74 | }
75 |
76 |
77 |
78 | private void ClearHightlights()
79 | {
80 | string s = this.OutputBox.Text;
81 | this.OutputBox.Clear();
82 | this.OutputBox.Text = s;
83 | }
84 |
85 |
86 |
87 |
88 |
89 |
90 | // Events
91 | ///-----------------------------------------------------------------------------------
92 | ///
93 | private void ToggleUseLineHightlight_CheckedChanged(object sender, EventArgs e)
94 | {
95 | UseHighlightLine = this.ToggleUseLineHightlight.Checked;
96 |
97 | if (!UseHighlightLine)
98 | {
99 | ClearHightlights();
100 | }
101 | }
102 |
103 |
104 | private void OutputBox_OnClick(object sender, EventArgs e)
105 | {
106 | Trace.WriteLine("Line:" + CurrentLine + ", Column:" + CurrentColumn);
107 | }
108 |
109 |
110 | private void OutputBox_SelectionChanged(object sender, EventArgs e)
111 | {
112 | }
113 |
114 |
115 | private void OutputBox_TextChanged(object sender, EventArgs e)
116 | {
117 | }
118 |
119 |
120 | private void OutputBox_MouseUp(object sender, MouseEventArgs e)
121 | {
122 | HightlightText();
123 | }
124 |
125 |
126 | private void OutputBox_LinkClicked(object sender, LinkClickedEventArgs e)
127 | {
128 | Process.Start(e.LinkText);
129 | }
130 |
131 |
132 | private void SaveLogOutputButton_OnClick(object sender, EventArgs e)
133 | {
134 | ShowSaveFileBrowser(this.OutputBox.Text, typefilter_TEXT);
135 | }
136 |
137 |
138 | private void ClearLogOutputButton_OnClick(object sender, EventArgs e)
139 | {
140 | ClearOutput();
141 | }
142 |
143 |
144 |
145 | // Message
146 | ///-----------------------------------------------------------------------------------
147 | private void WriteWelcome()
148 | {
149 | this.WriteOutput("To get started, choose a file or directory with the browse button or drag and drop one onto the drop zone.\n" +
150 | "Configure the file process by selecting a command from the drop down menu. Click execute when ready.\n" +
151 | "You may also save to file or clear this output windows content at any time.");
152 | }
153 |
154 |
155 |
156 | public void WriteInfo()
157 | {
158 | Trace.WriteLine("Writing tool window values..\n" +
159 | "\nDisunityHelper: " + DisunityHelper.ToString() +
160 | "\nUseExpert: " + UseExpert +
161 | "\nUseVerbose: " + UseVerbose +
162 | "\nUseTarget: " + UseTarget +
163 | "\nUseScrollToEnd: " + UseScrollToEnd +
164 | "\nUserCommandPresetInput: " + RunPresetInput +
165 | "\nUserCommandManualInput: " + RunExpertInput +
166 | "\nProcessTarget: " + ProcessTarget +
167 | "\nProcessFilter: " + ProcessFilter);
168 | }
169 |
170 |
171 |
172 | }
173 | }
174 |
--------------------------------------------------------------------------------
/DisunityGuiHelper/src/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using System.Windows.Forms;
6 | using System.Diagnostics;
7 | using System.IO;
8 | using Microsoft.Win32;
9 |
10 |
11 | namespace DisunityGuiHelper
12 | {
13 | internal sealed class Program
14 | {
15 |
16 | public static string JavaPath
17 | {
18 | get { return user_javapath; }
19 | set { user_javapath = value; }
20 | }
21 | private static string user_javapath;
22 |
23 |
24 | public static string ProgramPath
25 | {
26 | get { return user_ProgramPath; }
27 | set { user_ProgramPath = value; }
28 | }
29 | private static string user_ProgramPath;
30 |
31 |
32 | public static string DisunityPath
33 | {
34 | get { return user_DisunityPath; }
35 | set { user_DisunityPath = value; }
36 | }
37 | private static string user_DisunityPath;
38 |
39 |
40 | private const string disunityAssemblyName = "disunity.jar";
41 | private const string disunityPrompt = "Could not find " + disunityAssemblyName + " in startup directory.\nPress OK to browse for disunity or Cancel to exit the application.";
42 |
43 | private const string javaPrompt = "No standard Java installation found.\nPress OK to browse for java.exe or Cancel to exit the application.";
44 |
45 |
46 |
47 | [STAThread]
48 | static void Main()
49 | {
50 | Application.EnableVisualStyles();
51 | Application.SetCompatibleTextRenderingDefault(false);
52 | Startup();
53 | Application.Run(new ToolWindow());
54 | }
55 |
56 |
57 | private static void Startup()
58 | {
59 | user_ProgramPath = Application.StartupPath;
60 | Console.WriteLine("Startup Path [" + user_ProgramPath + "]\n");
61 |
62 | user_DisunityPath = LocateDisunity();
63 | Console.WriteLine("Disunity [" + user_DisunityPath + "]\n");
64 |
65 | user_javapath = LocateJava();
66 | Console.WriteLine("Java [" + user_javapath + "]\n");
67 | }
68 |
69 |
70 |
71 |
72 | private static string LocateDisunity()
73 | {
74 | Console.WriteLine("Looking for Disunity.");
75 |
76 | if (File.Exists(disunityAssemblyName))
77 | {
78 | Console.WriteLine("Found Disunity in the application startup directory.");
79 | return disunityAssemblyName;
80 | }
81 | else
82 | {
83 | DialogResult result = MessageBox.Show(disunityPrompt, "Could not find " + disunityAssemblyName, MessageBoxButtons.OKCancel);
84 | if (result == DialogResult.OK)
85 | {
86 | string custompath = FindAssemblyDialog("Disunity Assembly | *.jar");
87 | if (!File.Exists(custompath))
88 | {
89 | Environment.Exit(0);
90 | }
91 | else
92 | {
93 | Console.WriteLine("Non-standard Disunity path has been selected.");
94 | return custompath;
95 | }
96 | }
97 | else if (result == DialogResult.Cancel)
98 | {
99 | Console.WriteLine("Please close this dialog and exit the application.");
100 | Environment.Exit(0);
101 | }
102 | return "";
103 | }
104 | }
105 |
106 |
107 |
108 |
109 |
110 | private static string LocateJava()
111 | {
112 | Console.WriteLine("Looking for Java.");
113 | const string java64 = @"C:\Program Files\Java\jre7\bin\java.exe";
114 | const string java32 = @"C:\Program Files (x86)\Java\jre7\bin\java.exe";
115 |
116 | if (File.Exists(java64))
117 | {
118 | Console.WriteLine("-Standard 64bit JRE installation exists.");
119 | return java64;
120 | } else if (File.Exists(java32)) {
121 | Console.WriteLine("-Standard 32bit JRE installation exists. Avoid processing larger files because of limited heap size.");
122 | return java32;
123 | }
124 | else
125 | {
126 | DialogResult result = MessageBox.Show(javaPrompt, "Could not find java.exe", MessageBoxButtons.OKCancel);
127 | if (result == DialogResult.OK)
128 | {
129 | string custompath = FindAssemblyDialog("Java Assembly |java.exe");
130 | if (!File.Exists(custompath))
131 | {
132 | Environment.Exit(0);
133 | }
134 | else
135 | {
136 | Console.WriteLine("Non-standard Java path has been selected.");
137 | return custompath;
138 | }
139 | }
140 | else if (result == DialogResult.Cancel)
141 | {
142 | Console.WriteLine("Please close this dialog and exit the application.");
143 | Environment.Exit(0);
144 | }
145 | return "";
146 | }
147 | }
148 |
149 |
150 |
151 |
152 | private static string FindAssemblyDialog(string filter)
153 | {
154 | OpenFileDialog dialog = new OpenFileDialog();
155 | dialog.InitialDirectory = ProgramPath;
156 | dialog.Filter = filter;
157 | dialog.RestoreDirectory = true;
158 |
159 | if (dialog.ShowDialog() == DialogResult.OK)
160 | {
161 | return dialog.FileName;
162 | }
163 | else
164 | {
165 | return "";
166 | }
167 | }
168 |
169 |
170 |
171 |
172 | }
173 | }
174 |
175 |
--------------------------------------------------------------------------------
/DisunityGuiHelper/src/ToolWindow.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Data;
5 | using System.Drawing;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 | using System.Windows.Forms;
10 | using System.Diagnostics;
11 | using System.IO;
12 |
13 |
14 |
15 | namespace DisunityGuiHelper
16 | {
17 | public partial class ToolWindow : Form
18 | {
19 |
20 | private ATA4 DisunityHelper;
21 | private bool UseExpert = false;
22 | private bool UseVerbose = false;
23 | private bool UseTarget = true;
24 | private bool UseScrollToEnd = true;
25 | private bool UseHighlightLine = false;
26 | private int RunPresetInput = 0;
27 | private string RunExpertInput = null;
28 | private string ProcessTarget = null;
29 | private string ProcessFilter = null;
30 |
31 |
32 | public ToolWindow()
33 | {
34 | InitializeComponent();
35 | DisunityHelper = new ATA4();
36 | Setup();
37 | WriteWelcome();
38 | }
39 |
40 |
41 | private void Setup()
42 | {
43 | SetupOutput();
44 | SetupOptions();
45 | SetupPresetSelection();
46 | SetCommandMode(UseExpert);
47 | }
48 |
49 |
50 | private void SetupOptions()
51 | {
52 | this.TargetTextBox.Text = "Select a file or directory to process.";
53 | this.ToggleUseExpert.Checked = UseExpert;
54 | this.ToggleUseTarget.Checked = UseTarget;
55 | this.ToggleUseVerbose.Checked = UseVerbose;
56 | this.ToggleUseScrollToEnd.Checked = UseScrollToEnd;
57 | this.ToggleUseLineHightlight.Checked = UseHighlightLine;
58 | }
59 |
60 |
61 |
62 | private void SetCommandMode(bool isExpert)
63 | {
64 | if (isExpert)
65 | {
66 | this.ToggleUseTarget.Enabled = true;
67 | this.ToggleUseVerbose.Enabled = false;
68 | this.RunExpertSelection.Enabled = true;
69 | this.RunExpertSelection.Visible = true;
70 | this.RunPresetSelection.Enabled = false;
71 | this.RunPresetSelection.Visible = false;
72 | this.RunExpertSelection.Dock = DockStyle.Fill;
73 | this.FilterTextBox.Enabled = false;
74 | this.FilterTextBox.Visible = false;
75 | this.WriteOutput("Expert Mode: Visit https://github.com/ata4/disunity for additional command usage information.");
76 | EnableSupport(false);
77 | }
78 | else
79 | {
80 | UseTarget = true;
81 | this.ToggleUseTarget.Enabled = false;
82 | this.ToggleUseTarget.Checked = UseTarget;
83 | this.ToggleUseVerbose.Enabled = true;
84 | this.RunExpertSelection.Enabled = false;
85 | this.RunExpertSelection.Visible = false;
86 | this.RunExpertSelection.Dock = DockStyle.None;
87 | this.RunPresetSelection.Enabled = true;
88 | this.RunPresetSelection.Visible = true;
89 | UpdateFilter();
90 | }
91 |
92 | UpdateHint();
93 | this.WriteInfo();
94 | }
95 |
96 |
97 |
98 |
99 | // Toggles and Options
100 | ///-----------------------------------------------------------------------------------
101 | private void ToggleUseExpert_OnCheckedChanged(object sender, EventArgs e)
102 | {
103 | UseExpert = this.ToggleUseExpert.Checked;
104 | SetCommandMode(UseExpert);
105 | }
106 |
107 |
108 | private void ToggleUseVerbose_OnCheckedChanged(object sender, EventArgs e)
109 | {
110 | UseVerbose = this.ToggleUseVerbose.Checked;
111 | }
112 |
113 |
114 | private void ToggleUseTarget_OnCheckedChanged(object sender, EventArgs e)
115 | {
116 | UseTarget = this.ToggleUseTarget.Checked;
117 | if (!UseTarget)
118 | {
119 | SetTargetPath(null);
120 | }
121 | }
122 |
123 |
124 | private void ToggleUseScrollToEnd_OnCheckedChanged(object sender, EventArgs e)
125 | {
126 | UseScrollToEnd = this.ToggleUseScrollToEnd.Checked;
127 | }
128 |
129 |
130 |
131 | // Selection
132 | ///-----------------------------------------------------------------------------------
133 | private void RunExpertSelection_OnTextChanged(object sender, EventArgs e)
134 | {
135 | RunExpertInput = this.RunExpertSelection.Text;
136 | }
137 |
138 |
139 |
140 | // Execute
141 | ///-----------------------------------------------------------------------------------
142 | private void ExecuteButton_OnClick(object sender, EventArgs e)
143 | {
144 | Execute();
145 | }
146 |
147 |
148 | private void RunExpertSelection_OnKeyPress(object sender, KeyPressEventArgs e)
149 | {
150 | if (e.KeyChar == (char)13)
151 | {
152 | Execute();
153 | }
154 | }
155 |
156 |
157 | private void FilterTextBox_OnKeyPress(object sender, KeyPressEventArgs e)
158 | {
159 | if (e.KeyChar == (char)13)
160 | {
161 | Execute();
162 | }
163 | }
164 |
165 |
166 |
167 | private void Execute()
168 | {
169 | if (IsBusy) //TODO: isBusy/return does not block multiple execution. Must fix before batching.
170 | {
171 | return;
172 | }
173 | else
174 | {
175 | SetBusyLight();
176 | string result;
177 | if (UseExpert)
178 | {
179 | if (UseTarget)
180 | {
181 | result = DisunityHelper.RequestCommand(RunExpertInput, ProcessTarget);
182 | }
183 | else
184 | {
185 | result = DisunityHelper.RequestCommand(RunExpertInput, null);
186 | }
187 | }
188 | else
189 | {
190 | result = DisunityHelper.RequestPreset(UseVerbose, RunPresetInput, ProcessTarget, ProcessFilter);
191 | }
192 | this.WriteOutput(result);
193 | SetReadyLight();
194 | }
195 | }
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 | }
204 | }
205 |
--------------------------------------------------------------------------------
/DisunityGuiHelper/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 |
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 |
122 | ..\Resources\DropZoneImage.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
123 |
124 |
--------------------------------------------------------------------------------
/DisunityGuiHelper/DisunityGuiHelper.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {82495A72-D51E-4CDD-870C-CD84DCA99BEF}
8 | Exe
9 | Properties
10 | DisunityGuiHelper
11 | DisunityGui
12 | v4.5
13 | 512
14 | publish\
15 | true
16 | Disk
17 | false
18 | Foreground
19 | 7
20 | Days
21 | false
22 | false
23 | true
24 | 0
25 | 1.0.0.%2a
26 | false
27 | false
28 | true
29 |
30 |
31 | AnyCPU
32 | true
33 | full
34 | false
35 | bin\Debug\
36 | DEBUG;TRACE
37 | prompt
38 | 4
39 |
40 |
41 | AnyCPU
42 | pdbonly
43 | false
44 | bin\Release\
45 | TRACE
46 | prompt
47 | 4
48 |
49 |
50 | DisunityGuiHelper.Program
51 |
52 |
53 | WinShellIcon.ico
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 | Form
73 |
74 |
75 | Form
76 |
77 |
78 | Form
79 |
80 |
81 | Form
82 |
83 |
84 | Form
85 |
86 |
87 | ToolWindow.cs
88 |
89 |
90 |
91 |
92 | Form
93 |
94 |
95 | ToolWindow.cs
96 |
97 |
98 | ResXFileCodeGenerator
99 | Resources.Designer.cs
100 | Designer
101 |
102 |
103 | True
104 | Resources.resx
105 | True
106 |
107 |
108 | PublicSettingsSingleFileGenerator
109 | Settings.Designer.cs
110 |
111 |
112 | True
113 | Settings.settings
114 | True
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 | False
123 | Microsoft .NET Framework 4.5 %28x86 and x64%29
124 | true
125 |
126 |
127 | False
128 | .NET Framework 3.5 SP1 Client Profile
129 | false
130 |
131 |
132 | False
133 | .NET Framework 3.5 SP1
134 | false
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
150 |
--------------------------------------------------------------------------------
/DisunityGuiHelper/src/ATA4.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Diagnostics;
6 | using System.IO;
7 | using System.Windows.Forms;
8 |
9 |
10 | namespace DisunityGuiHelper
11 | {
12 | class ATA4
13 | {
14 | public string[] CommandList = new string[]
15 | {
16 | /*0*/ " Help ",
17 | /*1*/ " list ",
18 | /*2*/ " info ",
19 | /*3*/ " info-stats ",
20 | /*4*/ " dump ",
21 | /*5*/ " dump-struct ",
22 | /*6*/ " extract ",
23 | /*7*/ " extract-raw ",
24 | /*8*/ " fixrefs ",
25 | /*9*/ " split ",
26 | /*10*/ " bundle-list ",
27 | /*11*/ " bundle-extract ",
28 | /*12*/ " learn "
29 | };
30 |
31 |
32 |
33 | public string[] CommandHintList = new string[]
34 | {
35 | /*0*/ "Help, the same as using the -h switch for further usage information.",
36 | /*1*/ "Lists all asset objects in a tabular form.",
37 | /*2*/ "Outputs various information for asset and asset bundle files.",
38 | /*3*/ "Outputs class usage statistics for asset files.",
39 | /*4*/ "Converts binary object data to human-readable plain text, similar to the binary2text tool shipped with the Unity editor.",
40 | /*5*/ "Like dump, but just for the structure information.",
41 | /*6*/ "Extracts asset objects to regular files (.txt, .wav, .tga, etc.)",
42 | /*7*/ "Extracts raw serialized object data. Could be useful for manual extraction if extract doesn't support the wanted asset type.",
43 | /*8*/ "Fixes shared asset references in extracted scene files by converting relative to absolute paths so they can be opened with the Unity editor correctly. Note: If the shared assets are moved to a different folder, the scene needs to be fixed again.",
44 | /*9*/ "Attempts to split an asset file into multiple smaller asset files.",
45 | /*10*/ "Lists all files contained in Unity webplayer bundles (*.unity3d).",
46 | /*11*/ "Extracts all packed files from Unity webplayer bundles (*.unity3d).",
47 | /*12*/ "Learns the structure information from the submitted files and stores any new structs in the database file structdb.dat. The database is required to deserialize standalone asset files, which usually don't contain any structure information."
48 | };
49 |
50 |
51 | public const int IDHelp = 0;
52 | public const int IDList = 1;
53 | public const int IDInfo = 2;
54 | public const int IDInfoStats = 3;
55 | public const int IDDump = 4;
56 | public const int IDDumpStruct = 5;
57 | public const int IDExtract = 6;
58 | public const int IDExtractRaw = 7;
59 | public const int IDFixRefs = 8;
60 | public const int IDSplit = 9;
61 | public const int IDBundleList = 10;
62 | public const int IDBundleExtract = 11;
63 | public const int IDLearn = 12;
64 | public static string ClassFilterMessage = "\n\nUse the class filter to only process objects of the specified class.\nThe filter expects a string with class names, separated by commas. \nSee SUPPORT.md for a list of supported asset types.".Replace("\n", Environment.NewLine);
65 |
66 |
67 | private string DisunityCommand;
68 |
69 |
70 |
71 | ///
72 | /// Object for interacting with ata4's disunity cli.
73 | ///
74 | public ATA4()
75 | {
76 | DisunityCommand = " -jar \"" + Program.DisunityPath + "\"";
77 | }
78 |
79 |
80 |
81 | public static string ShowHintMessage(int msg = 0)
82 | {
83 | if (msg == 0)
84 | {
85 | string s =
86 | "Type: AudioClip, Status: Ok" +
87 | "\nType: Font, Status: Ok, but wrong file extension for OpenType fonts" +
88 | "\nType: Mesh, Status: Unity 4 and uncompressed only" +
89 | "\nType: TextAsset, Status: Ok" +
90 | "\nType: Shader, Status: Ok" +
91 | "\nType: Texture2D, Status: Missing support for PVR, ATC and some exotic color formats" +
92 | "\nType: Cubemap, Status: Wrong texture flags" +
93 | "\nType: SubstanceArchive, Status: Ok" +
94 | "\nType: MovieTexture, Status: Ok";
95 | return s;
96 | }
97 | else
98 | {
99 | return "Sorry, no message at that index.";
100 | }
101 | }
102 |
103 |
104 |
105 | ///
106 | /// Sends user provided command and target to disunity.
107 | ///
108 | /// The command to execute.
109 | /// The file or directory to process.
110 | /// Disunitys standard output.
111 | public string RequestCommand(string cmd, string target = null)
112 | {
113 | if (!String.IsNullOrEmpty(target))
114 | {
115 | target = " \"" + target + "\"";
116 | }
117 | if (!String.IsNullOrEmpty(cmd))
118 | {
119 | cmd = " " + cmd;
120 | }
121 | return SendCommand(cmd + target);
122 | }
123 |
124 |
125 |
126 |
127 | ///
128 | /// Send command preset with parameters.
129 | ///
130 | /// Shows more verbose log output.
131 | /// The processing command to use.
132 | /// The file or directory to process.
133 | /// Only process objects that use these classes.
134 | /// Disunitys standard output.
135 | public string RequestPreset(bool verbose = true, int cmd = 0, string target = null, string filter = null)
136 | {
137 | if (cmd == 0)
138 | {
139 | return AskHelp();
140 | }
141 | string f = "";
142 | if (!String.IsNullOrEmpty(filter))
143 | {
144 | f = " -f " + filter + " ";
145 | }
146 | string v = "";
147 | if (verbose)
148 | {
149 | v = " -v ";
150 | }
151 | return SendCommand(CommandList[cmd] + f + v + " \"" + target + "\"");
152 | }
153 |
154 |
155 |
156 |
157 | ///
158 | /// Execute disunity with -h switch for basic usage information.
159 | ///
160 | /// Disunitys standard output.
161 | public string AskHelp()
162 | {
163 | return SendCommand(" -h");
164 | }
165 |
166 |
167 |
168 |
169 | ///
170 | /// Starts a new disunity process using the provided arguments.
171 | ///
172 | ///
173 | /// Disunitys standard output.
174 | private string SendCommand(string a_args)
175 | {
176 | ProcessStartInfo startinfo = new ProcessStartInfo();
177 | startinfo.FileName = Program.JavaPath;
178 | startinfo.Arguments = DisunityCommand + a_args;
179 | startinfo.UseShellExecute = false;
180 | startinfo.CreateNoWindow = true;
181 | startinfo.RedirectStandardInput = true;
182 | startinfo.RedirectStandardOutput = true;
183 | Console.WriteLine(">Executing.. " + Program.JavaPath + " " + DisunityCommand + " " + a_args + "\nBusy, this may take a minute or two.");
184 | Process javaProc = new Process();
185 | javaProc.StartInfo = startinfo;
186 | javaProc.Start();
187 | string output = javaProc.StandardOutput.ReadToEnd();
188 | javaProc.WaitForExit();
189 | // System.Threading.Thread.Sleep(1000);
190 | Console.WriteLine("Done executing.\n");
191 | return output;
192 | }
193 |
194 | }
195 | }
196 |
--------------------------------------------------------------------------------
/DisunityGuiHelper/src/ToolWindow.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace DisunityGuiHelper
2 | {
3 | partial class ToolWindow
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 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ToolWindow));
32 | this.OutputBox = new System.Windows.Forms.RichTextBox();
33 | this.DropZonePanel = new System.Windows.Forms.Panel();
34 | this.TargetBrowseButton = new System.Windows.Forms.Button();
35 | this.TargetTextBox = new System.Windows.Forms.TextBox();
36 | this.FilterTextBox = new System.Windows.Forms.TextBox();
37 | this.RunPresetSelection = new System.Windows.Forms.ComboBox();
38 | this.ExecuteButton = new System.Windows.Forms.Button();
39 | this.ClearLogOutputButton = new System.Windows.Forms.Button();
40 | this.SaveLogOutputButton = new System.Windows.Forms.Button();
41 | this.BrowseFileDialog = new System.Windows.Forms.OpenFileDialog();
42 | this.BrowseFolderDialog = new System.Windows.Forms.FolderBrowserDialog();
43 | this.SaveFileDialog = new System.Windows.Forms.SaveFileDialog();
44 | this.WindowSplitContainer = new System.Windows.Forms.SplitContainer();
45 | this.UprightSplitContainer = new System.Windows.Forms.SplitContainer();
46 | this.panel3 = new System.Windows.Forms.Panel();
47 | this.BusyStatusLabel = new System.Windows.Forms.Label();
48 | this.BusyIndicator = new System.Windows.Forms.Panel();
49 | this.WindowLayout = new System.Windows.Forms.TableLayoutPanel();
50 | this.HelpHintTextbox = new System.Windows.Forms.TextBox();
51 | this.panel4 = new System.Windows.Forms.Panel();
52 | this.panel5 = new System.Windows.Forms.Panel();
53 | this.RunExpertSelection = new System.Windows.Forms.TextBox();
54 | this.panel2 = new System.Windows.Forms.Panel();
55 | this.CommandLabel = new System.Windows.Forms.Label();
56 | this.ToggleUseExpert = new System.Windows.Forms.CheckBox();
57 | this.TargetPanel = new System.Windows.Forms.Panel();
58 | this.ToggleUseLineHightlight = new System.Windows.Forms.CheckBox();
59 | this.SupportButton = new System.Windows.Forms.Button();
60 | this.ToggleUseScrollToEnd = new System.Windows.Forms.CheckBox();
61 | this.ToggleUseVerbose = new System.Windows.Forms.CheckBox();
62 | this.panel1 = new System.Windows.Forms.Panel();
63 | this.FilterLabel = new System.Windows.Forms.Label();
64 | this.ToggleUseTarget = new System.Windows.Forms.CheckBox();
65 | ((System.ComponentModel.ISupportInitialize)(this.WindowSplitContainer)).BeginInit();
66 | this.WindowSplitContainer.Panel1.SuspendLayout();
67 | this.WindowSplitContainer.Panel2.SuspendLayout();
68 | this.WindowSplitContainer.SuspendLayout();
69 | ((System.ComponentModel.ISupportInitialize)(this.UprightSplitContainer)).BeginInit();
70 | this.UprightSplitContainer.Panel1.SuspendLayout();
71 | this.UprightSplitContainer.Panel2.SuspendLayout();
72 | this.UprightSplitContainer.SuspendLayout();
73 | this.panel3.SuspendLayout();
74 | this.WindowLayout.SuspendLayout();
75 | this.panel4.SuspendLayout();
76 | this.panel5.SuspendLayout();
77 | this.panel2.SuspendLayout();
78 | this.TargetPanel.SuspendLayout();
79 | this.panel1.SuspendLayout();
80 | this.SuspendLayout();
81 | //
82 | // OutputBox
83 | //
84 | this.OutputBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
85 | this.OutputBox.Dock = System.Windows.Forms.DockStyle.Fill;
86 | this.OutputBox.HideSelection = false;
87 | this.OutputBox.Location = new System.Drawing.Point(0, 0);
88 | this.OutputBox.Name = "OutputBox";
89 | this.OutputBox.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.ForcedBoth;
90 | this.OutputBox.ShowSelectionMargin = true;
91 | this.OutputBox.Size = new System.Drawing.Size(579, 211);
92 | this.OutputBox.TabIndex = 0;
93 | this.OutputBox.TabStop = false;
94 | this.OutputBox.Text = "";
95 | this.OutputBox.WordWrap = false;
96 | this.OutputBox.LinkClicked += new System.Windows.Forms.LinkClickedEventHandler(this.OutputBox_LinkClicked);
97 | this.OutputBox.SelectionChanged += new System.EventHandler(this.OutputBox_SelectionChanged);
98 | this.OutputBox.Click += new System.EventHandler(this.OutputBox_OnClick);
99 | this.OutputBox.TextChanged += new System.EventHandler(this.OutputBox_TextChanged);
100 | this.OutputBox.MouseUp += new System.Windows.Forms.MouseEventHandler(this.OutputBox_MouseUp);
101 | //
102 | // DropZonePanel
103 | //
104 | this.DropZonePanel.AllowDrop = true;
105 | this.DropZonePanel.BackColor = System.Drawing.SystemColors.ControlLightLight;
106 | this.DropZonePanel.BackgroundImage = global::DisunityGuiHelper.Properties.Resources.DropZoneImage;
107 | this.DropZonePanel.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
108 | this.DropZonePanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
109 | this.DropZonePanel.Location = new System.Drawing.Point(5, 38);
110 | this.DropZonePanel.MaximumSize = new System.Drawing.Size(100, 75);
111 | this.DropZonePanel.MinimumSize = new System.Drawing.Size(100, 75);
112 | this.DropZonePanel.Name = "DropZonePanel";
113 | this.DropZonePanel.Size = new System.Drawing.Size(100, 75);
114 | this.DropZonePanel.TabIndex = 0;
115 | this.DropZonePanel.DragDrop += new System.Windows.Forms.DragEventHandler(this.DropZonePanel_OnDragDrop);
116 | this.DropZonePanel.DragEnter += new System.Windows.Forms.DragEventHandler(this.DropZonePanel_OnDragEnter);
117 | //
118 | // TargetBrowseButton
119 | //
120 | this.TargetBrowseButton.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.MenuHighlight;
121 | this.TargetBrowseButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
122 | this.TargetBrowseButton.Location = new System.Drawing.Point(5, 7);
123 | this.TargetBrowseButton.Name = "TargetBrowseButton";
124 | this.TargetBrowseButton.Size = new System.Drawing.Size(100, 25);
125 | this.TargetBrowseButton.TabIndex = 1;
126 | this.TargetBrowseButton.Text = "Browse";
127 | this.TargetBrowseButton.UseVisualStyleBackColor = true;
128 | this.TargetBrowseButton.Click += new System.EventHandler(this.TargetBrowseButton_OnClick);
129 | //
130 | // TargetTextBox
131 | //
132 | this.TargetTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
133 | | System.Windows.Forms.AnchorStyles.Left)
134 | | System.Windows.Forms.AnchorStyles.Right)));
135 | this.TargetTextBox.BackColor = System.Drawing.SystemColors.InactiveBorder;
136 | this.WindowLayout.SetColumnSpan(this.TargetTextBox, 2);
137 | this.TargetTextBox.Enabled = false;
138 | this.TargetTextBox.Location = new System.Drawing.Point(3, 3);
139 | this.TargetTextBox.Name = "TargetTextBox";
140 | this.TargetTextBox.ReadOnly = true;
141 | this.TargetTextBox.Size = new System.Drawing.Size(459, 20);
142 | this.TargetTextBox.TabIndex = 1;
143 | this.TargetTextBox.TabStop = false;
144 | //
145 | // FilterTextBox
146 | //
147 | this.FilterTextBox.BackColor = System.Drawing.SystemColors.InactiveBorder;
148 | this.FilterTextBox.Dock = System.Windows.Forms.DockStyle.Fill;
149 | this.FilterTextBox.Location = new System.Drawing.Point(0, 0);
150 | this.FilterTextBox.Name = "FilterTextBox";
151 | this.FilterTextBox.Size = new System.Drawing.Size(259, 20);
152 | this.FilterTextBox.TabIndex = 0;
153 | this.FilterTextBox.TextChanged += new System.EventHandler(this.FilterTextBox_OnTextChanged);
154 | this.FilterTextBox.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.FilterTextBox_OnKeyPress);
155 | //
156 | // RunPresetSelection
157 | //
158 | this.RunPresetSelection.BackColor = System.Drawing.SystemColors.InactiveBorder;
159 | this.RunPresetSelection.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
160 | this.RunPresetSelection.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
161 | this.RunPresetSelection.FormattingEnabled = true;
162 | this.RunPresetSelection.Location = new System.Drawing.Point(3, 0);
163 | this.RunPresetSelection.Name = "RunPresetSelection";
164 | this.RunPresetSelection.Size = new System.Drawing.Size(100, 21);
165 | this.RunPresetSelection.TabIndex = 0;
166 | this.RunPresetSelection.SelectionChangeCommitted += new System.EventHandler(this.RunPresetSelection_OnChangeCommitted);
167 | //
168 | // ExecuteButton
169 | //
170 | this.ExecuteButton.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.MenuHighlight;
171 | this.ExecuteButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
172 | this.ExecuteButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
173 | this.ExecuteButton.Location = new System.Drawing.Point(5, 119);
174 | this.ExecuteButton.Name = "ExecuteButton";
175 | this.ExecuteButton.Size = new System.Drawing.Size(100, 25);
176 | this.ExecuteButton.TabIndex = 0;
177 | this.ExecuteButton.Text = "Execute";
178 | this.ExecuteButton.Click += new System.EventHandler(this.ExecuteButton_OnClick);
179 | //
180 | // ClearLogOutputButton
181 | //
182 | this.ClearLogOutputButton.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.MenuHighlight;
183 | this.ClearLogOutputButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
184 | this.ClearLogOutputButton.Location = new System.Drawing.Point(125, 2);
185 | this.ClearLogOutputButton.Name = "ClearLogOutputButton";
186 | this.ClearLogOutputButton.Size = new System.Drawing.Size(60, 24);
187 | this.ClearLogOutputButton.TabIndex = 3;
188 | this.ClearLogOutputButton.Text = "Clear";
189 | this.ClearLogOutputButton.UseVisualStyleBackColor = true;
190 | this.ClearLogOutputButton.Click += new System.EventHandler(this.ClearLogOutputButton_OnClick);
191 | //
192 | // SaveLogOutputButton
193 | //
194 | this.SaveLogOutputButton.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.MenuHighlight;
195 | this.SaveLogOutputButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
196 | this.SaveLogOutputButton.Location = new System.Drawing.Point(125, 29);
197 | this.SaveLogOutputButton.Name = "SaveLogOutputButton";
198 | this.SaveLogOutputButton.Size = new System.Drawing.Size(60, 25);
199 | this.SaveLogOutputButton.TabIndex = 4;
200 | this.SaveLogOutputButton.Text = "Save As";
201 | this.SaveLogOutputButton.UseVisualStyleBackColor = true;
202 | this.SaveLogOutputButton.Click += new System.EventHandler(this.SaveLogOutputButton_OnClick);
203 | //
204 | // BrowseFileDialog
205 | //
206 | this.BrowseFileDialog.Title = "Target Unity Asset";
207 | //
208 | // WindowSplitContainer
209 | //
210 | this.WindowSplitContainer.BackColor = System.Drawing.SystemColors.ControlLight;
211 | this.WindowSplitContainer.Dock = System.Windows.Forms.DockStyle.Fill;
212 | this.WindowSplitContainer.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
213 | this.WindowSplitContainer.IsSplitterFixed = true;
214 | this.WindowSplitContainer.Location = new System.Drawing.Point(0, 0);
215 | this.WindowSplitContainer.Name = "WindowSplitContainer";
216 | this.WindowSplitContainer.Orientation = System.Windows.Forms.Orientation.Horizontal;
217 | //
218 | // WindowSplitContainer.Panel1
219 | //
220 | this.WindowSplitContainer.Panel1.BackColor = System.Drawing.Color.AliceBlue;
221 | this.WindowSplitContainer.Panel1.Controls.Add(this.UprightSplitContainer);
222 | this.WindowSplitContainer.Panel1MinSize = 100;
223 | //
224 | // WindowSplitContainer.Panel2
225 | //
226 | this.WindowSplitContainer.Panel2.Controls.Add(this.OutputBox);
227 | this.WindowSplitContainer.Size = new System.Drawing.Size(579, 387);
228 | this.WindowSplitContainer.SplitterDistance = 175;
229 | this.WindowSplitContainer.SplitterWidth = 1;
230 | this.WindowSplitContainer.TabIndex = 2;
231 | //
232 | // UprightSplitContainer
233 | //
234 | this.UprightSplitContainer.BackColor = System.Drawing.SystemColors.ControlLightLight;
235 | this.UprightSplitContainer.Dock = System.Windows.Forms.DockStyle.Fill;
236 | this.UprightSplitContainer.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
237 | this.UprightSplitContainer.IsSplitterFixed = true;
238 | this.UprightSplitContainer.Location = new System.Drawing.Point(0, 0);
239 | this.UprightSplitContainer.Name = "UprightSplitContainer";
240 | //
241 | // UprightSplitContainer.Panel1
242 | //
243 | this.UprightSplitContainer.Panel1.BackColor = System.Drawing.SystemColors.ControlLightLight;
244 | this.UprightSplitContainer.Panel1.Controls.Add(this.DropZonePanel);
245 | this.UprightSplitContainer.Panel1.Controls.Add(this.TargetBrowseButton);
246 | this.UprightSplitContainer.Panel1.Controls.Add(this.ExecuteButton);
247 | this.UprightSplitContainer.Panel1.Controls.Add(this.panel3);
248 | this.UprightSplitContainer.Panel1MinSize = 110;
249 | //
250 | // UprightSplitContainer.Panel2
251 | //
252 | this.UprightSplitContainer.Panel2.Controls.Add(this.WindowLayout);
253 | this.UprightSplitContainer.Panel2MinSize = 300;
254 | this.UprightSplitContainer.Size = new System.Drawing.Size(579, 175);
255 | this.UprightSplitContainer.SplitterDistance = 110;
256 | this.UprightSplitContainer.TabIndex = 0;
257 | //
258 | // panel3
259 | //
260 | this.panel3.Controls.Add(this.BusyStatusLabel);
261 | this.panel3.Controls.Add(this.BusyIndicator);
262 | this.panel3.Location = new System.Drawing.Point(20, 149);
263 | this.panel3.Name = "panel3";
264 | this.panel3.Size = new System.Drawing.Size(67, 22);
265 | this.panel3.TabIndex = 7;
266 | //
267 | // BusyStatusLabel
268 | //
269 | this.BusyStatusLabel.AutoEllipsis = true;
270 | this.BusyStatusLabel.Location = new System.Drawing.Point(24, 4);
271 | this.BusyStatusLabel.Name = "BusyStatusLabel";
272 | this.BusyStatusLabel.Size = new System.Drawing.Size(38, 13);
273 | this.BusyStatusLabel.TabIndex = 2;
274 | this.BusyStatusLabel.Text = "Ready";
275 | //
276 | // BusyIndicator
277 | //
278 | this.BusyIndicator.BackColor = System.Drawing.Color.MediumSeaGreen;
279 | this.BusyIndicator.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
280 | this.BusyIndicator.Location = new System.Drawing.Point(3, 3);
281 | this.BusyIndicator.MaximumSize = new System.Drawing.Size(15, 15);
282 | this.BusyIndicator.MinimumSize = new System.Drawing.Size(15, 15);
283 | this.BusyIndicator.Name = "BusyIndicator";
284 | this.BusyIndicator.Size = new System.Drawing.Size(15, 15);
285 | this.BusyIndicator.TabIndex = 1;
286 | //
287 | // WindowLayout
288 | //
289 | this.WindowLayout.ColumnCount = 2;
290 | this.WindowLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 200F));
291 | this.WindowLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
292 | this.WindowLayout.Controls.Add(this.HelpHintTextbox, 1, 3);
293 | this.WindowLayout.Controls.Add(this.TargetTextBox, 0, 0);
294 | this.WindowLayout.Controls.Add(this.panel4, 1, 2);
295 | this.WindowLayout.Controls.Add(this.panel5, 1, 1);
296 | this.WindowLayout.Controls.Add(this.panel2, 0, 1);
297 | this.WindowLayout.Controls.Add(this.TargetPanel, 0, 3);
298 | this.WindowLayout.Controls.Add(this.panel1, 0, 2);
299 | this.WindowLayout.Dock = System.Windows.Forms.DockStyle.Fill;
300 | this.WindowLayout.Location = new System.Drawing.Point(0, 0);
301 | this.WindowLayout.Name = "WindowLayout";
302 | this.WindowLayout.RowCount = 4;
303 | this.WindowLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F));
304 | this.WindowLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
305 | this.WindowLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
306 | this.WindowLayout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 27F));
307 | this.WindowLayout.Size = new System.Drawing.Size(465, 175);
308 | this.WindowLayout.TabIndex = 0;
309 | //
310 | // HelpHintTextbox
311 | //
312 | this.HelpHintTextbox.BackColor = System.Drawing.SystemColors.InactiveBorder;
313 | this.HelpHintTextbox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
314 | this.HelpHintTextbox.Dock = System.Windows.Forms.DockStyle.Fill;
315 | this.HelpHintTextbox.Location = new System.Drawing.Point(203, 88);
316 | this.HelpHintTextbox.Multiline = true;
317 | this.HelpHintTextbox.Name = "HelpHintTextbox";
318 | this.HelpHintTextbox.ReadOnly = true;
319 | this.HelpHintTextbox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
320 | this.HelpHintTextbox.Size = new System.Drawing.Size(259, 84);
321 | this.HelpHintTextbox.TabIndex = 0;
322 | this.HelpHintTextbox.TabStop = false;
323 | //
324 | // panel4
325 | //
326 | this.panel4.Controls.Add(this.FilterTextBox);
327 | this.panel4.Dock = System.Windows.Forms.DockStyle.Fill;
328 | this.panel4.Location = new System.Drawing.Point(203, 58);
329 | this.panel4.Name = "panel4";
330 | this.panel4.Size = new System.Drawing.Size(259, 24);
331 | this.panel4.TabIndex = 9;
332 | //
333 | // panel5
334 | //
335 | this.panel5.Controls.Add(this.RunPresetSelection);
336 | this.panel5.Controls.Add(this.RunExpertSelection);
337 | this.panel5.Dock = System.Windows.Forms.DockStyle.Fill;
338 | this.panel5.Location = new System.Drawing.Point(203, 28);
339 | this.panel5.Name = "panel5";
340 | this.panel5.Size = new System.Drawing.Size(259, 24);
341 | this.panel5.TabIndex = 16;
342 | //
343 | // RunExpertSelection
344 | //
345 | this.RunExpertSelection.AcceptsReturn = true;
346 | this.RunExpertSelection.BackColor = System.Drawing.SystemColors.InactiveBorder;
347 | this.RunExpertSelection.Location = new System.Drawing.Point(109, 1);
348 | this.RunExpertSelection.Name = "RunExpertSelection";
349 | this.RunExpertSelection.Size = new System.Drawing.Size(100, 20);
350 | this.RunExpertSelection.TabIndex = 1;
351 | this.RunExpertSelection.TextChanged += new System.EventHandler(this.RunExpertSelection_OnTextChanged);
352 | this.RunExpertSelection.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.RunExpertSelection_OnKeyPress);
353 | //
354 | // panel2
355 | //
356 | this.panel2.Controls.Add(this.CommandLabel);
357 | this.panel2.Controls.Add(this.ToggleUseExpert);
358 | this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
359 | this.panel2.Location = new System.Drawing.Point(3, 28);
360 | this.panel2.Name = "panel2";
361 | this.panel2.Size = new System.Drawing.Size(194, 24);
362 | this.panel2.TabIndex = 15;
363 | //
364 | // CommandLabel
365 | //
366 | this.CommandLabel.AutoSize = true;
367 | this.CommandLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
368 | this.CommandLabel.Location = new System.Drawing.Point(129, 5);
369 | this.CommandLabel.Name = "CommandLabel";
370 | this.CommandLabel.Size = new System.Drawing.Size(61, 13);
371 | this.CommandLabel.TabIndex = 8;
372 | this.CommandLabel.Text = "Command";
373 | //
374 | // ToggleUseExpert
375 | //
376 | this.ToggleUseExpert.AutoSize = true;
377 | this.ToggleUseExpert.Location = new System.Drawing.Point(12, 4);
378 | this.ToggleUseExpert.Name = "ToggleUseExpert";
379 | this.ToggleUseExpert.Size = new System.Drawing.Size(86, 17);
380 | this.ToggleUseExpert.TabIndex = 0;
381 | this.ToggleUseExpert.Text = "Expert Mode";
382 | this.ToggleUseExpert.UseVisualStyleBackColor = true;
383 | this.ToggleUseExpert.CheckedChanged += new System.EventHandler(this.ToggleUseExpert_OnCheckedChanged);
384 | //
385 | // TargetPanel
386 | //
387 | this.TargetPanel.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
388 | this.TargetPanel.Controls.Add(this.ToggleUseLineHightlight);
389 | this.TargetPanel.Controls.Add(this.SupportButton);
390 | this.TargetPanel.Controls.Add(this.ToggleUseScrollToEnd);
391 | this.TargetPanel.Controls.Add(this.ClearLogOutputButton);
392 | this.TargetPanel.Controls.Add(this.SaveLogOutputButton);
393 | this.TargetPanel.Controls.Add(this.ToggleUseVerbose);
394 | this.TargetPanel.Dock = System.Windows.Forms.DockStyle.Fill;
395 | this.TargetPanel.Location = new System.Drawing.Point(3, 88);
396 | this.TargetPanel.Name = "TargetPanel";
397 | this.TargetPanel.Size = new System.Drawing.Size(194, 84);
398 | this.TargetPanel.TabIndex = 14;
399 | //
400 | // ToggleUseLineHightlight
401 | //
402 | this.ToggleUseLineHightlight.AutoSize = true;
403 | this.ToggleUseLineHightlight.Location = new System.Drawing.Point(10, 59);
404 | this.ToggleUseLineHightlight.Name = "ToggleUseLineHightlight";
405 | this.ToggleUseLineHightlight.Size = new System.Drawing.Size(94, 17);
406 | this.ToggleUseLineHightlight.TabIndex = 2;
407 | this.ToggleUseLineHightlight.Text = "Mark Highlight";
408 | this.ToggleUseLineHightlight.UseVisualStyleBackColor = true;
409 | this.ToggleUseLineHightlight.CheckedChanged += new System.EventHandler(this.ToggleUseLineHightlight_CheckedChanged);
410 | //
411 | // SupportButton
412 | //
413 | this.SupportButton.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.MenuHighlight;
414 | this.SupportButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
415 | this.SupportButton.Location = new System.Drawing.Point(125, 56);
416 | this.SupportButton.Name = "SupportButton";
417 | this.SupportButton.Size = new System.Drawing.Size(60, 23);
418 | this.SupportButton.TabIndex = 5;
419 | this.SupportButton.Text = "Support";
420 | this.SupportButton.UseVisualStyleBackColor = true;
421 | this.SupportButton.Click += new System.EventHandler(this.SupportButton_OnClick);
422 | //
423 | // ToggleUseScrollToEnd
424 | //
425 | this.ToggleUseScrollToEnd.AutoSize = true;
426 | this.ToggleUseScrollToEnd.Location = new System.Drawing.Point(10, 33);
427 | this.ToggleUseScrollToEnd.Name = "ToggleUseScrollToEnd";
428 | this.ToggleUseScrollToEnd.Size = new System.Drawing.Size(72, 17);
429 | this.ToggleUseScrollToEnd.TabIndex = 1;
430 | this.ToggleUseScrollToEnd.Text = "Autoscroll";
431 | this.ToggleUseScrollToEnd.UseVisualStyleBackColor = true;
432 | this.ToggleUseScrollToEnd.CheckedChanged += new System.EventHandler(this.ToggleUseScrollToEnd_OnCheckedChanged);
433 | //
434 | // ToggleUseVerbose
435 | //
436 | this.ToggleUseVerbose.AutoSize = true;
437 | this.ToggleUseVerbose.Location = new System.Drawing.Point(10, 8);
438 | this.ToggleUseVerbose.Name = "ToggleUseVerbose";
439 | this.ToggleUseVerbose.Size = new System.Drawing.Size(65, 17);
440 | this.ToggleUseVerbose.TabIndex = 0;
441 | this.ToggleUseVerbose.Text = "Verbose";
442 | this.ToggleUseVerbose.UseVisualStyleBackColor = true;
443 | this.ToggleUseVerbose.CheckedChanged += new System.EventHandler(this.ToggleUseVerbose_OnCheckedChanged);
444 | //
445 | // panel1
446 | //
447 | this.panel1.Controls.Add(this.FilterLabel);
448 | this.panel1.Controls.Add(this.ToggleUseTarget);
449 | this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
450 | this.panel1.Location = new System.Drawing.Point(3, 58);
451 | this.panel1.Name = "panel1";
452 | this.panel1.Size = new System.Drawing.Size(194, 24);
453 | this.panel1.TabIndex = 15;
454 | //
455 | // FilterLabel
456 | //
457 | this.FilterLabel.AutoSize = true;
458 | this.FilterLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
459 | this.FilterLabel.Location = new System.Drawing.Point(155, 4);
460 | this.FilterLabel.Name = "FilterLabel";
461 | this.FilterLabel.Size = new System.Drawing.Size(35, 13);
462 | this.FilterLabel.TabIndex = 6;
463 | this.FilterLabel.Text = "Filter";
464 | //
465 | // ToggleUseTarget
466 | //
467 | this.ToggleUseTarget.AutoSize = true;
468 | this.ToggleUseTarget.Location = new System.Drawing.Point(12, 4);
469 | this.ToggleUseTarget.Name = "ToggleUseTarget";
470 | this.ToggleUseTarget.Size = new System.Drawing.Size(79, 17);
471 | this.ToggleUseTarget.TabIndex = 0;
472 | this.ToggleUseTarget.Text = "Use Target";
473 | this.ToggleUseTarget.UseVisualStyleBackColor = true;
474 | this.ToggleUseTarget.CheckedChanged += new System.EventHandler(this.ToggleUseTarget_OnCheckedChanged);
475 | //
476 | // ToolWindow
477 | //
478 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
479 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
480 | this.BackColor = System.Drawing.SystemColors.ControlLightLight;
481 | this.ClientSize = new System.Drawing.Size(579, 387);
482 | this.Controls.Add(this.WindowSplitContainer);
483 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
484 | this.MinimumSize = new System.Drawing.Size(595, 425);
485 | this.Name = "ToolWindow";
486 | this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
487 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
488 | this.Text = "Disunity Graphical Interface";
489 | this.WindowSplitContainer.Panel1.ResumeLayout(false);
490 | this.WindowSplitContainer.Panel2.ResumeLayout(false);
491 | ((System.ComponentModel.ISupportInitialize)(this.WindowSplitContainer)).EndInit();
492 | this.WindowSplitContainer.ResumeLayout(false);
493 | this.UprightSplitContainer.Panel1.ResumeLayout(false);
494 | this.UprightSplitContainer.Panel2.ResumeLayout(false);
495 | ((System.ComponentModel.ISupportInitialize)(this.UprightSplitContainer)).EndInit();
496 | this.UprightSplitContainer.ResumeLayout(false);
497 | this.panel3.ResumeLayout(false);
498 | this.WindowLayout.ResumeLayout(false);
499 | this.WindowLayout.PerformLayout();
500 | this.panel4.ResumeLayout(false);
501 | this.panel4.PerformLayout();
502 | this.panel5.ResumeLayout(false);
503 | this.panel5.PerformLayout();
504 | this.panel2.ResumeLayout(false);
505 | this.panel2.PerformLayout();
506 | this.TargetPanel.ResumeLayout(false);
507 | this.TargetPanel.PerformLayout();
508 | this.panel1.ResumeLayout(false);
509 | this.panel1.PerformLayout();
510 | this.ResumeLayout(false);
511 |
512 | }
513 |
514 | #endregion
515 |
516 | private System.Windows.Forms.RichTextBox OutputBox;
517 | private System.Windows.Forms.Panel DropZonePanel;
518 | private System.Windows.Forms.Button ClearLogOutputButton;
519 | private System.Windows.Forms.Button SaveLogOutputButton;
520 | private System.Windows.Forms.Button ExecuteButton;
521 | private System.Windows.Forms.ComboBox RunPresetSelection;
522 | private System.Windows.Forms.Button TargetBrowseButton;
523 | private System.Windows.Forms.TextBox TargetTextBox;
524 | private System.Windows.Forms.OpenFileDialog BrowseFileDialog;
525 | private System.Windows.Forms.FolderBrowserDialog BrowseFolderDialog;
526 | private System.Windows.Forms.SaveFileDialog SaveFileDialog;
527 | private System.Windows.Forms.SplitContainer WindowSplitContainer;
528 | private System.Windows.Forms.TextBox FilterTextBox;
529 | private System.Windows.Forms.Label FilterLabel;
530 | private System.Windows.Forms.Panel panel3;
531 | private System.Windows.Forms.Label BusyStatusLabel;
532 | private System.Windows.Forms.Panel BusyIndicator;
533 | private System.Windows.Forms.Label CommandLabel;
534 | private System.Windows.Forms.Panel panel4;
535 | private System.Windows.Forms.CheckBox ToggleUseVerbose;
536 | private System.Windows.Forms.CheckBox ToggleUseExpert;
537 | private System.Windows.Forms.TextBox RunExpertSelection;
538 | private System.Windows.Forms.TextBox HelpHintTextbox;
539 | private System.Windows.Forms.Panel TargetPanel;
540 | private System.Windows.Forms.CheckBox ToggleUseTarget;
541 | private System.Windows.Forms.CheckBox ToggleUseScrollToEnd;
542 | private System.Windows.Forms.SplitContainer UprightSplitContainer;
543 | private System.Windows.Forms.Panel panel1;
544 | private System.Windows.Forms.TableLayoutPanel WindowLayout;
545 | private System.Windows.Forms.Panel panel2;
546 | private System.Windows.Forms.Panel panel5;
547 | private System.Windows.Forms.Button SupportButton;
548 | private System.Windows.Forms.CheckBox ToggleUseLineHightlight;
549 | }
550 | }
551 |
552 |
--------------------------------------------------------------------------------