diff options
| author | lempamo <[email protected]> | 2017-08-23 13:38:40 -0400 |
|---|---|---|
| committer | lempamo <[email protected]> | 2017-08-23 13:38:40 -0400 |
| commit | 3306d36ecbc024775972e5cf7971b2a7a70671d0 (patch) | |
| tree | 0a79e67b6723a8c75ffd66c7828bdd0ebb1bf74d /Histacom2.Engine/Template/WinClassic.cs | |
| parent | 99fef5c57360f07259fc86f433bed8a9ab59c48e (diff) | |
| download | histacom2-3306d36ecbc024775972e5cf7971b2a7a70671d0.tar.gz histacom2-3306d36ecbc024775972e5cf7971b2a7a70671d0.tar.bz2 histacom2-3306d36ecbc024775972e5cf7971b2a7a70671d0.zip | |
Renaming the game!
Diffstat (limited to 'Histacom2.Engine/Template/WinClassic.cs')
| -rw-r--r-- | Histacom2.Engine/Template/WinClassic.cs | 235 |
1 files changed, 235 insertions, 0 deletions
diff --git a/Histacom2.Engine/Template/WinClassic.cs b/Histacom2.Engine/Template/WinClassic.cs new file mode 100644 index 0000000..4c495bc --- /dev/null +++ b/Histacom2.Engine/Template/WinClassic.cs @@ -0,0 +1,235 @@ +using System; +using System.Drawing; +using System.Runtime.InteropServices; +using System.Windows.Forms; + +namespace Histacom2.Engine.Template +{ + public partial class WinClassic : Form + { + public WinClassic() + { + InitializeComponent(); + DoubleBuffered = true; + } + + public Font fnt; + + public bool resizable = true; + public bool closeDisabled = false; + public bool isActive = true; + + public const int WM_NCLBUTTONDOWN = 0xA1; + public const int WM_SYSCOMMAND = 0x0112; + public const int HT_CAPTION = 0x2; + + private const int + HTLEFT = 10, + HTRIGHT = 11, + HTTOP = 12, + HTTOPLEFT = 13, + HTTOPRIGHT = 14, + HTBOTTOM = 15, + HTBOTTOMLEFT = 16, + HTBOTTOMRIGHT = 17; + + [DllImportAttribute("user32.dll")] + public static extern int SendMessage(IntPtr hWnd, + int Msg, int wParam, int lParam); + [DllImportAttribute("user32.dll")] + public static extern bool ReleaseCapture(); + + private void Programtopbar_drag(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Left && max == false) + { + ReleaseCapture(); + SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0); + } + } + + private void closebutton_Click(object sender, EventArgs e) + { + if (!closeDisabled) this.Close(); + } + + private void WinClassic_Activated(object sender, EventArgs e) + { + isActive = true; + programtopbar.BackColor = SaveSystem.currentTheme.activeTitleBarColor; + Title.ForeColor = SaveSystem.currentTheme.activeTitleTextColor; + } + + private void WinClassic_Deactivate(object sender, EventArgs e) + { + isActive = false; + programtopbar.BackColor = SaveSystem.currentTheme.inactiveTitleBarColor; + Title.ForeColor = SaveSystem.currentTheme.inactiveTitleTextColor; + } + + + private void right_MouseMove(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Left) + { + if (resizable) this.Size = new Size(MousePosition.X - this.Location.X, this.Size.Height); + } + } + + private void left_MouseMove(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Left) + { + if (resizable) this.Width = ((this.Width + this.Location.X) - Cursor.Position.X); + if (resizable)this.Location = new Point(Cursor.Position.X, this.Location.Y); + } + } + + private void bottom_MouseMove(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Left) + { + if (resizable) this.Size = new Size(this.Size.Width, MousePosition.Y - this.Location.Y); + } + } + + private void bottomrightcorner_MouseMove(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Left) + { + if (resizable) this.Size = new Size(MousePosition.X - this.Location.X, MousePosition.Y - this.Location.Y); + } + } + + private void bottomleftcorner_MouseMove(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Left) + { + if (resizable) this.Width = ((this.Width + this.Location.X) - Cursor.Position.X); + if (resizable) this.Height = (Cursor.Position.Y - this.Location.Y); + if (resizable) this.Location = new Point(Cursor.Position.X, this.Location.Y); + } + } + + private void topleftcorner_MouseMove(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Left) + { + if (resizable) this.Width = ((this.Width + this.Location.X) - Cursor.Position.X); + if (resizable) this.Location = new Point(Cursor.Position.X, this.Location.Y); + if (resizable) this.Height = ((this.Height + this.Location.Y) - Cursor.Position.Y); + if (resizable) this.Location = new Point(this.Location.X, Cursor.Position.Y); + } + } + + private void top_MouseMove(object sender, MouseEventArgs e) + { + if(e.Button == MouseButtons.Left) + { + if(resizable) this.Height = ((this.Height + this.Location.Y) - Cursor.Position.Y); + if(resizable) this.Location = new Point(this.Location.X, Cursor.Position.Y); + } + } + + private void toprightcorner_MouseMove(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Left) + { + if (resizable) this.Width = (Cursor.Position.X - this.Location.X); + if (resizable) this.Height = ((this.Location.Y - Cursor.Position.Y) + this.Height); + if (resizable) this.Location = new Point(this.Location.X, Cursor.Position.Y); + } + } + + public bool max = false; + + private void maximizebutton_Click(object sender, EventArgs e) + { + if (max == false) + { + this.right.Hide(); + this.left.Hide(); + this.bottom.Hide(); + this.top.Hide(); + this.bottomleftcorner.Hide(); + this.bottomrightcorner.Hide(); + this.topleftcorner.Hide(); + this.toprightcorner.Hide(); + this.Dock = DockStyle.Fill; + this.WindowState = FormWindowState.Maximized; + max = true; + maximizebutton.Image = Engine.Properties.Resources.WinClassicRestore; + } + else + { + this.right.Show(); + this.left.Show(); + this.bottom.Show(); + this.top.Show(); + this.bottomleftcorner.Show(); + this.bottomrightcorner.Show(); + this.topleftcorner.Show(); + this.toprightcorner.Show(); + this.Dock = DockStyle.None; + this.WindowState = FormWindowState.Normal; + max = false; + maximizebutton.Image = Engine.Properties.Resources.WinClassicMax; + } + + } + + // The rest of this code will automatically style the buttons on the form! + + protected override void OnControlAdded(ControlEventArgs e) + { + base.OnControlAdded(e); + + if (e.Control.GetType() == typeof(Button)) + { + e.Control.MouseEnter += button_MouseEnter; + e.Control.MouseLeave += button_MouseLeave; + + ((Button)e.Control).FlatStyle = FlatStyle.Popup; + } + } + + protected override void OnControlRemoved(ControlEventArgs e) + { + base.OnControlRemoved(e); + + if (e.Control.GetType() == typeof(Button)) + { + e.Control.MouseEnter -= button_MouseEnter; + e.Control.MouseLeave -= button_MouseLeave; + } + } + + private void button_MouseEnter(object sender, EventArgs e) + { + var c = (Button)sender; + c.UseVisualStyleBackColor = false; + c.BackColor = Color.GhostWhite; + } + + private void button_MouseLeave(object sender, EventArgs e) + { + var c = (Button)sender; + c.UseVisualStyleBackColor = true; + } + + private void border_MouseDown(object sender, EventArgs e) + { + var cursor = this.PointToClient(Cursor.Position); + + if (topleftcorner.ClientRectangle.Contains(cursor)) SendMessage(Handle, WM_SYSCOMMAND, 0xF004, 0); + else if (toprightcorner.ClientRectangle.Contains(cursor)) SendMessage(Handle, WM_SYSCOMMAND, 0xF005, 0); + else if (bottomleftcorner.ClientRectangle.Contains(cursor)) SendMessage(Handle, WM_SYSCOMMAND, 0xF007, 0); + else if (bottomrightcorner.ClientRectangle.Contains(cursor)) SendMessage(Handle, WM_SYSCOMMAND, 0xF008, 0); + + else if (top.ClientRectangle.Contains(cursor)) SendMessage(Handle, WM_SYSCOMMAND, 0xF003, 0); + else if (left.ClientRectangle.Contains(cursor)) SendMessage(Handle, WM_SYSCOMMAND, 0xF001, 0); + else if (right.ClientRectangle.Contains(cursor)) SendMessage(Handle, WM_SYSCOMMAND, 0xF002, 0); + else if (bottom.ClientRectangle.Contains(cursor)) SendMessage(Handle, WM_SYSCOMMAND, 0xF006, 0); + } + } +} |
