Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

xyleg.h

Go to the documentation of this file.
00001 //* Módulo   : xyleg.h                                                           
00002 // _Desc_    : Declara classe XYLegend. 
00003 // _Autores_ : Carlos Henrique Levy e Jaudênia Cavalcante.                      
00004 // _Data_    : 26 jun 96.                                                           
00005 
00006 #ifndef __XYLEGEND_H
00007 #define __XYLEGEND_H
00008 
00009 #include "xybool.h"
00010 #include "xymath.h"
00011 #include "xym.h"
00012 #include "xylist.h"
00013              
00014 //* XYLegend
00015 //    Classe que gerencia a apresentação da legenda para um determinado gráfico 
00016 // com o número de linhas e colunas definidos pelo usuário. Essa classe 
00017 // faz uso da mesma lista de máscaras válida para o gráfico ao qual ela está 
00018 // associada, medida que evita duplicação de informação. Seu layout é compos 
00019 // to por uma região delimitada pela presença ou não de uma moldura, nomes   
00020 // das séries envolvidas e seus ícones de representação.                     
00021 class XYLegend : public XYObject
00022 {
00023    public:
00024 
00025  //* Construtores e Destrutor
00026    //* Construtor da classe XYLegend
00027    XYLegend (
00028         XYCoordinate x,  // referência para a coordenada x
00029         XYCoordinate y,  // referência para a coordenada y
00030         int nlines,      // número de linhas
00031         int ncolumns,    // número de colunas
00032         xybool box = xytrue, // moldura (xytrue or xyfalse)
00033         xybool visible = xytrue);  // visibilidade
00034 
00035    //* Destrutor da classe XYLegend
00036    virtual ~XYLegend (void);
00037 
00038  //* Define/Consulta atributos
00039    //* Define a lista de máscaras a ser representada
00040    virtual void mask (const XYList<XYMask>* mask);
00041    //* Consulta a lista de máscaras a ser representada
00042    virtual const XYList<XYMask>* mask (void) const;
00043 
00044    //* Define cor de fundo
00045    virtual void backgroundColor(long color);
00046    //* Consulta cor de fundo
00047    virtual long backgroundColor(void) const;
00048 
00049    //* Define cor da moldura
00050    virtual void frameColor(long color);
00051    //* Consulta a cor da moldura
00052    virtual long frameColor(void) const;
00053 
00054    //* Define o número de linhas
00055    virtual void lines (int nl);
00056    //* Consulta o número de linhas
00057    virtual int lines (void) const;
00058 
00059    //* Define o número de colunas
00060    virtual void columns (int nc);
00061    //* Consulta o número de colunas
00062    virtual int columns (void) const;
00063 
00064    //* Define se a legenda tem moldura
00065    virtual void box (xybool b);
00066    //* Consulta se a legenda tem moldura
00067    virtual xybool box (void) const;
00068 
00069  //* Métodos de Pick
00070    //* Retorna xytrue se o ponto estiver sobre a legenda
00071    virtual xybool pick (int px, int py);
00072 
00073    //* Retorna a máscara cujo item representativo na legenda foi tocado
00074    virtual XYMask* pickItem (int px, int py);
00075 
00076    //* Retorna xytrue se a legenda estiver interior a região de "fence"
00077    virtual xybool fence (int x0, int y0, int x1, int y1);
00078 
00079  //* Métodos de Draw
00080    //* Limpa região onde a legenda é desenhada
00081    virtual void clear(void) const;
00082    virtual void clear(int xmin, int ymin, int xmax, int ymax) const;
00083 
00084    //* Desenha
00085    virtual void draw (void);
00086    //* Desenha numa região
00087    virtual void draw (int xmin, int ymin, int xmax, int ymax) const;
00088 
00089  //* BoundingBox
00090    //* Retorna menor retângulo que contém a legenda, suas coordenadas são dadas em pixels
00091    virtual void boundingBox (int& bxmin, int& bymin, int& bxmax, int& bymax) const;
00092                                                         
00093    protected:
00094 
00095    const  XYList<XYMask>* _masks; // ponteiro p/ lista de máscaras
00096    double _x, _y;                 // posição inicial
00097    int    _nLines;                // número de linhas
00098    int    _nColumns;              // número de colunas
00099    xybool   _box;                   // indica se a legenda tem moldura
00100    long   _color;                 // cor de fundo
00101    long   _bColor;                // cor da moldura
00102 };
00103 
00104 #endif
00105 

XY
Tecgraf / PUC-Rio - Computer Graphics Technology Group