diff options
Diffstat (limited to 'lyt/layout.h')
-rw-r--r-- | lyt/layout.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/lyt/layout.h b/lyt/layout.h new file mode 100644 index 0000000..2af32a1 --- /dev/null +++ b/lyt/layout.h @@ -0,0 +1,67 @@ +#ifndef LYTLAYOUT_H +#define LYTLAYOUT_H + +#include "packagebase.h" +#include "materials/material.h" +#include "group.h" +#include "pane.h" +#include "textbox.h" +#include "picture.h" +#include "window.h" +#include "bounding.h" +#include "binaryfile.h" +#include "binaryfilesection.h" + +#include <QtCore/QStringList> +#include <QtCore/QMap> +#include <QtCore/QDataStream> + +class LYTTexMap; // forward declaration so it can be a friend class + +class LYTLayout { +public: + LYTLayout(LYTPackageBase &package); + LYTLayout(LYTPackageBase &package, QString name); + ~LYTLayout(); + + void clear(); + LYTPackageBase &package() const; + + float width; + float height; + + QMap<QString, LYTMaterial *> materials; + + LYTPane *rootPane; + QList<LYTGroup *> groups; + + + +protected: + LYTPackageBase &m_package; + + // these are private because they are not intended for public use + // they're only here so that LYTPane's subclasses and a few others can read + // this info when reading/writing -- hence why they are friend classes + QStringList m_fontRefs; + QStringList m_textureRefs; + + bool loadLayoutFromPackage(QString name); + + void readLyt1(LYTBinaryFileSection §ion); + void readTxl1(LYTBinaryFileSection §ion); + void readFnl1(LYTBinaryFileSection §ion); + void readMat1(LYTBinaryFileSection §ion); + + LYTPane *createPaneObj(LYTBinaryFileSection §ion); + + friend class LYTPane; + friend class LYTTextBox; + friend class LYTPicture; + friend class LYTWindow; + friend class LYTBounding; + friend class LYTTexMap; + +}; + +#endif // LYTLAYOUT_H |