Move dialogs layout code into separate ui file
[vlp.git] / src / edit / UnitStructureDialog.cpp
diff --git a/src/edit/UnitStructureDialog.cpp b/src/edit/UnitStructureDialog.cpp
new file mode 100644 (file)
index 0000000..a947a12
--- /dev/null
@@ -0,0 +1,47 @@
+#include "UnitStructureDialog.h"
+
+#define TYPENUM        5
+
+const char *UnitTypes[TYPENUM] = {
+       "CLASS",
+       "PROCEDURE",
+       "FUNCTION",
+       "PROCESS",
+       "COROUTINE"
+};
+
+UnitStructureDialog::UnitStructureDialog(QWidget * parent)
+       : QDialog(parent)
+{
+       setupUi(this);
+
+       for (int i = 0; i < TYPENUM; i++) {
+               QListWidgetItem *newItem = new QListWidgetItem;
+               newItem->setText(UnitTypes[i]);
+               listWidget->insertItem(i, newItem);
+       }
+       listWidget->setCurrentItem(0);
+
+       connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
+       connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
+}
+
+UnitStructureDialog::~UnitStructureDialog()
+{
+}
+
+QString UnitStructureDialog::getUnitName()
+{
+       return lineEdit->text();
+}
+
+QString UnitStructureDialog::getCode()
+{
+       QString code;
+       code.sprintf("UNIT %s : %s( <params> );\nBEGIN\n\nEND %s;",
+               getUnitName().toStdString().c_str(),
+               listWidget->currentItem()->text().toStdString().c_str(),
+               getUnitName().toStdString().c_str()
+       );
+       return code;
+}