Daniele Bartolini vor 1 Jahr
Ursprung
Commit
de9e580e3b
2 geänderte Dateien mit 73 neuen und 13 gelöschten Zeilen
  1. 11 11
      tools/level_editor/deploy_dialog.vala
  2. 62 2
      tools/level_editor/level_editor.vala

+ 11 - 11
tools/level_editor/deploy_dialog.vala

@@ -11,15 +11,15 @@ namespace Crown
 public ComboBoxMap make_deploy_config_combo()
 {
 	return new ComboBoxMap(0
-		, new string?[] { "Release", "Development" }
+		, new string?[] { TargetConfig.RELEASE.to_label(), TargetConfig.DEVELOPMENT.to_label() }
 		, new string?[] { ((int)TargetConfig.RELEASE).to_string(), ((int)TargetConfig.DEVELOPMENT).to_string() }
 		);
 }
 
-public Gtk.Button make_deploy_button(string platform_name)
+public Gtk.Button make_deploy_button(TargetPlatform platform)
 {
 	var btn = new Gtk.Button();
-	btn.label = "Package Project for %s".printf(platform_name);
+	btn.label = "Package Project for %s".printf(platform.to_label());
 	btn.margin_start = 12;
 	btn.margin_end = 12;
 	btn.margin_top = 12;
@@ -90,7 +90,7 @@ public class DeployDialog : Gtk.Dialog
 		_editor = editor;
 
 		// Android page.
-		_android_deploy_button = make_deploy_button("Android");
+		_android_deploy_button = make_deploy_button(TargetPlatform.ANDROID);
 		_android_deploy_button.clicked.connect(() => {
 				// Validate input fields.
 				string? output_path = _android_output_path.get_filename();
@@ -260,7 +260,7 @@ public class DeployDialog : Gtk.Dialog
 		_android_box.pack_start(_android_set, false, true, 0);
 
 		// HTML5 page.
-		_html5_deploy_button = make_deploy_button("HTML5");
+		_html5_deploy_button = make_deploy_button(TargetPlatform.HTML5);
 		_html5_deploy_button.clicked.connect(() => {
 				// Validate input fields.
 				string? output_path = _html5_output_path.get_filename();
@@ -314,7 +314,7 @@ public class DeployDialog : Gtk.Dialog
 		_html5_set.add_property_grid(cv, "Application");
 
 		// Linux page.
-		_linux_deploy_button = make_deploy_button("Linux");
+		_linux_deploy_button = make_deploy_button(TargetPlatform.LINUX);
 		_linux_deploy_button.clicked.connect(() => {
 				// Validate input fields.
 				string? output_path = _linux_output_path.get_filename();
@@ -368,7 +368,7 @@ public class DeployDialog : Gtk.Dialog
 		_linux_set.add_property_grid(cv, "Application");
 
 		// Windows page.
-		_windows_deploy_button = make_deploy_button("Windows");
+		_windows_deploy_button = make_deploy_button(TargetPlatform.WINDOWS);
 		_windows_deploy_button.clicked.connect(() => {
 				// Validate input fields.
 				string? output_path = _windows_output_path.get_filename();
@@ -423,12 +423,12 @@ public class DeployDialog : Gtk.Dialog
 
 		// Add pages.
 		_notebook = new Gtk.Notebook();
-		_notebook.append_page(_android_box, new Gtk.Label("Android"));
-		_notebook.append_page(_html5_box, new Gtk.Label("HTML5"));
+		_notebook.append_page(_android_box, new Gtk.Label(TargetPlatform.ANDROID.to_label()));
+		_notebook.append_page(_html5_box, new Gtk.Label(TargetPlatform.HTML5.to_label()));
 #if CROWN_PLATFORM_LINUX
-		_notebook.append_page(_linux_box, new Gtk.Label("Linux"));
+		_notebook.append_page(_linux_box, new Gtk.Label(TargetPlatform.LINUX.to_label()));
 #elif CROWN_PLATFORM_WINDOWS
-		_notebook.append_page(_windows_box, new Gtk.Label("Windows"));
+		_notebook.append_page(_windows_box, new Gtk.Label(TargetPlatform.WINDOWS.to_label()));
 #endif
 		_notebook.vexpand = true;
 		_notebook.show_border = false;

+ 62 - 2
tools/level_editor/level_editor.vala

@@ -60,7 +60,33 @@ public enum CameraViewType
 public enum TargetConfig
 {
 	RELEASE,
-	DEVELOPMENT
+	DEVELOPMENT,
+
+	COUNT;
+
+	public string to_key()
+	{
+		switch (this) {
+		case RELEASE:
+			return "release";
+		case DEVELOPMENT:
+			return "development";
+		default:
+			return "unknown";
+		}
+	}
+
+	public string to_label()
+	{
+		switch (this) {
+		case RELEASE:
+			return "Release";
+		case DEVELOPMENT:
+			return "Development";
+		default:
+			return "unknown";
+		}
+	}
 }
 
 public enum TargetPlatform
@@ -68,7 +94,41 @@ public enum TargetPlatform
 	ANDROID,
 	HTML5,
 	LINUX,
-	WINDOWS
+	WINDOWS,
+
+	COUNT;
+
+	public string to_key()
+	{
+		switch (this) {
+		case ANDROID:
+			return "android";
+		case HTML5:
+			return "html5";
+		case LINUX:
+			return "linux";
+		case WINDOWS:
+			return "windows";
+		default:
+			return "unknown";
+		}
+	}
+
+	public string to_label()
+	{
+		switch (this) {
+		case ANDROID:
+			return "Android";
+		case HTML5:
+			return "HTML5";
+		case LINUX:
+			return "Linux";
+		case WINDOWS:
+			return "Windows";
+		default:
+			return "Unknown";
+		}
+	}
 }
 
 public enum TargetArch