]> git.llucax.com Git - z.facultad/75.42/figuras.git/blob - figura.h
8e99a46f07aa8f3c1d31556fc3b9944e60c2428c
[z.facultad/75.42/figuras.git] / figura.h
1 /* vim: set et sts=4 sw=4 fdm=marker fmr={,} fdn=1 fo+=t tw=80:
2  *
3  * Taller de Programación (75.42).
4  *
5  * Ejercicio Número 5:
6  * Graficador de figuras.
7  *
8  * Copyleft 2003 - Leandro Lucarella <llucare@fi.uba.ar>
9  * Puede copiar, modificar y distribuir este programa bajo los términos de
10  * la licencia GPL (http://www.gnu.org/).
11  *
12  * Creado: Thu Sep 18 21:34:56 ART 2003
13  *
14  * $Id$
15  */
16
17 #ifndef FIGURA_H
18 #define FIGURA_H
19
20 #include "punto.h"
21 #include <cstdlib>
22 #include <gtk/gtk.h>
23
24 /**
25  * Figura dibujable.
26  */
27 class Figura {
28
29     protected:
30
31         /// Color.
32         size_t color;
33
34         /// Grosor.
35         size_t grosor;
36
37         /// Centro.
38         Punto centro;
39
40         /// Nombre.
41         char nombre[30];
42
43         /**
44          * Modifica el contexto gráfico.
45          * Modifica el contexto gráfico según las propiedades de la figura
46          * (color y grosor).
47          *
48          * \param gc Contexto gráfico a modificar.
49          */
50         virtual void set_gc(GdkGC* gc) const;
51
52     public:
53
54         /**
55          * Constructor.
56          */
57         Figura(size_t color, size_t grosor, const Punto& centro,
58                 const char* nombre);
59
60         /**
61          * Destructor.
62          */
63         virtual ~Figura(void);
64
65         /**
66          * Dibuja.
67          * Modifica el contexto gráfico según las propiedades de la figura
68          * (color y grosor).
69          *
70          * \param gc Contexto gráfico a modificar.
71          */
72         virtual void dibujar(GtkWidget* widget) const = 0;
73
74 };
75
76 #endif /* FIGURA_H */