File: canvas.cpp

package info (click to toggle)
clanlib 0.5.4-1-6
  • links: PTS
  • area: main
  • in suites: woody
  • size: 10,320 kB
  • ctags: 10,893
  • sloc: cpp: 76,056; xml: 3,281; sh: 2,961; perl: 1,204; asm: 837; makefile: 775
file content (79 lines) | stat: -rw-r--r-- 1,504 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
/*
	Simple GUI & Network demo application,
	Copyright (c) 2000 by Magnus Norddahl and Kenneth Gangstoe.
*/

#include "canvas.h"
#include "sketch.h"

#include <ClanLib/display.h>

/////////////////////////////////////////////////////////////////////////////
// Construction:

Canvas::Canvas()
{
}

Canvas::~Canvas()
{
	clear();
}
	
/////////////////////////////////////////////////////////////////////////////
// Attributes:

/////////////////////////////////////////////////////////////////////////////
// Operations:

void Canvas::clear()
{
	std::list<Sketch *>::iterator sit;
	for (sit = sketches.begin(); sit != sketches.end(); sit++)
	{
		delete *sit;
	}

	sketches.clear();

	std::list<CL_Surface *>::iterator pit;
	for (pit = pictures.begin(); pit != pictures.end(); pit++)
	{
		delete *pit;
	}

	pictures.clear();
}

void Canvas::add_sketch(Sketch *sketch)
{
	sketches.push_back(sketch);
}

void Canvas::add_picture(CL_Surface *surface)
{
	pictures.push_back(surface);
}

void Canvas::draw()
{
	std::list<CL_Surface *>::iterator pit;
	for (pit = pictures.begin(); pit != pictures.end(); pit++)
	{
//		if((*pit)->is_visible())
			(*pit)->put_screen(0, 0);
	}

	std::list<Sketch *>::iterator sit;
	for (sit = sketches.begin(); sit != sketches.end(); sit++)
	{
		if((*sit)->is_visible())
			(*sit)->draw();
	}
}

/////////////////////////////////////////////////////////////////////////////
// Events:

/////////////////////////////////////////////////////////////////////////////
// Implementation: