From 565275c1546d8da4e1bf3a4027e7f789723afa62 Mon Sep 17 00:00:00 2001
From: Niko Ehrenfeuchter <nikolaus.ehrenfeuchter@unibas.ch>
Date: Mon, 15 Jan 2018 23:57:37 +0100
Subject: [PATCH] Update the tray icon according to the current status.

Refers to #2
---
 ATXTray/AutoTxTray.cs      |  44 ++++++++++++++++++++++++++++++++++++-
 ATXTray/icon-default.ico   | Bin 0 -> 894 bytes
 ATXTray/icon-stopped.ico   | Bin 0 -> 894 bytes
 ATXTray/icon-suspended.ico | Bin 0 -> 894 bytes
 ATXTray/icon-tx-0.ico      | Bin 0 -> 894 bytes
 ATXTray/icon-tx-1.ico      | Bin 0 -> 894 bytes
 6 files changed, 43 insertions(+), 1 deletion(-)
 create mode 100644 ATXTray/icon-default.ico
 create mode 100644 ATXTray/icon-stopped.ico
 create mode 100644 ATXTray/icon-suspended.ico
 create mode 100644 ATXTray/icon-tx-0.ico
 create mode 100644 ATXTray/icon-tx-1.ico

diff --git a/ATXTray/AutoTxTray.cs b/ATXTray/AutoTxTray.cs
index f52e7f2..0f1bd12 100644
--- a/ATXTray/AutoTxTray.cs
+++ b/ATXTray/AutoTxTray.cs
@@ -30,6 +30,11 @@ namespace ATXTray
         private static long _txSize;
         
         private readonly NotifyIcon _notifyIcon = new NotifyIcon();
+        private readonly Icon _tiDefault;
+        private readonly Icon _tiStopped;
+        private readonly Icon _tiSuspended;
+        private readonly Icon _tiTx0;
+        private readonly Icon _tiTx1;
         private readonly ContextMenuStrip _cmStrip = new ContextMenuStrip();
         private readonly ToolStripMenuItem _miExit = new ToolStripMenuItem();
         private readonly ToolStripMenuItem _miTitle = new ToolStripMenuItem();
@@ -39,9 +44,16 @@ namespace ATXTray
         private readonly ToolStripMenuItem _miTxEnqueue = new ToolStripMenuItem();
 
         public AutoTxTray() {
+            _tiDefault = new Icon("AutoTx.ico");
+            _tiStopped = new Icon("icon-stopped.ico");
+            _tiSuspended = new Icon("icon-suspended.ico");
+            _tiTx0 = new Icon("icon-tx-0.ico");
+            _tiTx1 = new Icon("icon-tx-1.ico");
+
+            _notifyIcon.Icon = _tiStopped;
             _notifyIcon.Visible = true;
-            _notifyIcon.Icon = new Icon("AutoTx.ico");
             _notifyIcon.DoubleClick += StartNewTransfer;
+
             // this doesn't work properly, the menu will not close etc. so we disable it for now:
             // _notifyIcon.Click += ShowContextMenu;
 
@@ -125,6 +137,8 @@ namespace ATXTray
                     txProgress = _txSize.ToString();
             }
 
+            UpdateTrayIcon();
+
             if (!_statusChanged)
                 return;
 
@@ -248,5 +262,33 @@ namespace ATXTray
                     "Transfer completed.", ToolTipIcon.Info);                
             }
         }
+
+        private void UpdateTrayIcon() {
+            if (_txInProgress &&
+                !_svcSuspended) {
+                if (DateTime.Now.Second % 2 == 0) {
+                    _notifyIcon.Icon = _tiTx0;
+                } else {
+                    _notifyIcon.Icon = _tiTx1;
+                }
+            }
+
+            if (!_statusChanged)
+                return;
+
+            if (!_svcRunning) {
+                _notifyIcon.Icon = _tiStopped;
+                return;
+            }
+
+            if (_svcSuspended) {
+                _notifyIcon.Icon = _tiSuspended;
+                return;
+            }
+
+            if (!_txInProgress) {
+                _notifyIcon.Icon = _tiDefault;
+            }
+        }
     }
 }
diff --git a/ATXTray/icon-default.ico b/ATXTray/icon-default.ico
new file mode 100644
index 0000000000000000000000000000000000000000..86d3957ca994afc11765c905518831604be8b3fd
GIT binary patch
literal 894
zcma)5O-mb56n)~ttt)Y-OZWZ)-@Q*4ip@l#O}elU6Ql@2DHElwMuoQGM@6v3O0y^u
zFjf<)#+@Gve}lVLEg~wKtxM1KO~x_0FnMpdbM860pHZp`-`ZM*XT9pLR;o@Z)r1R3
zHR1~XoDZjFDdAGrE8Q8PP>&dilupe*)<)7fio3caOyj>y?yo79<gEUqiDmtw8$Z&V
zUi4K$jwUEMWb&t$$qPIDZP!y3&gjhuMU%dS;_s;cy(wOMgpCWWNfVpROApz)rhzd;
zK?un?)ME-~p6f0X8vV(mnIK~Roa=B5wNRhSpI08ZZ1Rtu{3VC-$%&e^;|jh+9~i3u
z&Dse%MxpLXyjap54$c!envCRa=<Fe?<{t-m)$I-r47^G!vWJ$V!4JoH{lB>8wslL3
zHf{WU-}1#UZ2;jC{_i8nC*ksR!OH35l9gy~m2*c1XuW8QOyB*gBd^WYl?SFXA}JsK
zuxN4g6P-cxWdxYl(7cBuv9jczTrAPxCoGIz3G9Q8CV6<lA2A`cKa|Z&emjYU0WG*f
z66Ix_XEyF<oj>KNJVko3FhR1fLM>8}6GPu*EuEMx&?msSX;A8@MyWmgZ_-uv2K_<1
K>=&+RM0*QY=~Qn3

literal 0
HcmV?d00001

diff --git a/ATXTray/icon-stopped.ico b/ATXTray/icon-stopped.ico
new file mode 100644
index 0000000000000000000000000000000000000000..02d364443336f196074efd097d7ee755279f7275
GIT binary patch
literal 894
zcma)5Jxjzu5M8mbwGulm{ToSklWdZ`T#~(yB%p-|_Ie6}U?W&5iXftb*!Teo7Iun)
zzrjjT5s^dv0hYdXy%0_X?`Fg7oA<J_GZR93@bB*@cn*@uUP1;4AtP9T$S{_||MT;_
zWtX=Y%PEzN)!{gNCJ5JlYHPJ4*PXVkIH>N%>8;G)VR7>=sP0i(vw2I1%|ZpT?Myh{
zY?3``W+=}?d7=Fzd*<Fe2!+IPr(JJO=5LxHv$knira@)i{zmdQ?l0gJ9D$rEt>Yz~
zkjlglxBPIsj3n6$Wf|^*v_-UE4*lhe=n&UutQn{GT^yVa>jIPX0Tn~tx^QeMjbOjv
ztif1A<5Ba*<#W~Awc=Y<7#wT?BBVJ~@zXec#I};0nTBDSPAD%m9}czv5dtAe?^OrA
zmWWTZ+z&Uk#59<)FET(KMOn~&E>;*DlliL#gK$SlI_6h4G>&>A6BHjUaQKujRyB@i
zAt}fJd9aAe>ygm&;EVO5#X)oc>%5`u1xuI*(8?o(Q*3*@5}y{m#yE-SnAxKkm@>Ig
r;Vu{w<Z015#u5&;01E<~k0C-H`v|$hceBu=S2<qxJ8{KT8m0XNN7yN`

literal 0
HcmV?d00001

diff --git a/ATXTray/icon-suspended.ico b/ATXTray/icon-suspended.ico
new file mode 100644
index 0000000000000000000000000000000000000000..55b7e1ce461aefb3ac004ce8d30f87d284bd1679
GIT binary patch
literal 894
zcma)5OG_J36u#o3TUX*vm+t!y=G+UWMoq?vny77IOpsC#L?*V1L<Jwj2MR(9Z7HRj
zq-uhXS@)Nyt%yixCfhFkPUhhd5lqev=brO@_dFv+8@?SK0>52ix?PA)Aw(|@Ori&e
z?a%qh;tu648XngMGn5)-C12Ev`;WPqQk6_gOX{@pLsc)7-C+53Nvl7#p%Fatvh+D(
zF*uv2!n~^8_{hW;FY(n2SoK?aw?x@OL?LsIrWceQ0!}?+!Z9Wtb=Hi6K<6I4Uq%#!
z;G9#Vs(u^1*32YX_6Eu!-OughPSbO!g{CaIUWtRB(&a`K<x@JVj{dY@1{YmOi%}i@
zMaL*L(rULGy6He3+ch*9$u~3Xt9U~n-M;Ufwr;u*D7dn*64b(YJtvQ^;d=GSGsYd`
zwUhYf`FJR}!Uz|?d3eS7<Sn^X=d0aFZUz)%(q(CaVf4Ld3s2wL)iQ6@c~D()%jGDc
z41{2Ha)-{K`8)#5YkuE<grkI%2e93snKdkozY^F7EnAQu4x$nF@41lRg|mNhb`uK&
zSbT*z%9ts)PakGoyOHG@W!_+6;^2sdTDYQg4t?XbOy~RpBLI~D-9lWw5aKufH>EcJ
O#QkwS^fQ(@%)JMIqi`Ys

literal 0
HcmV?d00001

diff --git a/ATXTray/icon-tx-0.ico b/ATXTray/icon-tx-0.ico
new file mode 100644
index 0000000000000000000000000000000000000000..a0a4a78fe06861289a3d84142137ce7aa3ca0553
GIT binary patch
literal 894
zcma)5ze`(D6u#o%>LlHCbZ~Q0Xdw68t3##cMPiybD5MEeghDAVidy2&wzO3dL{v~H
zMQqe2v`t(r=-}VrR(}zKO3mu%cf2ppXY62d@8i7hd|%Gb2vLP^ZLPrbiRiBuqD~0W
zhzm$G;4=Q0k4nx^+@`J``8-5{FdOltOwK>lhEi#Y*|H-@<6m|9ug;hFY#!0XH`&>Z
zA8Af4xhf_{;*=QFnSx>ZHg<g*e;ie|NUz>eB;iUZ_LlmGb^gi_RPLf_@@dnQ4~8Sj
zUD3c8q96q490==d(Q(~o(z3SPy1L>;^v`n{jG`8LX{-0&@3~C!51#5n8s(D}(c32#
ze2zXaRsrhmQ*?|1-IaL0Bs(me|KMmck~g8(4^g#RKESJdX5qlVE4O0(&~PO9!KnIi
z#;&;?>Gw<Bt`_$VpAFp(5H99#9dkZ$TYb(NIgPFuiBxTTZpi?R7j5C`+p{v%r*r=t
zFty5(@=+s821h^988n|qfO!qhJ2(<6OYX?|61|?r!kCr7KFCNy4K27MCWLl}^7~S~
z`G|!9&AUPz<wZ<=`E@tzOhJ9hP^cFR<0ZQ))WQ{6QS^=1(u$e_T>^~jdLfQ$gxJIX
RCRJsw*YCB<e&(`<wKuS!RP_J=

literal 0
HcmV?d00001

diff --git a/ATXTray/icon-tx-1.ico b/ATXTray/icon-tx-1.ico
new file mode 100644
index 0000000000000000000000000000000000000000..c8da555da28babd247932ab7bf040f7a978f70a8
GIT binary patch
literal 894
zcma)5&r2IY6dvipYfhy%J$i^<R4|H3nKyG%G)ajz@t_bBL<&NYjUr04{-oN1pjbr(
zQPikSP_w5>3;iEF)?bKdskwUeo6L4ylZ(ll<<0lLZ|BW>Zy77W-{oR>zF|GD7<<ha
ztH1)p%CQvwlAlO?p_oDMI(SQn{O!t#C3s@KSQ|>FC~ENLAdPLv)E{Z)l<l3-r%m44
zhL=<)zu7894#y}yAk){H>D~F^-8r#TnH%aIp>W)mP_&<VhNO9~2_k#v9&dC{c;Q%*
z>^*%L#VI&K<?L^lnHwvV&&0F7T)(#BMC9Qu4@Pho>NdpG?z50izUV2YQ@B0_!t&sv
zfM2^f3@ZTT!6hn2{<cEg%vH@a!HRK?A|v_y(L8-xvykwmeq&oT-3)_+EkJ}U4*0={
z_<n_L<5t!^-cUKoeY-z39}czv5mNm9bCplb5VILAuUlQxlFEs<%JO7@I*PKW?i*iu
zs7q%5Y0$I20*P&&)kTe?o~R6puUde94a{4(nX@HNWHU#7lNcC15|{@bj*GzsyTuI~
z+c4`5$A87g84L_)&Jj|lypM{xqo-b{uf^vyg*q`XPO`1SUDS;N5!6|YWgwz2XcOQ(
alreT*%GfV_H^~ycoN=fBKd!h+qqL99ELn8`

literal 0
HcmV?d00001

-- 
GitLab