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;
diff --git a/ShiftOS.WinForms/WinformsDesktop.cs b/ShiftOS.WinForms/WinformsDesktop.cs
index b247969..7508262 100644
--- a/ShiftOS.WinForms/WinformsDesktop.cs
+++ b/ShiftOS.WinForms/WinformsDesktop.cs
@@ -910,6 +910,7 @@ namespace ShiftOS.WinForms
public void ShowWindow(IWindowBorder border)
{
var brdr = border as Form;
+
focused = border;
brdr.GotFocus += (o, a) =>
{
diff --git a/ShiftOS_TheReturn/Skinning.cs b/ShiftOS_TheReturn/Skinning.cs
index e00a2ef..e0a1a2b 100644
--- a/ShiftOS_TheReturn/Skinning.cs
+++ b/ShiftOS_TheReturn/Skinning.cs
@@ -574,6 +574,15 @@ namespace ShiftOS.Engine
[ShifterDescription("The color of the titlebar's background.")]
public Color TitleBackgroundColor = TitleBG;
+ [ShifterMeta("Windows")]
+ [ShifterCategory("Titlebar")]
+ [ShifterName("Title Inactive Background Color")]
+ [RequiresUpgrade("shift_titlebar;shift_states")]
+ [ShifterDescription("The color of the titlebar's background when the window isn't active.")]
+ public Color TitleInactiveBackgroundColor = Skin.DefaultBackground;
+
+
+
[ShifterMeta("Windows")]
[ShifterCategory("Window border")]
[ShifterName("Left Border Background")]
@@ -581,6 +590,14 @@ namespace ShiftOS.Engine
[ShifterDescription("The background color for the left border.")]
public Color BorderLeftBackground = TitleBG;
+ [ShifterMeta("Windows")]
+ [ShifterCategory("Window border")]
+ [ShifterName("Left Border Inactive Background")]
+ [RequiresUpgrade("shift_window_borders;shift_states")]
+ [ShifterDescription("The background color for the left border when the window is inactive.")]
+ public Color BorderInactiveLeftBackground = DefaultBackground;
+
+
[ShifterMeta("Windows")]
[ShifterCategory("Window border")]
[ShifterName("Right Border Background")]
@@ -588,6 +605,14 @@ namespace ShiftOS.Engine
[ShifterDescription("The background color for the right border.")]
public Color BorderRightBackground = TitleBG;
+ [ShifterMeta("Windows")]
+ [ShifterCategory("Window border")]
+ [ShifterName("Right Border Inactive Background")]
+ [RequiresUpgrade("shift_window_borders;shift_states")]
+ [ShifterDescription("The background color for the right border when the window is inactive.")]
+ public Color BorderInactiveRightBackground = DefaultBackground;
+
+
[ShifterMeta("Desktop")]
[ShifterCategory("Panel buttons")]
[RequiresUpgrade("shift_panel_buttons")]
@@ -602,6 +627,14 @@ namespace ShiftOS.Engine
[ShifterDescription("The background color for the bottom border.")]
public Color BorderBottomBackground = TitleBG;
+ [ShifterMeta("Windows")]
+ [ShifterCategory("Window border")]
+ [ShifterName("Bottom Border Inactive Background")]
+ [RequiresUpgrade("shift_window_borders;shift_states")]
+ [ShifterDescription("The background color for the bottom border when the window is inactive.")]
+ public Color BorderInactiveBottomBackground = DefaultBackground;
+
+
[ShifterMeta("Desktop")]
[ShifterCategory("Panel buttons")]
[ShifterName("Panel button holder from left")]
@@ -609,6 +642,14 @@ namespace ShiftOS.Engine
[RequiresUpgrade("shift_panel_buttons")]
public int PanelButtonHolderFromLeft = 100;
+ [ShifterMeta("Windows")]
+ [ShifterCategory("Window border")]
+ [ShifterName("Bottom Left Border Inactive Background")]
+ [RequiresUpgrade("shift_window_borders;shift_states")]
+ [ShifterDescription("The background color for the bottom left border when the window is inactive.")]
+ public Color BorderInactiveBottomLeftBackground = DefaultBackground;
+
+
[ShifterMeta("Windows")]
[ShifterCategory("Window border")]
[ShifterName("Bottom Left Border Background")]
@@ -616,6 +657,7 @@ namespace ShiftOS.Engine
[ShifterDescription("The background color for the bottom left border.")]
public Color BorderBottomLeftBackground = TitleBG;
+
[ShifterMeta("Windows")]
[ShifterCategory("Window border")]
[ShifterName("Bottom Right Border Background")]
@@ -623,6 +665,14 @@ namespace ShiftOS.Engine
[ShifterDescription("The background color for the bottom right border.")]
public Color BorderBottomRightBackground = TitleBG;
+ [ShifterMeta("Windows")]
+ [ShifterCategory("Window border")]
+ [ShifterName("Bottom Right Border Inactive Background")]
+ [RequiresUpgrade("shift_window_borders;shift_states")]
+ [ShifterDescription("The background color for the bottom right border when the window is inactive.")]
+ public Color BorderInactiveBottomRightBackground = DefaultBackground;
+
+
[ShifterMeta("Windows")]
[ShifterCategory("Title Buttons")]
[ShifterName("Close Button Color")]
@@ -1148,6 +1198,15 @@ namespace ShiftOS.Engine
[ShifterDescription("What color should be used for the left title corner?")]
public Color TitleLeftCornerBackground = TitleBG;
+ [ShifterMeta("Windows")]
+ [ShifterCategory("Titlebar")]
+ [RequiresUpgrade("shift_titlebar;shift_states")]
+ [ShifterFlag("ShowTitleCorners", true)]
+ [ShifterName("Title left inactive background color")]
+ [ShifterDescription("What color should be used for the left title corner when the window is inactive?")]
+ public Color TitleInactiveLeftCornerBackground = DefaultBackground;
+
+
[ShifterMeta("Windows")]
[ShifterCategory("Titlebar")]
[RequiresUpgrade("shift_titlebar")]
@@ -1156,6 +1215,15 @@ namespace ShiftOS.Engine
[ShifterDescription("What color should be used for the right title corner?")]
public Color TitleRightCornerBackground = TitleBG;
+ [ShifterMeta("Windows")]
+ [ShifterCategory("Titlebar")]
+ [RequiresUpgrade("shift_titlebar;shift_states")]
+ [ShifterFlag("ShowTitleCorners", true)]
+ [ShifterName("Title right inactive background color")]
+ [ShifterDescription("What color should be used for the right title corner when the window is inactive?")]
+ public Color TitleInactiveRightCornerBackground = DefaultBackground;
+
+
[ShifterMeta("Windows")]
[ShifterCategory("Titlebar")]
[RequiresUpgrade("shift_titlebar")]