Re: [racket-users] interactive window in slideshow

2016-06-11 Thread Nick
Just updated to 6.5 on Ubuntu, but I can't get a control to focus. My issue is 
similar to http://lists.racket-lang.org/users/archive/2011-May/045317.html, I 
have a dialog with a choice% in it, and no matter when or how I (send choice 
focus), the choice will never focus without me having to type tab first. I've 
tried focus'ing before show'ing the dialog, and tried focus'ing in the dialog's 
on-activate, to no avail. Is there a workaround? Is there at least a way to 
fake a Tab key-event to the dialog to achieve the same effect? For my project 
I'm really hoping to have fast, seamless keyboard input.

On Monday, March 28, 2016 at 5:06:24 PM UTC-7, Byron Davies wrote:
> Thanks for looking into it.  No great hurry.
> 
> For now,  I just tell the kindergartners to click twice the first time 
> around, but  it will be a lot clearer once the  fix happens.
> 
> > On Mar 28, 2016, at 4:34 PM, Matthew Flatt  wrote:
> > 
> > At Mon, 28 Mar 2016 11:53:38 -0700, Byron Davies wrote:
> >> I have a single interactive pasteboard on a slideshow slide.  For a 
> >> learning 
> >> task, the user needs to click on objects on the pasteboard.  There’s a 
> >> little 
> >> glitch, however.  The user must first click on the pasteboard to make it 
> >> the 
> >> focus, and then click on the objects.  Is there a way to make the 
> >> pasteboard 
> >> become the focus when the mouse moves into it?
> > 
> > You should be able to use the `focus` method on the canvas after its
> > frame is shown (via `on-superwindow-show`) or when a mouse event is
> > received (via `on-event`). See below for an example.
> > 
> > But I see that `focus` doesn't work right for a canvas in a floating
> > frame, like the one used by `interactive`, so the example below doesn't
> > work with the current release or snapshot. I've pushed a repair to
> > `focus` for the next snapshot build. I don't have a workaround for the
> > current version, but I might be able to find one if that's needed.
> > 
> > 
> > 
> > #lang slideshow
> > (require racket/gui/base)
> > 
> > (define (make-pasteboard f)
> >  (define c%
> >(class editor-canvas%
> >  (super-new)
> >  (inherit focus)
> >  (define/override (on-superwindow-show on?)
> >(when on?
> >  (focus))
> >(super on-superwindow-show on?
> >  (define pb (new pasteboard%))
> >  (send pb insert-box) ; to demonstrate focus
> >  (new c% [parent f] [editor pb])
> >  void)
> > 
> > (slide)
> > 
> > (slide
> > #:title "Example"
> > (interactive (blank 500 500)
> >  make-pasteboard))
> >

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] interactive window in slideshow

2016-03-28 Thread Byron Davies
Thanks for looking into it.  No great hurry.

For now,  I just tell the kindergartners to click twice the first time around, 
but  it will be a lot clearer once the  fix happens.

> On Mar 28, 2016, at 4:34 PM, Matthew Flatt  wrote:
> 
> At Mon, 28 Mar 2016 11:53:38 -0700, Byron Davies wrote:
>> I have a single interactive pasteboard on a slideshow slide.  For a learning 
>> task, the user needs to click on objects on the pasteboard.  There’s a 
>> little 
>> glitch, however.  The user must first click on the pasteboard to make it the 
>> focus, and then click on the objects.  Is there a way to make the pasteboard 
>> become the focus when the mouse moves into it?
> 
> You should be able to use the `focus` method on the canvas after its
> frame is shown (via `on-superwindow-show`) or when a mouse event is
> received (via `on-event`). See below for an example.
> 
> But I see that `focus` doesn't work right for a canvas in a floating
> frame, like the one used by `interactive`, so the example below doesn't
> work with the current release or snapshot. I've pushed a repair to
> `focus` for the next snapshot build. I don't have a workaround for the
> current version, but I might be able to find one if that's needed.
> 
> 
> 
> #lang slideshow
> (require racket/gui/base)
> 
> (define (make-pasteboard f)
>  (define c%
>(class editor-canvas%
>  (super-new)
>  (inherit focus)
>  (define/override (on-superwindow-show on?)
>(when on?
>  (focus))
>(super on-superwindow-show on?
>  (define pb (new pasteboard%))
>  (send pb insert-box) ; to demonstrate focus
>  (new c% [parent f] [editor pb])
>  void)
> 
> (slide)
> 
> (slide
> #:title "Example"
> (interactive (blank 500 500)
>  make-pasteboard))
> 

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] interactive window in slideshow

2016-03-28 Thread Matthew Flatt
At Mon, 28 Mar 2016 11:53:38 -0700, Byron Davies wrote:
> I have a single interactive pasteboard on a slideshow slide.  For a learning 
> task, the user needs to click on objects on the pasteboard.  There’s a little 
> glitch, however.  The user must first click on the pasteboard to make it the 
> focus, and then click on the objects.  Is there a way to make the pasteboard 
> become the focus when the mouse moves into it?

You should be able to use the `focus` method on the canvas after its
frame is shown (via `on-superwindow-show`) or when a mouse event is
received (via `on-event`). See below for an example.

But I see that `focus` doesn't work right for a canvas in a floating
frame, like the one used by `interactive`, so the example below doesn't
work with the current release or snapshot. I've pushed a repair to
`focus` for the next snapshot build. I don't have a workaround for the
current version, but I might be able to find one if that's needed.



#lang slideshow
(require racket/gui/base)

(define (make-pasteboard f)
  (define c%
(class editor-canvas%
  (super-new)
  (inherit focus)
  (define/override (on-superwindow-show on?)
(when on?
  (focus))
(super on-superwindow-show on?
  (define pb (new pasteboard%))
  (send pb insert-box) ; to demonstrate focus
  (new c% [parent f] [editor pb])
  void)

(slide)

(slide
 #:title "Example"
 (interactive (blank 500 500)
  make-pasteboard))

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[racket-users] interactive window in slideshow

2016-03-28 Thread Byron Davies
I have a single interactive pasteboard on a slideshow slide.  For a learning 
task, the user needs to click on objects on the pasteboard.  There’s a little 
glitch, however.  The user must first click on the pasteboard to make it the 
focus, and then click on the objects.  Is there a way to make the pasteboard 
become the focus when the mouse moves into it?

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.