Skip to content

Commit 0b50684

Browse files
author
slavara
committed
WIP
1 parent 7c40759 commit 0b50684

11 files changed

+125
-77
lines changed

QuickNavigate/Forms/ClassHierarchyForm.Designer.cs

Lines changed: 13 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

QuickNavigate/Forms/ClassHierarchyForm.cs

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ namespace QuickNavigate.Forms
1515
public sealed partial class ClassHierarchyForm : ClassModelExplorerForm
1616
{
1717
readonly ClassModel curClass;
18-
readonly Brush defaultNodeBrush;
1918
readonly Dictionary<string, List<ClassModel>> extendsToClasses;
2019
readonly Dictionary<string, TreeNode> typeToNode = new Dictionary<string, TreeNode>();
2120

@@ -65,31 +64,31 @@ public ClassHierarchyForm([NotNull] ClassModel model, [NotNull] Settings setting
6564
Font = PluginBase.Settings.DefaultFont;
6665
InitializeComponent();
6766
if (settings.HierarchyExplorerSize.Width > MinimumSize.Width) Size = settings.HierarchyExplorerSize;
68-
defaultNodeBrush = new SolidBrush(tree.BackColor);
6967
extendsToClasses = GetAllProjectExtendsClasses();
7068
InitializeTree();
69+
InitializeTheme();
7170
RefreshTree();
7271
}
7372

7473
[CanBeNull]
7574
public TypeNode SelectedNode => tree.SelectedNode as TypeNode;
7675

77-
protected override void Dispose(bool disposing)
78-
{
79-
if (disposing)
80-
{
81-
defaultNodeBrush?.Dispose();
82-
components?.Dispose();
83-
}
84-
base.Dispose(disposing);
85-
}
86-
8776
void InitializeTree()
8877
{
8978
tree.ImageList = ASContext.Panel.TreeIcons;
9079
tree.ItemHeight = tree.ImageList.ImageSize.Height;
9180
}
9281

82+
void InitializeTheme()
83+
{
84+
input.BackColor = PluginBase.MainForm.GetThemeColor("TextBox.BackColor", SystemColors.Window);
85+
input.ForeColor = PluginBase.MainForm.GetThemeColor("TextBox.ForeColor", SystemColors.WindowText);
86+
tree.BackColor = PluginBase.MainForm.GetThemeColor("TreeView.BackColor", SystemColors.Window);
87+
tree.ForeColor = PluginBase.MainForm.GetThemeColor("TreeView.ForeColor", SystemColors.WindowText);
88+
BackColor = PluginBase.MainForm.GetThemeColor("TreeView.BackColor", SystemColors.Window);
89+
ForeColor = PluginBase.MainForm.GetThemeColor("TreeView.ForeColor", SystemColors.WindowText);
90+
}
91+
9392
void RefreshTree()
9493
{
9594
tree.BeginUpdate();
@@ -253,20 +252,20 @@ protected override void OnTreeNodeMouseClick(object sender, TreeNodeMouseClickEv
253252
void OnTreeDrawNode(object sender, DrawTreeNodeEventArgs e)
254253
{
255254
var node = (ClassHierarchyNode) e.Node;
256-
var fillBrush = defaultNodeBrush;
257-
var drawBrush = Brushes.Black;
255+
var fillBrush = PluginBase.MainForm.GetThemeColor("TreeView.BackColor", SystemColors.Window);
256+
var textBrush = PluginBase.MainForm.GetThemeColor("TreeView.ForeColor", SystemColors.WindowText);
258257
if (node.Enabled)
259258
{
260259
if ((e.State & TreeNodeStates.Selected) > 0)
261260
{
262-
fillBrush = SelectedNodeBrush;
263-
drawBrush = Brushes.White;
261+
fillBrush = PluginBase.MainForm.GetThemeColor("TreeView.Highlight", SystemColors.Highlight);
262+
textBrush = PluginBase.MainForm.GetThemeColor("TreeView.HighlightText", SystemColors.HighlightText);
264263
}
265264
}
266-
else drawBrush = Brushes.DimGray;
265+
else textBrush = Color.DimGray;
267266
var bounds = e.Bounds;
268-
e.Graphics.FillRectangle(fillBrush, bounds.X, bounds.Y, tree.Width - bounds.X, tree.ItemHeight);
269-
e.Graphics.DrawString(e.Node.Text, e.Node.NodeFont ?? tree.Font, drawBrush, e.Bounds.Left, e.Bounds.Top, StringFormat.GenericDefault);
267+
e.Graphics.FillRectangle(new SolidBrush(fillBrush), bounds.X, bounds.Y, tree.Width - bounds.X, tree.ItemHeight);
268+
e.Graphics.DrawString(e.Node.Text, e.Node.NodeFont ?? tree.Font, new SolidBrush(textBrush), e.Bounds.Left, e.Bounds.Top, StringFormat.GenericDefault);
270269
}
271270

272271
void OnInputTextChanged(object sender, EventArgs e)

QuickNavigate/Forms/ClassModelExplorerForm.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ public class ClassModelExplorerForm : Form
1919
public event ShowInHandler ShowInFileExplorer;
2020
protected readonly Settings Settings;
2121
protected readonly ContextMenu InputEmptyContextMenu = new ContextMenu();
22-
protected readonly Brush SelectedNodeBrush = new SolidBrush(SystemColors.ControlDarkDark);
2322

2423
public ClassModelExplorerForm(Settings settings)
2524
{
@@ -31,7 +30,6 @@ protected override void Dispose(bool disposing)
3130
{
3231
if (disposing)
3332
{
34-
SelectedNodeBrush.Dispose();
3533
InputEmptyContextMenu.Dispose();
3634
}
3735
base.Dispose(disposing);

QuickNavigate/Forms/OpenRecentFilesForm.Designer.cs

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

QuickNavigate/Forms/OpenRecentFilesForm.cs

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.Drawing;
34
using System.IO;
45
using System.Linq;
56
using System.Windows.Forms;
@@ -25,11 +26,12 @@ public OpenRecentFilesForm([NotNull] Settings settings)
2526
this.settings = settings;
2627
Font = PluginBase.Settings.DefaultFont;
2728
InitializeComponent();
28-
tree.ItemHeight = tree.Font.Height;
2929
if (settings.RecentFilesSize.Width > MinimumSize.Width) Size = settings.RecentFilesSize;
3030
recentFiles = PluginBase.MainForm.Settings.PreviousDocuments.Where(File.Exists).ToList();
3131
openedFiles = FormHelper.FilterOpenedFiles(recentFiles);
3232
recentFiles.RemoveAll(openedFiles.Contains);
33+
InitializeTree();
34+
InitializeTheme();
3335
RefreshTree();
3436
}
3537

@@ -47,6 +49,25 @@ where item.ToString() != settings.ItemSpacer
4749
}
4850
}
4951

52+
void InitializeTree()
53+
{
54+
tree.ItemHeight = tree.Font.Height;
55+
}
56+
57+
void InitializeTheme()
58+
{
59+
input.BackColor = PluginBase.MainForm.GetThemeColor("TextBox.BackColor", SystemColors.Window);
60+
input.ForeColor = PluginBase.MainForm.GetThemeColor("TextBox.ForeColor", SystemColors.WindowText);
61+
tree.BackColor = PluginBase.MainForm.GetThemeColor("TreeView.BackColor", SystemColors.Window);
62+
tree.ForeColor = PluginBase.MainForm.GetThemeColor("TreeView.ForeColor", SystemColors.WindowText);
63+
open.BackColor = PluginBase.MainForm.GetThemeColor("TreeView.BackColor", SystemColors.Window);
64+
open.ForeColor = PluginBase.MainForm.GetThemeColor("TreeView.ForeColor", SystemColors.WindowText);
65+
cancel.BackColor = PluginBase.MainForm.GetThemeColor("TreeView.BackColor", SystemColors.Window);
66+
cancel.ForeColor = PluginBase.MainForm.GetThemeColor("TreeView.ForeColor", SystemColors.WindowText);
67+
BackColor = PluginBase.MainForm.GetThemeColor("TreeView.BackColor", SystemColors.Window);
68+
ForeColor = PluginBase.MainForm.GetThemeColor("TreeView.ForeColor", SystemColors.WindowText);
69+
}
70+
5071
void RefreshTree()
5172
{
5273
tree.BeginUpdate();

QuickNavigate/Forms/OpenRecentProjectsForm.Designer.cs

Lines changed: 2 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

QuickNavigate/Forms/OpenRecentProjectsForm.cs

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,15 @@ public sealed partial class OpenRecentProjectsForm : Form
1515
{
1616
[NotNull] readonly Settings settings;
1717
[NotNull] [ItemNotNull] readonly List<string> recentProjects = ProjectManager.PluginMain.Settings.RecentProjects.Where(File.Exists).ToList();
18-
[NotNull] readonly Brush defaultNodeBrush;
19-
[NotNull] readonly Brush selectedNodeBrush = new SolidBrush(SystemColors.ControlDarkDark);
20-
18+
2119
public OpenRecentProjectsForm([NotNull] Settings settings)
2220
{
2321
this.settings = settings;
2422
Font = PluginBase.Settings.DefaultFont;
2523
InitializeComponent();
26-
InitializeTree();
27-
defaultNodeBrush = new SolidBrush(tree.BackColor);
2824
if (settings.RecentProjectsSize.Width > MinimumSize.Width) Size = settings.RecentProjectsSize;
25+
InitializeTree();
26+
InitializeTheme();
2927
RefrestTree();
3028
}
3129

@@ -43,6 +41,20 @@ void InitializeTree()
4341
tree.ItemHeight = tree.ImageList.ImageSize.Height;
4442
}
4543

44+
void InitializeTheme()
45+
{
46+
input.BackColor = PluginBase.MainForm.GetThemeColor("TextBox.BackColor", SystemColors.Window);
47+
input.ForeColor = PluginBase.MainForm.GetThemeColor("TextBox.ForeColor", SystemColors.WindowText);
48+
tree.BackColor = PluginBase.MainForm.GetThemeColor("TreeView.BackColor", SystemColors.Window);
49+
tree.ForeColor = PluginBase.MainForm.GetThemeColor("TreeView.ForeColor", SystemColors.WindowText);
50+
open.BackColor = PluginBase.MainForm.GetThemeColor("TreeView.BackColor", SystemColors.Window);
51+
open.ForeColor = PluginBase.MainForm.GetThemeColor("TreeView.ForeColor", SystemColors.WindowText);
52+
cancel.BackColor = PluginBase.MainForm.GetThemeColor("TreeView.BackColor", SystemColors.Window);
53+
cancel.ForeColor = PluginBase.MainForm.GetThemeColor("TreeView.ForeColor", SystemColors.WindowText);
54+
BackColor = PluginBase.MainForm.GetThemeColor("TreeView.BackColor", SystemColors.Window);
55+
ForeColor = PluginBase.MainForm.GetThemeColor("TreeView.ForeColor", SystemColors.WindowText);
56+
}
57+
4658
void RefrestTree()
4759
{
4860
if (recentProjects.Count == 0) return;
@@ -131,23 +143,23 @@ void OnInputKeyDown(object sender, KeyEventArgs e)
131143

132144
void OnTreeDrawNode(object sender, DrawTreeNodeEventArgs e)
133145
{
134-
var fillBrush = defaultNodeBrush;
135-
var textBrush = Brushes.Black;
146+
var fillBrush = PluginBase.MainForm.GetThemeColor("TreeView.BackColor", SystemColors.Window);
147+
var textBrush = PluginBase.MainForm.GetThemeColor("TreeView.ForeColor", SystemColors.WindowText);
136148
var moduleBrush = Brushes.DimGray;
137149
if ((e.State & TreeNodeStates.Selected) > 0)
138150
{
139-
fillBrush = selectedNodeBrush;
140-
textBrush = Brushes.White;
151+
fillBrush = PluginBase.MainForm.GetThemeColor("TreeView.Highlight", SystemColors.Highlight);
152+
textBrush = PluginBase.MainForm.GetThemeColor("TreeView.HighlightText", SystemColors.HighlightText);
141153
moduleBrush = Brushes.LightGray;
142154
}
143155
var bounds = e.Bounds;
144156
var text = Path.GetFileNameWithoutExtension(e.Node.Text);
145157
float x = bounds.X;
146158
var itemWidth = tree.Width - x;
147159
var graphics = e.Graphics;
148-
graphics.FillRectangle(fillBrush, x, bounds.Y, itemWidth, tree.ItemHeight);
160+
graphics.FillRectangle(new SolidBrush(fillBrush), x, bounds.Y, itemWidth, tree.ItemHeight);
149161
var font = tree.Font;
150-
graphics.DrawString(text, font, textBrush, x, bounds.Top, StringFormat.GenericDefault);
162+
graphics.DrawString(text, font, new SolidBrush(textBrush), x, bounds.Top, StringFormat.GenericDefault);
151163
var path = Path.GetDirectoryName(e.Node.Text);
152164
if (string.IsNullOrEmpty(path)) return;
153165
x += graphics.MeasureString(text, font).Width;

QuickNavigate/Forms/QuickOutlineForm.Designer.cs

Lines changed: 13 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)