Hello Phil, Alan,
I remember the last time I used plplot and wxWidgets, and noticed I had 
difficulty including the wxWidgets driver into my own application. Certainly, 
the wxWidgets driver worked and the viewer worked through the examples, but the 
inclusion of plplot functions into my own project required me to copy the 
wxPLplotwindow SOURCE and modify it slightly to work in my program. I wonder if 
it's possible to create a static library for use in wxWidgets applications, so 
that only the library and an include file are necessary.
Of course, the source was outdated and didn't match all plplot functions 
anymore, but I started to copy and modify all plplot examples and put all of 
them inside one standalone wxWidgets application - where each example could be 
run from the menu, and it used the same window to replot each and every time 
(that was one of the modifications I needed to make, as the 'screen clear' 
command wasn't really present and plplot simply plotted on top of whatever was 
present already).
Unfortunately, I only reached example 25 and I had to focus my attention on 
other work (I'm doing my PhD, and my thesis deadline is very very soon). Thus, 
I did not manage to continue writing my program...
Now Phil has rewritten the driver, and hope I can share the work I did quite 
some time ago. First I want to say big thanks to Phil for doing this, as it 
will help wxWidgets users tremendously. If after my PhD I continue with the 
same research, I hope to continue using plplot and its wxWidgets driver as 
there's no good drawing driver for wxWidgets in my opinion.

Now to what I worked on. It's actually not so much related to the driver work, 
but more to the integration into one application. First, the code I've written 
is here:https://www.dropbox.com/s/upaluu3ruckv2pq/wxPlotExamples.rar?dl=0I 
started working on plplot about 1.5 year ago and based this code on the svn 
trunk of 12 July 2013. Looking at the last modified date, I stopped working on 
it in December 2013. I'm sure it doesn't compile directly as it uses some of my 
own wxWidgets functionality - for it to work again I have to spend more time, 
which I know I don't have that at the moment.
Even though it doesn't compile, I think some parts can assist further 
development. One attempt I think might assist wxWidgets developers is the 
wxPlotStream header file, where I renamed almost all plplot functions to more 
understandable readable function names - in a similar style as how wxWidgets 
functions are named. I always have the difficulty in understanding library 
functions if they're written full of abbreviations. Also, I added doxygen 
documentation to each function. Again, as I only came up to example 25, some 
functions have not been transcribed (those are listed at the bottom of the 
class definition). As the class inherits from wxPLplotstream, of course all 
original named functions are still available for people who are used to the 
plplot names (but me, as a new user, they're hard to understand).
I also found a set of impossible functions, that don't work in a wxWidgets 
application that replots on the same screen, instead of running a new wxWidgets 
application for one plot. These are related to pages and initialization: 
init(), bop(), eop(), spause() and xormod() I found all to be failing the 
application. Examples that contained those, have those functions removed and 
instead I have a 'Reset()' function at the start of each example, and a 
'RenewPlot()' function at the end to display what we just drawn. The 'Reset()' 
function is a combination of a lot of different functions, and I found that 
even the order of these functions is important (as one function might change 
some parameters that were set by another).
wxPlotWindow is basically a slightly modified wxPLplotwindow. I think I 
modified the saving of the plot a bit (using wxWidgets inbuilt image saving 
capability). It's difficult to remember what I modified exactly, it's been too 
long...
In gui.cpp I've copied all C++ example code into the application, and used the 
newly renamed functions for the examples. As there are probably modifications 
in the original examples in trunk, the current examples might not match...
In any way, I hope it can assist the development of the wxWidgets integration 
and if there are any questions, I will do my best to answer them.
Again, thank you all for the work!
Best regards,Joost KuckartzPhD Candidate, The University of Melbourne, Australia
> Date: Thu, 22 Jan 2015 13:45:18 -0800
> From: ir...@beluga.phys.uvic.ca
> To: p.d.rosenb...@gmail.com
> CC: plplot-devel@lists.sourceforge.net
> Subject: Re: [Plplot-devel] Redesigned wxWidgets Driver
> 
> On 2015-01-21 22:05-0000 Phil Rosenberg wrote:
> 
> > Forgot to mention
> > As you can imagine this has been rather a large project with many
> > commits. I have had to make commits on my windows machine then pull
> > them to my Linux machine, debug, push back, more debugging, etc. for
> > this reason there are certainly some commits that will not build,
> > particularly on Linux. I know Alan that you are keen to keep the
> > history in a state where it will build, but unfortunately when dealing
> > with this project on multiple platforms I wasn't able to do this. If
> > this is a problem then we will have to find a way to deal with it, but
> > I'm not exactly sure how.
> 
> I think there is a way to squash all topic branch commits into one or
> more commits.  I believe this topic is covered in the Pro git book. So
> once everything works properly on your topic branch such a commit
> squash is worth considering before you merge to master branch.
> However, the motivation for such squashing is not concern over
> buildability but instead to emphasize the overview in master branch
> commits rather than the details of each little change you did on the
> topic branch. Furthermore, I now think buildability of all commits on
> master is a "would-be-nice" but not really a major concern (so long as
> the tip of master builds). For example, I am virtually positive the
> git bisect method has a way to automatically ignore non-building
> commits if the script used to test results returns particular
> numerical exit codes when the build fails.
> 
> 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
> __________________________
> 
> ------------------------------------------------------------------------------
> New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
> GigeNET is offering a free month of service with a new server in Ashburn.
> Choose from 2 high performing configs, both with 100TB of bandwidth.
> Higher redundancy.Lower latency.Increased capacity.Completely compliant.
> http://p.sf.net/sfu/gigenet
> _______________________________________________
> Plplot-devel mailing list
> Plplot-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/plplot-devel
                                          
------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to