00001
00011 #ifndef DEFINE_H_YGRAPHIC
00012 #define DEFINE_H_YGRAPHIC
00013
00014 #include <basic.h>
00015 #include <bstdlib.h>
00016 #include <tcode.h>
00017 #include <errcode.h>
00018 #include <btron/btron.h>
00019 #include <btron/dp.h>
00020 #include <btron/hmi.h>
00021 #include <btron/vobj.h>
00022 #include <btron/tip.h>
00023 #include <btron/libapp.h>
00024 #include <tstring.h>
00025 #include "ypen.h"
00026 #include "ybrush.h"
00027 #include "ypoint.h"
00028 #include "yrect.h"
00029
00035 class YGraphic {
00036
00037 public:
00039 YGraphic();
00040
00042 YGraphic(W gid);
00043
00045 virtual ~YGraphic() {};
00046
00052 void setGraphID(W gid) {
00053 graphID = gid;
00054 }
00055
00061 W getGraphID() {
00062 return graphID;
00063 }
00064
00066 YPen* setPen(YPen *pen);
00067
00069 YBrush* setBrush(YBrush *brush);
00070
00072 static YPen* getStdPen();
00073
00075 static YBrush* getStdBrush();
00076
00083 static int adjustDeg(int deg) {
00084 deg %= 360;
00085 if (deg < 0){
00086 deg += 360;
00087 }
00088 return deg;
00089 }
00090
00092 void line(const YPoint& p1, const YPoint& p2);
00093
00095 void setPixel(const YPoint& p1);
00096
00098 void fillPixel(const YPoint& p1);
00099
00101 void frameRect(const YRect& rect, W deg = 0);
00102
00104 void fillRect(const YRect& rect, W deg = 0);
00105
00107 void frameRoundRect(const YRect& rect, W rx, W ry, W deg = 0);
00108
00110 void fillRoundRect(const YRect& rect, W rx, W ry, W deg = 0);
00111
00113 void frameOval(const YRect& rect, W deg = 0);
00114
00116 void fillOval(const YRect& rect, W deg = 0);
00117
00119 void arc(const YRect& rect, const YPoint& sp, const YPoint& ep, W deg = 0);
00120
00122 void frameSector(const YRect& rect, const YPoint& sp, const YPoint& ep, W deg = 0);
00123
00125 void fillSector(const YRect& rect, const YPoint& sp, const YPoint& ep, W deg = 0);
00126
00128 void frameChord(const YRect& rect, const YPoint& sp, const YPoint& ep, W deg = 0);
00129
00131 void fillChord(const YRect& rect, const YPoint& sp, const YPoint& ep, W deg = 0);
00132
00134 void floodFill(const YPoint& pt);
00135
00137 void floodFill(const YPoint& pt, const YColor& bound);
00138
00139
00140
00141
00142
00143
00144
00145
00146 protected:
00147
00148 private:
00150 W graphID;
00152 YPen* currentPen;
00154 YBrush* currentBrush;
00156 static YPen *stdPen;
00157
00158 static YBrush *stdBrush;
00159
00160 };
00161
00162 #endif // DEFINE_H_YGRAPHIC