On 2017-10-02 16:10+0100 Phil Rosenberg wrote:
Hi Alan
I've been going through the various wxWidgets bugs on the bug tracker.
The ones that remain are the rather more technical ones or the ones
that I'm not sure what the correct behaviour should be.
In particular the slave display thing is a bit of a puzzle to me.
Searching for slave in the documentation doesn't yield any results and
all I see in example 14 is two streams used, the second of which has
had plspause( 0 ) called on it. Is that what sets up a slave display.
If so it really needs some documentation indicating what triggers a
slave display and how they should work.
To Phil, Maurice, Hazen, Hez, and Andrew:
@Phil:
I don't understand the details about exactly what plspause does, but
it does depend on an implementation in each individual interactive
device driver so you are going to have to read the plspause parts of
the source code for one or more other devices to make further progress
on this bug.
However, to help you to choose what to look at I did some further
experiments.
For the new wxwidgets device I still get the same incorrect behaviour
as reported in the bug report. That is, the slave plot GUI first
displays a blank plot rather than the actual slave plot and then
immediately dies. Meanwhile, the primary plot GUI displays
fine, and moves to the second page and exits if the user hit the enter
key twice. This result is the same both for -DPL_WXWIDGETS_IPC3=ON
and OFF. For the old wxwidgets device (-DOLD_WXWIDGETS=ON) the
behaviour is exactly the same as -dev xwin. That is both primary and
secondary master and slave GUI's display their respective plots, and
if you hit the enter key on either of those two GUI's, BOTH plots
advance a page (which is actually also incorrect behaviour, but at
least you don't have the "blank page and die" behaviour for
the slave that you get with new wxwidgets).
So the xwin and old wxwidgets models are not quite the best ones to
follow here for master/slave behaviour. And I suspect that is also
true of -dev wingcc and -dev wingdi because I think they modelled
their plspause on -dev xwin. But you should double-check that.
Instead, you should be attempting to implement the same behaviour as
demonstrated by any of the tk, qtwidget and xcairo
devices;
both master and slave GUI plots are displayed, but the enter key is a no-op for
the slave
GUI, and only for the master GUI does the enter key advance the pages
for both GUI's and eventually exit the example.
In sum, I suggest you look carefully at the old wxwidgets device code
to solve the "blank plot and die" issue with the slave plot for new
wxwidgets. Once that bug is solved, then I would follow exactly
however either of our qtwidget or xcairo devices implement plspause to
obtain the correct master/slave behaviour. I am not suggesting you
attempt to understand plspause parts of the -dev tk code because that
device driver logic is tough to follow in my opinion. But it is
interesting that although the -dev tk logic uses important parts of
the -dev xwin code it gets the master/slave behaviour correct while
pure -dev xwin code does not achieve that.
@Maurice:
I believe plspause was implemented by you long ago and presumably tested
by you on the interactive devices available to you (i.e, -dev xwin
and -dev tk since our cairo and qt device drivers hadn't been
implemented back then). I would appreciate you commenting further
and especially about the differences between master/slave behaviour
between -dev xwin and the closely related -dev tk.
@Hazen, Hez, and Andrew:
It is very likely that one of you made the master/slave relationship work
so well for xcairo and/or qtwidget. If so I would appreciate you
commenting further.
Alan
__________________________
Alan W. Irwin
Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).
Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________
Linux-powered Science
__________________________
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel