From ligges at statistik.uni-dortmund.de  Sat Dec  4 20:13:01 2004
From: ligges at statistik.uni-dortmund.de (Uwe Ligges)
Date: Sat Dec  4 20:12:13 2004
Subject: [Rd] pausing between plots - waiting for graphics input
In-Reply-To: <m0opq0l8p61kfvi5kosj1gt4438ofls8um@4ax.com>
References: <b68812e704112708422b5228a4@mail.gmail.com>	<1101582479.13352.37.camel@horizons.localdomain>	<b68812e704112718032d3cf7d8@mail.gmail.com>	<vuhiq095lke0trblge8161b3dakaubg776@4ax.com>	<2kpjq0p9bq1i8b2258rl71bds4k9bg83fq@4ax.com>	<Pine.A41.4.61b.0411290912110.88302@homer09.u.washington.edu>	<16812.22791.971545.79304@gargle.gargle.HOWL>	<jrnoq05l7bk577i9agfjctgh8k2jq8ls7m@4ax.com>	<41ACD02F.4000105@stat.auckland.ac.nz>	<x2653n2hi0.fsf@biostat.ku.dk>
	<m0opq0l8p61kfvi5kosj1gt4438ofls8um@4ax.com>
Message-ID: <41B20C3D.6060001@statistik.uni-dortmund.de>

Duncan,

I'm a bit late on this topic, but I'd like to bring up two points that I 
find inconvenient / buggy in the current behaviour of R-devel:

1) I'm never looking at the windows()'s title, hence I don't see that I 
should press/klick anything. Also, I'm almost never looking at the 
status line (and in SDI mode there is no status line anyway).
So, I'd like to see a message in the Console as well.

2) Let's enter
  par(ask = TRUE)
  plot(1:10)
and now switch back to the console and hit "Esc" (instead of going to 
the next plot) leaves the Windows device in the state asking for user 
interaction, but it does not respond to any interaction (as expected).


Uwe


Duncan Murdoch wrote:

> On 30 Nov 2004 21:45:27 +0100, Peter Dalgaard
> <p.dalgaard@biostat.ku.dk> wrote :
> 
> 
>>Paul Murrell <p.murrell@auckland.ac.nz> writes:
>>
>>
>>>>use the existing NewFrameConfirm or equivalent as a default.  However,
>>>>I'm going to try a more roundabout implementation just for the Windows
>>>>device first, just to see if I like it.
>>>
>>>
>>>This sounds like the general problem of being able to capture keyboard
>>>input on a graphics device (a key-stroke equivalent of dev_locator).
>>>Robert has been keen on this for a while too.
>>
>>We might want to think a bit more carefully about the ergonomics. It
>>is actually not very obvious for users to send keypresses to a
>>graphics window, unlesse there's a "Press any key" style instruction
>>somewhere, and preferably not in a partially obscured console. A
>>"Continue" button would be a much more obvious GUI design. 
> 
> 
> I agree, you need to worry that the user knows you're asking for
> input.  In today's Windows R-devel build, I worked pretty hard to make
> sure this wouldn't be a problem:
> 
> - The graphics window moves to the front
> - The graphics menu bar switches to a menu saying "Next"
> - The console status line (shown only in MDI mode, I think) says that
> the graph is waiting for input
> - The graphics window title prompts the user for input.
> 
> This was just to handle par(ask = TRUE).  For the general problem of
> asking for input from the graph window, I'd say in Windows the 1st and
> 3rd items above should always happen, the second item is optional (but
> the regular menu bar should definitely disappear or be disabled), the
> last should be specified by whoever calls this function to ask for
> input.  However, the conventions on X are different enough that other
> cues should presumably be used there.
>  
> 
>>>It would presumably be not too difficult to implement something modal
>>>(like dev_locator) - in effect, a dev_eventloop, which blocks the
>>>command line and processes events (both mouse clicks and key strokes)
>>>in a particular graphics window until a prearranged event to quit.
>>>Nasty modal behaviour, but doable and obviously useful in some ways.
>>>Any interest in that?
>>
>>Sure, but the general structure probably needs a bit of attention.
>>There could be different preferred methods for different devices,
>>possibly with the current method as a fallback.
> 
> 
> Current method?  Do you just mean the par(ask = TRUE) behaviour, or is
> there something more already there?
> 
> 
>>>A much nicer solution of course would be asynchronous event handling
>>>in the graphics window (i.e., you don't block the command line), but
>>>that depends on the event loop integration problem being solved and
>>>that does not look like happening soon.
>>
>>Not sure we really want that actually. What if someone issues a plot
>>command from the command line? 
> 
> 
> There are definitely lots of issues.  In Windows it would be sensible
> for most event handling to be shut down during function evaluation
> unless specifically reactivated (but not all; low level stuff like
> redraws still need to be done).  But I understood from discussions
> last year that X uses a very different event model, so this wouldn't
> make sense.
> 
> Duncan
> 
> ______________________________________________
> R-devel@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel


[Rd] pausing between plots - waiting for graphics input
Uwe Ligges