diff options
-rw-r--r-- | lspaneeditor.cpp | 120 | ||||
-rw-r--r-- | lspaneeditor.h | 22 |
2 files changed, 140 insertions, 2 deletions
diff --git a/lspaneeditor.cpp b/lspaneeditor.cpp index eae5813..2da39f5 100644 --- a/lspaneeditor.cpp +++ b/lspaneeditor.cpp @@ -1,10 +1,9 @@ #include "lspaneeditor.h" +#include <QGroupBox> LSPaneEditor::LSPaneEditor(QWidget *parent) : QWidget(parent) { - QGridLayout *layout = new QGridLayout(this); - m_headingLabel = new QLabel(this); m_addChildButton = new QToolButton(this); @@ -20,8 +19,125 @@ LSPaneEditor::LSPaneEditor(QWidget *parent) : m_removeButton->setToolButtonStyle(Qt::ToolButtonTextOnly); m_removeButton->setText("Remove This Pane"); + m_tabs = new QTabWidget(this); + + QGridLayout *layout = new QGridLayout(this); + layout->addWidget(m_headingLabel, 0, 0, 1, 1); layout->setColumnStretch(0, 1); layout->addWidget(m_addChildButton, 0, 1, 1, 1); layout->addWidget(m_removeButton, 0, 2, 1, 1); + + layout->addWidget(m_tabs, 1, 0, 1, 3); + + + createPaneTab(); +} + +void LSPaneEditor::createPaneTab() { + m_paneTab = new QWidget(this); + m_tabs->addTab(m_paneTab, "Pane"); + + + QGridLayout *gLayout; + + // Properties Box + QGroupBox *propBox = new QGroupBox("Basic Properties", m_paneTab); + gLayout = new QGridLayout(propBox); + + m_nameEntry = new QLineEdit(propBox); + m_nameEntry->setMaxLength(16); + + m_userDataEntry = new QLineEdit(propBox); + m_userDataEntry->setMaxLength(8); + + m_alpha = new QSpinBox(propBox); + m_alpha->setRange(0, 255); + + m_influencedAlpha = new QCheckBox("Influenced Alpha", propBox); + + // Column 0 + gLayout->addWidget(new QLabel("Name:", propBox), 0, 0, 1, 1); + gLayout->addWidget(m_nameEntry, 0, 1, 1, 1); + gLayout->addWidget(new QLabel("User Data:", propBox), 1, 0, 1, 1); + gLayout->addWidget(m_userDataEntry, 1, 1, 1, 1); + + // Colunm 1 + gLayout->addWidget(new QLabel("Alpha:", propBox), 0, 2, 1, 1); + gLayout->addWidget(m_alpha, 0, 3, 1, 1); + gLayout->addWidget(m_influencedAlpha, 1, 3, 1, 1); + + + // Geometry Box + QGroupBox *geoBox = new QGroupBox("Geometry", m_paneTab); + gLayout = new QGridLayout(geoBox); + + m_width = new QDoubleSpinBox(geoBox); + m_width->setRange(0.0, 100000.0); + m_height = new QDoubleSpinBox(geoBox); + m_height->setRange(0.0, 100000.0); + + m_horzOrigin = new QComboBox(geoBox); + m_horzOrigin->addItem("Left"); + m_horzOrigin->addItem("Center"); + m_horzOrigin->addItem("Right"); + + m_vertOrigin = new QComboBox(geoBox); + m_vertOrigin->addItem("Top"); + m_vertOrigin->addItem("Center"); + m_vertOrigin->addItem("Bottom"); + + m_widescreen = new QCheckBox("Widescreen", this); + m_visible = new QCheckBox("Visible", this); + + // Row 0 + gLayout->addWidget(new QLabel("Width:", geoBox), 0, 0, 1, 1); + gLayout->addWidget(m_width, 0, 1, 1, 1); + gLayout->addWidget(new QLabel("Height:", geoBox), 0, 2, 1, 1); + gLayout->addWidget(m_height, 0, 3, 1, 1); + + // Row 1 + gLayout->addWidget(new QLabel("Horizontal Origin:", geoBox), 1, 0, 1, 1); + gLayout->addWidget(m_horzOrigin, 1, 1, 1, 1); + gLayout->addWidget(new QLabel("Vertical Origin:", geoBox), 1, 2, 1, 1); + gLayout->addWidget(m_vertOrigin, 1, 3, 1, 1); + + // Row 2 + gLayout->addWidget(m_widescreen, 2, 0, 1, 2); + gLayout->addWidget(m_visible, 2, 2, 1, 2); + + + // Positioning Box + QGroupBox *posBox = new QGroupBox("Positioning", m_paneTab); + gLayout = new QGridLayout(posBox); + + m_transX = new QDoubleSpinBox(posBox); + m_transY = new QDoubleSpinBox(posBox); + m_transZ = new QDoubleSpinBox(posBox); + m_rotX = new QDoubleSpinBox(posBox); + m_rotY = new QDoubleSpinBox(posBox); + m_rotZ = new QDoubleSpinBox(posBox); + m_scaleX = new QDoubleSpinBox(posBox); + m_scaleY = new QDoubleSpinBox(posBox); + + gLayout->addWidget(new QLabel("Translation:", posBox), 0, 0, 1, 1); + gLayout->addWidget(m_transX, 0, 1, 1, 1); + gLayout->addWidget(m_transY, 0, 2, 1, 1); + gLayout->addWidget(m_transZ, 0, 3, 1, 1); + gLayout->addWidget(new QLabel("Rotation:", posBox), 1, 0, 1, 1); + gLayout->addWidget(m_rotX, 1, 1, 1, 1); + gLayout->addWidget(m_rotY, 1, 2, 1, 1); + gLayout->addWidget(m_rotZ, 1, 3, 1, 1); + gLayout->addWidget(new QLabel("Scale:", posBox), 2, 0, 1, 1); + gLayout->addWidget(m_scaleX, 2, 1, 1, 1); + gLayout->addWidget(m_scaleY, 2, 1, 1, 1); + + + // put it all together into one + + QVBoxLayout *layout = new QVBoxLayout(m_paneTab); + layout->addWidget(propBox); + layout->addWidget(geoBox); + layout->addWidget(posBox); + layout->addStretch(1); } diff --git a/lspaneeditor.h b/lspaneeditor.h index 92233cc..4955a72 100644 --- a/lspaneeditor.h +++ b/lspaneeditor.h @@ -7,6 +7,10 @@ #include <QMenu> #include <QToolButton> #include <QLabel> +#include <QLineEdit> +#include <QDoubleSpinBox> +#include <QComboBox> +#include <QCheckBox> class LSPaneEditor : public QWidget { Q_OBJECT @@ -20,6 +24,24 @@ private: QToolButton *m_addChildButton; QMenu *m_addChildMenu; QToolButton *m_removeButton; + + + // Main pane tab + QWidget *m_paneTab; + + QLineEdit *m_nameEntry, *m_userDataEntry; + QSpinBox *m_alpha; + QCheckBox *m_influencedAlpha; + + QDoubleSpinBox *m_width, *m_height; + QComboBox *m_horzOrigin, *m_vertOrigin; + QCheckBox *m_widescreen, *m_visible; + + QDoubleSpinBox *m_transX, *m_transY, *m_transZ; + QDoubleSpinBox *m_rotX, *m_rotY, *m_rotZ; + QDoubleSpinBox *m_scaleX, *m_scaleY; + + void createPaneTab(); signals: |