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 racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/87lf6ano18.fsf%40dustycloud.org.

Reply via email to