I recently decided to start using Racket for my scripting and for the most part I've found the experience fun and productive. GUIs are another matter, and I'm mainly building the simple UIs I need by copying and modifying existing code. I am having one vexing problem that's driving me crazy however. I want to add a menu-bar% to an application I'm building. After failing repeatedly to do from the Racket Guide alone, I searched and found several examples but none of them succeeded in building a frame with a menu-bar. Assuming they were just buggy, I kept searching.
Finally I came upon a piece of Matthias Feldman's code—see attached—and it
too failed to work as advertised. I'm using Racket (v5.92) on a Mac Pro
workstation with OS 10.9.1 and running ./bin/racket in Emacs, but I've also
tried from a shell and on both of my workstation mac and laptop. Matthias
says the code works fine for him. Does this code work for you? I have no
trouble building UIs with editor-canvas%, panel%, button% classes, but
menu-bars's are eluding me so far.
;; Matthias Felleisen Sat, 21 Sep 2013 06:43:24 -0700
(define f (new frame% [label "Notes"] [width 400] [height 600]))
(define my-canvas%
(class canvas%
(super-new)
(define/override (on-char . x)
(displayln x)
(define dc (send this get-dc))
(send dc set-scale 1 1)
(send dc set-text-foreground "blue")
(send dc draw-text "Use this window for notes" 10 10))))
(define c (new my-canvas% [parent f]))
(define t (new text%))
(define mb (new menu-bar% [parent f]))
(define m-edit (new menu% [label "Edit"] [parent mb]))
(define m-font (new menu% [label "Font"] [parent mb]))
(append-editor-operation-menu-items m-edit #f)
(append-editor-font-menu-items m-font)
(send f show #t)
no-menu-bar.scm
Description: Binary data
____________________ Racket Users list: http://lists.racket-lang.org/users

