00001 #ifndef _WINC_DEVICE
00002 #define _WINC_DEVICE
00003
00004 #include <WXP/Image.h>
00005 #include <WXP/Listener.h>
00006 #include <WXP/Point.h>
00007 #include <WXP/Points.h>
00008 #include <WXP/Rect.h>
00009 #include <WXP/String.h>
00010
00011 namespace WXP {
00018 class Device {
00019 public:
00020 static const int BASE = 0;
00021 static const int LINE = 1;
00022 static const int MARK = 2;
00023 static const int FILL = 3;
00024 static const int TEXT = 4;
00025
00026 static const int LAST = -1;
00027 static const int CUR = -2;
00028 static const int WIN = -3;
00029 static const int ALL = -4;
00030
00031 static const int CURSOR_X = 0;
00032 static const int CURSOR_PTR = 1;
00033 static const int CURSOR_MOVE = 2;
00034 static const int CURSOR_LOOP = 3;
00035 static const int CURSOR_STOP = 4;
00036 static const int CURSOR_DRAW = 5;
00037 static const int CURSOR_RECT = 6;
00038 static const int CURSOR_PLUS = 6;
00039 static const int CURSOR_TEXT = 7;
00040 static const int CURSOR_WAIT = 8;
00041
00042 static const int ALIGN_HLEFT = 1;
00043 static const int ALIGN_HCENTER = 2;
00044 static const int ALIGN_HRIGHT = 3;
00045
00046 static const int ALIGN_VBOTTOM = 1;
00047 static const int ALIGN_VCENTER = 2;
00048 static const int ALIGN_VTOP = 3;
00049
00050 virtual ~Device() {}
00051 virtual int init() = 0;
00052 virtual int setParam( const char *str ) = 0;
00053 virtual int open() = 0;
00054 virtual int getDevice( String &str ) = 0;
00055 virtual int resize(float rwidth, float rheight) = 0;
00056 virtual int manage() = 0;
00057 virtual int unmanage() = 0;
00058 virtual int addCallback( const char *event, Listener *list, const void *data ) = 0;
00059 virtual int doCallback( const char *ev_str, const char *ev_data ) = 0;
00060 virtual void callback( const char *ev_str, const char *ev_data, const void *data ) = 0;
00061 virtual int close() = 0;
00062 virtual int update() = 0;
00063 virtual int clear() = 0;
00064 virtual int clearRect(Rect &rect) = 0;
00065 virtual int setTitle(const char *str) = 0;
00066 virtual int setIcon(bool val) = 0;
00067 virtual int setFixed(bool val) = 0;
00068 virtual int setInverse(bool val) = 0;
00069 virtual bool getInverse() = 0;
00070 virtual int setBackground(const char *str) = 0;
00071 virtual int setSize(float rwidth, float rheight) = 0;
00072 virtual int getSize(float &width, float &height) = 0;
00073 virtual float getWidth() = 0;
00074 virtual float getHeight() = 0;
00075 virtual int setOffset(float rx, float ry) = 0;
00076 virtual int getOffset(float &x, float &y) = 0;
00077 virtual int getCoords( Rect &rect ) = 0;
00078 virtual Rect getCoords() = 0;
00079 virtual int allocColor( float red, float grn, float blu ) = 0;
00080 virtual int setColor( int type, int ind ) = 0;
00081 virtual int setLineWidth( int type, float width ) = 0;
00082 virtual int setLineStyle( int type, int style ) = 0;
00083 virtual int setFillStyle( int type, int style ) = 0;
00084 virtual int drawLine( int type, float x1, float y1, float x2, float y2 ) = 0;
00085 virtual int drawLine( int type, Points &pts ) = 0;
00086 virtual int drawFill( int type, Points &pts ) = 0;
00087 virtual int setImageAlign( int h, int v ) = 0;
00088 virtual int drawImage( Image &image, float x, float y ) = 0;
00089 virtual int drawImage( Image &image, int bgcolor, float x, float y ) = 0;
00090 virtual int getImage( Image &image ) = 0;
00091 virtual int setFont( const char *name ) = 0;
00092 virtual int setTextAlign( int h, int v ) = 0;
00093 virtual int drawText( Point &pt, const char *str ) = 0;
00094 virtual Rect getClip() = 0;
00095 virtual int setClip( float x1, float y1, float x2, float y2 ) = 0;
00096 virtual int setClip( Rect rect ) = 0;
00097 virtual int setCursor( int type ) = 0;
00098 virtual int copyFrame( int dest, int src ) = 0;
00099 virtual int displayFrame( int ind ) = 0;
00100 virtual int clearFrame( int ind ) = 0;
00101 virtual int newFrame( int ind ) = 0;
00102 virtual int newFrame() = 0;
00103 virtual bool isLooping() = 0;
00104 virtual int getFrame() = 0;
00105 virtual int setFrame( int ind ) = 0;
00106 virtual int incFrame( int step ) = 0;
00107 virtual int deleteFrame( int ind ) = 0;
00108 virtual int getNumFrames() = 0;
00109 virtual int message( const char *str ) = 0;
00110 virtual int bell( int len ) = 0;
00111 };
00112 }
00113 #endif