diff --git a/.vs/ShiftOS/v15/sqlite3/storage.ide b/.vs/ShiftOS/v15/sqlite3/storage.ide index edd4557..63759d8 100644 Binary files a/.vs/ShiftOS/v15/sqlite3/storage.ide and b/.vs/ShiftOS/v15/sqlite3/storage.ide differ diff --git a/ShiftOS.Engine/Properties/Resources.Designer.cs b/ShiftOS.Engine/Properties/Resources.Designer.cs index 845fe06..f42976a 100644 --- a/ShiftOS.Engine/Properties/Resources.Designer.cs +++ b/ShiftOS.Engine/Properties/Resources.Designer.cs @@ -59,5 +59,15 @@ namespace ShiftOS.Engine.Properties { resourceCulture = value; } } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap nullIcon { + get { + object obj = ResourceManager.GetObject("nullIcon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } } } diff --git a/ShiftOS.Engine/Properties/Resources.resx b/ShiftOS.Engine/Properties/Resources.resx index 1af7de1..45ddded 100644 --- a/ShiftOS.Engine/Properties/Resources.resx +++ b/ShiftOS.Engine/Properties/Resources.resx @@ -117,4 +117,8 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\nullIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/ShiftOS.Engine/Resources/nullIcon.png b/ShiftOS.Engine/Resources/nullIcon.png new file mode 100644 index 0000000..8bc5866 Binary files /dev/null and b/ShiftOS.Engine/Resources/nullIcon.png differ diff --git a/ShiftOS.Engine/ShiftOS.Engine.csproj b/ShiftOS.Engine/ShiftOS.Engine.csproj index 7a7a0b1..6045cb5 100644 --- a/ShiftOS.Engine/ShiftOS.Engine.csproj +++ b/ShiftOS.Engine/ShiftOS.Engine.csproj @@ -65,5 +65,8 @@ ShiftWindow.cs + + + \ No newline at end of file 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; + // Icon Setup + if (icon == null) + { + app.programIcon.Hide(); + 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; - - // Check if icon is null (NYI) - /* - if (icon == null) - { - app.programIcon.Hide(); - app.programIcon.Image = Engine.Properties.Resources.nullIcon; - app.Title.Location = new Point(2, 1); - } - else app.programIcon.Image = icon; - */ 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(); + } + } } diff --git a/ShiftOS.Main/ShiftOS.Main.csproj b/ShiftOS.Main/ShiftOS.Main.csproj index 1343d99..77bf889 100644 --- a/ShiftOS.Main/ShiftOS.Main.csproj +++ b/ShiftOS.Main/ShiftOS.Main.csproj @@ -52,16 +52,16 @@ - + UserControl - + ShiftDemo.cs - + Form - + TestForm.cs @@ -77,10 +77,10 @@ Resources.resx True - + ShiftDemo.cs - + TestForm.cs diff --git a/ShiftOS.Main/ShiftDemo.Designer.cs b/ShiftOS.Main/ShiftOS/Apps/ShiftDemo.Designer.cs similarity index 100% rename from ShiftOS.Main/ShiftDemo.Designer.cs rename to ShiftOS.Main/ShiftOS/Apps/ShiftDemo.Designer.cs diff --git a/ShiftOS.Main/ShiftDemo.cs b/ShiftOS.Main/ShiftOS/Apps/ShiftDemo.cs similarity index 100% rename from ShiftOS.Main/ShiftDemo.cs rename to ShiftOS.Main/ShiftOS/Apps/ShiftDemo.cs diff --git a/ShiftOS.Main/ShiftDemo.resx b/ShiftOS.Main/ShiftOS/Apps/ShiftDemo.resx similarity index 100% rename from ShiftOS.Main/ShiftDemo.resx rename to ShiftOS.Main/ShiftOS/Apps/ShiftDemo.resx diff --git a/ShiftOS.Main/TestForm.Designer.cs b/ShiftOS.Main/ShiftOS/Apps/TestForm.Designer.cs similarity index 100% rename from ShiftOS.Main/TestForm.Designer.cs rename to ShiftOS.Main/ShiftOS/Apps/TestForm.Designer.cs diff --git a/ShiftOS.Main/TestForm.cs b/ShiftOS.Main/ShiftOS/Apps/TestForm.cs similarity index 80% rename from ShiftOS.Main/TestForm.cs rename to ShiftOS.Main/ShiftOS/Apps/TestForm.cs index e1f926f..85be4a3 100644 --- a/ShiftOS.Main/TestForm.cs +++ b/ShiftOS.Main/ShiftOS/Apps/TestForm.cs @@ -7,7 +7,6 @@ namespace ShiftOS.Main public partial class TestForm : Form { public ShiftWM shiftWM = new ShiftWM(); - public ShiftDemo demo = new ShiftDemo(); public TestForm() { @@ -16,8 +15,9 @@ namespace ShiftOS.Main private void Button1_Click(object sender, EventArgs e) { + ShiftDemo demo = new ShiftDemo(); demo.label1.Text = textBox2.Text; - shiftWM.Init(demo, textBox1.Text); + shiftWM.Init(demo, textBox1.Text, null); } } } diff --git a/ShiftOS.Main/TestForm.resx b/ShiftOS.Main/ShiftOS/Apps/TestForm.resx similarity index 100% rename from ShiftOS.Main/TestForm.resx rename to ShiftOS.Main/ShiftOS/Apps/TestForm.resx diff --git a/ShiftOS.sln b/ShiftOS.sln index 8277ee4..cd5c50e 100644 --- a/ShiftOS.sln +++ b/ShiftOS.sln @@ -3,13 +3,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 VisualStudioVersion = 15.0.26730.12 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ShiftOS.Old", "ShiftOS\ShiftOS.Old.vbproj", "{7DCD55AB-F67D-4C43-9BFB-74ED8AD0FDCF}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{B35F8DA7-BCB0-4558-A9BE-673F44572E21}" - ProjectSection(SolutionItems) = preProject - ShiftOS\API.vb = ShiftOS\API.vb - EndProjectSection -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ShiftOS.Main", "ShiftOS.Main\ShiftOS.Main.csproj", "{61A6E932-3129-4D58-AC79-F69D6E0B3054}" ProjectSection(ProjectDependencies) = postProject {604EB1D7-998F-4A52-90A6-67F3DC3203D2} = {604EB1D7-998F-4A52-90A6-67F3DC3203D2} @@ -23,10 +16,6 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7DCD55AB-F67D-4C43-9BFB-74ED8AD0FDCF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7DCD55AB-F67D-4C43-9BFB-74ED8AD0FDCF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7DCD55AB-F67D-4C43-9BFB-74ED8AD0FDCF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7DCD55AB-F67D-4C43-9BFB-74ED8AD0FDCF}.Release|Any CPU.Build.0 = Release|Any CPU {61A6E932-3129-4D58-AC79-F69D6E0B3054}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {61A6E932-3129-4D58-AC79-F69D6E0B3054}.Debug|Any CPU.Build.0 = Debug|Any CPU {61A6E932-3129-4D58-AC79-F69D6E0B3054}.Release|Any CPU.ActiveCfg = Release|Any CPU