[racket] Help with racket/gui and framework

From: Harry Spier (vasishtha.spier at gmail.com)
Date: Tue Feb 4 02:00:54 EST 2014

I'm building a small text editing application based around an editor built
with racket/gui and framework..  The idea is that it has the usual text
editing features but also buttons where I select text and then based on
which button I click on the selected text is manipulated in different ways.
 I'm just building the gui part now.  I started using just racket/gui but
then tried to implement some things in "framework" but I'm having trouble
with a few things and I can't figure out how to do them from the

In the code below:
1) How do I add a "Save" feature to the file menu.
2) The "Open recent" menu item in the file menu opens my DrRacket "recently
opened files".  How do I get it to look at its own history instead of
3) Where I define main-frame as a frame:standard-menus% object in the code
below, I tried to define it as a frame:editor% object but I couldn't get
that to work.  Could someone show me how to do that.

#lang racket/gui
(require framework)
(application:current-app-name "Sanskrit editor")

(define main-frame (new frame:standard-menus% [label "Sanskrit editor"]))

(send main-frame show #t)
(define main-area (send main-frame get-area-container))
(define h-panel (new horizontal-panel% [parent
main-area][stretchable-height #f]))
(define msg (new message% [parent main-area][label "NO EVENTS SO FAR... "]))
(define button-font (make-object font% 12 "Consolas" 'default 'normal 'bold
(define button-1 (new button% [parent h-panel][font button-font]
    [label "Apply Sandhi"]
    ; Callback procedure for a button click:
    [callback (lambda (button event)
           (send msg set-label "TEST Apply Sandhi Test"))]))

(define button-2 (new button% [parent h-panel][font button-font]
    [label "HK-->Unicode"]
    ; [style '(border)]
    ; Callback procedure for a button click:
    [callback (lambda (button event)
           (send msg set-label "TEST Converted HK-->Unicode"))]))

(define main-text-editor (new text%))

(define default-delta (make-object style-delta%) )
(send default-delta set-delta-face "Consolas")
(send default-delta set-size-add 4)
(send main-text-editor change-style default-delta)
(send main-text-editor set-max-undo-history 400)
(send main-text-editor auto-wrap #t)

(define main-canvas (new editor-canvas% [parent main-area]))
(define WhiteSmokeColor (send the-color-database find-color "WhiteSmoke"))
(send main-canvas set-canvas-background WhiteSmokeColor)
(send main-canvas set-editor main-text-editor)


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20140203/f0e4e714/attachment-0001.html>

Posted on the users mailing list.