summaryrefslogtreecommitdiff
path: root/lyt/pane.cpp
blob: 9cf3617b6814ade6475c99b076e684f9922d56a8 (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
#include "pane.h"
#include "layout.h"

LYTPane::LYTPane(LYTLayout &layout) : m_layout(layout) {
	this->parent = 0;
}

LYTPane::~LYTPane() {
	foreach (LYTPane *ptr, this->children)
		delete ptr;
}

LYTPane *LYTPane::findPaneByName(QString name, bool recursive) {
	foreach (LYTPane *pane, this->children) {
		if (pane->name == name)
			return pane;

		if (recursive) {
			LYTPane *tryThis = pane->findPaneByName(name, recursive);
			if (tryThis != 0)
				return tryThis;
		}
	}

	return 0;
}

LYTLayout &LYTPane::layout() const {
	return m_layout;
}


void LYTPane::dumpToDebug(bool showHeading) {
	if (showHeading)
		qDebug() << "LYTPane" << name << "@" << (void*)this;

	qDebug() << "- Translation:" << xTrans << "," << yTrans << "," << zTrans;
	qDebug() << "- Rotation:" << xRot << "," << yRot << "," << zRot;
	qDebug() << "- Scale:" << xScale << "," << yScale;
	qDebug() << "- Size:" << width << "x" << height;
	qDebug() << "- Flags:" << flags << "- Origin:" << origin;
	qDebug() << "- Alpha:" << alpha << "- Userdata:" << userdata;
}



void LYTPane::writeToDataStream(QDataStream &out) {
	out << (quint8)flags;
	out << (quint8)origin;
	out << (quint8)alpha;
	out.skipRawData(1); // padding

	WriteFixedLengthASCII(out, name, 0x10);
	WriteFixedLengthASCII(out, userdata, 8);

	out << (float)xTrans;
	out << (float)yTrans;
	out << (float)zTrans;
	out << (float)xRot;
	out << (float)yRot;
	out << (float)zRot;
	out << (float)xScale;
	out << (float)yScale;
	out << (float)width;
	out << (float)height;
}

void LYTPane::readFromDataStream(QDataStream &in) {
	in >> (quint8&)flags;
	in >> (quint8&)origin;
	in >> (quint8&)alpha;
	in.skipRawData(1); // padding

	name = ReadFixedLengthASCII(in, 0x10);
	userdata = ReadFixedLengthASCII(in, 8);

	in >> (float&)xTrans;
	in >> (float&)yTrans;
	in >> (float&)zTrans;
	in >> (float&)xRot;
	in >> (float&)yRot;
	in >> (float&)zRot;
	in >> (float&)xScale;
	in >> (float&)yScale;
	in >> (float&)width;
	in >> (float&)height;
}