summaryrefslogtreecommitdiffstats
path: root/arts/builder/scomponent.cpp
blob: fb461f3a5c56c5d6e14391ff140df4c5a6dd5822 (plain)
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
    /*

    Copyright (C) 1999 Stefan Westerfeld
                       stefan@space.twc.de

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

    */

#include "scomponent.h"
//#include <arts/debug.h>
#include <qpainter.h>
#include <qpixmap.h>
#include <stdio.h>

StructureComponent::StructureComponent(StructureCanvas *canvas)
: _x(0), _y(0)
{
	this->canvas = canvas;
}

StructureComponent::~StructureComponent()
{
}

void StructureComponent::hide()
{
	if(_visible)
	{
		_visible = false;
		redraw();
	}
}

void StructureComponent::show()
{
	if(!_visible)
	{
		_visible = true;
		redraw();
	}
}

bool StructureComponent::visible()
{
	return(_visible);
}

void StructureComponent::redraw()
{
	canvas->redrawRect(x(), y(), width(), height());
}

bool StructureComponent::move(int newx, int newy)
{
	bool success = moveInternal(newx, newy);
	
	if(success)
	{
		hide();
		redraw();

		_x = newx;
		_y = newy;

		show();
		redraw();
	}

	return success;
}

int StructureComponent::x() const
{
	return _x;
}

int StructureComponent::y() const
{
	return _y;
}

bool StructureComponent::selected()
{
	return _selected;
}

void StructureComponent::setSelected(bool newselection)
{
	if(newselection != _selected)
	{
		_selected = newselection;
		redraw();
	}
}