diff --git a/Quad64.csproj b/Quad64.csproj
index 124fe51..eb07c2f 100644
--- a/Quad64.csproj
+++ b/Quad64.csproj
@@ -170,6 +170,13 @@
Form
+
+ Form
+
+
+ ThemeSelector.cs
+
+
@@ -193,6 +200,7 @@
+
@@ -253,6 +261,9 @@
TextureEditor.cs
+
+ ThemeSelector.cs
+
PreserveNewest
@@ -271,6 +282,9 @@
PreserveNewest
+
+ Always
+
@@ -282,6 +296,9 @@
Settings.settings
True
+
+ Always
+
@@ -305,6 +322,9 @@
+
+ Always
+
diff --git a/data/themes/Making Themes.txt b/data/themes/Making Themes.txt
new file mode 100644
index 0000000..fb7591c
--- /dev/null
+++ b/data/themes/Making Themes.txt
@@ -0,0 +1,136 @@
+As of Quad64 v0.2 (Beta Build 5) you can now customize the look of the entire program. Currently it only supports changing RGB colors, but I might expand it in the future if enough people ask for it.
+
+You can look at "dark.json" to see how the data should be layed out. Make a copy and play around with the colors to see what you can make of it.
+
+Do note that if you don't specify a color, a default color will be chosen instead.
+
+------------------
+Modifiable colors
+------------------
+
+[Defaults]
+Background
+Text
+Panel-Background
+ListBox-Background
+ListBox-Text
+ListBox-Highlight
+ListBox-HighlightedText
+TextBox-Background
+TextBox-Text
+TextBox-Comments
+DropDown-Background
+DropDown-Text
+Button-Background
+Button-Text
+NumericUpDown-Background
+NumericUpDown-Text
+
+[Main]
+Background
+Controls-Background
+Controls-Text
+Controls-Button-Background
+Controls-Button-Text
+Controls-DropDown-Background
+Controls-DropDown-Text
+Controls-NumericUpDown-Background
+Controls-NumericUpDown-Text
+MenuBar-Background
+MenuBar-Text
+MenuBar-Item-Border
+MenuBar-Item-Selected
+MenuBar-Item-Highlight
+Properties-Background
+Properties-Text
+Properties-Lines
+TreeView-Background
+TreeView-Text
+TreeView-Highlight
+TreeView-3DObjectsLabel
+TreeView-MacroObjectsLabel
+TreeView-SpecialObjectsLabel
+TreeView-WarpsLabel
+
+[TextureEditor]
+Background
+LevelTab-Background-Left
+LevelTab-Background-Middle
+LevelTab-Background-Right
+LevelTab-Text
+LevelTab-Button-Background
+LevelTab-Button-Text
+OtherTab-Background-Left
+OtherTab-Background-Middle
+OtherTab-Background-Right
+OtherTab-Text
+OtherTab-Button-Background
+OtherTab-Button-Text
+SkyTab-Background-Left
+SkyTab-Background-Right
+SkyTab-Text
+SkyTab-Button-Background
+SkyTab-Button-Text
+
+[ObjectCombos]
+Background
+Text
+3DObjects-Title
+3DObjects-Item
+3DObjects-Item-Alt
+3DObjects-Item-Highlight
+3DObjects-Item-Highlight-Text
+MacroObjects-Title
+MacroObjects-Item
+MacroObjects-Item-Alt
+MacroObjects-Item-Highlight
+MacroObjects-Item-Highlight-Text
+SpecialObjects-Title
+SpecialObjects-Item
+SpecialObjects-Item-Alt
+SpecialObjects-Item-Highlight
+SpecialObjects-Item-Highlight-Text
+Other-Title
+Other-Item
+Other-Item-Alt
+Other-Item-Highlight
+Other-Item-Highlight-Text
+
+[ScriptDumps]
+Background
+Text
+Panel-Background
+DropDown-Background
+DropDown-Text
+GeoLayoutScripts-AreaPanel-Background
+GeoLayoutScripts-AreaPanel-Text
+Fast3DScripts-AreaPanel-Background
+Fast3DScripts-AreaPanel-Text
+Objects-ListBox-Background
+Objects-ListBox-Background
+Objects-ListBox-Highlight
+Objects-ListBox-HighlightedText
+Fast3DScripts-ListBox-Background
+Fast3DScripts-ListBox-Text
+Fast3DScripts-ListBox-Highlight
+Fast3DScripts-ListBox-HighlightedText
+LevelScripts-Background
+LevelScripts-Text
+LevelScripts-Comments
+GeoLayoutScripts-Background
+GeoLayoutScripts-Text
+GeoLayoutScripts-Comments
+Fast3DScripts-Background
+Fast3DScripts-Text
+Fast3DScripts-Comments
+BehaviorScripts-Background
+BehaviorScripts-Text
+BehaviorScripts-Comments
+
+
+
+
+
+
+
+
diff --git a/data/themes/dark.json b/data/themes/dark.json
new file mode 100644
index 0000000..3efa611
--- /dev/null
+++ b/data/themes/dark.json
@@ -0,0 +1,113 @@
+{
+ "Info" : {
+ "Name" : "Quad64 Dark Theme",
+ "Author" : "Davideesk",
+ "Note" : "This dark theme does not show every possible option you can change, so please look at 'Making Themes.txt' for more information!"
+ },
+
+ "Defaults" : {
+ "Background" : { "R":40, "G":40, "B":40 },
+ "Text" : { "R":240, "G":240, "B":240 },
+ "Panel-Background" : { "R":70, "G":70, "B":70 },
+ "ListBox-Background" : { "R":40, "G":40, "B":40 },
+ "ListBox-Text" : { "R":240, "G":240, "B":240 },
+ "ListBox-Highlight" : { "R":0, "G":80, "B":140 },
+ "ListBox-HighlightedText" : { "R":240, "G":240, "B":240 },
+ "TextBox-Background" : { "R":40, "G":40, "B":40 },
+ "TextBox-Text" : { "R":240, "G":240, "B":240 },
+ "TextBox-Comments" : { "R":0, "G":240, "B":0 },
+ "DropDown-Background" : { "R":40, "G":40, "B":40 },
+ "DropDown-Text" : { "R":240, "G":240, "B":240 },
+ "Button-Background" : { "R":40, "G":40, "B":40 },
+ "Button-Text" : { "R":240, "G":240, "B":240 },
+ "NumericUpDown-Background" : { "R":40, "G":40, "B":40 },
+ "NumericUpDown-Text" : { "R":240, "G":240, "B":240 }
+ },
+
+ "Main" : {
+ "Controls-Background" : { "R":70, "G":70, "B":70 },
+
+ "MenuBar-Item-Border" : { "R":0, "G":0, "B":0 },
+ "MenuBar-Item-Selected" : { "R":0x90, "G":0x90, "B":0x90 },
+ "MenuBar-Item-Highlight" : { "R":0xA9, "G":0xA9, "B":0xA9 },
+
+ "Properties-Background" : { "R":70, "G":70, "B":70 },
+ "Properties-Text" : { "R":240, "G":240, "B":240 },
+ "Properties-Lines" : { "R":120, "G":120, "B":120 },
+
+ "TreeView-Highlight" : { "R":110, "G":110, "B":160 },
+ "TreeView-3DObjectsLabel" : { "R":220, "G":140, "B":140 },
+ "TreeView-MacroObjectsLabel" : { "R":140, "G":140, "B":220 },
+ "TreeView-SpecialObjectsLabel" : { "R":140, "G":220, "B":140 },
+ "TreeView-WarpsLabel" : { "R":220, "G":220, "B":220 }
+ },
+
+ "TextureEditor" : {
+ "LevelTab-Background-Left" : { "R":80, "G":60, "B":60 },
+ "LevelTab-Background-Middle" : { "R":60, "G":80, "B":60 },
+ "LevelTab-Background-Right" : { "R":60, "G":60, "B":80 },
+ "LevelTab-Text" : { "R":240, "G":240, "B": 240 },
+ "LevelTab-Button-Background" : { "R":60, "G":60, "B":60 },
+ "LevelTab-Button-Text" : { "R":240, "G":240, "B":240 },
+
+ "OtherTab-Background-Left" : { "R":80, "G":60, "B":60 },
+ "OtherTab-Background-Middle" : { "R":60, "G":80, "B":60 },
+ "OtherTab-Background-Right" : { "R":60, "G":60, "B":80 },
+ "OtherTab-Text" : { "R":240, "G":240, "B": 240 },
+ "OtherTab-Button-Background" : { "R":60, "G":60, "B":60 },
+ "OtherTab-Button-Text" : { "R":240, "G":240, "B":240 },
+
+ "SkyTab-Background-Left" : { "R":20, "G":70, "B":80 },
+ "SkyTab-Background-Right" : { "R":60, "G":60, "B":80 },
+ "SkyTab-Text" : { "R":240, "G":240, "B":240 },
+ "SkyTab-Button-Background" : { "R":60, "G":60, "B":60 },
+ "SkyTab-Button-Text" : { "R":240, "G":240, "B":240 }
+ },
+
+ "ObjectCombos" : {
+ "Background" : { "R":40, "G":40, "B":40 },
+ "Text" : { "R":240, "G":240, "B":240 },
+
+ "3DObjects-Title" : { "R":200, "G":170, "B":170 },
+ "3DObjects-Item" : { "R":50, "G":50, "B":50 },
+ "3DObjects-Item-Alt" : { "R":50, "G":40, "B":40 },
+ "3DObjects-Item-Highlight" : { "R":60, "G":100, "B":150 },
+ "3DObjects-Item-Highlight-Text" : { "R":240, "G":240, "B":240 },
+
+ "MacroObjects-Title" : { "R":170, "G":170, "B":200 },
+ "MacroObjects-Item" : { "R":50, "G":50, "B":50 },
+ "MacroObjects-Item-Alt" : { "R":40, "G":40, "B":50 },
+ "MacroObjects-Item-Highlight" : { "R":60, "G":100, "B":150 },
+ "MacroObjects-Item-Highlight-Text" : { "R":240, "G":240, "B":240 },
+
+ "SpecialObjects-Title" : { "R":170, "G":200, "B":170 },
+ "SpecialObjects-Item" : { "R":50, "G":50, "B":50 },
+ "SpecialObjects-Item-Alt" : { "R":40, "G":50, "B":40 },
+ "SpecialObjects-Item-Highlight" : { "R":60, "G":100, "B":150 },
+ "SpecialObjects-Item-Highlight-Text" : { "R":240, "G":240, "B":240 },
+
+ "Other-Title" : { "R":200, "G":200, "B":200 },
+ "Other-Item" : { "R":50, "G":50, "B":50 },
+ "Other-Item-Alt" : { "R":40, "G":40, "B":40 },
+ "Other-Item-Highlight" : { "R":60, "G":100, "B":150 },
+ "Other-Item-Highlight-Text" : { "R":240, "G":240, "B":240 }
+ },
+
+ "ScriptDumps" : {
+ "LevelScripts-Background" : { "R":40, "G":10, "B":10 },
+ "LevelScripts-Text" : { "R":240, "G":180, "B":180 },
+ "LevelScripts-Comments" : { "R":200, "G":100, "B":0 },
+
+ "GeoLayoutScripts-Background" : { "R":10, "G":40, "B":10 },
+ "GeoLayoutScripts-Text" : { "R":180, "G":240, "B":180 },
+ "GeoLayoutScripts-Comments" : { "R":0, "G":200, "B":0 },
+
+ "Fast3DScripts-Background" : { "R":10, "G":10, "B":40 },
+ "Fast3DScripts-Text" : { "R":180, "G":180, "B":240 },
+ "Fast3DScripts-Comments" : { "R":0, "G":100, "B":200 },
+
+ "BehaviorScripts-Background" : { "R":25, "G":10, "B":40 },
+ "BehaviorScripts-Text" : { "R":200, "G":180, "B":240 },
+ "BehaviorScripts-Comments" : { "R":150, "G":80, "B":200 }
+ }
+}
\ No newline at end of file
diff --git a/data/themes/light.json b/data/themes/light.json
new file mode 100644
index 0000000..1804833
--- /dev/null
+++ b/data/themes/light.json
@@ -0,0 +1,13 @@
+{
+ "Info" : {
+ "Name" : "Quad64 Light Theme",
+ "Author" : "Davideesk",
+ "Note" : "The light theme is hard-coded as the default theme, and this file is here to show up in the theme's menu. Make absolutely sure not to remove the 5 categories below, as they are needed."
+ },
+
+ "Defaults" : {},
+ "Main" : {},
+ "TextureEditor" : {},
+ "ObjectCombos" : {},
+ "ScriptDumps" : {}
+}
\ No newline at end of file
diff --git a/src/Forms/EditWarp.Designer.cs b/src/Forms/EditWarp.Designer.cs
index 2ef8074..0a7db7a 100644
--- a/src/Forms/EditWarp.Designer.cs
+++ b/src/Forms/EditWarp.Designer.cs
@@ -65,6 +65,7 @@ private void InitializeComponent()
//
// cancelButton
//
+ this.cancelButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.cancelButton.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cancelButton.Location = new System.Drawing.Point(225, 192);
this.cancelButton.Name = "cancelButton";
@@ -76,6 +77,7 @@ private void InitializeComponent()
//
// selectButton
//
+ this.selectButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.selectButton.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.selectButton.Location = new System.Drawing.Point(82, 193);
this.selectButton.Name = "selectButton";
@@ -139,6 +141,7 @@ private void InitializeComponent()
// w_selectLevel
//
this.w_selectLevel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.w_selectLevel.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.w_selectLevel.FormattingEnabled = true;
this.w_selectLevel.Location = new System.Drawing.Point(134, 63);
this.w_selectLevel.Name = "w_selectLevel";
@@ -259,7 +262,7 @@ private void InitializeComponent()
this.label1.TabIndex = 5;
this.label1.Text = "Trigger ID: ";
//
- // wi_tz
+ // iw_tz
//
this.iw_tz.Location = new System.Drawing.Point(226, 131);
this.iw_tz.Maximum = new decimal(new int[] {
@@ -272,7 +275,7 @@ private void InitializeComponent()
0,
0,
-2147483648});
- this.iw_tz.Name = "wi_tz";
+ this.iw_tz.Name = "iw_tz";
this.iw_tz.Size = new System.Drawing.Size(99, 20);
this.iw_tz.TabIndex = 4;
//
diff --git a/src/Forms/EditWarp.cs b/src/Forms/EditWarp.cs
index 78a2a08..0083ce1 100644
--- a/src/Forms/EditWarp.cs
+++ b/src/Forms/EditWarp.cs
@@ -84,6 +84,50 @@ private void EditWarp_Load(object sender, EventArgs e)
iw_ty.Value = tY;
iw_tz.Value = tZ;
}
+
+ updateTheme();
+ }
+
+ private void updateLabelColor(ref Label label)
+ {
+ label.ForeColor = Theme.DEFAULT_TEXT;
+ label.BackColor = Theme.DEFAULT_PANEL_BACKGROUND;
+ }
+
+ private void updateUpDownColor(ref NumericUpDown upDown)
+ {
+ upDown.ForeColor = Theme.DEFAULT_UPDOWN_TEXT;
+ upDown.BackColor = Theme.DEFAULT_UPDOWN_BACKGROUND;
+ }
+
+ private void updateTheme()
+ {
+ BackColor = Theme.DEFAULT_BACKGROUND;
+ panel_instWarp_controls.BackColor = Theme.DEFAULT_PANEL_BACKGROUND;
+ panel_warp_controls.BackColor = Theme.DEFAULT_PANEL_BACKGROUND;
+ w_selectLevel.BackColor = Theme.DEFAULT_DROPDOWNLIST_BACKGROUND;
+ w_selectLevel.ForeColor = Theme.DEFAULT_DROPDOWNLIST_TEXT;
+ cancelButton.BackColor = Theme.DEFAULT_BUTTON_BACKGROUND;
+ cancelButton.ForeColor = Theme.DEFAULT_BUTTON_TEXT;
+ selectButton.BackColor = Theme.DEFAULT_BUTTON_BACKGROUND;
+ selectButton.ForeColor = Theme.DEFAULT_BUTTON_TEXT;
+ updateLabelColor(ref label1);
+ updateLabelColor(ref label2);
+ updateLabelColor(ref label3);
+ updateLabelColor(ref label4);
+ updateLabelColor(ref label5);
+ updateLabelColor(ref label6);
+ updateLabelColor(ref label7);
+ updateLabelColor(ref label9);
+ updateLabelColor(ref label10);
+ updateUpDownColor(ref iw_area);
+ updateUpDownColor(ref iw_trigger);
+ updateUpDownColor(ref iw_tx);
+ updateUpDownColor(ref iw_ty);
+ updateUpDownColor(ref iw_tz);
+ updateUpDownColor(ref w_warpFrom);
+ updateUpDownColor(ref w_warpToID);
+ updateUpDownColor(ref w_areaID);
}
private void cancelButton_Click(object sender, EventArgs e)
diff --git a/src/Forms/MainForm.Designer.cs b/src/Forms/MainForm.Designer.cs
index 5e18331..58cc3a3 100644
--- a/src/Forms/MainForm.Designer.cs
+++ b/src/Forms/MainForm.Designer.cs
@@ -64,6 +64,7 @@ private void InitializeComponent()
this.texturesToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.themesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.rOMInfoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.scriptsDumpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -78,25 +79,25 @@ private void InitializeComponent()
this.propertyGrid1 = new System.Windows.Forms.PropertyGrid();
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
this.splitContainer3 = new System.Windows.Forms.SplitContainer();
- this.panel3 = new System.Windows.Forms.Panel();
+ this.controlsPanel = new System.Windows.Forms.Panel();
this.gridSize = new System.Windows.Forms.NumericUpDown();
this.gridButton = new System.Windows.Forms.CheckBox();
- this.label4 = new System.Windows.Forms.Label();
+ this.cameraModeLabel = new System.Windows.Forms.Label();
this.cameraMode = new System.Windows.Forms.ComboBox();
this.keepOnGround = new System.Windows.Forms.CheckBox();
this.dropToGround = new System.Windows.Forms.Button();
- this.camSpeedLabel = new System.Windows.Forms.Label();
- this.label6 = new System.Windows.Forms.Label();
+ this.camSpeedPercentageLabel = new System.Windows.Forms.Label();
+ this.cameraSpeedLabel = new System.Windows.Forms.Label();
this.trackBar_camSpeed = new System.Windows.Forms.TrackBar();
this.objSpeedLabel = new System.Windows.Forms.Label();
- this.label3 = new System.Windows.Forms.Label();
+ this.moveSpeedLabel = new System.Windows.Forms.Label();
this.trackBar_moveSpeed = new System.Windows.Forms.TrackBar();
this.moveCamPanel = new System.Windows.Forms.Panel();
- this.label2 = new System.Windows.Forms.Label();
+ this.moveCameraLabel = new System.Windows.Forms.Label();
this.moveCam_strafe = new System.Windows.Forms.PictureBox();
this.moveCam_InOut = new System.Windows.Forms.PictureBox();
this.rotateObjectPanel = new System.Windows.Forms.Panel();
- this.label1 = new System.Windows.Forms.Label();
+ this.rotateObjectLabel = new System.Windows.Forms.Label();
this.rotObj = new System.Windows.Forms.PictureBox();
this.rotObj_Yaw = new System.Windows.Forms.PictureBox();
this.moveObjectPanel = new System.Windows.Forms.Panel();
@@ -114,7 +115,7 @@ private void InitializeComponent()
((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).BeginInit();
this.splitContainer3.Panel2.SuspendLayout();
this.splitContainer3.SuspendLayout();
- this.panel3.SuspendLayout();
+ this.controlsPanel.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.gridSize)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.trackBar_camSpeed)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.trackBar_moveSpeed)).BeginInit();
@@ -140,7 +141,7 @@ private void InitializeComponent()
this.helpToolStripMenuItem});
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
- this.menuStrip1.Size = new System.Drawing.Size(174, 24);
+ this.menuStrip1.Size = new System.Drawing.Size(266, 24);
this.menuStrip1.TabIndex = 1;
this.menuStrip1.Text = "menuStrip1";
//
@@ -179,8 +180,10 @@ private void InitializeComponent()
//
// toolStripSeparator3
//
+ this.toolStripSeparator3.BackColor = System.Drawing.SystemColors.Control;
this.toolStripSeparator3.Name = "toolStripSeparator3";
this.toolStripSeparator3.Size = new System.Drawing.Size(148, 6);
+ this.toolStripSeparator3.Paint += new System.Windows.Forms.PaintEventHandler(this.ToolStripSeparator_Paint);
//
// testROMToolStripMenuItem
//
@@ -216,6 +219,7 @@ private void InitializeComponent()
//
this.toolStripSeparator4.Name = "toolStripSeparator4";
this.toolStripSeparator4.Size = new System.Drawing.Size(186, 6);
+ this.toolStripSeparator4.Paint += new System.Windows.Forms.PaintEventHandler(this.ToolStripSeparator_Paint);
//
// modelIDToolStripMenuItem
//
@@ -280,6 +284,7 @@ private void InitializeComponent()
//
this.toolStripSeparator5.Name = "toolStripSeparator5";
this.toolStripSeparator5.Size = new System.Drawing.Size(186, 6);
+ this.toolStripSeparator5.Paint += new System.Windows.Forms.PaintEventHandler(this.ToolStripSeparator_Paint);
//
// objectComboNameToolStripMenuItem
//
@@ -291,11 +296,14 @@ private void InitializeComponent()
//
// levelToolStripMenuItem
//
+ this.levelToolStripMenuItem.BackColor = System.Drawing.Color.LightGray;
+ this.levelToolStripMenuItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
this.levelToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.selectLeveToolStripMenuItem,
this.selectAreaToolStripMenuItem,
this.toolStripSeparator2,
this.texturesToolStripMenuItem1});
+ this.levelToolStripMenuItem.ForeColor = System.Drawing.SystemColors.ControlText;
this.levelToolStripMenuItem.Name = "levelToolStripMenuItem";
this.levelToolStripMenuItem.Size = new System.Drawing.Size(46, 20);
this.levelToolStripMenuItem.Text = "Level";
@@ -382,6 +390,7 @@ private void InitializeComponent()
//
this.toolStripSeparator2.Name = "toolStripSeparator2";
this.toolStripSeparator2.Size = new System.Drawing.Size(132, 6);
+ this.toolStripSeparator2.Paint += new System.Windows.Forms.PaintEventHandler(this.ToolStripSeparator_Paint);
//
// texturesToolStripMenuItem1
//
@@ -394,6 +403,7 @@ private void InitializeComponent()
//
this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.settingsToolStripMenuItem,
+ this.themesToolStripMenuItem,
this.rOMInfoToolStripMenuItem,
this.toolStripSeparator1,
this.scriptsDumpToolStripMenuItem});
@@ -404,26 +414,34 @@ private void InitializeComponent()
// settingsToolStripMenuItem
//
this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem";
- this.settingsToolStripMenuItem.Size = new System.Drawing.Size(145, 22);
+ this.settingsToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
this.settingsToolStripMenuItem.Text = "Settings";
this.settingsToolStripMenuItem.Click += new System.EventHandler(this.settingsToolStripMenuItem_Click);
//
+ // themesToolStripMenuItem
+ //
+ this.themesToolStripMenuItem.Name = "themesToolStripMenuItem";
+ this.themesToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
+ this.themesToolStripMenuItem.Text = "Themes";
+ this.themesToolStripMenuItem.Click += new System.EventHandler(this.themesToolStripMenuItem_Click);
+ //
// rOMInfoToolStripMenuItem
//
this.rOMInfoToolStripMenuItem.Name = "rOMInfoToolStripMenuItem";
- this.rOMInfoToolStripMenuItem.Size = new System.Drawing.Size(145, 22);
+ this.rOMInfoToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
this.rOMInfoToolStripMenuItem.Text = "ROM Info";
this.rOMInfoToolStripMenuItem.Click += new System.EventHandler(this.rOMInfoToolStripMenuItem_Click);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
- this.toolStripSeparator1.Size = new System.Drawing.Size(142, 6);
+ this.toolStripSeparator1.Size = new System.Drawing.Size(149, 6);
+ this.toolStripSeparator1.Paint += new System.Windows.Forms.PaintEventHandler(this.ToolStripSeparator_Paint);
//
// scriptsDumpToolStripMenuItem
//
this.scriptsDumpToolStripMenuItem.Name = "scriptsDumpToolStripMenuItem";
- this.scriptsDumpToolStripMenuItem.Size = new System.Drawing.Size(145, 22);
+ this.scriptsDumpToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
this.scriptsDumpToolStripMenuItem.Text = "Script Dumps";
this.scriptsDumpToolStripMenuItem.Click += new System.EventHandler(this.scriptsDumpToolStripMenuItem_Click);
//
@@ -567,15 +585,16 @@ private void InitializeComponent()
this.propertyGrid1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
+ this.propertyGrid1.BackColor = System.Drawing.Color.White;
this.propertyGrid1.CommandsBackColor = System.Drawing.SystemColors.Control;
- this.propertyGrid1.CommandsDisabledLinkColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+ this.propertyGrid1.CommandsDisabledLinkColor = System.Drawing.Color.Gray;
this.propertyGrid1.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.propertyGrid1.HelpVisible = false;
- this.propertyGrid1.LineColor = System.Drawing.Color.LightGray;
+ this.propertyGrid1.LineColor = System.Drawing.Color.DarkGray;
this.propertyGrid1.Location = new System.Drawing.Point(0, 0);
this.propertyGrid1.Name = "propertyGrid1";
this.propertyGrid1.PropertySort = System.Windows.Forms.PropertySort.NoSort;
- this.propertyGrid1.Size = new System.Drawing.Size(216, 261);
+ this.propertyGrid1.Size = new System.Drawing.Size(219, 261);
this.propertyGrid1.TabIndex = 0;
this.propertyGrid1.ToolbarVisible = false;
this.propertyGrid1.UseCompatibleTextRendering = true;
@@ -596,7 +615,7 @@ private void InitializeComponent()
//
// splitContainer2.Panel2
//
- this.splitContainer2.Panel2.Controls.Add(this.panel3);
+ this.splitContainer2.Panel2.Controls.Add(this.controlsPanel);
this.splitContainer2.Panel2.Controls.Add(this.glControl1);
this.splitContainer2.Panel2MinSize = 600;
this.splitContainer2.Size = new System.Drawing.Size(879, 456);
@@ -619,38 +638,40 @@ private void InitializeComponent()
this.splitContainer3.TabIndex = 0;
this.splitContainer3.TabStop = false;
//
- // panel3
+ // controlsPanel
//
- this.panel3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+ this.controlsPanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
- this.panel3.BackColor = System.Drawing.Color.Gray;
- this.panel3.Controls.Add(this.gridSize);
- this.panel3.Controls.Add(this.gridButton);
- this.panel3.Controls.Add(this.label4);
- this.panel3.Controls.Add(this.cameraMode);
- this.panel3.Controls.Add(this.keepOnGround);
- this.panel3.Controls.Add(this.dropToGround);
- this.panel3.Controls.Add(this.camSpeedLabel);
- this.panel3.Controls.Add(this.label6);
- this.panel3.Controls.Add(this.trackBar_camSpeed);
- this.panel3.Controls.Add(this.objSpeedLabel);
- this.panel3.Controls.Add(this.label3);
- this.panel3.Controls.Add(this.trackBar_moveSpeed);
- this.panel3.Controls.Add(this.moveCamPanel);
- this.panel3.Controls.Add(this.rotateObjectPanel);
- this.panel3.Controls.Add(this.moveObjectPanel);
- this.panel3.Location = new System.Drawing.Point(3, 333);
- this.panel3.MaximumSize = new System.Drawing.Size(10000, 120);
- this.panel3.MinimumSize = new System.Drawing.Size(600, 120);
- this.panel3.Name = "panel3";
- this.panel3.Size = new System.Drawing.Size(649, 120);
- this.panel3.TabIndex = 5;
+ this.controlsPanel.BackColor = System.Drawing.Color.Gray;
+ this.controlsPanel.Controls.Add(this.gridSize);
+ this.controlsPanel.Controls.Add(this.gridButton);
+ this.controlsPanel.Controls.Add(this.cameraModeLabel);
+ this.controlsPanel.Controls.Add(this.cameraMode);
+ this.controlsPanel.Controls.Add(this.keepOnGround);
+ this.controlsPanel.Controls.Add(this.dropToGround);
+ this.controlsPanel.Controls.Add(this.camSpeedPercentageLabel);
+ this.controlsPanel.Controls.Add(this.cameraSpeedLabel);
+ this.controlsPanel.Controls.Add(this.trackBar_camSpeed);
+ this.controlsPanel.Controls.Add(this.objSpeedLabel);
+ this.controlsPanel.Controls.Add(this.moveSpeedLabel);
+ this.controlsPanel.Controls.Add(this.trackBar_moveSpeed);
+ this.controlsPanel.Controls.Add(this.moveCamPanel);
+ this.controlsPanel.Controls.Add(this.rotateObjectPanel);
+ this.controlsPanel.Controls.Add(this.moveObjectPanel);
+ this.controlsPanel.Location = new System.Drawing.Point(3, 333);
+ this.controlsPanel.MaximumSize = new System.Drawing.Size(10000, 120);
+ this.controlsPanel.MinimumSize = new System.Drawing.Size(600, 120);
+ this.controlsPanel.Name = "controlsPanel";
+ this.controlsPanel.Size = new System.Drawing.Size(649, 120);
+ this.controlsPanel.TabIndex = 5;
//
// gridSize
//
this.gridSize.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right)));
+ this.gridSize.BackColor = System.Drawing.SystemColors.Window;
this.gridSize.Enabled = false;
+ this.gridSize.ForeColor = System.Drawing.SystemColors.MenuText;
this.gridSize.Location = new System.Drawing.Point(603, 94);
this.gridSize.Minimum = new decimal(new int[] {
2,
@@ -673,6 +694,8 @@ private void InitializeComponent()
this.gridButton.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right)));
this.gridButton.Appearance = System.Windows.Forms.Appearance.Button;
+ this.gridButton.BackColor = System.Drawing.Color.Silver;
+ this.gridButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.gridButton.Font = new System.Drawing.Font("Corbel", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.gridButton.Location = new System.Drawing.Point(561, 93);
this.gridButton.Name = "gridButton";
@@ -681,19 +704,19 @@ private void InitializeComponent()
this.gridButton.TabStop = false;
this.gridButton.Text = "Grid";
this.gridButton.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.gridButton.UseVisualStyleBackColor = true;
+ this.gridButton.UseVisualStyleBackColor = false;
this.gridButton.CheckedChanged += new System.EventHandler(this.gridButton_CheckedChanged);
//
- // label4
+ // cameraModeLabel
//
- this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ this.cameraModeLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right)));
- this.label4.AutoSize = true;
- this.label4.Location = new System.Drawing.Point(566, 47);
- this.label4.Name = "label4";
- this.label4.Size = new System.Drawing.Size(76, 13);
- this.label4.TabIndex = 24;
- this.label4.Text = "Camera Mode:";
+ this.cameraModeLabel.AutoSize = true;
+ this.cameraModeLabel.Location = new System.Drawing.Point(566, 47);
+ this.cameraModeLabel.Name = "cameraModeLabel";
+ this.cameraModeLabel.Size = new System.Drawing.Size(76, 13);
+ this.cameraModeLabel.TabIndex = 24;
+ this.cameraModeLabel.Text = "Camera Mode:";
//
// cameraMode
//
@@ -701,6 +724,7 @@ private void InitializeComponent()
| System.Windows.Forms.AnchorStyles.Right)));
this.cameraMode.DisplayMember = "1";
this.cameraMode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cameraMode.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.cameraMode.Font = new System.Drawing.Font("Corbel", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cameraMode.Items.AddRange(new object[] {
"Fly",
@@ -721,55 +745,59 @@ private void InitializeComponent()
// keepOnGround
//
this.keepOnGround.Appearance = System.Windows.Forms.Appearance.Button;
+ this.keepOnGround.BackColor = System.Drawing.Color.Silver;
+ this.keepOnGround.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.keepOnGround.Font = new System.Drawing.Font("Corbel", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.keepOnGround.Location = new System.Drawing.Point(254, 79);
+ this.keepOnGround.Location = new System.Drawing.Point(254, 82);
this.keepOnGround.Margin = new System.Windows.Forms.Padding(0);
this.keepOnGround.Name = "keepOnGround";
- this.keepOnGround.Size = new System.Drawing.Size(95, 21);
+ this.keepOnGround.Size = new System.Drawing.Size(95, 24);
this.keepOnGround.TabIndex = 0;
this.keepOnGround.TabStop = false;
this.keepOnGround.Text = "Keep on ground";
this.keepOnGround.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.keepOnGround.UseVisualStyleBackColor = true;
+ this.keepOnGround.UseVisualStyleBackColor = false;
//
// dropToGround
//
+ this.dropToGround.BackColor = System.Drawing.Color.Silver;
+ this.dropToGround.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.dropToGround.Font = new System.Drawing.Font("Corbel", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.dropToGround.Location = new System.Drawing.Point(254, 57);
this.dropToGround.Margin = new System.Windows.Forms.Padding(0);
this.dropToGround.Name = "dropToGround";
- this.dropToGround.Size = new System.Drawing.Size(95, 21);
+ this.dropToGround.Size = new System.Drawing.Size(95, 24);
this.dropToGround.TabIndex = 0;
this.dropToGround.TabStop = false;
this.dropToGround.Text = "Drop to ground";
- this.dropToGround.UseVisualStyleBackColor = true;
+ this.dropToGround.UseVisualStyleBackColor = false;
this.dropToGround.Click += new System.EventHandler(this.dropToGround_Click);
//
- // camSpeedLabel
+ // camSpeedPercentageLabel
//
- this.camSpeedLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ this.camSpeedPercentageLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right)));
- this.camSpeedLabel.AutoSize = true;
- this.camSpeedLabel.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.camSpeedLabel.Location = new System.Drawing.Point(616, 2);
- this.camSpeedLabel.Name = "camSpeedLabel";
- this.camSpeedLabel.Size = new System.Drawing.Size(35, 14);
- this.camSpeedLabel.TabIndex = 12;
- this.camSpeedLabel.Text = "100%";
- this.camSpeedLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- //
- // label6
- //
- this.label6.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ this.camSpeedPercentageLabel.AutoSize = true;
+ this.camSpeedPercentageLabel.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.camSpeedPercentageLabel.Location = new System.Drawing.Point(616, 2);
+ this.camSpeedPercentageLabel.Name = "camSpeedPercentageLabel";
+ this.camSpeedPercentageLabel.Size = new System.Drawing.Size(35, 14);
+ this.camSpeedPercentageLabel.TabIndex = 12;
+ this.camSpeedPercentageLabel.Text = "100%";
+ this.camSpeedPercentageLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // cameraSpeedLabel
+ //
+ this.cameraSpeedLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right)));
- this.label6.AutoSize = true;
- this.label6.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label6.Location = new System.Drawing.Point(559, 2);
- this.label6.Name = "label6";
- this.label6.Size = new System.Drawing.Size(63, 14);
- this.label6.TabIndex = 11;
- this.label6.Text = "Cam spd:";
- this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.cameraSpeedLabel.AutoSize = true;
+ this.cameraSpeedLabel.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cameraSpeedLabel.Location = new System.Drawing.Point(559, 2);
+ this.cameraSpeedLabel.Name = "cameraSpeedLabel";
+ this.cameraSpeedLabel.Size = new System.Drawing.Size(63, 14);
+ this.cameraSpeedLabel.TabIndex = 11;
+ this.cameraSpeedLabel.Text = "Cam spd:";
+ this.cameraSpeedLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// trackBar_camSpeed
//
@@ -799,17 +827,17 @@ private void InitializeComponent()
this.objSpeedLabel.Text = "100%";
this.objSpeedLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
- // label3
+ // moveSpeedLabel
//
- this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.label3.AutoSize = true;
- this.label3.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label3.Location = new System.Drawing.Point(261, 1);
- this.label3.Name = "label3";
- this.label3.Size = new System.Drawing.Size(84, 14);
- this.label3.TabIndex = 8;
- this.label3.Text = "Move speed:";
- this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.moveSpeedLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.moveSpeedLabel.AutoSize = true;
+ this.moveSpeedLabel.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.moveSpeedLabel.Location = new System.Drawing.Point(261, 1);
+ this.moveSpeedLabel.Name = "moveSpeedLabel";
+ this.moveSpeedLabel.Size = new System.Drawing.Size(84, 14);
+ this.moveSpeedLabel.TabIndex = 8;
+ this.moveSpeedLabel.Text = "Move speed:";
+ this.moveSpeedLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// trackBar_moveSpeed
//
@@ -829,7 +857,7 @@ private void InitializeComponent()
//
this.moveCamPanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right)));
- this.moveCamPanel.Controls.Add(this.label2);
+ this.moveCamPanel.Controls.Add(this.moveCameraLabel);
this.moveCamPanel.Controls.Add(this.moveCam_strafe);
this.moveCamPanel.Controls.Add(this.moveCam_InOut);
this.moveCamPanel.Location = new System.Drawing.Point(434, 2);
@@ -838,15 +866,15 @@ private void InitializeComponent()
this.moveCamPanel.Size = new System.Drawing.Size(125, 120);
this.moveCamPanel.TabIndex = 6;
//
- // label2
+ // moveCameraLabel
//
- this.label2.AutoSize = true;
- this.label2.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label2.Location = new System.Drawing.Point(8, 99);
- this.label2.Name = "label2";
- this.label2.Size = new System.Drawing.Size(96, 16);
- this.label2.TabIndex = 4;
- this.label2.Text = "Move Camera";
+ this.moveCameraLabel.AutoSize = true;
+ this.moveCameraLabel.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.moveCameraLabel.Location = new System.Drawing.Point(8, 99);
+ this.moveCameraLabel.Name = "moveCameraLabel";
+ this.moveCameraLabel.Size = new System.Drawing.Size(96, 16);
+ this.moveCameraLabel.TabIndex = 4;
+ this.moveCameraLabel.Text = "Move Camera";
//
// moveCam_strafe
//
@@ -880,7 +908,7 @@ private void InitializeComponent()
//
this.rotateObjectPanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
- this.rotateObjectPanel.Controls.Add(this.label1);
+ this.rotateObjectPanel.Controls.Add(this.rotateObjectLabel);
this.rotateObjectPanel.Controls.Add(this.rotObj);
this.rotateObjectPanel.Controls.Add(this.rotObj_Yaw);
this.rotateObjectPanel.Location = new System.Drawing.Point(127, 2);
@@ -889,15 +917,15 @@ private void InitializeComponent()
this.rotateObjectPanel.Size = new System.Drawing.Size(124, 120);
this.rotateObjectPanel.TabIndex = 5;
//
- // label1
+ // rotateObjectLabel
//
- this.label1.AutoSize = true;
- this.label1.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label1.Location = new System.Drawing.Point(8, 99);
- this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(112, 16);
- this.label1.TabIndex = 4;
- this.label1.Text = "Rotate Object";
+ this.rotateObjectLabel.AutoSize = true;
+ this.rotateObjectLabel.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rotateObjectLabel.Location = new System.Drawing.Point(8, 99);
+ this.rotateObjectLabel.Name = "rotateObjectLabel";
+ this.rotateObjectLabel.Size = new System.Drawing.Size(112, 16);
+ this.rotateObjectLabel.TabIndex = 4;
+ this.rotateObjectLabel.Text = "Rotate Object";
//
// rotObj
//
@@ -1014,7 +1042,7 @@ private void InitializeComponent()
this.MinimumSize = new System.Drawing.Size(820, 522);
this.Name = "MainForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
- this.Text = "Quad64 v0.2 (Beta build 4, Hotfix 1)";
+ this.Text = "Quad64 v0.2 (Beta build 5)";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing);
this.Shown += new System.EventHandler(this.Form1_Shown);
this.menuStrip1.ResumeLayout(false);
@@ -1029,8 +1057,8 @@ private void InitializeComponent()
this.splitContainer3.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).EndInit();
this.splitContainer3.ResumeLayout(false);
- this.panel3.ResumeLayout(false);
- this.panel3.PerformLayout();
+ this.controlsPanel.ResumeLayout(false);
+ this.controlsPanel.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.gridSize)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.trackBar_camSpeed)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.trackBar_moveSpeed)).EndInit();
@@ -1065,25 +1093,25 @@ private void InitializeComponent()
private System.Windows.Forms.SplitContainer splitContainer2;
private System.Windows.Forms.SplitContainer splitContainer3;
private System.Windows.Forms.ToolStripMenuItem saveROMAsToolStripMenuItem;
- private System.Windows.Forms.Panel panel3;
+ private System.Windows.Forms.Panel controlsPanel;
private System.Windows.Forms.PictureBox movObj_UpDown;
private System.Windows.Forms.PictureBox moveObj;
private OpenTK.GLControl glControl1;
private System.Windows.Forms.Panel moveObjectPanel;
private System.Windows.Forms.Label moveObjectLabel;
private System.Windows.Forms.Panel moveCamPanel;
- private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Label moveCameraLabel;
private System.Windows.Forms.PictureBox moveCam_strafe;
private System.Windows.Forms.PictureBox moveCam_InOut;
private System.Windows.Forms.Panel rotateObjectPanel;
- private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Label rotateObjectLabel;
private System.Windows.Forms.PictureBox rotObj;
private System.Windows.Forms.PictureBox rotObj_Yaw;
- private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.Label moveSpeedLabel;
private System.Windows.Forms.TrackBar trackBar_moveSpeed;
private System.Windows.Forms.Label objSpeedLabel;
- private System.Windows.Forms.Label camSpeedLabel;
- private System.Windows.Forms.Label label6;
+ private System.Windows.Forms.Label camSpeedPercentageLabel;
+ private System.Windows.Forms.Label cameraSpeedLabel;
private System.Windows.Forms.TrackBar trackBar_camSpeed;
private System.Windows.Forms.ToolStripMenuItem rOMInfoToolStripMenuItem;
private System.Windows.Forms.Button dropToGround;
@@ -1123,9 +1151,10 @@ private void InitializeComponent()
private System.Windows.Forms.ToolStripMenuItem objectComboNameToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem warpToolStripMenuItem;
private System.Windows.Forms.ComboBox cameraMode;
- private System.Windows.Forms.Label label4;
+ private System.Windows.Forms.Label cameraModeLabel;
private System.Windows.Forms.CheckBox gridButton;
private System.Windows.Forms.NumericUpDown gridSize;
+ private System.Windows.Forms.ToolStripMenuItem themesToolStripMenuItem;
}
}
diff --git a/src/Forms/MainForm.cs b/src/Forms/MainForm.cs
index da70e46..9f491f2 100644
--- a/src/Forms/MainForm.cs
+++ b/src/Forms/MainForm.cs
@@ -11,12 +11,12 @@
using Quad64.src.Forms;
using System.Collections.Generic;
using System.Runtime.InteropServices;
+using Quad64.src.Forms.ToolStripRenderer;
namespace Quad64
{
partial class MainForm : Form
{
- Model3D model1 = new Model3D(), model2 = new Model3D();
Color bgColor = Color.Black;
Camera camera = new Camera();
Vector3 savedCamPos = new Vector3();
@@ -54,12 +54,12 @@ private void initTreeView()
treeView1.Name = "treeView1";
treeView1.DrawMode = TreeViewDrawMode.OwnerDrawAll;
treeView1.Font = new Font("Segoe UI", 8.0f, FontStyle.Bold);
- treeView1.Nodes.Add(makeTreeNode("3D Objects", Color.FromArgb(192, 0, 0)));
- treeView1.Nodes.Add(makeTreeNode("Macro 3D Objects", Color.FromArgb(0, 0, 192)));
- treeView1.Nodes.Add(makeTreeNode("Special 3D Objects", Color.FromArgb(0, 192, 0)));
- treeView1.Nodes.Add(makeTreeNode("Warps", Color.FromArgb(0, 0, 0)));
+ treeView1.Nodes.Add(makeTreeNode("3D Objects", Theme.MAIN_TREEVIEW_3DOBJECTS));
+ treeView1.Nodes.Add(makeTreeNode("Macro 3D Objects", Theme.MAIN_TREEVIEW_MACRO));
+ treeView1.Nodes.Add(makeTreeNode("Special 3D Objects", Theme.MAIN_TREEVIEW_SPECIAL));
+ treeView1.Nodes.Add(makeTreeNode("Warps", Theme.MAIN_TREEVIEW_WARPS));
treeView1.Anchor = (AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right);
- treeView1.Size = new Size(217, 206);
+ treeView1.Size = splitContainer3.Panel1.ClientSize;
treeView1.TabIndex = 0;
treeView1.TabStop = false;
treeView1.DrawNode += new DrawTreeNodeEventHandler(treeView1_DrawNode);
@@ -79,6 +79,7 @@ public MainForm()
OpenTK.Toolkit.Init();
glControl1.CreateControl();
SettingsFile.LoadGlobalSettings("default");
+ updateTheme();
glControl1.MouseWheel += new MouseEventHandler(glControl1_Wheel);
ProjMatrix = Matrix4.CreatePerspectiveFieldOfView(
Globals.FOV * ((float)Math.PI / 180.0f),
@@ -94,6 +95,76 @@ public MainForm()
myTimer.Interval = 10;
myTimer.Enabled = false;
cameraMode.SelectedIndex = 0;
+ menuStrip1.Renderer = new ToolStripProfessionalRenderer(new CustomToolStripColorTable());
+ }
+
+ // New functions for MainForm.cs
+ private void SetColorsForMenuStripItem(ref ToolStripItemCollection items)
+ {
+ for (int i = 0; i < items.Count; i++)
+ {
+ items[i].BackColor = Theme.MAIN_MENUBAR_BACKGROUND;
+ items[i].ForeColor = Theme.MAIN_MENUBAR_TEXT;
+
+ if (items[i] is ToolStripMenuItem)
+ {
+ if (((ToolStripMenuItem)items[i]).DropDownItems.Count > 0)
+ {
+ ToolStripItemCollection children = ((ToolStripMenuItem)items[i]).DropDownItems;
+ SetColorsForMenuStripItem(ref children);
+ }
+ }
+ }
+ }
+
+ private void ToolStripSeparator_Paint(object sender, PaintEventArgs e)
+ {
+ ToolStripSeparator sep = (ToolStripSeparator)sender;
+ e.Graphics.FillRectangle(new SolidBrush(sep.BackColor), 0, 0, sep.Width, sep.Height);
+ e.Graphics.DrawLine(new Pen(sep.ForeColor), 30, sep.Height / 2, sep.Width - 4, sep.Height / 2);
+ }
+
+ private void updateTheme()
+ {
+ BackColor = Theme.MAIN_BACKGROUND;
+ treeView1.BackColor = Theme.MAIN_TREEVIEW_BACKGROUND;
+ treeView1.ForeColor = Theme.MAIN_TREEVIEW_TEXT;
+ treeView1.Nodes[0].ForeColor = Theme.MAIN_TREEVIEW_3DOBJECTS; // "3D Objects" text
+ treeView1.Nodes[1].ForeColor = Theme.MAIN_TREEVIEW_MACRO; // "Macro 3D Objects" text
+ treeView1.Nodes[2].ForeColor = Theme.MAIN_TREEVIEW_SPECIAL; // "Special 3D Objects" text
+ treeView1.Nodes[3].ForeColor = Theme.MAIN_TREEVIEW_WARPS; // "Warps" text
+
+ propertyGrid1.ViewForeColor = Theme.MAIN_PROPERTIES_TEXT;
+ propertyGrid1.ViewBackColor = Theme.MAIN_PROPERTIES_BACKGROUND;
+ propertyGrid1.LineColor = Theme.MAIN_PROPERTIES_LINES;
+
+ controlsPanel.BackColor = Theme.MAIN_CONTROLS_BACKGROUND;
+ moveObjectLabel.ForeColor = Theme.MAIN_CONTROLS_TEXT;
+ moveSpeedLabel.ForeColor = Theme.MAIN_CONTROLS_TEXT;
+ rotateObjectLabel.ForeColor = Theme.MAIN_CONTROLS_TEXT;
+ objSpeedLabel.ForeColor = Theme.MAIN_CONTROLS_TEXT;
+ cameraModeLabel.ForeColor = Theme.MAIN_CONTROLS_TEXT;
+ camSpeedPercentageLabel.ForeColor = Theme.MAIN_CONTROLS_TEXT;
+ cameraSpeedLabel.ForeColor = Theme.MAIN_CONTROLS_TEXT;
+ moveCameraLabel.ForeColor = Theme.MAIN_CONTROLS_TEXT;
+
+ cameraMode.BackColor = Theme.MAIN_CONTROLS_DROPDOWNLIST_BACKGROUND;
+ cameraMode.ForeColor = Theme.MAIN_CONTROLS_DROPDOWNLIST_TEXT;
+
+ dropToGround.BackColor = Theme.MAIN_CONTROLS_BUTTON_BACKGROUND;
+ dropToGround.ForeColor = Theme.MAIN_CONTROLS_BUTTON_TEXT;
+ keepOnGround.BackColor = Theme.MAIN_CONTROLS_BUTTON_BACKGROUND;
+ keepOnGround.ForeColor = Theme.MAIN_CONTROLS_BUTTON_TEXT;
+ gridButton.BackColor = Theme.MAIN_CONTROLS_BUTTON_BACKGROUND;
+ gridButton.ForeColor = Theme.MAIN_CONTROLS_BUTTON_TEXT;
+
+ gridSize.BackColor = Theme.MAIN_CONTROLS_UPDOWN_BACKGROUND;
+ gridSize.ForeColor = Theme.MAIN_CONTROLS_UPDOWN_TEXT;
+
+ menuStrip1.BackColor = Theme.MAIN_MENUBAR_BACKGROUND;
+ menuStrip1.ForeColor = Theme.MAIN_MENUBAR_TEXT;
+ ToolStripItemCollection menuItems = menuStrip1.Items;
+ SetColorsForMenuStripItem(ref menuItems);
}
private void loadROM(bool startingUp)
@@ -700,7 +771,7 @@ private void objectComboPresetToolStripMenuItem_Click(object sender, EventArgs e
{
case 0:
comboWindow =
- new SelectComboPreset(level, 0, "Select Object Combos", Color.DarkRed);
+ new SelectComboPreset(level, 0, "Select Object Combos", Theme.COMBOS_3DOBJECTS_TITLE);
comboWindow.ShowDialog();
if (comboWindow.ClickedSelect)
{
@@ -713,7 +784,7 @@ private void objectComboPresetToolStripMenuItem_Click(object sender, EventArgs e
break;
case 1:
comboWindow =
- new SelectComboPreset(level, 1, "Select Macro Preset", Color.DarkBlue);
+ new SelectComboPreset(level, 1, "Select Macro Preset", Theme.COMBOS_MACRO_TITLE);
comboWindow.ShowDialog();
if (comboWindow.ClickedSelect)
{
@@ -733,7 +804,7 @@ private void objectComboPresetToolStripMenuItem_Click(object sender, EventArgs e
else if (obj.isPropertyShown(Object3D.FLAGS.ROTATION_Y))
specialListType = 3;
comboWindow =
- new SelectComboPreset(level, specialListType, "Select Special Preset", Color.DarkGreen);
+ new SelectComboPreset(level, specialListType, "Select Special Preset", Theme.COMBOS_SPECIAL_TITLE);
comboWindow.ShowDialog();
if (comboWindow.ClickedSelect)
{
@@ -2137,7 +2208,7 @@ private void trackBar3_ValueChanged(object sender, EventArgs e)
else if (newValue > 96f && newValue < 114f)
newValue = 100f;
- camSpeedLabel.Text = (int)(newValue) + "%";
+ camSpeedPercentageLabel.Text = (int)(newValue) + "%";
Globals.camSpeedMultiplier = newValue/100.0f;
}
@@ -2166,6 +2237,19 @@ private void gridSize_ValueChanged(object sender, EventArgs e)
private const int WM_USER = 0x0400;
+
+ private void themesToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ ThemeSelector selector = new ThemeSelector();
+ selector.ShowDialog();
+ if (selector.doUpdate)
+ {
+ Theme.LoadColorsFromJSONFile(selector.themePath);
+ updateTheme();
+ SettingsFile.SaveGlobalSettings("default");
+ }
+ }
+
private const int EM_SETEVENTMASK = (WM_USER + 69);
private const int WM_SETREDRAW = 0x0b;
private IntPtr OldEventMask;
diff --git a/src/Forms/MultiselectTree/MultiselectTreeView.cs b/src/Forms/MultiselectTree/MultiselectTreeView.cs
index 0d67542..d6d0961 100644
--- a/src/Forms/MultiselectTree/MultiselectTreeView.cs
+++ b/src/Forms/MultiselectTree/MultiselectTreeView.cs
@@ -1,4 +1,5 @@
-using System;
+using Quad64.src;
+using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
@@ -238,6 +239,7 @@ private void SelectNode( TreeNode node )
{
if (node == null || node.Parent == null)
{
+ node.BackColor = Theme.MAIN_TREEVIEW_BACKGROUND;
SelectedNodes = null;
return;
}
@@ -400,8 +402,8 @@ private void ClearSelectedNodes()
public void SelectSingleNode( TreeNode node )
{
if ( node == null || node.Parent == null)
- {
- return;
+ {
+ return;
}
ClearSelectedNodes();
@@ -412,7 +414,9 @@ public void SelectSingleNode( TreeNode node )
public void ToggleNode( TreeNode node, bool bSelectNode )
{
if (node == null || node.Parent == null)
+ {
return;
+ }
if( bSelectNode )
{
m_SelectedNode = node;
@@ -420,7 +424,7 @@ public void ToggleNode( TreeNode node, bool bSelectNode )
{
m_SelectedNodes.Add( node );
}
- node.BackColor = Color.FromArgb(0x70, 0xBB, 0xDB);
+ node.BackColor = Theme.MAIN_TREEVIEW_HIGHTLIGHT;
//node.ForeColor = SystemColors.HighlightText;
}
diff --git a/src/Forms/ROMInfoForm.Designer.cs b/src/Forms/ROMInfoForm.Designer.cs
index d067c22..5ecbcfb 100644
--- a/src/Forms/ROMInfoForm.Designer.cs
+++ b/src/Forms/ROMInfoForm.Designer.cs
@@ -52,6 +52,7 @@ private void InitializeComponent()
this.table.ColumnCount = 2;
this.table.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.73529F));
this.table.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 74.26471F));
+ this.table.ForeColor = System.Drawing.SystemColors.ControlText;
this.table.Location = new System.Drawing.Point(12, 35);
this.table.Name = "table";
this.table.RowCount = 2;
diff --git a/src/Forms/ROMInfoForm.cs b/src/Forms/ROMInfoForm.cs
index 23b6c72..7afbb70 100644
--- a/src/Forms/ROMInfoForm.cs
+++ b/src/Forms/ROMInfoForm.cs
@@ -1,4 +1,5 @@
-using System;
+using Quad64.src;
+using System;
using System.Windows.Forms;
namespace Quad64
@@ -16,6 +17,9 @@ public ROMInfoForm()
addNewRow("Region", rom.getRegionText());
addNewRow("Endianness", rom.getEndianText());
addNewRow("Size (MB)", (rom.Bytes.Length / 1024 / 1024).ToString());
+
+ BackColor = Theme.DEFAULT_BACKGROUND;
+ label1.ForeColor = Theme.DEFAULT_TEXT;
}
private void addNewRow(string rowName, string rowData)
@@ -36,6 +40,8 @@ private TextBox newLabel(string text)
label.BorderStyle = 0;
label.BackColor = this.BackColor;
label.TabStop = false;
+ label.BackColor = Theme.DEFAULT_BACKGROUND;
+ label.ForeColor = Theme.DEFAULT_TEXT;
return label;
}
diff --git a/src/Forms/RenameObjectCombo.Designer.cs b/src/Forms/RenameObjectCombo.Designer.cs
index de9fb0c..5404df3 100644
--- a/src/Forms/RenameObjectCombo.Designer.cs
+++ b/src/Forms/RenameObjectCombo.Designer.cs
@@ -43,6 +43,7 @@ private void InitializeComponent()
//
// buttonOK
//
+ this.buttonOK.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonOK.Location = new System.Drawing.Point(65, 44);
this.buttonOK.Name = "buttonOK";
this.buttonOK.Size = new System.Drawing.Size(75, 23);
@@ -53,6 +54,7 @@ private void InitializeComponent()
//
// buttonCancel
//
+ this.buttonCancel.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonCancel.Location = new System.Drawing.Point(197, 44);
this.buttonCancel.Name = "buttonCancel";
this.buttonCancel.Size = new System.Drawing.Size(75, 23);
diff --git a/src/Forms/RenameObjectCombo.cs b/src/Forms/RenameObjectCombo.cs
index c20dc36..8d662fb 100644
--- a/src/Forms/RenameObjectCombo.cs
+++ b/src/Forms/RenameObjectCombo.cs
@@ -19,6 +19,14 @@ public RenameObjectCombo(string input)
InitializeComponent();
textBox.Text = input;
ClickedSelect = false;
+
+ BackColor = Theme.DEFAULT_BACKGROUND;
+ textBox.BackColor = Theme.DEFAULT_TEXTBOX_BACKGROUND;
+ textBox.ForeColor = Theme.DEFAULT_TEXTBOX_TEXT;
+ buttonOK.BackColor = Theme.DEFAULT_BUTTON_BACKGROUND;
+ buttonOK.ForeColor = Theme.DEFAULT_BUTTON_TEXT;
+ buttonCancel.BackColor = Theme.DEFAULT_BUTTON_BACKGROUND;
+ buttonCancel.ForeColor = Theme.DEFAULT_BUTTON_TEXT;
}
private void buttonOK_Click(object sender, EventArgs e)
diff --git a/src/Forms/ScriptDumps.Designer.cs b/src/Forms/ScriptDumps.Designer.cs
index 7a957b9..bcfcf39 100644
--- a/src/Forms/ScriptDumps.Designer.cs
+++ b/src/Forms/ScriptDumps.Designer.cs
@@ -120,24 +120,27 @@ private void InitializeComponent()
this.subTabsLevel.SelectedIndex = 0;
this.subTabsLevel.Size = new System.Drawing.Size(707, 391);
this.subTabsLevel.TabIndex = 0;
+ this.subTabsLevel.TabStop = false;
this.subTabsLevel.SelectedIndexChanged += new System.EventHandler(this.subTabsLevel_SelectedIndexChanged);
//
// lt_lsTab
//
+ this.lt_lsTab.BackColor = System.Drawing.Color.Transparent;
this.lt_lsTab.Controls.Add(this.lt_ls_textbox);
+ this.lt_lsTab.ForeColor = System.Drawing.SystemColors.ControlText;
this.lt_lsTab.Location = new System.Drawing.Point(4, 22);
this.lt_lsTab.Name = "lt_lsTab";
this.lt_lsTab.Padding = new System.Windows.Forms.Padding(3);
this.lt_lsTab.Size = new System.Drawing.Size(699, 365);
this.lt_lsTab.TabIndex = 0;
this.lt_lsTab.Text = "Level script";
- this.lt_lsTab.UseVisualStyleBackColor = true;
//
// lt_ls_textbox
//
this.lt_ls_textbox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
+ this.lt_ls_textbox.BackColor = System.Drawing.SystemColors.Window;
this.lt_ls_textbox.DetectUrls = false;
this.lt_ls_textbox.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lt_ls_textbox.HideSelection = false;
@@ -205,6 +208,7 @@ private void InitializeComponent()
this.lt_f3d_listbox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.lt_f3d_listbox.BackColor = System.Drawing.SystemColors.Window;
+ this.lt_f3d_listbox.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.lt_f3d_listbox.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lt_f3d_listbox.FormattingEnabled = true;
this.lt_f3d_listbox.IntegralHeight = false;
@@ -213,6 +217,7 @@ private void InitializeComponent()
this.lt_f3d_listbox.Name = "lt_f3d_listbox";
this.lt_f3d_listbox.Size = new System.Drawing.Size(88, 341);
this.lt_f3d_listbox.TabIndex = 10;
+ this.lt_f3d_listbox.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.lt_f3d_listbox_DrawItem);
this.lt_f3d_listbox.SelectedIndexChanged += new System.EventHandler(this.lt_f3d_listbox_SelectedIndexChanged);
//
// lt_f3d_radioPanel
@@ -257,11 +262,13 @@ private void InitializeComponent()
this.splitContainer1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
+ this.splitContainer1.BackColor = System.Drawing.Color.Transparent;
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
this.splitContainer1.Name = "splitContainer1";
//
// splitContainer1.Panel1
//
+ this.splitContainer1.Panel1.BackColor = System.Drawing.Color.Transparent;
this.splitContainer1.Panel1.Controls.Add(this.listObjectsSortPanel);
this.splitContainer1.Panel1.Controls.Add(this.listBoxObjects);
//
@@ -276,7 +283,7 @@ private void InitializeComponent()
//
this.listObjectsSortPanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
- this.listObjectsSortPanel.BackColor = System.Drawing.Color.WhiteSmoke;
+ this.listObjectsSortPanel.BackColor = System.Drawing.Color.Transparent;
this.listObjectsSortPanel.Controls.Add(this.comboBoxObjectSort);
this.listObjectsSortPanel.Controls.Add(this.ListObjectsSortLabel);
this.listObjectsSortPanel.Location = new System.Drawing.Point(0, 0);
@@ -289,9 +296,11 @@ private void InitializeComponent()
this.comboBoxObjectSort.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
+ this.comboBoxObjectSort.BackColor = System.Drawing.SystemColors.Window;
this.comboBoxObjectSort.DisplayMember = "0";
this.comboBoxObjectSort.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBoxObjectSort.DropDownWidth = 180;
+ this.comboBoxObjectSort.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.comboBoxObjectSort.FormattingEnabled = true;
this.comboBoxObjectSort.Items.AddRange(new object[] {
"Combo Name (Alphabetical)",
@@ -322,12 +331,14 @@ private void InitializeComponent()
this.listBoxObjects.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
+ this.listBoxObjects.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.listBoxObjects.FormattingEnabled = true;
this.listBoxObjects.IntegralHeight = false;
this.listBoxObjects.Location = new System.Drawing.Point(0, 25);
this.listBoxObjects.Name = "listBoxObjects";
this.listBoxObjects.Size = new System.Drawing.Size(224, 363);
this.listBoxObjects.TabIndex = 0;
+ this.listBoxObjects.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.listBoxObjects_DrawItem);
this.listBoxObjects.SelectedIndexChanged += new System.EventHandler(this.listBoxObjects_SelectedIndexChanged);
//
// subTabsObjects
@@ -390,6 +401,7 @@ private void InitializeComponent()
this.ot_f3d_listbox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.ot_f3d_listbox.BackColor = System.Drawing.SystemColors.Window;
+ this.ot_f3d_listbox.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.ot_f3d_listbox.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.ot_f3d_listbox.FormattingEnabled = true;
this.ot_f3d_listbox.IntegralHeight = false;
@@ -398,6 +410,7 @@ private void InitializeComponent()
this.ot_f3d_listbox.Name = "ot_f3d_listbox";
this.ot_f3d_listbox.Size = new System.Drawing.Size(88, 364);
this.ot_f3d_listbox.TabIndex = 12;
+ this.ot_f3d_listbox.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.ot_f3d_listbox_DrawItem);
this.ot_f3d_listbox.SelectedIndexChanged += new System.EventHandler(this.ot_f3d_listbox_SelectedIndexChanged);
//
// ot_f3d_textbox
@@ -461,6 +474,7 @@ private void InitializeComponent()
// IndentCB
//
this.IndentCB.AutoSize = true;
+ this.IndentCB.BackColor = System.Drawing.Color.Transparent;
this.IndentCB.Checked = true;
this.IndentCB.CheckState = System.Windows.Forms.CheckState.Checked;
this.IndentCB.Location = new System.Drawing.Point(527, 4);
@@ -468,24 +482,27 @@ private void InitializeComponent()
this.IndentCB.Size = new System.Drawing.Size(84, 17);
this.IndentCB.TabIndex = 19;
this.IndentCB.Text = "Indent bytes";
- this.IndentCB.UseVisualStyleBackColor = true;
+ this.IndentCB.UseVisualStyleBackColor = false;
this.IndentCB.CheckedChanged += new System.EventHandler(this.updateScriptDump);
//
// wordWrapCB
//
this.wordWrapCB.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.wordWrapCB.AutoSize = true;
+ this.wordWrapCB.BackColor = System.Drawing.Color.Transparent;
+ this.wordWrapCB.ForeColor = System.Drawing.SystemColors.ControlText;
this.wordWrapCB.Location = new System.Drawing.Point(627, 4);
this.wordWrapCB.Name = "wordWrapCB";
this.wordWrapCB.Size = new System.Drawing.Size(78, 17);
this.wordWrapCB.TabIndex = 18;
this.wordWrapCB.Text = "Word wrap";
- this.wordWrapCB.UseVisualStyleBackColor = true;
+ this.wordWrapCB.UseVisualStyleBackColor = false;
this.wordWrapCB.CheckedChanged += new System.EventHandler(this.updateScriptDumpWordWrap);
//
// FormatCB
//
this.FormatCB.AutoSize = true;
+ this.FormatCB.BackColor = System.Drawing.Color.Transparent;
this.FormatCB.Checked = true;
this.FormatCB.CheckState = System.Windows.Forms.CheckState.Checked;
this.FormatCB.Location = new System.Drawing.Point(435, 4);
@@ -493,12 +510,13 @@ private void InitializeComponent()
this.FormatCB.Size = new System.Drawing.Size(86, 17);
this.FormatCB.TabIndex = 17;
this.FormatCB.Text = "Format bytes";
- this.FormatCB.UseVisualStyleBackColor = true;
+ this.FormatCB.UseVisualStyleBackColor = false;
this.FormatCB.CheckedChanged += new System.EventHandler(this.updateScriptDump);
//
// CommCB
//
this.CommCB.AutoSize = true;
+ this.CommCB.BackColor = System.Drawing.Color.Transparent;
this.CommCB.Checked = true;
this.CommCB.CheckState = System.Windows.Forms.CheckState.Checked;
this.CommCB.Location = new System.Drawing.Point(273, 4);
@@ -506,12 +524,13 @@ private void InitializeComponent()
this.CommCB.Size = new System.Drawing.Size(155, 17);
this.CommCB.TabIndex = 16;
this.CommCB.Text = "Show generated comments";
- this.CommCB.UseVisualStyleBackColor = true;
+ this.CommCB.UseVisualStyleBackColor = false;
this.CommCB.CheckedChanged += new System.EventHandler(this.updateScriptDump);
//
// SegAddrCB
//
this.SegAddrCB.AutoSize = true;
+ this.SegAddrCB.BackColor = System.Drawing.Color.Transparent;
this.SegAddrCB.Checked = true;
this.SegAddrCB.CheckState = System.Windows.Forms.CheckState.Checked;
this.SegAddrCB.Location = new System.Drawing.Point(130, 4);
@@ -519,12 +538,13 @@ private void InitializeComponent()
this.SegAddrCB.Size = new System.Drawing.Size(136, 17);
this.SegAddrCB.TabIndex = 15;
this.SegAddrCB.Text = "Show segment address";
- this.SegAddrCB.UseVisualStyleBackColor = true;
+ this.SegAddrCB.UseVisualStyleBackColor = false;
this.SegAddrCB.CheckedChanged += new System.EventHandler(this.updateScriptDump);
//
// showRomCB
//
this.showRomCB.AutoSize = true;
+ this.showRomCB.BackColor = System.Drawing.Color.Transparent;
this.showRomCB.Checked = true;
this.showRomCB.CheckState = System.Windows.Forms.CheckState.Checked;
this.showRomCB.Location = new System.Drawing.Point(3, 4);
@@ -532,7 +552,7 @@ private void InitializeComponent()
this.showRomCB.Size = new System.Drawing.Size(121, 17);
this.showRomCB.TabIndex = 14;
this.showRomCB.Text = "Show ROM address";
- this.showRomCB.UseVisualStyleBackColor = true;
+ this.showRomCB.UseVisualStyleBackColor = false;
this.showRomCB.CheckedChanged += new System.EventHandler(this.updateScriptDump);
//
// panel1
diff --git a/src/Forms/ScriptDumps.cs b/src/Forms/ScriptDumps.cs
index ddfe2c3..226bf45 100644
--- a/src/Forms/ScriptDumps.cs
+++ b/src/Forms/ScriptDumps.cs
@@ -25,9 +25,9 @@ public ScriptDumps(Level level)
currentTextbox = lt_ls_textbox;
organizeCurrentLevelScript(level.LevelScriptCommands_ForDump);
initObjectList();
+ setupTheme();
}
-
private static uint bytesToInt(byte[] b, int offset, int length)
{
switch (length)
@@ -137,6 +137,7 @@ private void updateScriptDump(object sender, EventArgs e)
else
{
currentTextbox.ResetText();
+ currentTextbox.ForeColor = Theme.SCRIPTDUMPS_GEOLAYOUT_TEXTBOX_TEXT;
currentTextbox.Text = "";
}
}
@@ -158,6 +159,7 @@ private void updateScriptDump(object sender, EventArgs e)
else
{
currentTextbox.ResetText();
+ currentTextbox.ForeColor = Theme.SCRIPTDUMPS_FAST3D_TEXTBOX_TEXT;
currentTextbox.Text = "";
}
}
@@ -226,5 +228,106 @@ private void sd_tabs_SelectedIndexChanged(object sender, EventArgs e)
break;
}
}
+
+ private void setupTheme()
+ {
+ BackColor = Theme.SCRIPTDUMPS_BACKGROUND;
+ splitContainer1.BackColor = Theme.SCRIPTDUMPS_BACKGROUND;
+ tabLevel.BackColor = Theme.SCRIPTDUMPS_BACKGROUND;
+ tabObjects.BackColor = Theme.SCRIPTDUMPS_BACKGROUND;
+ panel1.BackColor = Theme.SCRIPTDUMPS_OPTIONS_BACKGROUND;
+ showRomCB.ForeColor = Theme.SCRIPTDUMPS_TEXT;
+ SegAddrCB.ForeColor = Theme.SCRIPTDUMPS_TEXT;
+ IndentCB.ForeColor = Theme.SCRIPTDUMPS_TEXT;
+ wordWrapCB.ForeColor = Theme.SCRIPTDUMPS_TEXT;
+ FormatCB.ForeColor = Theme.SCRIPTDUMPS_TEXT;
+ CommCB.ForeColor = Theme.SCRIPTDUMPS_TEXT;
+ ListObjectsSortLabel.ForeColor = Theme.SCRIPTDUMPS_TEXT;
+
+ lt_f3d_listbox.BackColor = Theme.SCRIPTDUMPS_FAST3D_LISTBOX_BACKGROUND;
+ listBoxObjects.BackColor = Theme.SCRIPTDUMPS_OBJECTSTAB_LISTBOX_BACKGROUND;
+ ot_f3d_listbox.BackColor = Theme.SCRIPTDUMPS_FAST3D_LISTBOX_BACKGROUND;
+
+ lt_ls_textbox.BackColor = Theme.SCRIPTDUMPS_LEVEL_TEXTBOX_BACKGROUND;
+ lt_gls_textbox.BackColor = Theme.SCRIPTDUMPS_GEOLAYOUT_TEXTBOX_BACKGROUND;
+ lt_f3d_textbox.BackColor = Theme.SCRIPTDUMPS_FAST3D_TEXTBOX_BACKGROUND;
+
+ ot_gls_textbox.BackColor = Theme.SCRIPTDUMPS_GEOLAYOUT_TEXTBOX_BACKGROUND;
+ ot_f3d_textbox.BackColor = Theme.SCRIPTDUMPS_FAST3D_TEXTBOX_BACKGROUND;
+ ot_beh_textbox.BackColor = Theme.SCRIPTDUMPS_BEHAVIOR_TEXTBOX_BACKGROUND;
+
+ lt_gls_radioPanel.BackColor = Theme.SCRIPTDUMPS_LEVELTAB_GEOLAYOUT_AREAPANEL_BACKGROUND;
+ lt_f3d_radioPanel.BackColor = Theme.SCRIPTDUMPS_LEVELTAB_FAST3D_AREAPANEL_BACKGROUND;
+
+ comboBoxObjectSort.BackColor = Theme.SCRIPTDUMPS_OBJECTSTAB_SORT_DROPDOWNLIST_BACKGROUND;
+ comboBoxObjectSort.ForeColor = Theme.SCRIPTDUMPS_OBJECTSTAB_SORT_DROPDOWNLIST_TEXT;
+ }
+
+ private void listBoxObjects_DrawItem(object sender, DrawItemEventArgs e)
+ {
+ if (e.Index < 0) return;
+ bool isSelected = (e.State & DrawItemState.Selected) == DrawItemState.Selected;
+ SolidBrush textBrush = new SolidBrush(Theme.SCRIPTDUMPS_OBJECTSTAB_LISTBOX_TEXT);
+ if (isSelected)
+ {
+ e = new DrawItemEventArgs(e.Graphics,
+ e.Font,
+ e.Bounds,
+ e.Index,
+ e.State ^ DrawItemState.Selected,
+ e.ForeColor,
+
+ Theme.SCRIPTDUMPS_OBJECTSTAB_LISTBOX_HIGHLIGHT);
+ textBrush = new SolidBrush(Theme.SCRIPTDUMPS_OBJECTSTAB_LISTBOX_HIGHLIGHTEDTEXT);
+ }
+
+ e.DrawBackground();
+ e.Graphics.DrawString(listBoxObjects.Items[e.Index].ToString(), e.Font, textBrush, e.Bounds, StringFormat.GenericDefault);
+ e.DrawFocusRectangle();
+ }
+
+ private void lt_f3d_listbox_DrawItem(object sender, DrawItemEventArgs e)
+ {
+ if (e.Index < 0) return;
+ bool isSelected = (e.State & DrawItemState.Selected) == DrawItemState.Selected;
+ SolidBrush textBrush = new SolidBrush(Theme.SCRIPTDUMPS_FAST3D_LISTBOX_TEXT);
+ if (isSelected)
+ {
+ e = new DrawItemEventArgs(e.Graphics,
+ e.Font,
+ e.Bounds,
+ e.Index,
+ e.State ^ DrawItemState.Selected,
+ e.ForeColor,
+ Theme.SCRIPTDUMPS_FAST3D_LISTBOX_HIGHLIGHT);
+ textBrush = new SolidBrush(Theme.SCRIPTDUMPS_FAST3D_LISTBOX_HIGHLIGHTEDTEXT);
+ }
+
+ e.DrawBackground();
+ e.Graphics.DrawString(lt_f3d_listbox.Items[e.Index].ToString(), e.Font, textBrush, e.Bounds, StringFormat.GenericDefault);
+ e.DrawFocusRectangle();
+ }
+
+ private void ot_f3d_listbox_DrawItem(object sender, DrawItemEventArgs e)
+ {
+ if (e.Index < 0) return;
+ bool isSelected = (e.State & DrawItemState.Selected) == DrawItemState.Selected;
+ SolidBrush textBrush = new SolidBrush(Theme.SCRIPTDUMPS_FAST3D_LISTBOX_TEXT);
+ if (isSelected)
+ {
+ e = new DrawItemEventArgs(e.Graphics,
+ e.Font,
+ e.Bounds,
+ e.Index,
+ e.State ^ DrawItemState.Selected,
+ e.ForeColor,
+ Theme.SCRIPTDUMPS_FAST3D_LISTBOX_HIGHLIGHT);
+ textBrush = new SolidBrush(Theme.SCRIPTDUMPS_FAST3D_LISTBOX_HIGHLIGHTEDTEXT);
+ }
+
+ e.DrawBackground();
+ e.Graphics.DrawString(ot_f3d_listbox.Items[e.Index].ToString(), e.Font, textBrush, e.Bounds, StringFormat.GenericDefault);
+ e.DrawFocusRectangle();
+ }
}
}
diff --git a/src/Forms/ScriptDumps_Tabs/Level/LevelTab_Fast3D.cs b/src/Forms/ScriptDumps_Tabs/Level/LevelTab_Fast3D.cs
index cea525d..5b546ce 100644
--- a/src/Forms/ScriptDumps_Tabs/Level/LevelTab_Fast3D.cs
+++ b/src/Forms/ScriptDumps_Tabs/Level/LevelTab_Fast3D.cs
@@ -73,6 +73,9 @@ private void initFast3DForLevelTab()
newButton.Location = new Point(rb_width * i, lt_f3d_radioPanel.Location.Y);
newButton.Size = new Size(rb_width, lt_f3d_radioPanel.Height);
newButton.CheckedChanged += lt_f3d_areas_CheckedChanged;
+ newButton.BackColor = Theme.SCRIPTDUMPS_LEVELTAB_FAST3D_AREAPANEL_BACKGROUND;
+ newButton.ForeColor = Theme.SCRIPTDUMPS_LEVELTAB_FAST3D_AREAPANEL_TEXT;
+ newButton.FlatStyle = FlatStyle.Flat;
//newButton.Anchor = (AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right);
if (i == 0)
newButton.Checked = true;
@@ -143,7 +146,7 @@ private void organizeCurrentFast3DScript(List f3dList)
currentTextbox.Clear();
int currentIndent = 0;
StringBuilder sb = new StringBuilder();
- sb.Append("{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Courier New;}}{\\colortbl;\\red0\\green0\\blue0;\\red0\\green128\\blue0; }\\viewkind4\\uc1\\pard\\f0\\fs17 ");
+ sb.Append("{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Courier New;}}{\\colortbl;\\red"+Theme.SCRIPTDUMPS_FAST3D_TEXTBOX_TEXT.R+ "\\green" + Theme.SCRIPTDUMPS_FAST3D_TEXTBOX_TEXT.G + "\\blue" + Theme.SCRIPTDUMPS_FAST3D_TEXTBOX_TEXT.B + ";\\red" + Theme.SCRIPTDUMPS_FAST3D_TEXTBOX_COMMENTS.R + "\\green" + Theme.SCRIPTDUMPS_FAST3D_TEXTBOX_COMMENTS.G + "\\blue" + Theme.SCRIPTDUMPS_FAST3D_TEXTBOX_COMMENTS.B + "; }\\viewkind4\\uc1\\pard\\f0\\fs17\\cf1 ");
for (int i = 0; i < f3dList.Count; i++)
{
ScriptDumpCommandInfo info = f3dList[i];
diff --git a/src/Forms/ScriptDumps_Tabs/Level/LevelTab_GeoLayout.cs b/src/Forms/ScriptDumps_Tabs/Level/LevelTab_GeoLayout.cs
index 7f42ca6..6787558 100644
--- a/src/Forms/ScriptDumps_Tabs/Level/LevelTab_GeoLayout.cs
+++ b/src/Forms/ScriptDumps_Tabs/Level/LevelTab_GeoLayout.cs
@@ -56,6 +56,9 @@ private void initGeoLayoutForLevelTab()
newButton.Location = new Point(rb_width * i, lt_gls_radioPanel.Location.Y);
newButton.Size = new Size(rb_width, lt_gls_radioPanel.Height);
newButton.CheckedChanged += lt_gls_areas_CheckedChanged;
+ newButton.BackColor = Theme.SCRIPTDUMPS_LEVELTAB_GEOLAYOUT_AREAPANEL_BACKGROUND;
+ newButton.ForeColor = Theme.SCRIPTDUMPS_LEVELTAB_GEOLAYOUT_AREAPANEL_TEXT;
+ newButton.FlatStyle = FlatStyle.Flat;
//newButton.Anchor = (AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right);
if (i == 0)
newButton.Checked = true;
@@ -182,7 +185,7 @@ private void organizeCurrentGeoLayoutScript(List glsList)
currentTextbox.Clear();
int currentIndent = 0;
StringBuilder sb = new StringBuilder();
- sb.Append("{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Courier New;}}{\\colortbl;\\red0\\green0\\blue0;\\red0\\green128\\blue0; }\\viewkind4\\uc1\\pard\\f0\\fs17 ");
+ sb.Append("{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Courier New;}}{\\colortbl;\\red" + Theme.SCRIPTDUMPS_GEOLAYOUT_TEXTBOX_TEXT.R + "\\green" + Theme.SCRIPTDUMPS_GEOLAYOUT_TEXTBOX_TEXT.G + "\\blue" + Theme.SCRIPTDUMPS_GEOLAYOUT_TEXTBOX_TEXT.B + ";\\red" + Theme.SCRIPTDUMPS_GEOLAYOUT_TEXTBOX_COMMENTS.R + "\\green" + Theme.SCRIPTDUMPS_GEOLAYOUT_TEXTBOX_COMMENTS.G + "\\blue" + Theme.SCRIPTDUMPS_GEOLAYOUT_TEXTBOX_COMMENTS.B + "; }\\viewkind4\\uc1\\pard\\f0\\fs17\\cf1 ");
for (int i = 0; i < glsList.Count; i++)
{
ScriptDumpCommandInfo info = glsList[i];
diff --git a/src/Forms/ScriptDumps_Tabs/Level/LevelTab_Levelscripts.cs b/src/Forms/ScriptDumps_Tabs/Level/LevelTab_Levelscripts.cs
index fc8e174..85d8476 100644
--- a/src/Forms/ScriptDumps_Tabs/Level/LevelTab_Levelscripts.cs
+++ b/src/Forms/ScriptDumps_Tabs/Level/LevelTab_Levelscripts.cs
@@ -118,7 +118,7 @@ private void organizeCurrentLevelScript(List lsList)
currentTextbox.Clear();
int currentIndent = 0;
StringBuilder sb = new StringBuilder();
- sb.Append("{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Courier New;}}{\\colortbl;\\red0\\green0\\blue0;\\red0\\green128\\blue0; }\\viewkind4\\uc1\\pard\\f0\\fs17 ");
+ sb.Append("{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Courier New;}}{\\colortbl;\\red" + Theme.SCRIPTDUMPS_LEVEL_TEXTBOX_TEXT.R + "\\green" + Theme.SCRIPTDUMPS_LEVEL_TEXTBOX_TEXT.G + "\\blue" + Theme.SCRIPTDUMPS_LEVEL_TEXTBOX_TEXT.B + ";\\red" + Theme.SCRIPTDUMPS_LEVEL_TEXTBOX_COMMENTS.R + "\\green" + Theme.SCRIPTDUMPS_LEVEL_TEXTBOX_COMMENTS.G + "\\blue" + Theme.SCRIPTDUMPS_LEVEL_TEXTBOX_COMMENTS.B + "; }\\viewkind4\\uc1\\pard\\f0\\fs17\\cf1 ");
for (int i = 0; i < lsList.Count; i++)
{
ScriptDumpCommandInfo info = lsList[i];
diff --git a/src/Forms/ScriptDumps_Tabs/Objects/ObjectsTab_Behavior.cs b/src/Forms/ScriptDumps_Tabs/Objects/ObjectsTab_Behavior.cs
index edb649a..a320ebc 100644
--- a/src/Forms/ScriptDumps_Tabs/Objects/ObjectsTab_Behavior.cs
+++ b/src/Forms/ScriptDumps_Tabs/Objects/ObjectsTab_Behavior.cs
@@ -124,7 +124,7 @@ private void organizeCurrentBehaviorScript(List behList)
currentTextbox.Clear();
int currentIndent = 0;
StringBuilder sb = new StringBuilder();
- sb.Append("{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Courier New;}}{\\colortbl;\\red0\\green0\\blue0;\\red0\\green128\\blue0; }\\viewkind4\\uc1\\pard\\f0\\fs17 ");
+ sb.Append("{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Courier New;}}{\\colortbl;\\red" + Theme.SCRIPTDUMPS_BEHAVIOR_TEXTBOX_TEXT.R + "\\green" + Theme.SCRIPTDUMPS_BEHAVIOR_TEXTBOX_TEXT.G + "\\blue" + Theme.SCRIPTDUMPS_BEHAVIOR_TEXTBOX_TEXT.B + ";\\red" + Theme.SCRIPTDUMPS_BEHAVIOR_TEXTBOX_COMMENTS.R + "\\green" + Theme.SCRIPTDUMPS_BEHAVIOR_TEXTBOX_COMMENTS.G + "\\blue" + Theme.SCRIPTDUMPS_BEHAVIOR_TEXTBOX_COMMENTS.B + "; }\\viewkind4\\uc1\\pard\\f0\\fs17\\cf1 ");
for (int i = 0; i < behList.Count; i++)
{
ScriptDumpCommandInfo info = behList[i];
diff --git a/src/Forms/SelectBehavior.Designer.cs b/src/Forms/SelectBehavior.Designer.cs
index e7dcb16..da89c49 100644
--- a/src/Forms/SelectBehavior.Designer.cs
+++ b/src/Forms/SelectBehavior.Designer.cs
@@ -39,6 +39,7 @@ private void InitializeComponent()
//
// cancelButton
//
+ this.cancelButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.cancelButton.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cancelButton.Location = new System.Drawing.Point(249, 266);
this.cancelButton.Name = "cancelButton";
@@ -50,6 +51,7 @@ private void InitializeComponent()
//
// selectButton
//
+ this.selectButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.selectButton.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.selectButton.Location = new System.Drawing.Point(107, 266);
this.selectButton.Name = "selectButton";
@@ -71,7 +73,6 @@ private void InitializeComponent()
this.listView1.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.listView1.ForeColor = System.Drawing.SystemColors.MenuText;
this.listView1.FullRowSelect = true;
- this.listView1.GridLines = true;
this.listView1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
this.listView1.HideSelection = false;
this.listView1.Location = new System.Drawing.Point(12, 30);
diff --git a/src/Forms/SelectBehavior.cs b/src/Forms/SelectBehavior.cs
index d84459b..8f3a8c0 100644
--- a/src/Forms/SelectBehavior.cs
+++ b/src/Forms/SelectBehavior.cs
@@ -23,11 +23,27 @@ public SelectBehavior()
{
listView1.Items.Add("("+entry.Behavior.ToString("X8") + ") " + entry.Name);
}
+ updateTheme();
+ }
+
+ private void updateTheme()
+ {
+ BackColor = Theme.COMBOS_BACKGROUND;
+ label_filter.BackColor = Theme.COMBOS_BACKGROUND;
+ label_filter.ForeColor = Theme.COMBOS_TEXT;
+ selectButton.BackColor = Theme.DEFAULT_BUTTON_BACKGROUND;
+ selectButton.ForeColor = Theme.DEFAULT_BUTTON_TEXT;
+ cancelButton.BackColor = Theme.DEFAULT_BUTTON_BACKGROUND;
+ cancelButton.ForeColor = Theme.DEFAULT_BUTTON_TEXT;
+ textBox_filter.BackColor = Theme.DEFAULT_DROPDOWNLIST_BACKGROUND;
+ textBox_filter.ForeColor = Theme.DEFAULT_DROPDOWNLIST_TEXT;
+ listView1.BackColor = Theme.COMBOS_BACKGROUND;
+ listView1.ForeColor = Theme.COMBOS_TEXT;
}
private Font textFont = new Font("Courier New", 10, FontStyle.Bold);
- private Brush textBrush = new SolidBrush(Color.DimGray);
- private Pen bgPen = new Pen(Color.FromArgb(230, 230, 230), 100.0f);
+ private Brush textBrush = new SolidBrush(Theme.COMBOS_OTHER_TITLE);
+ private Pen bgPen = new Pen(Theme.COMBOS_BACKGROUND, 100.0f);
private Rectangle bgRect = new Rectangle(0, 0, 400, 2);
private void listView1_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
{
@@ -61,16 +77,17 @@ private void cancelButton_Click(object sender, EventArgs e)
Close();
}
- private Color col1 = Color.FromArgb(250, 250, 240);
- private Color col2 = Color.FromArgb(250, 240, 240);
- private Color highlight = Color.FromArgb(200, 200, 255);
+ private Color col1 = Theme.COMBOS_OTHER_MAIN;
+ private Color col2 = Theme.COMBOS_OTHER_SECONDARY;
+ private Color col3 = Theme.COMBOS_OTHER_HIGHLIGHT_TEXT;
+ private Color col4 = Theme.COMBOS_OTHER_HIGHLIGHT;
private void listView1_DrawItem(object sender, DrawListViewItemEventArgs e)
{
// If this item is the selected item
if (e.Item.Selected)
{
- e.Item.ForeColor = Color.Black;
- e.Item.BackColor = highlight;
+ e.Item.ForeColor = col3;
+ e.Item.BackColor = col4;
}
else
{
diff --git a/src/Forms/SelectComboPreset.Designer.cs b/src/Forms/SelectComboPreset.Designer.cs
index 21ac298..65d3a87 100644
--- a/src/Forms/SelectComboPreset.Designer.cs
+++ b/src/Forms/SelectComboPreset.Designer.cs
@@ -49,7 +49,6 @@ private void InitializeComponent()
this.listView1.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.listView1.ForeColor = System.Drawing.SystemColors.MenuText;
this.listView1.FullRowSelect = true;
- this.listView1.GridLines = true;
this.listView1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
this.listView1.HideSelection = false;
this.listView1.Location = new System.Drawing.Point(12, 34);
@@ -73,6 +72,7 @@ private void InitializeComponent()
//
// selectButton
//
+ this.selectButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.selectButton.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.selectButton.Location = new System.Drawing.Point(82, 249);
this.selectButton.Name = "selectButton";
@@ -84,6 +84,7 @@ private void InitializeComponent()
//
// cancelButton
//
+ this.cancelButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.cancelButton.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cancelButton.Location = new System.Drawing.Point(222, 249);
this.cancelButton.Name = "cancelButton";
@@ -123,6 +124,8 @@ private void InitializeComponent()
this.Controls.Add(this.listView1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
this.Name = "SelectComboPreset";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Select Combo/Preset";
diff --git a/src/Forms/SelectComboPreset.cs b/src/Forms/SelectComboPreset.cs
index a5e128b..6d4ee31 100644
--- a/src/Forms/SelectComboPreset.cs
+++ b/src/Forms/SelectComboPreset.cs
@@ -29,6 +29,22 @@ public SelectComboPreset(Level level, int listType, string columnText, Color col
this.listType = listType;
listView1.Columns[0].Text = columnText;
textBrush = new SolidBrush(columnTextColor);
+ updateTheme();
+ }
+
+ private void updateTheme()
+ {
+ BackColor = Theme.COMBOS_BACKGROUND;
+ label_filter.BackColor = Theme.COMBOS_BACKGROUND;
+ label_filter.ForeColor = Theme.COMBOS_TEXT;
+ selectButton.BackColor = Theme.DEFAULT_BUTTON_BACKGROUND;
+ selectButton.ForeColor = Theme.DEFAULT_BUTTON_TEXT;
+ cancelButton.BackColor = Theme.DEFAULT_BUTTON_BACKGROUND;
+ cancelButton.ForeColor = Theme.DEFAULT_BUTTON_TEXT;
+ textBox_filter.BackColor = Theme.DEFAULT_TEXTBOX_BACKGROUND;
+ textBox_filter.ForeColor = Theme.DEFAULT_TEXTBOX_TEXT;
+ listView1.BackColor = Theme.DEFAULT_BACKGROUND;
+ listView1.ForeColor = Theme.DEFAULT_TEXT;
}
private void LoadSpecialList(List specialList, bool useFilter)
@@ -59,7 +75,11 @@ private void LoadSpecialList(List specialList, bool useFilter)
presetsTaken.Add(entry.PresetID);
}
}
- col2 = Color.FromArgb(240, 250, 240);
+
+ col1 = Theme.COMBOS_SPECIAL_MAIN;
+ col2 = Theme.COMBOS_SPECIAL_SECONDARY;
+ col3 = Theme.COMBOS_SPECIAL_HIGHLIGHT_TEXT;
+ col4 = Theme.COMBOS_SPECIAL_HIGHLIGHT;
}
private void SelectComboPreset_Load(object sender, EventArgs e)
@@ -77,7 +97,10 @@ private void SelectComboPreset_Load(object sender, EventArgs e)
};
int index = listView1.Items.Count - 1;
}
- col2 = Color.FromArgb(250, 240, 240);
+ col1 = Theme.COMBOS_3DOBJECTS_MAIN;
+ col2 = Theme.COMBOS_3DOBJECTS_SECONDARY;
+ col3 = Theme.COMBOS_3DOBJECTS_HIGHLIGHT_TEXT;
+ col4 = Theme.COMBOS_3DOBJECTS_HIGHLIGHT;
break;
case 1:
foreach (PresetMacroEntry entry in level.MacroObjectPresets)
@@ -97,7 +120,11 @@ private void SelectComboPreset_Load(object sender, EventArgs e)
}
}
}
- col2 = Color.FromArgb(240, 240, 250);
+ col1 = Theme.COMBOS_MACRO_MAIN;
+ col2 = Theme.COMBOS_MACRO_SECONDARY;
+ col3 = Theme.COMBOS_MACRO_HIGHLIGHT_TEXT;
+ col4 = Theme.COMBOS_MACRO_HIGHLIGHT;
+ //col2 = Color.FromArgb(240, 240, 250);
break;
case 2:
LoadSpecialList(level.SpecialObjectPresets_8, false);
@@ -118,16 +145,17 @@ private void SelectComboPreset_Load(object sender, EventArgs e)
}
}
- private Color col1 = Color.FromArgb(250, 250, 240);
- private Color col2 = Color.FromArgb(250, 240, 240);
- private Color highlight = Color.FromArgb(200, 200, 255);
+ private Color col1 = Theme.DEFAULT_BACKGROUND;
+ private Color col2 = Theme.DEFAULT_PANEL_BACKGROUND;
+ private Color col3 = Theme.DEFAULT_BACKGROUND;
+ private Color col4 = Theme.DEFAULT_PANEL_BACKGROUND;
private void listView1_DrawItem(object sender, DrawListViewItemEventArgs e)
{
// If this item is the selected item
if (e.Item.Selected)
{
- e.Item.ForeColor = Color.Black;
- e.Item.BackColor = highlight;
+ e.Item.ForeColor = col3;
+ e.Item.BackColor = col4;
}
else
{
@@ -142,8 +170,8 @@ private void listView1_DrawItem(object sender, DrawListViewItemEventArgs e)
}
private Font textFont = new Font("Courier New", 10, FontStyle.Bold);
- private Brush textBrush = new SolidBrush(Color.DimGray);
- private Pen bgPen = new Pen(Color.FromArgb(230, 230, 230), 100.0f);
+ private Brush textBrush = new SolidBrush(Theme.COMBOS_TEXT);
+ private Pen bgPen = new Pen(Theme.COMBOS_BACKGROUND, 100.0f);
private Rectangle bgRect = new Rectangle(0, 0, 400, 2);
private void listView1_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
{
@@ -242,7 +270,7 @@ private void textBox_filter_TextChanged(object sender, EventArgs e)
};
}
}
- col2 = Color.FromArgb(250, 240, 240);
+ //col2 = Color.FromArgb(250, 240, 240);
break;
case 1:
foreach (PresetMacroEntry entry in level.MacroObjectPresets)
@@ -264,7 +292,7 @@ private void textBox_filter_TextChanged(object sender, EventArgs e)
}
}
}
- col2 = Color.FromArgb(240, 240, 250);
+ //col2 = Color.FromArgb(240, 240, 250);
break;
case 2:
LoadSpecialList(level.SpecialObjectPresets_8, true);
diff --git a/src/Forms/SelectLevelForm.Designer.cs b/src/Forms/SelectLevelForm.Designer.cs
index 45e9dcf..1429557 100644
--- a/src/Forms/SelectLevelForm.Designer.cs
+++ b/src/Forms/SelectLevelForm.Designer.cs
@@ -29,48 +29,51 @@ protected override void Dispose(bool disposing)
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SelectLevelForm));
- this.comboBox1 = new System.Windows.Forms.ComboBox();
- this.button1 = new System.Windows.Forms.Button();
- this.button2 = new System.Windows.Forms.Button();
+ this.level_list = new System.Windows.Forms.ComboBox();
+ this.load_button = new System.Windows.Forms.Button();
+ this.cancel_button = new System.Windows.Forms.Button();
this.SuspendLayout();
//
- // comboBox1
+ // level_list
//
- this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
- this.comboBox1.FormattingEnabled = true;
- this.comboBox1.Location = new System.Drawing.Point(69, 16);
- this.comboBox1.Name = "comboBox1";
- this.comboBox1.Size = new System.Drawing.Size(214, 21);
- this.comboBox1.TabIndex = 0;
+ this.level_list.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.level_list.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.level_list.FormattingEnabled = true;
+ this.level_list.Location = new System.Drawing.Point(69, 16);
+ this.level_list.Name = "level_list";
+ this.level_list.Size = new System.Drawing.Size(214, 21);
+ this.level_list.TabIndex = 0;
//
- // button1
+ // load_button
//
- this.button1.Location = new System.Drawing.Point(69, 55);
- this.button1.Name = "button1";
- this.button1.Size = new System.Drawing.Size(104, 29);
- this.button1.TabIndex = 1;
- this.button1.Text = "Load";
- this.button1.UseVisualStyleBackColor = true;
- this.button1.Click += new System.EventHandler(this.button1_Click);
+ this.load_button.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.load_button.Location = new System.Drawing.Point(69, 55);
+ this.load_button.Name = "load_button";
+ this.load_button.Size = new System.Drawing.Size(104, 29);
+ this.load_button.TabIndex = 1;
+ this.load_button.Text = "Load";
+ this.load_button.UseVisualStyleBackColor = true;
+ this.load_button.Click += new System.EventHandler(this.button1_Click);
//
- // button2
+ // cancel_button
//
- this.button2.Location = new System.Drawing.Point(179, 55);
- this.button2.Name = "button2";
- this.button2.Size = new System.Drawing.Size(104, 29);
- this.button2.TabIndex = 2;
- this.button2.Text = "Cancel";
- this.button2.UseVisualStyleBackColor = true;
- this.button2.Click += new System.EventHandler(this.button2_Click);
+ this.cancel_button.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.cancel_button.Location = new System.Drawing.Point(179, 55);
+ this.cancel_button.Name = "cancel_button";
+ this.cancel_button.Size = new System.Drawing.Size(104, 29);
+ this.cancel_button.TabIndex = 2;
+ this.cancel_button.Text = "Cancel";
+ this.cancel_button.UseVisualStyleBackColor = true;
+ this.cancel_button.Click += new System.EventHandler(this.button2_Click);
//
// SelectLevelForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(348, 97);
- this.Controls.Add(this.button2);
- this.Controls.Add(this.button1);
- this.Controls.Add(this.comboBox1);
+ this.Controls.Add(this.cancel_button);
+ this.Controls.Add(this.load_button);
+ this.Controls.Add(this.level_list);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
@@ -84,8 +87,8 @@ private void InitializeComponent()
#endregion
- private System.Windows.Forms.ComboBox comboBox1;
- private System.Windows.Forms.Button button1;
- private System.Windows.Forms.Button button2;
+ private System.Windows.Forms.ComboBox level_list;
+ private System.Windows.Forms.Button load_button;
+ private System.Windows.Forms.Button cancel_button;
}
}
\ No newline at end of file
diff --git a/src/Forms/SelectLevelForm.cs b/src/Forms/SelectLevelForm.cs
index 748a217..9c6b013 100644
--- a/src/Forms/SelectLevelForm.cs
+++ b/src/Forms/SelectLevelForm.cs
@@ -1,4 +1,5 @@
-using Quad64.src.LevelInfo;
+using Quad64.src;
+using Quad64.src.LevelInfo;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@@ -22,21 +23,29 @@ public SelectLevelForm(ushort levelID)
//comboBox1.Item
foreach (KeyValuePair entry in rom.levelIDs)
{
- comboBox1.Items.Add(entry.Key + " (0x" + entry.Value.ToString("X2") + ")");
+ level_list.Items.Add(entry.Key + " (0x" + entry.Value.ToString("X2") + ")");
}
foreach (ushort entry in rom.extra_levelIDs)
{
- comboBox1.Items.Add("[EXT] Extra Level (0x" + entry.ToString("X2") + ")");
+ level_list.Items.Add("[EXT] Extra Level (0x" + entry.ToString("X2") + ")");
}
//comboBox1.Items.Add("Custom ID value");
- comboBox1.SelectedIndex = rom.getLevelIndexById(levelID);
+ level_list.SelectedIndex = rom.getLevelIndexById(levelID);
+
+ BackColor = Theme.DEFAULT_BACKGROUND;
+ level_list.BackColor = Theme.DEFAULT_DROPDOWNLIST_BACKGROUND;
+ level_list.ForeColor = Theme.DEFAULT_DROPDOWNLIST_TEXT;
+ cancel_button.BackColor = Theme.DEFAULT_BUTTON_BACKGROUND;
+ cancel_button.ForeColor = Theme.DEFAULT_BUTTON_TEXT;
+ load_button.BackColor = Theme.DEFAULT_BUTTON_BACKGROUND;
+ load_button.ForeColor = Theme.DEFAULT_BUTTON_TEXT;
}
private void button1_Click(object sender, EventArgs e)
{
- levelID = ROM.Instance.getLevelIdFromIndex(comboBox1.SelectedIndex);
+ levelID = ROM.Instance.getLevelIdFromIndex(level_list.SelectedIndex);
changeLevel = true;
Close();
}
diff --git a/src/Forms/SettingsForm.Designer.cs b/src/Forms/SettingsForm.Designer.cs
index 077e143..05a6849 100644
--- a/src/Forms/SettingsForm.Designer.cs
+++ b/src/Forms/SettingsForm.Designer.cs
@@ -75,6 +75,7 @@ private void InitializeComponent()
// saveButton
//
this.saveButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.saveButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.saveButton.Location = new System.Drawing.Point(299, 289);
this.saveButton.Name = "saveButton";
this.saveButton.Size = new System.Drawing.Size(76, 24);
@@ -87,6 +88,7 @@ private void InitializeComponent()
// cancelButton
//
this.cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.cancelButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.cancelButton.Location = new System.Drawing.Point(381, 289);
this.cancelButton.Name = "cancelButton";
this.cancelButton.Size = new System.Drawing.Size(76, 24);
@@ -105,6 +107,7 @@ private void InitializeComponent()
this.Controls.Add(this.saveButton);
this.Controls.Add(this.tabs);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(300, 300);
this.Name = "SettingsForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
diff --git a/src/Forms/SettingsForm.cs b/src/Forms/SettingsForm.cs
index fad1b8e..acb54e6 100644
--- a/src/Forms/SettingsForm.cs
+++ b/src/Forms/SettingsForm.cs
@@ -23,6 +23,14 @@ private void SettingsForm_Load(object sender, EventArgs e)
{
AddBasicSettings();
AddAdvancedSettings();
+
+ BackColor = Theme.DEFAULT_BACKGROUND;
+ Basic.BackColor = Theme.DEFAULT_BACKGROUND;
+ Advanced.BackColor = Theme.DEFAULT_BACKGROUND;
+ saveButton.BackColor = Theme.DEFAULT_BUTTON_BACKGROUND;
+ saveButton.ForeColor = Theme.DEFAULT_BUTTON_TEXT;
+ cancelButton.BackColor = Theme.DEFAULT_BUTTON_BACKGROUND;
+ cancelButton.ForeColor = Theme.DEFAULT_BUTTON_TEXT;
}
private TextBox emuPathTextBox;
@@ -112,12 +120,14 @@ private void AddTrackBarSetting(TabPage page, string label, ref Label updateDisp
{
Label tbl = newLabel(label, x, y + 3);
tbl.Width = 70;
+ updateDisplay.ForeColor = Theme.DEFAULT_TEXT;
+ updateDisplay.BackColor = Theme.DEFAULT_BACKGROUND;
updateDisplay.Location = new Point(x, y + 20);
updateDisplay.TextAlign = ContentAlignment.MiddleCenter;
updateDisplay.Text = currentValue.ToString();
updateDisplay.Width = 74;
TrackBar tb = newTrackBar(x + tbl.Width, y, min, max, currentValue);
- tb.BackColor = page.BackColor;
+ tb.BackColor = Theme.DEFAULT_BACKGROUND;
tb.Tag = updateDisplay;
tb.ValueChanged += new EventHandler(trackBar_updateLabelValue);
page.Controls.Add(tbl);
@@ -142,6 +152,7 @@ private Label newLineSeparator(int x, int y, int width)
label.Width = width;
label.BorderStyle = BorderStyle.Fixed3D;
label.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;
+ label.BackColor = Theme.DEFAULT_BACKGROUND;
return label;
}
@@ -153,6 +164,8 @@ private Label newLabel(string text, int x, int y)
label.Text = text;
label.Left = x;
label.Top = y;
+ label.ForeColor = Theme.DEFAULT_TEXT;
+ label.BackColor = Theme.DEFAULT_BACKGROUND;
return label;
}
@@ -165,6 +178,8 @@ private Label newFancyLabel(string text, int x, int y, Font font)
label.Left = x;
label.Top = y;
label.Font = font;
+ label.ForeColor = Theme.DEFAULT_TEXT;
+ label.BackColor = Theme.DEFAULT_BACKGROUND;
return label;
}
@@ -176,6 +191,8 @@ private Button newButton(string text, int x, int y, EventHandler clickEvent)
button.Left = x;
button.Top = y;
button.Click += clickEvent;
+ button.ForeColor = Theme.DEFAULT_BUTTON_TEXT;
+ button.BackColor = Theme.DEFAULT_BUTTON_BACKGROUND;
return button;
}
@@ -187,6 +204,8 @@ private TextBox newTextBox(string text, bool readOnly, int x, int y, int width)
box.Top = y;
box.ReadOnly = readOnly;
box.Width = width;
+ box.ForeColor = Theme.DEFAULT_TEXTBOX_TEXT;
+ box.BackColor = Theme.DEFAULT_TEXTBOX_BACKGROUND;
return box;
}
@@ -200,6 +219,9 @@ private ComboBox newComboBox(string[] options, int x, int y, int selectedIndex)
box.TabStop = false;
box.MouseWheel += new MouseEventHandler(comboBox_MouseWheel);
box.DropDownStyle = ComboBoxStyle.DropDownList;
+ box.FlatStyle = FlatStyle.Flat;
+ box.ForeColor = Theme.DEFAULT_DROPDOWNLIST_TEXT;
+ box.BackColor = Theme.DEFAULT_DROPDOWNLIST_BACKGROUND;
return box;
}
@@ -212,6 +234,8 @@ private CheckBox newCheckBox(string text, int x, int y, bool isChecked)
box.AutoSize = true;
box.TabStop = false;
box.Checked = isChecked;
+ box.ForeColor = Theme.DEFAULT_TEXT;
+ box.BackColor = Theme.DEFAULT_BACKGROUND;
return box;
}
@@ -224,6 +248,7 @@ private TrackBar newTrackBar(int x, int y, int minValue, int maxValue, int curre
bar.TickFrequency = 10;
bar.Left = x;
bar.Top = y;
+ bar.BackColor = Theme.DEFAULT_BACKGROUND;
return bar;
}
diff --git a/src/Forms/TextureEditor.Designer.cs b/src/Forms/TextureEditor.Designer.cs
index 7e79a61..c013fc4 100644
--- a/src/Forms/TextureEditor.Designer.cs
+++ b/src/Forms/TextureEditor.Designer.cs
@@ -35,19 +35,19 @@ private void InitializeComponent()
this.infoTabPanel = new System.Windows.Forms.Panel();
this.info_Format = new System.Windows.Forms.TextBox();
this.info_SegmentAddress = new System.Windows.Forms.TextBox();
- this.button2 = new System.Windows.Forms.Button();
+ this.lt_importImage = new System.Windows.Forms.Button();
this.lt_exportImage = new System.Windows.Forms.Button();
this.info_Height = new System.Windows.Forms.TextBox();
this.info_Width = new System.Windows.Forms.TextBox();
this.info_bitmapImage = new System.Windows.Forms.PictureBox();
this.info_Address = new System.Windows.Forms.TextBox();
- this.label2 = new System.Windows.Forms.Label();
+ this.lt_info_label = new System.Windows.Forms.Label();
this.layoutTabPanel = new System.Windows.Forms.Panel();
- this.radioButton4 = new System.Windows.Forms.RadioButton();
- this.radioButton3 = new System.Windows.Forms.RadioButton();
- this.radioButton2 = new System.Windows.Forms.RadioButton();
- this.radioButton1 = new System.Windows.Forms.RadioButton();
- this.label1 = new System.Windows.Forms.Label();
+ this.lt_rb_objects = new System.Windows.Forms.RadioButton();
+ this.lt_rb_models = new System.Windows.Forms.RadioButton();
+ this.lt_rb_level = new System.Windows.Forms.RadioButton();
+ this.lt_rb_all = new System.Windows.Forms.RadioButton();
+ this.lt_category_label = new System.Windows.Forms.Label();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.ot_pan_icons = new System.Windows.Forms.Panel();
this.ot_pan_info = new System.Windows.Forms.Panel();
@@ -60,14 +60,14 @@ private void InitializeComponent()
this.ot_info_width = new System.Windows.Forms.TextBox();
this.ot_bitmap_preview = new System.Windows.Forms.PictureBox();
this.ot_info_RomAddress = new System.Windows.Forms.TextBox();
- this.label3 = new System.Windows.Forms.Label();
+ this.ot_info_label = new System.Windows.Forms.Label();
this.ot_pan_groups = new System.Windows.Forms.Panel();
this.ot_pan_groupButtons = new System.Windows.Forms.Panel();
this.tabPage3 = new System.Windows.Forms.TabPage();
- this.panel1 = new System.Windows.Forms.Panel();
+ this.sb_info = new System.Windows.Forms.Panel();
this.checkBox_matchFogColor = new System.Windows.Forms.CheckBox();
- this.label6 = new System.Windows.Forms.Label();
- this.label5 = new System.Windows.Forms.Label();
+ this.blue_label = new System.Windows.Forms.Label();
+ this.green_label = new System.Windows.Forms.Label();
this.red_label = new System.Windows.Forms.Label();
this.numericUpDown_Blue = new System.Windows.Forms.NumericUpDown();
this.numericUpDown_Green = new System.Windows.Forms.NumericUpDown();
@@ -81,7 +81,7 @@ private void InitializeComponent()
this.sb_info_Height = new System.Windows.Forms.TextBox();
this.sb_info_Width = new System.Windows.Forms.TextBox();
this.sb_info_RomAddress = new System.Windows.Forms.TextBox();
- this.label4 = new System.Windows.Forms.Label();
+ this.sb_TextureInfo_label = new System.Windows.Forms.Label();
this.sb_imageBox = new System.Windows.Forms.PictureBox();
this.tabControl1.SuspendLayout();
this.tabPage1.SuspendLayout();
@@ -93,7 +93,7 @@ private void InitializeComponent()
((System.ComponentModel.ISupportInitialize)(this.ot_bitmap_preview)).BeginInit();
this.ot_pan_groups.SuspendLayout();
this.tabPage3.SuspendLayout();
- this.panel1.SuspendLayout();
+ this.sb_info.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown_Blue)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown_Green)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown_Red)).BeginInit();
@@ -143,13 +143,13 @@ private void InitializeComponent()
this.infoTabPanel.BackColor = System.Drawing.Color.CornflowerBlue;
this.infoTabPanel.Controls.Add(this.info_Format);
this.infoTabPanel.Controls.Add(this.info_SegmentAddress);
- this.infoTabPanel.Controls.Add(this.button2);
+ this.infoTabPanel.Controls.Add(this.lt_importImage);
this.infoTabPanel.Controls.Add(this.lt_exportImage);
this.infoTabPanel.Controls.Add(this.info_Height);
this.infoTabPanel.Controls.Add(this.info_Width);
this.infoTabPanel.Controls.Add(this.info_bitmapImage);
this.infoTabPanel.Controls.Add(this.info_Address);
- this.infoTabPanel.Controls.Add(this.label2);
+ this.infoTabPanel.Controls.Add(this.lt_info_label);
this.infoTabPanel.Location = new System.Drawing.Point(502, 0);
this.infoTabPanel.Margin = new System.Windows.Forms.Padding(0);
this.infoTabPanel.Name = "infoTabPanel";
@@ -186,26 +186,30 @@ private void InitializeComponent()
this.info_SegmentAddress.Text = "Seg Addr: N/A";
this.info_SegmentAddress.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
- // button2
+ // lt_importImage
//
- this.button2.Location = new System.Drawing.Point(0, 301);
- this.button2.Margin = new System.Windows.Forms.Padding(0);
- this.button2.Name = "button2";
- this.button2.Size = new System.Drawing.Size(150, 23);
- this.button2.TabIndex = 11;
- this.button2.Text = "Import from image file";
- this.button2.UseVisualStyleBackColor = true;
- this.button2.Click += new System.EventHandler(this.lt_importImage_Click);
+ this.lt_importImage.BackColor = System.Drawing.Color.LightGray;
+ this.lt_importImage.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.lt_importImage.Location = new System.Drawing.Point(0, 301);
+ this.lt_importImage.Margin = new System.Windows.Forms.Padding(0);
+ this.lt_importImage.Name = "lt_importImage";
+ this.lt_importImage.Size = new System.Drawing.Size(150, 23);
+ this.lt_importImage.TabIndex = 11;
+ this.lt_importImage.Text = "Import from image file";
+ this.lt_importImage.UseVisualStyleBackColor = false;
+ this.lt_importImage.Click += new System.EventHandler(this.lt_importImage_Click);
//
// lt_exportImage
//
+ this.lt_exportImage.BackColor = System.Drawing.Color.LightGray;
+ this.lt_exportImage.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.lt_exportImage.Location = new System.Drawing.Point(0, 325);
this.lt_exportImage.Margin = new System.Windows.Forms.Padding(0);
this.lt_exportImage.Name = "lt_exportImage";
this.lt_exportImage.Size = new System.Drawing.Size(150, 23);
this.lt_exportImage.TabIndex = 10;
this.lt_exportImage.Text = "Export to image file";
- this.lt_exportImage.UseVisualStyleBackColor = true;
+ this.lt_exportImage.UseVisualStyleBackColor = false;
this.lt_exportImage.Click += new System.EventHandler(this.lt_exportImage_Click);
//
// info_Height
@@ -263,93 +267,101 @@ private void InitializeComponent()
this.info_Address.Text = "ROM Address: N/A";
this.info_Address.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
- // label2
+ // lt_info_label
//
- this.label2.AutoSize = true;
- this.label2.Font = new System.Drawing.Font("Consolas", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label2.Location = new System.Drawing.Point(55, 6);
- this.label2.Name = "label2";
- this.label2.Size = new System.Drawing.Size(45, 19);
- this.label2.TabIndex = 5;
- this.label2.Text = "Info";
+ this.lt_info_label.AutoSize = true;
+ this.lt_info_label.Font = new System.Drawing.Font("Consolas", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lt_info_label.Location = new System.Drawing.Point(55, 6);
+ this.lt_info_label.Name = "lt_info_label";
+ this.lt_info_label.Size = new System.Drawing.Size(45, 19);
+ this.lt_info_label.TabIndex = 5;
+ this.lt_info_label.Text = "Info";
//
// layoutTabPanel
//
this.layoutTabPanel.BackColor = System.Drawing.Color.Firebrick;
- this.layoutTabPanel.Controls.Add(this.radioButton4);
- this.layoutTabPanel.Controls.Add(this.radioButton3);
- this.layoutTabPanel.Controls.Add(this.radioButton2);
- this.layoutTabPanel.Controls.Add(this.radioButton1);
- this.layoutTabPanel.Controls.Add(this.label1);
+ this.layoutTabPanel.Controls.Add(this.lt_rb_objects);
+ this.layoutTabPanel.Controls.Add(this.lt_rb_models);
+ this.layoutTabPanel.Controls.Add(this.lt_rb_level);
+ this.layoutTabPanel.Controls.Add(this.lt_rb_all);
+ this.layoutTabPanel.Controls.Add(this.lt_category_label);
this.layoutTabPanel.Location = new System.Drawing.Point(0, 0);
this.layoutTabPanel.Margin = new System.Windows.Forms.Padding(0);
this.layoutTabPanel.Name = "layoutTabPanel";
this.layoutTabPanel.Size = new System.Drawing.Size(100, 397);
this.layoutTabPanel.TabIndex = 0;
//
- // radioButton4
- //
- this.radioButton4.Appearance = System.Windows.Forms.Appearance.Button;
- this.radioButton4.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.radioButton4.Location = new System.Drawing.Point(0, 106);
- this.radioButton4.Name = "radioButton4";
- this.radioButton4.Size = new System.Drawing.Size(100, 24);
- this.radioButton4.TabIndex = 4;
- this.radioButton4.Text = "Objects Only";
- this.radioButton4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.radioButton4.UseVisualStyleBackColor = true;
- this.radioButton4.Click += new System.EventHandler(this.radioButton4_lt_Click);
- //
- // radioButton3
- //
- this.radioButton3.Appearance = System.Windows.Forms.Appearance.Button;
- this.radioButton3.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.radioButton3.Location = new System.Drawing.Point(0, 82);
- this.radioButton3.Name = "radioButton3";
- this.radioButton3.Size = new System.Drawing.Size(100, 24);
- this.radioButton3.TabIndex = 3;
- this.radioButton3.Text = "Models Only";
- this.radioButton3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.radioButton3.UseVisualStyleBackColor = true;
- this.radioButton3.Click += new System.EventHandler(this.radioButton3_lt_Click);
- //
- // radioButton2
- //
- this.radioButton2.Appearance = System.Windows.Forms.Appearance.Button;
- this.radioButton2.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.radioButton2.Location = new System.Drawing.Point(0, 58);
- this.radioButton2.Name = "radioButton2";
- this.radioButton2.Size = new System.Drawing.Size(100, 24);
- this.radioButton2.TabIndex = 2;
- this.radioButton2.Text = "Level Only";
- this.radioButton2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.radioButton2.UseVisualStyleBackColor = true;
- this.radioButton2.Click += new System.EventHandler(this.radioButton2_lt_Click);
- //
- // radioButton1
- //
- this.radioButton1.Appearance = System.Windows.Forms.Appearance.Button;
- this.radioButton1.Checked = true;
- this.radioButton1.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.radioButton1.Location = new System.Drawing.Point(0, 34);
- this.radioButton1.Name = "radioButton1";
- this.radioButton1.Size = new System.Drawing.Size(100, 24);
- this.radioButton1.TabIndex = 1;
- this.radioButton1.TabStop = true;
- this.radioButton1.Text = "All";
- this.radioButton1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.radioButton1.UseVisualStyleBackColor = true;
- this.radioButton1.Click += new System.EventHandler(this.radioButton1_lt_Click);
- //
- // label1
- //
- this.label1.AutoSize = true;
- this.label1.Font = new System.Drawing.Font("Consolas", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label1.Location = new System.Drawing.Point(9, 6);
- this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(81, 19);
- this.label1.TabIndex = 0;
- this.label1.Text = "Category";
+ // lt_rb_objects
+ //
+ this.lt_rb_objects.Appearance = System.Windows.Forms.Appearance.Button;
+ this.lt_rb_objects.BackColor = System.Drawing.Color.LightGray;
+ this.lt_rb_objects.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.lt_rb_objects.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lt_rb_objects.Location = new System.Drawing.Point(0, 106);
+ this.lt_rb_objects.Name = "lt_rb_objects";
+ this.lt_rb_objects.Size = new System.Drawing.Size(100, 24);
+ this.lt_rb_objects.TabIndex = 4;
+ this.lt_rb_objects.Text = "Objects Only";
+ this.lt_rb_objects.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lt_rb_objects.UseVisualStyleBackColor = false;
+ this.lt_rb_objects.Click += new System.EventHandler(this.radioButton4_lt_Click);
+ //
+ // lt_rb_models
+ //
+ this.lt_rb_models.Appearance = System.Windows.Forms.Appearance.Button;
+ this.lt_rb_models.BackColor = System.Drawing.Color.LightGray;
+ this.lt_rb_models.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.lt_rb_models.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lt_rb_models.Location = new System.Drawing.Point(0, 82);
+ this.lt_rb_models.Name = "lt_rb_models";
+ this.lt_rb_models.Size = new System.Drawing.Size(100, 24);
+ this.lt_rb_models.TabIndex = 3;
+ this.lt_rb_models.Text = "Models Only";
+ this.lt_rb_models.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lt_rb_models.UseVisualStyleBackColor = false;
+ this.lt_rb_models.Click += new System.EventHandler(this.radioButton3_lt_Click);
+ //
+ // lt_rb_level
+ //
+ this.lt_rb_level.Appearance = System.Windows.Forms.Appearance.Button;
+ this.lt_rb_level.BackColor = System.Drawing.Color.LightGray;
+ this.lt_rb_level.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.lt_rb_level.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lt_rb_level.Location = new System.Drawing.Point(0, 58);
+ this.lt_rb_level.Name = "lt_rb_level";
+ this.lt_rb_level.Size = new System.Drawing.Size(100, 24);
+ this.lt_rb_level.TabIndex = 2;
+ this.lt_rb_level.Text = "Level Only";
+ this.lt_rb_level.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lt_rb_level.UseVisualStyleBackColor = false;
+ this.lt_rb_level.Click += new System.EventHandler(this.radioButton2_lt_Click);
+ //
+ // lt_rb_all
+ //
+ this.lt_rb_all.Appearance = System.Windows.Forms.Appearance.Button;
+ this.lt_rb_all.BackColor = System.Drawing.Color.LightGray;
+ this.lt_rb_all.Checked = true;
+ this.lt_rb_all.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.lt_rb_all.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lt_rb_all.Location = new System.Drawing.Point(0, 34);
+ this.lt_rb_all.Name = "lt_rb_all";
+ this.lt_rb_all.Size = new System.Drawing.Size(100, 24);
+ this.lt_rb_all.TabIndex = 1;
+ this.lt_rb_all.TabStop = true;
+ this.lt_rb_all.Text = "All";
+ this.lt_rb_all.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lt_rb_all.UseVisualStyleBackColor = false;
+ this.lt_rb_all.Click += new System.EventHandler(this.radioButton1_lt_Click);
+ //
+ // lt_category_label
+ //
+ this.lt_category_label.AutoSize = true;
+ this.lt_category_label.Font = new System.Drawing.Font("Consolas", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lt_category_label.Location = new System.Drawing.Point(9, 6);
+ this.lt_category_label.Name = "lt_category_label";
+ this.lt_category_label.Size = new System.Drawing.Size(81, 19);
+ this.lt_category_label.TabIndex = 0;
+ this.lt_category_label.Text = "Category";
//
// tabPage2
//
@@ -386,7 +398,7 @@ private void InitializeComponent()
this.ot_pan_info.Controls.Add(this.ot_info_width);
this.ot_pan_info.Controls.Add(this.ot_bitmap_preview);
this.ot_pan_info.Controls.Add(this.ot_info_RomAddress);
- this.ot_pan_info.Controls.Add(this.label3);
+ this.ot_pan_info.Controls.Add(this.ot_info_label);
this.ot_pan_info.Location = new System.Drawing.Point(502, 0);
this.ot_pan_info.Margin = new System.Windows.Forms.Padding(0);
this.ot_pan_info.Name = "ot_pan_info";
@@ -440,24 +452,28 @@ private void InitializeComponent()
//
// ot_importImage
//
+ this.ot_importImage.BackColor = System.Drawing.Color.LightGray;
+ this.ot_importImage.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.ot_importImage.Location = new System.Drawing.Point(0, 301);
this.ot_importImage.Margin = new System.Windows.Forms.Padding(0);
this.ot_importImage.Name = "ot_importImage";
this.ot_importImage.Size = new System.Drawing.Size(150, 23);
this.ot_importImage.TabIndex = 11;
this.ot_importImage.Text = "Import from image file";
- this.ot_importImage.UseVisualStyleBackColor = true;
+ this.ot_importImage.UseVisualStyleBackColor = false;
this.ot_importImage.Click += new System.EventHandler(this.ot_importImage_Click);
//
// ot_exportImage
//
+ this.ot_exportImage.BackColor = System.Drawing.Color.LightGray;
+ this.ot_exportImage.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.ot_exportImage.Location = new System.Drawing.Point(0, 325);
this.ot_exportImage.Margin = new System.Windows.Forms.Padding(0);
this.ot_exportImage.Name = "ot_exportImage";
this.ot_exportImage.Size = new System.Drawing.Size(150, 23);
this.ot_exportImage.TabIndex = 10;
this.ot_exportImage.Text = "Export to image file";
- this.ot_exportImage.UseVisualStyleBackColor = true;
+ this.ot_exportImage.UseVisualStyleBackColor = false;
this.ot_exportImage.Click += new System.EventHandler(this.ot_exportImage_Click);
//
// ot_info_height
@@ -515,15 +531,15 @@ private void InitializeComponent()
this.ot_info_RomAddress.Text = "ROM Address: N/A";
this.ot_info_RomAddress.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
- // label3
+ // ot_info_label
//
- this.label3.AutoSize = true;
- this.label3.Font = new System.Drawing.Font("Consolas", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label3.Location = new System.Drawing.Point(55, 6);
- this.label3.Name = "label3";
- this.label3.Size = new System.Drawing.Size(45, 19);
- this.label3.TabIndex = 5;
- this.label3.Text = "Info";
+ this.ot_info_label.AutoSize = true;
+ this.ot_info_label.Font = new System.Drawing.Font("Consolas", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.ot_info_label.Location = new System.Drawing.Point(55, 6);
+ this.ot_info_label.Name = "ot_info_label";
+ this.ot_info_label.Size = new System.Drawing.Size(45, 19);
+ this.ot_info_label.TabIndex = 5;
+ this.ot_info_label.Text = "Info";
//
// ot_pan_groups
//
@@ -547,7 +563,7 @@ private void InitializeComponent()
//
// tabPage3
//
- this.tabPage3.Controls.Add(this.panel1);
+ this.tabPage3.Controls.Add(this.sb_info);
this.tabPage3.Controls.Add(this.sb_imageBox);
this.tabPage3.Location = new System.Drawing.Point(4, 22);
this.tabPage3.Name = "tabPage3";
@@ -557,31 +573,31 @@ private void InitializeComponent()
this.tabPage3.Text = "Sky Background";
this.tabPage3.UseVisualStyleBackColor = true;
//
- // panel1
- //
- this.panel1.BackColor = System.Drawing.Color.CornflowerBlue;
- this.panel1.Controls.Add(this.checkBox_matchFogColor);
- this.panel1.Controls.Add(this.label6);
- this.panel1.Controls.Add(this.label5);
- this.panel1.Controls.Add(this.red_label);
- this.panel1.Controls.Add(this.numericUpDown_Blue);
- this.panel1.Controls.Add(this.numericUpDown_Green);
- this.panel1.Controls.Add(this.numericUpDown_Red);
- this.panel1.Controls.Add(this.sb_useSolidColor);
- this.panel1.Controls.Add(this.sb_useTexture);
- this.panel1.Controls.Add(this.sb_info_Format);
- this.panel1.Controls.Add(this.sb_info_SegAddress);
- this.panel1.Controls.Add(this.sb_importImage);
- this.panel1.Controls.Add(this.sb_exportImage);
- this.panel1.Controls.Add(this.sb_info_Height);
- this.panel1.Controls.Add(this.sb_info_Width);
- this.panel1.Controls.Add(this.sb_info_RomAddress);
- this.panel1.Controls.Add(this.label4);
- this.panel1.Location = new System.Drawing.Point(471, 0);
- this.panel1.Margin = new System.Windows.Forms.Padding(0);
- this.panel1.Name = "panel1";
- this.panel1.Size = new System.Drawing.Size(182, 397);
- this.panel1.TabIndex = 4;
+ // sb_info
+ //
+ this.sb_info.BackColor = System.Drawing.Color.CornflowerBlue;
+ this.sb_info.Controls.Add(this.checkBox_matchFogColor);
+ this.sb_info.Controls.Add(this.blue_label);
+ this.sb_info.Controls.Add(this.green_label);
+ this.sb_info.Controls.Add(this.red_label);
+ this.sb_info.Controls.Add(this.numericUpDown_Blue);
+ this.sb_info.Controls.Add(this.numericUpDown_Green);
+ this.sb_info.Controls.Add(this.numericUpDown_Red);
+ this.sb_info.Controls.Add(this.sb_useSolidColor);
+ this.sb_info.Controls.Add(this.sb_useTexture);
+ this.sb_info.Controls.Add(this.sb_info_Format);
+ this.sb_info.Controls.Add(this.sb_info_SegAddress);
+ this.sb_info.Controls.Add(this.sb_importImage);
+ this.sb_info.Controls.Add(this.sb_exportImage);
+ this.sb_info.Controls.Add(this.sb_info_Height);
+ this.sb_info.Controls.Add(this.sb_info_Width);
+ this.sb_info.Controls.Add(this.sb_info_RomAddress);
+ this.sb_info.Controls.Add(this.sb_TextureInfo_label);
+ this.sb_info.Location = new System.Drawing.Point(471, 0);
+ this.sb_info.Margin = new System.Windows.Forms.Padding(0);
+ this.sb_info.Name = "sb_info";
+ this.sb_info.Size = new System.Drawing.Size(182, 397);
+ this.sb_info.TabIndex = 4;
//
// checkBox_matchFogColor
//
@@ -594,25 +610,25 @@ private void InitializeComponent()
this.checkBox_matchFogColor.Text = "Match fog color with bg color";
this.checkBox_matchFogColor.UseVisualStyleBackColor = true;
//
- // label6
+ // blue_label
//
- this.label6.AutoSize = true;
- this.label6.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label6.Location = new System.Drawing.Point(128, 37);
- this.label6.Name = "label6";
- this.label6.Size = new System.Drawing.Size(31, 13);
- this.label6.TabIndex = 22;
- this.label6.Text = "Blue";
+ this.blue_label.AutoSize = true;
+ this.blue_label.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.blue_label.Location = new System.Drawing.Point(128, 37);
+ this.blue_label.Name = "blue_label";
+ this.blue_label.Size = new System.Drawing.Size(31, 13);
+ this.blue_label.TabIndex = 22;
+ this.blue_label.Text = "Blue";
//
- // label5
+ // green_label
//
- this.label5.AutoSize = true;
- this.label5.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label5.Location = new System.Drawing.Point(73, 37);
- this.label5.Name = "label5";
- this.label5.Size = new System.Drawing.Size(37, 13);
- this.label5.TabIndex = 21;
- this.label5.Text = "Green";
+ this.green_label.AutoSize = true;
+ this.green_label.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.green_label.Location = new System.Drawing.Point(73, 37);
+ this.green_label.Name = "green_label";
+ this.green_label.Size = new System.Drawing.Size(37, 13);
+ this.green_label.TabIndex = 21;
+ this.green_label.Text = "Green";
//
// red_label
//
@@ -724,24 +740,28 @@ private void InitializeComponent()
//
// sb_importImage
//
+ this.sb_importImage.BackColor = System.Drawing.Color.LightGray;
+ this.sb_importImage.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.sb_importImage.Location = new System.Drawing.Point(16, 289);
this.sb_importImage.Margin = new System.Windows.Forms.Padding(0);
this.sb_importImage.Name = "sb_importImage";
this.sb_importImage.Size = new System.Drawing.Size(150, 23);
this.sb_importImage.TabIndex = 11;
this.sb_importImage.Text = "Import from image file";
- this.sb_importImage.UseVisualStyleBackColor = true;
+ this.sb_importImage.UseVisualStyleBackColor = false;
this.sb_importImage.Click += new System.EventHandler(this.sb_importImage_Click);
//
// sb_exportImage
//
+ this.sb_exportImage.BackColor = System.Drawing.Color.LightGray;
+ this.sb_exportImage.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.sb_exportImage.Location = new System.Drawing.Point(16, 316);
this.sb_exportImage.Margin = new System.Windows.Forms.Padding(0);
this.sb_exportImage.Name = "sb_exportImage";
this.sb_exportImage.Size = new System.Drawing.Size(150, 23);
this.sb_exportImage.TabIndex = 10;
this.sb_exportImage.Text = "Export to image file";
- this.sb_exportImage.UseVisualStyleBackColor = true;
+ this.sb_exportImage.UseVisualStyleBackColor = false;
this.sb_exportImage.Click += new System.EventHandler(this.sb_ExportImage_Click);
//
// sb_info_Height
@@ -787,15 +807,15 @@ private void InitializeComponent()
this.sb_info_RomAddress.Text = "(no texture found)";
this.sb_info_RomAddress.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
- // label4
+ // sb_TextureInfo_label
//
- this.label4.AutoSize = true;
- this.label4.Font = new System.Drawing.Font("Consolas", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label4.Location = new System.Drawing.Point(32, 147);
- this.label4.Name = "label4";
- this.label4.Size = new System.Drawing.Size(117, 19);
- this.label4.TabIndex = 5;
- this.label4.Text = "Texture Info";
+ this.sb_TextureInfo_label.AutoSize = true;
+ this.sb_TextureInfo_label.Font = new System.Drawing.Font("Consolas", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.sb_TextureInfo_label.Location = new System.Drawing.Point(32, 147);
+ this.sb_TextureInfo_label.Name = "sb_TextureInfo_label";
+ this.sb_TextureInfo_label.Size = new System.Drawing.Size(117, 19);
+ this.sb_TextureInfo_label.TabIndex = 5;
+ this.sb_TextureInfo_label.Text = "Texture Info";
//
// sb_imageBox
//
@@ -835,8 +855,8 @@ private void InitializeComponent()
((System.ComponentModel.ISupportInitialize)(this.ot_bitmap_preview)).EndInit();
this.ot_pan_groups.ResumeLayout(false);
this.tabPage3.ResumeLayout(false);
- this.panel1.ResumeLayout(false);
- this.panel1.PerformLayout();
+ this.sb_info.ResumeLayout(false);
+ this.sb_info.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown_Blue)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown_Green)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown_Red)).EndInit();
@@ -854,17 +874,17 @@ private void InitializeComponent()
private System.Windows.Forms.Panel infoTabPanel;
private System.Windows.Forms.TabPage tabPage3;
private System.Windows.Forms.Panel iconsPanel;
- private System.Windows.Forms.Label label1;
- private System.Windows.Forms.RadioButton radioButton3;
- private System.Windows.Forms.RadioButton radioButton2;
- private System.Windows.Forms.RadioButton radioButton1;
- private System.Windows.Forms.RadioButton radioButton4;
+ private System.Windows.Forms.Label lt_category_label;
+ private System.Windows.Forms.RadioButton lt_rb_models;
+ private System.Windows.Forms.RadioButton lt_rb_level;
+ private System.Windows.Forms.RadioButton lt_rb_all;
+ private System.Windows.Forms.RadioButton lt_rb_objects;
private System.Windows.Forms.TextBox info_Address;
- private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Label lt_info_label;
private System.Windows.Forms.PictureBox info_bitmapImage;
private System.Windows.Forms.TextBox info_Height;
private System.Windows.Forms.TextBox info_Width;
- private System.Windows.Forms.Button button2;
+ private System.Windows.Forms.Button lt_importImage;
private System.Windows.Forms.Button lt_exportImage;
private System.Windows.Forms.TextBox info_Format;
private System.Windows.Forms.TextBox info_SegmentAddress;
@@ -878,12 +898,12 @@ private void InitializeComponent()
private System.Windows.Forms.TextBox ot_info_width;
private System.Windows.Forms.PictureBox ot_bitmap_preview;
private System.Windows.Forms.TextBox ot_info_RomAddress;
- private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.Label ot_info_label;
private System.Windows.Forms.Panel ot_pan_groups;
private System.Windows.Forms.Panel ot_pan_groupButtons;
private System.Windows.Forms.TextBox ot_name;
private System.Windows.Forms.PictureBox sb_imageBox;
- private System.Windows.Forms.Panel panel1;
+ private System.Windows.Forms.Panel sb_info;
private System.Windows.Forms.TextBox sb_info_Format;
private System.Windows.Forms.TextBox sb_info_SegAddress;
private System.Windows.Forms.Button sb_importImage;
@@ -891,14 +911,14 @@ private void InitializeComponent()
private System.Windows.Forms.TextBox sb_info_Height;
private System.Windows.Forms.TextBox sb_info_Width;
private System.Windows.Forms.TextBox sb_info_RomAddress;
- private System.Windows.Forms.Label label4;
+ private System.Windows.Forms.Label sb_TextureInfo_label;
private System.Windows.Forms.RadioButton sb_useSolidColor;
private System.Windows.Forms.RadioButton sb_useTexture;
private System.Windows.Forms.NumericUpDown numericUpDown_Blue;
private System.Windows.Forms.NumericUpDown numericUpDown_Green;
private System.Windows.Forms.NumericUpDown numericUpDown_Red;
- private System.Windows.Forms.Label label6;
- private System.Windows.Forms.Label label5;
+ private System.Windows.Forms.Label blue_label;
+ private System.Windows.Forms.Label green_label;
private System.Windows.Forms.Label red_label;
private System.Windows.Forms.CheckBox checkBox_matchFogColor;
}
diff --git a/src/Forms/TextureEditor.cs b/src/Forms/TextureEditor.cs
index d68156d..70b8514 100644
--- a/src/Forms/TextureEditor.cs
+++ b/src/Forms/TextureEditor.cs
@@ -28,8 +28,98 @@ private void TextureEditor_Load(object sender, EventArgs e)
setButtons_lt(true, true, false);
loadOtherTexturesTab();
loadBackgroundImage();
+ updateTheme();
}
+ private void updateTheme()
+ {
+ BackColor = Theme.TEXTURES_BACKGROUND;
+
+ layoutTabPanel.BackColor = Theme.TEXTURES_LEVEL_BACKGROUND_LEFT;
+ iconsPanel.BackColor = Theme.TEXTURES_LEVEL_BACKGROUND_MIDDLE;
+ infoTabPanel.BackColor = Theme.TEXTURES_LEVEL_BACKGROUND_RIGHT;
+ lt_category_label.ForeColor = Theme.TEXTURES_LEVEL_TEXT;
+ lt_category_label.BackColor = Theme.TEXTURES_LEVEL_BACKGROUND_LEFT;
+ lt_info_label.ForeColor = Theme.TEXTURES_LEVEL_TEXT;
+ lt_info_label.BackColor = Theme.TEXTURES_LEVEL_BACKGROUND_RIGHT;
+ info_Address.ForeColor = Theme.TEXTURES_LEVEL_TEXT;
+ info_Address.BackColor = Theme.TEXTURES_LEVEL_BACKGROUND_RIGHT;
+ info_SegmentAddress.ForeColor = Theme.TEXTURES_LEVEL_TEXT;
+ info_SegmentAddress.BackColor = Theme.TEXTURES_LEVEL_BACKGROUND_RIGHT;
+ info_Format.ForeColor = Theme.TEXTURES_LEVEL_TEXT;
+ info_Format.BackColor = Theme.TEXTURES_LEVEL_BACKGROUND_RIGHT;
+ info_Width.ForeColor = Theme.TEXTURES_LEVEL_TEXT;
+ info_Width.BackColor = Theme.TEXTURES_LEVEL_BACKGROUND_RIGHT;
+ info_Height.ForeColor = Theme.TEXTURES_LEVEL_TEXT;
+ info_Height.BackColor = Theme.TEXTURES_LEVEL_BACKGROUND_RIGHT;
+ lt_exportImage.BackColor = Theme.TEXTURES_LEVEL_BUTTON_BACKGROUND;
+ lt_exportImage.ForeColor = Theme.TEXTURES_LEVEL_BUTTON_TEXT;
+ lt_importImage.BackColor = Theme.TEXTURES_LEVEL_BUTTON_BACKGROUND;
+ lt_importImage.ForeColor = Theme.TEXTURES_LEVEL_BUTTON_TEXT;
+ lt_rb_all.BackColor = Theme.TEXTURES_LEVEL_BUTTON_BACKGROUND;
+ lt_rb_all.ForeColor = Theme.TEXTURES_LEVEL_BUTTON_TEXT;
+ lt_rb_level.BackColor = Theme.TEXTURES_LEVEL_BUTTON_BACKGROUND;
+ lt_rb_level.ForeColor = Theme.TEXTURES_LEVEL_BUTTON_TEXT;
+ lt_rb_objects.BackColor = Theme.TEXTURES_LEVEL_BUTTON_BACKGROUND;
+ lt_rb_objects.ForeColor = Theme.TEXTURES_LEVEL_BUTTON_TEXT;
+ lt_rb_models.BackColor = Theme.TEXTURES_LEVEL_BUTTON_BACKGROUND;
+ lt_rb_models.ForeColor = Theme.TEXTURES_LEVEL_BUTTON_TEXT;
+
+ ot_pan_groupButtons.BackColor = Theme.TEXTURES_OTHER_BACKGROUND_LEFT;
+ ot_pan_icons.BackColor = Theme.TEXTURES_OTHER_BACKGROUND_MIDDLE;
+ ot_pan_info.BackColor = Theme.TEXTURES_OTHER_BACKGROUND_RIGHT;
+ ot_info_label.ForeColor = Theme.TEXTURES_OTHER_TEXT;
+ ot_info_label.BackColor = Theme.TEXTURES_OTHER_BACKGROUND_RIGHT;
+ ot_name.ForeColor = Theme.TEXTURES_OTHER_TEXT;
+ ot_name.BackColor = Theme.TEXTURES_OTHER_BACKGROUND_RIGHT;
+ ot_info_RomAddress.ForeColor = Theme.TEXTURES_OTHER_TEXT;
+ ot_info_RomAddress.BackColor = Theme.TEXTURES_OTHER_BACKGROUND_RIGHT;
+ ot_info_SegAddress.ForeColor = Theme.TEXTURES_OTHER_TEXT;
+ ot_info_SegAddress.BackColor = Theme.TEXTURES_OTHER_BACKGROUND_RIGHT;
+ ot_info_Format.ForeColor = Theme.TEXTURES_OTHER_TEXT;
+ ot_info_Format.BackColor = Theme.TEXTURES_OTHER_BACKGROUND_RIGHT;
+ ot_info_width.ForeColor = Theme.TEXTURES_OTHER_TEXT;
+ ot_info_width.BackColor = Theme.TEXTURES_OTHER_BACKGROUND_RIGHT;
+ ot_info_height.ForeColor = Theme.TEXTURES_OTHER_TEXT;
+ ot_info_height.BackColor = Theme.TEXTURES_OTHER_BACKGROUND_RIGHT;
+
+ ot_exportImage.BackColor = Theme.TEXTURES_OTHER_BUTTON_BACKGROUND;
+ ot_exportImage.ForeColor = Theme.TEXTURES_OTHER_BUTTON_TEXT;
+ ot_importImage.BackColor = Theme.TEXTURES_OTHER_BUTTON_BACKGROUND;
+ ot_importImage.ForeColor = Theme.TEXTURES_OTHER_BUTTON_TEXT;
+
+ sb_TextureInfo_label.ForeColor = Theme.TEXTURES_SKY_TEXT;
+ sb_TextureInfo_label.BackColor = Theme.TEXTURES_SKY_BACKGROUND_RIGHT;
+ sb_info_RomAddress.ForeColor = Theme.TEXTURES_SKY_TEXT;
+ sb_info_RomAddress.BackColor = Theme.TEXTURES_SKY_BACKGROUND_RIGHT;
+ sb_info_SegAddress.ForeColor = Theme.TEXTURES_SKY_TEXT;
+ sb_info_SegAddress.BackColor = Theme.TEXTURES_SKY_BACKGROUND_RIGHT;
+ sb_info_Format.ForeColor = Theme.TEXTURES_SKY_TEXT;
+ sb_info_Format.BackColor = Theme.TEXTURES_SKY_BACKGROUND_RIGHT;
+ sb_info_Width.ForeColor = Theme.TEXTURES_SKY_TEXT;
+ sb_info_Width.BackColor = Theme.TEXTURES_SKY_BACKGROUND_RIGHT;
+ sb_info_Height.ForeColor = Theme.TEXTURES_SKY_TEXT;
+ sb_info_Height.BackColor = Theme.TEXTURES_SKY_BACKGROUND_RIGHT;
+ checkBox_matchFogColor.ForeColor = Theme.TEXTURES_SKY_TEXT;
+ checkBox_matchFogColor.BackColor = Theme.TEXTURES_SKY_BACKGROUND_RIGHT;
+ sb_useSolidColor.ForeColor = Theme.TEXTURES_SKY_TEXT;
+ sb_useSolidColor.BackColor = Theme.TEXTURES_SKY_BACKGROUND_RIGHT;
+ red_label.ForeColor = Theme.TEXTURES_SKY_TEXT;
+ red_label.BackColor = Theme.TEXTURES_SKY_BACKGROUND_RIGHT;
+ green_label.ForeColor = Theme.TEXTURES_SKY_TEXT;
+ green_label.BackColor = Theme.TEXTURES_SKY_BACKGROUND_RIGHT;
+ blue_label.ForeColor = Theme.TEXTURES_SKY_TEXT;
+ blue_label.BackColor = Theme.TEXTURES_SKY_BACKGROUND_RIGHT;
+ sb_useTexture.ForeColor = Theme.TEXTURES_SKY_TEXT;
+ sb_useSolidColor.BackColor = Theme.TEXTURES_SKY_BACKGROUND_RIGHT;
+ sb_imageBox.BackColor = Theme.TEXTURES_SKY_BACKGROUND_LEFT;
+ sb_info.BackColor = Theme.TEXTURES_SKY_BACKGROUND_RIGHT;
+ sb_exportImage.BackColor = Theme.TEXTURES_SKY_BUTTON_BACKGROUND;
+ sb_exportImage.ForeColor = Theme.TEXTURES_SKY_BUTTON_TEXT;
+ sb_importImage.BackColor = Theme.TEXTURES_SKY_BUTTON_BACKGROUND;
+ sb_importImage.ForeColor = Theme.TEXTURES_SKY_BUTTON_TEXT;
+ }
+
private void AddNewImage(ref List buttons, Bitmap bitmap, uint address, EventHandler click_event)
{
RadioButtonWithInfo texButton = new RadioButtonWithInfo();
diff --git a/src/Forms/TextureEditorComponents/TabEditOtherTextures.cs b/src/Forms/TextureEditorComponents/TabEditOtherTextures.cs
index e3cfeb8..37a9795 100644
--- a/src/Forms/TextureEditorComponents/TabEditOtherTextures.cs
+++ b/src/Forms/TextureEditorComponents/TabEditOtherTextures.cs
@@ -307,6 +307,9 @@ private void loadOtherTexturesTab()
{
RadioButton rb = new RadioButton();
rb.Appearance = Appearance.Button;
+ rb.FlatStyle = FlatStyle.Flat;
+ rb.BackColor = Theme.TEXTURES_OTHER_BUTTON_BACKGROUND;
+ rb.ForeColor = Theme.TEXTURES_OTHER_BUTTON_TEXT;
rb.UseVisualStyleBackColor = true;
rb.TextAlign = ContentAlignment.MiddleCenter;
rb.Text = name;
diff --git a/src/Forms/ThemeSelector.Designer.cs b/src/Forms/ThemeSelector.Designer.cs
new file mode 100644
index 0000000..04816c1
--- /dev/null
+++ b/src/Forms/ThemeSelector.Designer.cs
@@ -0,0 +1,118 @@
+namespace Quad64.src.Forms
+{
+ partial class ThemeSelector
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ThemeSelector));
+ this.listView1 = new System.Windows.Forms.ListView();
+ this.test = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.Author = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.cancel_button = new System.Windows.Forms.Button();
+ this.load_button = new System.Windows.Forms.Button();
+ this.SuspendLayout();
+ //
+ // listView1
+ //
+ this.listView1.AutoArrange = false;
+ this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.test,
+ this.Author});
+ this.listView1.FullRowSelect = true;
+ this.listView1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
+ this.listView1.Location = new System.Drawing.Point(12, 12);
+ this.listView1.Name = "listView1";
+ this.listView1.ShowGroups = false;
+ this.listView1.Size = new System.Drawing.Size(350, 170);
+ this.listView1.Sorting = System.Windows.Forms.SortOrder.Ascending;
+ this.listView1.TabIndex = 0;
+ this.listView1.TabStop = false;
+ this.listView1.UseCompatibleStateImageBehavior = false;
+ this.listView1.View = System.Windows.Forms.View.Details;
+ this.listView1.SelectedIndexChanged += new System.EventHandler(this.listView1_SelectedIndexChanged);
+ //
+ // test
+ //
+ this.test.Text = "Name";
+ this.test.Width = 250;
+ //
+ // Author
+ //
+ this.Author.Text = "Author";
+ this.Author.Width = 96;
+ //
+ // cancel_button
+ //
+ this.cancel_button.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.cancel_button.Location = new System.Drawing.Point(187, 188);
+ this.cancel_button.Name = "cancel_button";
+ this.cancel_button.Size = new System.Drawing.Size(104, 29);
+ this.cancel_button.TabIndex = 4;
+ this.cancel_button.Text = "Cancel";
+ this.cancel_button.UseVisualStyleBackColor = true;
+ this.cancel_button.Click += new System.EventHandler(this.cancel_button_Click);
+ //
+ // load_button
+ //
+ this.load_button.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.load_button.Location = new System.Drawing.Point(77, 188);
+ this.load_button.Name = "load_button";
+ this.load_button.Size = new System.Drawing.Size(104, 29);
+ this.load_button.TabIndex = 3;
+ this.load_button.Text = "Select";
+ this.load_button.UseVisualStyleBackColor = true;
+ this.load_button.Click += new System.EventHandler(this.load_button_Click);
+ //
+ // ThemeSelector
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(372, 223);
+ this.Controls.Add(this.cancel_button);
+ this.Controls.Add(this.load_button);
+ this.Controls.Add(this.listView1);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "ThemeSelector";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+ this.Text = "Select a Theme";
+ this.Load += new System.EventHandler(this.ThemeSelector_Load);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.ListView listView1;
+ private System.Windows.Forms.ColumnHeader test;
+ private System.Windows.Forms.ColumnHeader Author;
+ private System.Windows.Forms.Button cancel_button;
+ private System.Windows.Forms.Button load_button;
+ }
+}
\ No newline at end of file
diff --git a/src/Forms/ThemeSelector.cs b/src/Forms/ThemeSelector.cs
new file mode 100644
index 0000000..5978804
--- /dev/null
+++ b/src/Forms/ThemeSelector.cs
@@ -0,0 +1,88 @@
+using System;
+using System.IO;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using Newtonsoft.Json.Linq;
+
+namespace Quad64.src.Forms
+{
+ public partial class ThemeSelector : Form
+ {
+ public bool doUpdate = false;
+ public string themePath = "";
+
+ public ThemeSelector()
+ {
+ InitializeComponent();
+ updateTheme();
+ load_button.Enabled = false;
+ }
+
+ private void updateTheme()
+ {
+ BackColor = Theme.DEFAULT_PANEL_BACKGROUND;
+ listView1.BackColor = Theme.DEFAULT_BACKGROUND;
+ listView1.ForeColor = Theme.DEFAULT_TEXT;
+ load_button.BackColor = Theme.DEFAULT_BUTTON_BACKGROUND;
+ load_button.ForeColor = Theme.DEFAULT_BUTTON_TEXT;
+ cancel_button.BackColor = Theme.DEFAULT_BUTTON_BACKGROUND;
+ cancel_button.ForeColor = Theme.DEFAULT_BUTTON_TEXT;
+ }
+
+ private void ThemeSelector_Load(object sender, EventArgs e)
+ {
+ string[] files = Directory.GetFiles("./data/themes/");
+ for (int i = 0; i < files.Length; i++)
+ {
+ if(files[i].EndsWith(".json"))
+ {
+ string json = File.ReadAllText(files[i]);
+ JObject o = JObject.Parse(json);
+ if (o["Info"] != null)
+ {
+ string name = "", author = "";
+ if (o["Info"]["Name"] != null)
+ name = o["Info"]["Name"].ToString();
+ if (o["Info"]["Author"] != null)
+ author = o["Info"]["Author"].ToString();
+
+ ListViewItem item = new ListViewItem();
+ item.Tag = files[i];
+ item.SubItems.Add(new ListViewItem.ListViewSubItem());
+ item.SubItems[0].Text = name;
+ item.SubItems.Add(new ListViewItem.ListViewSubItem());
+ item.SubItems[1].Text = author;
+
+ listView1.Items.Add(item);
+ }
+ }
+ }
+ }
+
+ private void cancel_button_Click(object sender, EventArgs e)
+ {
+ doUpdate = false;
+ Hide();
+ }
+
+ private void load_button_Click(object sender, EventArgs e)
+ {
+ doUpdate = true;
+ themePath = (string)listView1.SelectedItems[0].Tag;
+ Hide();
+ }
+
+ private void listView1_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ if (listView1.SelectedIndices.Count > 0)
+ load_button.Enabled = true;
+ else
+ load_button.Enabled = false;
+ }
+ }
+}
diff --git a/src/Forms/ThemeSelector.resx b/src/Forms/ThemeSelector.resx
new file mode 100644
index 0000000..4969adf
--- /dev/null
+++ b/src/Forms/ThemeSelector.resx
@@ -0,0 +1,635 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ 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
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAA9rRcAOq0WGTuhA1TBPgtezjQNGc01DQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAHK0AAA2tAAQxrQw3L64IoDekAvHBPwz1zjUNoM0yCzfSIAAE0CgAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADR0dEA6tbvEp/Hk3BHtCXUJ68A/TSmAf/CPgv/zjML/c1L
+ KdTMmItwyt3kEsvHxwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0uQAAAGkAAFWuMQWsw5891NLVp6/Kp+1Mtiz/KK8A/1Gv
+ J//FWzT/zjYO/81TMv/Nq6Ltzc/Pps2roizOJwACtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2pAAAZpwABKa4AFy6vB3Z0v13e0dHR/KO2
+ nf9KnDL/bLhW/7TLrP/Ntq7/yXRf/7JROP+6opz/zs7O/M58Zs/NOhRgzjMLC/8AAADcAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAztDOAP/b/wdYtzo8K68DtSyx
+ BPVptlL/nJ6b/0FIPP9baVX/wMa//9HR0P/Pzs3/x8C+/2pbWP9IQkH/op+f/8lxWv/POBHvzjcQms1i
+ RSrK+f8Fy8vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALzLtQCpyJ0Cx8zEIdbQ
+ 2HZ5wGTcMLEJ/ySXAv8yaCH/KTob/xg1AP9qdGD/ucS2/5zCif/KnIn/x7q2/2hiYv8nAAD/RiIh/387
+ Kv+5MQ7/zz0X/c5+as3N1tldx9XVD/+amgCf//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHawAAA6o
+ AAVEtCNPqsigtdXS1f1/uG7/IHoF/xJEAP8XMwD/J1IA/ylUAP9QdDz/YrNL/0CpD//CSBj/x2tT/21I
+ Qf9PAAD/bQAA/0kCAf9fEgT/ni8S/8uLev/Q1NTtzKeck8hkSDPFQh4Dx1k7AAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAorwEAKK8BISauAIY5sxXincaQ/6+vsP9IYj//FDUA/x9BAP8rWAD/MWMA/yxWAP8kbAX/JqgD/zOm
+ Af/CPQv/xzQO/20eDP9SAAD/igAA/4AAAP9bAAD/TAsF/3pZUv+7vr//z5iJ/s1JJsjOMwxa0CEDBtAa
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AACmyZ4A/+j/ANDR0gnJzMVaVrc4vyivAPgyqA//X4BV/ztFMv8fOgf/J04B/y5dAP8vXgD/MWMA/ytW
+ AP8fawD/J6gC/0asGf/ETyP/xzQO/24ZBv9SAAD/iQAA/40AAP+JAAD/bwAA/00NDf9aSUn/om1f/8s+
+ Gv7ONxDnzWFFkczV2CLCwcEAzc3NAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAALwAAC6sAAAARQABeL9lJL7NupTM0cvpXbdD/iGRAP8WTgL/HDYI/yJFAf8kTxn/IEky/ydS
+ GP8uWgT/MmMB/ytVAP8nbQr/YbRJ/6nInv/Nq5//x2dN/24gD/9RAAD/iQAA/40AAP+NAAD/jAAA/38A
+ AP9eBAP/SBMO/30hCv++NBD/zXRc+c/Q0cbOwr9QzFExCMAAAADLNwsAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAASa0iAD2tFxAlrQBSTbctyrHLqvq7v7v/RHc0/xA2AP8bOwH/JU0O/x1O
+ Qf8KXpL/A3Os/wxVfv8bRT7/LlwL/ylVAP9geVH/v8i8/9LS0//P0ND/x7y4/25STf9RAAD/iAAA/4IA
+ DP94ARj/iQAE/4UFDP92Bxn/bQEG/0sCAP9aFAb/pGJR/8nLzP7PopbuzVEwiMsyCiTJSCkBykAdAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOK0RAzatD4UsrgT1RLAk/omdgv9TWU7/HTQJ/yNK
+ AP8mVCL/ElJ9/wJ1vf8AqNP/ALDW/wCYzf8HT5n/KlUc/ypVAP90fWr/xsrF/7DIpP/LsaX/yMTD/25l
+ Zf9QAAD/iAAB/1cURf8iIYr/UgxI/2gWMv83P3j/UxtK/30BBf9dAAD/SR0b/4B7e/+6joL/zkgk/M04
+ EcLMPBk1zD0bAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALa4FBSyuBNQlqwD/JncO/yQ2
+ Gf8dPQH/KlYA/yxcDf8SYYX/C47W/yCw1v8TqNb/AqHX/wCX1f8MVJT/LVwS/ytVAP9feVD/fLxq/1Ct
+ JP/DWC7/yIRy/25UUP9QAAD/iAAB/2gkO/8fZrz/CU+5/yQ6jP8TfbL/FGqq/28PJv+KAAD/cAAA/00O
+ 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
+ AP8vXgD/L14A/zBfAf84ZhD/QnEk/zNpC/8xZAD/JlUA/yJVCv+KnoP/zMnM/5fFiv8xpR//HX1C/xMx
+ qv9AGaf/lihI/8VGL//No5j/wcPE/45tZ/9hGRH/fRIR/48JCf+SEBD/X0Nm/yUzoP9NDU7/hQAG/4wA
+ AP+VCgr/ZiUg/7eVjP/QxcPgz8/PMdDQ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwvVoAbrxXiUKz
+ IPgggQP/FC4A/yxZAP8vXgD/L14A/y9eAP8xZAD/MWMA/y5aBP8gUwT/G3MA/zKmD/+qyaH/1NPT/6C+
+ pv8wXZb/CxLU/w0N4/8NDuP/IBHM/39Ejf/Iq63/z9DP/8yYiv+yNRT/dR0K/2wWEP+DEBD/jgwN/3sO
+ IP+FAwr/jAAA/4wAAP+WCgr/ZRMM/7Y+Hv/PdV7iypqNN8mdkQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAArrQQAK60DjSetAfkbeQD/FS4A/y1aAP8vXgD/MGEA/zNnAP8uWwP/QVom/1dySv83mRv/Jq8A/ze1
+ Dv+yzan/29zY/83N3/+PjuP/R0fi/xYWzv8aGtP/T0/j/5aX4v/Q0N3/2NfU/9Ofjf/SPRP/yDIK/5g/
+ Kf9uR0T/cRwd/4sLC/+TBQT/jAAA/4sAAP+XCQn/ZREL/7UuC//PNg/px0clUcdIJwAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAArrgMAK64DpzGuDP83eSL/FzEB/y5cAP8zZgD/MWEA/yVQAv9JaTb/oZ+h/6bD
+ nf9IuCb/I58T/yRxYP9zfcz/xsbh/+Pj4v/U1NT/d3eZ/x0da/8nJ3T/jY2p/9zc2//i4uL/wcDf/4Jq
+ vf+YLk3/yzEN/9BjRv+3qaX/h318/2onI/95Dg7/lAoK/44BAf+XCQn/ZBUR/7E3GP/PNQ3tzTQMXs00
+ DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZuT0AW7o/tYzAfP9ufGj/GzgC/zNmAP8pVQH/HVQA/yN9
+ Bv95sWj/1NPU/6rJo/89iGH/ETqd/w8Y0v8aGuH/Skrb/3t7r/9ZWWb/HR1P/w0Ndf8gIJb/PT18/3Fx
+ gv9/f8L/RETf/xoa4v8nFMb/XxyE/7FcZf/Rv7n/ysfH/6hWQP95Hgz/ZxIO/4oPDv+dDQ3/Yxwb/66A
+ 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
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAmQA3MdQAJyPRAhgY4B1sa+F5z87g0N3d4fjDw9z/aWmw/xcXeP8+P5X/q6vQ/9nZ
+ 4P/Z2eHmlZXhrCoq4FAAANwIQji9AUE3vgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/DwAC+pZ4C4d3VLsbG4YhjY+HSGxvi+g4O
+ 4f8VFeL/SEjf8K2s36nk5OBT4ODeDeDg3wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeAAAA
+ 3QgEBOE2FBPdkBAQ4NsXFdyxIB3UXh4Y0BgeGNEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAvLMwALSrNERIR3jMhHdUeKCPQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAD///5///8AAP///D///wAA///wD///AAD//+AH//8AAP//gAH//wAA//4AAP//
+ AAD//AAAP/8AAP/wAAAf/wAA/+AAAAf/AAD/wAAAA/8AAP8AAAAB/wAA/AAAAAB/AAD4AAAAAB8AAPAA
+ AAAADwAA8AAAAAAPAADwAAAAAA8AAPAAAAAADwAA8AAAAAAPAADwAAAAAA8AAPAAAAAADwAA8AAAAAAP
+ AADwAAAAAA8AAPAAAAAADwAA8AAAAAAPAADwAAAAAA8AAPAAAAAADwAA8AAAAAAPAADwAAAAAA8AAPAA
+ AAAADwAA8AAAAAAPAADgAAAAAA8AAOAAAAAADwAA4AAAAAAPAADgAAAAAA8AAOAAAAAADwAA4AAAAAAP
+ AADgAAAAAA8AAPgAAAAAHwAA/gAAAAB/AAD/gAAAAf8AAP/gAAAH/wAA//AAAA//AAD//AAAP/8AAP//
+ AAD//wAA///AB///AAD///Af//8AAP///D///wAA////////AAAoAAAAOAAAAHAAAAABACAAAAAAAAAx
+ AADCDgAAwg4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnrwAgzzUKMAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOa0TgCiuAO/ONQ3/zTUNgAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAP7QfMDOtDM8orwD/KK8A/841Df/ONQ3/zTQNz89FHzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHR0YCCwW//KK8A/yiv
+ AP8orwD/zjUN/841Df/ONQ3/zX1o/8vHx4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJu7h0DR0dHP0dHR/3/BbP8orwD/Kq8C/1i5O//OZkv/zjcP/841
+ Df/Of2r/zs7O/8zLys/Pj38gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ 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
+ Df/KPRi/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL7EJ/3a/
+ Yf9gaF3/FS4A/y9eAP8vXgD/L14C/xZUc/8Aktf/EpTF/0B3Mf9OhVD/QKTP/wCH1/8FXLv/J1Eg/y9e
+ AP83bgD/GTgA/yOXAP8orwD/KK8A/841Df/ONQ3/rCwL/yUCAf92AAD/jAAA/4wCAv+Ci5z/B2XU/wBx
+ 1P8AhdT/AJHU/wCj1P8gOY//hgAH/4wAAP+MAAD/jgMD/1wVFf+fbWD/zkUh/841Db8AAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsyqL/0dHR/2FiYP8YNQD/L14A/y9e
+ AP8nVib/A3HL/wCE1P8XfGz/L14A/ytiNf8OhNP/AGjS/xc6XP8vXgD/L14A/zdvAP8ZNwD/I5kA/yiv
+ AP8qsAP/zjcP/841Df+sLAv/JQIB/3YAAP+MAAD/jAAA/4osMP8sd87/AFrT/xdk0v8Sh9T/AJXU/wZD
+ qv97ABP/jAAA/4wAAP+PAwP/cBMT/5eXl//Ou7b/znJZvwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAx7+/QNHR0f/R0dH/UFVN/xo5AP8vXgD/Ll4D/w5OmP8Addf/A0q2/ylX
+ Fv8tWgb/CS6T/wBn1/8HNZv/LVkJ/y9eAP8vXgD/OHAA/xg1AP8jmgD/QLQe/5PFhP/OkoL/zkcj/6wt
+ C/8lAgH/dQAA/4wAAP+MAAD/jhYW/2SXxf8BTNP/KCmf/4+gtf8NitT/AV6+/zQIYv9/AA//jAAA/44C
+ Av95FBT/jo6O/87Ozv/Ozc2/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AADPz89Ayc/H/4HBbv8XPwr/HT0A/y9eAP8gZEP/AWfV/wBf1/8CMbj/EjFv/xApcf8APc7/ADq6/yFH
+ L/8vXgD/L14A/y9eAP84cAD/GTUC/2qqV//Azrz/0dHR/87Ozv/Ou7b/rWFN/yUDAf91AAD/jAAA/4wA
+ AP+MAQH/fVtp/xFb1P8HNL3/aWSc/xyB1P8AhdT/AHvH/xYdkv+AAA//jgIC/38UFP+DT0L/zr66/8nG
+ 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
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAADw/fIFBQ4p/MzOH/4eHh/+Hh4f/X19j/aGiL/wwMQP89PWr/wsLG/+Hh
+ 4f/h4eH/1NTh/3p64d8NDd9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAM/ExDDh4eG/wMDh/15e4f8VFeH/Dg7d/xMT4f9LS+H/s7Ph/97e4d/f399gAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAfH99ADQ3hvw8P4f8PD+H/Dw/h/xgX2+80L9NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyXRYA4O
+ 4c8hHdWAr4+PEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////8A////5////wD////D////AP///wD///8A///+AH//
+ /wD///gAH///AP//4AAP//8A///AAAP//wD//wAAAf//AP/+AAAAf/8A//gAAAA//wD/8AAAAA//AP/A
+ AAAAB/8A/4AAAAAB/wD+AAAAAAD/APwAAAAAAD8A/AAAAAAAPwD8AAAAAAA/APwAAAAAAD8A/AAAAAAA
+ PwD4AAAAAAA/APgAAAAAAD8A+AAAAAAAPwD4AAAAAAA/APgAAAAAAD8A+AAAAAAAHwD4AAAAAAAfAPgA
+ AAAAAB8A+AAAAAAAHwD4AAAAAAAfAPgAAAAAAB8A+AAAAAAAHwD4AAAAAAAfAPgAAAAAAB8A+AAAAAAA
+ HwDwAAAAAAAfAPAAAAAAAB8A8AAAAAAAHwDwAAAAAAAfAPAAAAAAAB8A8AAAAAAAHwDwAAAAAAAfAPgA
+ AAAAAB8A/gAAAAAAfwD/gAAAAAH/AP/gAAAAB/8A//gAAAAf/wD//gAAAH//AP//AAAB//8A///AAAf/
+ /wD///AAH///AP///AB///8A////Af///wD////D////AP////////8A/////////wA=
+
+
+
\ No newline at end of file
diff --git a/src/Forms/ToolStripRenderer/MenuBarColorTable.cs b/src/Forms/ToolStripRenderer/MenuBarColorTable.cs
new file mode 100644
index 0000000..445b694
--- /dev/null
+++ b/src/Forms/ToolStripRenderer/MenuBarColorTable.cs
@@ -0,0 +1,116 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace Quad64.src.Forms.ToolStripRenderer
+{
+ public class CustomToolStripColorTable : ProfessionalColorTable
+ {
+ public override Color ToolStripDropDownBackground
+ {
+ get
+ {
+ return Theme.MAIN_MENUBAR_ITEM_SELECTED;
+ }
+ }
+
+ public override Color ImageMarginGradientBegin
+ {
+ get
+ {
+ return Theme.MAIN_MENUBAR_ITEM_SELECTED;
+ }
+ }
+
+ public override Color ImageMarginGradientMiddle
+ {
+ get
+ {
+ return Theme.MAIN_MENUBAR_ITEM_SELECTED;
+ }
+ }
+
+ public override Color ImageMarginGradientEnd
+ {
+ get
+ {
+ return Theme.MAIN_MENUBAR_ITEM_SELECTED;
+ }
+ }
+
+ public override Color MenuBorder
+ {
+ get
+ {
+ return Theme.MAIN_MENUBAR_BORDER;
+ }
+ }
+
+ public override Color MenuItemBorder
+ {
+ get
+ {
+ return Theme.MAIN_MENUBAR_BORDER;
+ }
+ }
+
+ public override Color MenuItemSelected
+ {
+ get
+ {
+ return Theme.MAIN_MENUBAR_ITEM_HIGHLIGHT;
+ }
+ }
+
+ public override Color MenuStripGradientBegin
+ {
+ get
+ {
+ return Theme.MAIN_MENUBAR_ITEM_SELECTED;
+ }
+ }
+
+ public override Color MenuStripGradientEnd
+ {
+ get
+ {
+ return Theme.MAIN_MENUBAR_ITEM_SELECTED;
+ }
+ }
+
+ public override Color MenuItemSelectedGradientBegin
+ {
+ get
+ {
+ return Theme.MAIN_MENUBAR_ITEM_HIGHLIGHT;
+ }
+ }
+
+ public override Color MenuItemSelectedGradientEnd
+ {
+ get
+ {
+ return Theme.MAIN_MENUBAR_ITEM_HIGHLIGHT;
+ }
+ }
+
+ public override Color MenuItemPressedGradientBegin
+ {
+ get
+ {
+ return Theme.MAIN_MENUBAR_ITEM_SELECTED;
+ }
+ }
+
+ public override Color MenuItemPressedGradientEnd
+ {
+ get
+ {
+ return Theme.MAIN_MENUBAR_ITEM_SELECTED;
+ }
+ }
+ }
+}
diff --git a/src/JSON/SettingsFile.cs b/src/JSON/SettingsFile.cs
index ef9a253..4bbcb13 100644
--- a/src/JSON/SettingsFile.cs
+++ b/src/JSON/SettingsFile.cs
@@ -23,6 +23,7 @@ public static void SaveGlobalSettings(string profileName)
s["EmulatorPath"] = Globals.pathToEmulator;
s["AutoSaveOnLaunchROM"] = Globals.autoSaveWhenClickEmulator.ToString();
s["FieldOfView"] = Globals.FOV.ToString();
+ s["Theme"] = Theme.lastThemePath;
string savePath = "./data/profiles/" + profileName + "/";
Directory.CreateDirectory(savePath); // Create directory if it doesn't exist!
@@ -58,6 +59,8 @@ public static void LoadGlobalSettings(string profileName)
Globals.autoSaveWhenClickEmulator = bool.Parse(o["AutoSaveOnLaunchROM"].ToString());
if (o["FieldOfView"] != null)
Globals.FOV = int.Parse(o["FieldOfView"].ToString());
+ if (o["Theme"] != null)
+ Theme.LoadColorsFromJSONFile(o["Theme"].ToString());
}
}
}
diff --git a/src/LevelInfo/Level.cs b/src/LevelInfo/Level.cs
index 1369d7c..c5cb4db 100644
--- a/src/LevelInfo/Level.cs
+++ b/src/LevelInfo/Level.cs
@@ -370,6 +370,7 @@ public void setAreaBackgroundInfo(ref Area area)
}
public Level(ushort levelID, ushort startArea) {
+
ROM.Instance.clearSegments();
this.levelID = levelID;
currentAreaID = startArea;
diff --git a/src/Scripts/GeoScripts.cs b/src/Scripts/GeoScripts.cs
index f6e613d..ed5a45d 100644
--- a/src/Scripts/GeoScripts.cs
+++ b/src/Scripts/GeoScripts.cs
@@ -61,7 +61,6 @@ public static void parse(ref Model3D mdl, ref Level lvl, byte seg, uint off, byt
byte[] cmd = rom.getSubArray_safe(data, off, cmdLen);
string desc = "Unknown command";
bool alreadyAdded = false;
- //rom.printArray(cmd, cmdLen);
if (cmd[0] != 0x05 && nodeCurrent.isSwitch && nodeCurrent.switchPos != 1)
{
if (nodeCurrent.switchFunc == 0x8029DB48)
@@ -310,7 +309,6 @@ private static void CMD_15(ref Model3D mdl, ref Level lvl, byte[] cmd, byte? are
return;
uint off = bytesToInt(cmd, 5, 3);
mdl.builder.Offset = getTotalOffset();
-
// Don't bother processing duplicate display lists.
if (!mdl.hasGeoDisplayList(off))
{
diff --git a/src/Theme.cs b/src/Theme.cs
new file mode 100644
index 0000000..3d1692a
--- /dev/null
+++ b/src/Theme.cs
@@ -0,0 +1,358 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Drawing;
+using System.IO;
+using Newtonsoft.Json.Linq;
+
+namespace Quad64.src
+{
+ class Theme
+ {
+ /*** Default colors to fallback on if a specific color is not defined ***/
+ public static Color DEFAULT_BACKGROUND = Color.FromArgb(0xF0, 0xF0, 0xF0);
+ public static Color DEFAULT_TEXT = Color.FromArgb(0x00, 0x00, 0x00);
+ public static Color DEFAULT_PANEL_BACKGROUND = Color.FromArgb(0xE0, 0xE0, 0xE0);
+ public static Color DEFAULT_LISTBOX_BACKGROUND = Color.FromArgb(0xF0, 0xF0, 0xF0);
+ public static Color DEFAULT_LISTBOX_TEXT = Color.FromArgb(0x00, 0x00, 0x00);
+ public static Color DEFAULT_LISTBOX_HIGHLIGHT = Color.FromArgb(0x00, 0x78, 0xD7);
+ public static Color DEFAULT_LISTBOX_HIGHLIGHTEDTEXT = Color.FromArgb(0xF0, 0xF0, 0xF0);
+ public static Color DEFAULT_TEXTBOX_BACKGROUND = Color.FromArgb(0xF0, 0xF0, 0xF0);
+ public static Color DEFAULT_TEXTBOX_TEXT = Color.FromArgb(0x00, 0x00, 0x00);
+ public static Color DEFAULT_TEXTBOX_COMMENTS = Color.FromArgb(0x00, 0x80, 0x00);
+ public static Color DEFAULT_DROPDOWNLIST_BACKGROUND = Color.FromArgb(0xF0, 0xF0, 0xF0);
+ public static Color DEFAULT_DROPDOWNLIST_TEXT = Color.FromArgb(0x00, 0x00, 0x00);
+ public static Color DEFAULT_BUTTON_BACKGROUND = Color.FromArgb(0xF0, 0xF0, 0xF0);
+ public static Color DEFAULT_BUTTON_TEXT = Color.FromArgb(0x00, 0x00, 0x00);
+ public static Color DEFAULT_UPDOWN_BACKGROUND = Color.FromArgb(0xF0, 0xF0, 0xF0);
+ public static Color DEFAULT_UPDOWN_TEXT = Color.FromArgb(0x00, 0x00, 0x00);
+
+ /******************** Main Form Specifics ********************/
+ public static Color MAIN_BACKGROUND = Color.FromArgb(0xF0, 0xF0, 0xF0);
+
+ public static Color MAIN_TREEVIEW_BACKGROUND = Color.FromArgb(0xF0, 0xF0, 0xF0);
+ public static Color MAIN_TREEVIEW_TEXT = Color.FromArgb(0, 0, 0);
+ public static Color MAIN_TREEVIEW_HIGHTLIGHT = Color.FromArgb(0x70, 0xBB, 0xDB);
+ public static Color MAIN_TREEVIEW_3DOBJECTS = Color.FromArgb(192, 0, 0);
+ public static Color MAIN_TREEVIEW_MACRO = Color.FromArgb(0, 0, 192);
+ public static Color MAIN_TREEVIEW_SPECIAL = Color.FromArgb(0, 192, 0);
+ public static Color MAIN_TREEVIEW_WARPS = Color.FromArgb(0, 0, 0);
+
+ public static Color MAIN_PROPERTIES_BACKGROUND = Color.FromArgb(0xF0, 0xF0, 0xF0);
+ public static Color MAIN_PROPERTIES_LINES = Color.FromArgb(0xA9, 0xA9, 0xA9);
+ public static Color MAIN_PROPERTIES_TEXT = Color.FromArgb(0, 0, 0);
+
+ public static Color MAIN_CONTROLS_BACKGROUND = Color.FromArgb(0xDC, 0xDC, 0xDC);
+ public static Color MAIN_CONTROLS_TEXT = Color.FromArgb(0, 0, 0);
+ public static Color MAIN_CONTROLS_DROPDOWNLIST_BACKGROUND = Color.FromArgb(0xDC, 0xDC, 0xDC);
+ public static Color MAIN_CONTROLS_DROPDOWNLIST_TEXT = Color.FromArgb(0, 0, 0);
+ public static Color MAIN_CONTROLS_BUTTON_BACKGROUND = Color.FromArgb(0xDC, 0xDC, 0xDC);
+ public static Color MAIN_CONTROLS_BUTTON_TEXT = Color.FromArgb(0, 0, 0);
+ public static Color MAIN_CONTROLS_UPDOWN_BACKGROUND = Color.FromArgb(0xDC, 0xDC, 0xDC);
+ public static Color MAIN_CONTROLS_UPDOWN_TEXT = Color.FromArgb(0, 0, 0);
+
+ public static Color MAIN_MENUBAR_BORDER = Color.FromArgb(0, 0, 0);
+ public static Color MAIN_MENUBAR_TEXT = Color.FromArgb(0, 0, 0);
+ public static Color MAIN_MENUBAR_BACKGROUND = Color.FromArgb(0xD3, 0xD3, 0xD3);
+ public static Color MAIN_MENUBAR_ITEM_SELECTED = Color.FromArgb(0xF9, 0xF9, 0xF9);
+ public static Color MAIN_MENUBAR_ITEM_HIGHLIGHT = Color.FromArgb(0xB5, 0xD7, 0xF3);
+
+ /******************** Object Combo Specifics ********************/
+
+ public static Color COMBOS_BACKGROUND = Color.FromArgb(255, 255, 255);
+ public static Color COMBOS_TEXT = Color.FromArgb(0, 0, 0);
+
+ public static Color COMBOS_3DOBJECTS_TITLE = Color.DarkRed;
+ public static Color COMBOS_3DOBJECTS_MAIN = Color.FromArgb(250, 250, 250);
+ public static Color COMBOS_3DOBJECTS_SECONDARY = Color.FromArgb(250, 240, 240);
+ public static Color COMBOS_3DOBJECTS_HIGHLIGHT = Color.FromArgb(200, 200, 255);
+ public static Color COMBOS_3DOBJECTS_HIGHLIGHT_TEXT = Color.FromArgb(0, 0, 0);
+
+ public static Color COMBOS_MACRO_TITLE = Color.DarkBlue;
+ public static Color COMBOS_MACRO_MAIN = Color.FromArgb(250, 250, 250);
+ public static Color COMBOS_MACRO_SECONDARY = Color.FromArgb(240, 240, 250);
+ public static Color COMBOS_MACRO_HIGHLIGHT = Color.FromArgb(200, 200, 255);
+ public static Color COMBOS_MACRO_HIGHLIGHT_TEXT = Color.FromArgb(0, 0, 0);
+
+ public static Color COMBOS_SPECIAL_TITLE = Color.DarkGreen;
+ public static Color COMBOS_SPECIAL_MAIN = Color.FromArgb(250, 250, 250);
+ public static Color COMBOS_SPECIAL_SECONDARY = Color.FromArgb(240, 250, 240);
+ public static Color COMBOS_SPECIAL_HIGHLIGHT = Color.FromArgb(200, 200, 255);
+ public static Color COMBOS_SPECIAL_HIGHLIGHT_TEXT = Color.FromArgb(0, 0, 0);
+
+ public static Color COMBOS_OTHER_TITLE = Color.DimGray;
+ public static Color COMBOS_OTHER_MAIN = Color.FromArgb(250, 250, 250);
+ public static Color COMBOS_OTHER_SECONDARY = Color.FromArgb(240, 240, 240);
+ public static Color COMBOS_OTHER_HIGHLIGHT = Color.FromArgb(200, 200, 255);
+ public static Color COMBOS_OTHER_HIGHLIGHT_TEXT = Color.FromArgb(0, 0, 0);
+
+ /******************** Texture Editor Specifics ********************/
+ public static Color TEXTURES_BACKGROUND = Color.FromArgb(240, 240, 240);
+
+ public static Color TEXTURES_LEVEL_TEXT = Color.FromArgb(0, 0, 0);
+ public static Color TEXTURES_LEVEL_BUTTON_BACKGROUND = Color.FromArgb(225, 225, 225);
+ public static Color TEXTURES_LEVEL_BUTTON_TEXT = Color.FromArgb(0, 0, 0);
+ public static Color TEXTURES_LEVEL_BACKGROUND_LEFT = Color.FromArgb(0xB2, 0x22, 0x22);
+ public static Color TEXTURES_LEVEL_BACKGROUND_MIDDLE = Color.FromArgb(0x00, 0x80, 0x00);
+ public static Color TEXTURES_LEVEL_BACKGROUND_RIGHT = Color.FromArgb(0x64, 0x95, 0xED);
+
+ public static Color TEXTURES_OTHER_TEXT = Color.FromArgb(0, 0, 0);
+ public static Color TEXTURES_OTHER_BUTTON_BACKGROUND = Color.FromArgb(225, 225, 225);
+ public static Color TEXTURES_OTHER_BUTTON_TEXT = Color.FromArgb(0, 0, 0);
+ public static Color TEXTURES_OTHER_BACKGROUND_LEFT = Color.FromArgb(0xB2, 0x22, 0x22);
+ public static Color TEXTURES_OTHER_BACKGROUND_MIDDLE = Color.FromArgb(0x00, 0x80, 0x00);
+ public static Color TEXTURES_OTHER_BACKGROUND_RIGHT = Color.FromArgb(0x64, 0x95, 0xED);
+
+ public static Color TEXTURES_SKY_TEXT = Color.FromArgb(0, 0, 0);
+ public static Color TEXTURES_SKY_BUTTON_BACKGROUND = Color.FromArgb(225, 225, 225);
+ public static Color TEXTURES_SKY_BUTTON_TEXT = Color.FromArgb(0, 0, 0);
+ public static Color TEXTURES_SKY_BACKGROUND_LEFT = Color.FromArgb(0x66, 0xCD, 0xAA);
+ public static Color TEXTURES_SKY_BACKGROUND_RIGHT = Color.FromArgb(0x64, 0x95, 0xED);
+
+ /******************** Script Dumps Specifics ********************/
+ public static Color SCRIPTDUMPS_BACKGROUND = Color.FromArgb(0xF0, 0xF0, 0xF0);
+ public static Color SCRIPTDUMPS_TEXT = Color.FromArgb(0x00, 0x00, 0x00);
+ public static Color SCRIPTDUMPS_OPTIONS_BACKGROUND = Color.FromArgb(0xDC, 0xDC, 0xDC);
+
+ public static Color SCRIPTDUMPS_LEVEL_TEXTBOX_BACKGROUND = Color.FromArgb(0xF0, 0xF0, 0xF0);
+ public static Color SCRIPTDUMPS_LEVEL_TEXTBOX_TEXT = Color.FromArgb(0x00, 0x00, 0x00);
+ public static Color SCRIPTDUMPS_LEVEL_TEXTBOX_COMMENTS = Color.FromArgb(0x00, 0x80, 0x00);
+
+ public static Color SCRIPTDUMPS_GEOLAYOUT_TEXTBOX_BACKGROUND = Color.FromArgb(0xF0, 0xF0, 0xF0);
+ public static Color SCRIPTDUMPS_GEOLAYOUT_TEXTBOX_TEXT = Color.FromArgb(0x00, 0x00, 0x00);
+ public static Color SCRIPTDUMPS_GEOLAYOUT_TEXTBOX_COMMENTS = Color.FromArgb(0x00, 0x80, 0x00);
+
+ public static Color SCRIPTDUMPS_FAST3D_TEXTBOX_BACKGROUND = Color.FromArgb(0xF0, 0xF0, 0xF0);
+ public static Color SCRIPTDUMPS_FAST3D_TEXTBOX_TEXT = Color.FromArgb(0x00, 0x00, 0x00);
+ public static Color SCRIPTDUMPS_FAST3D_TEXTBOX_COMMENTS = Color.FromArgb(0x00, 0x80, 0x00);
+ public static Color SCRIPTDUMPS_FAST3D_LISTBOX_BACKGROUND = Color.FromArgb(0xF0, 0xF0, 0xF0);
+ public static Color SCRIPTDUMPS_FAST3D_LISTBOX_TEXT = Color.FromArgb(0x00, 0x00, 0x00);
+ public static Color SCRIPTDUMPS_FAST3D_LISTBOX_HIGHLIGHT = Color.FromArgb(0x00, 0x78, 0xD7);
+ public static Color SCRIPTDUMPS_FAST3D_LISTBOX_HIGHLIGHTEDTEXT = Color.FromArgb(0xF0, 0xF0, 0xF0);
+
+ public static Color SCRIPTDUMPS_BEHAVIOR_TEXTBOX_BACKGROUND = Color.FromArgb(0xF0, 0xF0, 0xF0);
+ public static Color SCRIPTDUMPS_BEHAVIOR_TEXTBOX_TEXT = Color.FromArgb(0x00, 0x00, 0x00);
+ public static Color SCRIPTDUMPS_BEHAVIOR_TEXTBOX_COMMENTS = Color.FromArgb(0x00, 0x80, 0x00);
+
+ public static Color SCRIPTDUMPS_OBJECTSTAB_LISTBOX_BACKGROUND = Color.FromArgb(0xF0, 0xF0, 0xF0);
+ public static Color SCRIPTDUMPS_OBJECTSTAB_LISTBOX_TEXT = Color.FromArgb(0x00, 0x00, 0x00);
+ public static Color SCRIPTDUMPS_OBJECTSTAB_LISTBOX_HIGHLIGHT = Color.FromArgb(0x00, 0x78, 0xD7);
+ public static Color SCRIPTDUMPS_OBJECTSTAB_LISTBOX_HIGHLIGHTEDTEXT = Color.FromArgb(0xF0, 0xF0, 0xF0);
+
+ public static Color SCRIPTDUMPS_LEVELTAB_GEOLAYOUT_AREAPANEL_BACKGROUND = Color.FromArgb(0xF5, 0xF5, 0xF5);
+ public static Color SCRIPTDUMPS_LEVELTAB_GEOLAYOUT_AREAPANEL_TEXT = Color.FromArgb(0x00, 0x00, 0x00);
+ public static Color SCRIPTDUMPS_LEVELTAB_FAST3D_AREAPANEL_BACKGROUND = Color.FromArgb(0xF5, 0xF5, 0xF5);
+ public static Color SCRIPTDUMPS_LEVELTAB_FAST3D_AREAPANEL_TEXT = Color.FromArgb(0x00, 0x00, 0x00);
+
+ public static Color SCRIPTDUMPS_OBJECTSTAB_SORT_DROPDOWNLIST_BACKGROUND = Color.FromArgb(0xF0, 0xF0, 0xF0);
+ public static Color SCRIPTDUMPS_OBJECTSTAB_SORT_DROPDOWNLIST_TEXT = Color.FromArgb(0x00, 0x00, 0x00);
+
+ public static void LoadColor(ref Color color, Color default_color, JToken token)
+ {
+ if (token != null)
+ {
+ if (token["R"] != null && token["G"] != null && token["B"] != null)
+ {
+ byte R, G, B;
+ bool red = byte.TryParse(token["R"].ToString(), out R);
+ bool green = byte.TryParse(token["G"].ToString(), out G);
+ bool blue = byte.TryParse(token["B"].ToString(), out B);
+
+ if (red && green && blue)
+ {
+ color = Color.FromArgb(R, G, B);
+ return;
+ }
+ }
+ }
+
+ // Load failed, so use default color instead.
+ color = default_color;
+ }
+
+ public static string lastThemePath = "";
+
+ public static void LoadColorsFromJSONFile(string filepath)
+ {
+ if (File.Exists(filepath))
+ {
+ lastThemePath = filepath;
+
+ // Reset defaults
+ DEFAULT_BACKGROUND = Color.FromArgb(0xF0, 0xF0, 0xF0);
+ DEFAULT_TEXT = Color.FromArgb(0x00, 0x00, 0x00);
+ DEFAULT_PANEL_BACKGROUND = Color.FromArgb(0xDC, 0xDC, 0xDC);
+ DEFAULT_LISTBOX_BACKGROUND = Color.FromArgb(0xF0, 0xF0, 0xF0);
+ DEFAULT_LISTBOX_TEXT = Color.FromArgb(0x00, 0x00, 0x00);
+ DEFAULT_LISTBOX_HIGHLIGHT = Color.FromArgb(0x00, 0x78, 0xD7);
+ DEFAULT_LISTBOX_HIGHLIGHTEDTEXT = Color.FromArgb(0xFF, 0xFF, 0xFF);
+ DEFAULT_TEXTBOX_BACKGROUND = Color.FromArgb(0xFF, 0xFF, 0xFF);
+ DEFAULT_TEXTBOX_TEXT = Color.FromArgb(0x00, 0x00, 0x00);
+ DEFAULT_TEXTBOX_COMMENTS = Color.FromArgb(0x00, 0x80, 0x00);
+ DEFAULT_DROPDOWNLIST_BACKGROUND = Color.FromArgb(0xD0, 0xD0, 0xD0);
+ DEFAULT_DROPDOWNLIST_TEXT = Color.FromArgb(0x00, 0x00, 0x00);
+ DEFAULT_BUTTON_BACKGROUND = Color.FromArgb(0xF0, 0xF0, 0xF0);
+ DEFAULT_BUTTON_TEXT = Color.FromArgb(0x00, 0x00, 0x00);
+ DEFAULT_UPDOWN_BACKGROUND = Color.FromArgb(0xF0, 0xF0, 0xF0);
+ DEFAULT_UPDOWN_TEXT = Color.FromArgb(0x00, 0x00, 0x00);
+
+
+ string json = File.ReadAllText(filepath);
+ JObject o = JObject.Parse(json);
+ if (o["Defaults"] != null)
+ {
+ LoadColor(ref DEFAULT_BACKGROUND, DEFAULT_BACKGROUND, o["Defaults"]["Background"]);
+ LoadColor(ref DEFAULT_TEXT, DEFAULT_TEXT, o["Defaults"]["Text"]);
+ LoadColor(ref DEFAULT_PANEL_BACKGROUND, DEFAULT_PANEL_BACKGROUND, o["Defaults"]["Panel-Background"]);
+ LoadColor(ref DEFAULT_LISTBOX_BACKGROUND, DEFAULT_LISTBOX_BACKGROUND, o["Defaults"]["ListBox-Background"]);
+ LoadColor(ref DEFAULT_LISTBOX_TEXT, DEFAULT_LISTBOX_TEXT, o["Defaults"]["ListBox-Text"]);
+ LoadColor(ref DEFAULT_LISTBOX_HIGHLIGHT, DEFAULT_LISTBOX_HIGHLIGHT, o["Defaults"]["ListBox-Highlight"]);
+ LoadColor(ref DEFAULT_LISTBOX_HIGHLIGHTEDTEXT, DEFAULT_LISTBOX_HIGHLIGHTEDTEXT, o["Defaults"]["ListBox-HighlightedText"]);
+ LoadColor(ref DEFAULT_TEXTBOX_BACKGROUND, DEFAULT_TEXTBOX_BACKGROUND, o["Defaults"]["TextBox-Background"]);
+ LoadColor(ref DEFAULT_TEXTBOX_TEXT, DEFAULT_TEXTBOX_TEXT, o["Defaults"]["TextBox-Text"]);
+ LoadColor(ref DEFAULT_TEXTBOX_COMMENTS, DEFAULT_TEXTBOX_COMMENTS, o["Defaults"]["TextBox-Comments"]);
+ LoadColor(ref DEFAULT_DROPDOWNLIST_BACKGROUND, DEFAULT_DROPDOWNLIST_BACKGROUND, o["Defaults"]["DropDown-Background"]);
+ LoadColor(ref DEFAULT_DROPDOWNLIST_TEXT, DEFAULT_DROPDOWNLIST_TEXT, o["Defaults"]["DropDown-Text"]);
+ LoadColor(ref DEFAULT_BUTTON_BACKGROUND, DEFAULT_BUTTON_BACKGROUND, o["Defaults"]["Button-Background"]);
+ LoadColor(ref DEFAULT_BUTTON_TEXT, DEFAULT_BUTTON_TEXT, o["Defaults"]["Button-Text"]);
+ LoadColor(ref DEFAULT_UPDOWN_BACKGROUND, DEFAULT_UPDOWN_BACKGROUND, o["Defaults"]["NumericUpDown-Background"]);
+ LoadColor(ref DEFAULT_UPDOWN_TEXT, DEFAULT_UPDOWN_TEXT, o["Defaults"]["NumericUpDown-Text"]);
+ }
+
+ if (o["ScriptDumps"] != null)
+ {
+ LoadColor(ref SCRIPTDUMPS_BACKGROUND, DEFAULT_BACKGROUND, o["ScriptDumps"]["Background"]);
+ LoadColor(ref SCRIPTDUMPS_TEXT, DEFAULT_TEXT, o["ScriptDumps"]["Text"]);
+ LoadColor(ref SCRIPTDUMPS_OPTIONS_BACKGROUND, DEFAULT_PANEL_BACKGROUND, o["ScriptDumps"]["Panel-Background"]);
+
+ LoadColor(ref SCRIPTDUMPS_OBJECTSTAB_SORT_DROPDOWNLIST_BACKGROUND, DEFAULT_DROPDOWNLIST_BACKGROUND, o["ScriptDumps"]["DropDown-Background"]);
+ LoadColor(ref SCRIPTDUMPS_OBJECTSTAB_SORT_DROPDOWNLIST_TEXT, DEFAULT_DROPDOWNLIST_TEXT, o["ScriptDumps"]["DropDown-Text"]);
+
+ LoadColor(ref SCRIPTDUMPS_LEVELTAB_GEOLAYOUT_AREAPANEL_BACKGROUND, DEFAULT_PANEL_BACKGROUND, o["ScriptDumps"]["GeoLayoutScripts-AreaPanel-Background"]);
+ LoadColor(ref SCRIPTDUMPS_LEVELTAB_GEOLAYOUT_AREAPANEL_TEXT, DEFAULT_TEXT, o["ScriptDumps"]["GeoLayoutScripts-AreaPanel-Text"]);
+ LoadColor(ref SCRIPTDUMPS_LEVELTAB_FAST3D_AREAPANEL_BACKGROUND, DEFAULT_PANEL_BACKGROUND, o["ScriptDumps"]["Fast3DScripts-AreaPanel-Background"]);
+ LoadColor(ref SCRIPTDUMPS_LEVELTAB_FAST3D_AREAPANEL_TEXT, DEFAULT_TEXT, o["ScriptDumps"]["Fast3DScripts-AreaPanel-Text"]);
+
+ LoadColor(ref SCRIPTDUMPS_OBJECTSTAB_LISTBOX_BACKGROUND, DEFAULT_LISTBOX_BACKGROUND, o["ScriptDumps"]["Objects-ListBox-Background"]);
+ LoadColor(ref SCRIPTDUMPS_OBJECTSTAB_LISTBOX_TEXT, DEFAULT_LISTBOX_TEXT, o["ScriptDumps"]["Objects-ListBox-Background"]);
+ LoadColor(ref SCRIPTDUMPS_OBJECTSTAB_LISTBOX_HIGHLIGHT, DEFAULT_LISTBOX_HIGHLIGHT, o["ScriptDumps"]["Objects-ListBox-Highlight"]);
+ LoadColor(ref SCRIPTDUMPS_OBJECTSTAB_LISTBOX_HIGHLIGHTEDTEXT, DEFAULT_LISTBOX_HIGHLIGHTEDTEXT, o["ScriptDumps"]["Objects-ListBox-HighlightedText"]);
+
+ LoadColor(ref SCRIPTDUMPS_FAST3D_LISTBOX_BACKGROUND, DEFAULT_LISTBOX_BACKGROUND, o["ScriptDumps"]["Fast3DScripts-ListBox-Background"]);
+ LoadColor(ref SCRIPTDUMPS_FAST3D_LISTBOX_TEXT, DEFAULT_LISTBOX_TEXT, o["ScriptDumps"]["Fast3DScripts-ListBox-Text"]);
+ LoadColor(ref SCRIPTDUMPS_FAST3D_LISTBOX_HIGHLIGHT, DEFAULT_LISTBOX_HIGHLIGHT, o["ScriptDumps"]["Fast3DScripts-ListBox-Highlight"]);
+ LoadColor(ref SCRIPTDUMPS_FAST3D_LISTBOX_HIGHLIGHTEDTEXT, DEFAULT_LISTBOX_HIGHLIGHTEDTEXT, o["ScriptDumps"]["Fast3DScripts-ListBox-HighlightedText"]);
+
+ LoadColor(ref SCRIPTDUMPS_LEVEL_TEXTBOX_BACKGROUND, DEFAULT_TEXTBOX_BACKGROUND, o["ScriptDumps"]["LevelScripts-Background"]);
+ LoadColor(ref SCRIPTDUMPS_LEVEL_TEXTBOX_TEXT, DEFAULT_TEXTBOX_TEXT, o["ScriptDumps"]["LevelScripts-Text"]);
+ LoadColor(ref SCRIPTDUMPS_LEVEL_TEXTBOX_COMMENTS, DEFAULT_TEXTBOX_COMMENTS, o["ScriptDumps"]["LevelScripts-Comments"]);
+
+ LoadColor(ref SCRIPTDUMPS_GEOLAYOUT_TEXTBOX_BACKGROUND, DEFAULT_TEXTBOX_BACKGROUND, o["ScriptDumps"]["GeoLayoutScripts-Background"]);
+ LoadColor(ref SCRIPTDUMPS_GEOLAYOUT_TEXTBOX_TEXT, DEFAULT_TEXTBOX_TEXT, o["ScriptDumps"]["GeoLayoutScripts-Text"]);
+ LoadColor(ref SCRIPTDUMPS_GEOLAYOUT_TEXTBOX_COMMENTS, DEFAULT_TEXTBOX_COMMENTS, o["ScriptDumps"]["GeoLayoutScripts-Comments"]);
+
+ LoadColor(ref SCRIPTDUMPS_FAST3D_TEXTBOX_BACKGROUND, DEFAULT_TEXTBOX_BACKGROUND, o["ScriptDumps"]["Fast3DScripts-Background"]);
+ LoadColor(ref SCRIPTDUMPS_FAST3D_TEXTBOX_TEXT, DEFAULT_TEXTBOX_TEXT, o["ScriptDumps"]["Fast3DScripts-Text"]);
+ LoadColor(ref SCRIPTDUMPS_FAST3D_TEXTBOX_COMMENTS, DEFAULT_TEXTBOX_COMMENTS, o["ScriptDumps"]["Fast3DScripts-Comments"]);
+
+ LoadColor(ref SCRIPTDUMPS_BEHAVIOR_TEXTBOX_BACKGROUND, DEFAULT_TEXTBOX_BACKGROUND, o["ScriptDumps"]["BehaviorScripts-Background"]);
+ LoadColor(ref SCRIPTDUMPS_BEHAVIOR_TEXTBOX_TEXT, DEFAULT_TEXTBOX_TEXT, o["ScriptDumps"]["BehaviorScripts-Text"]);
+ LoadColor(ref SCRIPTDUMPS_BEHAVIOR_TEXTBOX_COMMENTS, DEFAULT_TEXTBOX_COMMENTS, o["ScriptDumps"]["BehaviorScripts-Comments"]);
+ }
+
+ if (o["Main"] != null)
+ {
+ LoadColor(ref MAIN_BACKGROUND, DEFAULT_BACKGROUND, o["Main"]["Background"]);
+
+ LoadColor(ref MAIN_TREEVIEW_BACKGROUND, DEFAULT_BACKGROUND, o["Main"]["TreeView-Background"]);
+ LoadColor(ref MAIN_TREEVIEW_TEXT, DEFAULT_TEXT, o["Main"]["TreeView-Text"]);
+ LoadColor(ref MAIN_TREEVIEW_HIGHTLIGHT, Color.FromArgb(0x70, 0xBB, 0xDB), o["Main"]["TreeView-Highlight"]);
+ LoadColor(ref MAIN_TREEVIEW_3DOBJECTS, Color.FromArgb(192, 0, 0), o["Main"]["TreeView-3DObjectsLabel"]);
+ LoadColor(ref MAIN_TREEVIEW_MACRO, Color.FromArgb(0, 0, 192), o["Main"]["TreeView-MacroObjectsLabel"]);
+ LoadColor(ref MAIN_TREEVIEW_SPECIAL, Color.FromArgb(0, 192, 0), o["Main"]["TreeView-SpecialObjectsLabel"]);
+ LoadColor(ref MAIN_TREEVIEW_WARPS, Color.FromArgb(0, 0, 0), o["Main"]["TreeView-WarpsLabel"]);
+
+ LoadColor(ref MAIN_PROPERTIES_BACKGROUND, DEFAULT_BACKGROUND, o["Main"]["Properties-Background"]);
+ LoadColor(ref MAIN_PROPERTIES_TEXT, DEFAULT_TEXT, o["Main"]["Properties-Text"]);
+ LoadColor(ref MAIN_PROPERTIES_LINES, Color.FromArgb(0xA9, 0xA9, 0xA9), o["Main"]["Properties-Lines"]);
+
+ LoadColor(ref MAIN_CONTROLS_BACKGROUND, Color.FromArgb(0x90, 0x90, 0x90), o["Main"]["Controls-Background"]);
+ LoadColor(ref MAIN_CONTROLS_TEXT, DEFAULT_TEXT, o["Main"]["Controls-Text"]);
+ LoadColor(ref MAIN_CONTROLS_BUTTON_BACKGROUND, DEFAULT_BUTTON_BACKGROUND, o["Main"]["Controls-Button-Background"]);
+ LoadColor(ref MAIN_CONTROLS_BUTTON_TEXT, DEFAULT_BUTTON_TEXT, o["Main"]["Controls-Button-Text"]);
+ LoadColor(ref MAIN_CONTROLS_DROPDOWNLIST_BACKGROUND, DEFAULT_DROPDOWNLIST_BACKGROUND, o["Main"]["Controls-DropDown-Background"]);
+ LoadColor(ref MAIN_CONTROLS_DROPDOWNLIST_TEXT, DEFAULT_DROPDOWNLIST_TEXT, o["Main"]["Controls-DropDown-Text"]);
+ LoadColor(ref MAIN_CONTROLS_UPDOWN_BACKGROUND, DEFAULT_UPDOWN_BACKGROUND, o["Main"]["Controls-NumericUpDown-Background"]);
+ LoadColor(ref MAIN_CONTROLS_UPDOWN_TEXT, DEFAULT_UPDOWN_TEXT, o["Main"]["Controls-NumericUpDown-Text"]);
+
+ LoadColor(ref MAIN_MENUBAR_TEXT, DEFAULT_TEXT, o["Main"]["MenuBar-Text"]);
+ LoadColor(ref MAIN_MENUBAR_BACKGROUND, DEFAULT_PANEL_BACKGROUND, o["Main"]["MenuBar-Background"]);
+ LoadColor(ref MAIN_MENUBAR_BORDER, Color.Black, o["Main"]["MenuBar-Item-Border"]);
+ LoadColor(ref MAIN_MENUBAR_ITEM_SELECTED, Color.FromArgb(0xF9, 0xF9, 0xF9), o["Main"]["MenuBar-Item-Selected"]);
+ LoadColor(ref MAIN_MENUBAR_ITEM_HIGHLIGHT, Color.FromArgb(0xB5, 0xD7, 0xF3), o["Main"]["MenuBar-Item-Highlight"]);
+ }
+
+ if (o["TextureEditor"] != null)
+ {
+ LoadColor(ref TEXTURES_BACKGROUND, DEFAULT_BACKGROUND, o["TextureEditor"]["Background"]);
+
+ LoadColor(ref TEXTURES_LEVEL_BACKGROUND_LEFT, Color.FromArgb(0xB2, 0x22, 0x22), o["TextureEditor"]["LevelTab-Background-Left"]);
+ LoadColor(ref TEXTURES_LEVEL_BACKGROUND_MIDDLE, Color.FromArgb(0x00, 0x80, 0x00), o["TextureEditor"]["LevelTab-Background-Middle"]);
+ LoadColor(ref TEXTURES_LEVEL_BACKGROUND_RIGHT, Color.FromArgb(0x64, 0x95, 0xED), o["TextureEditor"]["LevelTab-Background-Right"]);
+ LoadColor(ref TEXTURES_LEVEL_TEXT, DEFAULT_TEXT, o["TextureEditor"]["LevelTab-Text"]);
+ LoadColor(ref TEXTURES_LEVEL_BUTTON_BACKGROUND, DEFAULT_BUTTON_BACKGROUND, o["TextureEditor"]["LevelTab-Button-Background"]);
+ LoadColor(ref TEXTURES_LEVEL_BUTTON_TEXT, DEFAULT_BUTTON_TEXT, o["TextureEditor"]["LevelTab-Button-Text"]);
+
+ LoadColor(ref TEXTURES_OTHER_BACKGROUND_LEFT, Color.FromArgb(0xB2, 0x22, 0x22), o["TextureEditor"]["OtherTab-Background-Left"]);
+ LoadColor(ref TEXTURES_OTHER_BACKGROUND_MIDDLE, Color.FromArgb(0x00, 0x80, 0x00), o["TextureEditor"]["OtherTab-Background-Middle"]);
+ LoadColor(ref TEXTURES_OTHER_BACKGROUND_RIGHT, Color.FromArgb(0x64, 0x95, 0xED), o["TextureEditor"]["OtherTab-Background-Right"]);
+ LoadColor(ref TEXTURES_OTHER_TEXT, DEFAULT_TEXT, o["TextureEditor"]["OtherTab-Text"]);
+ LoadColor(ref TEXTURES_OTHER_BUTTON_BACKGROUND, DEFAULT_BUTTON_BACKGROUND, o["TextureEditor"]["OtherTab-Button-Background"]);
+ LoadColor(ref TEXTURES_OTHER_BUTTON_TEXT, DEFAULT_BUTTON_TEXT, o["TextureEditor"]["OtherTab-Button-Text"]);
+
+ LoadColor(ref TEXTURES_SKY_BACKGROUND_LEFT, Color.FromArgb(0x66, 0xCD, 0xAA), o["TextureEditor"]["SkyTab-Background-Left"]);
+ LoadColor(ref TEXTURES_SKY_BACKGROUND_RIGHT, Color.FromArgb(0x64, 0x95, 0xED), o["TextureEditor"]["SkyTab-Background-Right"]);
+ LoadColor(ref TEXTURES_SKY_TEXT, DEFAULT_TEXT, o["TextureEditor"]["SkyTab-Text"]);
+ LoadColor(ref TEXTURES_SKY_BUTTON_BACKGROUND, DEFAULT_BUTTON_BACKGROUND, o["TextureEditor"]["SkyTab-Button-Background"]);
+ LoadColor(ref TEXTURES_SKY_BUTTON_TEXT, DEFAULT_BUTTON_TEXT, o["TextureEditor"]["SkyTab-Button-Text"]);
+ }
+
+ if (o["ObjectCombos"] != null)
+ {
+ LoadColor(ref COMBOS_BACKGROUND, DEFAULT_BACKGROUND, o["ObjectCombos"]["Background"]);
+ LoadColor(ref COMBOS_TEXT, DEFAULT_TEXT, o["ObjectCombos"]["Text"]);
+
+ LoadColor(ref COMBOS_3DOBJECTS_TITLE, Color.DarkRed, o["ObjectCombos"]["3DObjects-Title"]);
+ LoadColor(ref COMBOS_3DOBJECTS_MAIN, Color.FromArgb(250, 250, 250), o["ObjectCombos"]["3DObjects-Item"]);
+ LoadColor(ref COMBOS_3DOBJECTS_SECONDARY, Color.FromArgb(250, 240, 240), o["ObjectCombos"]["3DObjects-Item-Alt"]);
+ LoadColor(ref COMBOS_3DOBJECTS_HIGHLIGHT, Color.FromArgb(200, 200, 255), o["ObjectCombos"]["3DObjects-Item-Highlight"]);
+ LoadColor(ref COMBOS_3DOBJECTS_HIGHLIGHT_TEXT, DEFAULT_TEXT, o["ObjectCombos"]["3DObjects-Item-Highlight-Text"]);
+
+ LoadColor(ref COMBOS_MACRO_TITLE, Color.DarkBlue, o["ObjectCombos"]["MacroObjects-Title"]);
+ LoadColor(ref COMBOS_MACRO_MAIN, Color.FromArgb(250, 250, 250), o["ObjectCombos"]["MacroObjects-Item"]);
+ LoadColor(ref COMBOS_MACRO_SECONDARY, Color.FromArgb(240, 240, 250), o["ObjectCombos"]["MacroObjects-Item-Alt"]);
+ LoadColor(ref COMBOS_MACRO_HIGHLIGHT, Color.FromArgb(200, 200, 255), o["ObjectCombos"]["MacroObjects-Item-Highlight"]);
+ LoadColor(ref COMBOS_MACRO_HIGHLIGHT_TEXT, DEFAULT_TEXT, o["ObjectCombos"]["MacroObjects-Item-Highlight-Text"]);
+
+ LoadColor(ref COMBOS_SPECIAL_TITLE, Color.DarkGreen, o["ObjectCombos"]["SpecialObjects-Title"]);
+ LoadColor(ref COMBOS_SPECIAL_MAIN, Color.FromArgb(250, 250, 250), o["ObjectCombos"]["SpecialObjects-Item"]);
+ LoadColor(ref COMBOS_SPECIAL_SECONDARY, Color.FromArgb(240, 250, 240), o["ObjectCombos"]["SpecialObjects-Item-Alt"]);
+ LoadColor(ref COMBOS_SPECIAL_HIGHLIGHT, Color.FromArgb(200, 200, 255), o["ObjectCombos"]["SpecialObjects-Item-Highlight"]);
+ LoadColor(ref COMBOS_SPECIAL_HIGHLIGHT_TEXT, DEFAULT_TEXT, o["ObjectCombos"]["SpecialObjects-Item-Highlight-Text"]);
+
+ LoadColor(ref COMBOS_OTHER_TITLE, Color.DimGray, o["ObjectCombos"]["Other-Title"]);
+ LoadColor(ref COMBOS_OTHER_MAIN, Color.FromArgb(250, 250, 250), o["ObjectCombos"]["Other-Item"]);
+ LoadColor(ref COMBOS_OTHER_SECONDARY, Color.FromArgb(240, 240, 240), o["ObjectCombos"]["Other-Item-Alt"]);
+ LoadColor(ref COMBOS_OTHER_HIGHLIGHT, Color.FromArgb(200, 200, 255), o["ObjectCombos"]["Other-Item-Highlight"]);
+ LoadColor(ref COMBOS_OTHER_HIGHLIGHT_TEXT, DEFAULT_TEXT, o["ObjectCombos"]["Other-Item-Highlight-Text"]);
+ }
+
+ }
+ else
+ {
+ Console.WriteLine("THEME ERROR: File: \"" + filepath + "\" could not be found!");
+ }
+ }
+ }
+}