summaryrefslogtreecommitdiff
path: root/lyt/pane.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lyt/pane.cpp')
-rw-r--r--lyt/pane.cpp87
1 files changed, 87 insertions, 0 deletions
diff --git a/lyt/pane.cpp b/lyt/pane.cpp
new file mode 100644
index 0000000..9cf3617
--- /dev/null
+++ b/lyt/pane.cpp
@@ -0,0 +1,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;
+}