diff --git a/Tutorial/GacUI_Controls/CalculatorAndStateMachine/CalculatorAndStateMachine.vcxproj b/Tutorial/GacUI_Controls/CalculatorAndStateMachine/CalculatorAndStateMachine.vcxproj new file mode 100644 index 00000000..2a390649 --- /dev/null +++ b/Tutorial/GacUI_Controls/CalculatorAndStateMachine/CalculatorAndStateMachine.vcxproj @@ -0,0 +1,171 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + {7A1792BE-F866-44EE-83BF-E686BDA54B37} + Win32Proj + CalculatorAndStateMachine + 8.1 + + + + Application + true + v140 + Unicode + + + Application + false + v140 + true + Unicode + + + Application + true + v140 + Unicode + + + Application + false + v140 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + $(ProjectDir)..\..\..\Import;$(IncludePath) + + + true + $(ProjectDir)..\..\..\Import;$(IncludePath) + + + false + $(ProjectDir)..\..\..\Import;$(IncludePath) + + + false + $(ProjectDir)..\..\..\Import;$(IncludePath) + + + + + + Level3 + Disabled + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);VCZH_DEBUG_NO_REFLECTION + true + + + Windows + true + + + + + + + Level3 + Disabled + _DEBUG;_WINDOWS;%(PreprocessorDefinitions);VCZH_DEBUG_NO_REFLECTION + true + + + Windows + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);VCZH_DEBUG_NO_REFLECTION + true + + + Windows + true + true + true + + + + + Level3 + + + MaxSpeed + true + true + NDEBUG;_WINDOWS;%(PreprocessorDefinitions);VCZH_DEBUG_NO_REFLECTION + true + + + Windows + true + true + true + + + + + + + + + {96c559ca-9718-4bec-a053-28a0ab6a8ca2} + + + + + + + + + + + + + \ No newline at end of file diff --git a/Tutorial/GacUI_Controls/CalculatorAndStateMachine/CalculatorAndStateMachine.vcxproj.filters b/Tutorial/GacUI_Controls/CalculatorAndStateMachine/CalculatorAndStateMachine.vcxproj.filters new file mode 100644 index 00000000..9d88fe82 --- /dev/null +++ b/Tutorial/GacUI_Controls/CalculatorAndStateMachine/CalculatorAndStateMachine.vcxproj.filters @@ -0,0 +1,41 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {0c926036-4529-444a-aeb1-63261a271d51} + + + + + Source Files + + + UI + + + + + Resource Files + + + + + UI + + + UI + + + \ No newline at end of file diff --git a/Tutorial/GacUI_Controls/CalculatorAndStateMachine/Main.cpp b/Tutorial/GacUI_Controls/CalculatorAndStateMachine/Main.cpp new file mode 100644 index 00000000..23d2cfa4 --- /dev/null +++ b/Tutorial/GacUI_Controls/CalculatorAndStateMachine/Main.cpp @@ -0,0 +1,17 @@ +#define GAC_HEADER_USE_NAMESPACE +#include "UI/Source/Demo.h" + +using namespace vl::collections; +using namespace vl::stream; + +void GuiMain() +{ + { + FileStream fileStream(L"../UIRes/CalculatorAndStateMachine.bin", FileStream::ReadOnly); + auto resource = GuiResource::LoadPrecompiledBinary(fileStream); + GetResourceManager()->SetResource(L"Resource", resource); + } + demo::MainWindow window(new demo::Calculator); + window.MoveToScreenCenter(); + GetApplication()->Run(&window); +} \ No newline at end of file diff --git a/Tutorial/GacUI_Controls/CalculatorAndStateMachine/UI/Resource.xml b/Tutorial/GacUI_Controls/CalculatorAndStateMachine/UI/Resource.xml new file mode 100644 index 00000000..788929d6 --- /dev/null +++ b/Tutorial/GacUI_Controls/CalculatorAndStateMachine/UI/Resource.xml @@ -0,0 +1,147 @@ + + + + + Source + ..\..\UIRes\CalculatorAndStateMachine.bin + GacUI.h + GacUIReflection.h + Demo + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Tutorial/GacUI_Controls/CalculatorAndStateMachine/UI/Source/Demo.h b/Tutorial/GacUI_Controls/CalculatorAndStateMachine/UI/Source/Demo.h new file mode 100644 index 00000000..7566a5bb --- /dev/null +++ b/Tutorial/GacUI_Controls/CalculatorAndStateMachine/UI/Source/Demo.h @@ -0,0 +1,15 @@ +/*********************************************************************** +!!!!!! DO NOT MODIFY !!!!!! + +GacGen.exe Resource.xml + +This file is generated by Workflow compiler +https://github.com/vczh-libraries +***********************************************************************/ + +#ifndef VCZH_WORKFLOW_COMPILER_GENERATED_DEMO +#define VCZH_WORKFLOW_COMPILER_GENERATED_DEMO + +#include "DemoPartialClasses.h" + +#endif diff --git a/Tutorial/GacUI_Controls/CalculatorAndStateMachine/UI/Source/DemoPartialClasses.cpp b/Tutorial/GacUI_Controls/CalculatorAndStateMachine/UI/Source/DemoPartialClasses.cpp new file mode 100644 index 00000000..1c0c7ea9 --- /dev/null +++ b/Tutorial/GacUI_Controls/CalculatorAndStateMachine/UI/Source/DemoPartialClasses.cpp @@ -0,0 +1,165 @@ +/*********************************************************************** +!!!!!! DO NOT MODIFY !!!!!! + +GacGen.exe Resource.xml + +This file is generated by Workflow compiler +https://github.com/vczh-libraries +***********************************************************************/ + +#include "Demo.h" +/* CodePack:BeginIgnore() */ +#ifndef VCZH_DEBUG_NO_REFLECTION +/* CodePack:ConditionOff(VCZH_DEBUG_NO_REFLECTION, DemoReflection.h) */ +#include "DemoReflection.h" +#endif +/* CodePack:EndIgnore() */ + +#if defined( _MSC_VER) +#pragma warning(push) +#pragma warning(disable:4250) +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wparentheses-equality" +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wparentheses-equality" +#endif + +#define GLOBAL_SYMBOL ::vl_workflow_global::Demo:: +#define GLOBAL_NAME ::vl_workflow_global::Demo::Instance(). +#define GLOBAL_OBJ &::vl_workflow_global::Demo::Instance() +#define USERIMPL(...) + +/*********************************************************************** +Global Variables +***********************************************************************/ + +BEGIN_GLOBAL_STORAGE_CLASS(vl_workflow_global_Demo) + vl_workflow_global::Demo instance; + INITIALIZE_GLOBAL_STORAGE_CLASS + FINALIZE_GLOBAL_STORAGE_CLASS +END_GLOBAL_STORAGE_CLASS(vl_workflow_global_Demo) + +namespace vl_workflow_global +{ +/*********************************************************************** +Global Functions +***********************************************************************/ + + Demo& Demo::Instance() + { + return Getvl_workflow_global_Demo().instance; + } +} + +/*********************************************************************** +Class (::demo::MainWindowConstructor) +***********************************************************************/ + +namespace demo +{ + void MainWindowConstructor::__vwsn_initialize_instance_(::demo::MainWindow* __vwsn_this_) + { + (this->__vwsn_precompile_0 = __vwsn_this_); + (this->CalculatorAndStateMachine = ::vl::__vwsn::This(__vwsn_this_)->GetCalculatorAndStateMachine()); + (this->__vwsn_precompile_1 = ::vl::__vwsn::This(this->__vwsn_precompile_0)->GetBoundsComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(480); __vwsn_temp__.y = static_cast<::vl::vint>(320); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetClientSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(480); __vwsn_temp__.y = static_cast<::vl::vint>(320); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetText(::vl::WString(L"ColorPicker", false)); + } + } + + MainWindowConstructor::MainWindowConstructor() + { + } + +/*********************************************************************** +Class (::demo::MainWindow) +***********************************************************************/ + + ::vl::Ptr<::demo::Calculator> MainWindow::GetCalculatorAndStateMachine() + { + return this->__vwsn_parameter_CalculatorAndStateMachine; + } + + MainWindow::MainWindow(::vl::Ptr<::demo::Calculator> __vwsn_ctor_parameter_CalculatorAndStateMachine) + : ::vl::presentation::controls::GuiWindow(::vl::presentation::theme::ThemeName::Window) + { + (this->__vwsn_parameter_CalculatorAndStateMachine = __vwsn_ctor_parameter_CalculatorAndStateMachine); + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString(L"demo::MainWindow", false)); + auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); + ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); + ::vl::__vwsn::This(this)->__vwsn_initialize_instance_(this); + } + + MainWindow::~MainWindow() + { + this->FinalizeInstanceRecursively(static_cast<::vl::presentation::controls::GuiControlHost*>(this)); + } + +/*********************************************************************** +Class (::demo::Calculator) +***********************************************************************/ + + ::vl::WString Calculator::GetValue() + { + return this->__vwsn_prop_Value; + } + void Calculator::SetValue(const ::vl::WString& __vwsn_value_) + { + if ((this->__vwsn_prop_Value != __vwsn_value_)) + { + (this->__vwsn_prop_Value = __vwsn_value_); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(); + } + } + + void Calculator::Update(const ::vl::WString& value) + { + this->SetValue(value); + (this->valueFirst = value); + } + + void Calculator::Calculate() + { + if ((this->valueFirst == ::vl::WString(L"", false))) + { + (this->valueFirst = this->GetValue()); + } + else if ((this->op == ::vl::WString(L"+", false))) + { + this->Update(::vl::__vwsn::ToString((::vl::__vwsn::Parse(this->valueFirst) + ::vl::__vwsn::Parse(this->GetValue())))); + } + else if ((this->op == ::vl::WString(L"*", false))) + { + this->Update(::vl::__vwsn::ToString((::vl::__vwsn::Parse(this->valueFirst) * ::vl::__vwsn::Parse(this->GetValue())))); + } + else + { + throw ::vl::Exception((::vl::WString(L"Unrecognized operator: ", false) + this->op)); + } + } + + Calculator::Calculator() + { + } + +} +#undef GLOBAL_SYMBOL +#undef GLOBAL_NAME +#undef GLOBAL_OBJ +#undef USERIMPL + +#if defined( _MSC_VER) +#pragma warning(pop) +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#elif defined(__clang__) +#pragma clang diagnostic pop +#endif diff --git a/Tutorial/GacUI_Controls/CalculatorAndStateMachine/UI/Source/DemoPartialClasses.h b/Tutorial/GacUI_Controls/CalculatorAndStateMachine/UI/Source/DemoPartialClasses.h new file mode 100644 index 00000000..9203dab1 --- /dev/null +++ b/Tutorial/GacUI_Controls/CalculatorAndStateMachine/UI/Source/DemoPartialClasses.h @@ -0,0 +1,99 @@ +/*********************************************************************** +!!!!!! DO NOT MODIFY !!!!!! + +GacGen.exe Resource.xml + +This file is generated by Workflow compiler +https://github.com/vczh-libraries +***********************************************************************/ + +#ifndef VCZH_WORKFLOW_COMPILER_GENERATED_DEMOPARTIALCLASSES +#define VCZH_WORKFLOW_COMPILER_GENERATED_DEMOPARTIALCLASSES + +#include "GacUI.h" + +#if defined( _MSC_VER) +#pragma warning(push) +#pragma warning(disable:4250) +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wparentheses-equality" +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wparentheses-equality" +#endif + +namespace demo +{ + class MainWindowConstructor; + class MainWindow; + class Calculator; + + class MainWindowConstructor : public ::vl::Object, public ::vl::reflection::Description + { +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + protected: + ::vl::Ptr<::demo::Calculator> CalculatorAndStateMachine = ::vl::Ptr<::demo::Calculator>(); + ::demo::MainWindow* __vwsn_precompile_0 = static_cast<::demo::MainWindow*>(nullptr); + ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_1 = static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr); + void __vwsn_initialize_instance_(::demo::MainWindow* __vwsn_this_); + public: + MainWindowConstructor(); + }; + + class MainWindow : public ::vl::presentation::controls::GuiWindow, public ::demo::MainWindowConstructor, public ::vl::reflection::Description + { + friend class ::demo::MainWindowConstructor; +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + public: + ::vl::Ptr<::demo::Calculator> __vwsn_parameter_CalculatorAndStateMachine = ::vl::Ptr<::demo::Calculator>(); + ::vl::Ptr<::demo::Calculator> GetCalculatorAndStateMachine(); + MainWindow(::vl::Ptr<::demo::Calculator> __vwsn_ctor_parameter_CalculatorAndStateMachine); + ~MainWindow(); + }; + + class Calculator : public ::vl::reflection::description::StateMachine, public ::vl::reflection::Description + { +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + public: + ::vl::WString valueFirst = ::vl::WString(L"", false); + ::vl::WString op = ::vl::WString(L"", false); + ::vl::WString __vwsn_prop_Value = ::vl::WString(L"0", false); + ::vl::WString GetValue(); + void SetValue(const ::vl::WString& __vwsn_value_); + ::vl::Event ValueChanged; + void Update(const ::vl::WString& value); + void Calculate(); + Calculator(); + }; + +} +/*********************************************************************** +Global Variables and Functions +***********************************************************************/ + +namespace vl_workflow_global +{ + class Demo + { + public: + + static Demo& Instance(); + }; +} + +#if defined( _MSC_VER) +#pragma warning(pop) +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#elif defined(__clang__) +#pragma clang diagnostic pop +#endif + +#endif diff --git a/Tutorial/GacUI_Controls/CalculatorAndStateMachine/UI/Source/DemoReflection.cpp b/Tutorial/GacUI_Controls/CalculatorAndStateMachine/UI/Source/DemoReflection.cpp new file mode 100644 index 00000000..ecec9bdb --- /dev/null +++ b/Tutorial/GacUI_Controls/CalculatorAndStateMachine/UI/Source/DemoReflection.cpp @@ -0,0 +1,104 @@ +/*********************************************************************** +!!!!!! DO NOT MODIFY !!!!!! + +GacGen.exe Resource.xml + +This file is generated by Workflow compiler +https://github.com/vczh-libraries +***********************************************************************/ + +#include "DemoReflection.h" + +#if defined( _MSC_VER) +#pragma warning(push) +#pragma warning(disable:4250) +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wparentheses-equality" +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wparentheses-equality" +#endif + +/*********************************************************************** +Reflection +***********************************************************************/ + +namespace vl +{ + namespace reflection + { + namespace description + { +#ifndef VCZH_DEBUG_NO_REFLECTION + IMPL_CPP_TYPE_INFO(demo::Calculator) + IMPL_CPP_TYPE_INFO(demo::MainWindow) + IMPL_CPP_TYPE_INFO(demo::MainWindowConstructor) + +#define _ , + BEGIN_CLASS_MEMBER(::demo::Calculator) + CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::Calculator>(), NO_PARAMETER) + CLASS_MEMBER_METHOD(Calculate, NO_PARAMETER) + CLASS_MEMBER_METHOD(GetValue, NO_PARAMETER) + CLASS_MEMBER_METHOD(SetValue, { L"__vwsn_value_" }) + CLASS_MEMBER_METHOD(Update, { L"value" }) + CLASS_MEMBER_EVENT(ValueChanged) + CLASS_MEMBER_FIELD(__vwsn_prop_Value) + CLASS_MEMBER_PROPERTY_EVENT(Value, GetValue, SetValue, ValueChanged) + CLASS_MEMBER_FIELD(op) + CLASS_MEMBER_FIELD(valueFirst) + END_CLASS_MEMBER(::demo::Calculator) + + BEGIN_CLASS_MEMBER(::demo::MainWindow) + CLASS_MEMBER_CONSTRUCTOR(::demo::MainWindow*(::vl::Ptr<::demo::Calculator>), { L"__vwsn_ctor_parameter_CalculatorAndStateMachine" }) + CLASS_MEMBER_METHOD(GetCalculatorAndStateMachine, NO_PARAMETER) + CLASS_MEMBER_FIELD(__vwsn_parameter_CalculatorAndStateMachine) + CLASS_MEMBER_PROPERTY_READONLY(CalculatorAndStateMachine, GetCalculatorAndStateMachine) + END_CLASS_MEMBER(::demo::MainWindow) + + BEGIN_CLASS_MEMBER(::demo::MainWindowConstructor) + CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::MainWindowConstructor>(), NO_PARAMETER) + CLASS_MEMBER_METHOD(__vwsn_initialize_instance_, { L"__vwsn_this_" }) + CLASS_MEMBER_FIELD(__vwsn_precompile_0) + CLASS_MEMBER_FIELD(__vwsn_precompile_1) + CLASS_MEMBER_FIELD(CalculatorAndStateMachine) + END_CLASS_MEMBER(::demo::MainWindowConstructor) + +#undef _ + class DemoTypeLoader : public Object, public ITypeLoader + { + public: + void Load(ITypeManager* manager) + { + ADD_TYPE_INFO(::demo::Calculator) + ADD_TYPE_INFO(::demo::MainWindow) + ADD_TYPE_INFO(::demo::MainWindowConstructor) + } + + void Unload(ITypeManager* manager) + { + } + }; +#endif + + bool LoadDemoTypes() + { +#ifndef VCZH_DEBUG_NO_REFLECTION + if (auto manager = GetGlobalTypeManager()) + { + return manager->AddTypeLoader(MakePtr()); + } +#endif + return false; + } + } + } +} + +#if defined( _MSC_VER) +#pragma warning(pop) +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#elif defined(__clang__) +#pragma clang diagnostic pop +#endif diff --git a/Tutorial/GacUI_Controls/CalculatorAndStateMachine/UI/Source/DemoReflection.h b/Tutorial/GacUI_Controls/CalculatorAndStateMachine/UI/Source/DemoReflection.h new file mode 100644 index 00000000..a669acd8 --- /dev/null +++ b/Tutorial/GacUI_Controls/CalculatorAndStateMachine/UI/Source/DemoReflection.h @@ -0,0 +1,58 @@ +/*********************************************************************** +!!!!!! DO NOT MODIFY !!!!!! + +GacGen.exe Resource.xml + +This file is generated by Workflow compiler +https://github.com/vczh-libraries +***********************************************************************/ + +#ifndef VCZH_WORKFLOW_COMPILER_GENERATED_DEMOREFLECTION +#define VCZH_WORKFLOW_COMPILER_GENERATED_DEMOREFLECTION + +#include "Demo.h" +#ifndef VCZH_DEBUG_NO_REFLECTION +#include "GacUIReflection.h" +#endif + +#if defined( _MSC_VER) +#pragma warning(push) +#pragma warning(disable:4250) +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wparentheses-equality" +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wparentheses-equality" +#endif + +/*********************************************************************** +Reflection +***********************************************************************/ + +namespace vl +{ + namespace reflection + { + namespace description + { +#ifndef VCZH_DEBUG_NO_REFLECTION + DECL_TYPE_INFO(::demo::Calculator) + DECL_TYPE_INFO(::demo::MainWindow) + DECL_TYPE_INFO(::demo::MainWindowConstructor) +#endif + + extern bool LoadDemoTypes(); + } + } +} + +#if defined( _MSC_VER) +#pragma warning(pop) +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#elif defined(__clang__) +#pragma clang diagnostic pop +#endif + +#endif diff --git a/Tutorial/GacUI_Controls/GacUI_Controls.sln b/Tutorial/GacUI_Controls/GacUI_Controls.sln index 51677ebe..faa6b400 100644 --- a/Tutorial/GacUI_Controls/GacUI_Controls.sln +++ b/Tutorial/GacUI_Controls/GacUI_Controls.sln @@ -23,6 +23,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DataGrid", "DataGrid\DataGr EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DocumentEditor", "DocumentEditor\DocumentEditor.vcxproj", "{DB0EEADE-E377-4A35-A432-96982EFC6AF6}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CalculatorAndStateMachine", "CalculatorAndStateMachine\CalculatorAndStateMachine.vcxproj", "{7A1792BE-F866-44EE-83BF-E686BDA54B37}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -93,6 +95,14 @@ Global {DB0EEADE-E377-4A35-A432-96982EFC6AF6}.Release|Win32.Build.0 = Release|Win32 {DB0EEADE-E377-4A35-A432-96982EFC6AF6}.Release|x64.ActiveCfg = Release|x64 {DB0EEADE-E377-4A35-A432-96982EFC6AF6}.Release|x64.Build.0 = Release|x64 + {7A1792BE-F866-44EE-83BF-E686BDA54B37}.Debug|Win32.ActiveCfg = Debug|Win32 + {7A1792BE-F866-44EE-83BF-E686BDA54B37}.Debug|Win32.Build.0 = Debug|Win32 + {7A1792BE-F866-44EE-83BF-E686BDA54B37}.Debug|x64.ActiveCfg = Debug|x64 + {7A1792BE-F866-44EE-83BF-E686BDA54B37}.Debug|x64.Build.0 = Debug|x64 + {7A1792BE-F866-44EE-83BF-E686BDA54B37}.Release|Win32.ActiveCfg = Release|Win32 + {7A1792BE-F866-44EE-83BF-E686BDA54B37}.Release|Win32.Build.0 = Release|Win32 + {7A1792BE-F866-44EE-83BF-E686BDA54B37}.Release|x64.ActiveCfg = Release|x64 + {7A1792BE-F866-44EE-83BF-E686BDA54B37}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Tutorial/GacUI_Controls/UIRes/CalculatorAndStateMachine.bin b/Tutorial/GacUI_Controls/UIRes/CalculatorAndStateMachine.bin new file mode 100644 index 00000000..56869d59 Binary files /dev/null and b/Tutorial/GacUI_Controls/UIRes/CalculatorAndStateMachine.bin differ