From 519953223f9baf32dc7500cfbea0aab0083622c7 Mon Sep 17 00:00:00 2001 From: Romain Kuntz Date: Sun, 28 Oct 2007 13:32:21 +0000 Subject: [PATCH] In respect to MacOSX Look & feel, change the systray icon when systray menu appears. Systray MacOSX icons contributed by Guillaume Schreiner. Fixed some wrong code identation. --- .../systray/jdic/SystrayServiceJdicImpl.java | 49 ++++++++++++++---- .../impl/systray/resources.properties | 1 + .../impl/systray/resources/envelopeMacOSX.png | Bin 569 -> 199 bytes .../resources/systrayIconMacOSXWhite.png | Bin 0 -> 552 bytes .../impl/systray/resources_de.properties | 1 + 5 files changed, 40 insertions(+), 11 deletions(-) create mode 100644 src/net/java/sip/communicator/impl/systray/resources/systrayIconMacOSXWhite.png diff --git a/src/net/java/sip/communicator/impl/systray/jdic/SystrayServiceJdicImpl.java b/src/net/java/sip/communicator/impl/systray/jdic/SystrayServiceJdicImpl.java index abfc65087..8da4bc1ad 100644 --- a/src/net/java/sip/communicator/impl/systray/jdic/SystrayServiceJdicImpl.java +++ b/src/net/java/sip/communicator/impl/systray/jdic/SystrayServiceJdicImpl.java @@ -12,6 +12,7 @@ import java.util.Timer; import javax.swing.*; +import javax.swing.event.*; import net.java.sip.communicator.impl.systray.*; import net.java.sip.communicator.service.configuration.*; @@ -79,6 +80,7 @@ public class SystrayServiceJdicImpl * The various icons used on the systray */ private ImageIcon logoIcon; + private ImageIcon logoIconWhite; private ImageIcon envelopeIcon; /** @@ -117,26 +119,28 @@ private void initSystray() // background. if (osName.startsWith("Windows")) { - logoIcon = new ImageIcon( - Resources.getImage("trayIconWindows")); - envelopeIcon = new ImageIcon( - Resources.getImage("messageIconWindows")); + logoIcon = new ImageIcon( + Resources.getImage("trayIconWindows")); + envelopeIcon = new ImageIcon( + Resources.getImage("messageIconWindows")); } // If we're running under MacOSX, we use a special back and // white icons without background. else if (osName.startsWith("Mac OS X")) { - logoIcon = new ImageIcon( - Resources.getImage("trayIconMacOSX")); - envelopeIcon = new ImageIcon( - Resources.getImage("messageIconMacOSX")); + logoIcon = new ImageIcon( + Resources.getImage("trayIconMacOSX")); + logoIconWhite = new ImageIcon( + Resources.getImage("trayIconMacOSXWhite")); + envelopeIcon = new ImageIcon( + Resources.getImage("messageIconMacOSX")); } else { - logoIcon = new ImageIcon( + logoIcon = new ImageIcon( Resources.getImage("trayIcon")); - envelopeIcon = new ImageIcon( - Resources.getImage("messageIcon")); + envelopeIcon = new ImageIcon( + Resources.getImage("messageIcon")); } trayIcon = new TrayIcon(logoIcon, "SIP Communicator", menu); @@ -164,6 +168,29 @@ public void actionPerformed(ActionEvent e) } }); + // Change the MacOSX icon with the white one when the popup + // menu appears + if (osName.startsWith("Mac OS X")) + { + menu.addPopupMenuListener(new PopupMenuListener() + { + public void popupMenuWillBecomeVisible(PopupMenuEvent e) + { + trayIcon.setIcon(logoIconWhite); + } + + public void popupMenuWillBecomeInvisible(PopupMenuEvent e) + { + trayIcon.setIcon(logoIcon); + } + + public void popupMenuCanceled(PopupMenuEvent e) + { + trayIcon.setIcon(logoIconWhite); + } + }); + } + //Notify all interested listener that user has clicked on the systray //popup message. trayIcon.addBalloonActionListener(new ActionListener() diff --git a/src/net/java/sip/communicator/impl/systray/resources.properties b/src/net/java/sip/communicator/impl/systray/resources.properties index 3a7e0489f..5d9992a4c 100644 --- a/src/net/java/sip/communicator/impl/systray/resources.properties +++ b/src/net/java/sip/communicator/impl/systray/resources.properties @@ -7,6 +7,7 @@ trayIcon=net/java/sip/communicator/impl/systray/resources/systrayIcon.png trayIconWindows=net/java/sip/communicator/impl/systray/resources/systrayIconWindows.png trayIconWindowsAnimated=net/java/sip/communicator/impl/systray/resources/systrayIconWindows.gif trayIconMacOSX=net/java/sip/communicator/impl/systray/resources/systrayIconMacOSX.png +trayIconMacOSXWhite=net/java/sip/communicator/impl/systray/resources/systrayIconMacOSXWhite.png addContactIcon=net/java/sip/communicator/impl/systray/resources/addContactIcon.png statusMenuIcon=net/java/sip/communicator/impl/systray/resources/statusIcon.png settingsMenuIcon=net/java/sip/communicator/impl/systray/resources/configureIcon.png diff --git a/src/net/java/sip/communicator/impl/systray/resources/envelopeMacOSX.png b/src/net/java/sip/communicator/impl/systray/resources/envelopeMacOSX.png index d7d5f3284b163b7483d1b86d33d21e6a08b6003f..916cfcd963105727781a9e5fb99179e1bfeccbc9 100644 GIT binary patch delta 135 zcmV;20C@ko1jhl8Dg^+ljUzIVFCljnEG>I8-H`wQ09Z*xK~yNut&&j=z%U3xf%N{j z+&SFOwnR$Se$-F$f}#SaivVhe)2`z%cdxITl9&`Vw+a~D(b4MTXqvG=(6Jr{4{)V$ p?;be?=n6+X!OtF-*U|B(xB+D*5CveswM_s3002ovPDHLkV1hoUI#mDw delta 508 zcmV zzT3OqlW+-2R3h5g1VJQ-h=P$=h=LZTva{7nE5XWO=MT_y>HPz2(%1-A0fWRQhZquq z7lIlSbI0B8d;7HrYMg0iV3=YCWs(D{=`VDTMjKk!tjb~*@-pity?lKVMJ9h((xY;c zVGfas;ghVJ(`Xf_s=oZx4GOayTe+YBYt~j>N_5WxBF4IqvDmz}Lyv}mr^lL|u{dxL zDE?7G5Ehc#JD%qkG7KCjULUS=qWnyg8VL?ZLRvLR+>N5(mgFD07zpXO%v>5`TH6PQ z$*EJ9CM`-%l{FrxGXwy1)~$b}?b<7h+OG?(9$ReDC3#$7iPyAYQRR*kAutH zIbu5#-|vrZv&lWC%8D1+)!m52^#F7(?U-fStg$W+NB`{k=*+xZrOh%O=9&$4V56@* z(Z*=>?#8opI$rcQ2O9en7;g)Y?Scb4QtSAk*he&~T?;M}0wsz&&wFg^Yo#-agIbwU zc0&mWVebKh2lxoC%EVWK%XGdq{cR}V5eEE^J|55R=7^{qmzC=5l?QKQr6VMNBikex y22xtHSUjnwM6UB@oTdFW^?iEq!?!Hwq|R?$7RLq)I2`=|0000M5HThNvv!(tzt;wc0Nkmo9HU}YDInq$afko_ zZ$~xHpjgWtN`Q!0m_X#=04$5ZgeQG&)FKrNe1TA&vQ2W5;sAgZ?CPdiT1W~+DXOrd z6g29jYUQpZy^tb+{erv1v{rMj>G#Q+USs+-DiuD5A>(aPcN}v1Da!WCmh|;~PZmAm zkon8&25@^(!i(6r0f0y#_MFse&OmH zGy|iOI^>iiWT|vCyDSkGX*?N!EfEm~#)ko)nZ9A279t~dKd<+@5{0OLa)tumiSv77 zP0HKyINEa3h7Iv>53