00001 //* Módulo : xysddt.h 00002 // _Desc_ : Declara classe XYDateScaleDecorator. 00003 // _Autores_ : Camilo da Fonseca Freire. 00004 // _Data_ : 8 Ago 2000 00005 00006 #ifndef __XYSCDTDT_H 00007 #define __XYSCDTDT_H 00008 00009 #include "xysd.h" 00010 #include "xytext.h" 00011 00012 //* XYDateScaleDecorator 00013 // Classe especializada onde datas são formatadas, ou seja, 00014 // a numeração é desenhada usando-se os valores inicial e final dados no eixo 00015 // ao qual está relacionada, seguindo a incrementação também indicada no 00016 // formato definido pelo usuário. 00017 class XYDateScaleDecorator : public XYScaleDecorator 00018 { 00019 00020 public: 00021 00022 //* Construtor e Destrutor 00023 //* Construtor da classe XYDateScaleDecorator 00024 XYDateScaleDecorator (XYText* scale); 00025 00026 //* Destrutor da classe XYNumericalScaleDecorator 00027 virtual ~XYDateScaleDecorator (void); 00028 00029 //* Define a diferenca relativa 00030 virtual void delta ( double delta ) { _delta = delta + _diff; }; 00031 //* Retorna o formato de exibição dos números 00032 virtual double delta (void) const { return _delta - _diff; }; 00033 00034 //* Define o formato de exibição dos números 00035 virtual void scale (XYText *s); 00036 //* Retorna o formato de exibição dos números 00037 virtual XYText* scale (void) const; 00038 00039 //* Métodos de Draw 00040 //* Desenha a decoração no intervalo entre dois ticks de um eixo 00041 virtual void draw (const XYAxis *axis, int first_tick, int last_tick) const; 00042 00043 //* BoundingBox 00044 //* Retorna menor retângulo que contém toda a decoração de um eixo 00045 virtual void boundingBox (const XYAxis *axis, int& xmin, int& ymin, 00046 int& xmax, int& ymax) const; 00047 00048 protected : 00049 00050 XYText* _scale; 00051 double _delta; 00052 00053 private: 00054 00055 double _diff; 00056 }; 00057 00058 #endif 00059