Reverse color table appearance in popup menu

Is there a relatively simple way (such as a keyword) to reverse the color range for a color table displayed in a popup menu control? For example, to show the grays color table ranging from white to black instead of black to white in a popup menu control.

Thanks,

Jeff
I have a panel with a popupmenu (*COLORTABLEPOP*) for selecting a color table. There is also a checkbox to permit the user to invert the color table when it is used in a plot. The color table is used to color markers on a plot according to their value.

I had hoped to be able to display the color table on the panel in the same "orientation" as it would appear in use. That is, the rainbow color table in the popupmenu should display running from a low of blue to a high of red if the Invert CTab checkbox were selected.

Capture.PNG (19.44 KB)
My guess as to your use was going to be exactly that. The only suggestion is that you could use a small embedded image to show the color table. Like this:
Function PopMenuProc(pa) : PopupMenuControl
    STRUCT WMPopupAction &pa

    switch( pa.eventCode )
        case 2: // mouse up
            String ColorTableName = pa.popStr
            ControlInfo/W=Panel0 ReverseCheck
            Variable checked=V_value
            ModifyImage/W=Panel0#G0 dummyColors ctab={*,*,$ColorTableName,checked}
            break
        case -1: // control being killed
            break
    endswitch

    return 0
End

Function ReverseCheckProc(cba) : CheckBoxControl
    STRUCT WMCheckboxAction &cba

    switch( cba.eventCode )
        case 2: // mouse up
            ControlInfo/W=Panel0 ColorTablePop
            String ColorTableName = S_value
            ModifyImage/W=Panel0#G0 dummyColors ctab={*,*,$ColorTableName,cba.checked}
            break
        case -1: // control being killed
            break
    endswitch

    return 0
End

Function MakeThePanel()

    if (WinType("Panel0") != 7)
        Make/N=(500,2)/O dummyColors = p
        NewPanel /W=(144,50,456,250)
        PopupMenu ColorTablePop,pos={16.00,23.00},size={256.00,23.00},proc=PopMenuProc,title="Color Table:"
        PopupMenu ColorTablePop,mode=4,value= #"\"*COLORTABLEPOPNONAMES*\""
        CheckBox ReverseCheck,pos={100.00,59.00},size={51.00,16.00},proc=ReverseCheckProc,title="Reverse"
        CheckBox ReverseCheck,value= 0
        DefineGuide UGH0={FT,91},UGH1={UGH0,19},UGV0={FL,78},UGV1={UGV0,173}
        Display/W=(54,50,225,150)/FG=(UGV0,UGH0,UGV1,UGH1)/HOST=#
        AppendImage dummyColors
        ModifyImage dummyColors ctab= {*,*,BlueHot,0}
        ModifyGraph margin(left)=-1,margin(bottom)=-1,margin(top)=-1,margin(right)=-1
        ModifyGraph mirror=0
        ModifyGraph noLabel=2
        ModifyGraph axThick=0
        RenameWindow #,G0
        SetActiveSubwindow ##
    else
        DoWindow/F Panel0
    endif
end

Execute MakeThePanel() to try it out.

John Weeks
WaveMetrics, Inc.
support@wavemetrics.com
John,

Your example works very nicely. This will be a simple addition to my panel.

Maybe this capability will be present in a forthcoming major platform upgrade.

Thanks for the quick code example.

Jeff