#define GUI_FB NAMESPACE_UPP class SystemDraw : public Draw { public: virtual dword GetInfo() const; virtual Size GetPageSize() const; virtual void BeginOp(); virtual void EndOp(); virtual void OffsetOp(Point p); virtual bool ClipOp(const Rect& r); virtual bool ClipoffOp(const Rect& r); virtual bool ExcludeClipOp(const Rect& r); virtual bool IntersectClipOp(const Rect& r); virtual bool IsPaintingOp(const Rect& r) const; virtual Rect GetPaintRect() const; virtual void DrawRectOp(int x, int y, int cx, int cy, Color color); virtual void DrawImageOp(int x, int y, int cx, int cy, const Image& img, const Rect& src, Color color); virtual void DrawLineOp(int x1, int y1, int x2, int y2, int width, Color color); virtual void DrawPolyPolylineOp(const Point *vertices, int vertex_count, const int *counts, int count_count, int width, Color color, Color doxor); virtual void DrawPolyPolyPolygonOp(const Point *vertices, int vertex_count, const int *subpolygon_counts, int scc, const int *disjunct_polygon_counts, int dpcc, Color color, int width, Color outline, uint64 pattern, Color doxor); virtual void DrawArcOp(const Rect& rc, Point start, Point end, int width, Color color); virtual void DrawEllipseOp(const Rect& r, Color color, int pen, Color pencolor); virtual void DrawTextOp(int x, int y, int angle, const wchar *text, Font font, Color ink, int n, const int *dx); virtual Size GetNativeDpi() const; virtual void BeginNative(); virtual void EndNative(); virtual int GetCloffLevel() const; virtual ~SystemDraw(); Point GetOffset() const { return Point(0, 0); } bool CanSetSurface() { return false; } static void Flush() {} }; class BackDraw : public SystemDraw { Size size; Draw *painting; Point painting_offset; public: virtual bool IsPaintingOp(const Rect& r) const; public: void Put(SystemDraw& w, int x, int y); void Put(SystemDraw& w, Point p) { Put(w, p.x, p.y); } void Create(SystemDraw& w, int cx, int cy); void Create(SystemDraw& w, Size sz) { Create(w, sz.cx, sz.cy); } void Destroy(); void SetPaintingDraw(Draw& w, Point off) { painting = &w; painting_offset = off; } BackDraw(); ~BackDraw(); }; class ImageDraw : public SystemDraw { SystemDraw alpha; bool has_alpha; Size size; public: Draw& Alpha(); operator Image() const; Image GetStraight() const; ImageDraw(Size sz); ImageDraw(int cx, int cy); ~ImageDraw(); }; void DrawDragRect(SystemDraw& w, const Rect& rect1, const Rect& rect2, const Rect& clip, int n, Color color, uint64 pattern); #define GUIPLATFORM_KEYCODES_INCLUDE #define GUIPLATFORM_CTRL_TOP_DECLS #define GUIPLATFORM_CTRL_DECLS_INCLUDE #define GUIPLATFORM_PASTECLIP_DECLS #define GUIPLATFORM_TOPWINDOW_DECLS_INCLUDE // to be implemented by final FB { bool FBIsWaitingEvent(); bool FBProcessEvent(bool *quit); void FBSleep(int ms); bool FBEndSession(); // } class PrinterJob { NilDraw nil; Vector pages; public: Draw& GetDraw() { return nil; } operator Draw&() { return GetDraw(); } const Vector& GetPages() const { return pages; } int operator[](int i) const { return 0; } int GetPageCount() const { return 0; } bool Execute() { return false; } PrinterJob& Landscape(bool b = true) { return *this; } PrinterJob& MinMaxPage(int minpage, int maxpage) { return *this; } PrinterJob& PageCount(int n) { return *this; } PrinterJob& CurrentPage(int currentpage) { return *this; } PrinterJob& Name(const char *_name) { return *this; } PrinterJob(const char *name = NULL) {} ~PrinterJob() {} }; END_UPP_NAMESPACE #define GUIPLATFORM_INCLUDE_AFTER