Theme responsive notification icons (#23)

This commit is contained in:
maniman303 2022-12-14 21:10:45 +01:00 committed by Kamil Trzciński
parent 85a27782e8
commit c4fd544cc2
16 changed files with 106 additions and 8 deletions

View file

@ -0,0 +1,37 @@
using Microsoft.Win32;
namespace CommonHelpers
{
public class WindowsDarkMode
{
private static System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer()
{
Interval = 1500
};
public static bool IsDarkModeEnabled { get; private set; }
static WindowsDarkMode()
{
IsDarkModeEnabled = FetchIsDarkModeEnabled();
timer.Tick += delegate{ IsDarkModeEnabled = FetchIsDarkModeEnabled(); };
timer.Start();
}
private static bool FetchIsDarkModeEnabled()
{
try
{
string RegistryKey = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize";
int theme = (int?)Registry.GetValue(RegistryKey, "SystemUsesLightTheme", 1) ?? 1;
return theme == 0;
}
catch
{
return false;
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View file

@ -91,7 +91,7 @@ namespace PerformanceOverlay
exitItem.Click += ExitItem_Click;
notifyIcon = new System.Windows.Forms.NotifyIcon(components);
notifyIcon.Icon = Resources.poll;
notifyIcon.Icon = WindowsDarkMode.IsDarkModeEnabled ? Resources.poll_light : Resources.poll;
notifyIcon.Text = TitleWithVersion;
notifyIcon.Visible = true;
notifyIcon.ContextMenuStrip = contextMenu;
@ -197,7 +197,7 @@ namespace PerformanceOverlay
try
{
notifyIcon.Text = TitleWithVersion + ". RTSS Version: " + OSD.Version;
notifyIcon.Icon = Resources.poll;
notifyIcon.Icon = WindowsDarkMode.IsDarkModeEnabled ? Resources.poll_light : Resources.poll;
}
catch
{

View file

@ -70,6 +70,16 @@ namespace PerformanceOverlay {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
/// </summary>
internal static System.Drawing.Icon poll_light {
get {
object obj = ResourceManager.GetObject("poll_light", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
/// </summary>

View file

@ -121,6 +121,9 @@
<data name="poll" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\poll.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="poll_light" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\poll_light.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="poll_red" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\poll_red.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>

Binary file not shown.

After

Width:  |  Height:  |  Size: 414 KiB

View file

@ -1,6 +1,7 @@
using CommonHelpers;
using ExternalHelpers;
using Microsoft.VisualBasic.Logging;
using Microsoft.Win32;
using PowerControl.External;
using PowerControl.Helpers;
using RTSSSharedMemoryNET;
@ -89,7 +90,7 @@ namespace PowerControl
exitItem.Click += ExitItem_Click;
notifyIcon = new System.Windows.Forms.NotifyIcon(components);
notifyIcon.Icon = Resources.traffic_light_outline;
notifyIcon.Icon = WindowsDarkMode.IsDarkModeEnabled ? Resources.traffic_light_outline_light : Resources.traffic_light_outline;
notifyIcon.Text = TitleWithVersion;
notifyIcon.Visible = true;
notifyIcon.ContextMenuStrip = contextMenu;
@ -183,7 +184,7 @@ namespace PowerControl
try
{
notifyIcon.Text = TitleWithVersion + ". RTSS Version: " + OSD.Version;
notifyIcon.Icon = Resources.traffic_light_outline;
notifyIcon.Icon = WindowsDarkMode.IsDarkModeEnabled ? Resources.traffic_light_outline_light : Resources.traffic_light_outline;
}
catch
{

View file

@ -70,6 +70,16 @@ namespace PowerControl {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
/// </summary>
internal static System.Drawing.Icon traffic_light_outline_light {
get {
object obj = ResourceManager.GetObject("traffic-light-outline_light", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
/// </summary>

View file

@ -118,6 +118,9 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="traffic-light-outline_light" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\traffic-light-outline_light.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="traffic_light_outline" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\traffic-light-outline.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 KiB

View file

@ -112,7 +112,7 @@ namespace SteamController
exitItem.Click += delegate { Application.Exit(); };
notifyIcon = new NotifyIcon(components);
notifyIcon.Icon = Resources.microsoft_xbox_controller_off;
notifyIcon.Icon = WindowsDarkMode.IsDarkModeEnabled ? Resources.microsoft_xbox_controller_off_white : Resources.microsoft_xbox_controller_off;
notifyIcon.Text = TitleWithVersion;
notifyIcon.Visible = true;
notifyIcon.ContextMenuStrip = contextMenu;
@ -149,6 +149,14 @@ namespace SteamController
context.Tick();
var isDesktop = context.CurrentProfile?.IsDesktop ?? false;
var monitorOffIco = WindowsDarkMode.IsDarkModeEnabled ? Resources.monitor_off_white : Resources.monitor_off;
var monitorOnIco = WindowsDarkMode.IsDarkModeEnabled ? Resources.monitor_white : Resources.monitor;
var controllerOffIco = WindowsDarkMode.IsDarkModeEnabled ?
Resources.microsoft_xbox_controller_off_white :
Resources.microsoft_xbox_controller_off;
var controllerOnIco = WindowsDarkMode.IsDarkModeEnabled ?
Resources.microsoft_xbox_controller_white :
Resources.microsoft_xbox_controller;
if (!context.KeyboardMouseValid)
{
@ -164,12 +172,12 @@ namespace SteamController
{
if (context.State.SteamUsesSteamInput)
{
notifyIcon.Icon = isDesktop ? Resources.monitor_off : Resources.microsoft_xbox_controller_off;
notifyIcon.Icon = isDesktop ? monitorOffIco : controllerOffIco;
notifyIcon.Text = TitleWithVersion + ". Steam uses Steam Input";
}
else
{
notifyIcon.Icon = isDesktop ? Resources.monitor : Resources.microsoft_xbox_controller;
notifyIcon.Icon = isDesktop ? monitorOnIco : controllerOnIco;
notifyIcon.Text = TitleWithVersion;
}
@ -179,7 +187,7 @@ namespace SteamController
}
else
{
notifyIcon.Icon = isDesktop ? Resources.monitor_off : Resources.microsoft_xbox_controller_off;
notifyIcon.Icon = isDesktop ? monitorOffIco : controllerOffIco;
notifyIcon.Text = TitleWithVersion + ". Disabled";
}

View file

@ -180,6 +180,26 @@ namespace SteamController {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
/// </summary>
internal static System.Drawing.Icon monitor_off_white {
get {
object obj = ResourceManager.GetObject("monitor_off_white", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
/// </summary>
internal static System.Drawing.Icon monitor_white {
get {
object obj = ResourceManager.GetObject("monitor_white", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
/// </summary>

View file

@ -154,6 +154,12 @@
<data name="monitor_off" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\monitor-off.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="monitor_off_white" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\monitor-off-white.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="monitor_white" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\monitor-white.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="steam" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\steam.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 KiB

After

Width:  |  Height:  |  Size: 422 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 KiB