Listbox: Change selection color


I'm using a listbox with colored text.

Function Dostuff()

    Make/T/N=(5,1) tw= "row "+num2str(p)    // 5 row, 1 col text wave (2D)
    Make/B/U/N=(5,1,2) sw       // 5 row, 1 col, 2 plane byte wave
    Make/O/W/U myColors= {{0,0,0},{65535,0,0},{0,65535,0},{0,0,65535},{0,65535,65535}}
    MatrixTranspose myColors    // above was easier to enter as 3 rows, 5 cols
    ListBox lb,mode=3,listWave= tw,selWave= sw,size={200,100},colorWave=myColors
    sw[][][1]= p            // arbitrary index values into plane 1
    // now, execute the following one at a time and observe the results
    SetDimLabel 2,1,backColors,sw   // define plane 1 as background colors
    SetDimLabel 2,1,foreColors,sw   // redefine plane 1 s foreground colors
    sw[][][%foreColors]= 4-p    // change the color index values

And that text color conveys information.
Now if a user selects row 2 the text color is changed to pink which looks a lot like red. I know that having the colors changed to be properly visible is a good thing in general. But here I would need to have something like a bounding rectangle instead of an all blue for the selection. Or can I change the opacity of the selection blue?
Just checked the Listbox drawing code. We've got some old code in there... At present, we call InvertColor() on the text color for a selected cell.

The selection hilite color is what we are told to use by the OS for a selection. On Macintosh, you can change it in the system preferences. On Windows it's fixed. It would take some work to uncook the drawing code and provide the flexibility you want.

John Weeks
WaveMetrics, Inc.