Systray Enchancements Thread last updated on 2004-07-28 12:12:30

Posted by member 184298 on 2004-07-27 19:53:11

I have alreay began modding the freil out of VTray 1.10 to do what i want. But if anyone can do da stuff here with another module, works for me. Here is my list [(*) beside what i have done] This request is very similar to the Explorer Tool SystrayX from XDeskSoftware. Sadly, it won't work with Litestep. http://www.xdesksoftware.com/systrayx.html

- Autosize tray on bang * ![Tray]Autosize
- Autosize back to size(set through RC) after right-click or dbl-click * (Don't Have: right click wait til the menu disappears. Not sure this is even possible unless it detects mouse is still in its area....)
- Options for Autosize Back :
[Tray]ASWidth 18
[Tray]ASHeight 22
- Options for Different Background of Autosize
[Tray]ASBack sysTrayExpanded.png
- Option to show Title of App beside icon in tray
Mainly useful when direction is down or up
- Option to sort icons by title
- Option to put Changing icons to top of sort

Now if you are wondering why i would want this... Here you go

This is enable a big space saver for us with alot of icons. We can have only one icon showing and rest hidden til we need em. I have done a theme with this through RCs and it is to a slow of a change. I even tried making it reload Systray module only so it wouldn't have to rebuild all the others. Still to slow(on my sis 600mhz and that matters to me). So i came to conclusion it would need to be at the module level. This also makes it much easier to implement instead of ugly
If SystrayHide TRUE
[Tray]Width...
Else
...
EndIf
Now it is reduced to a button i have sitting beside my systray
*Shortcut "" -115 0 systray_expand_1.png systray_expand_2.png systray_expand_3.png #0 !VTrayAutoSize

Quite easy. But alas, my c++ is rusty and to do all i want will take alot of time and it will be messy. So i invite all you module writers to get to it =-)

Posted by member 99 on 2004-07-27 21:12:09 link

mzscript and bang commands would be fast enough. I only have a 600MHz machine myself, and I've got far more complicated things working just fine in scripting. Changing .rc files and reloading them is incredibly inefficient when you can just use a !size command.

Some of the other stuff probably isn't possible that way though.

Posted by member 184298 on 2004-07-27 21:19:01 link

well thing is you can't do the autosize feature of vTray without an rc setting. so this needs a reload of it since it reads it once, then sets a variable in the Class of the module only at runtime.

Posted by member 37809 on 2004-07-27 21:32:26 link

I don't really get the reasoning with the picture I get:
Hook VTray into another module if you don't want it to autosize. If it's autosizing then size its parent snugly to fit. If not (but it is inside the parent) then you can implement your own scrolling should it hit a max area limit, disabling if it subsides again?

The per-mode graphics and text isn't possible w/ scripting though...

Posted by member 12025 on 2004-07-27 22:30:06 link

Looks like we'll have to wait for xSystray :).

Backgrounds: use xLabel to hook it into, and have a magic pink background. !Labelrefresh can take care of the BG image.

Titles: Huh, so systray items have more than class names? Isn't that what the taskbar is for?
Sorting icons: no clue.
Changing icons: no clue.

Overall, I think you want to make a taskbar out of the systray. Poorly designed apps use the systray instead of taskbar, and ultimately that is your problem. The systray is fine for rarely used background apps and keeping track of some things (AV, connection status, CPU temp, etc.), but why other programs like to go there is beyond me.

Now, if you want to use it that way and use apps that will also go to the taskbar, look into xTaskbar.

Posted by member 7991 on 2004-07-28 09:48:18 link

ouden: I'm currently working on a Longhorn clone that incorporates something similar to what you are suggesting. Essentially, it works like Windows XP's systray. There are two modes; expanded and compressed, with the number of icons visible in compressed mode user defined. Switching between the two modes is done via a button between the taskbar and systray (ala win XP). This was all done via mzscript... it took a while to get it working right but now it functions perfectly. Very fast too. 400MHz Pentium II btw.

Posted by member 99 on 2004-07-28 12:12:30 link

You don't need the tray's built-in autosizing. Count the icons and do the math in scripting. I think this is a pretty common trick, so it shouldn't be hard to find sample code.