aboutsummaryrefslogtreecommitdiff
path: root/ShiftOS.Engine/WindowManager/ShiftWindow.cs
diff options
context:
space:
mode:
Diffstat (limited to 'ShiftOS.Engine/WindowManager/ShiftWindow.cs')
-rw-r--r--ShiftOS.Engine/WindowManager/ShiftWindow.cs108
1 files changed, 64 insertions, 44 deletions
diff --git a/ShiftOS.Engine/WindowManager/ShiftWindow.cs b/ShiftOS.Engine/WindowManager/ShiftWindow.cs
index a004aa6..a41786a 100644
--- a/ShiftOS.Engine/WindowManager/ShiftWindow.cs
+++ b/ShiftOS.Engine/WindowManager/ShiftWindow.cs
@@ -1,11 +1,6 @@
using System;
-using System.Collections.Generic;
-using System.ComponentModel;
using System.Drawing;
-using System.Data;
using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
using System.Windows.Forms;
using System.Runtime.InteropServices;
@@ -13,61 +8,86 @@ namespace ShiftOS.Engine.WindowManager
{
public partial class ShiftWindow : Form
{
- public ShiftWindow()
+ public uint Id { get; private set; }
+
+ public UserControl ChildControl { get; set; }
+
+ public ShiftWindow()
{
InitializeComponent();
}
- public const int WM_NCLBUTTONDOWN = 0xA1;
- public const int HT_CAPTION = 0x2;
+
+ public uint SetId()
+ {
+ do
+ {
+ Id = (uint)Tools.Rnd.Next(100000, 999999);
+ }
+ while (ShiftWM.Windows.FirstOrDefault(w => w.Id == Id) != null);
+
+ return Id;
+ }
+
+ private const int WM_NCLBUTTONDOWN = 0xA1;
+ private const int HT_CAPTION = 0x2;
[DllImportAttribute("user32.dll")]
- public static extern int SendMessage(IntPtr hWnd,
+ private static extern int SendMessage(IntPtr hWnd,
int Msg, int wParam, int lParam);
+
[DllImportAttribute("user32.dll")]
- public static extern bool ReleaseCapture();
+ private static extern bool ReleaseCapture();
private void Programtopbar_drag(object sender, MouseEventArgs e)
{
- if (e.Button == MouseButtons.Left)
- {
- ReleaseCapture();
- SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
- }
- }
+ if (e.Button != MouseButtons.Left) return;
- private void closebutton_Click(object sender, EventArgs e)
- {
- this.Close();
+ ReleaseCapture();
+ SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
- private void closebutton_MouseEnter(object sender, EventArgs e)
- {
- closebutton.BackColor = Color.Gray;
- }
+ private void closebutton_Click(object sender, EventArgs e)
+ => this.Close();
- private void closebutton_MouseLeave(object sender, EventArgs e)
- {
- closebutton.BackColor = Color.Black;
- }
+ private void closebutton_MouseEnter(object sender, EventArgs e)
+ => closebutton.BackColor = Color.Gray;
- private void maximizebutton_MouseEnter(object sender, EventArgs e)
- {
- maximizebutton.BackColor = Color.Gray;
- }
+ private void closebutton_MouseLeave(object sender, EventArgs e)
+ => closebutton.BackColor = Color.Black;
- private void maximizebutton_MouseLeave(object sender, EventArgs e)
- {
- maximizebutton.BackColor = Color.Black;
- }
+ private void maximizebutton_MouseEnter(object sender, EventArgs e)
+ => maximizebutton.BackColor = Color.Gray;
- private void minimizebutton_MouseEnter(object sender, EventArgs e)
- {
- minimizebutton.BackColor = Color.Gray;
- }
+ private void maximizebutton_MouseLeave(object sender, EventArgs e)
+ => maximizebutton.BackColor = Color.Black;
- private void minimizebutton_MouseLeave(object sender, EventArgs e)
- {
- minimizebutton.BackColor = Color.Black;
- }
- }
+ private void minimizebutton_MouseEnter(object sender, EventArgs e)
+ => minimizebutton.BackColor = Color.Gray;
+
+ private void minimizebutton_MouseLeave(object sender, EventArgs e)
+ => minimizebutton.BackColor = Color.Black;
+
+ private void closebutton_MouseDown(object sender, MouseEventArgs e)
+ => closebutton.BackColor = Color.Black;
+
+ private void maximizebutton_MouseDown(object sender, MouseEventArgs e)
+ => maximizebutton.BackColor = Color.Black;
+
+ private void minimizebutton_MouseDown(object sender, MouseEventArgs e)
+ => minimizebutton.BackColor = Color.Black;
+
+ private void minimizebutton_MouseUp(object sender, MouseEventArgs e)
+ => minimizebutton.BackColor = Color.Gray;
+
+ private void maximizebutton_MouseUp(object sender, MouseEventArgs e)
+ => maximizebutton.BackColor = Color.Gray;
+
+ private void closebutton_MouseUp(object sender, MouseEventArgs e)
+ => closebutton.BackColor = Color.Gray;
+ }
+
+ public interface IShiftWindowExtensions
+ {
+ void OnLoaded(ShiftWindow window);
+ }
}