[racket] affing a panel to DrRacket
it's lives, but I'm still a little confused on how I set where it sits in
the layout, and how to make it dragable - the class is not enough. I
appreciate the help - I'm having a bad run at making sense of the
documentation.
the relevant bit;
[...]
(define (tabs-mixin super%)
(class super%
(define text (new text%))
(super-new)
(let* ((area-container (send this get-area-container))
(test-panel (new panel:horizontal-dragable% (parent
area-container)))
(text (new text%))
(ed (new editor-canvas% (parent test-panel))))
(send ed set-editor text)
#;(send area-container add-child test-panel)) ;;; I need a parent
to instantiate a panel.
))
[...]
As you can see I'm also curious about the nature of the add-child method,
given that the panel is added at instantiation, and a parent is required.
Thanks again for your help.
,
Stephen
Full file;
#lang racket/base
(require mred
racket/class
scheme/file
scheme/contract
framework/framework
framework
racket/unit
drracket/tool-lib
drscheme/tool
)
(provide tool@)
(define tool@
(unit
(import drracket:tool^)
(export drracket:tool-exports^)
(define (phase1) (void))
(define (phase2) (void))
(define (tabs-mixin super%)
(class super%
; frame:basic<%>
; frame:basic-mixin: do not add children directly to a frame:basic
(unless using make-root-area-container)
; use the get-area-contaner method instead
(define text (new text%))
(inherit get-current-tab get-menu-bar get-button-panel
register-toolbar-button)
(super-new)
(let* ((area-container (send this get-area-container))
(test-panel (new panel:horizontal-dragable% (parent
area-container)))
(text (new text%))
(ed (new editor-canvas% (parent test-panel))))
(send ed set-editor text)
#;(send area-container add-child test-panel))
))
(drracket:get/extend:extend-unit-frame tabs-mixin)
))
;; info file
#lang setup/infotab
(define name "Cosmonaut")
(define version "0.1")
(define release-notes '("for Racket 5"))
(define blurb '("Cosmonaut lets you explore the PLaneT package repository
from within DrScheme."))
(define doc.txt "doc.txt")
(define homepage "http://sp.degabrielle.name/cosmonaut")
(define drracket-tools '(("cosmonaut.rkt")
;("fossil.rkt")
;("tabs.rkt")
))
(define drracket-tool-names '("Cosmonaut"
;"Fossil"
;"Tabs"
))
;(define drracket-tool-icons (list (list "cosmonaut.png" "fossil.png"
"projectmgr.png")))
(define drracket-tool-urls '(("http://sp.degabrielle.name/cosmonaut")
;("http://sp.degabrielle.name/Fossil")
;("http://sp.degabrielle.name/Tabs")
))
On Wed, Jun 30, 2010 at 5:02 PM, Robby Findler
<robby at eecs.northwestern.edu>wrote:
> You want to create a tool, add in a frame-mixin (both via the tools
> interface), and then use the frame:basic<%> mechanism for adding
> panels to the frame.
>
> If that's not enough to get you started, I'll write up a little
> example tool that does it.
>
> Robby
>
> On Wed, Jun 30, 2010 at 8:30 AM, Stephen De Gabrielle
> <spdegabrielle at gmail.com> wrote:
> > Hi,
> >
> > Please forgive my ignorance, I'm trying to work out how to add a panel
> > (like program contour) to DrRacket.
> >
> > Does anyone know the correct method, or can point me to source code, or
> the
> > right bit of the documentation?
> >
> > Cheers,
> >
> > Stephen
> >
> > _________________________________________________
> > For list-related administrative tasks:
> > http://lists.racket-lang.org/listinfo/users
> >
>
--
--
Stephen De Gabrielle
stephen.degabrielle at acm.org
Telephone +44 (0)20 85670911
Mobile +44 (0)79 85189045
http://www.degabrielle.name/stephen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20100701/d66f1f25/attachment.html>