1 #pragma once 2 3 #include "lab/dialogs/lab_dialog.h" 4 #include "lab/dialogs/class_descriptions.h" 5 #include "lab/dialogs/class_options.h" 6 #include "lab/dialogs/class_variables.h" 7 8 class WeaponClasses : public LabDialog { 9 public: WeaponClasses()10 WeaponClasses() { 11 Subdialogs.emplace_back(std::make_shared<Descriptions>()); 12 Subdialogs.emplace_back(std::make_shared<Options>()); 13 Subdialogs.emplace_back(std::make_shared<Variables>()); 14 15 dialogWindow = nullptr; 16 Class_toolbar = nullptr; 17 } 18 19 ~WeaponClasses() override = default; 20 getTitle()21 SCP_string getTitle() override { return "Weapon Classes"; } 22 safeToOpen(LabMode)23 bool safeToOpen(LabMode /*labMode*/) override { return true; } 24 close()25 void close() override { 26 if (dialogWindow != nullptr) { 27 dialogWindow->DeleteChildren(); 28 dialogWindow = nullptr; 29 } 30 31 if (Class_toolbar != nullptr) { 32 Class_toolbar->DeleteChildren(); 33 Class_toolbar = nullptr; 34 } 35 } 36 37 void open(Button* /*caller*/) override; 38 39 void update(LabMode newLabMode, int classIndex) override; 40 41 private: 42 DialogWindow* dialogWindow = nullptr; 43 DialogWindow* Class_toolbar = nullptr; 44 SCP_vector<std::shared_ptr<LabDialog>> Subdialogs; 45 };