Browse Source

Working on build window

Josh Engebretson 10 years ago
parent
commit
5c2e494474

+ 12 - 0
Script/AtomicEditor/ui/modal/ModalOps.ts

@@ -10,6 +10,7 @@ import ActivationSuccessWindow = require("./license/ActivationSuccessWindow");
 import ManageLicense = require("./license/ManageLicense");
 import ProWindow = require("./license/ProWindow");
 
+import BuildWindow = require("./build/BuildWindow");
 import BuildSettingsWindow = require("./build/BuildSettingsWindow");
 
 import ResourceSelection = require("./ResourceSelection");
@@ -166,6 +167,17 @@ class ModalOps extends Atomic.ScriptObject {
 
     }
 
+    showBuild() {
+
+        if (this.show()) {
+
+            this.opWindow = new BuildWindow();
+
+        }
+
+    }
+
+
     showBuildSettings() {
 
         if (this.show()) {

+ 17 - 16
Script/AtomicEditor/ui/modal/build/BuildSettingsWindow.ts

@@ -4,11 +4,11 @@ import EditorUI = require("ui/EditorUI");
 import ModalWindow = require("../ModalWindow");
 import ProgressModal = require("../ProgressModal");
 
-import WindowsSettingsWidget = require("./WindowsSettingsWidget");
-import MacSettingsWidget = require("./MacSettingsWidget");
-import AndroidSettingsWidget = require("./AndroidSettingsWidget");
-import IOSSettingsWidget = require("./IOSSettingsWidget");
-import WebSettingsWidget = require("./WebSettingsWidget");
+import WindowsSettingsWidget = require("./platforms/WindowsSettingsWidget");
+import MacSettingsWidget = require("./platforms/MacSettingsWidget");
+import AndroidSettingsWidget = require("./platforms/AndroidSettingsWidget");
+import IOSSettingsWidget = require("./platforms/IOSSettingsWidget");
+import WebSettingsWidget = require("./platforms/WebSettingsWidget");
 
 class BuildSettingsWindow extends ModalWindow {
 
@@ -74,20 +74,21 @@ class BuildSettingsWindow extends ModalWindow {
 
             var toolSystem = ToolCore.toolSystem;
 
-            if (ev.target.id == "build") {
-
-              var buildSystem = ToolCore.buildSystem;
-              var toolSystem = ToolCore.toolSystem;
-
-              buildSystem.buildPath = "/Users/josh/Desktop/MyBuilds/";
+            if (ev.target.id == "cancel") {
+                this.hide();
+                return true;
+            }
 
-              var project = toolSystem.project;
-              var platform = toolSystem.currentPlatform;
+            if (ev.target.id == "ok") {
+                this.hide();
+                return true;
+            }
 
-              var buildBase = platform.newBuild(project);
-              buildSystem.queueBuild(buildBase);
-              buildSystem.startNextBuild();
+            if (ev.target.id == "build") {
 
+                this.hide();
+                EditorUI.getModelOps().showBuild();
+                return true;
             }
 
             if (ev.target.id == "set_current_platform") {

+ 116 - 0
Script/AtomicEditor/ui/modal/build/BuildWindow.ts

@@ -0,0 +1,116 @@
+
+import EditorEvents = require("editor/EditorEvents");
+import EditorUI = require("ui/EditorUI");
+import ModalWindow = require("../ModalWindow");
+import ProgressModal = require("../ProgressModal");
+
+import WindowsSettingsWidget = require("./platforms/WindowsSettingsWidget");
+import MacSettingsWidget = require("./platforms/MacSettingsWidget");
+import AndroidSettingsWidget = require("./platforms/AndroidSettingsWidget");
+import IOSSettingsWidget = require("./platforms/IOSSettingsWidget");
+import WebSettingsWidget = require("./platforms/WebSettingsWidget");
+
+class BuildWindow extends ModalWindow {
+
+    constructor() {
+
+        super();
+
+        this.init("Build Settings", "AtomicEditor/editor/ui/build.tb.txt");
+
+        this.buildPathField = <Atomic.UITextField>this.getWidget("build_path");
+        this.platformIndicator = <Atomic.UISkinImage>this.getWidget("current_platform_indicator");
+
+        var currentPlatform = ToolCore.toolSystem.currentPlatform;
+
+        this.buildPathField.text = "/Users/josh/Desktop/MyBuilds/";
+
+        switch (currentPlatform.name) {
+
+            case "WINDOWS": this.platformIndicator.skinBg = "LogoWindows"; break;
+            case "MAC": this.platformIndicator.skinBg = "LogoMac"; break;
+            case "ANDROID": this.platformIndicator.skinBg = "LogoAndroid"; break;
+            case "IOS": this.platformIndicator.skinBg = "LogoIOS"; break;
+            case "WEB": this.platformIndicator.skinBg = "LogoHTML5"; break;
+
+        }
+
+        this.subscribeToEvent(this, "WidgetEvent", (ev) => this.handleWidgetEvent(ev));
+    }
+
+    handleWidgetEvent(ev: Atomic.UIWidgetEvent): boolean {
+
+        if (ev.type == Atomic.UI_EVENT_TYPE_CLICK) {
+
+            if (ev.target.id == "cancel") {
+                this.hide();
+                return true;
+            }
+
+            if (ev.target.id == "choose_path") {
+
+                var utils = new Editor.FileUtils();
+                var buildPath = utils.getBuildPath("");
+                if (buildPath && buildPath.length)
+                    this.buildPathField.text = buildPath;
+
+                return true;
+            }
+
+
+        }
+
+    }
+
+    build() {
+
+        /*
+        var buildSystem = ToolCore.buildSystem;
+        var toolSystem = ToolCore.toolSystem;
+
+        buildSystem.buildPath = "/Users/josh/Desktop/MyBuilds/";
+
+        var project = toolSystem.project;
+        var platform = toolSystem.currentPlatform;
+
+        var buildBase = platform.newBuild(project);
+        buildSystem.queueBuild(buildBase);
+        buildSystem.startNextBuild();
+        */
+
+    }
+
+    buildPathField: Atomic.UITextField;
+    platformIndicator: Atomic.UISkinImage;
+}
+
+export = BuildWindow;
+
+/*
+
+buildPathField_ = delegate_->GetWidgetByIDAndType<TBTextField>(TBIDC("build_path"));
+assert(buildPathField_);
+
+String buildPath = project->GetLastBuildPath();
+buildPathField_->SetText(buildPath.CString());
+
+window_->ResizeToFitContent();
+Center();
+
+AEEditorPlatform platform = editor->GetCurrentPlatform();
+TBSkinImage* platformIndicator = window_->GetContentRoot()->GetWidgetByIDAndType<TBSkinImage>(TBIDC("current_platform_indicator"));
+assert(platformIndicator);
+
+if (platform == AE_PLATFORM_MAC)
+    platformIndicator->SetSkinBg(TBIDC("LogoMac"));
+else if (platform == AE_PLATFORM_WINDOWS)
+    platformIndicator->SetSkinBg(TBIDC("LogoWindows"));
+else if (platform == AE_PLATFORM_ANDROID)
+    platformIndicator->SetSkinBg(TBIDC("LogoAndroid"));
+else if (platform == AE_PLATFORM_HTML5)
+    platformIndicator->SetSkinBg(TBIDC("LogoHTML5"));
+else if (platform == AE_PLATFORM_IOS)
+    platformIndicator->SetSkinBg(TBIDC("LogoIOS"));
+
+
+*/

+ 0 - 0
Script/AtomicEditor/ui/modal/build/AndroidSettingsWidget.ts → Script/AtomicEditor/ui/modal/build/platforms/AndroidSettingsWidget.ts


+ 0 - 0
Script/AtomicEditor/ui/modal/build/IOSSettingsWidget.ts → Script/AtomicEditor/ui/modal/build/platforms/IOSSettingsWidget.ts


+ 0 - 0
Script/AtomicEditor/ui/modal/build/MacSettingsWidget.ts → Script/AtomicEditor/ui/modal/build/platforms/MacSettingsWidget.ts


+ 0 - 0
Script/AtomicEditor/ui/modal/build/WebSettingsWidget.ts → Script/AtomicEditor/ui/modal/build/platforms/WebSettingsWidget.ts


+ 0 - 0
Script/AtomicEditor/ui/modal/build/WindowsSettingsWidget.ts → Script/AtomicEditor/ui/modal/build/platforms/WindowsSettingsWidget.ts


+ 25 - 0
Source/AtomicEditor/Utils/FileUtils.cpp

@@ -82,6 +82,31 @@ String FileUtils::NewProjectFileDialog()
 
 }
 
+String FileUtils::GetBuildPath(const String& defaultPath)
+{
+    String buildPath;
+
+    nfdchar_t *outPath = NULL;
+
+    nfdresult_t result = NFD_ChooseDirectory( "Please choose the build folder",
+                                defaultPath.Length() ? defaultPath.CString() : NULL,
+                                &outPath);
+
+    if (outPath && result == NFD_OKAY)
+    {
+        buildPath = outPath;
+    }
+
+    if (outPath)
+        free(outPath);
+
+    GetSubsystem<Graphics>()->RaiseWindow();
+
+    return GetInternalPath(buildPath);
+
+}
+
+
 void FileUtils::RevealInFinder(const String& fullpath)
 {
     FileSystem* fs = GetSubsystem<FileSystem>();

+ 1 - 0
Source/AtomicEditor/Utils/FileUtils.h

@@ -23,6 +23,7 @@ public:
 
     String OpenProjectFileDialog();
     String NewProjectFileDialog();
+    String GetBuildPath(const String& defaultPath);
     void RevealInFinder(const String& fullpath);
 
 private: