From c2d07889a2ca6fbb4f689138252003838a42a7e6 Mon Sep 17 00:00:00 2001 From: sgtcoolguy Date: Fri, 16 Jan 2015 16:18:53 -0500 Subject: [PATCH] Add createSlider to UI module --- .../include/Titanium/ApplicationBuilder.hpp | 6 +++- .../TitaniumKit/include/Titanium/UIModule.hpp | 5 ++- Source/TitaniumKit/src/ApplicationBuilder.cpp | 15 ++++++++- Source/TitaniumKit/src/UIModule.cpp | 33 +++++++++++++++++++ 4 files changed, 56 insertions(+), 3 deletions(-) diff --git a/Source/TitaniumKit/include/Titanium/ApplicationBuilder.hpp b/Source/TitaniumKit/include/Titanium/ApplicationBuilder.hpp index cda5673cc..997d58f4e 100644 --- a/Source/TitaniumKit/include/Titanium/ApplicationBuilder.hpp +++ b/Source/TitaniumKit/include/Titanium/ApplicationBuilder.hpp @@ -43,6 +43,9 @@ namespace Titanium JSObject LabelObject() const TITANIUM_NOEXCEPT; ApplicationBuilder& LabelObject(const JSObject&) TITANIUM_NOEXCEPT; + JSObject SliderObject() const TITANIUM_NOEXCEPT; + ApplicationBuilder& SliderObject(const JSObject&) TITANIUM_NOEXCEPT; + JSObject ScrollViewObject() const TITANIUM_NOEXCEPT; ApplicationBuilder& ScrollViewObject(const JSObject&) TITANIUM_NOEXCEPT; @@ -88,6 +91,7 @@ namespace Titanium JSObject button__; JSObject imageview__; JSObject label__; + JSObject slider__; JSObject scrollview__; JSObject platform__; JSObject accelerometer__; @@ -98,6 +102,6 @@ namespace Titanium #pragma warning(pop) }; -} // namespace Titanium { +} // namespace Titanium #endif // _TITANIUM_APPLICATIONBUILDER_HPP_ diff --git a/Source/TitaniumKit/include/Titanium/UIModule.hpp b/Source/TitaniumKit/include/Titanium/UIModule.hpp index e9aff3b11..ba0cae006 100644 --- a/Source/TitaniumKit/include/Titanium/UIModule.hpp +++ b/Source/TitaniumKit/include/Titanium/UIModule.hpp @@ -16,6 +16,7 @@ #include "Titanium/UI/ScrollView.hpp" #include "Titanium/UI/ImageView.hpp" #include "Titanium/UI/Label.hpp" +#include "Titanium/UI/Slider.hpp" namespace Titanium { @@ -113,6 +114,7 @@ namespace Titanium JSObject createTab(const JSObject& parameters, JSObject& this_object) TITANIUM_NOEXCEPT; JSObject createTabGroup(const JSObject& parameters, JSObject& this_object) TITANIUM_NOEXCEPT; JSObject createScrollView(const JSObject& parameters, JSObject& this_object) TITANIUM_NOEXCEPT; + JSObject createSlider(const JSObject& parameters, JSObject& this_object) TITANIUM_NOEXCEPT; virtual JSValue ANIMATION_CURVE_EASE_IN() const TITANIUM_NOEXCEPT final; virtual JSValue ANIMATION_CURVE_EASE_IN_OUT() const TITANIUM_NOEXCEPT final; @@ -241,6 +243,7 @@ namespace Titanium JSValue js_createScrollView(const std::vector& arguments, JSObject& this_object); JSValue js_createImageView(const std::vector& arguments, JSObject& this_object); JSValue js_createLabel(const std::vector& arguments, JSObject& this_object); + JSValue js_createSlider(const std::vector& arguments, JSObject& this_object); JSValue js_setBackgroundColor(const std::vector& arguments, JSObject& this_object); private: @@ -352,6 +355,6 @@ namespace Titanium JSFunction createViewFunction(const JSContext& js_context, const std::string& viewClass) const TITANIUM_NOEXCEPT; }; -} // namespace Titanium { +} // namespace Titanium #endif // _TITANIUM_UI_HPP_ diff --git a/Source/TitaniumKit/src/ApplicationBuilder.cpp b/Source/TitaniumKit/src/ApplicationBuilder.cpp index e3fd9e51b..b9215110e 100644 --- a/Source/TitaniumKit/src/ApplicationBuilder.cpp +++ b/Source/TitaniumKit/src/ApplicationBuilder.cpp @@ -29,6 +29,7 @@ namespace Titanium button__(js_context__.CreateObject()), imageview__(js_context__.CreateObject()), label__(js_context__.CreateObject()), + slider__(js_context__.CreateObject()), scrollview__(js_context__.CreateObject()), platform__(js_context__.CreateObject()), accelerometer__(js_context__.CreateObject()), @@ -47,6 +48,7 @@ namespace Titanium ui.SetProperty("Button", button__); ui.SetProperty("ImageView", imageview__); ui.SetProperty("Label", label__); + ui.SetProperty("Slider", slider__); ui.SetProperty("ScrollView", scrollview__); filesystem__.SetProperty("File", file__); @@ -130,6 +132,17 @@ namespace Titanium return *this; } + JSObject ApplicationBuilder::SliderObject() const TITANIUM_NOEXCEPT + { + return slider__; + } + + ApplicationBuilder& ApplicationBuilder::SliderObject(const JSObject& slider) TITANIUM_NOEXCEPT + { + slider__ = slider; + return *this; + } + JSObject ApplicationBuilder::ImageViewObject() const TITANIUM_NOEXCEPT { return imageview__; @@ -228,4 +241,4 @@ namespace Titanium return *this; } -} // namespace Titanium { +} // namespace Titanium diff --git a/Source/TitaniumKit/src/UIModule.cpp b/Source/TitaniumKit/src/UIModule.cpp index ffb13d36b..d530d2d8a 100644 --- a/Source/TitaniumKit/src/UIModule.cpp +++ b/Source/TitaniumKit/src/UIModule.cpp @@ -309,6 +309,27 @@ namespace Titanium return button; } + JSObject UIModule::createSlider(const JSObject& parameters, JSObject& this_object) TITANIUM_NOEXCEPT + { + TITANIUM_LOG_DEBUG("UI::createSlider"); + + JSValue Titanium_property = this_object.get_context().get_global_object().GetProperty("Titanium"); + TITANIUM_ASSERT(Titanium_property.IsObject()); // precondition + JSObject Titanium = Titanium_property; + + JSValue UI_property = Titanium.GetProperty("UI"); + TITANIUM_ASSERT(UI_property.IsObject()); // precondition + JSObject UI = UI_property; + + JSValue Slider_property = UI.GetProperty("Slider"); + TITANIUM_ASSERT(Slider_property.IsObject()); // precondition + JSObject Slider = Slider_property; + + auto slider = Slider.CallAsConstructor(parameters); + Titanium::applyProperties(slider, parameters); + return slider; + } + JSObject UIModule::createTab(const JSObject& parameters, JSObject& this_object) TITANIUM_NOEXCEPT { TITANIUM_LOG_DEBUG("UI::createTab"); @@ -955,6 +976,7 @@ namespace Titanium JSExport::AddFunctionProperty("createScrollView", std::mem_fn(&UIModule::js_createScrollView)); JSExport::AddFunctionProperty("createImageView", std::mem_fn(&UIModule::js_createImageView)); JSExport::AddFunctionProperty("createLabel", std::mem_fn(&UIModule::js_createLabel)); + JSExport::AddFunctionProperty("createSlider", std::mem_fn(&UIModule::js_createSlider)); JSExport::AddFunctionProperty("setBackgroundColor", std::mem_fn(&UIModule::js_setBackgroundColor)); JSExport::AddValueProperty("ANIMATION_CURVE_EASE_IN", std::mem_fn(&UIModule::ANIMATION_CURVE_EASE_IN)); JSExport::AddValueProperty("ANIMATION_CURVE_EASE_IN_OUT", std::mem_fn(&UIModule::ANIMATION_CURVE_EASE_IN_OUT)); @@ -1095,6 +1117,17 @@ namespace Titanium return createButton(parameters, this_object); } + JSValue UIModule::js_createSlider(const std::vector& arguments, JSObject& this_object) + { + JSObject parameters = get_context().CreateObject(); + if (arguments.size() >= 1) { + const auto _0 = arguments.at(0); + TITANIUM_ASSERT(_0.IsObject()); + parameters = _0; + } + return createSlider(parameters, this_object); + } + JSValue UIModule::js_createImageView(const std::vector& arguments, JSObject& this_object) { JSObject parameters = get_context().CreateObject();