00001
00002
00003
00004 #ifndef __OGRPH_PT_H
00005 #define __OGRPH_PT_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 double default_upper_bound;
00038
00039 protected:
00040 char x_axis_pos;
00041 double max_scale;
00042 double x_axis_step;
00043
00044 Font *font_ptr;
00045 short *grapha_bitmap;
00046
00047 public:
00048 GraphPerformanceIndicatorTrimester();
00049 ~GraphPerformanceIndicatorTrimester();
00050
00051
00052 void init(int,int,int,int,int,int*,void*,char,char=1,char=1,int=1,double=10.0,int* =NULL,int=Vga::active_buf->color_dark);
00053
00054
00055 void init(int x1,int y1,int x2,int y2,int seriesNum,int *dataNum,
00056 float* dataArray,
00057 char transparentFlag=1,char valueFlag=1,
00058 int numFormat=1,double defaultUpperBound=10,int* seriesColor=NULL,int axisColor=Vga::active_buf->color_dark) {
00059 init(x1, y1, x2, y2, seriesNum, dataNum,
00060 (void*) dataArray,
00061 DATA_FLOAT,
00062 transparentFlag, valueFlag,
00063 numFormat, defaultUpperBound, seriesColor, axisColor);
00064 }
00065
00066 void init(int x1,int y1,int x2,int y2,int seriesNum,int *dataNum,
00067 double* dataArray,
00068 char transparentFlag=1,char valueFlag=1,
00069 int numFormat=1,double defaultUpperBound=10.0,int* seriesColor=NULL,int axisColor=Vga::active_buf->color_dark) {
00070 init(x1, y1, x2, y2, seriesNum, dataNum,
00071 (void*) dataArray,
00072 DATA_DOUBLE,
00073 transparentFlag, valueFlag,
00074 numFormat, defaultUpperBound, seriesColor, axisColor);
00075 }
00076
00077 void init(int x1,int y1,int x2,int y2,int seriesNum,int *dataNum,
00078 int* dataArray,
00079 char transparentFlag=1,char valueFlag=1,
00080 int numFormat=1,double defaultUpperBound=10.0,int* seriesColor=NULL,int axisColor=Vga::active_buf->color_dark) {
00081 init(x1, y1, x2, y2, seriesNum, dataNum,
00082 (void*) dataArray,
00083 DATA_INT,
00084 transparentFlag, valueFlag,
00085 numFormat, defaultUpperBound, seriesColor, axisColor);
00086 }
00087
00088 void init(int x1,int y1,int x2,int y2,int seriesNum,int *dataNum,
00089 long* dataArray,
00090 char transparentFlag=1,char valueFlag=1,
00091 int numFormat=1,double defaultUpperBound=10.0,int* seriesColor=NULL,int axisColor=Vga::active_buf->color_dark) {
00092 init(x1, y1, x2, y2, seriesNum, dataNum,
00093 (void*) dataArray,
00094 DATA_LONG,
00095 transparentFlag, valueFlag,
00096 numFormat, defaultUpperBound, seriesColor, axisColor);
00097 }
00098
00099 void deinit();
00100 void paint();
00101 void refresh();
00102 void set_font(Font *);
00103 void calc_pos();
00104 void set_y_label_max_len(short yLabelMaxLen) { y_label_max_len = yLabelMaxLen; }
00105
00106 protected:
00107 void find_scale();
00108 void draw_scale();
00109 void draw_series();
00110 void draw_series_float();
00111 void draw_series_double();
00112 void draw_series_int();
00113 void draw_series_long();
00114 void draw_value(void *, int, short, short, int);
00115 };
00116 #endif