Hello,

I'm using the mrlib/hierlist in a GUI I have, and I wanted to add a
right-click menu.  I'm trying to do that, but I can't find an
appropriate place to notice the event.

I noticed I can set up a clickback, but it doesn't seem aware of whether
it's a right or left button click.  I have the following code:


(define (set-text-mixin room room-channel room-ui-manager)
  (mixin (hierarchical-list-item<%>)
      ((interface () set-text))
    (inherit get-editor)
    (super-new)
    ; set-text: this sets the label of the item
    (define/public (set-text str)
      (define t (get-editor))  ; a text% object
      (send t erase)
      ;; We need a way to capture right-clicks, so we're creating our
      ;; own snip here
      (define str-snip
        (new (class string-snip%
               (super-new)
               (define/override (on-event dc x y editorx editory ev)
                 ;; pk is a print debug tool, should print this out
                 (pk 'on-event dc x y editorx editory ev)
                 (super on-event dc x y editorx editory ev)))))
      (send str-snip insert str (string-length str) 0)
      (send t insert str-snip))
    (define/public (get-room)
      room)
    (define/public (get-room-channel)
      room-channel)
    (define/public (install-as-current)
      ($ room-ui-manager 'install-as-current))))

This does set the text of the item appropriately, and I figured trying
to override the string-snip, but the pk (print debug) inside of the
overridden on-event never gets called.  Not sure why.  Does on-event
never get passed through to the snips inside of heirarchical list menu
items?

Is there a better, simpler solution?

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/87lf6ano18.fsf%40dustycloud.org.

Reply via email to