From f00861fb24708d06a11396e7a9d17665d36f0345 Mon Sep 17 00:00:00 2001 From: Decaux Nicolas Date: Thu, 11 Feb 2021 20:12:17 +0100 Subject: [PATCH] Battery State in GUI Addition of a small signage icon indicating if the battery is in Charge / Discharge / Charged state. When the status is unknown (Connection not established or lost), no status is displayed. --- .../WinNUT-client.de-DE.xlf | 24 ++++++++ .../WinNUT-client.fr-FR.xlf | 24 ++++++++ .../WinNUT-client.zh-CN.xlf | 24 ++++++++ .../My Project/Resources.Designer.vb | 30 +++++++++ .../WinNUT_GUI/My Project/Resources.resx | 9 +++ .../WinNUT_GUI/Resources/Battery_Charged.png | Bin 0 -> 892 bytes .../WinNUT_GUI/Resources/Battery_Charging.png | Bin 0 -> 930 bytes .../Resources/Battery_Discharging.png | Bin 0 -> 880 bytes WinNUT_V2/WinNUT_GUI/WinNUT-client.vbproj | 15 +++-- WinNUT_V2/WinNUT_GUI/WinNUT.Designer.vb | 25 +++++--- WinNUT_V2/WinNUT_GUI/WinNUT.resx | 57 ++++++++++++------ WinNUT_V2/WinNUT_GUI/WinNUT.vb | 32 ++++++++++ WinNUT_V2/images/Base Gimp/Battery_State.xcf | Bin 0 -> 179312 bytes WinNUT_V2/images/Png/Battery_Charged.png | Bin 0 -> 892 bytes WinNUT_V2/images/Png/Battery_Charging.png | Bin 0 -> 930 bytes WinNUT_V2/images/Png/Battery_Discharging.png | Bin 0 -> 880 bytes 16 files changed, 209 insertions(+), 31 deletions(-) create mode 100644 WinNUT_V2/WinNUT_GUI/Resources/Battery_Charged.png create mode 100644 WinNUT_V2/WinNUT_GUI/Resources/Battery_Charging.png create mode 100644 WinNUT_V2/WinNUT_GUI/Resources/Battery_Discharging.png create mode 100644 WinNUT_V2/images/Base Gimp/Battery_State.xcf create mode 100644 WinNUT_V2/images/Png/Battery_Charged.png create mode 100644 WinNUT_V2/images/Png/Battery_Charging.png create mode 100644 WinNUT_V2/images/Png/Battery_Discharging.png diff --git a/WinNUT_V2/WinNUT_GUI/MultilingualResources/WinNUT-client.de-DE.xlf b/WinNUT_V2/WinNUT_GUI/MultilingualResources/WinNUT-client.de-DE.xlf index d98034a..9510fb5 100644 --- a/WinNUT_V2/WinNUT_GUI/MultilingualResources/WinNUT-client.de-DE.xlf +++ b/WinNUT_V2/WinNUT_GUI/MultilingualResources/WinNUT-client.de-DE.xlf @@ -15563,6 +15563,18 @@ Ini-Datei nach {0}.old verschoben Stop condition imposed by the NUT server Vom NUT-Server auferlegte Stoppbedingung + + ..\Resources\Battery_Charged.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\Battery_Charged.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Battery_Charging.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\Battery_Charging.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Battery_Discharging.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\Battery_Discharging.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + @@ -44216,6 +44228,18 @@ Ini-Datei nach {0}.old verschoben Import Ini File (v1.x) Ini-Datei importieren (v1.x) + + 132, 10 + 132, 10 + + + 24, 24 + 24, 24 + + + 2 + 2 + diff --git a/WinNUT_V2/WinNUT_GUI/MultilingualResources/WinNUT-client.fr-FR.xlf b/WinNUT_V2/WinNUT_GUI/MultilingualResources/WinNUT-client.fr-FR.xlf index 31f8f39..14899a6 100644 --- a/WinNUT_V2/WinNUT_GUI/MultilingualResources/WinNUT-client.fr-FR.xlf +++ b/WinNUT_V2/WinNUT_GUI/MultilingualResources/WinNUT-client.fr-FR.xlf @@ -15564,6 +15564,18 @@ Fichier Ini déplacé vers {0}.old Stop condition imposed by the NUT server Condition d'arrêt forcée signalée par le serveur NUT + + ..\Resources\Battery_Charged.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\Battery_Charged.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Battery_Charging.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\Battery_Charging.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Battery_Discharging.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\Battery_Discharging.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + @@ -44217,6 +44229,18 @@ Fichier Ini déplacé vers {0}.old Import Ini File (v1.x) Import Fichier Ini (v1.x) + + 132, 10 + 132, 10 + + + 24, 24 + 24, 24 + + + 2 + 2 + diff --git a/WinNUT_V2/WinNUT_GUI/MultilingualResources/WinNUT-client.zh-CN.xlf b/WinNUT_V2/WinNUT_GUI/MultilingualResources/WinNUT-client.zh-CN.xlf index aebb0b2..5ad89e5 100644 --- a/WinNUT_V2/WinNUT_GUI/MultilingualResources/WinNUT-client.zh-CN.xlf +++ b/WinNUT_V2/WinNUT_GUI/MultilingualResources/WinNUT-client.zh-CN.xlf @@ -763,6 +763,18 @@ Cancel to Save Msi and Install Later Stop condition imposed by the NUT server NUT服务器施加的停止条件 + + ..\Resources\Battery_Charged.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\Battery_Charged.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Battery_Charging.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\Battery_Charging.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Battery_Discharging.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\Battery_Discharging.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + @@ -58435,6 +58447,18 @@ Accepted value: Numeric value from 0 to 100. 58 58 + + 132, 10 + 132, 10 + + + 24, 24 + 24, 24 + + + 2 + 2 + diff --git a/WinNUT_V2/WinNUT_GUI/My Project/Resources.Designer.vb b/WinNUT_V2/WinNUT_GUI/My Project/Resources.Designer.vb index 7e92ac4..74459d0 100644 --- a/WinNUT_V2/WinNUT_GUI/My Project/Resources.Designer.vb +++ b/WinNUT_V2/WinNUT_GUI/My Project/Resources.Designer.vb @@ -329,6 +329,36 @@ Namespace My.Resources End Get End Property + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Public ReadOnly Property Battery_Charged() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Battery_Charged", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Public ReadOnly Property Battery_Charging() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Battery_Charging", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Recherche une ressource localisée de type System.Drawing.Bitmap. + ''' + Public ReadOnly Property Battery_Discharging() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Battery_Discharging", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + ''' ''' Recherche une ressource localisée de type System.Drawing.Bitmap. ''' diff --git a/WinNUT_V2/WinNUT_GUI/My Project/Resources.resx b/WinNUT_V2/WinNUT_GUI/My Project/Resources.resx index 05bef6a..b03568b 100644 --- a/WinNUT_V2/WinNUT_GUI/My Project/Resources.resx +++ b/WinNUT_V2/WinNUT_GUI/My Project/Resources.resx @@ -199,6 +199,15 @@ Application shut down at + + ..\Resources\Battery_Charged.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Battery_Charging.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Battery_Discharging.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\Delete_LogFile_24x24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a diff --git a/WinNUT_V2/WinNUT_GUI/Resources/Battery_Charged.png b/WinNUT_V2/WinNUT_GUI/Resources/Battery_Charged.png new file mode 100644 index 0000000000000000000000000000000000000000..b79ced475355bf08bb16f881b3a1d1d06b259206 GIT binary patch literal 892 zcmV-?1B3jDP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf6951U69E94oEQKA0})9?K~zXft(9L$ z(@_-1opb*nU71>zFe-`7H6+BSUZNs=s23}rgoMC|f(W9FpnQ-b2r7b*{(vt9HR>%0 zdMQD05K2mO_K*~j#EJy5xvl-_bMEiA_1kY|Q~bhr=iYP9J?GwY&+pDsW2AD@gDAVE`8Qx|~;7%F`>n@u5FCnhG|$$UAm%8%FU-C9>y zcZlF^Oar15FfT{U*3{Hg*VoriN2AfWW+@#Ozu$it`2bcc&A$WS@l-OIyu}4SE-x=1GIDNi?qMdAxz7e>@$+iS z{-U?HS7Io1babea`+UCRR3?Z#BPEg!nRGgxd*ktVC*!-~lmmfx!vslQks!_q8gx?; zT3T9cu~_Up8@q~c6duiIUkMProy}Zen1FpW&Tv5jb~%jbG16wUeMbHl++{VvPr@p8 zK8fnt;NW1&e1f0cL)gevDmAa$76oP5L-3shPcywiDZeSb{N#YsL95mJ!blbrU91`G z-j3g8hA#NT<#Gj;0WA3rJRXmefIIj&*Xk<45!eiWaN;XGEx$>qUW0-J9B~M7)<_n7 zLgrCfS$Q455T_lZ1DhKg8>^UK5*tD9Ra8`bl`%Sb%L)@v^VL!kBkgv(Q#UK13&JS^ zY-HL`d!J^$8BW9J)IOVJqyxPih}V%5zcxbAlub zA`^*32C&^`EOmB^1Ouks7vBNFUQ(uZBNK_l2i=^5TIhDW`w04!p#%*{ z$BEv6;sjjKHXKhGiEh1a&Ot6O8w!Qysed;cXn<|wJ_S<$y>AuQ((mV|-? zJk5{j`z=P+*4B>d=EWfORy8+6{%}4b*T9Q>Jl~bp1WvLYA&=iEZMsV-O~6MwNqt;K zNP=z*HyN+eR11RuU-0W9!E0Sr5+s2gxex9qfJ14EF~eO1>Hi30)g7gwtn3d7b*J?@ S;;@qd0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf6951U69E94oEQKA12;)TK~zXfot4i| z6HySy`wOaQ6GT8UC=rdeU`;eCdLjXh2fbj@6N#Mk;6)P;qJM;mAbK!H51zz$GI&H1 z2_^=xDTS6)VcjO-<;3qZ`$ql zJ+O%Bz1!`6I5|1Ftk2juObOcB+WH9mgrR0H7K=H=$=TW2529}dPI-8}-b0OzjTZ@i z9@Q^40lEW`s;{rFYierxy12NwqI=d4dwYBPCFCPmr&<1vFzgM7!$Dou;OOk^lp-{Y zjg3iL^SY+PPFrTEv;_{(lBBX*;lpZLZMH} zq$T);jOB8~@*a<8mFztPnJ^N&&*gHhGPfub_1A1Rd|jx<;1Yd_7~@LSQ10JGL9nxGSV95Y z0IQl&x&~7MsTgs~NLm(0n!v`osJ=s~B`lEO1?|ZyU4wN6KdB&WBzyB)`N~KplU{<= zDz$_<+Vhw_oq+vPgcwZ;*vJb^dSxVmyvkh$iH{@Px>kkOEVNW8F*eb?N?E$Sk zim1}HN>J3hXf&FZu_*zW-y&`pNsB%s%LoJlPUh{0S_{@dngWK9^3jaqVlJp0%3{wJvy{1h) zMrJaZsB*6fR@sV>4gUsT{_{KFN;pCV*NnurTe;T+t89TTiknHN(;;Op!`h;QR1`3h z1Ur?l0_sFHLp#Mhh{xj<|BFrSK?&2-)7ucT2cygz(ToBGOf&c&j literal 0 HcmV?d00001 diff --git a/WinNUT_V2/WinNUT_GUI/Resources/Battery_Discharging.png b/WinNUT_V2/WinNUT_GUI/Resources/Battery_Discharging.png new file mode 100644 index 0000000000000000000000000000000000000000..eb53d9a4d603d02817584081b6a2bb7740820960 GIT binary patch literal 880 zcmV-$1CRWPP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf6951U69E94oEQKA0|iM$K~zXfwUysX zlTjGQeK*}wCzMUgNC#Wa=^E697hMFENKxG=6-AI&7DyLC7Zvn3bm2`<7k1H2fdvxQ zT}gpND5cG9((D%*Oh_2h((T>)ocBGB^S)}#L0|apdCv1ad!BQibKdvWDilN_k-fUE zU)MBk4=fOR=XSgAPE1TJn=`f!OM#A#jy@6(;TrKmp^(FL&dkib7vpl^6hEO*DA?H8 zc$(zL8Ae1*fUyIU_IkbbO-)VnsZ{EZsgw>a91izl@56c{vN@vgVl*24U=B-zMq56z zQXd?oC5tj{M?2aj>?_*UZH7vND6oY6l*{G191cen@R^c{bUGccsi|p08_nnQ%duFj zSxN$qU@&-v_+fmFIZtWjld-WeadrkAtXx2^tE62{|ZY1v0}^(m9*?DwrtpU@QVj6s*>DZn9} z;vAl-uk;|?=VmmDJbnc3Od&*m&!flMazkb56c+0f81DdlyTo105jS62_)= zygmxNl%bL!3b?SxU>6D8Msz(E>Gxy4W-5mHl literal 0 HcmV?d00001 diff --git a/WinNUT_V2/WinNUT_GUI/WinNUT-client.vbproj b/WinNUT_V2/WinNUT_GUI/WinNUT-client.vbproj index c9edca1..0529e84 100644 --- a/WinNUT_V2/WinNUT_GUI/WinNUT-client.vbproj +++ b/WinNUT_V2/WinNUT_GUI/WinNUT-client.vbproj @@ -137,6 +137,11 @@ + + True + True + Resources.resx + Component @@ -183,11 +188,6 @@ Application.myapp True - - True - True - Resources.resx - True Settings.settings @@ -270,9 +270,9 @@ PublicVbMyResourcesResXFileCodeGenerator - Resources.Designer.vb My.Resources Designer + Resources.Designer.vb WinNUT.vb @@ -332,6 +332,9 @@ + + + diff --git a/WinNUT_V2/WinNUT_GUI/WinNUT.Designer.vb b/WinNUT_V2/WinNUT_GUI/WinNUT.Designer.vb index e3a7b9b..1bceeeb 100644 --- a/WinNUT_V2/WinNUT_GUI/WinNUT.Designer.vb +++ b/WinNUT_V2/WinNUT_GUI/WinNUT.Designer.vb @@ -72,8 +72,9 @@ Partial Class WinNUT Me.AG_OutV = New System.Windows.Forms.AGauge() Me.Lbl_OutV_Dial = New System.Windows.Forms.Label() Me.GB_BattCh_Dial = New System.Windows.Forms.GroupBox() - Me.AG_BattCh = New System.Windows.Forms.AGauge() + Me.PBox_Battery_State = New System.Windows.Forms.PictureBox() Me.Lbl_BattCh_Dial = New System.Windows.Forms.Label() + Me.AG_BattCh = New System.Windows.Forms.AGauge() Me.GB_Load_Dial = New System.Windows.Forms.GroupBox() Me.AG_Load = New System.Windows.Forms.AGauge() Me.Lbl_Load_Dial = New System.Windows.Forms.Label() @@ -90,6 +91,7 @@ Partial Class WinNUT Me.GB_InV_Dial.SuspendLayout() Me.GB_OutV_Dial.SuspendLayout() Me.GB_BattCh_Dial.SuspendLayout() + CType(Me.PBox_Battery_State, System.ComponentModel.ISupportInitialize).BeginInit() Me.GB_Load_Dial.SuspendLayout() Me.GB_BattV_Dial.SuspendLayout() Me.GB_InF_Dial.SuspendLayout() @@ -471,11 +473,23 @@ Partial Class WinNUT 'GB_BattCh_Dial ' resources.ApplyResources(Me.GB_BattCh_Dial, "GB_BattCh_Dial") - Me.GB_BattCh_Dial.Controls.Add(Me.AG_BattCh) + Me.GB_BattCh_Dial.Controls.Add(Me.PBox_Battery_State) Me.GB_BattCh_Dial.Controls.Add(Me.Lbl_BattCh_Dial) + Me.GB_BattCh_Dial.Controls.Add(Me.AG_BattCh) Me.GB_BattCh_Dial.Name = "GB_BattCh_Dial" Me.GB_BattCh_Dial.TabStop = False ' + 'PBox_Battery_State + ' + resources.ApplyResources(Me.PBox_Battery_State, "PBox_Battery_State") + Me.PBox_Battery_State.Name = "PBox_Battery_State" + Me.PBox_Battery_State.TabStop = False + ' + 'Lbl_BattCh_Dial + ' + resources.ApplyResources(Me.Lbl_BattCh_Dial, "Lbl_BattCh_Dial") + Me.Lbl_BattCh_Dial.Name = "Lbl_BattCh_Dial" + ' 'AG_BattCh ' Me.AG_BattCh.BaseArcColor = System.Drawing.Color.Gray @@ -521,11 +535,6 @@ Partial Class WinNUT Me.AG_BattCh.Value1 = 0! Me.AG_BattCh.Value2 = 0! ' - 'Lbl_BattCh_Dial - ' - resources.ApplyResources(Me.Lbl_BattCh_Dial, "Lbl_BattCh_Dial") - Me.Lbl_BattCh_Dial.Name = "Lbl_BattCh_Dial" - ' 'GB_Load_Dial ' resources.ApplyResources(Me.GB_Load_Dial, "GB_Load_Dial") @@ -734,6 +743,7 @@ Partial Class WinNUT Me.GB_OutV_Dial.PerformLayout() Me.GB_BattCh_Dial.ResumeLayout(False) Me.GB_BattCh_Dial.PerformLayout() + CType(Me.PBox_Battery_State, System.ComponentModel.ISupportInitialize).EndInit() Me.GB_Load_Dial.ResumeLayout(False) Me.GB_Load_Dial.PerformLayout() Me.GB_BattV_Dial.ResumeLayout(False) @@ -806,4 +816,5 @@ Partial Class WinNUT Friend WithEvents Lbl_InF_Dial As Label Friend WithEvents CB_CurrentLog As ComboBox Friend WithEvents Menu_Import_Ini As ToolStripMenuItem + Friend WithEvents PBox_Battery_State As PictureBox End Class diff --git a/WinNUT_V2/WinNUT_GUI/WinNUT.resx b/WinNUT_V2/WinNUT_GUI/WinNUT.resx index e05b383..e4c72dd 100644 --- a/WinNUT_V2/WinNUT_GUI/WinNUT.resx +++ b/WinNUT_V2/WinNUT_GUI/WinNUT.resx @@ -7967,31 +7967,25 @@ Left - - 6, 27 - - - 148, 130 - - - 148, 130 + + 132, 10 - - 148, 130 + + 24, 24 - - 1 + + 2 - - AG_BattCh + + PBox_Battery_State - - System.Windows.Forms.AGauge, AGauge, Version=2.0.2.0, Culture=neutral, PublicKeyToken=null + + System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + GB_BattCh_Dial - + 0 @@ -8033,6 +8027,33 @@ 1 + + 6, 27 + + + 148, 130 + + + 148, 130 + + + 148, 130 + + + 1 + + + AG_BattCh + + + System.Windows.Forms.AGauge, AGauge, Version=2.0.2.0, Culture=neutral, PublicKeyToken=null + + + GB_BattCh_Dial + + + 2 + 200, 188 diff --git a/WinNUT_V2/WinNUT_GUI/WinNUT.vb b/WinNUT_V2/WinNUT_GUI/WinNUT.vb index d2dd465..6e5f2ca 100644 --- a/WinNUT_V2/WinNUT_GUI/WinNUT.vb +++ b/WinNUT_V2/WinNUT_GUI/WinNUT.vb @@ -96,6 +96,7 @@ Public Class WinNUT Private Event On_Battery() Private Event On_Line() Private Event UpdateNotifyIconStr(ByVal Reason As String, ByVal Message As String) + Private Event UpdateBatteryState(ByVal Reason As String) Declare Function SetSystemPowerState Lib "kernel32" (ByVal fSuspend As Integer, ByVal fForce As Integer) As Integer Public Property UpdateMethod() As String @@ -399,6 +400,7 @@ Public Class WinNUT LogFile.LogTracing("Update Icon", LogLvl.LOG_DEBUG, Me) UpdateIcon_NotifyIcon() RaiseEvent UpdateNotifyIconStr("Deconnected", Nothing) + RaiseEvent UpdateBatteryState("Deconnected") End Sub Private Sub Event_UpdateNotifyIconStr(ByVal Optional Reason As String = Nothing, ByVal Optional Message As String = Nothing) Handles Me.UpdateNotifyIconStr @@ -460,6 +462,33 @@ Public Class WinNUT LogFile.LogTracing("NotifyIcon Text => " & vbNewLine & NotifyStr, LogLvl.LOG_DEBUG, Me) End Sub + + Private Sub Event_UpdateBatteryState(ByVal Optional Reason As String = Nothing) Handles Me.UpdateBatteryState + Static Dim Old_Battery_Value As Integer = Me.UPS_BattCh + Dim Status As String = "Unknown" + Select Case Reason + Case Nothing, "Deconnected", "Lost Connect" + If Not UPS_Network.IsConnected Then + Me.PBox_Battery_State.Image = Nothing + End If + Status = "Unknown" + Case "Update Data" + If Me.UPS_BattCh = 100 Then + Me.PBox_Battery_State.Image = My.Resources.Battery_Charged + Status = "Charged" + Else + If Me.UPS_Status.Trim().StartsWith("OL") Or StrReverse(Me.UPS_Status.Trim()).StartsWith("LO") Then + Me.PBox_Battery_State.Image = My.Resources.Battery_Charging + Status = "Charging" + Else + Me.PBox_Battery_State.Image = My.Resources.Battery_Discharging + Status = "Discharging" + End If + End If + End Select + Old_Battery_Value = Me.UPS_BattCh + LogFile.LogTracing("Battery Status => " & Status, LogLvl.LOG_DEBUG, Me) + End Sub Private Sub Event_Unknown_UPS() Handles UPS_Network.Unknown_UPS ActualAppIconIdx = AppIconIdx.IDX_ICO_OFFLINE LogFile.LogTracing("Update Icon", LogLvl.LOG_DEBUG, Me) @@ -514,6 +543,7 @@ Public Class WinNUT AG_BattV.Value1 = WinNUT_Params.Arr_Reg_Key.Item("MinBattVoltage") UpdateIcon_NotifyIcon() RaiseEvent UpdateNotifyIconStr("Lost Connect", Nothing) + RaiseEvent UpdateBatteryState("Lost Connect") LogFile.LogTracing("Update Icon", LogLvl.LOG_DEBUG, Me) End Sub @@ -613,6 +643,7 @@ Public Class WinNUT LogFile.LogTracing("Update Icon", LogLvl.LOG_DEBUG, Me) UpdateIcon_NotifyIcon() RaiseEvent UpdateNotifyIconStr("Update Data", Nothing) + RaiseEvent UpdateBatteryState("Update Data") If Me.UPS_Status = "OL" And UPS_Network.UPS_Status = "OB" Then RaiseEvent On_Battery() End If @@ -629,6 +660,7 @@ Public Class WinNUT LogFile.LogTracing("Update Icon", LogLvl.LOG_DEBUG, Me) UpdateIcon_NotifyIcon() RaiseEvent UpdateNotifyIconStr("Deconnected", Nothing) + RaiseEvent UpdateBatteryState("Deconnected") End Sub Private Sub ReInitDisplayValues() diff --git a/WinNUT_V2/images/Base Gimp/Battery_State.xcf b/WinNUT_V2/images/Base Gimp/Battery_State.xcf new file mode 100644 index 0000000000000000000000000000000000000000..d9616229f09465efe0d0f6ae0034fc764d155aa0 GIT binary patch literal 179312 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 literal 0 HcmV?d00001 diff --git a/WinNUT_V2/images/Png/Battery_Discharging.png b/WinNUT_V2/images/Png/Battery_Discharging.png new file mode 100644 index 0000000000000000000000000000000000000000..eb53d9a4d603d02817584081b6a2bb7740820960 GIT binary patch literal 880 zcmV-$1CRWPP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf6951U69E94oEQKA0|iM$K~zXfwUysX zlTjGQeK*}wCzMUgNC#Wa=^E697hMFENKxG=6-AI&7DyLC7Zvn3bm2`<7k1H2fdvxQ zT}gpND5cG9((D%*Oh_2h((T>)ocBGB^S)}#L0|apdCv1ad!BQibKdvWDilN_k-fUE zU)MBk4=fOR=XSgAPE1TJn=`f!OM#A#jy@6(;TrKmp^(FL&dkib7vpl^6hEO*DA?H8 zc$(zL8Ae1*fUyIU_IkbbO-)VnsZ{EZsgw>a91izl@56c{vN@vgVl*24U=B-zMq56z zQXd?oC5tj{M?2aj>?_*UZH7vND6oY6l*{G191cen@R^c{bUGccsi|p08_nnQ%duFj zSxN$qU@&-v_+fmFIZtWjld-WeadrkAtXx2^tE62{|ZY1v0}^(m9*?DwrtpU@QVj6s*>DZn9} z;vAl-uk;|?=VmmDJbnc3Od&*m&!flMazkb56c+0f81DdlyTo105jS62_)= zygmxNl%bL!3b?SxU>6D8Msz(E>Gxy4W-5mHl literal 0 HcmV?d00001