Hi Vincent, This is still a problem in Racket 6.3. I tried to debug the problem but I was unsuccessful. Tried to use a pasteboard% instead, but the plot-snip% did not work correctly with that either. Do you have any advice on where to start looking?
What I'm trying to do is embed plot-snip% objects inside a GUI. Is there a way to do that? I could only find plot-frame which always creates a new frame. For reference, this is that application that is affected: https://github.com/alex-hhh/ActivityLog2. The last Racket version that works with this is 6.1.1 Best Regards, Alex. On Tuesday, October 6, 2015 at 4:26:54 AM UTC+8, Vincent St-Amour wrote: > > Hi Alex, > > Sorry for the late response. > > I can confirm the behavior you observed. I don't see anything wrong with > your code at first glance, so I'm not sure what the problem is. > > Neil: Any ideas? > > Vincent > > > > On Sun, 04 Oct 2015 20:36:35 -0500, > Alex Harsanyi wrote: > > > > Hi, > > > > I posted this question a while ago but I didn't receive any response. I > > just retested the code with the current snapshot (6.2.900.17) and it has > > the same behavior (bug?). > > > > Could someone please test this code on their machine and at least > > confirm whether it works correctly or not for them? > > > > If there's a bug in the code below, could you point out what it is? As I > > mentioned, the code works fine in 6.1.1 and I cannot find anything that > > has changed in this area in version 6.2. > > > > Note that in recent Racket snapshots snip-canvas% has moved, so, in the > > code below, the "(require unstable/gui/snip)" should be replaced with " > > (require mrlib/snip-canvas)". > > > > Thanks, > > Alex. > > > > On Friday, July 24, 2015 at 3:57:13 PM UTC+8, Alex Harsanyi wrote: > > > > > > Hi, > > > > I'm using the plot-snip function to have interactive plots inside > > other GUI elements in my application. This worked fine under Racket > > 6.1.1 but fails under Racket 6.2 (bot versions are 64 bit on > > Windows). The program below illustrates the problem: the function > > `working` creates a plot window using plot-frame. The plot is > > resized correctly and the interactive zoom works as expected. The > > function `not-working` tries to do the same, but creates the plot > > using plot-snip than adds it to a snip canvas. It does essentially > > what plot-frame does, without the error checking (I copied out the > > functions from he plot package). With this version, the plot is not > > resized correctly inside the window and zoom in and out does not > > work correctly. Both functions work as expected under Racket version > > 6.1.1. > > > > The program makes use of snip-canvas% which is in unstable/gui, but > > as far as I can tell, it has not changed between the two versions. > > > > Does anyone know what needs to be done to get this to work, or is > > this a bug in the plot package? > > > > Thanks, > > Alex. > > > > #lang racket/gui > > (require plot) > > (require unstable/gui/snip) > > > > ;; snip-frame% and make-snip-frame are copied from > > ;; C:\Program > > Files\Racket\share\pkgs\plot-gui-lib\plot\private\gui\gui.rkt > > > > (define snip-frame% > > (class frame% > > (define/override (on-traverse-char event) > > (define key-code (send event get-key-code)) > > (case key-code > > [(escape) (send this show #f)] > > [else (super on-traverse-char event)])) > > > > (super-new))) > > > > (define (make-snip-frame snip width height label) > > (define (make-snip w h) snip) > > > > (define frame > > (new snip-frame% [label label] [width (+ 20 width)] [height (+ 20 > > height)])) > > > > (new snip-canvas% > > [parent frame] > > [make-snip make-snip] > > [horiz-margin 5] [vert-margin 5] > > [horizontal-inset 5] [vertical-inset 5]) > > > > frame) > > > > ;; This works as expected when resizing the window and zooming the > > graph > > (define (working) > > (parameterize ([plot-width 150] > > [plot-height 150] > > [plot-x-label #f] > > [plot-y-label #f]) > > (send (plot-frame (function sqr -2 2)) show #t))) > > > > ;; This does not > > (define (not-working) > > (parameterize ([plot-width 150] > > [plot-height 150] > > [plot-x-label #f] > > [plot-y-label #f]) > > ;; this is essentially what plot-frame does sans error checking > > (send (make-snip-frame (plot-snip (function sqr -2 2)) 200 200 > > "hello") show #t))) > > > > > > -- > > You received this message because you are subscribed to the Google > > Groups "Racket Developers" group. > > To unsubscribe from this group and stop receiving emails from it, send > > an email to [email protected] <javascript:>. > > To post to this group, send email to [email protected] > <javascript:>. > > To view this discussion on the web visit > > > https://groups.google.com/d/msgid/racket-dev/c2517296-2a7a-4e49-b617-21cfac413710%40googlegroups.com. > > > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Racket Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-dev/7701193d-5c34-4980-9fa1-bc1c6670e2be%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
