00001
00002
00003
00004
00005
00006
00007
00008 #ifndef LIBGUI_GRAPHICS_H_
00009 #define LIBGUI_GRAPHICS_H_
00010
00011 #include "integer.h"
00012 #include "CGUIConstants.h"
00013
00014 class CFont;
00015 class CImage;
00016
00036
00037 #define GRAPHICS_HCENTER LIBGUI_HCENTER//1
00038 #define GRAPHICS_VCENTER LIBGUI_VCENTER//2
00039 #define GRAPHICS_LEFT LIBGUI_LEFT//4
00040 #define GRAPHICS_RIGHT LIBGUI_RIGHT//8
00041 #define GRAPHICS_TOP LIBGUI_TOP//16
00042 #define GRAPHICS_BOTTOM LIBGUI_BOTTOM//32
00043
00068 class CGraphics
00069 {
00070 public:
00076 CGraphics(INT16 width, INT16 height);
00077 ~CGraphics();
00078
00088 void DrawString(const CString* str, INT16 x, INT16 y, INT8 anchor);
00105 virtual void DrawImage(CImage* img, INT16 x, INT16 y, INT8 anchor);
00115 virtual void DrawLine(INT16 x1, INT16 y1, INT16 x2, INT16 y2);
00129 virtual void DrawRectangle(INT16 x, INT16 y, INT16 width, INT16 height);
00146 virtual void FillRectangle(INT16 x, INT16 y, INT16 width, INT16 height) = 0;
00159 void ClipRect(INT16 x, INT16 y, INT16 width, INT16 height);
00168 void SetClip(INT16 x, INT16 y, INT16 width, INT16 height);
00173 void SetColor(INT32 rgb);
00180 CFont* SetFont(CFont* font);
00185 void SetPaintMode(BOOL b);
00189 const UINT8* GetBuffer();
00193 INT32 GetBufferLength();
00194 protected:
00203 virtual INT16 DrawChar(CHAR ch, INT16 x, INT16 y);
00210 virtual INT32 GetPixel(INT16 x, INT16 y) = 0;
00214 CFont* m_font;
00218 UINT8* m_buffer;
00222 INT32 m_bufferLength;
00226 INT16 m_width;
00230 INT16 m_height;
00231
00235 INT16 m_Xmin;
00239 INT16 m_Xmax;
00243 INT16 m_Ymin;
00247 INT16 m_Ymax;
00253 INT32 m_color;
00257 BOOL m_xor;
00258
00259
00260
00264
00268
00288
00293
00298
00306
00307 };
00308
00309 #endif