#ifndef GRAPHICS_H #define GRAPHICS_H /* IMPORT ******************************************************************/ #line 24 "graphics.cpp" class Graphics; #line 25 "graphics.cpp" extern void paint(Graphics& g); #line 50 "graphics.cpp" class Font { public: enum { BOLD = 1, ITALIC = 2 }; Font(); Font(string, int, int); string getName() const { return _name; } int getStyle() const { return _style; } int getSize() const { return _size; } private: string _name; int _size; int _style; }; #line 100 "graphics.cpp" class FontMetricsImpl { public: virtual int stringWidth(string s) = 0; virtual int getAscent() = 0; virtual int getDescent() = 0; }; #line 110 "graphics.cpp" class FontMetrics { public: FontMetrics(FontMetricsImpl* fmi) : _impl(fmi) {} int stringWidth(string s) { return _impl->stringWidth(s); } int getAscent() { return _impl->getAscent(); } int getDescent() { return _impl->getDescent(); } private: FontMetricsImpl* _impl; }; #line 143 "graphics.cpp" class Color { public: static Color black; static Color blue; static Color cyan; static Color darkGray; static Color gray; static Color green; static Color lightGray; static Color magenta ; static Color orange ; static Color pink ; static Color red ; static Color white ; static Color yellow ; Color(int r, int g, int b) : _red(r), _green(g), _blue(b) {} private: int _red; int _green; int _blue; friend class WinGraphics; }; #line 185 "graphics.cpp" class Graphics { public: virtual void drawLine(int xfrom, int yfrom, int xto, int yto) = 0; virtual void drawRect(int x, int y, int width, int height) = 0; virtual void fillRect(int x, int y, int width, int height) = 0; virtual void drawOval(int x, int y, int width, int height) = 0; virtual void drawString(string t, int x, int y) = 0; virtual void setColor(Color color) = 0; virtual void setFont(Font font) = 0; virtual Font getFont() = 0; virtual FontMetrics getFontMetrics() = 0; }; #endif