[racket] Invisible Canvas question
A plain `panel%' doesn't perform any geometry management of its
children, and so `invisible-canvas' isn't moved and resized to fill the
frame. On my screen, I can see a little white dot where the canvas is 1
pixel by 1 pixel.
Normally, you want either `vertical-panel%' or `horizontal-panel%', or
you make a subclass of `panel%' to implement a different kind of
geometry management.
At Thu, 31 Mar 2011 17:29:14 -0300, Eduardo Bellani wrote:
> Could someone please explain why there is an invisible canvas in this
> example?
>
> Env:
> Linux 2.6.31-23-generic Ubuntu i686 GNU/Linux
> racket 5.1.0.4
>
> #lang racket
>
> (require racket/gui)
>
> (define bitmap-canvas%
> (class canvas%
> (init-field [bitmap #f])
> (inherit get-dc)
> (define/override (on-paint)
> (send (get-dc) draw-bitmap bitmap 0 0))
> (super-new)))
>
>
> (define bitmap (read-bitmap "data/image_0.jpg"))
>
> (define f (new frame% [label "foo"] [width 100] [height 100]))
> (define p (new panel% [parent f]))
> (define p2 (new vertical-panel% [parent f]))
>
> ;; why is this invisible?
> (define invisible-canvas (new bitmap-canvas%
> [parent p]
> [bitmap bitmap]))
> (define visible-canvas (new bitmap-canvas%
> [parent p2]
> [bitmap bitmap]))
>
> (send f show #t)
>
>
>
>
> --
> Eduardo Bellani
>
> omnia mutantur, nihil interit.
> _________________________________________________
> For list-related administrative tasks:
> http://lists.racket-lang.org/listinfo/users