Systray2 transparency Thread last updated on 2003-11-04 01:02:43

Posted by member 71746 on 2003-11-02 16:35:45

Anyone know a way to enable transparency with Systray2.dll? I've got it hooked into an LSBox and the FF00FF areas are showing as black instead of transparent.

Can't use VTray as the icons don't update or accept clicks when vtray is hooked to an lsbox.

Posted by member 37809 on 2003-11-02 17:11:19 link

Does your lsbox background have a unique pattern or something? Otherwise try using the same image (cropped to suit) for systray2, too.

Posted by member 71746 on 2003-11-02 17:29:12 link

The lsbox background is entirely transparent, it's just an anchor.

Also the tray needs to auto-size, within the lsbox.

Posted by member 7223 on 2003-11-03 09:12:44 link

When I used lsbox, I had the same problem with systray2 transparency.
Since I'm using skinbox.dll to hook modules, transparency works as expect (at least with systray2).

The only problem is that skinbox currently doesn't work on 0.24.7; but it will soon :D

Posted by member 35 on 2003-11-03 10:13:38 link

there's no support for real transparency in lsbox, it does the same when you use layercuts in lsbox, it creates a black bg for the module.

Posted by member 71746 on 2003-11-03 20:37:10 link

Ok here's an update to the situation:

Even when it's not hooked the FF00FF areas are still displayed as black instead of transparent. Does systray2 really not support magic pink?

Posted by member 35 on 2003-11-03 21:15:59 link

mmm, i think that when it's not hooked, the shadows in xp display pink.

Posted by member 71746 on 2003-11-03 21:20:21 link

weird.
well i'm using 2k and it's not the shadow, it's a triangular section of magic pink in a .bmp...

Posted by member 71746 on 2003-11-04 01:02:43 link

Ok so I've gotten around the problem by using systray-lsbox.dll and an LsBox as an anchor for the systray. The image of the systray is the LsBox image, and the systray's background is just a solid color that matches the color of the area in the box image where the systray sits. (Hope that made sense to everyone)

Now here's the complicated bit. To enable auto-sizing, I employed the following systray.rc:

SystrayOnAdd !TrayAddIcon
SystrayOnDel !TrayRemoveIcon


...also the script vars TrayWidth and TrayPos, pre-defined either in a startup script or in a vars.rc file, and the following script:

*Script bang !TrayAddIcon
*Script exec !varAdd TrayWidth 20
*Script exec !varAdd TrayPos -20
*Script exec !LsBoxResize TrayBox %{TrayWidth} 29
*Script exec !LsBoxMoveBox TrayBox %{TrayPos} -55
*Script ~bang

*Script bang !TrayRemoveIcon
*Script exec !varAdd TrayWidth -20
*Script exec !varAdd TrayPos 20
*Script exec !LsBoxResize TrayBox %{TrayWidth} 29
*Script exec !LsBoxMoveBox TrayBox %{TrayPos} -55
*Script ~bang


Hope this helps anyone else trying to overcome this little problem :)