From 5b89556ed388c34c8847f5dc2d42c68974bd0871 Mon Sep 17 00:00:00 2001 From: seerge Date: Fri, 17 Mar 2023 22:28:33 +0100 Subject: [PATCH 1/4] New UI --- app/GHelper.csproj | 2 +- app/Program.cs | 2 - app/Properties/Resources.Designer.cs | 170 +++++++ app/Properties/Resources.resx | 99 +++- app/Resources/icons8-balance-symbol-96.png | Bin 0 -> 710 bytes app/Resources/icons8-bicycle-48 (1).png | Bin 0 -> 948 bytes app/Resources/icons8-fan-48.png | Bin 0 -> 1082 bytes app/Resources/icons8-fan-speed-48.png | Bin 0 -> 870 bytes app/Resources/icons8-fiat-500-48.png | Bin 0 -> 858 bytes app/Resources/icons8-game-controller-48.png | Bin 0 -> 562 bytes app/Resources/icons8-launch-96.png | Bin 0 -> 648 bytes app/Resources/icons8-leaf-48.png | Bin 0 -> 965 bytes app/Resources/icons8-leaf-96.png | Bin 0 -> 910 bytes app/Resources/icons8-organic-food-96.png | Bin 0 -> 2030 bytes app/Resources/icons8-organic-food-961.png | Bin 0 -> 1145 bytes .../icons8-project-management-48 (1).png | Bin 0 -> 837 bytes .../icons8-project-management-48.png | Bin 0 -> 1024 bytes app/Resources/icons8-rocket-48.png | Bin 0 -> 819 bytes app/Resources/icons8-spa-flower-48.png | Bin 0 -> 1067 bytes app/Resources/icons8-spa-flower-96.png | Bin 0 -> 954 bytes app/Resources/icons8-xbox-controller-96.png | Bin 0 -> 724 bytes app/RoundedButton.cs | 1 + app/Settings.Designer.cs | 472 ++++++++++-------- app/Settings.cs | 98 ++-- 24 files changed, 557 insertions(+), 287 deletions(-) create mode 100644 app/Resources/icons8-balance-symbol-96.png create mode 100644 app/Resources/icons8-bicycle-48 (1).png create mode 100644 app/Resources/icons8-fan-48.png create mode 100644 app/Resources/icons8-fan-speed-48.png create mode 100644 app/Resources/icons8-fiat-500-48.png create mode 100644 app/Resources/icons8-game-controller-48.png create mode 100644 app/Resources/icons8-launch-96.png create mode 100644 app/Resources/icons8-leaf-48.png create mode 100644 app/Resources/icons8-leaf-96.png create mode 100644 app/Resources/icons8-organic-food-96.png create mode 100644 app/Resources/icons8-organic-food-961.png create mode 100644 app/Resources/icons8-project-management-48 (1).png create mode 100644 app/Resources/icons8-project-management-48.png create mode 100644 app/Resources/icons8-rocket-48.png create mode 100644 app/Resources/icons8-spa-flower-48.png create mode 100644 app/Resources/icons8-spa-flower-96.png create mode 100644 app/Resources/icons8-xbox-controller-96.png diff --git a/app/GHelper.csproj b/app/GHelper.csproj index 745a26e8..7376d742 100644 --- a/app/GHelper.csproj +++ b/app/GHelper.csproj @@ -16,7 +16,7 @@ x64 False True - 0.29 + 0.30 diff --git a/app/Program.cs b/app/Program.cs index 602ed9dd..8e1f7027 100644 --- a/app/Program.cs +++ b/app/Program.cs @@ -60,8 +60,6 @@ namespace GHelper settingsForm.InitAura(); settingsForm.InitMatrix(); - settingsForm.VisualiseGPUAuto(config.getConfig("gpu_auto")); - settingsForm.VisualiseScreenAuto(config.getConfig("screen_auto")); settingsForm.SetStartupCheck(Startup.IsScheduled()); SetAutoModes(); diff --git a/app/Properties/Resources.Designer.cs b/app/Properties/Resources.Designer.cs index 82636674..2b9dfe3d 100644 --- a/app/Properties/Resources.Designer.cs +++ b/app/Properties/Resources.Designer.cs @@ -80,6 +80,26 @@ namespace GHelper.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap icons8_balance_symbol_96 { + get { + object obj = ResourceManager.GetObject("icons8-balance-symbol-96", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap icons8_bicycle_48__1_ { + get { + object obj = ResourceManager.GetObject("icons8-bicycle-48 (1)", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -90,6 +110,16 @@ namespace GHelper.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap icons8_fan_48 { + get { + object obj = ResourceManager.GetObject("icons8-fan-48", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -100,6 +130,36 @@ namespace GHelper.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap icons8_fan_speed_48 { + get { + object obj = ResourceManager.GetObject("icons8-fan-speed-48", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap icons8_fiat_500_48 { + get { + object obj = ResourceManager.GetObject("icons8-fiat-500-48", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap icons8_game_controller_48 { + get { + object obj = ResourceManager.GetObject("icons8-game-controller-48", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -120,6 +180,36 @@ namespace GHelper.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap icons8_launch_96 { + get { + object obj = ResourceManager.GetObject("icons8-launch-96", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap icons8_leaf_48 { + get { + object obj = ResourceManager.GetObject("icons8-leaf-48", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap icons8_leaf_96 { + get { + object obj = ResourceManager.GetObject("icons8-leaf-96", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -130,6 +220,26 @@ namespace GHelper.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap icons8_organic_food_96 { + get { + object obj = ResourceManager.GetObject("icons8-organic-food-96", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap icons8_organic_food_961 { + get { + object obj = ResourceManager.GetObject("icons8-organic-food-961", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -140,6 +250,56 @@ namespace GHelper.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap icons8_project_management_48 { + get { + object obj = ResourceManager.GetObject("icons8-project-management-48", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap icons8_project_management_48__1_ { + get { + object obj = ResourceManager.GetObject("icons8-project-management-48 (1)", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap icons8_rocket_48 { + get { + object obj = ResourceManager.GetObject("icons8-rocket-48", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap icons8_spa_flower_48 { + get { + object obj = ResourceManager.GetObject("icons8-spa-flower-48", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap icons8_spa_flower_96 { + get { + object obj = ResourceManager.GetObject("icons8-spa-flower-96", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -170,6 +330,16 @@ namespace GHelper.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap icons8_xbox_controller_96 { + get { + object obj = ResourceManager.GetObject("icons8-xbox-controller-96", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). /// diff --git a/app/Properties/Resources.resx b/app/Properties/Resources.resx index c08865b5..12794545 100644 --- a/app/Properties/Resources.resx +++ b/app/Properties/Resources.resx @@ -118,43 +118,94 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - ..\Resources\eco.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\icons8-leaf-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\icons8-matrix-desktop-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\icons8-launch-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-charging-battery-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-organic-food-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-fiat-500-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-video-card-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-project-management-48 (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-bicycle-48 (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-fan-head-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-processor-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-spa-flower-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-spa-flower-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\standard.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\icons8-keyboard-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\icons8-fan-speed-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-speed-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\eco.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-laptop-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-rocket-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-organic-food-961.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-balance-symbol-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-fan-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-matrix-desktop-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-xbox-controller-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-project-management-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-leaf-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\ultimate.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\standard.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\icons8-speed-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\everything-is-fine-itsfine.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\icons8-speed-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\icons8-video-card-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\icons8-fan-head-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\icons8-charging-battery-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\icons8-laptop-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\icons8-processor-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\icons8-game-controller-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a \ No newline at end of file diff --git a/app/Resources/icons8-balance-symbol-96.png b/app/Resources/icons8-balance-symbol-96.png new file mode 100644 index 0000000000000000000000000000000000000000..e1ad7907c4c49d3315d9025a71e6954f7d12e7af GIT binary patch literal 710 zcmV;%0y+JOP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf6951U69E94oEQKA0$WK$K~!i%?bthO z6j2z)@%4tmOCg8}A}V4!8$W=JX{^$xh=}?TR4fE71T73+&_*#yoi5-9un_B@B8Zq^ zVWE{51QopeAI%Gg!#kHV?##}>Jn&<)*)zM(yF0Tp$)Hc4KDA^cZs7~=tl#fURQ5i8 z2jw@)$UY z>##DqeE_etd5Ez5Ib8VnW3xGfpNLE8w(NP}3hc3~`bAR-%bTJh^2(b=hB%A3ywUCx z4q?|q`pPUSZ!V*@c<+2H-pAwQl{d8vk@wEW^hs<$92N7{dxk#58oU?se8T~R*@jQ> z)_b&8+w|$vWOP>j0dJp7^#+HbOkx$@x>V|S4Q{@|+o-DZP;{x_JzkZ1y15B&gDT!5 z`~*J0TUW&#GII&uMk!w45W*b9Yk2F+(s}423UdlokA+9r2`{_x6yA14bV)Le(m8?8 z@SZHo4TRT1+9l)v3+d#v3~&1^Z*c_4If{4io;36wr(sdq_-b?kHpC{}MfiA@Cm2WN z?8i%ZPcAw*kHO-VH{lS9zNLP_TPus$ivP|oJVyKi@xhu`-o!)9K-W&;n$ibrO2)7R zdy)8HEmPjaLmbCP=&|I3H6?n{*>zz7{ap07a4a4|=L-FOtlP$O4_?V4`ou<_33%no z+J}*5Ggjc0EAk9mF!Jodb9g1Qyux0zCMiR-uDqqp5Unk5$s3~eV)R4j84-(Kv=zG;)!vFvP07*qoM6N<$f|>PCEdT%j literal 0 HcmV?d00001 diff --git a/app/Resources/icons8-bicycle-48 (1).png b/app/Resources/icons8-bicycle-48 (1).png new file mode 100644 index 0000000000000000000000000000000000000000..bdc94b800aab5288dd2a80b3baf6784220ae2850 GIT binary patch literal 948 zcmV;l155mgP)qANuq*Y6;W@B8u5kTE9(>EDri7437VM4NJ}rYMbAv{>@JKr zKMd@4SIuADRb5rR3keb=NbtX5Esz1ckf$H$1oi->#0Vc8jQ7Oz5ST_x@H4^!Jm3M4 zA_lk~aRDB%n;2k+FzT6)+;rfQkiA0;Fa`J}44dmCJ449z5))hzh8_CX7O-6y*5zaT zu)ot}SuYKOeH_CW?$EK{y1=&!LHv2Hz6j-vMKaW&Au#0dn23$w0Tz zeGF9SuG1V}S`6dI>Ktqmy$8x2^-ozmmyP#}V(wU>j9vsB1+D>KEbdn!;eutrh|p~` z<~NHu<>ep1C(V6C9PUso0q#0vnXAC;kavv-(n2q-$FtbrnAJMR@JPsX>ultgQa$mk2Wo(3V9?^p6gkA`NOh|rL#(ot# zPmF?A7jWoPmSWfg+z9ZN^5#d&MX1D<1qK|8Q?y{%$yNPBjj82>CP ze5J(`8`VUI7*t{7iguyf3f#2puIhoZxZtzXr53L)7ktfPzD*6j6oY0gn}~YgRQGA( zt(dPi=32$vX`x$fNy&e@K6B8ox<)Zx_5Bhuyef>j)yDW!OUj&NyJGehX#wAXnU?ni z@uh%+`o?C1bpc(D%~USNt1wyV^Bz||8)}5E%ATARgC}rDM?kjmLq2>hLbu&7jmitQ z-)_h>y2U{+Dqodf8ckU;Q6}W2DjR$gI=C4 literal 0 HcmV?d00001 diff --git a/app/Resources/icons8-fan-48.png b/app/Resources/icons8-fan-48.png new file mode 100644 index 0000000000000000000000000000000000000000..f1ca3a7276a512faf5f160d4f9b4f9b80bf08f49 GIT binary patch literal 1082 zcmV-A1jYM_P)`6pHRCt{2nMr6=K@f(&I3{kmpqVJ*0_s5o38+L|z=Iby~x-@JbPUi30Q zGz{~qs;k~qSN&ZBMHEp)8pr_4fdjx*;0Z7Q49YT}yX09TuuOFRJ7xpTz#AYRa~Yi@ zz^wn__*9@x-flkO8U$K^?7wn;Gw?A5$Mxz5>W0(tGT>|h2TY!y2etr9fO4QzR#v_< z&n}2;n4MP9NfqOOn;{!M0yY7oV%RgXwZP*Ln>S?7)ZVV1ks6XB{p9G%6)? zhqa+2!jV@>eg$wpLZ?mXwEHx&We!xL#9=aV*aqizoEFDmf0&hnIumOK$fTzB68X5QLshgP|1W{eUdDDT% zBnV)yvX_%W5DP7qE@`F*LF~6UKOpDG7nO1*f;Lb27|L3jTBl48f>;C`lTLgv;jlIf zytHtnAiYR*E6U60!!P-%JdUegF0N@dKajen8LdXhgX zGIC&b&YN{T%^~l&kRbBHo$96WxMH-_`KKW^uctZO9YSeHIt{H)!Xz7{V`im6mC5HS zdDd>}uz8g>sgKu#sI^q5G*(|42i6r?c~enz!e!;8&U=^2B$z3jr`N-A!)=;;I_z*@ zgiIs$3(fA7G|S2Am+@qWP~xhDe~c7SL=pVOAL%lcRA8Wo@&Et;07*qoM6N<$f(Rty A;Q#;t literal 0 HcmV?d00001 diff --git a/app/Resources/icons8-fan-speed-48.png b/app/Resources/icons8-fan-speed-48.png new file mode 100644 index 0000000000000000000000000000000000000000..573458ba8ab23a7ac86104a808d98c5d48669fef GIT binary patch literal 870 zcmV-s1DX7ZP)K6rpL1~MK7PTuS}iy2%uVg_%-?Bb4$EioKD z3h=D-6uglP7#SC0II$L4dwhq#z z3HvTVRf#3!xAgP1c=iRJ|CB}E37iJDN#QFP>?gmj5D?bG&(8DCgtQ*3 z3n^q3&>kVfl!v@qt{8y!jCJB2Hkcj2Ny%1y8KRm)-bpB@;h0R{DML%Z`8N?*Cbm<4 z(AnZaHibyJRkN^YRbP0Y* zo+_!a-@sw%m0BG+mTC9IJswBUF7h<09XXC_1T=e|0ya~nambP5!QX7;P6%&VjA{8^ zBjBxP0b7N4PYjMBjeyS{gZ}}{6y9VEo~IfCuRRL565#EP!E;U{;Ic;nYXZDaV(@Iz z2x#yW{Iv|;Hb(l1_6#YEMdz(d&JjNEA^-5&Zl31OK)swuZpXjQ{`u07*qoM6N<$g59@*o&W#< literal 0 HcmV?d00001 diff --git a/app/Resources/icons8-fiat-500-48.png b/app/Resources/icons8-fiat-500-48.png new file mode 100644 index 0000000000000000000000000000000000000000..41de29879bb843764679b9cd162ff9817f747c7d GIT binary patch literal 858 zcmV-g1Eu_lP)A=x>KEWPone> z1)=KIU;pcLy`>>Wj2JQgWsCzh0cU`hz&GG4@B+9AoB-AVQ>ZhH1r7s0fIp7oI_7sqel7%-$i#c%Ks^BmY?nV$n}1kM3JJ@#Hv_b76# zv^@D9AOj3mHl{coqqq}WEC;Riuyu6+6-rN8_Oyp7z5)1P9B|slK8ORTyVGge*A|BO zF~Io{!liBK7!KSu)_(z)fDYgQFh6MWn*=kvquu=HXu<>e50ykq7v`* zYRv||JM0xlTfD?e1h^fsc)z>R;`s0+i?6p49JCmp1%}bTNB~n+@;nZFwCIwgI#1u! zWXZIW=7&;yGywb6<<|8*0|ph1I*i3vQDw#|u-sCLtd@m|>b=qz($pso89GlEOJsfW z2K9?3L#u@QLb&Cgi)$1>k`(p9fl1`aMzOqy}&)-sOnp+n5IH! zmqV*({>4{u$F&OhrNDGX#&XHp)Kh6xHkux1@@8&c*j2}%wu^ZD!;27du798$dqsTApm`TJg{eZU=60m`_g!mqpvVSL8P kD9$MOW5kFNBgTJZxmU?)%A@_b%?Qp51xwbIx=>-T^EYi^XEG zn8yGB$FS;;5@6E+!w%I(lmJ%-7voYx1%frm09x zImAbfycB{OS^!k3DUJ9@lb5RU=*bW@yaVV!e6$02BTs{V4XY$R_0jSni%J$i1wa`< z#z%KXbHt-31ro3QV*oM!)BEhBTaR)Mo=7}mK!8!2BOYDpA>nJlf%$6y**0Zme#%GJ z3ZO=_#H+?UiOvHI2UR1vptZ%T#x{xe4GM5TYj3%UPDr$DP=FO$TfA!Al4!!90F$(~ zc-43zQE$MajW(S1c^CR0G%{TylOmPhcJgcd6Q3mjRg{Y02oI6qyT)9w>dXq8-Pa=R$>m3a=9H#01{pevo3pE z(jTdP7<8~3K~l}iyZrJ}(?JXD{o>JTR^`I{0`djAYk*mYYA5LLBr~J-TinJ=VYZDI z3H9kJ*VY|?dJ_!S)vThrZ9EUG#bU8oEEdGfH%DAD79G|$v;Y7A07*qoM6N<$f*~FB ACIA2c literal 0 HcmV?d00001 diff --git a/app/Resources/icons8-launch-96.png b/app/Resources/icons8-launch-96.png new file mode 100644 index 0000000000000000000000000000000000000000..a59eeb584d0d88d74b52a09f2eed47df39f64c2b GIT binary patch literal 648 zcmV;30(bq1P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf6951U69E94oEQKA0v$<2K~!i%?U_9< z1VJ3ej}W0mftEr=d;*F10KS1vLnFcGAhbG4A&5eJ1tCh6#7p6&Kq7+RdEESyF&S&_ zW_E6t{UyKb-2Y~8o|#*AZ?{rXk|xb?23{$rRjm+o!2|eV$XYi{nqGJc&F~`M>w`(s z4o{#hxGwv2z~oqgw!k)*VNwjhS7-}s^9A-pZ$kZNn1U_UrW37@`y|5=w5@cOhcFo) zp)F*V573(?we^L8YK8lFAHsQ_9rqy53q5d`1%ptF7Xf$>f)TZi#t^)zHoq`WP_7Dh zFxn)z@(iyBFoU@&upMO*dU!KHJqq$V*GZV+Z2@Xk&}+F&Vi20)sbJP!70f!v;+VnM zhvpzuu)XJ^V0({a{)+3>;4^HiHoqbJbHIAY+Mi?cW?3e#=K+4Dv2hyHbpnfO8G~p0000l literal 0 HcmV?d00001 diff --git a/app/Resources/icons8-leaf-48.png b/app/Resources/icons8-leaf-48.png new file mode 100644 index 0000000000000000000000000000000000000000..559bed1bda94ee7e2d158315e9541d9d9713341b GIT binary patch literal 965 zcmV;$13LVPP)ip|_ zIj!%%{%h^EzV%=0Kn59fc=QDN(t*$&m<8+s>VV(CBcL~F3?*(Ea31&$#0+r(=tLSJ z3z!TX0lp>>9TTyYG+EQDfyRKMW1je<2mN0#0N4RE1rYiMI0LLREU70zxAqj?6<7~^ z@e$nslmo>gf0d!FnuvD6OyFq}(LaF`K#9)=y(sd20Qpf0?+2VsBD@)>00sr*E7XJa zavX|E{3PII0^y&54M45~Z@J)ViQ+4i>dz~Mw*epzRXT-)mC97Q?bx>cCSX1nu`J(XFD-;jW&hDWuxGTkst9X@6I=S5DR%rGn%m z(96-4z7SlqeRB4S_6J-Ba9oh6S#-fv!K18oPJpTx^F)nH$8~~aikp7U37*pda*9Qc z@>|xB>p#zdqtH;-l@;+rp2+#&(Dy$t;w5o85swLudlnWwCVY`KehCs)m25E5P!1Od z%*{3I8*981Bt@3_(&IPknGJ$`gD0}abwRSyB6ptQ0JJ&1M~U3W4*J<7NNNM-_1CAZ zH}{5R-*ZI%O$Yr9G1%w10rILvj&iZ%Ec>ny9Q$xYjbSYgPSSpjVdMb^I90i8Ehx*MK+YPg-yv=k^n=$$#?``ufpndjRKFZjoge=3l zj>j#1)qE>{Z*#QW1$y8qJ5h-oLtRf6n;rVd2CfR8_hDXHv-G7~dK(#4j^e8gTsBGKjLvp4>S%{u|@|tv}z4pP8Qk^YE#}$Aih$F?*iP>Rjf)sz2xeuqm0Gcix7M}%Qv30E_=(O~T2(VXCPo|xbf%r7qKXZp}^ z(5JIxpSjH9PmTw`d?J9n+Qsw+4qBT#1Jm^1O!xKUuc~6tfGfZ*eF#R1dM&&~3o+S< nw8kR+^qtDfa|Rh?Ks5LZ+4uVDY&q%T00000NkvXXu0mjfL&UyK literal 0 HcmV?d00001 diff --git a/app/Resources/icons8-leaf-96.png b/app/Resources/icons8-leaf-96.png new file mode 100644 index 0000000000000000000000000000000000000000..f005f8555b4ff74b609ee2a59f845c7acf210bfa GIT binary patch literal 910 zcmV;919AL`P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf6951U69E94oEQKA10zX9K~!i%?b%tV zO;H@j@nas7u?!C)V@V-HA(Bilro0eRqC6<2M2VE)NropSi8rMbNj#8CDdk0o2XiE3 z%9Qc@>#SY-?(;u;uXFY~=bnf2t50ip@49=fJ*~a=x`k$%$(MGntasGzM9jxPJjEHj zL_=p14&oX9C49p=G+g>(3mzcZ>7+l`_pmw;!eZ1Uy>S*+qan2*c*fxgtOjdgDuQJp zKErCLR`h%Y$x{4;)krOUL^tHhT(m{!BP&pKM&T2z9oNfARFy8c18b*wZAVY+i2bab zSE%Zpph=ju!@M*Qbb`_YR-L4=C`o%)T2TXAi<`l73%`n+g)y$o%4AozO4qHW|^c1GCFa(O+Ub@m!uD(lB8XM zVXh3FbI{CHnGMaWd@{h5t&(;Cy<8bO@iBdgD}7RNf8N2mlzH4m6uo2K!m4M9My*y! zy8@bngw7#XD$CHnxapN2uJq1DSZAVIdU$o#qg;bkuN(A0nDMC>LPWOLH6*M=u;}XO&unC_4LAoh%zsakPH<8`che#n*Ur z%ie}nFN^P-sU!zr?a;?_XlXHu&Z1Q>%Og~sj?mlF+Ho2^u<^yIq41qHB<)15=$rI1 zteuy$9#J~rI;?tGw6;13xuYv_1U@6vZp5<(Ry`kw5j1mfA68>>6!Fi$m8f<&euF*; z9*rh@k!dCm1JU0#pqe+3H=Jl&yNLX)egF`eOEh(}*qc^1JoBWUy{T?5TY;ti>j z%Ms5ARNHx-m`wrV$I_>AZ;?J=&SA+ z(yoT?^{ZF~4Yw5~Yq97HwD=T79oK`ZdA)w;8%?99Kx;c1RXRiadJIi1^n$BN_Tww` kfxi}A(M&VVG)xMG|8wmn5dB>ZC;$Ke07*qoM6N<$f;ae=;{X5v literal 0 HcmV?d00001 diff --git a/app/Resources/icons8-organic-food-96.png b/app/Resources/icons8-organic-food-96.png new file mode 100644 index 0000000000000000000000000000000000000000..09abca8c7f2e7390c33986f1d8d33ae1ab4da66d GIT binary patch literal 2030 zcmV2aesEGdX$s3CX5Y(tBQ7VKWqNqO<@GVW17!_J7DYnqZT{Fq4xi&kq zJG*mc=l1TGoP?CSbIzQZojI?W1yZC)ks?Kk6e&`;hv5LK04xBo3czjv2LaRqI1Zo{ zz-jt-E&ZSP%}RQvirPpK5<>yZ1h5{!uK+wlR0m)kwOyW$#{ba|z*GR+0JIrYx{Nvi z>;*6fKuIAF#)SY@12}0x=`v~}8AhOhFc!cDOS9e6cq_ykcqzIu1_O8%K-K|;dlJgh z{xb;O2t@#90XXJ>g1wN`2w*ON9>{Z?3*b`+6zWAJu~}ClPjMrF1_zYr#iYLh+=4uU zcx{(EzSeu1B>J)pKn9MZH-OC!D9mG`w*mBpqv#LdBL|e^G1D#pXTUKCkMau#l;c^V z{VsXYy$fXKdp>VM9~U;j+@<^wntk;mqw zH|FIIDB2?uF{P~(WIJE89}8meeHsbjCI?K-4genjxD`NgjJ}k{kU{8R3KH;elXSA0 z0lWxcq@n%{j44k&fC^YbCc*GR8)dtO8Sc|V24wrh)_!nrLdxFCH_(;cr=Tey3rX z*MbS-EL%N00SpK!+eH9g0&qgoRx7;`e)xyMG8+vBY_h2Q%^|(a3Yu~4A(jR|oXI5r z>l_L6piY{iO(8N-B@`ZR(eR4>P|nnccGHRe)s~e1K7d{UvWPw5#|SA#KMY{(izp;B zW~SLF9r>1csqjF=xJ{ent;$5rwY$2r<}wFY=xC29W+#(wQEQLEX(to#~D>Xb^UD_z&c^-3L zCr258IC;__`b!aBUdPDysDke=jC|)s8Gu!c0tqF{Vm!?e_L4l=AmLNe_SdI$`U25Yr zlQ6Q7z+}zYFA4)_na?OPu-c!Q!K)|z&idfE1 zA^F!SGH`X4_dO*zQ*~mwiDCwdvK2p!(cryQ(#8dh{T216PKBdo`Ps1n<&R4hgX=O?IuNeEeCe8pviO+|nlK{#jeEX2? zocsG$i3QXv#LQRKo0>eJVZ1D*oVhS-g@U(OqW0XU&c{$K{6#O-rj2!W#O4dG?DN1Y(1`I_^6~f&`SqJ)#I`l}XxF&AeiU zqe*^rI}D&dm0EKOS{-63+@Tr5C{vsX*lR)g#>&%e9ne@9AcM?`$w*2VAC)+ITxmz0 zvP&nAC}rtLX%zhC(_TAyx8-EME@U{6C!;nBZ5YKy3xcsE z^{N7adlGo1U!XGsGW1lOlDA2B!vZpv>}anG9iyeDUxYBW4ccS#`m##KvK24liOQs| z(dnEV=fE;2T723tExkrokTkL$3B+@vv5U(!oLV&Qp9r!V@ZAPnlB5BJA({e=bQAcx}HJGlC_ighO2`q2|8<@L8_-J z!MsET-6-qjDeXzZ!{z#n)lml&>V>4^-Q_b@xhSQZuedLO@?ua2#q&k2QMbitM?Yn_ zh3mpqS22Q8iQFYGDrzDbj3?0Z34Ig%oNdrGnFWV3swP`QCkss}y_VXXZlYGRkWfjd zOXg7_?=GsEK1{jk(?kvQx3B3pE9jZ)^Z8qlDN>|Jks?Kk6zI127xc^f@gpguS^xk5 M07*qoM6N<$f^sUKxc~qF literal 0 HcmV?d00001 diff --git a/app/Resources/icons8-organic-food-961.png b/app/Resources/icons8-organic-food-961.png new file mode 100644 index 0000000000000000000000000000000000000000..9b44855704e4709a29a27310fa7bc0868f367684 GIT binary patch literal 1145 zcmV-<1cv*GP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf6951U69E94oEQKA1P)0=K~!i%?b$i3 zR8<_u@dpAbt6MCzAp(H{&_qp8qXr>Ts5DeqLc~Z%!ID@Ag+@gQh0)j$V=PPv8ka&v zrNRh`(E<=GltkkOvbdn4!uR`zBbUSf-kCcq#rq|n%)GpN&OLYLZ1>L4NJi3GMxA}_ zG~;j^=Ho`p#I=|N^DBPB0epcS_!xg-pt%Vz;1`^($ugF;j=pCO-o}538dryPSl3+i zJeOf3P9bVcC#>@sc#fWA8ulPMc{hEA>F8>1hJ!FVVJ~bVN@DyrgHvUFb*&x`KaGfaIO1y~&8gFaGf%h(U z;}HJD6_|lLa3{v1ow(Sw)Fzkqx-0B=co>(XDpz6^JU*(Yifw9X+wmNt3d+2M$*2=A z)G_uCqB_giw#vAx{25WQ+qco2pDwKN_#Vp2eh>p!Uuvem(Tk!{?<8$j#n%58& zD*6`AEGhS+o!#kX6lcK|h>pv>j?(N!RH*1dq>P6Bdkr4PEBF+xUeE@lcrn`%9appu zr70W0PJ5fM05-Z=yp>#nH(=k7>XiSx7b)H-RUIz}eQCT$%?mhKFG0I;(0Un%pj`S`2`aPoKRM~}E8N_w?D3RQY7KA^bQ~>*`}^XZ*41ZU&Gm@N>%6T*J_|Vm zc@I2g_^;-1`FGavF=2}L(aSIoenU=^JK-n1A2y;{+^t%7p5yS5<#|(S9(RxVRaZF* zXQ+1K2RI&MhW|PjZ+fD0*|w%}evb-QabNE|ehsQ(m+@j<4?aSAT;uBN`mq#V&|2i@ z&;>U%c^69Y_U*pL+gkB!ch&s>U*RPD%KcD$a_wzpv%9vkyoW`Nx6R`oy%*0v+htqa zC)LWch$x9ow>pp^vSjSti&c4SL)@}3=M2)Lr z8OwI`Gi%vaqHf&9y8DcN==L1`(CxrXKXiYHU8vkuj$|Y~&(P2r5%n+#AtKcx00000 LNkvXXu0mjfQMxHj literal 0 HcmV?d00001 diff --git a/app/Resources/icons8-project-management-48 (1).png b/app/Resources/icons8-project-management-48 (1).png new file mode 100644 index 0000000000000000000000000000000000000000..0bf8a033a7cd437ef9291fae94193af072ba844b GIT binary patch literal 837 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 literal 0 HcmV?d00001 diff --git a/app/Resources/icons8-spa-flower-96.png b/app/Resources/icons8-spa-flower-96.png new file mode 100644 index 0000000000000000000000000000000000000000..b353220b6c97790ce085f121ceb7b80b2696f013 GIT binary patch literal 954 zcmV;r14aCaP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf6951U69E94oEQKA15ZgrK~!i%?b$i3 z4N)A&@n@&7MTmU~Dv7N@h^4VL8iE2Hi5C<|Y&8WMA+bcS5)_t1BuFSw5G0n$P9!Ku z?7lxaCpquT#!QSvcWgjCauh%D0yl93-%*$77~PJSu=Zdhs4cZw^Z79r_h2>B z5$<9lN@YA=!&-5Qix`ICxa7*pcm?&PQ1sK)y65%l`HX{ACzXDQo=DC%SSu=`AAB@# z)hS{tlF}8=VXdTyrSQ?bRi}t&P~Y0*p8_%ox=hxZ6>h35chg!j3L3WLW-Y8eV7ZMW zco39%AJNCreEhwZ(Xw}fvOMZrZdze296JyH3wFZ}=;jmFS>uFds-wDEM$tMhAgt4# zjmXV9SPRFjG0Yrl_*Z9a?eyThMoLw2svK z#0<2FH5Sqs=M4t^{gfR&U7dp-P;{NvvIC%-*LrCDr0B3Y4&9V=KK#Hp^v5!!Jlwp; zP-x7Qn}e|SKr zgv(phrrNGK8i;*?)rhAnOc>qr<2q9j<^g&bi&3_S$HE`UM(Wb`5NPaT?V(0en}bo8oPpIyBb`RwG6nI&N+YSQ z$*5~~!D_4#a!=ke(NI7`TC2hKJaVk>+Or=;-q{w8-Z137cG1JiA!ryPhh3Rf*V8%+ zzr85CrF#0(lhhLESRDxcnWsNHuHqE*^c6-U(bdrKK>v~H?VrZ^dh4dwkY}NdtWu@Q c|C5%MKbnR>AQDPZegFUf07*qoM6N<$g7xdb4gdfE literal 0 HcmV?d00001 diff --git a/app/Resources/icons8-xbox-controller-96.png b/app/Resources/icons8-xbox-controller-96.png new file mode 100644 index 0000000000000000000000000000000000000000..e428d9220c1bc8b76b285824affda23c9419de5f GIT binary patch literal 724 zcmV;_0xSKAP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf6951U69E94oEQKA0%=J^K~!i%?U>7I z6hRb*N5#v+3kpWF6LF<0QAE_Zjt>xbF$A|>9zeXjiTViQ1>L&M#sm}tDskZj!7Pj* zD5&4>R7+2Js`^$P2CNT0x~He=oYU1+-90nNWHOmd=6_=sUco2$3BTecY>N7*uVN_H zWmN25Igan~m*F?#SjbRY#a519*oez$B~GbwC|6Rp<3qF(_Td9m&LnKY$7m($Q>_c- z?#xxR60C>H-HF|}idOI{U*RFA_N_Kmen!<0q-wFuVKhL5d#J*t_CuV(sp0NF?7<7e z-F7UYH8NVz`*9!McgK9|UICqew7!$7p%q8a3Mf^4!6aI3syvP5!u`)>52HzJ3eC8! zg@SfvgWDGPpUa$g+eSP`eEmPW*;Pim{yK%r`?%`LQobg|CD zkExn!6PrGkuTi781$9e&gMOQ?3%~X>YBPOQd>NgD-$o-}(Du$%YZ~1|t8+|^e3`B2 zw@I<^Z(t=0XmyV1KS|G`)vl|mEs93xCt96jYR>BVCvebh$C;5D{THb3xOuocwx~wkrvKny0j=_;=n=0t z8jL2YPoviZhZb^>Mf6vF$RBtSyE2c8W#zDZhC!~Q)yY@?sGY-9Oyd`{a`|4vAUp9b zS{(~N;4w_iQGAD1&cYSkfl*H48d?Ef;sNXn#eRWSZe4ZNRtx<~`iSKKPf`C8^o?>T zS2?$?`YCM01l~r?&AYe_*9+ykgUYQM_F^WJ$z(DfgTZfJ5P!^YM5FWo0000 0) Program.wmi.DeviceSet(ASUSWmi.ScreenOverdrive, overdrive); + //Program.config.setConfig("screen_auto", 0); InitScreen(); + Logger.WriteLine("Screen " + frequency.ToString() + "Hz"); } @@ -572,6 +583,8 @@ namespace GHelper int frequency = NativeMethods.GetRefreshRate(); int maxFrequency = Program.config.getConfig("max_frequency"); + bool screenAuto = (Program.config.getConfig("screen_auto") == 1); + if (frequency < 0) { button60Hz.Enabled = false; @@ -586,7 +599,7 @@ namespace GHelper button120Hz.Enabled = true; button60Hz.BackColor = SystemColors.ControlLightLight; button120Hz.BackColor = SystemColors.ControlLightLight; - labelSreen.Text = "Laptop Screen"; + labelSreen.Text = "Laptop Screen: " + frequency + "Hz"; } int overdrive = 0; @@ -601,8 +614,13 @@ namespace GHelper button60Hz.Activated = false; button120Hz.Activated = false; + buttonScreenAuto.Activated = false; - if (frequency == 60) + if (screenAuto) + { + buttonScreenAuto.Activated = true; + } + else if (frequency == 60) { button60Hz.Activated = true; } @@ -857,8 +875,7 @@ namespace GHelper public void AutoScreen(PowerLineStatus Plugged = PowerLineStatus.Online) { - int ScreenAuto = Program.config.getConfig("screen_auto"); - if (ScreenAuto != 1) return; + if (Program.config.getConfig("screen_auto") != 1) return; if (Plugged == PowerLineStatus.Online) SetScreen(1000, 1); @@ -871,8 +888,8 @@ namespace GHelper public bool AutoGPUMode(PowerLineStatus Plugged = PowerLineStatus.Online) { - int GpuAuto = Program.config.getConfig("gpu_auto"); - if (GpuAuto != 1) return false; + bool GpuAuto = Program.config.getConfig("gpu_auto") == 1; + if (!GpuAuto) return false; int eco = Program.wmi.DeviceGet(ASUSWmi.GPUEco); int mux = Program.wmi.DeviceGet(ASUSWmi.GPUMux); @@ -917,6 +934,7 @@ namespace GHelper buttonUltimate.Visible = (mux == 1); } + ButtonEnabled(buttonOptimized, true); ButtonEnabled(buttonEco, true); ButtonEnabled(buttonStandard, true); ButtonEnabled(buttonUltimate, true); @@ -932,6 +950,7 @@ namespace GHelper public void SetEcoGPU(int eco) { + ButtonEnabled(buttonOptimized, false); ButtonEnabled(buttonEco, false); ButtonEnabled(buttonStandard, false); ButtonEnabled(buttonUltimate, false); @@ -968,9 +987,13 @@ namespace GHelper { int CurrentGPU = Program.config.getConfig("gpu_mode"); + Program.config.setConfig("gpu_auto", 0); if (CurrentGPU == GPUMode) + { + VisualiseGPUMode(); return; + } var restart = false; var changed = false; @@ -987,7 +1010,7 @@ namespace GHelper } else if (GPUMode == ASUSWmi.GPUModeUltimate) { - DialogResult dialogResult = MessageBox.Show(" Ultimate Mode requires restart", "Reboot now?", MessageBoxButtons.YesNo); + DialogResult dialogResult = MessageBox.Show("Ultimate Mode requires restart", "Reboot now?", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { Program.wmi.DeviceSet(ASUSWmi.GPUMux, 0); @@ -1012,60 +1035,55 @@ namespace GHelper if (changed) { Program.config.setConfig("gpu_mode", GPUMode); - HardwareMonitor.RecreateGpuTemperatureProviderWithRetry(); } if (restart) { - VisualiseGPUMode(GPUMode); + VisualiseGPUMode(); Process.Start("shutdown", "/r /t 1"); } } - public void VisualiseGPUAuto(int GPUAuto) - { - checkGPU.Checked = (GPUAuto == 1); - } - - public void VisualiseScreenAuto(int ScreenAuto) - { - checkScreen.Checked = (ScreenAuto == 1); - } - public void VisualiseGPUMode(int GPUMode = -1) { if (GPUMode == -1) - { GPUMode = Program.config.getConfig("gpu_mode"); - } + + bool GPUAuto = (Program.config.getConfig("gpu_auto") == 1); buttonEco.Activated = false; buttonStandard.Activated = false; buttonUltimate.Activated = false; + buttonOptimized.Activated = false; switch (GPUMode) { case ASUSWmi.GPUModeEco: - buttonEco.Activated = true; + buttonOptimized.BorderColor = colorEco; + buttonEco.Activated = !GPUAuto; + buttonOptimized.Activated = GPUAuto; labelGPU.Text = "GPU Mode: iGPU only"; - Program.trayIcon.Icon = GHelper.Properties.Resources.eco; + Program.trayIcon.Icon = Properties.Resources.eco; break; case ASUSWmi.GPUModeUltimate: buttonUltimate.Activated = true; labelGPU.Text = "GPU Mode: dGPU exclusive"; - Program.trayIcon.Icon = GHelper.Properties.Resources.ultimate; + Program.trayIcon.Icon = Properties.Resources.ultimate; break; default: - buttonStandard.Activated = true; + buttonOptimized.BorderColor = colorStandard; + buttonStandard.Activated = !GPUAuto; + buttonOptimized.Activated = GPUAuto; labelGPU.Text = "GPU Mode: iGPU + dGPU"; - Program.trayIcon.Icon = GHelper.Properties.Resources.standard; + Program.trayIcon.Icon = Properties.Resources.standard; break; } + } @@ -1123,14 +1141,6 @@ namespace GHelper } - private void checkScreen_CheckedChanged(object? sender, EventArgs e) - { - if (sender is null) return; - CheckBox check = (CheckBox)sender; - Program.config.setConfig("screen_auto", check.Checked ? 1 : 0); - } - - } From 74846097dbc924b2554665bf2314ed77ecc1edd9 Mon Sep 17 00:00:00 2001 From: seerge Date: Fri, 17 Mar 2023 22:39:53 +0100 Subject: [PATCH 2/4] Optimized icons --- app/Resources/icons8-bicycle-48 (1).png | Bin 948 -> 924 bytes app/Resources/icons8-fan-48.png | Bin 1082 -> 992 bytes app/Resources/icons8-fiat-500-48.png | Bin 858 -> 784 bytes app/Resources/icons8-game-controller-48.png | Bin 562 -> 611 bytes app/Resources/icons8-leaf-48.png | Bin 965 -> 851 bytes .../icons8-project-management-48 (1).png | Bin 837 -> 837 bytes app/Resources/icons8-rocket-48.png | Bin 819 -> 763 bytes app/Resources/icons8-spa-flower-48.png | Bin 1067 -> 949 bytes app/Settings.Designer.cs | 8 ++++---- app/Settings.cs | 1 - 10 files changed, 4 insertions(+), 5 deletions(-) diff --git a/app/Resources/icons8-bicycle-48 (1).png b/app/Resources/icons8-bicycle-48 (1).png index bdc94b800aab5288dd2a80b3baf6784220ae2850..8843bf44f34ca12d203583e23f5bd31810eaeceb 100644 GIT binary patch delta 915 zcmV;E18n@X2b>2!iBL{Q4GJ0x0000DNk~Le0000W0000W2nGNE0CReJ^Z)<=0drDE zLIAGL9O(c600d`2O+f$vv5yPfFA{XhLbQA8o@u&B=`nJ3kW{J0;mUx$~P6zKz}$4 zt>GOUgisS03T@yT42P#sQ8j}rpryLJBZL~jLI^MPf<*PxYbEp^wwG>`eV$ypP2>W! zUVR4_Qlm!0<=?Oz^6Cq*-}|63sQvH}Y`+L?p+-%C7_5k}Hq;dMK)k;Toj|!@+g`&A zD92tUw?L1LDcvUO4E;;DiS-9y6n|_47gHN7Bk6umnse2RZ@`p-5xlE!a;lbpVS^ENCT6fI-k6 zs#Pnn^L=;&*{Y^19XK!3Ev&Wp3BPZ)rAK*J(C%IXfsAU-O>I)ASfAw9AR z;{AGX;A!Aw*>AJBpxsc8Cv);FM2Fij69$0w{R~9$uzYp_rL}s>_UB;bvm8fTmZdNs zUS!&Kf~lM2r7m(3Q^knRsyVEI_|PD8yN;*NR=|m1DUP6ZtgY}eeLe~XuvU92+V%mG zEjyGpSUB8@B6*mEm)wd?5Px3T1-f4AV?qsa;pft4)3PTh52Z-$%{GKvJiW5PQBx(9 zXV4qec+iu!8}(`~_-vL;w*j>Tv&HtuR>EW-kk!foYAdaB0*_Z^J&4NsB)x8c#bEFn zcuLp%t#UC{*TL1CiiT8!!FnGUX!di@J!s~ETN4@q4sIXcRVPdI1AnmJ1shhU4|*V5 z%d^tW=DGch1%Ep7>IRR%J}$PpvONo8s}|W{)r-6}INU2!N|!p(I50qcFQ!wGjPex_ z{Z4=Zr&k?I%bh%`rUfr4)4nuM<3kUVd*I*AEeOkH2V~uzm#Jvkj{X|t7#>u*JuH{m zP(F=ay(KdCIgk5prA#YweO_9%7vcvbkCr?6FVYh|U>Rt=lRkvCU{(B`<$37|e>}H< pap73!!990@mHZE>(|@h1s-HLcEo>+Mu#5lz002ovPDHLkV1l+WoSFat delta 940 zcmV;d15^B*2ebzviBL{Q4GJ0x0000DNk~Le0000m0000m2nGNE09OL}hmk%Qe`ZNU zK~#90?U_qx6hRP%KaCqSMg!tS)U$|+Cccu37x96Q2)+(pJm^6Y6g&m=q#@B91PxK} z5J{qfUKLSqiW>2S;4AAB<0@!CF$tQO$4E;rv_;QM@9Zv&I6n;Rc2~_`-Bn#xy$cBv zBuMbTVJ(mWypX3K=mhovrNjsye;kbW#PblCMojQC!U8mxfu$n_EvToHyH`qvh)T^QEoWBlbphET2tE(mih@(UdJ zcEx1@a%VlDA%yQ$d=n2qSXvp>fw{_SQf2@F&0dFj> zEpgO8AF}8sii{>fI0Vekp^1|Q-xA;70b`0~{5(qma^11XK)29+3{>c@(;Qz~4CBY@ z9BdN32g)7wPgy*djrWUU?pUFWUIZKkt^r>x?pGnR@JPsX>ultgQa$mk2Wo(3V9?^p6gkA`NOh|rL#(ot#e@~2pRu^#SQ z3Kza|{kg@m^H#omnk&__=Zbvz>iuqA4LP>Aqx#Yl{WbvQQZH1%9p>wbMuJ9H*-{V63XU!VTmuCq-n{@h5AAVC8D!f&eC*QV^))*1i+ O002ovPDHLk0$_rKU$Tz? diff --git a/app/Resources/icons8-fan-48.png b/app/Resources/icons8-fan-48.png index f1ca3a7276a512faf5f160d4f9b4f9b80bf08f49..501975b8376b7710e7562a3f81a46de0bdda00f3 100644 GIT binary patch delta 984 zcmV;}11J2t2;c`kiBL{Q4GJ0x0000DNk~Le0000W0000W2nGNE0CReJ^Z)<=0drDE zLIAGL9O(c600d`2O+f$vv5yP_6v~A21>L?3oLCJ3x0$~Mu5bZVli}I| zCa^iN6KZN4MC^=tdkDGuaA}%jU_Gd&o^TcH>)0b8SH{(S9s@gJS`)yK#P7i!usGF{ zVT}IUZOBs}u*lfSt(MJpSGfnWUeKsPP)p{+L$Lo@=m-s@`>k+xa-Zi(BY)C?k;w<$v4n_L!rh^h6%14y5`g&$QOSJ{S(0;2L;BP6Cb4^?7QQ zJl&4Ud8{!FWCgTtYhiY)xZTvz$lbOMW`^3yQ!QO$ zPeOWNc?97p!!r?%LKu1-JSmk%z69G(LAt=z%b10g;;9z$rDzW>fqya2%7bVCr0d9P zi1(^(@ru03#0or89ZY%l#{j`zsCE#grI)OhzGLh)uBN=nxP>&tBQ+*j2iA1A)*f}=(_ZF4gn8@F(_r`5-@?E+8 zJcusCQ?T8zSiWaK7f>2tA47NoH0H15HOiYzwh+}q*K2rT%xifdD@*Wl7z^otM#@md zKch3?PPzw$YK#FPFB6`K9;uNJuGkvyv8*xwRZ?|zKLJQ-7ZG`DE@E#00000kBd%Yg&HRp1FQ01V19pS$E)eIdqE)A2IkYyk&Mo}UM{084;!pj1{?zBA7*h-{dhR?$fnh4lg~nO*}T=s zG4?D6URbJ=SBY)2V1ks< zb)F4woATv~i;}J?hJ?kzQpW~nxK0hQM}i$|k*QL?8158_ex($rf13tTBL}Yss8%<( z6Bho{2dq{$vP#Bu`bg;dZ^)c076-11Jpmi9<+~{nhyAn23}KXd{(ZOtm=2r+ehDw~ z4InRf=0pL+O`#g4vr)dUmLQDtYvjB24gp*Y*skzNp{^K**f{i4$v+n&h$Wx99RfI7 z;1C;f7>TP&X={kwe|-5#ZB7_QSsy5!GaQ}I11kf2G^l4CE&((uC3A-Km^fC?=f@xfp zvdSE8gFSKX-$yJRP>%v{M+C3|e`J8CzH}NH_vxvdnH~gDe_g?4v~Z*#y-0K` z%FF1(m*7P?f6ubtP-pi>Ye=Iq(}T27X?gQr(+C?%Wz46If04_2l0Paka$t4Nn{_?S zA@8`5Ao9YUf9j?2xMH-_`KKW^uctZO9YSeHIt{H)!Xz7{V`im6mC5HSdDd>}uz8g> zsgKu#sI^q5G*(|42i6r?c~enz!e!;8&U=^2B$z3jr`N-A!)=;;I_z*@giIs$3(fA7 tG|S2Am+@qWP~xhDe~c7SL=pVOAL%lcRA8Wo@&Et;2>?k&PDHLkV1lUe=6C=A diff --git a/app/Resources/icons8-fiat-500-48.png b/app/Resources/icons8-fiat-500-48.png index 41de29879bb843764679b9cd162ff9817f747c7d..3649c266fa76d496b32d700a2a54865553dc22da 100644 GIT binary patch delta 775 zcmV+i1Ni*f29O3miBL{Q4GJ0x0000DNk~Le0000W0000W2nGNE0CReJ^Z)<=0drDE zLIAGL9O(c600d`2O+f$vv5yPh!Nkl<7|TL}qaV?l<64GTL9J0uG!Stvt>#MYc)MF>$s^fG0hhwt~i^Lt+By?frh_q}K1 z{p$1Xx##?U=lt*g|NH;XE40LaAFa~Qyl9OPn1gv3jgEMY$2gC(xQ3T#@>qlC_p7_y_K#$Ew10ys350w!6?1jgHOuj(GS+^h>|%D0*NdcH<|a?FDp2 z#W54#;0>Q)8X}?thmvo9V+QUbuAf9VlpTZd0CA&*un;5Se6|A?^Z?v|*ByyH$c;AX zXGD9f#e8_fn>YuDc~oivjCZLx?|+cr!9`3*FN}kow==FB+gm5~Mknlt6&=5_95Etx zd@OvJ=dB};T}f9k1$CCcz1#+Sn!RzUvQx4M?hDy=)|OM#7d1Uu1uNMpc!3pogmU67 zo>m_w(G~;IA7ii>6A<-u7|T5vgeS0f4*xRL8KNc#>unaS6QA`3laT!SSbxJ?QM=-s zBPJp?FGrzpJpJM*xQv=R++pv-XIA-Zogc$(_Eq&^5-z<1aJxMMmsUBWWBy)ThWT!0 z=6{4M!|3gwSa!!?1DE3lI7gljChb6XW{GBlWc6v@p)qCJ8wKL}8Q+h7T zO~e;e-bgf*?~jNnP~l*DV1FTcAv)yyekFY2OvXb*QYlKwcXKL?hjX93cm^F1u^!nr zc^b-h(_8IOUWEm=5AOTUozV`phuY~e+{sSEB~+geFpA}Wg~jQASAN!njcs%a_RwnG zgg)>E6x*sBiRX%i#oU`-M{zViDe*g^oDD?Cs;XwcZ002ovPDHLk FV1hwQX*U1> delta 850 zcmV-Y1Fig!2HFN8iBL{Q4GJ0x0000DNk~Le0000m0000m2nGNE09OL}hmk%Pe*+9j zL_t(|ob8xNh!a5+hCjrOs1tF63?jH8dYXfRcoGNK(Vzzf58hM|1ko9H!H5S>;zh-a zbJU9-Mn(`1g5rh?ZpfghxFVxQA#QPWR9>hIMWwn^opev4^bZB0>eXNW>vX-PAx4ZC zG5%$Y12zF?fS15G;4AO~xCxv9f7St0s56WO4g)`cKaS%%unHJhYw=5g?f}Bg@fes} zEAg9w-YUcw$8X>mFr+`lZ}1TF9N1%-p95?J&H+C?_FhrJ{JOWZtik}R8HV(}J3k*9y2a1>pbXja4s=yFB1^^e0!zA)FTWnn%e-MlSIxY5> zqqq}WEC;Riuyu6+6-rN8_Oyp7z5)1P9B|slK8ORTyVGge*A|BOF~Io{!liBK7!KSu z)_(z)fDYgQFh6MWn*=kvquu=HXu<>e50ykq7v`*YRv||JM0xlTfD?e z1h^fsc)z>R;`s0+i?6p4e;l+Jp9O}|zeoU6Rq{Lze6;A2q&iRE)MUxDlIDj}do%$1 z)#cXpJp%?6jXI3QS5algDzMyAimaA}iR!)57t+)x4jDR67E5G(@&@&bCPS-)`$D;^ zPf7_~uSghLzhJ2jXIM5SfnC6T)%Rvqi?~CrRf{CBQ*mZB{_Ph2f0D4AGbW^3)Ugow z(W=IQ&W{*(m#b4rpnE`c=)2eYPmt3U8UQ~hj#g633ixxyHqYftgAkh78lnTO z74S>9SioL~15zHRYUsrb1_zL#t>0#aD61 zwF>y9z;s5&a>?4%Q)yJ><|UKF=8D}B^B1a7zXW5BcfhCs{G);Q0rK#1=UAK$;; zGv0MqWpJi)KKQt^XLj#Bd(W9Wsf2`kPo5i%5`1}a85{5M@ZvI?ZajXS zAYwkD5~#pB1%#hKGpZyT_(K7YRkS9$jTzj*H|bB8e8az}HB^EuexermjM@pGFbQaJ zeQz@T>5_6>N8S6bfKM&j0uu^=8h@tCX~{{8HDNCF&$W0^XNUgzN3?mKVn83-ja~&n zi&!j|^B9(4wBL6sU_H?2MzP|?IQZg55j3LsfR>rg1Mvv!ovNALx0p(F6RPNH=`ZWJqUg)mKMyuyFDkIxhUC1UgFX$eZ8&NV9CcvqCP9zC6WTYn0G-*|uA zm}U?yvmq?Ns42oJv~_wgpcL)--NsgonzyKOXpK#Lh#4=VejGz(dV;g4Ln-T}5t1@| zj;~QWtND~n)^V@q8$sKmxE#PjycQimdU0r*jxpCHVLU>;Uly-7xDk7)fymGR00000@?lJ1hNDniBL{Q4GJ0x0000DNk~Le0000m0000m2nGNE09OL}hmk%Qf8bME`enD;L3ub$m`?sLv`Ki&Z>7K_DVv6#mI0LQTEj}lvUXvKXeRNKHA!M~=J{f*M)?RH-SA z_(+qNs`BW`5H-95=sHIcSdu>qbCItul-{H zG5*v0?4w(cat@wIJYqnAQJNzjUFjj=Yrui|YXI3cWo3TKN7o9VMzh4Lf5tqC&I1ew zRU^5ewZ*H(Hi`BP3UEMcZ@Gz1NVIHFfE8L>ylUK%Xu_ZXleD&Y)p#LMZ@{9BHk|c& z7y4+Hc-7z+FWKY(WuI#`NwdVOM$O;=oit0lYCMo=tjPf~KJUUf&ANA6;Fv^*Fo!&O zlTUt)1rmJ#7)Jc00DO|Sd^tB^8-Pa=R$>m3a=9H#01{pevo3pE(jTdP7<8~3K~l}i zyZrJ}(?JXD{o>JTR^`I{0`djAYk*mYYA5LLBr~J-TinJ=VYZDI3H9kJ*VY|?dJ_!S o)vThrZ9EUG#bU8oEEdGfH%DAD79G|$v;Y7A07*qoM6N<$g73@qs{jB1 diff --git a/app/Resources/icons8-leaf-48.png b/app/Resources/icons8-leaf-48.png index 559bed1bda94ee7e2d158315e9541d9d9713341b..a863dc6b87287f6aac666042c0fe566cc89f637b 100644 GIT binary patch delta 843 zcmV-R1GN0b2h#>ViBL{Q4GJ0x0000DNk~Le0000W0000W2nGNE0CReJ^Z)<=0drDE zLIAGL9O(c600d`2O+f$vv5yPiiNklrKE%b0|NswKoTVb84&{`3`AbZJINz?zaM$?`{}Ma9p|2N?)|7RwSRG(3JcZ$e_rZl)I$%DmnWv2$HM0&2-c zxj17XOMAfgyn|5=6lp40Oq^r{8~u423J<~TaN%h!gm2*c7CDeqR`kw=p5UZqa2@hw z>2>#};1vf_x&!WB&8$9ibp~ARWia51v=hR`;~Yq75ZniC&O1<~aQ{&#N`JM1@By?x z4OwNkGu#4gUO13c))928K0kx`TT2G(X6X9oSEX_YOx3i$f)!K6yK|*0U9A^Ml-4Xw zfhf0+q1L6-32uUR&mBlA%L5Te!=YB*dNgamJU9ARK-TV67l@<$YXMnW1+G^2FLfY8 zemu(aDagBW4NUJ5ZM`WAHGdIe!W*!=Nmf8pDFXE^%z!+3VHr=_o7RQ$Sk{3P#Jha~ zD32w1!RVo)@@#R^-bIgbpp1N}`5hHZPC|TK_JQY{Cwm05K>HIA8Bmg&WY8h;YcOSeY=c{}cg zNKG3IkHo+G^v<{qParZx4uf|~X<7fb!AFRfJcEs3Sq-^!OKaGqvHov@;6-9beWM%WLi*o$GTBu6pH))C4 VwQ<}wP5=M^07*qoL?6QX`~Lq%q|Z9*7t6;P!w-Gm%Tfh;n(5 zLQ_a#O38Jk%t(@Wn4#Qb403A>bF{Qh?Y`DId#`o&9%t(O>w7t^@4xffs>;dY4-@qfFe>Z6iC2kpT9{3K#3~>SIL>eIrm<${Nz9tYI6S0*v zS<|b5#(<(@p7^5&{a-Ku*a0*J5c&o<1FSPFsV6|U_7vU~SPy*h5#0ck1H~eLm7%Sg zh<3qD;As-kKYdz~Mw*epzRXT-)mC9 z7Q?bx>cCSX1nu`J(XFD-f8nm4rYWS_yj$=b^=W@sv{z2n8l{5dBhbsymA(*Mvwd>* ziuMOw25?-Es9AKuRKcUHbxwe)7xP4oOUHGBWQv=9&Iz8=0dk5(j`Ca9kn2Csfuqn+ z*Oe9VL!QX_;L!I!FXAO}IT4Quj(ZjsJtlmSHGT;aRh4Wo(ohZ;e+SIXHS8N}yb~lv zmif}-H|m)Uf_#G~vc`2mveF`Vp5XwrIlV`T+{X_3*(6A61LpPDr>!^lhGpM#ME*?& z{R}bK=eYs$szr`+vEwZJt`Hpia72w^Ee=l7evM)2s24a}ToW7%TnA8OD5npBfeB7r zS#|0yHf|gRhP#LQf6W=&4YR7e&2&$jG5R9!ZSyUlefC>E%GjlZEW^5v$1Q!;d@Fu$ zbF|$Bdf+KLQHdNwT~8L99s0-yt_q&_VP09Y^rc&R8yQuO;;Ri@>UI`7#v7hL;&Dn3 zG!9jzEX(q0^HG6tV%z<m0Gcix7M}%Qv30E_=(O~T2(VXCPo|xbf%r7qKXZp}^(5JIxpSjH9 zPmTw`d?J9n+Qsw+4qBT#1Jm^1O!xKUuc~6tfGfZ*eF#R1dM&&~3o+STEgb;s5{u07*qoM6N<$f|sSiZU6uP diff --git a/app/Resources/icons8-project-management-48 (1).png b/app/Resources/icons8-project-management-48 (1).png index 0bf8a033a7cd437ef9291fae94193af072ba844b..101f6812900ae342171f3541d1aee94e455473a0 100644 GIT binary patch delta 827 zcmV-B1H}Br2E_(GiBL{Q4GJ0x0000DNk~Le0000W0000W2nGNE0CReJ^Z)<=0drDE zLIAGL9O(c600d`2O+f$vv5yPNxK3t3Q>wsux*C`t(t3meHohLDXRL*{w>{qjDy)9v2xJ>R`wef;a! zd++m}^FC*I&hwl~3tA4p3npo3M%{~Nm+7A!z?kCMC0YcpU<>rp(4>w)#K?XPIe&8I zI=9nD*a*#NBwU9Wz%>{SS!#n1V8>4|8B)0_<6$n0(okq6oQH$(8p3(-81}(Mux~@@ zz?tiO1N4N@Oz;EGzz;eQ)d%iFtp`ez+S4f?>?Au@$ z+$?N?Z5Kk8baDZHf}MZC6>!OWfPZo}JK+b|<~fXpkg=uBci&+RxN2E)=HdJftblY| zLY|%&z$pziIt#w@TN5?pXcolM>OA(mo>qgiv+YCZ4Iu}t&3E6xSSpntxD0l3+0Ffp zWK_Qg+XhEr2F!-zg)Ojc=^&h~(QXF^68l|G?sx6cbE)6JJ8%N&JMGmY?0?KsLi53+ zXot-jO0)x9W&`vyqz>gRc!X`U4yvkc7+MSwRMRw+s6QC(1Hola^TJ)24$-EX;>)UG zx8j*oHC?SIU>3a!mmqWo%nQ-RV6Do_L`rBLSPz`RRt+7Ld+c%Zo5M78RAb>OH~_O= zcH-zP8TIGD0T{)bAXf{(RDbTC$2K;lsSxM;5tx|DWL@x>*~ij84qDP4h*bO%jE8!u zxE~yVaBc=&1ubh39D_)+ZpRI?R!(7ow-YYvr zyCL#IihG?N%`7#OCcP=G1&dW&ySy!*hLd0k|6f$8`~gUC00V~h?3@4q002ovPDHLk FV1oW0cuxQT delta 828 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 diff --git a/app/Settings.Designer.cs b/app/Settings.Designer.cs index 6c2c6376..f1e3edb7 100644 --- a/app/Settings.Designer.cs +++ b/app/Settings.Designer.cs @@ -528,10 +528,10 @@ namespace GHelper tableGPU.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F)); tableGPU.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F)); tableGPU.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F)); - tableGPU.Controls.Add(buttonOptimized, 0, 0); - tableGPU.Controls.Add(buttonEco, 1, 0); - tableGPU.Controls.Add(buttonStandard, 2, 0); - tableGPU.Controls.Add(buttonUltimate, 3, 0); + tableGPU.Controls.Add(buttonEco, 0, 0); + tableGPU.Controls.Add(buttonStandard, 1, 0); + tableGPU.Controls.Add(buttonUltimate, 2, 0); + tableGPU.Controls.Add(buttonOptimized, 3, 0); tableGPU.Location = new Point(15, 48); tableGPU.Margin = new Padding(4, 2, 4, 2); tableGPU.Name = "tableGPU"; diff --git a/app/Settings.cs b/app/Settings.cs index ce9df821..f9dcc11d 100644 --- a/app/Settings.cs +++ b/app/Settings.cs @@ -570,7 +570,6 @@ namespace GHelper if (overdrive > 0) Program.wmi.DeviceSet(ASUSWmi.ScreenOverdrive, overdrive); - //Program.config.setConfig("screen_auto", 0); InitScreen(); Logger.WriteLine("Screen " + frequency.ToString() + "Hz"); From 57673204375f6198044106adb2f9f422ebed421e Mon Sep 17 00:00:00 2001 From: seerge Date: Sat, 18 Mar 2023 15:13:34 +0100 Subject: [PATCH 3/4] Fixes for scaling, and layout --- app/App.config | 2 +- app/Fans.cs | 2 +- app/GHelper.csproj | 12 +- app/HighDpiHelper.cs | 67 ++++++ app/RoundedButton.cs | 14 +- app/Settings.Designer.cs | 458 ++++++++++++++++++++++----------------- app/Settings.cs | 137 ++++++++++-- app/app.manifest | 2 +- 8 files changed, 455 insertions(+), 239 deletions(-) create mode 100644 app/HighDpiHelper.cs diff --git a/app/App.config b/app/App.config index 3a6bb535..0d099bd0 100644 --- a/app/App.config +++ b/app/App.config @@ -1,7 +1,7 @@  - + diff --git a/app/Fans.cs b/app/Fans.cs index d2775306..c22133ae 100644 --- a/app/Fans.cs +++ b/app/Fans.cs @@ -126,7 +126,7 @@ namespace GHelper { int boost = NativeMethods.GetCPUBoost(); if (boost >= 0) - comboBoost.SelectedIndex = boost; + comboBoost.SelectedIndex = Math.Min(boost,5); } private void ComboBoost_Changed(object? sender, EventArgs e) diff --git a/app/GHelper.csproj b/app/GHelper.csproj index 7376d742..a03a05ae 100644 --- a/app/GHelper.csproj +++ b/app/GHelper.csproj @@ -16,9 +16,15 @@ x64 False True - 0.30 + 0.31 + + + + + + @@ -102,8 +108,4 @@ - - - - \ No newline at end of file diff --git a/app/HighDpiHelper.cs b/app/HighDpiHelper.cs new file mode 100644 index 00000000..c94abed4 --- /dev/null +++ b/app/HighDpiHelper.cs @@ -0,0 +1,67 @@ +using System.Drawing.Drawing2D; + +public static class HighDpiHelper +{ + public static void AdjustControlImagesDpiScale(Control container, float baseScale = 2) + { + var dpiScale = GetDpiScale(container).Value; + AdjustControlImagesDpiScale(container.Controls, dpiScale / baseScale); + } + + public static void AdjustButtonDpiScale(ButtonBase button, float dpiScale) + { + var image = button.Image; + + if (image == null) + return; + + button.Image = ScaleImage(image, dpiScale); + } + + private static void AdjustControlImagesDpiScale(Control.ControlCollection controls, float dpiScale) + { + foreach (Control control in controls) + { + var button = control as ButtonBase; + if (button != null) + AdjustButtonDpiScale(button, dpiScale); + + AdjustControlImagesDpiScale(control.Controls, dpiScale); + } + } + + public static Lazy GetDpiScale(Control control) + { + return new Lazy(() => + { + using (var graphics = control.CreateGraphics()) + return graphics.DpiX / 96.0f; + }); + } + + private static Image ScaleImage(Image image, float dpiScale) + { + var newSize = ScaleSize(image.Size, dpiScale); + var newBitmap = new Bitmap(newSize.Width, newSize.Height); + + using (var g = Graphics.FromImage(newBitmap)) + { + // According to this blog post http://blogs.msdn.com/b/visualstudio/archive/2014/03/19/improving-high-dpi-support-for-visual-studio-2013.aspx + // NearestNeighbor is more adapted for 200% and 200%+ DPI + + var interpolationMode = InterpolationMode.HighQualityBicubic; + if (dpiScale >= 2.0f) + interpolationMode = InterpolationMode.NearestNeighbor; + + g.InterpolationMode = interpolationMode; + g.DrawImage(image, new Rectangle(new Point(), newSize)); + } + + return newBitmap; + } + + private static Size ScaleSize(Size size, float scale) + { + return new Size((int)(size.Width * scale), (int)(size.Height * scale)); + } +} diff --git a/app/RoundedButton.cs b/app/RoundedButton.cs index 5f33d1b9..6c1b50d4 100644 --- a/app/RoundedButton.cs +++ b/app/RoundedButton.cs @@ -1,4 +1,5 @@ using System.ComponentModel; +using System.Drawing; using System.Drawing.Drawing2D; namespace CustomControls @@ -33,6 +34,7 @@ namespace CustomControls } } + public RoundedButton() { this.FlatStyle = FlatStyle.Flat; @@ -53,19 +55,23 @@ namespace CustomControls return path; } + protected override void OnPaint(PaintEventArgs pevent) { base.OnPaint(pevent); + float ratio = pevent.Graphics.DpiX / 192.0f; + int border = (int)(ratio * borderSize); + Rectangle rectSurface = this.ClientRectangle; - Rectangle rectBorder = Rectangle.Inflate(rectSurface, -borderSize, -borderSize); + Rectangle rectBorder = Rectangle.Inflate(rectSurface, -border, -border); Color borderDrawColor = activated ? borderColor : Color.Transparent; - using (GraphicsPath pathSurface = GetFigurePath(rectSurface, borderRadius+borderSize)) + using (GraphicsPath pathSurface = GetFigurePath(rectSurface, borderRadius+ border)) using (GraphicsPath pathBorder = GetFigurePath(rectBorder, borderRadius)) - using (Pen penSurface = new Pen(this.Parent.BackColor, borderSize)) - using (Pen penBorder = new Pen(borderDrawColor, borderSize)) + using (Pen penSurface = new Pen(this.Parent.BackColor, border)) + using (Pen penBorder = new Pen(borderDrawColor, border)) { penBorder.Alignment = PenAlignment.Outset; pevent.Graphics.SmoothingMode = SmoothingMode.AntiAlias; diff --git a/app/Settings.Designer.cs b/app/Settings.Designer.cs index f1e3edb7..014593c7 100644 --- a/app/Settings.Designer.cs +++ b/app/Settings.Designer.cs @@ -34,9 +34,9 @@ namespace GHelper panelMatrix = new Panel(); checkMatrix = new CheckBox(); tableLayoutMatrix = new TableLayoutPanel(); + comboMatrix = new ComboBox(); buttonMatrix = new Button(); comboMatrixRunning = new ComboBox(); - comboMatrix = new ComboBox(); pictureMatrix = new PictureBox(); labelMatrix = new Label(); panelBattery = new Panel(); @@ -58,15 +58,17 @@ namespace GHelper buttonTurbo = new RoundedButton(); buttonFans = new Button(); panelGPU = new Panel(); + labelTipGPU = new Label(); pictureGPU = new PictureBox(); labelGPU = new Label(); labelGPUFan = new Label(); tableGPU = new TableLayoutPanel(); - buttonOptimized = new RoundedButton(); buttonEco = new RoundedButton(); buttonStandard = new RoundedButton(); + buttonOptimized = new RoundedButton(); buttonUltimate = new RoundedButton(); panelScreen = new Panel(); + labelTipScreen = new Label(); tableScreen = new TableLayoutPanel(); buttonScreenAuto = new RoundedButton(); button60Hz = new RoundedButton(); @@ -82,7 +84,7 @@ namespace GHelper pictureColor = new PictureBox(); buttonKeyboardColor = new Button(); pictureKeyboard = new PictureBox(); - label1 = new Label(); + labelKeyboard = new Label(); panelMatrix.SuspendLayout(); tableLayoutMatrix.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)pictureMatrix).BeginInit(); @@ -109,23 +111,26 @@ namespace GHelper // // panelMatrix // + panelMatrix.AutoSize = true; + panelMatrix.AutoSizeMode = AutoSizeMode.GrowAndShrink; panelMatrix.Controls.Add(checkMatrix); panelMatrix.Controls.Add(tableLayoutMatrix); panelMatrix.Controls.Add(pictureMatrix); panelMatrix.Controls.Add(labelMatrix); panelMatrix.Dock = DockStyle.Top; - panelMatrix.Location = new Point(16, 764); - panelMatrix.Margin = new Padding(4); + panelMatrix.Location = new Point(10, 758); + panelMatrix.Margin = new Padding(8); panelMatrix.Name = "panelMatrix"; - panelMatrix.Size = new Size(818, 180); + panelMatrix.Padding = new Padding(0, 0, 0, 12); + panelMatrix.Size = new Size(816, 168); panelMatrix.TabIndex = 33; // // checkMatrix // checkMatrix.AutoSize = true; checkMatrix.ForeColor = SystemColors.GrayText; - checkMatrix.Location = new Point(28, 109); - checkMatrix.Margin = new Padding(4, 2, 4, 2); + checkMatrix.Location = new Point(24, 116); + checkMatrix.Margin = new Padding(8, 4, 8, 4); checkMatrix.Name = "checkMatrix"; checkMatrix.Size = new Size(249, 36); checkMatrix.TabIndex = 44; @@ -135,71 +140,73 @@ namespace GHelper // tableLayoutMatrix // tableLayoutMatrix.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + tableLayoutMatrix.AutoSize = true; + tableLayoutMatrix.AutoSizeMode = AutoSizeMode.GrowAndShrink; tableLayoutMatrix.ColumnCount = 4; tableLayoutMatrix.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F)); tableLayoutMatrix.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F)); tableLayoutMatrix.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F)); tableLayoutMatrix.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F)); - tableLayoutMatrix.Controls.Add(buttonMatrix, 0, 0); - tableLayoutMatrix.Controls.Add(comboMatrixRunning, 0, 0); tableLayoutMatrix.Controls.Add(comboMatrix, 0, 0); - tableLayoutMatrix.Location = new Point(15, 52); - tableLayoutMatrix.Margin = new Padding(4); + tableLayoutMatrix.Controls.Add(buttonMatrix, 2, 0); + tableLayoutMatrix.Controls.Add(comboMatrixRunning, 1, 0); + tableLayoutMatrix.Location = new Point(16, 52); + tableLayoutMatrix.Margin = new Padding(8); tableLayoutMatrix.Name = "tableLayoutMatrix"; tableLayoutMatrix.RowCount = 1; tableLayoutMatrix.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); - tableLayoutMatrix.Size = new Size(780, 62); + tableLayoutMatrix.Size = new Size(780, 60); tableLayoutMatrix.TabIndex = 43; // + // comboMatrix + // + comboMatrix.Dock = DockStyle.Top; + comboMatrix.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point); + comboMatrix.FormattingEnabled = true; + comboMatrix.ItemHeight = 32; + comboMatrix.Items.AddRange(new object[] { "Off", "Dim", "Medium", "Bright" }); + comboMatrix.Location = new Point(4, 10); + comboMatrix.Margin = new Padding(4, 10, 4, 8); + comboMatrix.Name = "comboMatrix"; + comboMatrix.Size = new Size(187, 40); + comboMatrix.TabIndex = 41; + comboMatrix.TabStop = false; + // // buttonMatrix // buttonMatrix.BackColor = SystemColors.ButtonFace; buttonMatrix.Dock = DockStyle.Top; buttonMatrix.FlatAppearance.BorderSize = 0; - buttonMatrix.Location = new Point(395, 10); - buttonMatrix.Margin = new Padding(5, 10, 5, 10); + buttonMatrix.Location = new Point(394, 8); + buttonMatrix.Margin = new Padding(4, 8, 4, 8); buttonMatrix.Name = "buttonMatrix"; - buttonMatrix.Size = new Size(185, 42); + buttonMatrix.Size = new Size(187, 44); buttonMatrix.TabIndex = 43; buttonMatrix.Text = "Picture / Gif"; buttonMatrix.UseVisualStyleBackColor = false; // // comboMatrixRunning // - comboMatrixRunning.Dock = DockStyle.Fill; + comboMatrixRunning.Dock = DockStyle.Top; comboMatrixRunning.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point); comboMatrixRunning.FormattingEnabled = true; comboMatrixRunning.ItemHeight = 32; comboMatrixRunning.Items.AddRange(new object[] { "Binary Banner", "Rog Logo", "Picture" }); - comboMatrixRunning.Location = new Point(200, 10); - comboMatrixRunning.Margin = new Padding(5, 10, 5, 10); + comboMatrixRunning.Location = new Point(199, 10); + comboMatrixRunning.Margin = new Padding(4, 10, 4, 8); comboMatrixRunning.Name = "comboMatrixRunning"; - comboMatrixRunning.Size = new Size(185, 40); + comboMatrixRunning.Size = new Size(187, 40); comboMatrixRunning.TabIndex = 42; comboMatrixRunning.TabStop = false; // - // comboMatrix - // - comboMatrix.Dock = DockStyle.Fill; - comboMatrix.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point); - comboMatrix.FormattingEnabled = true; - comboMatrix.ItemHeight = 32; - comboMatrix.Items.AddRange(new object[] { "Off", "Dim", "Medium", "Bright" }); - comboMatrix.Location = new Point(5, 10); - comboMatrix.Margin = new Padding(5, 10, 5, 10); - comboMatrix.Name = "comboMatrix"; - comboMatrix.Size = new Size(185, 40); - comboMatrix.TabIndex = 41; - comboMatrix.TabStop = false; - // // pictureMatrix // pictureMatrix.BackgroundImage = Properties.Resources.icons8_matrix_desktop_48; pictureMatrix.BackgroundImageLayout = ImageLayout.Zoom; - pictureMatrix.Location = new Point(25, 10); - pictureMatrix.Margin = new Padding(4, 2, 4, 2); + pictureMatrix.Location = new Point(24, 15); + pictureMatrix.Margin = new Padding(4); pictureMatrix.Name = "pictureMatrix"; - pictureMatrix.Size = new Size(36, 36); + pictureMatrix.Size = new Size(32, 32); pictureMatrix.TabIndex = 39; pictureMatrix.TabStop = false; // @@ -207,8 +214,8 @@ namespace GHelper // labelMatrix.AutoSize = true; labelMatrix.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point); - labelMatrix.Location = new Point(64, 12); - labelMatrix.Margin = new Padding(4, 0, 4, 0); + labelMatrix.Location = new Point(60, 14); + labelMatrix.Margin = new Padding(8, 0, 8, 0); labelMatrix.Name = "labelMatrix"; labelMatrix.Size = new Size(170, 32); labelMatrix.TabIndex = 38; @@ -216,16 +223,19 @@ namespace GHelper // // panelBattery // + panelBattery.AutoSize = true; + panelBattery.AutoSizeMode = AutoSizeMode.GrowAndShrink; panelBattery.Controls.Add(labelVersion); panelBattery.Controls.Add(labelBattery); panelBattery.Controls.Add(pictureBattery); panelBattery.Controls.Add(labelBatteryTitle); panelBattery.Controls.Add(trackBattery); panelBattery.Dock = DockStyle.Top; - panelBattery.Location = new Point(16, 944); - panelBattery.Margin = new Padding(4); + panelBattery.Location = new Point(10, 926); + panelBattery.Margin = new Padding(8); panelBattery.Name = "panelBattery"; - panelBattery.Size = new Size(818, 148); + panelBattery.Padding = new Padding(0, 0, 0, 12); + panelBattery.Size = new Size(816, 158); panelBattery.TabIndex = 34; // // labelVersion @@ -233,8 +243,8 @@ namespace GHelper labelVersion.AutoSize = true; labelVersion.Font = new Font("Segoe UI", 9F, FontStyle.Underline, GraphicsUnit.Point); labelVersion.ForeColor = SystemColors.ControlDark; - labelVersion.Location = new Point(26, 102); - labelVersion.Margin = new Padding(4, 0, 4, 0); + labelVersion.Location = new Point(25, 109); + labelVersion.Margin = new Padding(8, 0, 8, 0); labelVersion.Name = "labelVersion"; labelVersion.Size = new Size(44, 32); labelVersion.TabIndex = 37; @@ -243,10 +253,10 @@ namespace GHelper // labelBattery // labelBattery.Anchor = AnchorStyles.Top | AnchorStyles.Right; - labelBattery.Location = new Point(528, 12); - labelBattery.Margin = new Padding(4, 0, 4, 0); + labelBattery.Location = new Point(428, 9); + labelBattery.Margin = new Padding(8, 0, 8, 0); labelBattery.Name = "labelBattery"; - labelBattery.Size = new Size(258, 32); + labelBattery.Size = new Size(364, 44); labelBattery.TabIndex = 36; labelBattery.Text = " "; labelBattery.TextAlign = ContentAlignment.TopRight; @@ -255,34 +265,34 @@ namespace GHelper // pictureBattery.BackgroundImage = (Image)resources.GetObject("pictureBattery.BackgroundImage"); pictureBattery.BackgroundImageLayout = ImageLayout.Zoom; - pictureBattery.Location = new Point(25, 10); - pictureBattery.Margin = new Padding(4, 2, 4, 2); + pictureBattery.Location = new Point(24, 16); + pictureBattery.Margin = new Padding(4); pictureBattery.Name = "pictureBattery"; - pictureBattery.Size = new Size(36, 38); + pictureBattery.Size = new Size(32, 32); pictureBattery.TabIndex = 35; pictureBattery.TabStop = false; // // labelBatteryTitle // labelBatteryTitle.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point); - labelBatteryTitle.Location = new Point(66, 12); - labelBatteryTitle.Margin = new Padding(4, 0, 4, 0); + labelBatteryTitle.Location = new Point(60, 15); + labelBatteryTitle.Margin = new Padding(8, 0, 8, 0); labelBatteryTitle.Name = "labelBatteryTitle"; - labelBatteryTitle.Size = new Size(408, 36); + labelBatteryTitle.Size = new Size(393, 36); labelBatteryTitle.TabIndex = 34; labelBatteryTitle.Text = "Battery Charge Limit"; // // trackBattery // trackBattery.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; - trackBattery.LargeChange = 20; - trackBattery.Location = new Point(15, 48); - trackBattery.Margin = new Padding(4, 2, 4, 2); + trackBattery.LargeChange = 10; + trackBattery.Location = new Point(20, 52); + trackBattery.Margin = new Padding(8, 4, 8, 4); trackBattery.Maximum = 100; trackBattery.Minimum = 50; trackBattery.Name = "trackBattery"; - trackBattery.Size = new Size(780, 90); - trackBattery.SmallChange = 10; + trackBattery.Size = new Size(772, 90); + trackBattery.SmallChange = 5; trackBattery.TabIndex = 33; trackBattery.TickFrequency = 10; trackBattery.TickStyle = TickStyle.TopLeft; @@ -290,23 +300,26 @@ namespace GHelper // // panelFooter // + panelFooter.AutoSize = true; + panelFooter.AutoSizeMode = AutoSizeMode.GrowAndShrink; panelFooter.Controls.Add(buttonQuit); panelFooter.Controls.Add(checkStartup); panelFooter.Dock = DockStyle.Top; - panelFooter.Location = new Point(16, 1092); - panelFooter.Margin = new Padding(4); + panelFooter.Location = new Point(10, 1084); + panelFooter.Margin = new Padding(8); panelFooter.Name = "panelFooter"; - panelFooter.Size = new Size(818, 64); + panelFooter.Padding = new Padding(0, 0, 0, 10); + panelFooter.Size = new Size(816, 74); panelFooter.TabIndex = 35; // // buttonQuit // buttonQuit.Anchor = AnchorStyles.Top | AnchorStyles.Right; buttonQuit.BackColor = SystemColors.ButtonFace; - buttonQuit.Location = new Point(684, 9); - buttonQuit.Margin = new Padding(4, 2, 4, 2); + buttonQuit.Location = new Point(584, 16); + buttonQuit.Margin = new Padding(8, 4, 8, 4); buttonQuit.Name = "buttonQuit"; - buttonQuit.Size = new Size(116, 40); + buttonQuit.Size = new Size(208, 44); buttonQuit.TabIndex = 18; buttonQuit.Text = "Quit"; buttonQuit.UseVisualStyleBackColor = false; @@ -314,8 +327,8 @@ namespace GHelper // checkStartup // checkStartup.AutoSize = true; - checkStartup.Location = new Point(27, 15); - checkStartup.Margin = new Padding(4, 2, 4, 2); + checkStartup.Location = new Point(24, 21); + checkStartup.Margin = new Padding(8, 4, 8, 4); checkStartup.Name = "checkStartup"; checkStartup.Size = new Size(206, 36); checkStartup.TabIndex = 17; @@ -324,15 +337,18 @@ namespace GHelper // // panelPerformance // + panelPerformance.AutoSize = true; + panelPerformance.AutoSizeMode = AutoSizeMode.GrowAndShrink; panelPerformance.Controls.Add(picturePerf); panelPerformance.Controls.Add(labelPerf); panelPerformance.Controls.Add(labelCPUFan); panelPerformance.Controls.Add(tablePerf); panelPerformance.Dock = DockStyle.Top; - panelPerformance.Location = new Point(16, 16); + panelPerformance.Location = new Point(10, 10); panelPerformance.Margin = new Padding(0); panelPerformance.Name = "panelPerformance"; - panelPerformance.Size = new Size(818, 210); + panelPerformance.Padding = new Padding(0, 0, 0, 12); + panelPerformance.Size = new Size(816, 200); panelPerformance.TabIndex = 36; // // picturePerf @@ -340,10 +356,10 @@ namespace GHelper picturePerf.BackgroundImage = (Image)resources.GetObject("picturePerf.BackgroundImage"); picturePerf.BackgroundImageLayout = ImageLayout.Zoom; picturePerf.InitialImage = null; - picturePerf.Location = new Point(25, 10); - picturePerf.Margin = new Padding(4, 2, 4, 2); + picturePerf.Location = new Point(24, 20); + picturePerf.Margin = new Padding(4); picturePerf.Name = "picturePerf"; - picturePerf.Size = new Size(36, 38); + picturePerf.Size = new Size(32, 32); picturePerf.TabIndex = 32; picturePerf.TabStop = false; // @@ -351,8 +367,8 @@ namespace GHelper // labelPerf.AutoSize = true; labelPerf.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point); - labelPerf.Location = new Point(64, 12); - labelPerf.Margin = new Padding(4, 0, 4, 0); + labelPerf.Location = new Point(60, 18); + labelPerf.Margin = new Padding(8, 0, 8, 0); labelPerf.Name = "labelPerf"; labelPerf.Size = new Size(234, 32); labelPerf.TabIndex = 31; @@ -361,10 +377,10 @@ namespace GHelper // labelCPUFan // labelCPUFan.Anchor = AnchorStyles.Top | AnchorStyles.Right; - labelCPUFan.Location = new Point(422, 10); - labelCPUFan.Margin = new Padding(4, 0, 4, 0); + labelCPUFan.Location = new Point(456, 16); + labelCPUFan.Margin = new Padding(8, 0, 8, 0); labelCPUFan.Name = "labelCPUFan"; - labelCPUFan.Size = new Size(366, 32); + labelCPUFan.Size = new Size(336, 36); labelCPUFan.TabIndex = 30; labelCPUFan.Text = " "; labelCPUFan.TextAlign = ContentAlignment.TopRight; @@ -372,7 +388,7 @@ namespace GHelper // tablePerf // tablePerf.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; - tablePerf.AutoScroll = true; + tablePerf.AutoSize = true; tablePerf.AutoSizeMode = AutoSizeMode.GrowAndShrink; tablePerf.ColumnCount = 4; tablePerf.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F)); @@ -383,12 +399,12 @@ namespace GHelper tablePerf.Controls.Add(buttonBalanced, 1, 0); tablePerf.Controls.Add(buttonTurbo, 2, 0); tablePerf.Controls.Add(buttonFans, 3, 0); - tablePerf.Location = new Point(15, 48); - tablePerf.Margin = new Padding(4, 2, 4, 2); + tablePerf.Location = new Point(16, 56); + tablePerf.Margin = new Padding(8, 4, 8, 4); tablePerf.Name = "tablePerf"; tablePerf.RowCount = 1; - tablePerf.RowStyles.Add(new RowStyle(SizeType.Absolute, 108F)); - tablePerf.Size = new Size(780, 150); + tablePerf.RowStyles.Add(new RowStyle(SizeType.Absolute, 128F)); + tablePerf.Size = new Size(780, 128); tablePerf.TabIndex = 29; // // buttonSilent @@ -399,16 +415,15 @@ namespace GHelper buttonSilent.BorderColor = Color.Transparent; buttonSilent.CausesValidation = false; buttonSilent.Dock = DockStyle.Fill; - buttonSilent.FlatAppearance.BorderColor = Color.FromArgb(0, 192, 192); buttonSilent.FlatAppearance.BorderSize = 0; buttonSilent.FlatStyle = FlatStyle.Flat; buttonSilent.ForeColor = SystemColors.ControlText; buttonSilent.Image = Properties.Resources.icons8_bicycle_48__1_; buttonSilent.ImageAlign = ContentAlignment.BottomCenter; - buttonSilent.Location = new Point(4, 12); - buttonSilent.Margin = new Padding(4, 12, 4, 12); + buttonSilent.Location = new Point(4, 4); + buttonSilent.Margin = new Padding(4); buttonSilent.Name = "buttonSilent"; - buttonSilent.Size = new Size(187, 126); + buttonSilent.Size = new Size(187, 120); buttonSilent.TabIndex = 0; buttonSilent.Text = "Silent"; buttonSilent.TextImageRelation = TextImageRelation.ImageAboveText; @@ -420,16 +435,15 @@ namespace GHelper buttonBalanced.BackColor = SystemColors.ControlLightLight; buttonBalanced.BorderColor = Color.Transparent; buttonBalanced.Dock = DockStyle.Fill; - buttonBalanced.FlatAppearance.BorderColor = Color.FromArgb(0, 0, 192); buttonBalanced.FlatAppearance.BorderSize = 0; buttonBalanced.FlatStyle = FlatStyle.Flat; buttonBalanced.ForeColor = SystemColors.ControlText; buttonBalanced.Image = Properties.Resources.icons8_fiat_500_48; buttonBalanced.ImageAlign = ContentAlignment.BottomCenter; - buttonBalanced.Location = new Point(199, 12); - buttonBalanced.Margin = new Padding(4, 12, 4, 12); + buttonBalanced.Location = new Point(199, 4); + buttonBalanced.Margin = new Padding(4); buttonBalanced.Name = "buttonBalanced"; - buttonBalanced.Size = new Size(187, 126); + buttonBalanced.Size = new Size(187, 120); buttonBalanced.TabIndex = 1; buttonBalanced.Text = "Balanced"; buttonBalanced.TextImageRelation = TextImageRelation.ImageAboveText; @@ -441,16 +455,15 @@ namespace GHelper buttonTurbo.BackColor = SystemColors.ControlLightLight; buttonTurbo.BorderColor = Color.Transparent; buttonTurbo.Dock = DockStyle.Fill; - buttonTurbo.FlatAppearance.BorderColor = Color.FromArgb(192, 0, 0); buttonTurbo.FlatAppearance.BorderSize = 0; buttonTurbo.FlatStyle = FlatStyle.Flat; buttonTurbo.ForeColor = SystemColors.ControlText; buttonTurbo.Image = Properties.Resources.icons8_rocket_48; buttonTurbo.ImageAlign = ContentAlignment.BottomCenter; - buttonTurbo.Location = new Point(394, 12); - buttonTurbo.Margin = new Padding(4, 12, 4, 12); + buttonTurbo.Location = new Point(394, 4); + buttonTurbo.Margin = new Padding(4); buttonTurbo.Name = "buttonTurbo"; - buttonTurbo.Size = new Size(187, 126); + buttonTurbo.Size = new Size(187, 120); buttonTurbo.TabIndex = 2; buttonTurbo.Text = "Turbo"; buttonTurbo.TextImageRelation = TextImageRelation.ImageAboveText; @@ -463,10 +476,10 @@ namespace GHelper buttonFans.FlatAppearance.BorderSize = 0; buttonFans.Image = Properties.Resources.icons8_fan_48; buttonFans.ImageAlign = ContentAlignment.BottomCenter; - buttonFans.Location = new Point(589, 12); - buttonFans.Margin = new Padding(4, 12, 4, 12); + buttonFans.Location = new Point(589, 4); + buttonFans.Margin = new Padding(4); buttonFans.Name = "buttonFans"; - buttonFans.Size = new Size(187, 126); + buttonFans.Size = new Size(187, 120); buttonFans.TabIndex = 35; buttonFans.Text = "Fans + Power"; buttonFans.TextImageRelation = TextImageRelation.ImageAboveText; @@ -474,25 +487,39 @@ namespace GHelper // // panelGPU // + panelGPU.AutoSize = true; + panelGPU.AutoSizeMode = AutoSizeMode.GrowAndShrink; + panelGPU.Controls.Add(labelTipGPU); panelGPU.Controls.Add(pictureGPU); panelGPU.Controls.Add(labelGPU); panelGPU.Controls.Add(labelGPUFan); panelGPU.Controls.Add(tableGPU); panelGPU.Dock = DockStyle.Top; - panelGPU.Location = new Point(16, 226); - panelGPU.Margin = new Padding(4); + panelGPU.Location = new Point(10, 210); + panelGPU.Margin = new Padding(8); panelGPU.Name = "panelGPU"; - panelGPU.Size = new Size(818, 210); + panelGPU.Padding = new Padding(0, 0, 0, 10); + panelGPU.Size = new Size(816, 237); panelGPU.TabIndex = 37; // + // labelTipGPU + // + labelTipGPU.ForeColor = SystemColors.GrayText; + labelTipGPU.Location = new Point(24, 191); + labelTipGPU.Margin = new Padding(4, 0, 4, 0); + labelTipGPU.Name = "labelTipGPU"; + labelTipGPU.Size = new Size(720, 36); + labelTipGPU.TabIndex = 20; + labelTipGPU.Text = " "; + // // pictureGPU // pictureGPU.BackgroundImage = (Image)resources.GetObject("pictureGPU.BackgroundImage"); pictureGPU.BackgroundImageLayout = ImageLayout.Zoom; - pictureGPU.Location = new Point(25, 10); - pictureGPU.Margin = new Padding(4, 2, 4, 2); + pictureGPU.Location = new Point(24, 20); + pictureGPU.Margin = new Padding(4); pictureGPU.Name = "pictureGPU"; - pictureGPU.Size = new Size(36, 38); + pictureGPU.Size = new Size(32, 32); pictureGPU.TabIndex = 19; pictureGPU.TabStop = false; // @@ -500,8 +527,8 @@ namespace GHelper // labelGPU.AutoSize = true; labelGPU.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point); - labelGPU.Location = new Point(66, 12); - labelGPU.Margin = new Padding(4, 0, 4, 0); + labelGPU.Location = new Point(60, 20); + labelGPU.Margin = new Padding(8, 0, 8, 0); labelGPU.Name = "labelGPU"; labelGPU.Size = new Size(136, 32); labelGPU.TabIndex = 18; @@ -510,10 +537,10 @@ namespace GHelper // labelGPUFan // labelGPUFan.Anchor = AnchorStyles.Top | AnchorStyles.Right; - labelGPUFan.Location = new Point(442, 10); - labelGPUFan.Margin = new Padding(4, 0, 4, 0); + labelGPUFan.Location = new Point(244, 12); + labelGPUFan.Margin = new Padding(8, 0, 8, 0); labelGPUFan.Name = "labelGPUFan"; - labelGPUFan.Size = new Size(348, 32); + labelGPUFan.Size = new Size(548, 44); labelGPUFan.TabIndex = 17; labelGPUFan.Text = " "; labelGPUFan.TextAlign = ContentAlignment.TopRight; @@ -521,7 +548,7 @@ namespace GHelper // tableGPU // tableGPU.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; - tableGPU.AutoScroll = true; + tableGPU.AutoSize = true; tableGPU.AutoSizeMode = AutoSizeMode.GrowAndShrink; tableGPU.ColumnCount = 4; tableGPU.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F)); @@ -530,52 +557,32 @@ namespace GHelper tableGPU.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F)); tableGPU.Controls.Add(buttonEco, 0, 0); tableGPU.Controls.Add(buttonStandard, 1, 0); + tableGPU.Controls.Add(buttonOptimized, 2, 0); tableGPU.Controls.Add(buttonUltimate, 2, 0); - tableGPU.Controls.Add(buttonOptimized, 3, 0); - tableGPU.Location = new Point(15, 48); - tableGPU.Margin = new Padding(4, 2, 4, 2); + tableGPU.Location = new Point(16, 60); + tableGPU.Margin = new Padding(8, 4, 8, 4); tableGPU.Name = "tableGPU"; tableGPU.RowCount = 1; - tableGPU.RowStyles.Add(new RowStyle(SizeType.Absolute, 108F)); - tableGPU.Size = new Size(776, 150); + tableGPU.RowStyles.Add(new RowStyle(SizeType.Absolute, 128F)); + tableGPU.Size = new Size(780, 128); tableGPU.TabIndex = 16; // - // buttonOptimized - // - buttonOptimized.Activated = false; - buttonOptimized.BackColor = SystemColors.ControlLightLight; - buttonOptimized.BorderColor = Color.Transparent; - buttonOptimized.Dock = DockStyle.Fill; - buttonOptimized.FlatAppearance.BorderSize = 0; - buttonOptimized.FlatStyle = FlatStyle.Flat; - buttonOptimized.ForeColor = SystemColors.ControlText; - buttonOptimized.Image = Properties.Resources.icons8_project_management_48__1_; - buttonOptimized.ImageAlign = ContentAlignment.BottomCenter; - buttonOptimized.Location = new Point(4, 12); - buttonOptimized.Margin = new Padding(4, 12, 4, 12); - buttonOptimized.Name = "buttonOptimized"; - buttonOptimized.Size = new Size(186, 126); - buttonOptimized.TabIndex = 3; - buttonOptimized.Text = "Optimized"; - buttonOptimized.TextImageRelation = TextImageRelation.ImageAboveText; - buttonOptimized.UseVisualStyleBackColor = false; - // // buttonEco // buttonEco.Activated = false; buttonEco.BackColor = SystemColors.ControlLightLight; buttonEco.BorderColor = Color.Transparent; buttonEco.CausesValidation = false; - buttonEco.Dock = DockStyle.Fill; + buttonEco.Dock = DockStyle.Top; buttonEco.FlatAppearance.BorderSize = 0; buttonEco.FlatStyle = FlatStyle.Flat; buttonEco.ForeColor = SystemColors.ControlText; buttonEco.Image = Properties.Resources.icons8_leaf_48; buttonEco.ImageAlign = ContentAlignment.BottomCenter; - buttonEco.Location = new Point(198, 12); - buttonEco.Margin = new Padding(4, 12, 4, 12); + buttonEco.Location = new Point(4, 4); + buttonEco.Margin = new Padding(4); buttonEco.Name = "buttonEco"; - buttonEco.Size = new Size(186, 126); + buttonEco.Size = new Size(187, 120); buttonEco.TabIndex = 0; buttonEco.Text = "Eco"; buttonEco.TextImageRelation = TextImageRelation.ImageAboveText; @@ -586,36 +593,56 @@ namespace GHelper buttonStandard.Activated = false; buttonStandard.BackColor = SystemColors.ControlLightLight; buttonStandard.BorderColor = Color.Transparent; - buttonStandard.Dock = DockStyle.Fill; + buttonStandard.Dock = DockStyle.Top; buttonStandard.FlatAppearance.BorderSize = 0; buttonStandard.FlatStyle = FlatStyle.Flat; buttonStandard.ForeColor = SystemColors.ControlText; buttonStandard.Image = Properties.Resources.icons8_spa_flower_48; buttonStandard.ImageAlign = ContentAlignment.BottomCenter; - buttonStandard.Location = new Point(392, 12); - buttonStandard.Margin = new Padding(4, 12, 4, 12); + buttonStandard.Location = new Point(199, 4); + buttonStandard.Margin = new Padding(4); buttonStandard.Name = "buttonStandard"; - buttonStandard.Size = new Size(186, 126); + buttonStandard.Size = new Size(187, 120); buttonStandard.TabIndex = 1; buttonStandard.Text = "Standard"; buttonStandard.TextImageRelation = TextImageRelation.ImageAboveText; buttonStandard.UseVisualStyleBackColor = false; // + // buttonOptimized + // + buttonOptimized.Activated = false; + buttonOptimized.BackColor = SystemColors.ControlLightLight; + buttonOptimized.BorderColor = Color.Transparent; + buttonOptimized.Dock = DockStyle.Top; + buttonOptimized.FlatAppearance.BorderSize = 0; + buttonOptimized.FlatStyle = FlatStyle.Flat; + buttonOptimized.ForeColor = SystemColors.ControlText; + buttonOptimized.Image = Properties.Resources.icons8_project_management_48__1_; + buttonOptimized.ImageAlign = ContentAlignment.BottomCenter; + buttonOptimized.Location = new Point(589, 4); + buttonOptimized.Margin = new Padding(4); + buttonOptimized.Name = "buttonOptimized"; + buttonOptimized.Size = new Size(187, 120); + buttonOptimized.TabIndex = 3; + buttonOptimized.Text = "Optimized"; + buttonOptimized.TextImageRelation = TextImageRelation.ImageAboveText; + buttonOptimized.UseVisualStyleBackColor = false; + // // buttonUltimate // buttonUltimate.Activated = false; buttonUltimate.BackColor = SystemColors.ControlLightLight; buttonUltimate.BorderColor = Color.Transparent; - buttonUltimate.Dock = DockStyle.Fill; + buttonUltimate.Dock = DockStyle.Top; buttonUltimate.FlatAppearance.BorderSize = 0; buttonUltimate.FlatStyle = FlatStyle.Flat; buttonUltimate.ForeColor = SystemColors.ControlText; buttonUltimate.Image = Properties.Resources.icons8_game_controller_48; buttonUltimate.ImageAlign = ContentAlignment.BottomCenter; - buttonUltimate.Location = new Point(586, 12); - buttonUltimate.Margin = new Padding(4, 12, 4, 12); + buttonUltimate.Location = new Point(394, 4); + buttonUltimate.Margin = new Padding(4); buttonUltimate.Name = "buttonUltimate"; - buttonUltimate.Size = new Size(186, 126); + buttonUltimate.Size = new Size(187, 120); buttonUltimate.TabIndex = 2; buttonUltimate.Text = "Ultimate"; buttonUltimate.TextImageRelation = TextImageRelation.ImageAboveText; @@ -623,16 +650,29 @@ namespace GHelper // // panelScreen // + panelScreen.AutoSize = true; + panelScreen.AutoSizeMode = AutoSizeMode.GrowAndShrink; + panelScreen.Controls.Add(labelTipScreen); panelScreen.Controls.Add(tableScreen); panelScreen.Controls.Add(pictureScreen); panelScreen.Controls.Add(labelSreen); panelScreen.Dock = DockStyle.Top; - panelScreen.Location = new Point(16, 436); - panelScreen.Margin = new Padding(4); + panelScreen.Location = new Point(10, 447); + panelScreen.Margin = new Padding(8); panelScreen.Name = "panelScreen"; - panelScreen.Size = new Size(818, 182); + panelScreen.Padding = new Padding(0, 0, 0, 10); + panelScreen.Size = new Size(816, 181); panelScreen.TabIndex = 38; // + // labelTipScreen + // + labelTipScreen.ForeColor = SystemColors.GrayText; + labelTipScreen.Location = new Point(20, 135); + labelTipScreen.Margin = new Padding(4, 0, 4, 0); + labelTipScreen.Name = "labelTipScreen"; + labelTipScreen.Size = new Size(724, 36); + labelTipScreen.TabIndex = 24; + // // tableScreen // tableScreen.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; @@ -646,12 +686,12 @@ namespace GHelper tableScreen.Controls.Add(buttonScreenAuto, 0, 0); tableScreen.Controls.Add(button60Hz, 1, 0); tableScreen.Controls.Add(button120Hz, 2, 0); - tableScreen.Location = new Point(15, 48); - tableScreen.Margin = new Padding(4, 2, 4, 2); + tableScreen.Location = new Point(16, 51); + tableScreen.Margin = new Padding(8, 4, 8, 4); tableScreen.Name = "tableScreen"; tableScreen.RowCount = 1; - tableScreen.RowStyles.Add(new RowStyle(SizeType.Absolute, 108F)); - tableScreen.Size = new Size(776, 108); + tableScreen.RowStyles.Add(new RowStyle(SizeType.Absolute, 80F)); + tableScreen.Size = new Size(780, 80); tableScreen.TabIndex = 23; // // buttonScreenAuto @@ -663,10 +703,10 @@ namespace GHelper buttonScreenAuto.FlatAppearance.BorderSize = 0; buttonScreenAuto.FlatStyle = FlatStyle.Flat; buttonScreenAuto.ForeColor = SystemColors.ControlText; - buttonScreenAuto.Location = new Point(4, 12); - buttonScreenAuto.Margin = new Padding(4, 12, 4, 12); + buttonScreenAuto.Location = new Point(4, 4); + buttonScreenAuto.Margin = new Padding(4); buttonScreenAuto.Name = "buttonScreenAuto"; - buttonScreenAuto.Size = new Size(186, 84); + buttonScreenAuto.Size = new Size(187, 72); buttonScreenAuto.TabIndex = 0; buttonScreenAuto.Text = "Auto"; buttonScreenAuto.UseVisualStyleBackColor = false; @@ -681,10 +721,10 @@ namespace GHelper button60Hz.FlatAppearance.BorderSize = 0; button60Hz.FlatStyle = FlatStyle.Flat; button60Hz.ForeColor = SystemColors.ControlText; - button60Hz.Location = new Point(198, 12); - button60Hz.Margin = new Padding(4, 12, 4, 12); + button60Hz.Location = new Point(199, 4); + button60Hz.Margin = new Padding(4); button60Hz.Name = "button60Hz"; - button60Hz.Size = new Size(186, 84); + button60Hz.Size = new Size(187, 72); button60Hz.TabIndex = 1; button60Hz.Text = "60Hz"; button60Hz.UseVisualStyleBackColor = false; @@ -698,10 +738,10 @@ namespace GHelper button120Hz.FlatAppearance.BorderSize = 0; button120Hz.FlatStyle = FlatStyle.Flat; button120Hz.ForeColor = SystemColors.ControlText; - button120Hz.Location = new Point(392, 12); - button120Hz.Margin = new Padding(4, 12, 4, 12); + button120Hz.Location = new Point(394, 4); + button120Hz.Margin = new Padding(4); button120Hz.Name = "button120Hz"; - button120Hz.Size = new Size(186, 84); + button120Hz.Size = new Size(187, 72); button120Hz.TabIndex = 2; button120Hz.Text = "120Hz + OD"; button120Hz.UseVisualStyleBackColor = false; @@ -710,10 +750,10 @@ namespace GHelper // pictureScreen.BackgroundImage = (Image)resources.GetObject("pictureScreen.BackgroundImage"); pictureScreen.BackgroundImageLayout = ImageLayout.Zoom; - pictureScreen.Location = new Point(25, 8); - pictureScreen.Margin = new Padding(4, 2, 4, 2); + pictureScreen.Location = new Point(24, 11); + pictureScreen.Margin = new Padding(4); pictureScreen.Name = "pictureScreen"; - pictureScreen.Size = new Size(36, 38); + pictureScreen.Size = new Size(32, 32); pictureScreen.TabIndex = 22; pictureScreen.TabStop = false; // @@ -721,8 +761,8 @@ namespace GHelper // labelSreen.AutoSize = true; labelSreen.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point); - labelSreen.Location = new Point(68, 10); - labelSreen.Margin = new Padding(4, 0, 4, 0); + labelSreen.Location = new Point(60, 9); + labelSreen.Margin = new Padding(8, 0, 8, 0); labelSreen.Name = "labelSreen"; labelSreen.Size = new Size(176, 32); labelSreen.TabIndex = 21; @@ -730,19 +770,24 @@ namespace GHelper // // panelKeyboard // + panelKeyboard.AutoSize = true; + panelKeyboard.AutoSizeMode = AutoSizeMode.GrowAndShrink; panelKeyboard.Controls.Add(tableLayoutKeyboard); panelKeyboard.Controls.Add(pictureKeyboard); - panelKeyboard.Controls.Add(label1); + panelKeyboard.Controls.Add(labelKeyboard); panelKeyboard.Dock = DockStyle.Top; - panelKeyboard.Location = new Point(16, 618); - panelKeyboard.Margin = new Padding(4); + panelKeyboard.Location = new Point(10, 628); + panelKeyboard.Margin = new Padding(8); panelKeyboard.Name = "panelKeyboard"; - panelKeyboard.Size = new Size(818, 146); + panelKeyboard.Padding = new Padding(0, 0, 0, 12); + panelKeyboard.Size = new Size(816, 130); panelKeyboard.TabIndex = 39; // // tableLayoutKeyboard // tableLayoutKeyboard.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + tableLayoutKeyboard.AutoSize = true; + tableLayoutKeyboard.AutoSizeMode = AutoSizeMode.GrowAndShrink; tableLayoutKeyboard.ColumnCount = 4; tableLayoutKeyboard.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F)); tableLayoutKeyboard.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F)); @@ -751,12 +796,12 @@ namespace GHelper tableLayoutKeyboard.Controls.Add(buttonKeyboard, 2, 0); tableLayoutKeyboard.Controls.Add(comboKeyboard, 0, 0); tableLayoutKeyboard.Controls.Add(panelColor, 1, 0); - tableLayoutKeyboard.Location = new Point(15, 56); - tableLayoutKeyboard.Margin = new Padding(4); + tableLayoutKeyboard.Location = new Point(16, 50); + tableLayoutKeyboard.Margin = new Padding(8); tableLayoutKeyboard.Name = "tableLayoutKeyboard"; tableLayoutKeyboard.RowCount = 1; tableLayoutKeyboard.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); - tableLayoutKeyboard.Size = new Size(780, 66); + tableLayoutKeyboard.Size = new Size(780, 60); tableLayoutKeyboard.TabIndex = 39; // // buttonKeyboard @@ -764,45 +809,46 @@ namespace GHelper buttonKeyboard.BackColor = SystemColors.ButtonFace; buttonKeyboard.Dock = DockStyle.Top; buttonKeyboard.FlatAppearance.BorderSize = 0; - buttonKeyboard.Location = new Point(395, 10); - buttonKeyboard.Margin = new Padding(5, 10, 5, 10); + buttonKeyboard.Location = new Point(394, 8); + buttonKeyboard.Margin = new Padding(4, 8, 4, 8); buttonKeyboard.Name = "buttonKeyboard"; - buttonKeyboard.Size = new Size(185, 42); + buttonKeyboard.Size = new Size(187, 44); buttonKeyboard.TabIndex = 37; buttonKeyboard.Text = "Extra"; buttonKeyboard.UseVisualStyleBackColor = false; // // comboKeyboard // - comboKeyboard.Dock = DockStyle.Fill; + comboKeyboard.Dock = DockStyle.Top; comboKeyboard.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point); comboKeyboard.FormattingEnabled = true; comboKeyboard.ItemHeight = 32; comboKeyboard.Items.AddRange(new object[] { "Static", "Breathe", "Strobe", "Rainbow", "Dingding" }); - comboKeyboard.Location = new Point(5, 10); - comboKeyboard.Margin = new Padding(5, 10, 5, 10); + comboKeyboard.Location = new Point(4, 10); + comboKeyboard.Margin = new Padding(4, 10, 4, 8); comboKeyboard.Name = "comboKeyboard"; - comboKeyboard.Size = new Size(185, 40); + comboKeyboard.Size = new Size(187, 40); comboKeyboard.TabIndex = 35; comboKeyboard.TabStop = false; // // panelColor // + panelColor.AutoSize = true; panelColor.Controls.Add(pictureColor2); panelColor.Controls.Add(pictureColor); panelColor.Controls.Add(buttonKeyboardColor); panelColor.Dock = DockStyle.Fill; - panelColor.Location = new Point(200, 10); - panelColor.Margin = new Padding(5, 10, 5, 10); + panelColor.Location = new Point(199, 8); + panelColor.Margin = new Padding(4, 8, 4, 8); panelColor.Name = "panelColor"; - panelColor.Size = new Size(185, 46); + panelColor.Size = new Size(187, 44); panelColor.TabIndex = 36; // // pictureColor2 // pictureColor2.Anchor = AnchorStyles.Top | AnchorStyles.Right; pictureColor2.Location = new Point(125, 12); - pictureColor2.Margin = new Padding(4); + pictureColor2.Margin = new Padding(8); pictureColor2.Name = "pictureColor2"; pictureColor2.Size = new Size(20, 20); pictureColor2.TabIndex = 41; @@ -812,7 +858,7 @@ namespace GHelper // pictureColor.Anchor = AnchorStyles.Top | AnchorStyles.Right; pictureColor.Location = new Point(153, 12); - pictureColor.Margin = new Padding(4); + pictureColor.Margin = new Padding(8); pictureColor.Name = "pictureColor"; pictureColor.Size = new Size(20, 20); pictureColor.TabIndex = 40; @@ -826,9 +872,9 @@ namespace GHelper buttonKeyboardColor.FlatAppearance.BorderSize = 2; buttonKeyboardColor.ForeColor = SystemColors.ControlText; buttonKeyboardColor.Location = new Point(0, 0); - buttonKeyboardColor.Margin = new Padding(0); + buttonKeyboardColor.Margin = new Padding(4, 8, 4, 8); buttonKeyboardColor.Name = "buttonKeyboardColor"; - buttonKeyboardColor.Size = new Size(185, 42); + buttonKeyboardColor.Size = new Size(187, 44); buttonKeyboardColor.TabIndex = 39; buttonKeyboardColor.Text = "Color "; buttonKeyboardColor.UseVisualStyleBackColor = false; @@ -837,23 +883,23 @@ namespace GHelper // pictureKeyboard.BackgroundImage = Properties.Resources.icons8_keyboard_48; pictureKeyboard.BackgroundImageLayout = ImageLayout.Zoom; - pictureKeyboard.Location = new Point(27, 16); - pictureKeyboard.Margin = new Padding(4, 2, 4, 2); + pictureKeyboard.Location = new Point(24, 14); + pictureKeyboard.Margin = new Padding(4); pictureKeyboard.Name = "pictureKeyboard"; - pictureKeyboard.Size = new Size(32, 36); + pictureKeyboard.Size = new Size(32, 32); pictureKeyboard.TabIndex = 33; pictureKeyboard.TabStop = false; // - // label1 + // labelKeyboard // - label1.AutoSize = true; - label1.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point); - label1.Location = new Point(68, 16); - label1.Margin = new Padding(4, 0, 4, 0); - label1.Name = "label1"; - label1.Size = new Size(210, 32); - label1.TabIndex = 32; - label1.Text = "Laptop Keyboard"; + labelKeyboard.AutoSize = true; + labelKeyboard.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point); + labelKeyboard.Location = new Point(60, 13); + labelKeyboard.Margin = new Padding(8, 0, 8, 0); + labelKeyboard.Name = "labelKeyboard"; + labelKeyboard.Size = new Size(210, 32); + labelKeyboard.TabIndex = 32; + labelKeyboard.Text = "Laptop Keyboard"; // // SettingsForm // @@ -861,7 +907,7 @@ namespace GHelper AutoScaleMode = AutoScaleMode.Dpi; AutoSize = true; AutoSizeMode = AutoSizeMode.GrowAndShrink; - ClientSize = new Size(850, 1217); + ClientSize = new Size(836, 1173); Controls.Add(panelFooter); Controls.Add(panelBattery); Controls.Add(panelMatrix); @@ -869,13 +915,13 @@ namespace GHelper Controls.Add(panelScreen); Controls.Add(panelGPU); Controls.Add(panelPerformance); - Margin = new Padding(4, 2, 4, 2); + Margin = new Padding(8, 4, 8, 4); MaximizeBox = false; MdiChildrenMinimizedAnchorBottom = false; MinimizeBox = false; - MinimumSize = new Size(850, 0); + MinimumSize = new Size(850, 71); Name = "SettingsForm"; - Padding = new Padding(16); + Padding = new Padding(10); ShowIcon = false; StartPosition = FormStartPosition.CenterScreen; Text = "G-Helper"; @@ -905,11 +951,13 @@ namespace GHelper panelKeyboard.ResumeLayout(false); panelKeyboard.PerformLayout(); tableLayoutKeyboard.ResumeLayout(false); + tableLayoutKeyboard.PerformLayout(); panelColor.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)pictureColor2).EndInit(); ((System.ComponentModel.ISupportInitialize)pictureColor).EndInit(); ((System.ComponentModel.ISupportInitialize)pictureKeyboard).EndInit(); ResumeLayout(false); + PerformLayout(); } #endregion @@ -949,7 +997,7 @@ namespace GHelper private Label labelSreen; private Panel panelKeyboard; private PictureBox pictureKeyboard; - private Label label1; + private Label labelKeyboard; private TableLayoutPanel tableLayoutMatrix; private Button buttonMatrix; private ComboBox comboMatrixRunning; @@ -965,5 +1013,7 @@ namespace GHelper private RoundedButton button120Hz; private Button buttonFans; private RoundedButton buttonOptimized; + private Label labelTipGPU; + private Label labelTipScreen; } } \ No newline at end of file diff --git a/app/Settings.cs b/app/Settings.cs index f9dcc11d..2781786f 100644 --- a/app/Settings.cs +++ b/app/Settings.cs @@ -3,7 +3,6 @@ using System.Diagnostics; using System.Drawing.Imaging; using System.Timers; - namespace GHelper { @@ -28,23 +27,24 @@ namespace GHelper public SettingsForm() { - InitializeComponent(); + HighDpiHelper.AdjustControlImagesDpiScale(this, 2); + FormClosing += SettingsForm_FormClosing; buttonSilent.BorderColor = colorEco; buttonBalanced.BorderColor = colorStandard; buttonTurbo.BorderColor = colorTurbo; - buttonOptimized.BorderColor = colorEco; buttonEco.BorderColor = colorEco; buttonStandard.BorderColor = colorStandard; buttonUltimate.BorderColor = colorTurbo; + buttonOptimized.BorderColor = colorEco; button60Hz.BorderColor = SystemColors.ActiveBorder; button120Hz.BorderColor = SystemColors.ActiveBorder; - buttonScreenAuto.BorderColor = colorEco; + buttonScreenAuto.BorderColor = SystemColors.ActiveBorder; buttonOptimized.Click += ButtonOptimized_Click; buttonSilent.Click += ButtonSilent_Click; @@ -94,10 +94,79 @@ namespace GHelper labelVersion.Click += LabelVersion_Click; + buttonOptimized.MouseMove += ButtonOptimized_MouseHover; + buttonOptimized.MouseLeave += ButtonGPU_MouseLeave; + + buttonEco.MouseMove += ButtonEco_MouseHover; + buttonEco.MouseLeave += ButtonGPU_MouseLeave; + + buttonStandard.MouseMove += ButtonStandard_MouseHover; + buttonStandard.MouseLeave += ButtonGPU_MouseLeave; + + buttonUltimate.MouseMove += ButtonUltimate_MouseHover; + buttonUltimate.MouseLeave += ButtonGPU_MouseLeave; + + buttonScreenAuto.MouseMove += ButtonScreenAuto_MouseHover; + buttonScreenAuto.MouseLeave += ButtonScreen_MouseLeave; + + button60Hz.MouseMove += Button60Hz_MouseHover; + button60Hz.MouseLeave += ButtonScreen_MouseLeave; + + button120Hz.MouseMove += Button120Hz_MouseHover; + button120Hz.MouseLeave += ButtonScreen_MouseLeave; + + //buttonStandard.Image = (Image)(new Bitmap(buttonStandard.Image, new Size(16, 16))); + SetTimer(); } + private void Button120Hz_MouseHover(object? sender, EventArgs e) + { + labelTipScreen.Text = "Max refresh rate + screen overdrive for lower latency"; + } + + private void Button60Hz_MouseHover(object? sender, EventArgs e) + { + labelTipScreen.Text = "60Hz refresh rate to save battery"; + } + + private void ButtonScreen_MouseLeave(object? sender, EventArgs e) + { + labelTipScreen.Text = ""; + } + + private void ButtonScreenAuto_MouseHover(object? sender, EventArgs e) + { + labelTipScreen.Text = "Sets 60Hz to save battery, and back when plugged"; + } + + private void ButtonUltimate_MouseHover(object? sender, EventArgs e) + { + labelTipGPU.Text = "Routes laptop screen to dGPU, maximizing FPS"; + } + + private void ButtonStandard_MouseHover(object? sender, EventArgs e) + { + labelTipGPU.Text = "Enables dGPU for standard use"; + } + + private void ButtonEco_MouseHover(object? sender, EventArgs e) + { + labelTipGPU.Text = "Disables dGPU for battery savings"; + } + + private void ButtonOptimized_MouseHover(object? sender, EventArgs e) + { + labelTipGPU.Text = "Switch to Eco on battery and to Standard when plugged"; + } + + private void ButtonGPU_MouseLeave(object? sender, EventArgs e) + { + labelTipGPU.Text = ""; + } + + private void ButtonOptimized_Click(object? sender, EventArgs e) { Program.config.setConfig("gpu_auto", (Program.config.getConfig("gpu_auto") == 1) ? 0 : 1); @@ -567,7 +636,7 @@ namespace GHelper if (frequency <= 0) return; NativeMethods.SetRefreshRate(frequency); - if (overdrive > 0) + if (overdrive >= 0) Program.wmi.DeviceSet(ASUSWmi.ScreenOverdrive, overdrive); InitScreen(); @@ -584,23 +653,6 @@ namespace GHelper bool screenAuto = (Program.config.getConfig("screen_auto") == 1); - if (frequency < 0) - { - button60Hz.Enabled = false; - button120Hz.Enabled = false; - labelSreen.Text = "Laptop Screen: Turned off"; - button60Hz.BackColor = SystemColors.ControlLight; - button120Hz.BackColor = SystemColors.ControlLight; - } - else - { - button60Hz.Enabled = true; - button120Hz.Enabled = true; - button60Hz.BackColor = SystemColors.ControlLightLight; - button120Hz.BackColor = SystemColors.ControlLightLight; - labelSreen.Text = "Laptop Screen: " + frequency + "Hz"; - } - int overdrive = 0; try { @@ -611,6 +663,28 @@ namespace GHelper Logger.WriteLine("Screen Overdrive not supported"); } + if (frequency < 0) + { + button60Hz.Enabled = false; + button120Hz.Enabled = false; + buttonScreenAuto.Enabled = false; + labelSreen.Text = "Laptop Screen: Turned off"; + button60Hz.BackColor = SystemColors.ControlLight; + button120Hz.BackColor = SystemColors.ControlLight; + buttonScreenAuto.BackColor = SystemColors.ControlLight; + } + else + { + button60Hz.Enabled = true; + button120Hz.Enabled = true; + buttonScreenAuto.Enabled = true; + button60Hz.BackColor = SystemColors.ControlLightLight; + button120Hz.BackColor = SystemColors.ControlLightLight; + buttonScreenAuto.BackColor = SystemColors.ControlLightLight; + labelSreen.Text = "Laptop Screen: " + frequency + "Hz" + ((overdrive == 1) ? " + Overdrive" : ""); + } + + button60Hz.Activated = false; button120Hz.Activated = false; buttonScreenAuto.Activated = false; @@ -913,6 +987,22 @@ namespace GHelper } + private void NoUltimateUI() + { + tableGPU.Controls.Remove(buttonUltimate); + + buttonFans.Image = null; + buttonFans.Height = 50; + + tablePerf.ColumnCount = 3; + tablePerf.ColumnCount = 3; + tableGPU.ColumnCount = 0; + tableLayoutKeyboard.ColumnCount = 0; + tableScreen.ColumnCount = 0; + tableLayoutMatrix.ColumnCount = 0; + + } + public int InitGPUMode() { @@ -930,7 +1020,8 @@ namespace GHelper else GpuMode = ASUSWmi.GPUModeStandard; - buttonUltimate.Visible = (mux == 1); + if (mux != 1) NoUltimateUI(); + } ButtonEnabled(buttonOptimized, true); diff --git a/app/app.manifest b/app/app.manifest index 52900f78..e16db2fe 100644 --- a/app/app.manifest +++ b/app/app.manifest @@ -54,8 +54,8 @@ - true System + true From c50c1807ca46b6e8c4d2f3a728418d84a9e9cd5b Mon Sep 17 00:00:00 2001 From: seerge Date: Sat, 18 Mar 2023 17:57:09 +0100 Subject: [PATCH 4/4] UI fixes, tooltips for fan control --- app/Fans.Designer.cs | 14 ++++++++++++++ app/Fans.cs | 29 +++++++++++++++++++++++------ app/Settings.Designer.cs | 4 ++-- app/Settings.cs | 23 +++++++++++++++-------- 4 files changed, 54 insertions(+), 16 deletions(-) diff --git a/app/Fans.Designer.cs b/app/Fans.Designer.cs index 149b7e6d..f600aad6 100644 --- a/app/Fans.Designer.cs +++ b/app/Fans.Designer.cs @@ -31,6 +31,7 @@ System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea2 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); panelFans = new Panel(); + labelTip = new Label(); labelBoost = new Label(); comboBoost = new ComboBox(); picturePerf = new PictureBox(); @@ -73,6 +74,7 @@ // // panelFans // + panelFans.Controls.Add(labelTip); panelFans.Controls.Add(labelBoost); panelFans.Controls.Add(comboBoost); panelFans.Controls.Add(picturePerf); @@ -89,6 +91,17 @@ panelFans.Size = new Size(824, 1159); panelFans.TabIndex = 12; // + // labelTip + // + labelTip.AutoSize = true; + labelTip.BackColor = SystemColors.ControlLightLight; + labelTip.Location = new Point(245, 13); + labelTip.Name = "labelTip"; + labelTip.Padding = new Padding(5); + labelTip.Size = new Size(107, 42); + labelTip.TabIndex = 40; + labelTip.Text = "500,300"; + // // labelBoost // labelBoost.AutoSize = true; @@ -468,5 +481,6 @@ private PictureBox pictureBox1; private ComboBox comboBoost; private Label labelBoost; + private Label labelTip; } } \ No newline at end of file diff --git a/app/Fans.cs b/app/Fans.cs index c22133ae..bf53c1ee 100644 --- a/app/Fans.cs +++ b/app/Fans.cs @@ -1,5 +1,9 @@ using System; using System.Diagnostics; +using System.Diagnostics.Metrics; +using System.Drawing.Imaging; +using System.Drawing.Text; +using System.IO; using System.Windows.Forms.DataVisualization.Charting; namespace GHelper @@ -11,6 +15,12 @@ namespace GHelper Series seriesCPU; Series seriesGPU; + static string ChartPercToRPM(int percentage, string unit = "") + { + if (percentage == 0) return "OFF"; + return (1800 + 200 * Math.Floor(percentage * 0.2)).ToString() + unit; + } + void SetChart(Chart chart, int device) { @@ -41,10 +51,8 @@ namespace GHelper chart.ChartAreas[0].AxisY.LabelStyle.Font = new Font("Arial", 7F); - chart.ChartAreas[0].AxisY.CustomLabels.Add(-2, 2, "OFF"); - - for (int i = 1; i <= 9; i++) - chart.ChartAreas[0].AxisY.CustomLabels.Add(i * 10 - 2, i * 10 + 2, (1800 + 400 * i).ToString()); + for (int i = 0; i <= 90; i += 10) + chart.ChartAreas[0].AxisY.CustomLabels.Add(i - 2, i + 2, ChartPercToRPM(i)); chart.ChartAreas[0].AxisY.CustomLabels.Add(98, 102, "RPM"); @@ -77,6 +85,9 @@ namespace GHelper InitializeComponent(); + labelTip.Visible = false; + labelTip.BackColor = Color.Transparent; + FormClosing += Fans_FormClosing; seriesCPU = chartCPU.Series.Add("CPU"); @@ -126,7 +137,7 @@ namespace GHelper { int boost = NativeMethods.GetCPUBoost(); if (boost >= 0) - comboBoost.SelectedIndex = Math.Min(boost,5); + comboBoost.SelectedIndex = Math.Min(boost, comboBoost.Items.Count - 1); } private void ComboBoost_Changed(object? sender, EventArgs e) @@ -334,6 +345,7 @@ namespace GHelper private void ChartCPU_MouseUp(object? sender, MouseEventArgs e) { curPoint = null; + labelTip.Visible = false; } private void ChartCPU_MouseMove(object? sender, MouseEventArgs e) @@ -371,13 +383,18 @@ namespace GHelper if (dy < 0) dy = 0; if (dy > 100) dy = 100; - dymin = (dx - 60) * 1.2; + dymin = (dx - 65) * 1.2; if (dy < dymin) dy = dymin; curPoint.XValue = dx; curPoint.YValues[0] = dy; + labelTip.Visible = true; + labelTip.Text = Math.Round(dx) + "C, " + ChartPercToRPM((int)dy, " RPM"); + labelTip.Top = e.Y + ((Control)sender).Top; + labelTip.Left = e.X; + } catch { diff --git a/app/Settings.Designer.cs b/app/Settings.Designer.cs index 014593c7..81296c24 100644 --- a/app/Settings.Designer.cs +++ b/app/Settings.Designer.cs @@ -907,7 +907,7 @@ namespace GHelper AutoScaleMode = AutoScaleMode.Dpi; AutoSize = true; AutoSizeMode = AutoSizeMode.GrowAndShrink; - ClientSize = new Size(836, 1173); + ClientSize = new Size(830, 1173); Controls.Add(panelFooter); Controls.Add(panelBattery); Controls.Add(panelMatrix); @@ -919,7 +919,7 @@ namespace GHelper MaximizeBox = false; MdiChildrenMinimizedAnchorBottom = false; MinimizeBox = false; - MinimumSize = new Size(850, 71); + MinimumSize = new Size(830, 71); Name = "SettingsForm"; Padding = new Padding(10); ShowIcon = false; diff --git a/app/Settings.cs b/app/Settings.cs index 2781786f..bfba92bb 100644 --- a/app/Settings.cs +++ b/app/Settings.cs @@ -987,20 +987,27 @@ namespace GHelper } - private void NoUltimateUI() + private void UltimateUI(bool ultimate) { - tableGPU.Controls.Remove(buttonUltimate); + if (!ultimate) + { + tableGPU.Controls.Remove(buttonUltimate); - buttonFans.Image = null; - buttonFans.Height = 50; + /* + * buttonFans.Image = null; + buttonFans.Height = 44; + */ + + tablePerf.ColumnCount = 0; + tableGPU.ColumnCount = 0; + + } - tablePerf.ColumnCount = 3; - tablePerf.ColumnCount = 3; - tableGPU.ColumnCount = 0; tableLayoutKeyboard.ColumnCount = 0; tableScreen.ColumnCount = 0; tableLayoutMatrix.ColumnCount = 0; + } public int InitGPUMode() @@ -1020,7 +1027,7 @@ namespace GHelper else GpuMode = ASUSWmi.GPUModeStandard; - if (mux != 1) NoUltimateUI(); + UltimateUI(mux == 1); }