00001
00002
00003
00004 #ifndef __OGRPH_PY_H
00005 #define __OGRPH_PY_H
00006
00007 #include <OVGA.H>
00008 #include <OFONT.H>
00009
00010
00011
00012 #ifndef __OGRPHYR_H
00013 enum {
00014 DATA_FLOAT = 1, DATA_DOUBLE = 2,
00015 DATA_INT = 3, DATA_LONG = 4
00016 };
00017 #endif
00018
00019
00020
00022
00023 public:
00024 short grapha_x1, grapha_y1, grapha_x2, grapha_y2;
00025 short series_x1, series_y1, series_x2, series_y2;
00026 short graph_height, graph_width;
00027 short legend_width, legend_height, legend_x_num, legend_y_num;
00028 char **legend_array, *x_label, *y_label;
00029 int *series_color, axis_color;
00030 char init_flag, transparent_flag, orientation_flag;
00031 char data_type_flag, value_flag;
00032 int num_format;
00033 int series_num, *data_num;
00034 void *data_array;
00035 int *x_start, *x_end;
00036 short y_label_max_len;
00037
00038 protected:
00039 char x_axis_pos;
00040 double max_scale;
00041 double x_axis_step;
00042
00043 Font *font_ptr;
00044 short *grapha_bitmap;
00045
00046 public:
00047 GraphPerformanceIndicatorYear();
00048 ~GraphPerformanceIndicatorYear();
00049
00050 void init(int,int,int,int,int,int*,void*,char,char=1,char=1,int=1,int* =NULL,int=Vga::active_buf->color_dark);
00051
00052 void init(int x1,int y1,int x2,int y2,int seriesNum,int *dataNum,
00053 float* dataArray,
00054 char transparentFlag=1,char valueFlag=1,
00055 int numFormat=1,int* seriesColor=NULL,int axisColor=Vga::active_buf->color_dark) {
00056 init(x1, y1, x2, y2, seriesNum, dataNum,
00057 (void*) dataArray, DATA_FLOAT,
00058 transparentFlag, valueFlag,
00059 numFormat, seriesColor, axisColor);
00060 }
00061
00062 void init(int x1,int y1,int x2,int y2,int seriesNum,int *dataNum,
00063 double* dataArray,
00064 char transparentFlag=1,char valueFlag=1,
00065 int numFormat=1,int* seriesColor=NULL,int axisColor=Vga::active_buf->color_dark) {
00066 init(x1, y1, x2, y2, seriesNum, dataNum,
00067 (void*) dataArray, DATA_DOUBLE,
00068 transparentFlag, valueFlag,
00069 numFormat, seriesColor, axisColor);
00070 }
00071
00072 void init(int x1,int y1,int x2,int y2,int seriesNum,int *dataNum,
00073 int* dataArray,
00074 char transparentFlag=1,char valueFlag=1,
00075 int numFormat=1,int* seriesColor=NULL,int axisColor=Vga::active_buf->color_dark) {
00076 init(x1, y1, x2, y2, seriesNum, dataNum,
00077 (void*) dataArray, DATA_INT,
00078 transparentFlag, valueFlag,
00079 numFormat, seriesColor, axisColor);
00080 }
00081
00082 void init(int x1,int y1,int x2,int y2,int seriesNum,int *dataNum,
00083 long* dataArray,
00084 char transparentFlag=1,char valueFlag=1,
00085 int numFormat=1,int* seriesColor=NULL,int axisColor=Vga::active_buf->color_dark) {
00086 init(x1, y1, x2, y2, seriesNum, dataNum,
00087 (void*) dataArray, DATA_LONG,
00088 transparentFlag, valueFlag,
00089 numFormat, seriesColor, axisColor);
00090 }
00091
00092 void deinit();
00093 void paint();
00094 void refresh();
00095 void set_font(Font *);
00096 void calc_pos();
00097
00098 void set_y_label_max_len(short yLabelMaxLen) { y_label_max_len = yLabelMaxLen; }
00099
00100 protected:
00101 void find_scale();
00102 void draw_scale();
00103 void draw_series();
00104 void draw_series_float();
00105 void draw_series_double();
00106 void draw_series_int();
00107 void draw_series_long();
00108 void draw_value(void *, int, short, short, int);
00109 };
00110 #endif