]> git.llucax.com Git - z.facultad/75.42/figuras.git/blob - dibujo.cpp
Ya se setea bien el grueso del trazo y anda bien el círculo.
[z.facultad/75.42/figuras.git] / dibujo.cpp
1 /* vim: set et sts=4 sw=4 fdm=indent 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:07:44 ART 2003
13  *
14  * $Id$
15  */
16
17 #include "dibujo.h"
18
19 #ifdef DEBUG
20 #   include <iostream>
21 #endif
22
23 Dibujo::Dibujo(void): figuras() {
24 #ifdef DEBUG
25     std::cerr << "En constructor de Dibujo." << std::endl;
26 #endif
27 }
28
29 Dibujo::~Dibujo(void) {
30 #ifdef DEBUG
31     std::cerr << "En destructor de Dibujo." << std::endl;
32 #endif
33 }
34
35 bool Dibujo::agregar_figura(Figura* figura) {
36     return figuras.push(static_cast<void*>(figura));
37 }
38
39 void Dibujo::borrar_todo(void) {
40     // Saco cada elemento de la lista, liberando su memoria.
41     while (!figuras.empty()) {
42         delete static_cast<Figura*>(figuras.pop());
43     }
44 }
45
46 void Dibujo::dibujar(GtkWidget* widget) {
47     // Dibujo cada elemento.
48     for (Figura* f = static_cast<Figura*>(figuras.begin());
49             figuras.have_more(); f = static_cast<Figura*>(figuras.next())) {
50         f->dibujar(widget);
51     }
52 }
53