]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blob - docs/ejemplo_doxygen.h
e389208e3db27e541903d5457664502cc91d835a
[z.facultad/75.42/plaqui.git] / docs / ejemplo_doxygen.h
1 /* vim: set ts=4 sw=4 fdm=marker fmr={,} fdn=1 fo+=t tw=80:
2  *
3  * Taller de Programación (75.42).
4  *
5  * Trabajo Práctico Final:
6  * Simulador de plantas químicas (A.K.A. plaqui)
7  *
8  * TODO poner cabecera más bonita. :)
9  *
10  * Creado: lun oct 13 20:59:19 ART 2003
11  *
12  * $Id$
13  */
14
15 #ifndef FIGURA_H
16 #define FIGURA_H
17
18 #include "punto.h"
19 #include <cstdlib>
20 #include <gtk/gtk.h>
21
22 /**
23  * Descripción breve.
24  * Hasta el primer punto del comentario lo toma como "brief" que es una
25  * descripcion corta que se pone al principio del archivo.
26  * Aca pueden ir otras cosas como:
27  *
28  * \author Leandro Lucarella <llucare@fi.uba.ar>
29  * \see centro, dibujar()
30  *
31  * El doxygen es bastante inteligente a la hora de saber si algo es un metodo o
32  * una funcion global.
33  * También se puede poner un ejemplo de código:
34  * \code
35  * Figura f* = new Figura();
36  * f->dibujar();
37  * delete f;
38  * \endcode
39  */
40 class Figura {
41
42         protected:
43
44                 /// Si queremos poner solo un comentario breve se puede usar \c ///.
45                 static const size_t MAX_NOMBRE = 50;
46
47                 /// Color.
48                 size_t color;
49
50                 /// Grosor.
51                 size_t grosor;
52
53                 /// Centro.
54                 Punto centro;
55
56                 /// Nombre.
57                 char nombre[MAX_NOMBRE];
58
59                 /**
60                  * Crea un nuevo contexto gráfico.
61                  * Crea un nuevo contexto gráfico con las propiedades de la figura
62                  * (color y grosor) partiendo del contexto gráfico de un widget.
63                  *
64                  * \param widget Widget de donde copiar el GC inicial.
65                  *
66                  * \return Contexto gráfico a modificar.
67                  */
68                 virtual GdkGC *get_gc(GtkWidget * widget) const;
69
70                 /**
71                  * Traduce los 16 colores (de 4 bits) en colores de 24 bits.
72                  * La traducción es simple. Los 3 bits menos significativos son
73                  * usados como indicador del pigmento. El bit menos significativo
74                  * indica la presencia de pigmento azul, el siguiente verde
75                  * y el siguiente rojo. El bit más significativo representa
76                  * la saturación del color, si está activado, el color será
77                  * más saturado.
78                  *
79                  * \param c Color.
80                  *
81                  * \return El color traducido.
82                  */
83                 GdkColor *traducir_color(GdkColor * c) const;
84
85         public:
86
87                 /// Constructor.
88                 Figura(size_t color, size_t grosor, const Punto & centro,
89                 const char *nombre);
90
91                 /// Destructor.
92                 virtual ~ Figura(void);
93
94                 /**
95                  * Dibuja.
96                  * Modifica el contexto gráfico según las propiedades de la figura
97                  * (color y grosor).
98                  * Se puede poner un dibujo \e textual:
99                  * \verbatim
100                  * Dibujo:
101                  *          +--------------------+
102                  *          | MiClase            |
103                  *          +--------------------+
104                  *          | Soy ASCII Art! :)  |
105                  *          +--------------------+
106                  * \endverbatim
107                  *
108                  * O tablas HTML (que se traducen a tablas en LaTeX tambien 8-):
109                  * <table>
110                  *      <tr>
111                  *          <th>Columna 1</th>
112                  *          <th>Columna 2</th>
113                  *      </tr>
114                  *      <tr>
115                  *          <td>Item 1,1</td>
116                  *          <td>Item 1,2</td>
117                  *      </tr>
118                  *      <tr>
119                  *          <td>Item 2,1</td>
120                  *          <td>Item 2,2</td>
121                  *      </tr>
122                  * </table>
123                  *
124                  * \param widget Widget donde dibujar.
125                  */
126                 virtual void dibujar(GtkWidget * widget) const = 0;
127
128 };
129
130 #endif /* FIGURA_H */