[vtkusers] Charting Tool in Fox?
Jean-Dominique Barnichon
jeando.barnichon at free.fr
Wed Jun 14 19:01:43 EDT 2006
Dear all,
as far as I understand from the mailing list, there are few people out
there who are looking for an easy way to draw 2D charts under Fox.
The obvious way should be to use the FXChart base widget that can be
found under the /chart directory of the Fox installation directory.
But from the mailing list threads, it seems that the FXChart is not
working yet (Jeroen, could you give up to date information on FXChart,
and when we could expect it to be working?). Am I wrong or right? Did
anybody succeed in using it? If yes, I would very much appreciate to
have a code snippet showing how to use it.
The point is that Fox is really lacking a 2D charting widget.
Actually, there is an existing one called FXPlot
(http://sourceforge.net/projects/fxplot) that is working and very easy
to use with Fox. The trouble with FXPlot is that interaction is rather
limited, e.g. you cannot select objects on the chart.
There is also a C++lib called PPlot (http://pplot.sourceforge.net/) that
seems rather cool, with most interaction and stuff you would expect.
Interestingly, this lib claims to be highly portable (for example it has
been ported to wxWindows, Ruby, Python, Qt). Apparently, all the job
would consist on implementing an abstract class (Painter, see basic
class definition below) to link the PPlot library with a Fox widget. I
have the feeling this should not be that much work, but I am not really
sure on how to do this and where to start. Any idea/advice/help is welcomed.
Cheers,
Jean-Do
class Painter {
public:
// basic
virtual void DrawLine (int inX1, int inY1, int inX2, int inY2)=0;
virtual void FillRect (int inX, int inY, int inW, int inH)=0;
virtual void SetClipRect (int inX, int inY, int inW, int inH)=0;
// widget geometry
virtual long GetWidth () const=0;
virtual long GetHeight () const=0;
// color
virtual void SetLineColor (int inR, int inG, int inB)=0;
virtual void SetFillColor (int inR, int inG, int inB)=0;
//text
virtual long CalculateTextDrawSize (const char *inString)=0;
virtual long GetFontHeight () const =0;
virtual void DrawText (int inX, int inY, const char *inString)=0;
virtual void DrawRotatedText (int inX, int inY, float inDegrees, const
char *inString)=0;
};
More information about the vtkusers
mailing list