• Context Menu ib widget_tree

    From klet Jegou@21:1/5 to All on Wed Nov 29 02:20:55 2017
    Hi,

    Maybe have you find the answer to your question since, but if not, this is a way to do what you want.

    I have found the explanation to do it on this two pages in Harris documentation:

    http://www.harrisgeospatial.com/docs/Creating_Menus.html https://www.harrisgeospatial.com/docs/widget_tree.html

    You have also access to several examples in examples/doc/widgets subdirectory.

    ;-------------------------------------------------;

    ; Manage context_menu event
    pro context_event_Handler, event
    WIDGET_CONTROL, event.ID, get_value=value
    case value of
    'button1': BEGIN
    print,'button1'
    END

    'button2': BEGIN
    print,'button2'
    END
    endcase
    end

    ; Manage classical event from the widget
    pro test_treecontext_event, event

    ; Test for context menu events
    IF (TAG_NAMES(event, /STRUCTURE_NAME) EQ 'WIDGET_CONTEXT') $
    THEN BEGIN
    ; Obtain the widget ID of the context menu base.
    contextBase = WIDGET_INFO(event.ID, $
    FIND_BY_UNAME = 'contextMenu')
    ; Display the context menu and send its events to the
    ; other event handler routines.
    WIDGET_DISPLAYCONTEXTMENU, event.ID, event.X, $
    event.Y, contextBase
    ENDIF

    end


    pro test_treecontext

    tlb= widget_base(/column)
    tre_bs= widget_tree(tlb, /no_bitmaps, /expanded, /CONTEXT_EVENTS)

    tre_fo= widget_tree(tre_bs, /folder)
    tre_s1= widget_tree(tre_fo, value='Size 1') ;need context Menu
    tre_s2= widget_tree(tre_fo, value='Size 2') ;need context Menu
    tre_s3= widget_tree(tre_fo, value='Size 3') ;need context Menu

    contextMenuB = WIDGET_BASE(tre_bs, /CONTEXT_MENU, $
    UNAME="contextMenu")
    button1 = WIDGET_BUTTON(contextMenuB, value='button1', $
    event_pro='context_event_Handler')
    button2 = WIDGET_BUTTON(contextMenuB, value='button2', $
    event_pro='context_event_Handler')


    widget_control, tlb, /realize

    ; Handle the events from the GUI.
    XMANAGER, 'test_treecontext', tlb, /NO_BLOCK
    End

    ;-------------------------------------------------;

    Klet

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)