00001 //* Módulo : xyvtext.h 00002 // _Desc_ : Declara classe XYVectorText. 00003 // _Autores_ : Carlos Henrique Levy e Jaudênia Cavalcante. 00004 // _Data_ : 20 jun 97. 00005 00006 #ifndef __XYVECTORTEXT_H 00007 #define __XYVECTORTEXT_H 00008 00009 #include "xytext.h" 00010 00011 //* XYVectorText 00012 // Classe especializada responsável pelo desenho de textos vetoriais. 00013 class XYVectorText : public XYText 00014 { 00015 public: 00016 00017 //* Construtores e Destrutor 00018 //* Construtor A 00019 XYVectorText ( 00020 const char* text, // texto a ser desenhado 00021 // posição em relação a área ocupada pelo gráfico 00022 XYCoordinate x, // coordenada x 00023 XYCoordinate y, // coordenada y 00024 long color, // cor do texto 00025 double height, // altura do texto, em coord. normalizadas 00026 double width, // altura do texto, em coord. normalizadas 00027 Typeface font, // tipo de fonte usada 00028 Style style, // estilo de escrita 00029 Alignment alignment, // alinhamento (rosa dos ventos) 00030 Orientation orientation, // orientação do texto 00031 xybool underline = xyfalse, // sublinhado (xytrue or xyfalse) 00032 xybool visible = xytrue); // visibilidade 00033 00034 //* Construtor B 00035 XYVectorText ( 00036 const char* text, // texto a ser desenhado 00037 // posição em relação a área ocupada pelo gráfico 00038 XYCoordinate x, // coordenada x 00039 XYCoordinate y, // coordenada y 00040 xybool visible = xytrue); // visibilidade 00041 00042 //* Construtor C 00043 XYVectorText ( 00044 const char* text, // texto a ser desenhado 00045 long color, // cor do texto 00046 double height, // altura do texto, em coord. normalizadas 00047 double width, // altura do texto, em coord. normalizadas 00048 Typeface font, // tipo de fonte usada 00049 Style style, // estilo de escrita 00050 Alignment alignment, // alinhamento (rosa dos ventos) 00051 Orientation orientation, // orientação do texto 00052 xybool underline = xyfalse, // sublinhado (xytrue or xyfalse) 00053 xybool visible = xytrue); // visibilidade 00054 00055 //* Construtor D (atributos) 00056 XYVectorText ( 00057 long color, // cor 00058 double height, // altura do texto, em coord. normalizadas 00059 double width, // altura do texto, em coord. normalizadas 00060 Typeface font, // tipo de fonte usada 00061 Style style, // estilo de escrita 00062 Alignment alignment, // alinhamento (rosa dos ventos) 00063 Orientation orientation, // orientação do texto 00064 xybool underline = xyfalse, // confirma ou não sublinhado 00065 xybool visible = xytrue); // visibilidade 00066 00067 //* Destrutor da classe XYVectorText 00068 virtual ~XYVectorText (void); 00069 00070 //* Define/Consulta atributos 00071 //* Define a altura do texto, em coordenadas normalizadas 00072 virtual void height (double s); 00073 //* Consulta a altura do texto 00074 virtual double height (void) const; 00075 00076 //* Define a largura do texto, em coordenadas normalizadas 00077 virtual void width (double s); 00078 //* Consulta a largura do texto 00079 virtual double width (void) const; 00080 00081 //* Define a matriz de tranformacao do texto 00082 virtual void matrix (double *s); 00083 //* Acumula a matriz de tranformacao do texto 00084 virtual void accmatrix (double *s); 00085 //* Consulta a matriz de tranformacao do texto 00086 virtual double *matrix (void) const; 00087 00088 //* Métodos de Draw 00089 //* Desenha um texto 00090 virtual void draw (void); 00091 //* Desenha um texto numa região 00092 virtual void draw (int xmin, int ymin, int xmax, int ymax) const; 00093 00094 //* BoundingBox 00095 //* Retorna menor retângulo que contém o texto, suas coordenadas são dadas em pixel 00096 virtual void boundingBox (int& bxmin, int& bymin, int& bxmax, int& bymax) const; 00097 00098 private: 00099 00100 double _height; // altura do texto, em coord. normalizadas 00101 double _width; // largura do texto, em coord. normalizadas 00102 double *_tmatrix; // matriz de transformacao 00103 }; 00104 00105 #endif