This patch implements a wxWidgets terminal. It provides
all the basic functionnality, but also mouse+hotkeys
support and enhanced text mode.
It is designed to be cross-platform (really few lines
to tweak, apart from the makefiles), and it will
provide other benefits such as text anti-aliasing, and
even line anti-aliasing depending on the platform port
of the library itself (for example, with recent gtk+
and cario).
Moreover, it is easy to add gui facilities, through
menus and toolbars, as it is already done by OS/2 and
windows implementations.
Note : this is really a work-in-progress, and it can
affect gnuplot's general behaviour as it modifies the
main loop to process the terminal events. In
particular, it adds some overhead by initializing the
wxwidgets library.
First version, with mouse, enhanced text.
Logged In: YES
user_id=31505
Looks nice!
- On my system, it is slightly faster than x11; I've tried it by
n=1024; set samples n; set isosamples n
set term wx; plot x;pr system('date'); splot x*x-y*y with
pm3d; pr system('date')
set term x11;plot x;pr system('date'); splot x*x-y*y with
pm3d; pr system('date')
- please switch to "C" locale for numbers, at least when
communicating with gnuplot; otherwise, zooming wants to
execute command "set xr[1,234:5,678]" which is wrong
- hotkey "Space" should flip the focus to the gnuplot
terminal window
(get the implementation from x11, pm and win)
Ad menu:
- "Gnuplot help" menu item should launch the help viewer, as
for pm and win
* view gnuplot.inf according to gnupmdrv.c
* on windows, as there
* under KDE, Konqueror for
/usr/share/doc/packages/gnuplot/ so that user can
look at his favourite html or pdf hypertext doc format
* otherwise ... filemanager in the above dir, or otherwise
look if there is html
or pdf and launch firefox, mozilla or acroread on it
Logged In: YES
user_id=1333817
Here is a new version against current CVS.
In this version is fixed a bug which affects the behaviour
of gnuplot towards locale handling. Indeed, when it is
initialised, the wxwidgets library sets the program's locale
with the environment's one. (this answers Petr Mikulik
comment and discuss on mailing list)
The previous patch gave an error when applied to a fresh CVS
without ./prepare. It is fixed.
Finally, I reworked the configure.in so that there's now an
option not to build the terminal files. Previously it was
only checking for wxwidgets' presence, and giving an error
if it was not here.
Help menu and "focus flip" are not implemented yet.
Logged In: YES
user_id=1333817
Today's version adds the following features :
* image support (test with image.dem)
* new menu entry "Ranges" with a dialog box as a
proof-of-concept
* functionnal toolbar's icons as proves-of-concept:
- copy the plot to clipboard, thus making quick
copies to word processors available
- toggle grid
- previous and next zoom
* fix a bug when processing linetypes
Note : To allow the communication with the main thread in
the ranges dialog, I had to revert a recent change in CVS
which removed the possibility to send raw commands with
do_event().
Logged In: YES
user_id=1333817
Another much improved version of the patch. Here we have :
* multiple plot windows
* implement correcly points and pointsizes
* proper RGB color processing
And some bugs fixed :
* fixed fillbox corners
* linetypes' colors are coherent with postscript terminal
* fillbox patterns are more coherent with postscript terminal
* implement _waitforinput() : rework the event processing so
that events are processed when pause is issued, ctrl-c
doesn't make the user lose keyboard input any longer
* better icons for "zoom history" and "copy to clipboard"
Logged In: YES
user_id=31505
* It does not compile for me:
wxt.cpp: In constructor
`wxtRangesDialog::wxtRangesDialog(wxWindow*, const
wxString&, RANGES*)':
wxt.cpp:643: error: `wxSizerFlags' undeclared (first use
this function)
wxt.cpp:643: error: (Each undeclared identifier is reported
only once for each
function it appears in.)
wxt.cpp: In member function `void
wxtPanel::wxt_draw_polygon(wxDC&, int,
gpiPoint*)':
wxt.cpp:1827: error: jump to case label
wxt.cpp:1818: error: crosses initialization of `double fact'
wxt.cpp:1816: error: crosses initialization of `int blue'
wxt.cpp:1815: error: crosses initialization of `int green'
wxt.cpp:1814: error: crosses initialization of `int red'
wxt.cpp:1834: error: jump to case label
wxt.cpp:1818: error: crosses initialization of `double fact'
wxt.cpp:1816: error: crosses initialization of `int blue'
wxt.cpp:1815: error: crosses initialization of `int green'
wxt.cpp:1814: error: crosses initialization of `int red'
There are wxGTK 2.5.2.8 packages on SUSE 9.2.
* I propose to move those *.xpm files into src/wxterminal
directory. There
are already such for the OS/2 PM and Windows terminals.
Probably all wx-belonging files should go into src/wxterminal.
* You are putting new files lgpl.txt and wx_license.txt into
a new
docs/license directory. I do not think this is useful.
Gnuplot does not
distribute these libraries. It can optionally be linked
against them, same
as for gd, png, jpeg, pdf, x11, ... libs.
You can put an appropriate URL into the source code files,
if needed.
* Interesting, you have added GE_cmd event ... there is some
kind of this: in PM terminal, there is a dialog
IDM_DO_SENDCOMMAND for any
command to pass to gnuplot. It is bypassing the event
scheme, calling
gp_execute() immediately. Cannot you use it also for wxt?
(Notice the hard limit of ge structure to text char[100].)
* Gnuplot source code files do not contain information about
its encoding
so authors cannot use accents in their names.
* wxt_core.cpp: 0S/2 => OS/2
Logged In: YES
user_id=1333817
New patch that address a problem and apply some suggestions
about the previous patch
* fix compile problem (some compilers do not allow to
declare variables in switch ... case...)
* added a check to prevent inactive windows (all except the
one chosen by "set term wxt <n>") to send interactive events
* move toolbar's bitmap in a separate directory
(src/wxterminal). I have not moved all wxterm files there,
as it would imply some more work on makefiles. It can still
be done later if it's really needed.
* I removed the two license files, and replaced them with an
url pointing to the wxwidgets' page.
* removed accent in my name to respect encoding standards
(painful ;-)
* fix typo about OS/2
* changed text element of the gp_event to char* instead of
char[100] to remove the hard limit.
(to Petr Mikulik : I think I should't use the same scheme as
gp_execute() as it would not work, for example, when the
command line is in pause. Otherwise it would imply that I
change the way I handle events, and I find it quite fine as
it is. It works in pm terminal because term->waitforinput()
is not used)
Logged In: YES
user_id=235620
It's looking quite good at this point. I'm impressed. Have
you tested in on other (non-X11 based) platforms?
Comments:
1) Rotated text is still illegible on my systems. Could you
provide a note on font-handling by the wxWidgets library?
Does it need something special in order to locate Symbol
font, or rotate fonts that it does find?
2) Colors and solid-fill areas are now working nicely, but
patterns come out in black only.
3) It seems that "pause mouse" is not yet working. That's
ok, but trying to run "mousevariables.dem" causes a
segfault, which is not ok. Also, the "bind" command is
apparently not yet implemented.
4) Something seems to reset the mouse state to "unset
mouse". I have not been able to figure out exactly
what/when. Diagnositic is that when stepping through
"all.dem", after a while I lose the ability to rotate 3D
plots using the mouse. control-C and "show mouse" reveals
that mousing has somehow been disabled. This doesn't always
happen at the same place in the demo, so I think it may be
some interaction with other mouse or window events.
5) Enhanced text mode works. But it gets stuck on, and is
applied to strings that are not supposed to be treated as
enhanced text. See for example the key legend in the
histograms demo, where the legend entries are being rendered
as enhanced text ("United_Kingdom" yields a subscript K).
6) Clicking the "copy to clipboard" icon results in *two*
copies of the plot appearing in the KDE klipper tool. Is it
maybe responding to both the key-press and the key-release?
Does wxWidgets provide something equivalent to the
X-resource database? I normally place a line
"gnuplot*exportselection: off"
in ~/.Xdefaults because I do not like applications exporting
things to my clipboard. Is there an equivalent way I can
turn off the clipboard export from wxWidgets?
I have not tried to find interactions with other drivers.
Are you still concerned that building wxWidgets will affect
the event loop for other terminals?
Tangential issue:
Petr said "Gnuplot source code files do not contain
information about
its encoding so authors cannot use accents in their names."
That's news to me. Since when do text files contain
information about encoding? Usually it is auto-detected by
any application that cares. Yes, it can be guessed wrong at
times, but so long as the character in question is not part
of a syntax element it shouldn't matter much. But if this is
a real issue, can we just place a notice somewhere at the
top of the source tree that says text files are to be read
as UTF-8?
Logged In: YES
user_id=31505
> Since when do text files contain information about encoding?
The author must write it somewhere (in the beginning).
> it is auto-detected by any application that cares
I've never seen such an application, except for "enca /
enconv" and other "Czech encoding to another Czech encoding"
convertors.
> text files are to be read as UTF-8?
That would not only fix european problems with latin-1 vs
latin-2 accents, but it would also allow to write names of
japanese contributors correctly :-)
But I would prefer to stay with 7bit ascii -- less chances
that the text gets broken if edited in an UTF-8 unfriendly
environment.
Logged In: YES
user_id=1333817
I will try to answer some questions, others are added in my
TODO list !
- "Have you tested in on other (non-X11 based) platforms?"
Not yet. There's one line to tweak in wxt.cpp (wxEntry) to
make it work on other platforms. And of course makefiles
should be adapted. I can try on windows, but not
immediately. As far as other platforms are concerned (mac,
OS/2), I will need some help !
- 1) "Rotated text is still illegible on my systems."
Well, I suppose you are using wxGTK. The implementation of
rotated text rendering through wxGTK uses pango to render
horizontal text to a bitmap. Then it is converted to an
image to use the rotating routines. Finally, the image is
copied to a bitmap and blitted to the drawing context... As
you can see, there are many steps and I don't really know
where is the fault on your systems. Can you precise what are
your versions of wxGTK, gtk+ and pango ? Mines are : wxGTK
2.6.1, gtk+2.6.9, pango 1.8.2.
As far as font-handling, it should be almost the same as
pango...
- 2) "patterns come out in black only."
So patterns must depend on the previous set_color() call...
Ok I'll implement it.
- 3) "It seems that "pause mouse" is not yet working."
Right, I have not looked at it. Will add to the TODO list !
- 5) "Enhanced text mode works. But it gets stuck on"
It's my reset() command which is not working (in fact it
doesn't do anything). Will correct it.
- 6) "Clicking the "copy to clipboard" icon results in *two*
copies of the plot appearing in the KDE klipper tool."
I have seen the same, and I wonder if it's not related to
what you said on the bugs page about x11 clipboard : "As to
KDE... The KDE clipboard manager "klipper" generally catches
entries in at least 2 of the 3 clipboards." It is possible
that wxwidgets (or in fact GTK) uses those two clipboards
simultaneously. I will look if there's a way to handle it.
- "Is there an equivalent way I can turn off the clipboard
export from wxWidgets?"
It is for sure possible to calls the clipboard functions
conditionnally to the same sort of settings.
- "Are you still concerned that building wxWidgets will affect
the event loop for other terminals?"
Well, it is working safely. The thing that changed from
original loop is that readline() is launched in a separate
thread and then the main thread is put to sleep. It can be
waken up either by the readline thread when the user hits
"enter" or when the terminal send an event.
But this scheme has not been really relevant (and should not
be used) since my previous patch which uses waitforinput()
to process events ! I will look carefully to logs to see if
I can completely remove the readline facility, so that the
event loop will finally be unchanged...
To sum up my objectives about this patch :
* I should adapt and try with other platforms,
* I have still small behaviours to handle properly (mostly
because term/README is not really accurate) like "pause mouse"
* I have some concerns about text handling :
*First, the symbol font problem that I don't really know
how to handle. (Can you give me a screenshot of
enhancedtext.dem to compare with mine ?)
*Second, rotated text which is illegible on your machine.
*Last but not least, I have a problem with font
alignment in enhanced mode. As you can see in the demo, the
"B" of Big is vertically justified whereas it must obviously
be aligned with the other letters from different fontsizes.
I have tried to handle it, but the wxwidgets methods to get
text extents give inconsistent results. (text height in
particular)
To adress these text problems, I have an idea but I'm more
and more convinced that it's worse the pain : I want to use
Cairo. It's a modern vector graphics library, licensed under
the LGPL, and able to draw things on windows, X11, image
buffers, png, postscript, svg, pdf, OS/2... It will be
probably more robust than the wxwidgets drawing facilities,
as it's a dedicated library. It should provide more powerful
control on drawing and in particular on text handling.
Moreover, it is able to draw everything with anti-aliasing
(text+lines+...). Honestly I think it would give us
wonderful outputs (imagine antialiased axes and ticks in 3d
plots !). What do you think of it ?
Logged In: YES
user_id=1333817
I am happy to give you an updated patch, which goes, as
usually, a little further !
Changes :
* rendering is done offscreen via cairo. This gives to the
user really good-looking plots thanks to line antialiasing !
And it gives to me a more consistent drawing library... Of
course, you need to have cairo installed (it is the case if
you have gtk>2.8).
* No longer use the readline thread, do all gnuplot<->term
communication via _waitforinput. It avoids to modify core
gnuplot files, the main loop is no longer affected.
* implement 'pause mouse'
( not very exciting : * implement 'suspend' )
Bug fixing :
* should compile cleanly with a unicode-enabled wxwidgets
library
* reworked pattern/solid fill, much consistent
What is remaining in my 'todo' list ? The following :
* use pango to manage text. As you will see, cairo draws
text almost correctly (symbol font is working - in
particular), but there are still some alignement problems.
Pango will give solid functions to calculate complete text
extents. The pango dependency is not a problem under unix,
as wxwidgets already depends on gtk, which depends on pango
and cairo.
* I have still not tested under Windows.
* clipboard bug (two plots in clipboard) remains
Logged In: YES
user_id=1333817
Here is a new version of the patch which implements/corrects
the following :
* satisfying text rendering using pango.
Fontname and fontsize can be chosen by 'set term ...', and
selected by default to your system settings. Those settings
are specific to each terminal window.
Encoding (set encoding...) is properly handled.
Enhanced text is properly aligned.
Pango doesn't support fonts with non-unicode mapping, so I
have implemented a conversion from symbol characters to
their unicode counterparts.
*compilation under Windows
The compilation is successfull under MinGW at least.
It also implements mouse support under Windows.
I will provide a binary snapshot tomorrow.
*Cleanup, bugfixing, reorganizing
The cairo/pango functions are mostly in a separate file.
I have disabled antialiasing for polygons as it is too slow.
I am discussing it with cairo developpers.
It no longer modifies any of gnuplot files, apart from
term.h to add the terminal, readline.c to add mouse support
under Windows, and configure.in to make it compile, so it
should be completely safe to commit it to cvs.
My plans now :
* Continue some clean-up, to separate wxWidgets and
cairo/pango. In the short-term I should be able to provide
an 'export to ps,png' (and pdf,svg when stabilized in cairo)
facility in the terminal, and in the long-term that may
allow us to create other non-interactive terminals based on
cairo capabilities.
* Improve results on Windows, where fonts can appear strange.
Please review this, and why not think about committing it ;-)
Logged In: YES
user_id=1333817
You can find a binary snapshot of gnuplot with the wxWidgets
terminal at the following place :
http://tipote.free.fr/wgnuplot-wxt-20051210.zip
It brings enhanced text mode and multiple plot windows to
the Windows platform.
It is compiled thanks to MinGW. wxWidgets 2.6.2 was
previously compiled with MinGW too. Pango, cairo, glib,
intl, zlib, iconv and libpng come from developpement
packages available on ftp://ftp.gtk.org/pub/gtk/v2.8/win32/ .
Logged In: YES
user_id=235620
This sounds really good. I'm afraid I'll have to leave it to
actual Windows users to confirm the success, however. My
attempt to run your wgnuplot binary on linux under wine
produced this error message when I "set term wx":
This program uses Unicode and requires Windows NT/2000/XP
This is not really a problem, since there is normally no
reason you would want to run the windows version on linux
anyhow. But it is a bit strange, because usually the
linux+wine environment is successful at acting like
NT/2000/XP as needed.
I've downloaded the source patch also, and will have a look
at the current state built from source under linux.
Logged In: YES
user_id=235620
Problem:
Is cairo > 0.4.0 really necessary?
I cannot seem to find a version newer than 0.3.0 that is
compatible with my linux installation (Madriva 2005).
It doesn't look like I'm going to be able to build and test
this.
There is definitely going to be a lag in people using your
driver if it requires such bleeding-edge versions of system
libraries that no one has them yet.
Logged In: YES
user_id=1333817
As for the dependency on Windows NT/2000/XP, it is in part
my fault, as I compiled my wxWidgets library with unicode
support whereas it is not needed (unicode for pango is
handled by glib, not wxWidgets). So I might get it working
on older Windows by recompiling my wxWidgets without unicode.
Wine has a setting which allows you to choose which Windows
version it should mimic. I am pretty sure it chooses Windows
98 by default. You can change it easily with `winecfg` un
recent wien snapshots, or with a line in you wine config
file (something like .wine in your home).
I had not really looked at the cairo > 0.4.0 dependency
seriously. In fact, I need cairo > O.9.0 !! Cairo API has
stabilized since some months with the release of 1.0.0 in
August. It has probably settled in Mandriva 2006. You may
also try to compile cairo from sources, as it has no special
dependency (my code uses a software rendering which is
standalone is cairo). See http://www.cairographics.org
Anyway, thanks for having tried !
Logged In: YES
user_id=31505
Some ideas:
- move files wx*.cpp from src/ to src/wxterminal/
- please add button for "Autoscale"
- please add support for the "raise" and "lower" commands,
and for the spacebar
- on Linux, it accessionally freezes gnuplot's command line
(GNU readline),
I must kill gnuplot; however, I haven't found a unique
reproducible way
- could the menubar and the icon bar be put aside (not one
below the other),
in order to save space in the graphics window?
Considering move to cvs, I think it should definitely go to
cvs before the next
gnuplot freeze. Not immediately now, as you are still
developing the patch so
it is better for you to keep it stand-alone.
Logged In: YES
user_id=1333817
I propose to you an updated patch. Changes are :
* autoscale icon
* files are now in dir "src/wxterminal"
* depends on Cairo > 0.9.0
* raise/lower commands are implemented (though raise works
strangely with wxGTK on my box)
* wxWidgets code and Pango/Cairo code are independant
* move enhanced functions declarations from term.c to
term_api.h and declare them extern
* declare more variables extern to decrease code
* no longer display a menu bar, instead add a '?' in the
toolbar with brief about and help message
* remove redundant includes
* cleanups in enhanced text mode and image codes
My todo list contains :
* implement spacebar =>raise gnuplot terminal
* use png for toolbar icons to make them prettier, as xpm
don't have any alpha channel but only an alpha mask
* improve text rendering under window, where current
antialiasing gives strange results, at least worse than
current windows terminal
* use the independant cairo/pango code to write
ps/pdf/svg/png terminals, or at least to implement 'export
to' in the wxWidgets terminal
You can find a binary snapshot for MS-Windows here :
http://tipote.free.fr/wgnuplot-cvs-20060103.zip
Unlike the previous one, this snapshot uses wxWidgets
compiled without unicode support, so it has more chances to
work under Windows 95/95/Me, or with default Wine
configuration. If it's not the case, please report.
Logged In: YES
user_id=31505
Few remarks:
- "replot" icon could be useful
- "raise" neither "lower" work on my KDE
- it would be better to use a "xor"-like color for the
ruler; the current black color lets it disappear in images.
Logged In: YES
user_id=1333817
Today's changes are :
* use FPRINTF macro for debugging
* 'Replot' icon in the toolbar
* raise/lower was "forgotten" in the last patch
* the ruler is drawn with an 'invert' operator to make it
visible over images
* wx.rc include in wgnuplot.rc has been forgotten since
first Bastian Märkisch patches for Windows. It finally gives
the different mouse cursors to the terminal under Windows,
and has a side effect : Windows binaries executed under
Windows XP profit from prettier buttons in the console window...
Logged In: YES
user_id=235620
I now have a newer OS to try your code on (Mandriva 2006).
I had a bit of trouble choosing a compatible version of
wxWidgets, but eventually I found one that works.
I now have
libwxgtk2.6-2.6.1-1mdk
libwxgtkgl2.6-2.6.1-1mdk
wxGTK2.6-2.6.1-1mdk
libpango1.0_0-1.10.0-3mdk
libcairo2-1.0.0-8mdk
The results are spectacular. I am very impressed,
particularly with the font rendering quality.
I only noticed a few glitches while running through the set
of demo scripts, and only the first one is a real problem.
1) Every now and then I would lose mousing. I cannot tell
you a reproducible set of steps, unfortunately. I just know
that if I start in on a long sequence of 3D plots, then at
the start mousing works fine, but after a while it has been
turned off. If I <ctrl-C> back to a gnuplot prompt and say
"show mouse", it says mousing is turned off.
2) Enhanced text mode gets stuck on. I think someone
reported this problem on the mailing list recently,
suggesting that it is a problem with the demo scripts
themselves rather than the terminal driver. On the other
hand, it doesn't happen when I run through the same demos
under X11. So this remains to be pinned down more precisely.
3) A single click on the copy-to-clipboard button produces
four copies of the plot on my clipboard. That seems a bit
extrem :-)
4) I'm still not clear on where it pulls fonts from. Some
special fonts (Symbol) are now working perfectly. But others
(wingdings) are not found by name. Does it query the font
server? Does it have a search path?
Wishlist:
We have a "bind" command that programs hotkeys for the
active plot window. Would it be possible to implement a
variant of this that would put a new button on your plot
window toolbar? For example, it would be great to be able
to define a hotkey for
"load '~/.gnuplot/print-to-my-postscript-printer'"
and have it also appear as a print button on the toolbar.
Logged In: YES
user_id=1333817
New patch, with the following improvements :
-general :
* enhanced mode checks for ignore_enhanced_text
* png icons for the toolbar : the icons are now much
prettier (no aliasing thanks to the png alpha channel), and
it is a first step towards toolbar customization
-windows specific :
* Cario uses a Windows specific backend under win32. Side
effects : fonts are now ok
* pause+mouse under Windows works
* default terminal is wxt for windows
-unix specific
* configure.in makes it compile without the wxWidgets
terminal, but not aborts if there's an error
Now that fonts rendering is ok under windows, the terminal
is a great replacement for this platform, as it brings all
the current features (multiple windows, enhanced text).
My todo list (still) contains :
* implement 'persist' behaviour
* implement spacebar=>raise gnuplot terminal (very
platform-specific, so I am reluctant to do this)
* use the independant cairo/pango code to write
ps/pdf/svg/png terminals, or at least to implement 'export
to' in the wxWidgets terminal
* fix the clipboard bug
You can find a binary snapshot for win32 here :
http://tipote.free.fr/wgnuplot-wxt-20060125.zip
(much improved compared to the previous snapshot)
Ethan : please look for unicode details on this page, or
read 'help wxt' to understand why Symbol works and Windings not
Logged In: YES
user_id=1333817
New patch, again :
* 'persist' behaviour is provided by 'set term wxt persist'
* default terminal instead of X11 and win
* PNGs not installed if the wxXidgets terminal is not built
* Checks for a proper initialization of the wxWidgets
library. This avoids segfaults when starting gnuplot from a tty.
* About the clipboard and the excessive copies of bitmaps by
klipper : this is the same problem as with the x11 terminal.
However, I can't solve it in my terminal. Instead I have
submitted a patch to wxWidgets, which will hopefully be
included soon.
* Frame icon is provided in multiple resolutions to satisfy
the needs of window managers
* Fillboxes corrected : there was a visible one-pixel offset
* Polygon drawn a little faster
* "polyline" behaviour : multiple 'vector' calls are grouped
in a single path. Hopefully it makes lines drawing more
accurate and faster.
Usual snapshot for windows :
http://tipote.free.fr/wgnuplot-wxt-20060207.zip
Logged In: YES
user_id=31505
My notes:
- 'set term wxt persist' is not persistent after 'quit' from
gnuplot
- please organize that it accepts this option from the
command line as well (as x11, pm and windows are doing)
- please get the 'spacebar' hotkey working
- now the menu is completely missing -- was this intended?
- wgnuplot-wxt-20060207.zip cannot be unzipped; for plenty
of files, Info-ZIP's unzip is reporting `(null)' method not
supported
Logged In: YES
user_id=235620
>> please get the 'spacebar' hotkey working
Ugh. I absolutely hate that behavior. Fortunately, it is
nicely ignored in x11, at least on my systems. That may be
because of the window manager settings, but if so then I
hope the wx terminal will honor those same settings.
That reminds me to ask a question. The x11 terminal honors
various settings in Xresources, as all x11 applications are
supposed to. Does this apply to the wx term as well? If
not, is there some other configuration file or mechanism of
setting preferences?
Is it possible for the user to specify
- default font
- default window size/placement
- default colors, or dot/dash patterns
- raise/noraise q/ctrl-q
It is necessary to ignore all normal characters as hot keys
(including 'q' and <space>) in order to have 'pause mouse
key' work usefully. Because of this, the "mousevariables"
demo does not currently work properly for the wx terminal.
Neither 'q' nor ' ' can be echoed to the plot. Also, at the
end of the demo the terminal is in some odd state for which
I must type 'quit' multiple times before it will take effect.