Browse Source

Additional build settings

Josh Engebretson 10 years ago
parent
commit
26ecaac9e6

+ 29 - 0
Data/AtomicEditor/Resources/EditorData/AtomicEditor/editor/ui/buildsettings_html5.tb.txt

@@ -0,0 +1,29 @@
+TBLayout: axis: y, distribution: gravity, position: left
+	TBSeparator: gravity: left right, skin: AESeparator
+	TBLayout: distribution: gravity
+		TBTextField: text: "App Name:"
+		TBLayout: gravity: left right, distribution-position: right bottom
+			TBEditField: id: app_name, autofocus: 1
+				lp: min-width: 220
+	TBLayout: distribution: gravity
+		TBTextField: text: "App Identifier:"
+		TBLayout: gravity: left right, distribution-position: right bottom
+			TBEditField: id: app_identifier, autofocus: 0
+				lp: min-width: 220
+	TBLayout: distribution: gravity
+		TBTextField: text: "Company Name:"
+		TBLayout: gravity: left right, distribution-position: right bottom
+			TBEditField: id: company_name, autofocus: 0
+				lp: min-width: 220
+	TBLayout: distribution: gravity
+		TBTextField: text: "Product Name:"
+		TBLayout: gravity: left right, distribution-position: right bottom
+			TBEditField: id: product_name, autofocus: 0
+				lp: min-width: 220
+	TBSeparator: gravity: left right, skin: AESeparator
+	TBTextField: text: "Icon:"
+	TBLayout: gravity: left right, distribution-position: right bottom
+		TBSkinImage: skin: LogoAtomic64
+	TBTextField: text: "Splash Screen:"
+	TBLayout: gravity: left right, distribution-position: right bottom
+		TBSkinImage: skin: LogoAtomic64

+ 29 - 0
Data/AtomicEditor/Resources/EditorData/AtomicEditor/editor/ui/buildsettings_mac.tb.txt

@@ -0,0 +1,29 @@
+TBLayout: axis: y, distribution: gravity, position: left
+	TBSeparator: gravity: left right, skin: AESeparator
+	TBLayout: distribution: gravity
+		TBTextField: text: "App Name:"
+		TBLayout: gravity: left right, distribution-position: right bottom
+			TBEditField: id: app_name, autofocus: 1
+				lp: min-width: 220
+	TBLayout: distribution: gravity
+		TBTextField: text: "App Identifier:"
+		TBLayout: gravity: left right, distribution-position: right bottom
+			TBEditField: id: app_identifier, autofocus: 0
+				lp: min-width: 220
+	TBLayout: distribution: gravity
+		TBTextField: text: "Company Name:"
+		TBLayout: gravity: left right, distribution-position: right bottom
+			TBEditField: id: company_name, autofocus: 0
+				lp: min-width: 220
+	TBLayout: distribution: gravity
+		TBTextField: text: "Product Name:"
+		TBLayout: gravity: left right, distribution-position: right bottom
+			TBEditField: id: product_name, autofocus: 0
+				lp: min-width: 220
+	TBSeparator: gravity: left right, skin: AESeparator
+	TBTextField: text: "Icon:"
+	TBLayout: gravity: left right, distribution-position: right bottom
+		TBSkinImage: skin: LogoAtomic64
+	TBTextField: text: "Splash Screen:"
+	TBLayout: gravity: left right, distribution-position: right bottom
+		TBSkinImage: skin: LogoAtomic64

+ 4 - 4
Data/AtomicEditor/Resources/EditorData/AtomicEditor/editor/ui/buildsettings_windows.tb.txt

@@ -3,22 +3,22 @@ TBLayout: axis: y, distribution: gravity, position: left
 	TBLayout: distribution: gravity
 		TBTextField: text: "App Name:"
 		TBLayout: gravity: left right, distribution-position: right bottom
-			TBEditField: id: component_name, autofocus: 1
+			TBEditField: id: app_name, autofocus: 1
 				lp: min-width: 220
 	TBLayout: distribution: gravity
 		TBTextField: text: "App Identifier:"
 		TBLayout: gravity: left right, distribution-position: right bottom
-			TBEditField: id: component_name, autofocus: 1
+			TBEditField: id: app_identifier, autofocus: 0
 				lp: min-width: 220
 	TBLayout: distribution: gravity
 		TBTextField: text: "Company Name:"
 		TBLayout: gravity: left right, distribution-position: right bottom
-			TBEditField: id: component_name, autofocus: 1
+			TBEditField: id: company_name, autofocus: 0
 				lp: min-width: 220
 	TBLayout: distribution: gravity
 		TBTextField: text: "Product Name:"
 		TBLayout: gravity: left right, distribution-position: right bottom
-			TBEditField: id: component_name, autofocus: 1
+			TBEditField: id: product_name, autofocus: 0
 				lp: min-width: 220
 	TBSeparator: gravity: left right, skin: AESeparator
 	TBTextField: text: "Icon:"

+ 81 - 0
Source/AtomicEditor/Source/Build/BuildSettings.cpp

@@ -60,6 +60,39 @@ void BuildSettings::Load(rapidjson::Value::Member* jobject)
     }
     // END IOS ------
 
+    // Mac ------
+    rapidjson::Value::Member* jmac = jobject->value.FindMember("mac");
+    if (jmac && jmac->value.IsObject())
+    {
+        mac_.appName = GetStringMember(jmac, "app_name");
+        mac_.package = GetStringMember(jmac, "package");
+        mac_.companyName = GetStringMember(jmac, "company_name");
+        mac_.productName = GetStringMember(jmac, "product_name");
+    }
+    // END Mac ------
+
+    // Windows ------
+    rapidjson::Value::Member* jwindows = jobject->value.FindMember("windows");
+    if (jwindows && jwindows->value.IsObject())
+    {
+        windows_.appName = GetStringMember(jwindows, "app_name");
+        windows_.package = GetStringMember(jwindows, "package");
+        windows_.companyName = GetStringMember(jwindows, "company_name");
+        windows_.productName = GetStringMember(jwindows, "product_name");
+    }
+    // END Windows ------
+
+    // WebGL ------
+    rapidjson::Value::Member* jwebgl = jobject->value.FindMember("webgl");
+    if (jwebgl && jwebgl->value.IsObject())
+    {
+        webgl_.appName = GetStringMember(jwebgl, "app_name");
+        webgl_.package = GetStringMember(jwebgl, "package");
+        webgl_.companyName = GetStringMember(jwebgl, "company_name");
+        webgl_.productName = GetStringMember(jwebgl, "product_name");
+    }
+    // END WebGL ------
+
 }
 
 void BuildSettings::Save(rapidjson::PrettyWriter<rapidjson::FileStream>& writer)
@@ -112,6 +145,54 @@ void BuildSettings::Save(rapidjson::PrettyWriter<rapidjson::FileStream>& writer)
     writer.EndObject();
     // END IOS ------
 
+    // Mac ------
+    writer.String("mac");
+    writer.StartObject();
+
+    writer.String("app_name");
+    writer.String(mac_.appName.CString());
+    writer.String("package");
+    writer.String(mac_.package.CString());
+    writer.String("company_name");
+    writer.String(mac_.companyName.CString());
+    writer.String("product_name");
+    writer.String(mac_.productName.CString());
+
+    writer.EndObject();
+    // END Mac ------
+
+    // Windows ------
+    writer.String("windows");
+    writer.StartObject();
+
+    writer.String("app_name");
+    writer.String(windows_.appName.CString());
+    writer.String("package");
+    writer.String(windows_.package.CString());
+    writer.String("company_name");
+    writer.String(windows_.companyName.CString());
+    writer.String("product_name");
+    writer.String(windows_.productName.CString());
+
+    writer.EndObject();
+    // END Windows ------
+
+    // WebGL ------
+    writer.String("webgl");
+    writer.StartObject();
+
+    writer.String("app_name");
+    writer.String(webgl_.appName.CString());
+    writer.String("package");
+    writer.String(webgl_.package.CString());
+    writer.String("company_name");
+    writer.String(webgl_.companyName.CString());
+    writer.String("product_name");
+    writer.String(webgl_.productName.CString());
+
+    writer.EndObject();
+    // END WebGL ------
+
 
     writer.EndObject();
 

+ 36 - 0
Source/AtomicEditor/Source/Build/BuildSettings.h

@@ -37,6 +37,30 @@ struct IOSBuildSettings
     String appidPrefix;
 };
 
+struct MacBuildSettings
+{
+    String appName;
+    String package;
+    String companyName;
+    String productName;
+};
+
+struct WindowsBuildSettings
+{
+    String appName;
+    String package;
+    String companyName;
+    String productName;
+};
+
+struct WebGLSettings
+{
+    String appName;
+    String package;
+    String companyName;
+    String productName;
+};
+
 
 class BuildSettings : public Object
 {
@@ -54,6 +78,15 @@ public:
     const IOSBuildSettings& GetIOSSettings() { return ios_; }
     void SetIOSSettings(const IOSBuildSettings& settings) { ios_ = settings; }
 
+    const MacBuildSettings& GetMacSettings() { return mac_; }
+    void SetMacSettings(const MacBuildSettings& settings) { mac_ = settings; }
+
+    const WindowsBuildSettings& GetWindowsSettings() { return windows_; }
+    void SetWindowsSettings(const WindowsBuildSettings& settings) { windows_ = settings; }
+
+    const WebGLSettings& GetWebGLSettings() { return webgl_; }
+    void SetWebGLSettings(const WebGLSettings& settings) { webgl_ = settings; }
+
     void Load(rapidjson::Value::Member* jobject);
     void Save(rapidjson::PrettyWriter<rapidjson::FileStream>& writer);
 
@@ -63,6 +96,9 @@ private:
 
     AndroidBuildSettings android_;
     IOSBuildSettings ios_;
+    MacBuildSettings mac_;
+    WindowsBuildSettings windows_;
+    WebGLSettings webgl_;
 
 };
 

+ 1 - 2
Source/AtomicEditor/Source/Build/BuildWeb.cpp

@@ -92,8 +92,7 @@ void BuildWeb::Build(const String& buildPath)
     BuildSystem* buildSystem = GetSubsystem<BuildSystem>();
     buildSystem->BuildComplete();
 
-    fileSystem->SystemCommandAsync("/Applications/Firefox.app/Contents/MacOS/firefox");
-
+    //fileSystem->SystemCommandAsync("/Applications/Firefox.app/Contents/MacOS/firefox");
 
 }
 

+ 19 - 2
Source/AtomicEditor/Source/UI/Modal/UIBuildSettings.cpp

@@ -32,6 +32,7 @@ UIBuildSettings::UIBuildSettings(Context* context):
     androidSettings_(new UIBuildSettingsAndroid(context)),
     webSettings_(new UIBuildSettingsWeb(context)),
     iosSettings_(new UIBuildSettingsIOS(context)),
+    macSettings_(new UIBuildSettingsMac(context)),
     platformIndicator_(0)
 {
     TBUI* tbui = GetSubsystem<TBUI>();
@@ -118,6 +119,8 @@ void UIBuildSettings::RemoveSettingsWidgets()
     if (iosSettings_->GetWidgetDelegate()->GetParent() == settingscontainer)
         settingscontainer->RemoveChild(iosSettings_->GetWidgetDelegate());
 
+    if (macSettings_->GetWidgetDelegate()->GetParent() == settingscontainer)
+        settingscontainer->RemoveChild(macSettings_->GetWidgetDelegate());
 
 }
 
@@ -128,6 +131,7 @@ void UIBuildSettings::SelectWindowsSettings()
     TBLayout* settingscontainer = delegate_->GetWidgetByIDAndType<TBLayout>(TBIDC("settingscontainer"));
     assert(settingscontainer);
     settingscontainer->AddChild(windowsSettings_->GetWidgetDelegate());
+    windowsSettings_->Refresh();
     platformSelect_->SetValue(0);
 
 }
@@ -139,6 +143,7 @@ void UIBuildSettings::SelectWebSettings()
     TBLayout* settingscontainer = delegate_->GetWidgetByIDAndType<TBLayout>(TBIDC("settingscontainer"));
     assert(settingscontainer);
     settingscontainer->AddChild(webSettings_->GetWidgetDelegate());
+    webSettings_->Refresh();
     platformSelect_->SetValue(2);
 
 }
@@ -175,10 +180,13 @@ void UIBuildSettings::SelectMacSettings()
 {
     RemoveSettingsWidgets();
 
+    RemoveSettingsWidgets();
+
     TBLayout* settingscontainer = delegate_->GetWidgetByIDAndType<TBLayout>(TBIDC("settingscontainer"));
     assert(settingscontainer);
-    settingscontainer->AddChild(windowsSettings_->GetWidgetDelegate());
-    androidSettings_->Refresh();
+    settingscontainer->AddChild(macSettings_->GetWidgetDelegate());
+    macSettings_->Refresh();
+
     platformSelect_->SetValue(1);
 
 }
@@ -234,6 +242,9 @@ void UIBuildSettings::StoreSettings()
 {
     androidSettings_->StoreSettings();
     iosSettings_->StoreSettings();
+    macSettings_->StoreSettings();
+    windowsSettings_->StoreSettings();
+    webSettings_->StoreSettings();
 
     Editor* editor = GetSubsystem<Editor>();
     editor->SaveProject();
@@ -266,6 +277,12 @@ bool UIBuildSettings::OnEvent(const TBWidgetEvent &ev)
             SelectIOSSettings();
             return true;
         }
+        else if (ev.ref_id == TBIDC("MacBuildSettings"))
+        {
+            SelectMacSettings();
+            return true;
+        }
+
         else if (ev.target->GetID() == TBIDC("set_current_platform"))
         {
 // BEGIN LICENSE MANAGEMENT

+ 2 - 0
Source/AtomicEditor/Source/UI/Modal/UIBuildSettings.h

@@ -15,6 +15,7 @@
 #include "UIBuildSettingsAndroid.h"
 #include "UIBuildSettingsWeb.h"
 #include "UIBuildSettingsIOS.h"
+#include "UIBuildSettingsMac.h"
 
 namespace AtomicEditor
 {
@@ -56,6 +57,7 @@ private:
     SharedPtr<UIBuildSettingsAndroid> androidSettings_;
     SharedPtr<UIBuildSettingsWeb> webSettings_;
     SharedPtr<UIBuildSettingsIOS> iosSettings_;
+    SharedPtr<UIBuildSettingsMac> macSettings_;
 
 };
 

+ 96 - 0
Source/AtomicEditor/Source/UI/Modal/UIBuildSettingsMac.cpp

@@ -0,0 +1,96 @@
+// Copyright (c) 2014-2015, THUNDERBEAST GAMES LLC All rights reserved
+// Please see LICENSE.md in repository root for license information
+// https://github.com/AtomicGameEngine/AtomicGameEngine
+
+#include "AtomicEditor.h"
+
+#include <TurboBadger/tb_layout.h>
+#include <TurboBadger/tb_editfield.h>
+
+#include <Atomic/Core/Context.h>
+#include <Atomic/IO/Log.h>
+#include <Atomic/UI/TBUI.h>
+
+#include "Build/BuildSystem.h"
+#include "UIBuildSettingsMac.h"
+
+namespace AtomicEditor
+{
+
+UIBuildSettingsMac::UIBuildSettingsMac(Context* context) :
+    AEWidget(context)
+{
+    TBUI* tbui = GetSubsystem<TBUI>();
+    tbui->LoadResourceFile(delegate_, "AtomicEditor/editor/ui/buildsettings_mac.tb.txt");
+
+    appNameEdit_ = delegate_->GetWidgetByIDAndType<TBEditField>(TBIDC("app_name"));
+    assert(appNameEdit_);
+
+    appPackageEdit_ = delegate_->GetWidgetByIDAndType<TBEditField>(TBIDC("app_identifier"));
+    assert(appPackageEdit_);
+
+    productNameEdit_ = delegate_->GetWidgetByIDAndType<TBEditField>(TBIDC("product_name"));
+    assert(productNameEdit_);
+
+    companyNameEdit_ = delegate_->GetWidgetByIDAndType<TBEditField>(TBIDC("company_name"));
+    assert(companyNameEdit_);
+
+}
+
+UIBuildSettingsMac::~UIBuildSettingsMac()
+{
+
+}
+
+void UIBuildSettingsMac::Refresh()
+{
+    BuildSystem* buildSystem = GetSubsystem<BuildSystem>();
+
+    const MacBuildSettings& settings = buildSystem->GetBuildSettings()->GetMacSettings();
+
+    appNameEdit_->SetText(settings.appName.CString());
+    appPackageEdit_->SetText(settings.package.CString());
+    productNameEdit_->SetText(settings.productName.CString());
+    companyNameEdit_->SetText(settings.companyName.CString());
+
+}
+
+void UIBuildSettingsMac::StoreSettings()
+{
+    BuildSystem* buildSystem = GetSubsystem<BuildSystem>();
+
+    MacBuildSettings settings;
+
+    TBStr text;
+    appNameEdit_->GetText(text);
+    settings.appName = text.CStr();
+    text.Clear();
+
+    appPackageEdit_->GetText(text);
+    settings.package = text.CStr();
+    text.Clear();
+
+    productNameEdit_->GetText(text);
+    settings.productName = text.CStr();
+    text.Clear();
+
+    companyNameEdit_->GetText(text);
+    settings.companyName = text.CStr();
+    text.Clear();
+
+
+    buildSystem->GetBuildSettings()->SetMacSettings(settings);
+
+}
+
+
+
+bool UIBuildSettingsMac::OnEvent(const TBWidgetEvent &ev)
+{
+    return false;
+}
+
+
+
+}
+

+ 49 - 0
Source/AtomicEditor/Source/UI/Modal/UIBuildSettingsMac.h

@@ -0,0 +1,49 @@
+// Copyright (c) 2014-2015, THUNDERBEAST GAMES LLC All rights reserved
+// Please see LICENSE.md in repository root for license information
+// https://github.com/AtomicGameEngine/AtomicGameEngine
+
+#pragma once
+
+#include "UI/AEWidget.h"
+
+using namespace Atomic;
+using namespace tb;
+
+namespace tb
+{
+class TBLayout;
+class TBEditField;
+class TBTextField;
+class TBSelectDropdown;
+}
+
+namespace AtomicEditor
+{
+
+class UIBuildSettingsMac: public AEWidget
+{
+    OBJECT(UIBuildSettingsMac);
+
+public:
+
+    UIBuildSettingsMac(Context* context);
+    virtual ~UIBuildSettingsMac();
+
+    bool OnEvent(const TBWidgetEvent &ev);
+
+    void Refresh();
+    void StoreSettings();
+
+    //void HandleMessage(StringHash eventType, VariantMap& eventData);
+
+private:
+
+    TBEditField* appNameEdit_;
+    TBEditField* appPackageEdit_;
+    TBEditField* productNameEdit_;
+    TBEditField* companyNameEdit_;
+
+
+};
+
+}

+ 60 - 1
Source/AtomicEditor/Source/UI/Modal/UIBuildSettingsWeb.cpp

@@ -3,11 +3,15 @@
 // https://github.com/AtomicGameEngine/AtomicGameEngine
 
 #include "AtomicEditor.h"
+
 #include <TurboBadger/tb_layout.h>
+#include <TurboBadger/tb_editfield.h>
+
 #include <Atomic/Core/Context.h>
 #include <Atomic/IO/Log.h>
 #include <Atomic/UI/TBUI.h>
 
+#include "Build/BuildSystem.h"
 #include "UIBuildSettingsWeb.h"
 
 namespace AtomicEditor
@@ -17,7 +21,20 @@ UIBuildSettingsWeb::UIBuildSettingsWeb(Context* context) :
     AEWidget(context)
 {
     TBUI* tbui = GetSubsystem<TBUI>();
-    tbui->LoadResourceFile(delegate_, "AtomicEditor/editor/ui/buildsettings_windows.tb.txt");
+    tbui->LoadResourceFile(delegate_, "AtomicEditor/editor/ui/buildsettings_html5.tb.txt");
+
+    appNameEdit_ = delegate_->GetWidgetByIDAndType<TBEditField>(TBIDC("app_name"));
+    assert(appNameEdit_);
+
+    appPackageEdit_ = delegate_->GetWidgetByIDAndType<TBEditField>(TBIDC("app_identifier"));
+    assert(appPackageEdit_);
+
+    productNameEdit_ = delegate_->GetWidgetByIDAndType<TBEditField>(TBIDC("product_name"));
+    assert(productNameEdit_);
+
+    companyNameEdit_ = delegate_->GetWidgetByIDAndType<TBEditField>(TBIDC("company_name"));
+    assert(companyNameEdit_);
+
 }
 
 UIBuildSettingsWeb::~UIBuildSettingsWeb()
@@ -25,6 +42,48 @@ UIBuildSettingsWeb::~UIBuildSettingsWeb()
 
 }
 
+void UIBuildSettingsWeb::Refresh()
+{
+    BuildSystem* buildSystem = GetSubsystem<BuildSystem>();
+
+    const WebGLSettings& settings = buildSystem->GetBuildSettings()->GetWebGLSettings();
+
+    appNameEdit_->SetText(settings.appName.CString());
+    appPackageEdit_->SetText(settings.package.CString());
+    productNameEdit_->SetText(settings.productName.CString());
+    companyNameEdit_->SetText(settings.companyName.CString());
+
+}
+
+void UIBuildSettingsWeb::StoreSettings()
+{
+    BuildSystem* buildSystem = GetSubsystem<BuildSystem>();
+
+    WebGLSettings settings;
+
+    TBStr text;
+    appNameEdit_->GetText(text);
+    settings.appName = text.CStr();
+    text.Clear();
+
+    appPackageEdit_->GetText(text);
+    settings.package = text.CStr();
+    text.Clear();
+
+    productNameEdit_->GetText(text);
+    settings.productName = text.CStr();
+    text.Clear();
+
+    companyNameEdit_->GetText(text);
+    settings.companyName = text.CStr();
+    text.Clear();
+
+
+    buildSystem->GetBuildSettings()->SetWebGLSettings(settings);
+
+}
+
+
 bool UIBuildSettingsWeb::OnEvent(const TBWidgetEvent &ev)
 {
     return false;

+ 12 - 0
Source/AtomicEditor/Source/UI/Modal/UIBuildSettingsWeb.h

@@ -12,6 +12,9 @@ using namespace tb;
 namespace tb
 {
 class TBLayout;
+class TBEditField;
+class TBTextField;
+class TBSelectDropdown;
 }
 
 namespace AtomicEditor
@@ -28,10 +31,19 @@ public:
 
     bool OnEvent(const TBWidgetEvent &ev);
 
+    void Refresh();
+    void StoreSettings();
+
     //void HandleMessage(StringHash eventType, VariantMap& eventData);
 
 private:
 
+    TBEditField* appNameEdit_;
+    TBEditField* appPackageEdit_;
+    TBEditField* productNameEdit_;
+    TBEditField* companyNameEdit_;
+
+
 };
 
 }

+ 59 - 0
Source/AtomicEditor/Source/UI/Modal/UIBuildSettingsWindows.cpp

@@ -3,11 +3,15 @@
 // https://github.com/AtomicGameEngine/AtomicGameEngine
 
 #include "AtomicEditor.h"
+
 #include <TurboBadger/tb_layout.h>
+#include <TurboBadger/tb_editfield.h>
+
 #include <Atomic/Core/Context.h>
 #include <Atomic/IO/Log.h>
 #include <Atomic/UI/TBUI.h>
 
+#include "Build/BuildSystem.h"
 #include "UIBuildSettingsWindows.h"
 
 namespace AtomicEditor
@@ -18,6 +22,19 @@ UIBuildSettingsWindows::UIBuildSettingsWindows(Context* context) :
 {
     TBUI* tbui = GetSubsystem<TBUI>();
     tbui->LoadResourceFile(delegate_, "AtomicEditor/editor/ui/buildsettings_windows.tb.txt");
+
+    appNameEdit_ = delegate_->GetWidgetByIDAndType<TBEditField>(TBIDC("app_name"));
+    assert(appNameEdit_);
+
+    appPackageEdit_ = delegate_->GetWidgetByIDAndType<TBEditField>(TBIDC("app_identifier"));
+    assert(appPackageEdit_);
+
+    productNameEdit_ = delegate_->GetWidgetByIDAndType<TBEditField>(TBIDC("product_name"));
+    assert(productNameEdit_);
+
+    companyNameEdit_ = delegate_->GetWidgetByIDAndType<TBEditField>(TBIDC("company_name"));
+    assert(companyNameEdit_);
+
 }
 
 UIBuildSettingsWindows::~UIBuildSettingsWindows()
@@ -25,6 +42,48 @@ UIBuildSettingsWindows::~UIBuildSettingsWindows()
 
 }
 
+void UIBuildSettingsWindows::Refresh()
+{
+    BuildSystem* buildSystem = GetSubsystem<BuildSystem>();
+
+    const WindowsBuildSettings& settings = buildSystem->GetBuildSettings()->GetWindowsSettings();
+
+    appNameEdit_->SetText(settings.appName.CString());
+    appPackageEdit_->SetText(settings.package.CString());
+    productNameEdit_->SetText(settings.productName.CString());
+    companyNameEdit_->SetText(settings.companyName.CString());
+
+}
+
+void UIBuildSettingsWindows::StoreSettings()
+{
+    BuildSystem* buildSystem = GetSubsystem<BuildSystem>();
+
+    WindowsBuildSettings settings;
+
+    TBStr text;
+    appNameEdit_->GetText(text);
+    settings.appName = text.CStr();
+    text.Clear();
+
+    appPackageEdit_->GetText(text);
+    settings.package = text.CStr();
+    text.Clear();
+
+    productNameEdit_->GetText(text);
+    settings.productName = text.CStr();
+    text.Clear();
+
+    companyNameEdit_->GetText(text);
+    settings.companyName = text.CStr();
+    text.Clear();
+
+
+    buildSystem->GetBuildSettings()->SetWindowsSettings(settings);
+
+}
+
+
 bool UIBuildSettingsWindows::OnEvent(const TBWidgetEvent &ev)
 {
     return false;

+ 8 - 0
Source/AtomicEditor/Source/UI/Modal/UIBuildSettingsWindows.h

@@ -28,10 +28,18 @@ public:
 
     bool OnEvent(const TBWidgetEvent &ev);
 
+    void Refresh();
+    void StoreSettings();
+
     //void HandleMessage(StringHash eventType, VariantMap& eventData);
 
 private:
 
+    TBEditField* appNameEdit_;
+    TBEditField* appPackageEdit_;
+    TBEditField* productNameEdit_;
+    TBEditField* companyNameEdit_;
+
 };
 
 }