Main Page | Class Hierarchy | Class List | Directories | File List | Class Members | File Members | Related Pages

GLibArtSurface.h

00001 #ifndef _LIB_ART_SURFACE_H
00002 #define _LIB_ART_SURFACE_H
00003 
00004 #include "libart_lgpl/libart.h"
00005 #include "libart_lgpl/art_render.h"
00006 #include "libart_lgpl/art_render_svp.h"
00007 
00008 class GLibArtPen
00009 {
00010     friend class GLibArtSurface;
00011     friend class GLibArtPath;
00012 
00013     COLOUR Colour;
00014     double Width;
00015     double MiterLimit;
00016     double Flatness;
00017     ArtPathStrokeJoinType Join;
00018     ArtPathStrokeCapType Cap;
00019 
00020 public:
00021     GLibArtPen()
00022     {
00023         Colour = 0;
00024         Width = 1.0;
00025         MiterLimit = 2.0;
00026         Flatness = 1.0;
00027         Join = ART_PATH_STROKE_JOIN_MITER;
00028         Cap = ART_PATH_STROKE_CAP_BUTT;
00029     }
00030 
00031     GLibArtPen(COLOUR c)
00032     {
00033         Colour = c;
00034         Width = 1.0;
00035         MiterLimit = 2.0;
00036         Flatness = 1.0;
00037         Join = ART_PATH_STROKE_JOIN_MITER;
00038         Cap = ART_PATH_STROKE_CAP_BUTT;
00039     }
00040 
00041     GLibArtPen(COLOUR c, double wid)
00042     {
00043         Colour = c;
00044         Width = wid;
00045         MiterLimit = 2.0;
00046         Flatness = 1.0;
00047         Join = ART_PATH_STROKE_JOIN_MITER;
00048         Cap = ART_PATH_STROKE_CAP_BUTT;
00049     }
00050 };
00051 
00052 class GLibArtPath
00053 {
00054     int Points;
00055     int Max;
00056     ArtVpath *Path;
00057 
00058     void _Add(ArtPathcode code, double x = 0.0, double y = 0.0);
00059 
00060 public:
00061     GLibArtPath();
00062     ~GLibArtPath();
00063 
00064     int GetPoints();
00065     ArtVpath *PointAt(int i);
00066     ArtSVP *FillSvp();
00067     ArtSVP *StrokeSvp(GLibArtPen &Pen);
00068 
00069     void AddCircle(double x, double y, double r);
00070     void AddRectangle(int x1, int y1, int x2, int y2);
00071     void AddRectangle(double x1, double y1, double x2, double y2);
00072     void AddRoundedRectangle(double x1, double y1, double x2, double y2, double r);
00073     void AddLine(int x1, int y1, int x2, int y2);
00074     void AddLine(double x1, double y1, double x2, double y2);
00075 };
00076 
00077 class GLibArtSurface : public GMemDC
00078 {
00079     ArtRender * Ar;
00080 
00081 public:
00082     GLibArtSurface(int x = -1, int y = -1);
00083 
00084     ArtRender *RenderNew(int x, int y);
00085     void DrawPath(GLibArtPen &Pen, GLibArtPath *Path);
00086     void FillPath(COLOUR c, GLibArtPath *Path);
00087 
00088     COLOUR Colour(COLOUR c, int Bits = -1);
00089 };
00090 
00091 
00092 #endif

Generated on Wed Oct 26 14:46:49 2005 for Lgi by  doxygen 1.4.1