mirror of
https://github.com/Alee14/shiftos-challenge.git
synced 2025-01-22 18:12:15 +00:00
add closing and rolling of windows, also dragging
This commit is contained in:
parent
211fbac215
commit
0f7902b802
5 changed files with 328 additions and 88 deletions
|
@ -16,7 +16,7 @@ namespace ShiftOS
|
||||||
private SystemContext CurrentSystem = null;
|
private SystemContext CurrentSystem = null;
|
||||||
private bool _inUnity = false;
|
private bool _inUnity = false;
|
||||||
private int _lastWorkspaceChildCount = -1;
|
private int _lastWorkspaceChildCount = -1;
|
||||||
|
|
||||||
public SystemContext GetCurrentSystem()
|
public SystemContext GetCurrentSystem()
|
||||||
{
|
{
|
||||||
return CurrentSystem;
|
return CurrentSystem;
|
||||||
|
@ -25,7 +25,6 @@ namespace ShiftOS
|
||||||
public Desktop(SystemContext InSystem)
|
public Desktop(SystemContext InSystem)
|
||||||
{
|
{
|
||||||
this.CurrentSystem = InSystem;
|
this.CurrentSystem = InSystem;
|
||||||
this.DoubleBuffered = true;
|
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
ResetAppLauncher();
|
ResetAppLauncher();
|
||||||
}
|
}
|
||||||
|
@ -70,7 +69,8 @@ namespace ShiftOS
|
||||||
// Otherwise, we get a wallpaper.
|
// Otherwise, we get a wallpaper.
|
||||||
if(skin.HasImage("desktopbackground"))
|
if(skin.HasImage("desktopbackground"))
|
||||||
{
|
{
|
||||||
this.BackgroundImage = skin.GetImage("desktopbackground");
|
if(this.BackgroundImage != skin.GetImage("desktopbackground"))
|
||||||
|
this.BackgroundImage = skin.GetImage("desktopbackground");
|
||||||
this.BackgroundImageLayout = skin.GetSkinData().desktopbackgroundlayout;
|
this.BackgroundImageLayout = skin.GetSkinData().desktopbackgroundlayout;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -86,7 +86,8 @@ namespace ShiftOS
|
||||||
// Set the desktop panel background
|
// Set the desktop panel background
|
||||||
if(skin.HasImage("desktoppanel"))
|
if(skin.HasImage("desktoppanel"))
|
||||||
{
|
{
|
||||||
DesktopPanel.BackgroundImage = skin.GetImage("desktoppanel");
|
if(DesktopPanel.BackgroundImage != skin.GetImage("desktoppanel"))
|
||||||
|
DesktopPanel.BackgroundImage = skin.GetImage("desktoppanel");
|
||||||
DesktopPanel.BackgroundImageLayout = skin.GetSkinData().desktoppanellayout;
|
DesktopPanel.BackgroundImageLayout = skin.GetSkinData().desktoppanellayout;
|
||||||
DesktopPanel.BackColor = Color.Transparent;
|
DesktopPanel.BackColor = Color.Transparent;
|
||||||
}
|
}
|
||||||
|
@ -125,7 +126,8 @@ namespace ShiftOS
|
||||||
if(skin.HasImage("panelclock"))
|
if(skin.HasImage("panelclock"))
|
||||||
{
|
{
|
||||||
TimePanel.BackColor = Color.Transparent;
|
TimePanel.BackColor = Color.Transparent;
|
||||||
TimePanel.BackgroundImage = skin.GetImage("panelclock");
|
if(TimePanel.BackgroundImage != skin.GetImage("panelclock"))
|
||||||
|
TimePanel.BackgroundImage = skin.GetImage("panelclock");
|
||||||
TimePanel.BackgroundImageLayout = skin.GetSkinData().panelclocklayout;
|
TimePanel.BackgroundImageLayout = skin.GetSkinData().panelclocklayout;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -198,7 +200,8 @@ namespace ShiftOS
|
||||||
{
|
{
|
||||||
AppLauncherMenu.Text = "";
|
AppLauncherMenu.Text = "";
|
||||||
AppLauncherMenu.BackColor = Color.Transparent;
|
AppLauncherMenu.BackColor = Color.Transparent;
|
||||||
AppLauncherMenu.BackgroundImage = skin.GetImage("applauncher");
|
if(AppLauncherMenu.BackgroundImage != skin.GetImage("applauncher"))
|
||||||
|
AppLauncherMenu.BackgroundImage = skin.GetImage("applauncher");
|
||||||
AppLauncherMenu.BackgroundImageLayout = skin.GetSkinData().applauncherlayout;
|
AppLauncherMenu.BackgroundImageLayout = skin.GetSkinData().applauncherlayout;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -171,6 +171,7 @@ namespace ShiftOS
|
||||||
|
|
||||||
Console.WriteLine(" --> Read enable window corners...");
|
Console.WriteLine(" --> Read enable window corners...");
|
||||||
_skin.enablecorners = bool.Parse(stream.ReadLine());
|
_skin.enablecorners = bool.Parse(stream.ReadLine());
|
||||||
|
_skin.enablebordercorners = _skin.enablecorners;
|
||||||
|
|
||||||
Console.WriteLine(" --> Read titlebar corner width...");
|
Console.WriteLine(" --> Read titlebar corner width...");
|
||||||
_skin.titlebarcornerwidth = Convert.ToInt32(stream.ReadLine());
|
_skin.titlebarcornerwidth = Convert.ToInt32(stream.ReadLine());
|
||||||
|
@ -340,7 +341,7 @@ namespace ShiftOS
|
||||||
// but never made it into this format because of the 0.0.8 format being implemented
|
// but never made it into this format because of the 0.0.8 format being implemented
|
||||||
// by William.
|
// by William.
|
||||||
|
|
||||||
for(int i = 0; i < (100 - 73); i++)
|
for(int i = 0; i < (100 - 73) - 1; i++)
|
||||||
{
|
{
|
||||||
stream.ReadLine();
|
stream.ReadLine();
|
||||||
}
|
}
|
||||||
|
@ -362,14 +363,29 @@ namespace ShiftOS
|
||||||
}
|
}
|
||||||
|
|
||||||
_skinimages.Add("closebtn", GetImage(fs, ImageFileNames[0]));
|
_skinimages.Add("closebtn", GetImage(fs, ImageFileNames[0]));
|
||||||
|
_skinimages.Add("closebtnhover", GetImage(fs, ImageFileNames[1]));
|
||||||
|
_skinimages.Add("closebtnclick", GetImage(fs, ImageFileNames[2]));
|
||||||
_skinimages.Add("titlebar", GetImage(fs, ImageFileNames[3]));
|
_skinimages.Add("titlebar", GetImage(fs, ImageFileNames[3]));
|
||||||
_skinimages.Add("desktopbackground", GetImage(fs, ImageFileNames[6]));
|
_skinimages.Add("desktopbackground", GetImage(fs, ImageFileNames[6]));
|
||||||
_skinimages.Add("rollbtn", GetImage(fs, ImageFileNames[9]));
|
_skinimages.Add("rollbtn", GetImage(fs, ImageFileNames[9]));
|
||||||
_skinimages.Add("titlebarright", GetImage(fs, ImageFileNames[12]));
|
_skinimages.Add("rollbtnhover", GetImage(fs, ImageFileNames[10]));
|
||||||
_skinimages.Add("titlebarleft", GetImage(fs, ImageFileNames[15]));
|
_skinimages.Add("rollbtnclick", GetImage(fs, ImageFileNames[11]));
|
||||||
|
_skinimages.Add("rightcorner", GetImage(fs, ImageFileNames[12]));
|
||||||
|
_skinimages.Add("leftcorner", GetImage(fs, ImageFileNames[15]));
|
||||||
_skinimages.Add("desktoppanel", GetImage(fs, ImageFileNames[18]));
|
_skinimages.Add("desktoppanel", GetImage(fs, ImageFileNames[18]));
|
||||||
_skinimages.Add("panelclock", GetImage(fs, ImageFileNames[21]));
|
_skinimages.Add("panelclock", GetImage(fs, ImageFileNames[21]));
|
||||||
_skinimages.Add("applauncher", GetImage(fs, ImageFileNames[24]));
|
_skinimages.Add("applauncher", GetImage(fs, ImageFileNames[24]));
|
||||||
|
_skinimages.Add("applaunchermouseover", GetImage(fs, ImageFileNames[25]));
|
||||||
|
_skinimages.Add("applauncherclick", GetImage(fs, ImageFileNames[26]));
|
||||||
|
_skinimages.Add("borderleft", GetImage(fs, ImageFileNames[27]));
|
||||||
|
_skinimages.Add("borderright", GetImage(fs, ImageFileNames[30]));
|
||||||
|
_skinimages.Add("borderbottom", GetImage(fs, ImageFileNames[33]));
|
||||||
|
_skinimages.Add("bottomrightcorner", GetImage(fs, ImageFileNames[36]));
|
||||||
|
_skinimages.Add("bottomleftcorner", GetImage(fs, ImageFileNames[39]));
|
||||||
|
_skinimages.Add("minbtn", GetImage(fs, ImageFileNames[42]));
|
||||||
|
_skinimages.Add("minbtnhover", GetImage(fs, ImageFileNames[43]));
|
||||||
|
_skinimages.Add("minbtnclick", GetImage(fs, ImageFileNames[44]));
|
||||||
|
_skinimages.Add("panelbutton", GetImage(fs, ImageFileNames[45]));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ namespace ShiftOS
|
||||||
public bool LaunchProgram(string InExecutableName)
|
public bool LaunchProgram(string InExecutableName)
|
||||||
{
|
{
|
||||||
// Does the program exist in our typemap?
|
// Does the program exist in our typemap?
|
||||||
if(!_programTypeMap.ContainsKey(InExecutableName))
|
if (!_programTypeMap.ContainsKey(InExecutableName))
|
||||||
{
|
{
|
||||||
// Program doesn't exist.
|
// Program doesn't exist.
|
||||||
return false;
|
return false;
|
||||||
|
@ -169,7 +169,7 @@ namespace ShiftOS
|
||||||
// Set up WinForms to run normally.
|
// Set up WinForms to run normally.
|
||||||
Application.EnableVisualStyles();
|
Application.EnableVisualStyles();
|
||||||
Application.SetCompatibleTextRenderingDefault(false);
|
Application.SetCompatibleTextRenderingDefault(false);
|
||||||
|
|
||||||
ToolStripManager.Renderer = new ToolStripSkinRenderer(this);
|
ToolStripManager.Renderer = new ToolStripSkinRenderer(this);
|
||||||
|
|
||||||
// Load all programs in the game.
|
// Load all programs in the game.
|
||||||
|
|
144
ShiftOS/ShiftOS/Windowing/Window.Designer.cs
generated
144
ShiftOS/ShiftOS/Windowing/Window.Designer.cs
generated
|
@ -29,22 +29,21 @@
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
this.TitleBarHolder = new System.Windows.Forms.Panel();
|
this.TitleBarHolder = new System.Windows.Forms.Panel();
|
||||||
this.TitleBarLeft = new System.Windows.Forms.Panel();
|
this.IconBox = new System.Windows.Forms.PictureBox();
|
||||||
|
this.TitleText = new System.Windows.Forms.Label();
|
||||||
|
this.MinimizeButton = new System.Windows.Forms.Panel();
|
||||||
|
this.RollButton = new System.Windows.Forms.Panel();
|
||||||
|
this.CloseButton = new System.Windows.Forms.Panel();
|
||||||
this.TitleBarRight = new System.Windows.Forms.Panel();
|
this.TitleBarRight = new System.Windows.Forms.Panel();
|
||||||
|
this.TitleBarLeft = new System.Windows.Forms.Panel();
|
||||||
this.BottomBarHolder = new System.Windows.Forms.Panel();
|
this.BottomBarHolder = new System.Windows.Forms.Panel();
|
||||||
this.BottomBar = new System.Windows.Forms.Panel();
|
|
||||||
this.BottomRight = new System.Windows.Forms.Panel();
|
this.BottomRight = new System.Windows.Forms.Panel();
|
||||||
this.BottomLeft = new System.Windows.Forms.Panel();
|
this.BottomLeft = new System.Windows.Forms.Panel();
|
||||||
this.RightBar = new System.Windows.Forms.Panel();
|
this.RightBar = new System.Windows.Forms.Panel();
|
||||||
this.LeftBar = new System.Windows.Forms.Panel();
|
this.LeftBar = new System.Windows.Forms.Panel();
|
||||||
this.CloseButton = new System.Windows.Forms.Panel();
|
|
||||||
this.RollButton = new System.Windows.Forms.Panel();
|
|
||||||
this.MinimizeButton = new System.Windows.Forms.Panel();
|
|
||||||
this.TitleText = new System.Windows.Forms.Label();
|
|
||||||
this.IconBox = new System.Windows.Forms.PictureBox();
|
|
||||||
this.TitleBarHolder.SuspendLayout();
|
this.TitleBarHolder.SuspendLayout();
|
||||||
this.BottomBarHolder.SuspendLayout();
|
|
||||||
((System.ComponentModel.ISupportInitialize)(this.IconBox)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.IconBox)).BeginInit();
|
||||||
|
this.BottomBarHolder.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// TitleBarHolder
|
// TitleBarHolder
|
||||||
|
@ -62,15 +61,58 @@
|
||||||
this.TitleBarHolder.Name = "TitleBarHolder";
|
this.TitleBarHolder.Name = "TitleBarHolder";
|
||||||
this.TitleBarHolder.Size = new System.Drawing.Size(601, 30);
|
this.TitleBarHolder.Size = new System.Drawing.Size(601, 30);
|
||||||
this.TitleBarHolder.TabIndex = 0;
|
this.TitleBarHolder.TabIndex = 0;
|
||||||
|
this.TitleBarHolder.MouseDown += new System.Windows.Forms.MouseEventHandler(this.TitleBarMouseDown);
|
||||||
//
|
//
|
||||||
// TitleBarLeft
|
// IconBox
|
||||||
//
|
//
|
||||||
this.TitleBarLeft.BackColor = System.Drawing.Color.Gray;
|
this.IconBox.BackColor = System.Drawing.Color.Black;
|
||||||
this.TitleBarLeft.Dock = System.Windows.Forms.DockStyle.Left;
|
this.IconBox.Location = new System.Drawing.Point(7, 7);
|
||||||
this.TitleBarLeft.Location = new System.Drawing.Point(0, 0);
|
this.IconBox.Name = "IconBox";
|
||||||
this.TitleBarLeft.Name = "TitleBarLeft";
|
this.IconBox.Size = new System.Drawing.Size(16, 16);
|
||||||
this.TitleBarLeft.Size = new System.Drawing.Size(2, 30);
|
this.IconBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
||||||
this.TitleBarLeft.TabIndex = 1;
|
this.IconBox.TabIndex = 8;
|
||||||
|
this.IconBox.TabStop = false;
|
||||||
|
//
|
||||||
|
// TitleText
|
||||||
|
//
|
||||||
|
this.TitleText.AutoSize = true;
|
||||||
|
this.TitleText.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.TitleText.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold);
|
||||||
|
this.TitleText.ForeColor = System.Drawing.Color.White;
|
||||||
|
this.TitleText.Location = new System.Drawing.Point(26, 6);
|
||||||
|
this.TitleText.Name = "TitleText";
|
||||||
|
this.TitleText.Size = new System.Drawing.Size(100, 17);
|
||||||
|
this.TitleText.TabIndex = 5;
|
||||||
|
this.TitleText.Text = "Window Title";
|
||||||
|
//
|
||||||
|
// MinimizeButton
|
||||||
|
//
|
||||||
|
this.MinimizeButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.MinimizeButton.BackColor = System.Drawing.Color.Black;
|
||||||
|
this.MinimizeButton.Location = new System.Drawing.Point(520, 3);
|
||||||
|
this.MinimizeButton.Name = "MinimizeButton";
|
||||||
|
this.MinimizeButton.Size = new System.Drawing.Size(24, 24);
|
||||||
|
this.MinimizeButton.TabIndex = 7;
|
||||||
|
//
|
||||||
|
// RollButton
|
||||||
|
//
|
||||||
|
this.RollButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.RollButton.BackColor = System.Drawing.Color.Black;
|
||||||
|
this.RollButton.Location = new System.Drawing.Point(547, 3);
|
||||||
|
this.RollButton.Name = "RollButton";
|
||||||
|
this.RollButton.Size = new System.Drawing.Size(24, 24);
|
||||||
|
this.RollButton.TabIndex = 6;
|
||||||
|
this.RollButton.MouseClick += new System.Windows.Forms.MouseEventHandler(this.RollButton_MouseClick);
|
||||||
|
//
|
||||||
|
// CloseButton
|
||||||
|
//
|
||||||
|
this.CloseButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.CloseButton.BackColor = System.Drawing.Color.Black;
|
||||||
|
this.CloseButton.Location = new System.Drawing.Point(574, 3);
|
||||||
|
this.CloseButton.Name = "CloseButton";
|
||||||
|
this.CloseButton.Size = new System.Drawing.Size(24, 24);
|
||||||
|
this.CloseButton.TabIndex = 5;
|
||||||
|
this.CloseButton.MouseClick += new System.Windows.Forms.MouseEventHandler(this.CloseButton_MouseClick);
|
||||||
//
|
//
|
||||||
// TitleBarRight
|
// TitleBarRight
|
||||||
//
|
//
|
||||||
|
@ -81,10 +123,18 @@
|
||||||
this.TitleBarRight.Size = new System.Drawing.Size(2, 30);
|
this.TitleBarRight.Size = new System.Drawing.Size(2, 30);
|
||||||
this.TitleBarRight.TabIndex = 2;
|
this.TitleBarRight.TabIndex = 2;
|
||||||
//
|
//
|
||||||
|
// TitleBarLeft
|
||||||
|
//
|
||||||
|
this.TitleBarLeft.BackColor = System.Drawing.Color.Gray;
|
||||||
|
this.TitleBarLeft.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.TitleBarLeft.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.TitleBarLeft.Name = "TitleBarLeft";
|
||||||
|
this.TitleBarLeft.Size = new System.Drawing.Size(2, 30);
|
||||||
|
this.TitleBarLeft.TabIndex = 1;
|
||||||
|
//
|
||||||
// BottomBarHolder
|
// BottomBarHolder
|
||||||
//
|
//
|
||||||
this.BottomBarHolder.BackColor = System.Drawing.Color.Transparent;
|
this.BottomBarHolder.BackColor = System.Drawing.Color.Transparent;
|
||||||
this.BottomBarHolder.Controls.Add(this.BottomBar);
|
|
||||||
this.BottomBarHolder.Controls.Add(this.BottomRight);
|
this.BottomBarHolder.Controls.Add(this.BottomRight);
|
||||||
this.BottomBarHolder.Controls.Add(this.BottomLeft);
|
this.BottomBarHolder.Controls.Add(this.BottomLeft);
|
||||||
this.BottomBarHolder.Dock = System.Windows.Forms.DockStyle.Bottom;
|
this.BottomBarHolder.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||||
|
@ -93,16 +143,6 @@
|
||||||
this.BottomBarHolder.Size = new System.Drawing.Size(601, 2);
|
this.BottomBarHolder.Size = new System.Drawing.Size(601, 2);
|
||||||
this.BottomBarHolder.TabIndex = 1;
|
this.BottomBarHolder.TabIndex = 1;
|
||||||
//
|
//
|
||||||
// BottomBar
|
|
||||||
//
|
|
||||||
this.BottomBar.BackColor = System.Drawing.Color.Gray;
|
|
||||||
this.BottomBar.Dock = System.Windows.Forms.DockStyle.Fill;
|
|
||||||
this.BottomBar.ForeColor = System.Drawing.Color.White;
|
|
||||||
this.BottomBar.Location = new System.Drawing.Point(2, 0);
|
|
||||||
this.BottomBar.Name = "BottomBar";
|
|
||||||
this.BottomBar.Size = new System.Drawing.Size(597, 2);
|
|
||||||
this.BottomBar.TabIndex = 0;
|
|
||||||
//
|
|
||||||
// BottomRight
|
// BottomRight
|
||||||
//
|
//
|
||||||
this.BottomRight.BackColor = System.Drawing.Color.Gray;
|
this.BottomRight.BackColor = System.Drawing.Color.Gray;
|
||||||
|
@ -139,55 +179,6 @@
|
||||||
this.LeftBar.Size = new System.Drawing.Size(2, 314);
|
this.LeftBar.Size = new System.Drawing.Size(2, 314);
|
||||||
this.LeftBar.TabIndex = 4;
|
this.LeftBar.TabIndex = 4;
|
||||||
//
|
//
|
||||||
// CloseButton
|
|
||||||
//
|
|
||||||
this.CloseButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.CloseButton.BackColor = System.Drawing.Color.Black;
|
|
||||||
this.CloseButton.Location = new System.Drawing.Point(574, 3);
|
|
||||||
this.CloseButton.Name = "CloseButton";
|
|
||||||
this.CloseButton.Size = new System.Drawing.Size(24, 24);
|
|
||||||
this.CloseButton.TabIndex = 5;
|
|
||||||
//
|
|
||||||
// RollButton
|
|
||||||
//
|
|
||||||
this.RollButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.RollButton.BackColor = System.Drawing.Color.Black;
|
|
||||||
this.RollButton.Location = new System.Drawing.Point(547, 3);
|
|
||||||
this.RollButton.Name = "RollButton";
|
|
||||||
this.RollButton.Size = new System.Drawing.Size(24, 24);
|
|
||||||
this.RollButton.TabIndex = 6;
|
|
||||||
//
|
|
||||||
// MinimizeButton
|
|
||||||
//
|
|
||||||
this.MinimizeButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.MinimizeButton.BackColor = System.Drawing.Color.Black;
|
|
||||||
this.MinimizeButton.Location = new System.Drawing.Point(520, 3);
|
|
||||||
this.MinimizeButton.Name = "MinimizeButton";
|
|
||||||
this.MinimizeButton.Size = new System.Drawing.Size(24, 24);
|
|
||||||
this.MinimizeButton.TabIndex = 7;
|
|
||||||
//
|
|
||||||
// TitleText
|
|
||||||
//
|
|
||||||
this.TitleText.AutoSize = true;
|
|
||||||
this.TitleText.BackColor = System.Drawing.Color.Transparent;
|
|
||||||
this.TitleText.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold);
|
|
||||||
this.TitleText.ForeColor = System.Drawing.Color.White;
|
|
||||||
this.TitleText.Location = new System.Drawing.Point(26, 6);
|
|
||||||
this.TitleText.Name = "TitleText";
|
|
||||||
this.TitleText.Size = new System.Drawing.Size(100, 17);
|
|
||||||
this.TitleText.TabIndex = 5;
|
|
||||||
this.TitleText.Text = "Window Title";
|
|
||||||
//
|
|
||||||
// IconBox
|
|
||||||
//
|
|
||||||
this.IconBox.BackColor = System.Drawing.Color.Black;
|
|
||||||
this.IconBox.Location = new System.Drawing.Point(7, 7);
|
|
||||||
this.IconBox.Name = "IconBox";
|
|
||||||
this.IconBox.Size = new System.Drawing.Size(16, 16);
|
|
||||||
this.IconBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
|
||||||
this.IconBox.TabIndex = 8;
|
|
||||||
this.IconBox.TabStop = false;
|
|
||||||
//
|
|
||||||
// Window
|
// Window
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
@ -203,8 +194,8 @@
|
||||||
this.Size = new System.Drawing.Size(601, 346);
|
this.Size = new System.Drawing.Size(601, 346);
|
||||||
this.TitleBarHolder.ResumeLayout(false);
|
this.TitleBarHolder.ResumeLayout(false);
|
||||||
this.TitleBarHolder.PerformLayout();
|
this.TitleBarHolder.PerformLayout();
|
||||||
this.BottomBarHolder.ResumeLayout(false);
|
|
||||||
((System.ComponentModel.ISupportInitialize)(this.IconBox)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.IconBox)).EndInit();
|
||||||
|
this.BottomBarHolder.ResumeLayout(false);
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -215,7 +206,6 @@
|
||||||
private System.Windows.Forms.Panel TitleBarRight;
|
private System.Windows.Forms.Panel TitleBarRight;
|
||||||
private System.Windows.Forms.Panel TitleBarLeft;
|
private System.Windows.Forms.Panel TitleBarLeft;
|
||||||
private System.Windows.Forms.Panel BottomBarHolder;
|
private System.Windows.Forms.Panel BottomBarHolder;
|
||||||
private System.Windows.Forms.Panel BottomBar;
|
|
||||||
private System.Windows.Forms.Panel BottomRight;
|
private System.Windows.Forms.Panel BottomRight;
|
||||||
private System.Windows.Forms.Panel BottomLeft;
|
private System.Windows.Forms.Panel BottomLeft;
|
||||||
private System.Windows.Forms.Panel RightBar;
|
private System.Windows.Forms.Panel RightBar;
|
||||||
|
|
|
@ -15,6 +15,9 @@ namespace ShiftOS.Windowing
|
||||||
public partial class Window : UserControl
|
public partial class Window : UserControl
|
||||||
{
|
{
|
||||||
private SystemContext _currentSystem = null;
|
private SystemContext _currentSystem = null;
|
||||||
|
private int PreRollHeight = 0;
|
||||||
|
private bool IsRolled = false;
|
||||||
|
|
||||||
|
|
||||||
public Window()
|
public Window()
|
||||||
{
|
{
|
||||||
|
@ -35,6 +38,8 @@ namespace ShiftOS.Windowing
|
||||||
|
|
||||||
private void OnDesktopUpdated(object sender, EventArgs e)
|
private void OnDesktopUpdated(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
this.BackColor = Color.Transparent;
|
||||||
|
|
||||||
// Get the skin data.
|
// Get the skin data.
|
||||||
var skin = this.CurrentSystem.GetSkinContext();
|
var skin = this.CurrentSystem.GetSkinContext();
|
||||||
var skindata = skin.GetSkinData();
|
var skindata = skin.GetSkinData();
|
||||||
|
@ -112,6 +117,183 @@ namespace ShiftOS.Windowing
|
||||||
RollButton.BackColor = skindata.rollbtncolour;
|
RollButton.BackColor = skindata.rollbtncolour;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set up the minimize button background.
|
||||||
|
if (skin.HasImage("minbtn"))
|
||||||
|
{
|
||||||
|
MinimizeButton.BackColor = Color.Transparent;
|
||||||
|
if (MinimizeButton.BackgroundImage != skin.GetImage("minbtn"))
|
||||||
|
MinimizeButton.BackgroundImage = skin.GetImage("minbtn");
|
||||||
|
MinimizeButton.BackgroundImageLayout = skindata.minbtnlayout;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MinimizeButton.BackgroundImage = null;
|
||||||
|
MinimizeButton.BackColor = skindata.minbtncolour;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set up the widths of our borders.
|
||||||
|
this.LeftBar.Width = skindata.borderwidth;
|
||||||
|
this.RightBar.Width = skindata.borderwidth;
|
||||||
|
this.BottomBarHolder.Height = skindata.borderwidth;
|
||||||
|
|
||||||
|
// Bottom corners get their heights from the bottom bar holder, but their widths must be set.
|
||||||
|
this.BottomLeft.Width = this.LeftBar.Width;
|
||||||
|
this.BottomRight.Width = this.RightBar.Width;
|
||||||
|
|
||||||
|
// Should we show the titlebar corners?
|
||||||
|
if(skindata.enablecorners)
|
||||||
|
{
|
||||||
|
// Show titlebar corners.
|
||||||
|
this.TitleBarLeft.Show();
|
||||||
|
this.TitleBarRight.Show();
|
||||||
|
|
||||||
|
// Set their widths.
|
||||||
|
this.TitleBarLeft.Width = skindata.titlebarcornerwidth;
|
||||||
|
this.TitleBarRight.Width = this.TitleBarLeft.Width;
|
||||||
|
|
||||||
|
// Set their backgrounds.
|
||||||
|
if(skin.HasImage("leftcorner"))
|
||||||
|
{
|
||||||
|
if (TitleBarLeft.BackgroundImage != skin.GetImage("leftcorner"))
|
||||||
|
TitleBarLeft.BackgroundImage = skin.GetImage("leftcorner");
|
||||||
|
TitleBarLeft.BackgroundImageLayout = skindata.leftcornerlayout;
|
||||||
|
TitleBarLeft.BackColor = Color.Transparent;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TitleBarLeft.BackColor = skindata.leftcornercolour;
|
||||||
|
TitleBarLeft.BackgroundImage = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (skin.HasImage("rightcorner"))
|
||||||
|
{
|
||||||
|
if (TitleBarRight.BackgroundImage != skin.GetImage("rightcorner"))
|
||||||
|
TitleBarRight.BackgroundImage = skin.GetImage("rightcorner");
|
||||||
|
TitleBarRight.BackgroundImageLayout = skindata.rightcornerlayout;
|
||||||
|
TitleBarRight.BackColor = Color.Transparent;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TitleBarRight.BackColor = skindata.rightcornercolour;
|
||||||
|
TitleBarRight.BackgroundImage = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Hide them.
|
||||||
|
this.TitleBarLeft.Hide();
|
||||||
|
this.TitleBarRight.Hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Should we show the border corners?
|
||||||
|
if (skindata.enablebordercorners)
|
||||||
|
{
|
||||||
|
// Show titlebar corners.
|
||||||
|
this.BottomLeft.Show();
|
||||||
|
this.BottomRight.Show();
|
||||||
|
|
||||||
|
// Set their backgrounds.
|
||||||
|
if (skin.HasImage("bottomleftcorner"))
|
||||||
|
{
|
||||||
|
if (BottomLeft.BackgroundImage != skin.GetImage("bottomleftcorner"))
|
||||||
|
BottomLeft.BackgroundImage = skin.GetImage("bottomleftcorner");
|
||||||
|
BottomLeft.BackgroundImageLayout = skindata.bottomleftcornerlayout;
|
||||||
|
BottomLeft.BackColor = Color.Transparent;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
BottomLeft.BackColor = skindata.bottomleftcornercolour;
|
||||||
|
BottomLeft.BackgroundImage = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (skin.HasImage("bottomrightcorner"))
|
||||||
|
{
|
||||||
|
if (BottomRight.BackgroundImage != skin.GetImage("bottomrightcorner"))
|
||||||
|
BottomRight.BackgroundImage = skin.GetImage("bottomrightcorner");
|
||||||
|
BottomRight.BackgroundImageLayout = skindata.bottomrightcornerlayout;
|
||||||
|
BottomRight.BackColor = Color.Transparent;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
BottomRight.BackColor = skindata.bottomrightcornercolour;
|
||||||
|
BottomRight.BackgroundImage = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Hide them.
|
||||||
|
this.BottomLeft.Hide();
|
||||||
|
this.BottomRight.Hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Set the titlebar background.
|
||||||
|
if (skin.HasImage("titlebar"))
|
||||||
|
{
|
||||||
|
if(this.TitleBarHolder.BackgroundImage != skin.GetImage("titlebar"))
|
||||||
|
{
|
||||||
|
this.TitleBarHolder.BackgroundImage = skin.GetImage("titlebar");
|
||||||
|
}
|
||||||
|
this.TitleBarHolder.BackColor = Color.Transparent;
|
||||||
|
this.TitleBarHolder.BackgroundImageLayout = skindata.titlebarlayout;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.TitleBarHolder.BackColor = skindata.titlebarcolour;
|
||||||
|
this.TitleBarHolder.BackgroundImage = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(skin.HasImage("borderleft"))
|
||||||
|
{
|
||||||
|
if(this.LeftBar.BackgroundImage != skin.GetImage("borderleft"))
|
||||||
|
{
|
||||||
|
this.LeftBar.BackgroundImage = skin.GetImage("borderleft");
|
||||||
|
}
|
||||||
|
this.LeftBar.BackColor = Color.Transparent;
|
||||||
|
this.LeftBar.BackgroundImageLayout = skindata.borderleftlayout;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.LeftBar.BackColor = skindata.borderleftcolour;
|
||||||
|
this.LeftBar.BackgroundImage = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (skin.HasImage("borderright"))
|
||||||
|
{
|
||||||
|
if (this.RightBar.BackgroundImage != skin.GetImage("borderright"))
|
||||||
|
{
|
||||||
|
this.RightBar.BackgroundImage = skin.GetImage("borderright");
|
||||||
|
}
|
||||||
|
this.RightBar.BackColor = Color.Transparent;
|
||||||
|
this.RightBar.BackgroundImageLayout = skindata.borderrightlayout;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.RightBar.BackColor = skindata.borderrightcolour;
|
||||||
|
this.RightBar.BackgroundImage = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (skin.HasImage("borderbottom"))
|
||||||
|
{
|
||||||
|
if (this.BottomBarHolder.BackgroundImage != skin.GetImage("borderbottom"))
|
||||||
|
{
|
||||||
|
this.BottomBarHolder.BackgroundImage = skin.GetImage("borderbottom");
|
||||||
|
}
|
||||||
|
this.BottomBarHolder.BackColor = Color.Transparent;
|
||||||
|
this.BottomBarHolder.BackgroundImageLayout = skindata.borderbottomlayout;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.BottomBarHolder.BackColor = skindata.borderbottomcolour;
|
||||||
|
this.BottomBarHolder.BackgroundImage = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(IsRolled)
|
||||||
|
{
|
||||||
|
Height = TitleBarHolder.Height;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -134,5 +316,54 @@ namespace ShiftOS.Windowing
|
||||||
get => this.IconBox.Image;
|
get => this.IconBox.Image;
|
||||||
set => this.IconBox.Image = value;
|
set => this.IconBox.Image = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void TitleBarMouseDown(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
if (this.CurrentSystem.HasShiftoriumUpgrade("draggablewindows"))
|
||||||
|
{
|
||||||
|
if (e.Button == MouseButtons.Left)
|
||||||
|
{
|
||||||
|
this.TitleBarHolder.Capture = false;
|
||||||
|
this.TitleText.Capture = false;
|
||||||
|
this.IconBox.Capture = false;
|
||||||
|
this.TitleBarLeft.Capture = false;
|
||||||
|
this.TitleBarRight.Capture = false;
|
||||||
|
const ushort WM_NCLBUTTONDOWN = 0xA1;
|
||||||
|
const long HTCAPTION = 2;
|
||||||
|
Message msg = Message.Create(this.Handle, WM_NCLBUTTONDOWN, new IntPtr(HTCAPTION), IntPtr.Zero);
|
||||||
|
this.DefWndProc(ref msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public event EventHandler WindowClosed;
|
||||||
|
|
||||||
|
protected virtual void OnClose() { }
|
||||||
|
|
||||||
|
public void Close()
|
||||||
|
{
|
||||||
|
WindowClosed?.Invoke(this, EventArgs.Empty);
|
||||||
|
OnClose();
|
||||||
|
this.Parent?.Controls.Remove(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CloseButton_MouseClick(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
this.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RollButton_MouseClick(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
if(IsRolled)
|
||||||
|
{
|
||||||
|
this.Height = PreRollHeight;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PreRollHeight = this.Height;
|
||||||
|
this.Height = TitleBarHolder.Height;
|
||||||
|
}
|
||||||
|
IsRolled = !IsRolled;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue