From 41504bdc15d6c7512b5fe1a111529d8a39587f61 Mon Sep 17 00:00:00 2001 From: Michael Date: Tue, 20 Jun 2017 18:02:13 -0400 Subject: inactive border colors --- ShiftOS.WinForms/WindowBorder.cs | 107 ++++++++++++++++++++++++++++++--------- 1 file changed, 82 insertions(+), 25 deletions(-) (limited to 'ShiftOS.WinForms/WindowBorder.cs') diff --git a/ShiftOS.WinForms/WindowBorder.cs b/ShiftOS.WinForms/WindowBorder.cs index 40dc629..7aefd42 100644 --- a/ShiftOS.WinForms/WindowBorder.cs +++ b/ShiftOS.WinForms/WindowBorder.cs @@ -48,6 +48,8 @@ namespace ShiftOS.WinForms /// public partial class WindowBorder : Form, IWindowBorder { + private bool IsFocused { get; set; } + /// /// Raises the closing event. /// @@ -109,6 +111,17 @@ namespace ShiftOS.WinForms public WindowBorder(UserControl win) { InitializeComponent(); + IsFocused = true; + this.Activated += (o, a) => + { + IsFocused = true; + SetupSkin(); + }; + this.Deactivate += (o, a) => + { + IsFocused = false; + SetupSkin(); + }; this._parentWindow = win; Shiftorium.Installed += () => { @@ -255,49 +268,93 @@ namespace ShiftOS.WinForms /// The skin. public void SetupSkin() { + //Border colors and images... + if (IsFocused) + { + pnltitle.BackColor = LoadedSkin.TitleBackgroundColor; + pnltitle.BackgroundImage = GetImage("titlebar"); + pnltitleleft.BackColor = LoadedSkin.TitleLeftCornerBackground; + pnltitleright.BackColor = LoadedSkin.TitleRightCornerBackground; + pnltitleleft.BackgroundImage = GetImage("titleleft"); + pnltitleleft.BackgroundImageLayout = GetImageLayout("titleleft"); + pnltitleright.BackgroundImage = GetImage("titleright"); + pnltitleright.BackgroundImageLayout = GetImageLayout("titleright"); + pnltitle.BackgroundImageLayout = GetImageLayout("titlebar"); //RETARD ALERT. WHY WASN'T THIS THERE WHEN IMAGELAYOUTS WERE FIRST IMPLEMENTED? + + pnlleft.BackColor = LoadedSkin.BorderLeftBackground; + pnlleft.BackgroundImage = GetImage("leftborder"); + pnlleft.BackgroundImageLayout = GetImageLayout("leftborder"); + + pnlright.BackColor = LoadedSkin.BorderRightBackground; + pnlright.BackgroundImage = GetImage("rightborder"); + pnlright.BackgroundImageLayout = GetImageLayout("rightborder"); + + pnlbottom.BackColor = LoadedSkin.BorderBottomBackground; + pnlbottom.BackgroundImage = GetImage("bottomborder"); + pnlbottom.BackgroundImageLayout = GetImageLayout("bottomborder"); + + pnlbottomr.BackColor = LoadedSkin.BorderBottomRightBackground; + pnlbottomr.BackgroundImage = GetImage("bottomrborder"); + pnlbottomr.BackgroundImageLayout = GetImageLayout("bottomrborder"); + + pnlbottoml.BackColor = LoadedSkin.BorderBottomLeftBackground; + pnlbottoml.BackgroundImage = GetImage("bottomlborder"); + pnlbottoml.BackgroundImageLayout = GetImageLayout("bottomlborder"); + } + else + { + pnltitle.BackColor = LoadedSkin.TitleInactiveBackgroundColor; + pnltitle.BackgroundImage = GetImage("titlebarinactive"); + pnltitleleft.BackColor = LoadedSkin.TitleInactiveLeftCornerBackground; + pnltitleright.BackColor = LoadedSkin.TitleInactiveRightCornerBackground; + pnltitleleft.BackgroundImage = GetImage("titleleftinactive"); + pnltitleleft.BackgroundImageLayout = GetImageLayout("titleleftinactive"); + pnltitleright.BackgroundImage = GetImage("titlerightinactive"); + pnltitleright.BackgroundImageLayout = GetImageLayout("titlerightinactive"); + pnltitle.BackgroundImageLayout = GetImageLayout("titlebarinactive"); //RETARD ALERT. WHY WASN'T THIS THERE WHEN IMAGELAYOUTS WERE FIRST IMPLEMENTED? + + pnlleft.BackColor = LoadedSkin.BorderInactiveLeftBackground; + pnlleft.BackgroundImage = GetImage("leftborderinactive"); + pnlleft.BackgroundImageLayout = GetImageLayout("leftborderinactive"); + + pnlright.BackColor = LoadedSkin.BorderInactiveRightBackground; + pnlright.BackgroundImage = GetImage("rightborderinactive"); + pnlright.BackgroundImageLayout = GetImageLayout("rightborderinactive"); + + pnlbottom.BackColor = LoadedSkin.BorderInactiveBottomBackground; + pnlbottom.BackgroundImage = GetImage("bottomborderinactive"); + pnlbottom.BackgroundImageLayout = GetImageLayout("bottomborderinactive"); + + pnlbottomr.BackColor = LoadedSkin.BorderInactiveBottomRightBackground; + pnlbottomr.BackgroundImage = GetImage("bottomrborderinactive"); + pnlbottomr.BackgroundImageLayout = GetImageLayout("bottomrborderinactive"); + + pnlbottoml.BackColor = LoadedSkin.BorderInactiveBottomLeftBackground; + pnlbottoml.BackgroundImage = GetImage("bottomlborderinactive"); + pnlbottoml.BackgroundImageLayout = GetImageLayout("bottomlborderinactive"); + + } + + this.DoubleBuffered = true; this.TransparencyKey = LoadedSkin.SystemKey; pnlcontents.BackColor = this.TransparencyKey; pnltitle.Height = LoadedSkin.TitlebarHeight; - pnltitle.BackColor = LoadedSkin.TitleBackgroundColor; - pnltitle.BackgroundImage = GetImage("titlebar"); pnltitleleft.Visible = LoadedSkin.ShowTitleCorners; pnltitleright.Visible = LoadedSkin.ShowTitleCorners; - pnltitleleft.BackColor = LoadedSkin.TitleLeftCornerBackground; - pnltitleright.BackColor = LoadedSkin.TitleRightCornerBackground; pnltitleleft.Width = LoadedSkin.TitleLeftCornerWidth; pnltitleright.Width = LoadedSkin.TitleRightCornerWidth; - pnltitleleft.BackgroundImage = GetImage("titleleft"); - pnltitleleft.BackgroundImageLayout = GetImageLayout("titleleft"); - pnltitleright.BackgroundImage = GetImage("titleright"); - pnltitleright.BackgroundImageLayout = GetImageLayout("titleright"); - pnltitle.BackgroundImageLayout = GetImageLayout("titlebar"); //RETARD ALERT. WHY WASN'T THIS THERE WHEN IMAGELAYOUTS WERE FIRST IMPLEMENTED? - + lbtitletext.BackColor = (pnltitle.BackgroundImage != null) ? Color.Transparent : LoadedSkin.TitleBackgroundColor; lbtitletext.ForeColor = LoadedSkin.TitleTextColor; lbtitletext.Font = LoadedSkin.TitleFont; - pnlleft.BackColor = LoadedSkin.BorderLeftBackground; - pnlleft.BackgroundImage = GetImage("leftborder"); - pnlleft.BackgroundImageLayout = GetImageLayout("leftborder"); pnlleft.Width = LoadedSkin.LeftBorderWidth; - pnlright.BackColor = LoadedSkin.BorderRightBackground; - pnlright.BackgroundImage = GetImage("rightborder"); - pnlright.BackgroundImageLayout = GetImageLayout("rightborder"); pnlright.Width = LoadedSkin.RightBorderWidth; - pnlbottom.BackColor = LoadedSkin.BorderBottomBackground; - pnlbottom.BackgroundImage = GetImage("bottomborder"); - pnlbottom.BackgroundImageLayout = GetImageLayout("bottomborder"); pnlbottom.Height = LoadedSkin.BottomBorderWidth; - pnlbottomr.BackColor = LoadedSkin.BorderBottomRightBackground; - pnlbottomr.BackgroundImage = GetImage("bottomrborder"); - pnlbottomr.BackgroundImageLayout = GetImageLayout("bottomrborder"); pnlbottomr.Width = pnlright.Width; - pnlbottoml.BackColor = LoadedSkin.BorderBottomLeftBackground; - pnlbottoml.BackgroundImage = GetImage("bottomlborder"); - pnlbottoml.BackgroundImageLayout = GetImageLayout("bottomlborder"); pnlbottoml.Width = pnlleft.Width; lbtitletext.ForeColor = LoadedSkin.TitleTextColor; -- cgit v1.2.3 From 153057c7be952a94ab63a790662a10eee7b68e3d Mon Sep 17 00:00:00 2001 From: Michael Date: Tue, 20 Jun 2017 18:53:28 -0400 Subject: Opt-in multistate borders --- ShiftOS.WinForms/Applications/Artpad.Designer.cs | 1 - ShiftOS.WinForms/WindowBorder.cs | 132 +++++++++++++---------- ShiftOS_TheReturn/Skinning.cs | 7 ++ 3 files changed, 80 insertions(+), 60 deletions(-) (limited to 'ShiftOS.WinForms/WindowBorder.cs') diff --git a/ShiftOS.WinForms/Applications/Artpad.Designer.cs b/ShiftOS.WinForms/Applications/Artpad.Designer.cs index c5a313d..f30839a 100644 --- a/ShiftOS.WinForms/Applications/Artpad.Designer.cs +++ b/ShiftOS.WinForms/Applications/Artpad.Designer.cs @@ -2058,7 +2058,6 @@ namespace ShiftOS.WinForms.Applications this.Label4.TabIndex = 11; this.Label4.Text = "Colors"; this.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.Label4.Click += new System.EventHandler(this.Label4_Click); // // line6 // diff --git a/ShiftOS.WinForms/WindowBorder.cs b/ShiftOS.WinForms/WindowBorder.cs index 7aefd42..0ee1289 100644 --- a/ShiftOS.WinForms/WindowBorder.cs +++ b/ShiftOS.WinForms/WindowBorder.cs @@ -262,6 +262,74 @@ namespace ShiftOS.WinForms } } + public void SetDefaultBorders() + { + pnltitle.BackColor = LoadedSkin.TitleBackgroundColor; + pnltitle.BackgroundImage = GetImage("titlebar"); + pnltitleleft.BackColor = LoadedSkin.TitleLeftCornerBackground; + pnltitleright.BackColor = LoadedSkin.TitleRightCornerBackground; + pnltitleleft.BackgroundImage = GetImage("titleleft"); + pnltitleleft.BackgroundImageLayout = GetImageLayout("titleleft"); + pnltitleright.BackgroundImage = GetImage("titleright"); + pnltitleright.BackgroundImageLayout = GetImageLayout("titleright"); + pnltitle.BackgroundImageLayout = GetImageLayout("titlebar"); //RETARD ALERT. WHY WASN'T THIS THERE WHEN IMAGELAYOUTS WERE FIRST IMPLEMENTED? + + pnlleft.BackColor = LoadedSkin.BorderLeftBackground; + pnlleft.BackgroundImage = GetImage("leftborder"); + pnlleft.BackgroundImageLayout = GetImageLayout("leftborder"); + + pnlright.BackColor = LoadedSkin.BorderRightBackground; + pnlright.BackgroundImage = GetImage("rightborder"); + pnlright.BackgroundImageLayout = GetImageLayout("rightborder"); + + pnlbottom.BackColor = LoadedSkin.BorderBottomBackground; + pnlbottom.BackgroundImage = GetImage("bottomborder"); + pnlbottom.BackgroundImageLayout = GetImageLayout("bottomborder"); + + pnlbottomr.BackColor = LoadedSkin.BorderBottomRightBackground; + pnlbottomr.BackgroundImage = GetImage("bottomrborder"); + pnlbottomr.BackgroundImageLayout = GetImageLayout("bottomrborder"); + + pnlbottoml.BackColor = LoadedSkin.BorderBottomLeftBackground; + pnlbottoml.BackgroundImage = GetImage("bottomlborder"); + pnlbottoml.BackgroundImageLayout = GetImageLayout("bottomlborder"); + + } + + public void SetInactiveBorders() + { + pnltitle.BackColor = LoadedSkin.TitleInactiveBackgroundColor; + pnltitle.BackgroundImage = GetImage("titlebarinactive"); + pnltitleleft.BackColor = LoadedSkin.TitleInactiveLeftCornerBackground; + pnltitleright.BackColor = LoadedSkin.TitleInactiveRightCornerBackground; + pnltitleleft.BackgroundImage = GetImage("titleleftinactive"); + pnltitleleft.BackgroundImageLayout = GetImageLayout("titleleftinactive"); + pnltitleright.BackgroundImage = GetImage("titlerightinactive"); + pnltitleright.BackgroundImageLayout = GetImageLayout("titlerightinactive"); + pnltitle.BackgroundImageLayout = GetImageLayout("titlebarinactive"); //RETARD ALERT. WHY WASN'T THIS THERE WHEN IMAGELAYOUTS WERE FIRST IMPLEMENTED? + + pnlleft.BackColor = LoadedSkin.BorderInactiveLeftBackground; + pnlleft.BackgroundImage = GetImage("leftborderinactive"); + pnlleft.BackgroundImageLayout = GetImageLayout("leftborderinactive"); + + pnlright.BackColor = LoadedSkin.BorderInactiveRightBackground; + pnlright.BackgroundImage = GetImage("rightborderinactive"); + pnlright.BackgroundImageLayout = GetImageLayout("rightborderinactive"); + + pnlbottom.BackColor = LoadedSkin.BorderInactiveBottomBackground; + pnlbottom.BackgroundImage = GetImage("bottomborderinactive"); + pnlbottom.BackgroundImageLayout = GetImageLayout("bottomborderinactive"); + + pnlbottomr.BackColor = LoadedSkin.BorderInactiveBottomRightBackground; + pnlbottomr.BackgroundImage = GetImage("bottomrborderinactive"); + pnlbottomr.BackgroundImageLayout = GetImageLayout("bottomrborderinactive"); + + pnlbottoml.BackColor = LoadedSkin.BorderInactiveBottomLeftBackground; + pnlbottoml.BackgroundImage = GetImage("bottomlborderinactive"); + pnlbottoml.BackgroundImageLayout = GetImageLayout("bottomlborderinactive"); + + } + /// /// Setups the skin. /// @@ -271,68 +339,14 @@ namespace ShiftOS.WinForms //Border colors and images... if (IsFocused) { - pnltitle.BackColor = LoadedSkin.TitleBackgroundColor; - pnltitle.BackgroundImage = GetImage("titlebar"); - pnltitleleft.BackColor = LoadedSkin.TitleLeftCornerBackground; - pnltitleright.BackColor = LoadedSkin.TitleRightCornerBackground; - pnltitleleft.BackgroundImage = GetImage("titleleft"); - pnltitleleft.BackgroundImageLayout = GetImageLayout("titleleft"); - pnltitleright.BackgroundImage = GetImage("titleright"); - pnltitleright.BackgroundImageLayout = GetImageLayout("titleright"); - pnltitle.BackgroundImageLayout = GetImageLayout("titlebar"); //RETARD ALERT. WHY WASN'T THIS THERE WHEN IMAGELAYOUTS WERE FIRST IMPLEMENTED? - - pnlleft.BackColor = LoadedSkin.BorderLeftBackground; - pnlleft.BackgroundImage = GetImage("leftborder"); - pnlleft.BackgroundImageLayout = GetImageLayout("leftborder"); - - pnlright.BackColor = LoadedSkin.BorderRightBackground; - pnlright.BackgroundImage = GetImage("rightborder"); - pnlright.BackgroundImageLayout = GetImageLayout("rightborder"); - - pnlbottom.BackColor = LoadedSkin.BorderBottomBackground; - pnlbottom.BackgroundImage = GetImage("bottomborder"); - pnlbottom.BackgroundImageLayout = GetImageLayout("bottomborder"); - - pnlbottomr.BackColor = LoadedSkin.BorderBottomRightBackground; - pnlbottomr.BackgroundImage = GetImage("bottomrborder"); - pnlbottomr.BackgroundImageLayout = GetImageLayout("bottomrborder"); - - pnlbottoml.BackColor = LoadedSkin.BorderBottomLeftBackground; - pnlbottoml.BackgroundImage = GetImage("bottomlborder"); - pnlbottoml.BackgroundImageLayout = GetImageLayout("bottomlborder"); + SetDefaultBorders(); } else { - pnltitle.BackColor = LoadedSkin.TitleInactiveBackgroundColor; - pnltitle.BackgroundImage = GetImage("titlebarinactive"); - pnltitleleft.BackColor = LoadedSkin.TitleInactiveLeftCornerBackground; - pnltitleright.BackColor = LoadedSkin.TitleInactiveRightCornerBackground; - pnltitleleft.BackgroundImage = GetImage("titleleftinactive"); - pnltitleleft.BackgroundImageLayout = GetImageLayout("titleleftinactive"); - pnltitleright.BackgroundImage = GetImage("titlerightinactive"); - pnltitleright.BackgroundImageLayout = GetImageLayout("titlerightinactive"); - pnltitle.BackgroundImageLayout = GetImageLayout("titlebarinactive"); //RETARD ALERT. WHY WASN'T THIS THERE WHEN IMAGELAYOUTS WERE FIRST IMPLEMENTED? - - pnlleft.BackColor = LoadedSkin.BorderInactiveLeftBackground; - pnlleft.BackgroundImage = GetImage("leftborderinactive"); - pnlleft.BackgroundImageLayout = GetImageLayout("leftborderinactive"); - - pnlright.BackColor = LoadedSkin.BorderInactiveRightBackground; - pnlright.BackgroundImage = GetImage("rightborderinactive"); - pnlright.BackgroundImageLayout = GetImageLayout("rightborderinactive"); - - pnlbottom.BackColor = LoadedSkin.BorderInactiveBottomBackground; - pnlbottom.BackgroundImage = GetImage("bottomborderinactive"); - pnlbottom.BackgroundImageLayout = GetImageLayout("bottomborderinactive"); - - pnlbottomr.BackColor = LoadedSkin.BorderInactiveBottomRightBackground; - pnlbottomr.BackgroundImage = GetImage("bottomrborderinactive"); - pnlbottomr.BackgroundImageLayout = GetImageLayout("bottomrborderinactive"); - - pnlbottoml.BackColor = LoadedSkin.BorderInactiveBottomLeftBackground; - pnlbottoml.BackgroundImage = GetImage("bottomlborderinactive"); - pnlbottoml.BackgroundImageLayout = GetImageLayout("bottomlborderinactive"); - + if (LoadedSkin.RenderInactiveBorders) + SetInactiveBorders(); + else + SetDefaultBorders(); } diff --git a/ShiftOS_TheReturn/Skinning.cs b/ShiftOS_TheReturn/Skinning.cs index e0a1a2b..656da30 100644 --- a/ShiftOS_TheReturn/Skinning.cs +++ b/ShiftOS_TheReturn/Skinning.cs @@ -634,6 +634,13 @@ namespace ShiftOS.Engine [ShifterDescription("The background color for the bottom border when the window is inactive.")] public Color BorderInactiveBottomBackground = DefaultBackground; + [ShifterMeta("Windows")] + [ShifterCategory("Window border")] + [ShifterName("Use Inactive Border Assets?")] + [RequiresUpgrade("shift_window_borders;shift_states")] + [ShifterDescription("Do you want to use separate colors and images for inactive Window Borders?")] + public bool RenderInactiveBorders = false; + [ShifterMeta("Desktop")] [ShifterCategory("Panel buttons")] -- cgit v1.2.3