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 };