00001 //* Módulo : xysdlg.h 00002 // _Desc_ : Declara classe XYLogScaleDecorator. 00003 // _Autores_ : Carlos Henrique Levy e Jaudênia Cavalcante. 00004 // _Data_ : 05 jul 96. 00005 00006 #ifndef __XYSCDTLG_H 00007 #define __XYSCDTLG_H 00008 00009 #include "xysd.h" 00010 #include "xytext.h" 00011 00012 //* XYLogScaleDecorator 00013 // Classe especializada onde decorações logarítmicas são formata das, ou 00014 // seja, a numeração aparece como resultado de potências de 10, onde os índice 00015 // estão de acordo com o eixo logaritmico definido pelo usuário. 00016 class XYLogScaleDecorator : public XYScaleDecorator 00017 { 00018 public: 00019 00020 //* Construtor e Destrutor 00021 //* Construtor da classe XYLogScaleDecorator 00022 XYLogScaleDecorator (char *format, 00023 XYText* scale); 00024 00025 //* Destrutor da classe XYLogScaleDecorator 00026 virtual ~XYLogScaleDecorator (void); 00027 00028 //* Define/Consulta atributos 00029 //* Define o formato de exibição dos números 00030 virtual void format (char *f); 00031 //* Retorna o formato de exibição dos números 00032 virtual char* format (void) const; 00033 00034 //* Métodos de Draw 00035 //* Desenha a decoração no intervalo entre dois ticks de um eixo 00036 virtual void draw (const XYAxis *axis, int first_tick, int last_tick) const; 00037 00038 //* BoundingBox 00039 //* Retorna menor retângulo que contém toda a decoração de um eixo 00040 virtual void boundingBox (const XYAxis *axis, int& xmin, int& ymin, 00041 int& xmax, int& ymax) const; 00042 00043 private: 00044 00045 char* _format; // formato em que o número deve ser apresentado 00046 XYText* _scale; // atributos de texto usados para desenhar o número 00047 }; 00048 00049 #endif 00050