diff options
| author | IBMPCDOS5 <[email protected]> | 2017-09-24 15:10:21 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2017-09-24 15:10:21 -0500 |
| commit | 554a97739a89345613e5ca6fcdb9022ef80e665e (patch) | |
| tree | 035533bf35faa4c1480adc8ef033fd8d9c65c8c5 /ShiftOS.Engine/WindowManager | |
| parent | 061ce54709db3157ae3366607420639d34942c7e (diff) | |
| parent | 0a552e395477d2bb4c90e12624d11b28545a4933 (diff) | |
| download | shiftos-rewind-554a97739a89345613e5ca6fcdb9022ef80e665e.tar.gz shiftos-rewind-554a97739a89345613e5ca6fcdb9022ef80e665e.tar.bz2 shiftos-rewind-554a97739a89345613e5ca6fcdb9022ef80e665e.zip | |
Merge pull request #5 from AShifter/master
Update WM
Diffstat (limited to 'ShiftOS.Engine/WindowManager')
| -rw-r--r-- | ShiftOS.Engine/WindowManager/ShiftWM.cs | 25 | ||||
| -rw-r--r-- | ShiftOS.Engine/WindowManager/ShiftWindow.Designer.cs | 25 | ||||
| -rw-r--r-- | ShiftOS.Engine/WindowManager/ShiftWindow.cs | 24 |
3 files changed, 49 insertions, 25 deletions
diff --git a/ShiftOS.Engine/WindowManager/ShiftWM.cs b/ShiftOS.Engine/WindowManager/ShiftWM.cs index 373a87b..d30224c 100644 --- a/ShiftOS.Engine/WindowManager/ShiftWM.cs +++ b/ShiftOS.Engine/WindowManager/ShiftWM.cs @@ -1,12 +1,11 @@ -using System.Windows.Forms; +using System.Drawing; +using System.Windows.Forms; namespace ShiftOS.Engine.WindowManager { public class ShiftWM { - public static System.Drawing.Text.PrivateFontCollection pfc = new System.Drawing.Text.PrivateFontCollection(); - - public ShiftWindow Init(UserControl content, string title, bool ShowAsInfobox = false, bool resize = true) + public ShiftWindow Init(UserControl content, string title, Image icon, bool ShowAsInfobox = false, bool resize = true) { // Setup Window ShiftWindow app = new ShiftWindow(); @@ -15,21 +14,19 @@ namespace ShiftOS.Engine.WindowManager app.Width = content.Width + app.left.Width + app.right.Width; app.Height = content.Height + app.bottom.Height + app.top.Height; - // Setup UC - content.Parent = app.programContent; - content.BringToFront(); - content.Dock = DockStyle.Fill; - - // Check if icon is null (NYI) - /* + // Icon Setup if (icon == null) { app.programIcon.Hide(); - app.programIcon.Image = Engine.Properties.Resources.nullIcon; - app.Title.Location = new Point(2, 1); + app.programIcon.Image = Properties.Resources.nullIcon; + app.Title.Location = new Point(2, 7); } else app.programIcon.Image = icon; - */ + + // Setup UC + content.Parent = app.programContent; + content.BringToFront(); + content.Dock = DockStyle.Fill; app.Show(); return app; } diff --git a/ShiftOS.Engine/WindowManager/ShiftWindow.Designer.cs b/ShiftOS.Engine/WindowManager/ShiftWindow.Designer.cs index dacc931..197c659 100644 --- a/ShiftOS.Engine/WindowManager/ShiftWindow.Designer.cs +++ b/ShiftOS.Engine/WindowManager/ShiftWindow.Designer.cs @@ -29,6 +29,7 @@ private void InitializeComponent() { this.program = new System.Windows.Forms.Panel(); + this.programContent = new System.Windows.Forms.Panel(); this.bottomleftcorner = new System.Windows.Forms.Panel(); this.toprightcorner = new System.Windows.Forms.Panel(); this.bottomrightcorner = new System.Windows.Forms.Panel(); @@ -42,7 +43,6 @@ this.closebutton = new System.Windows.Forms.PictureBox(); this.right = new System.Windows.Forms.Panel(); this.left = new System.Windows.Forms.Panel(); - this.programContent = new System.Windows.Forms.Panel(); this.program.SuspendLayout(); this.top.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.programIcon)).BeginInit(); @@ -69,6 +69,14 @@ this.program.Size = new System.Drawing.Size(284, 261); this.program.TabIndex = 11; // + // programContent + // + this.programContent.Dock = System.Windows.Forms.DockStyle.Fill; + this.programContent.Location = new System.Drawing.Point(4, 30); + this.programContent.Name = "programContent"; + this.programContent.Size = new System.Drawing.Size(276, 227); + this.programContent.TabIndex = 11; + // // bottomleftcorner // this.bottomleftcorner.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); @@ -130,6 +138,7 @@ this.top.Name = "top"; this.top.Size = new System.Drawing.Size(276, 30); this.top.TabIndex = 0; + this.top.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Programtopbar_drag); // // programIcon // @@ -166,13 +175,14 @@ // this.Title.AutoSize = true; this.Title.BackColor = System.Drawing.Color.Transparent; - this.Title.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Title.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.Title.ForeColor = System.Drawing.Color.White; this.Title.Location = new System.Drawing.Point(25, 8); this.Title.Name = "Title"; - this.Title.Size = new System.Drawing.Size(106, 14); + this.Title.Size = new System.Drawing.Size(98, 13); this.Title.TabIndex = 3; this.Title.Text = "Application Title"; + this.Title.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Programtopbar_drag); // // closebutton // @@ -183,6 +193,7 @@ this.closebutton.Size = new System.Drawing.Size(21, 21); this.closebutton.TabIndex = 4; this.closebutton.TabStop = false; + this.closebutton.Click += new System.EventHandler(this.closebutton_Click); // // right // @@ -203,14 +214,6 @@ this.left.Size = new System.Drawing.Size(4, 261); this.left.TabIndex = 1; // - // programContent - // - this.programContent.Dock = System.Windows.Forms.DockStyle.Fill; - this.programContent.Location = new System.Drawing.Point(4, 30); - this.programContent.Name = "programContent"; - this.programContent.Size = new System.Drawing.Size(276, 227); - this.programContent.TabIndex = 11; - // // ShiftWindow // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); diff --git a/ShiftOS.Engine/WindowManager/ShiftWindow.cs b/ShiftOS.Engine/WindowManager/ShiftWindow.cs index 6f9c90d..9caaa6c 100644 --- a/ShiftOS.Engine/WindowManager/ShiftWindow.cs +++ b/ShiftOS.Engine/WindowManager/ShiftWindow.cs @@ -7,6 +7,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; +using System.Runtime.InteropServices; namespace ShiftOS.Engine.WindowManager { @@ -16,5 +17,28 @@ namespace ShiftOS.Engine.WindowManager { InitializeComponent(); } + public const int WM_NCLBUTTONDOWN = 0xA1; + public const int HT_CAPTION = 0x2; + + [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) + { + ReleaseCapture(); + SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0); + } + } + + private void closebutton_Click(object sender, EventArgs e) + { + this.Close(); + } + } } |
