On 18.07.2010 22:36, dsimcha wrote:
> I've successfully ported dflplot to gtkD and gotten it to the point where it
> works in every way (except speed/memory use; gtkD is a little slow/resource
> hungry) at least as well as the original DFL version.  Now that I can't call
> it dflplot anymore because it supports multiple GUI libs, I'm calling it
> Plot2Kill.  The status of the DFL version hasn't changed since I originally
> posted about dflplot.  Here's what works and what needs work, with respect to
> the gtkD version wherever there's a difference:
> 
> Working:  Histograms, bar plots, scatter plots, line plots, QQ plots, ROC
> curves, heat maps, subplot windows, error bars, rotated text, programmatic
> saving in raster formats, interactive saving from default plot window
> (right-clicking brings up a save dialog), zooming in on a single figure from
> subplot window (double-click on the figure to zoom in).
> 
> Needs work:  Documentation needs improvement and needs to be put up somewhere
> (will happen once I get my own dsource project, as opposed to Scrapple),
> saving in vector formats, Cairo port, zooming in on areas within a single
> figure via the GUI (can be done programmatically), customizability of look and
> feel of figures (things like fonts, colors, margins, line styles, etc.),
> general refactoring from "make it work" to "make it right" stage.
> 
> I would say that there will probably not be too many breaking changes (at the
> source level) to the basic API, i.e. creating a figure and showing it in a
> default plot window, but the more advanced stuff that you'd care about if you
> want to integrate plots into your own GUI is likely to be refined via breaking
> changes.  A stable ABI will probably never happen because it constrains the
> evolution of the project too much.
> 
> Code:
> 
> http://dsource.org/projects/scrapple/browser/trunk/dflplot/Porting
> 
> Demo figure (created and saved programmatically, no longer a screenshot):
> 
> http://cis.jhu.edu/~dsimcha/plot2killGTK.png
> 
> How to build:  Install gtkD, and then just compile all of the .d files with to
> a library with -version=gtk.  It doesn't matter if you pass in the DFL files
> when building the GTK version because all the irrelevant code will be
> version-statemented out.
> 
> Please let me know if this works properly on OS's besides Windows.  I've only
> tested it on Windows, although GTK is cross-platform and I only used the
> high-level gtkD functionality in this lib, so I don't see why it wouldn't work
> on any other OS with gtkD support.
Tested on Linux. Works generally fine, nice work.
Screenshot: http://i.imgur.com/6XS1W.png

There's one problem though:
You use a "veranda" font. I don't know whether that's a typo and you
meant "Verdana" or maybe there is a font called "veranda". But you never
check whether the font becomes null, and so it crashes here (in Size
measureText(string text, Font font)) if I don't change the fonts.
It's not a big deal, I just wanted to let you know, so you can fix it at
some point in time.

-- 
Johannes Pfau

Reply via email to