From e4bb33426e4e1a3b5c5ef36866ef2947a7d4356d Mon Sep 17 00:00:00 2001 From: lempamo Date: Wed, 13 Sep 2017 11:13:17 -0400 Subject: start menu stuffs --- Histacom2.Engine/Histacom2.Engine.csproj | 3 ++ Histacom2.Engine/Theme.cs | 15 ++++++++ Histacom2.Engine/UI/ClassicStartMenuItem.cs | 57 +++++++++++++++++++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 Histacom2.Engine/UI/ClassicStartMenuItem.cs (limited to 'Histacom2.Engine') diff --git a/Histacom2.Engine/Histacom2.Engine.csproj b/Histacom2.Engine/Histacom2.Engine.csproj index 69a1b02..050ad0c 100644 --- a/Histacom2.Engine/Histacom2.Engine.csproj +++ b/Histacom2.Engine/Histacom2.Engine.csproj @@ -97,6 +97,9 @@ Component + + Component + Component diff --git a/Histacom2.Engine/Theme.cs b/Histacom2.Engine/Theme.cs index 8385062..2d4633f 100644 --- a/Histacom2.Engine/Theme.cs +++ b/Histacom2.Engine/Theme.cs @@ -31,6 +31,9 @@ namespace Histacom2.Engine public Color inactiveTitleBarColor { get; set; } public Color inactiveTitleTextColor { get; set; } + public Color selectedBackColor { get; set; } + public Color selectedTextColor { get; set; } + public Image defaultWallpaper { get; set; } public string themeName { get; set; } @@ -61,6 +64,9 @@ namespace Histacom2.Engine inactiveTitleBarColor = Color.Gray; inactiveTitleTextColor = Color.Silver; + selectedBackColor = Color.Navy; + selectedTextColor = Color.White; + defaultWallpaper = null; themeName = "default95"; } @@ -91,6 +97,9 @@ namespace Histacom2.Engine inactiveTitleBarColor = Color.Gray; inactiveTitleTextColor = Color.Silver; + selectedBackColor = Color.Navy; + selectedTextColor = Color.White; + defaultWallpaper = null; themeName = "default98"; } @@ -121,6 +130,9 @@ namespace Histacom2.Engine inactiveTitleBarColor = Color.FromArgb(72, 72, 72); inactiveTitleTextColor = Color.Gray; + selectedBackColor = Color.Teal; + selectedTextColor = Color.White; + defaultWallpaper = Properties.Resources.Win95PlusDangerousCreaturesWallpaper; themeName = "dangeranimals"; } @@ -147,6 +159,9 @@ namespace Histacom2.Engine inactiveTitleBarColor = Color.FromArgb(96, 168, 128); inactiveTitleTextColor = Color.FromArgb(216, 224, 216); + selectedBackColor = Color.FromArgb(248, 255, 160); + selectedTextColor = Color.Black; + defaultWallpaper = Properties.Resources.Win95PlusInsideComputerWallpaper; themeName = "insidepc"; } diff --git a/Histacom2.Engine/UI/ClassicStartMenuItem.cs b/Histacom2.Engine/UI/ClassicStartMenuItem.cs new file mode 100644 index 0000000..49aecd9 --- /dev/null +++ b/Histacom2.Engine/UI/ClassicStartMenuItem.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Histacom2.Engine.UI +{ + public class ClassicStartMenuItem : ToolStripMenuItem + { + public ClassicStartMenuItem() + { + + } + + protected override void OnPaint(PaintEventArgs e) + { + base.OnPaint(e); + if (SaveSystem.currentTheme != null) e.Graphics.Clear(SaveSystem.currentTheme.threeDObjectsColor); + else e.Graphics.Clear(BackColor); + if (Selected) + { + if (SaveSystem.currentTheme != null) e.Graphics.Clear(SaveSystem.currentTheme.selectedBackColor); + else e.Graphics.Clear(Color.Navy); + } + + e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit; + + StringFormat sf = new StringFormat(); + sf.HotkeyPrefix = System.Drawing.Text.HotkeyPrefix.Show; + + e.Graphics.DrawImage(Image, 0 + Padding.Left - Padding.Right, 0); + if (!Selected) { + e.Graphics.DrawString(Text, new Font("Microsoft Sans Serif", 8.25F, FontStyle.Regular), Brushes.Black, 38, 11, sf); + + if (DropDownItems.Count > 0) + { + e.Graphics.DrawPolygon(Pens.Black, new Point[] { new Point(121, 11), new Point(124, 14), new Point(121, 17) }); + e.Graphics.FillPolygon(Brushes.Black, new Point[] { new Point(121, 11), new Point(124, 14), new Point(121, 17) }); + } + } else + { + if (SaveSystem.currentTheme != null) + { + e.Graphics.DrawString(Text, new Font("Microsoft Sans Serif", 8.25F, FontStyle.Regular), new SolidBrush(SaveSystem.currentTheme.selectedTextColor), 38, 11, sf); + if (DropDownItems.Count > 0) + { + e.Graphics.DrawPolygon(new Pen(SaveSystem.currentTheme.selectedTextColor), new Point[] { new Point(121, 11), new Point(124, 14), new Point(121, 17) }); + e.Graphics.FillPolygon(new SolidBrush(SaveSystem.currentTheme.selectedTextColor), new Point[] { new Point(121, 11), new Point(124, 14), new Point(121, 17) }); + } + } + } + } + } +} -- cgit v1.2.3