]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blob - docs/ejemplo_doxygen.h
Se agrega generacion de XML para dar el estado actual de la planta simulada.
[z.facultad/75.42/plaqui.git] / docs / ejemplo_doxygen.h
1 /***************************************************************************
2  * PlaQui - Simulador de Plantas Químicas
3  *
4  * Desarrollado para : Taller de Programacion I (FIUBA)
5  *
6  * Un desarrollo de :
7  *              The PlaQui Development Team
8  *                      - Dimov, Nicolás <nicodimov@datafull.com>
9  *                      - Lucarella, Leandro <luca@llucax.hn.org>
10  *                      - Markiewicz, Ricardo <rmarkie@fi.uba.ar>
11  ***************************************************************************
12  * Creado: lun oct 13 20:59:19 ART 2003
13  *
14  * $Id$
15  ***************************************************************************
16  *                                                                         *
17  *   This program is free software; you can redistribute it and/or modify  *
18  *   it under the terms of the GNU General Public License as published by  *
19  *   the Free Software Foundation; either version 2 of the License, or     *
20  *   (at your option) any later version.                                   *
21  *                                                                         *
22  ***************************************************************************/
23
24 #ifndef FIGURA_H
25 #define FIGURA_H
26
27 #include "punto.h"
28 #include <cstdlib>
29 #include <gtk/gtk.h>
30
31 /**
32  * Descripción breve.
33  * Hasta el primer punto del comentario lo toma como "brief" que es una
34  * descripcion corta que se pone al principio del archivo.
35  * Aca pueden ir otras cosas como:
36  *
37  * \author Leandro Lucarella <llucare@fi.uba.ar>
38  * \see centro, dibujar()
39  *
40  * El doxygen es bastante inteligente a la hora de saber si algo es un metodo o
41  * una funcion global.
42  * También se puede poner un ejemplo de código:
43  * \code
44  * Figura f* = new Figura();
45  * f->dibujar();
46  * delete f;
47  * \endcode
48  */
49 class Figura {
50
51         protected:
52
53                 /// Si queremos poner solo un comentario breve se puede usar \c ///.
54                 static const size_t MAX_NOMBRE = 50;
55
56                 /// Color.
57                 size_t color;
58
59                 /// Grosor.
60                 size_t grosor;
61
62                 /// Centro.
63                 Punto centro;
64
65                 /// Nombre.
66                 char nombre[MAX_NOMBRE];
67
68                 /**
69                  * Crea un nuevo contexto gráfico.
70                  * Crea un nuevo contexto gráfico con las propiedades de la figura
71                  * (color y grosor) partiendo del contexto gráfico de un widget.
72                  *
73                  * \param widget Widget de donde copiar el GC inicial.
74                  *
75                  * \return Contexto gráfico a modificar.
76                  */
77                 virtual GdkGC *get_gc(GtkWidget * widget) const;
78
79                 /**
80                  * Traduce los 16 colores (de 4 bits) en colores de 24 bits.
81                  * La traducción es simple. Los 3 bits menos significativos son
82                  * usados como indicador del pigmento. El bit menos significativo
83                  * indica la presencia de pigmento azul, el siguiente verde
84                  * y el siguiente rojo. El bit más significativo representa
85                  * la saturación del color, si está activado, el color será
86                  * más saturado.
87                  *
88                  * \param c Color.
89                  *
90                  * \return El color traducido.
91                  */
92                 GdkColor *traducir_color(GdkColor * c) const;
93
94         public:
95
96                 /// Constructor.
97                 Figura(size_t color, size_t grosor, const Punto & centro,
98                 const char *nombre);
99
100                 /// Destructor.
101                 virtual ~ Figura(void);
102
103                 /**
104                  * Dibuja.
105                  * Modifica el contexto gráfico según las propiedades de la figura
106                  * (color y grosor).
107                  * Se puede poner un dibujo \e textual:
108                  * \verbatim
109                  * Dibujo:
110                  *          +--------------------+
111                  *          | MiClase            |
112                  *          +--------------------+
113                  *          | Soy ASCII Art! :)  |
114                  *          +--------------------+
115                  * \endverbatim
116                  *
117                  * O tablas HTML (que se traducen a tablas en LaTeX tambien 8-):
118                  * <table>
119                  *      <tr>
120                  *          <th>Columna 1</th>
121                  *          <th>Columna 2</th>
122                  *      </tr>
123                  *      <tr>
124                  *          <td>Item 1,1</td>
125                  *          <td>Item 1,2</td>
126                  *      </tr>
127                  *      <tr>
128                  *          <td>Item 2,1</td>
129                  *          <td>Item 2,2</td>
130                  *      </tr>
131                  * </table>
132                  *
133                  * \param widget Widget donde dibujar.
134                  */
135                 virtual void dibujar(GtkWidget * widget) const = 0;
136
137 };
138
139 #endif /* FIGURA_H */