From a10edf35216e89cd2b6a2d1fa131a9dcb2bdfc7d Mon Sep 17 00:00:00 2001 From: "dongsug.song" Date: Wed, 16 Nov 2016 18:18:34 +0900 Subject: [PATCH] [3.0] Dali C# GBS build enabled Change-Id: I99d851b064ab999fff6bd261b3f8b8ea507ca965 --- build/tizen/plugins/csharp/Makefile.am | 12 +- packaging/dali-csharp-wrapper.spec | 150 ++ plugins/dali-swig/NDali.dll | Bin 886784 -> 0 bytes plugins/dali-swig/automatic/cpp/dali_wrap.cpp | 1710 +++++++++++++++-- .../automatic/csharp/AccessibilityManager.cs | 54 +- plugins/dali-swig/automatic/csharp/Actor.cs | 567 +----- .../automatic/csharp/AlphaFunction.cs | 4 + .../dali-swig/automatic/csharp/Animation.cs | 220 +++ .../automatic/csharp/ApplicationExtensions.cs | 78 + .../dali-swig/automatic/csharp/BaseHandle.cs | 135 +- plugins/dali-swig/automatic/csharp/Button.cs | 8 +- .../automatic/csharp/KeyInputFocusManager.cs | 88 + plugins/dali-swig/automatic/csharp/NDalic.cs | 29 +- .../automatic/csharp/NDalicPINVOKE.cs | 197 +- .../dali-swig/automatic/csharp/PageFactory.cs | 4 +- .../dali-swig/automatic/csharp/Property.cs | 6 + .../dali-swig/automatic/csharp/RectInteger.cs | 50 + ...lkit__Control_Dali__Toolkit__ControlF_t.cs | 29 + ...Dali__Toolkit__Internal__TransitionData.cs | 29 + plugins/dali-swig/automatic/csharp/Slider.cs | 6 +- plugins/dali-swig/automatic/csharp/Stage.cs | 14 +- .../dali-swig/automatic/csharp/TextEditor.cs | 60 +- .../dali-swig/automatic/csharp/TextField.cs | 60 +- .../dali-swig/automatic/csharp/TextLabel.cs | 30 +- .../automatic/csharp/TransitionData.cs | 100 + plugins/dali-swig/automatic/csharp/View.cs | 1122 +++++++++-- .../dali-swig/automatic/csharp/VisualBase.cs | 35 +- .../dali-swig/automatic/csharp/VisualType.cs | 3 +- plugins/dali-swig/manual/csharp/Color.cs | 59 + 29 files changed, 3797 insertions(+), 1062 deletions(-) create mode 100755 packaging/dali-csharp-wrapper.spec delete mode 100755 plugins/dali-swig/NDali.dll create mode 100644 plugins/dali-swig/automatic/csharp/ApplicationExtensions.cs create mode 100644 plugins/dali-swig/automatic/csharp/KeyInputFocusManager.cs create mode 100644 plugins/dali-swig/automatic/csharp/SWIGTYPE_p_Dali__SignalT_void_fDali__Toolkit__Control_Dali__Toolkit__ControlF_t.cs create mode 100644 plugins/dali-swig/automatic/csharp/SWIGTYPE_p_Dali__Toolkit__Internal__TransitionData.cs create mode 100644 plugins/dali-swig/automatic/csharp/TransitionData.cs diff --git a/build/tizen/plugins/csharp/Makefile.am b/build/tizen/plugins/csharp/Makefile.am index 5e7263b0fe..8690d062be 100755 --- a/build/tizen/plugins/csharp/Makefile.am +++ b/build/tizen/plugins/csharp/Makefile.am @@ -19,7 +19,10 @@ BUILT_SOURCES = \ $(dali_swig_dir)/automatic/cpp/dali_wrap.h all-local: -gbs-local: libNDalic.so NDali.dll +gbs-local: libNDalic.so NDali.dll hello-world.exe + +hello-world.exe: $(dali_swig_dir)/NDali.dll + mcs -nologo -target:exe -out:$(dali_swig_dir)/hello-world.exe -reference:$(dali_swig_dir)/NDali.dll $(dali_swig_dir)/examples/hello-world.cs libNDalic.so: $(dali_swig_dir)/automatic/cpp/dali_wrap.o $(dali_swig_dir)/manual/cpp/dali_wrap_manual.o $(CXX) -shared $(dali_swig_dir)/automatic/cpp/dali_wrap.o $(dali_swig_dir)/manual/cpp/dali_wrap_manual.o -o $(dali_swig_dir)/libNDalic.so $(DALICORE_LIBS) $(DALIADAPTOR_LIBS) $(DALITOOLKIT_LIBS) @@ -31,11 +34,11 @@ $(dali_swig_dir)/manual/cpp/dali_wrap_manual.o: $(BUILT_SOURCES) $(CXX) -c -fpic $(CXXFLAGS) $(DALICORE_CFLAGS) $(DALIADAPTOR_CFLAGS) $(DALITOOLKIT_CFLAGS) $(dali_swig_dir)/manual/cpp/keyboard_focus_manager_wrap.cpp -o $(dali_swig_dir)/manual/cpp/dali_wrap_manual.o NDali.dll: $(BUILT_SOURCES) -# mcs -nologo -target:library -out:$(dali_swig_dir)/NDali.dll $(dali_swig_dir)/automatic/csharp/*.cs $(dali_swig_dir)/manual/csharp/*.cs + mcs -nologo -target:library -out:$(dali_swig_dir)/NDali.dll $(dali_swig_dir)/automatic/csharp/*.cs $(dali_swig_dir)/manual/csharp/*.cs $(BUILT_SOURCES): $(dali_swig_dir)/SWIG/*.i - rm -f $(dali_swig_dir)/automatic/csharp/*.cs - rm -f $(dali_swig_dir)/automatic/cpp/*.cpp +# rm -f $(dali_swig_dir)/automatic/csharp/*.cs +# rm -f $(dali_swig_dir)/automatic/cpp/*.cpp $(SWIG) -version $(SWIG) -csharp -c++ -outdir $(dali_swig_dir)/automatic/csharp \ $(DALI_CFLAGS) $(DALICORE_CFLAGS) $(DALIADAPTOR_CFLAGS) $(DALITOOLKIT_CFLAGS) -namespace Dali -o $(dali_swig_dir)/automatic/cpp/dali_wrap.cpp $(dali_swig_dir)/SWIG/dali.i @@ -44,6 +47,7 @@ gbs-install: gbs-local -$(INSTALL) -d $(DESTDIR) -$(INSTALL) $(dali_swig_dir)/libNDalic.so $(DESTDIR) -$(INSTALL) $(dali_swig_dir)/NDali.dll $(DESTDIR) + -$(INSTALL) $(dali_swig_dir)/hello-world.exe $(DESTDIR) EXTRA_DIST = \ swig.cmd diff --git a/packaging/dali-csharp-wrapper.spec b/packaging/dali-csharp-wrapper.spec new file mode 100755 index 0000000000..da69af93fc --- /dev/null +++ b/packaging/dali-csharp-wrapper.spec @@ -0,0 +1,150 @@ +Name: NDalic +Summary: dali wrapper +Version: 1.2.14 +Release: 1 +Group: uifw/graphic +License: TO_BE_FILLED_IN +Source0: %{name}-%{version}.tar.gz +BuildRequires: cmake +BuildRequires: swig +#BuildRequires: ruby +#BuildRequires: ruby-devel + +#BuildRequires: mono-core +#BuildRequires: mono-compat +#BuildRequires: mono-data +BuildRequires: mono-compiler +#BuildRequires: mono-wcf +#BuildRequires: mono-web + +BuildRequires: pkgconfig + +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(dali-core) +BuildRequires: pkgconfig(dali-adaptor) +BuildRequires: pkgconfig(dali-toolkit) + +BuildRequires: dali-devel +BuildRequires: dali-integration-devel +BuildRequires: dali-adaptor-devel +BuildRequires: dali-adaptor-integration-devel +BuildRequires: dali-toolkit-devel + + +%description +dali wrapper + +%package dali-wrapper + +Summary: Development dali-wrapper +Group: Development/Libraries/Other +Requires: %{name} = %{version} + +%description dali-wrapper +Development .so for dali wrapper +%define daliSwigDir %{_builddir}/%{name}-%{version}/build/tizen +%define daliToolkitDir %{_builddir}/dali-toolkit-%{version}/build/tizen +%define daliPluginsDir %{_builddir}/%{name}-%{version}/build/tizen/plugins/csharp + +############################# +# profile setup +############################# + + +%define dali_toolkit_profile MOBILE + +%define dali_style_folder 720x1280 +# dali_style to be provided by build system as with dali_toolkit_profile or by passing --define 'dali_style 470x800' to the rpm build command + +%if "%{?dali_style}" + %define dali_style_folder %{dali_style} +%endif + +# Further resource locations profiles can be provided here otherwise MOBILE will be used +%if "%{tizen_profile_name}" == "mobile" + %define dali_toolkit_profile MOBILE +%endif + +%description +The OpenGLES Canvas Core Library Toolkit - a set of controls that provide +user interface functionality. + +############################## +# Preparation +############################## +%prep +%setup -q + +#Use TZ_PATH when tizen version is 3.x + +%if "%{tizen_version_major}" == "2" +%define ndali_data_rw_dir /opt/usr/share/dali/ +%define ndali_data_ro_dir /usr/share/dali/ +%else +%define ndali_data_rw_dir %TZ_SYS_SHARE/dali/ +%define ndali_data_ro_dir %TZ_SYS_RO_SHARE/dali/ +%endif +############################## +# Build +############################## +%build +echo "----------------" %{_builddir} +echo "----------------" %{daliSwigDir} +echo "----------------" %{_libdir} +echo "----------------" %{daliPluginsDir} + +PREFIX="/usr" +CXXFLAGS+=" -Wall -g -Os -fPIC -fvisibility-inlines-hidden -fdata-sections -ffunction-sections " +LDFLAGS+=" -Wl,--rpath=$PREFIX/lib -Wl,--as-needed -Wl,--gc-sections -Wl,-Bsymbolic-functions " + +%if 0%{?enable_coverage} +CXXFLAGS+=" --coverage " +LDFLAGS+=" --coverage " +%endif + + +############################## +# Build dali-wrap +############################## + +libtoolize --force +cd %{daliSwigDir} +autoreconf --install +NDALI_DATA_RW_DIR="%{ndali_data_rw_dir}" ; export NDALI_DATA_RW_DIR +NDALI_DATA_RO_DIR="%{ndali_data_ro_dir}" ; export NDALI_DATA_RO_DIR +%configure --enable-profile=%{dali_toolkit_profile} \ + --with-style=%{dali_style_folder} \ + --enable-csharp=yes \ +%if 0%{?enable_debug} + --enable-debug \ +%endif + --enable-i18n=yes +cd %{daliPluginsDir} +make gbs-local + +############################## +# Installation +############################## +echo "----------------" %{_buildrootdir} +%install +cd "%{daliPluginsDir}" +make DESTDIR=%{_buildrootdir}/%{name}-%{version}-%{release}.arm/usr/lib/ gbs-install + +#mv %{_builddir}/%{name}-%{version}/plugins/dali-swig/NDali.dll %{_buildrootdir}/%{name}-%{version}-%{release}.arm/usr/lib/ + +############################## +# Post Install +############################## +%post + + +############################## +# Files in Binary Packages +############################## +%files +%manifest dali-csharp-wrapper.manifest +%defattr(-,root,root,-) +%{_libdir}/lib* +%{_libdir}/NDali.dll +%{_libdir}/*.exe + diff --git a/plugins/dali-swig/NDali.dll b/plugins/dali-swig/NDali.dll deleted file mode 100755 index 34c673b1fb543a789852a8abd42955be76118ef3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 886784 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

>=aGoknH-X1l@pNCft91|kIvi3J>G^O$ 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 diff --git a/plugins/dali-swig/automatic/cpp/dali_wrap.cpp b/plugins/dali-swig/automatic/cpp/dali_wrap.cpp index 5bff0efc74..fb0bd85a76 100644 --- a/plugins/dali-swig/automatic/cpp/dali_wrap.cpp +++ b/plugins/dali-swig/automatic/cpp/dali_wrap.cpp @@ -432,10 +432,13 @@ SWIGINTERN void SWIG_CSharpException(int code, const char *msg) { #include #include #include +#include #include #include + +#include #include #include #include @@ -446,6 +449,7 @@ SWIGINTERN void SWIG_CSharpException(int code, const char *msg) { #include #include +#include #include @@ -598,7 +602,13 @@ unsigned int int_to_uint(int x) { using namespace Dali; using namespace Dali::Toolkit; -SWIGINTERN bool Dali_BaseHandle_IsHandleEmpty(Dali::BaseHandle const *self){ +SWIGINTERN bool Dali_BaseHandle_HasBody(Dali::BaseHandle const *self){ + + // C++ code. DALi uses Handle <-> Body design pattern. + // This function checks the Handle to see if it has a body attached ( possible to have empty handles). + // Handles in DALi can be converted into a boolean type + // to check if the handle has a valid body attached to it. + // Internally checking *self will checks IntrusivePtr mObjectHandle in BaseHandle; if( *self ) { return true; @@ -608,6 +618,18 @@ SWIGINTERN bool Dali_BaseHandle_IsHandleEmpty(Dali::BaseHandle const *self){ return false; } } +SWIGINTERN bool Dali_BaseHandle_IsEqual(Dali::BaseHandle const *self,Dali::BaseHandle const &rhs){ + + // C++ code. Check if two handles reference the same implemtion + if( *self == rhs) + { + return true; + } + else + { + return false; + } + } SWIGINTERN std::vector< Dali::TouchPoint > *new_std_vector_Sl_Dali_TouchPoint_Sg___SWIG_2(int capacity){ std::vector< Dali::TouchPoint >* pv = 0; if (capacity >= 0) { @@ -12730,6 +12752,40 @@ SWIGEXPORT void SWIGSTDCALL CSharp_Dali_Property_Array_PushBack(void * jarg1, vo } +SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_Property_Array_Add(void * jarg1, void * jarg2) { + void * jresult ; + Dali::Property::Array *arg1 = (Dali::Property::Array *) 0 ; + Dali::Property::Value *arg2 = 0 ; + Dali::Property::Array *result = 0 ; + + arg1 = (Dali::Property::Array *)jarg1; + arg2 = (Dali::Property::Value *)jarg2; + if (!arg2) { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Dali::Property::Value const & type is null", 0); + return 0; + } + { + try { + result = (Dali::Property::Array *) &(arg1)->Add((Dali::Property::Value const &)*arg2); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (void *)result; + return jresult; +} + + SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_Property_Array_GetElementAt__SWIG_0(void * jarg1, unsigned long jarg2) { void * jresult ; Dali::Property::Array *arg1 = (Dali::Property::Array *) 0 ; @@ -15655,15 +15711,49 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_BaseHandle_GetObjectPtr(void * jarg1) } -SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Dali_BaseHandle_IsHandleEmpty(void * jarg1) { +SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Dali_BaseHandle_HasBody(void * jarg1) { + unsigned int jresult ; + Dali::BaseHandle *arg1 = (Dali::BaseHandle *) 0 ; + bool result; + + arg1 = (Dali::BaseHandle *)jarg1; + { + try { + result = (bool)Dali_BaseHandle_HasBody((Dali::BaseHandle const *)arg1); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = result; + return jresult; +} + + +SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Dali_BaseHandle_IsEqual(void * jarg1, void * jarg2) { unsigned int jresult ; Dali::BaseHandle *arg1 = (Dali::BaseHandle *) 0 ; + Dali::BaseHandle *arg2 = 0 ; bool result; arg1 = (Dali::BaseHandle *)jarg1; + arg2 = (Dali::BaseHandle *)jarg2; + if (!arg2) { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Dali::BaseHandle const & type is null", 0); + return 0; + } { try { - result = (bool)Dali_BaseHandle_IsHandleEmpty((Dali::BaseHandle const *)arg1); + result = (bool)Dali_BaseHandle_IsEqual((Dali::BaseHandle const *)arg1,(Dali::BaseHandle const &)*arg2); } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -52881,30 +52971,41 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_DragAndDropDetector_DroppedSignal(void } -SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_Window_New__SWIG_0(void * jarg1, char * jarg2, unsigned int jarg3) { +SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_new_ApplicationExtensions__SWIG_0() { void * jresult ; - Dali::PositionSize arg1 ; - std::string *arg2 = 0 ; - bool arg3 ; - Dali::PositionSize *argp1 ; - Dali::Window result; + Dali::ApplicationExtensions *result = 0 ; - argp1 = (Dali::PositionSize *)jarg1; - if (!argp1) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Dali::PositionSize", 0); - return 0; - } - arg1 = *argp1; - if (!jarg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "null string", 0); - return 0; + { + try { + result = (Dali::ApplicationExtensions *)new Dali::ApplicationExtensions(); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } } - std::string arg2_str(jarg2); - arg2 = &arg2_str; - arg3 = jarg3 ? true : false; + jresult = (void *)result; + return jresult; +} + + +SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_new_ApplicationExtensions__SWIG_1(void * jarg1) { + void * jresult ; + Dali::Application *arg1 = (Dali::Application *) 0 ; + Dali::ApplicationExtensions *result = 0 ; + + arg1 = (Dali::Application *)jarg1; { try { - result = Dali::Window::New(arg1,(std::string const &)*arg2,arg3); + result = (Dali::ApplicationExtensions *)new Dali::ApplicationExtensions(arg1); } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -52919,18 +53020,160 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_Window_New__SWIG_0(void * jarg1, char }; } } - jresult = new Dali::Window((const Dali::Window &)result); + jresult = (void *)result; + return jresult; +} + + +SWIGEXPORT void SWIGSTDCALL CSharp_Dali_delete_ApplicationExtensions(void * jarg1) { + Dali::ApplicationExtensions *arg1 = (Dali::ApplicationExtensions *) 0 ; - //argout typemap for const std::string& + arg1 = (Dali::ApplicationExtensions *)jarg1; + { + try { + delete arg1; + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return ; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return ; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return ; + }; + } + } +} + + +SWIGEXPORT void SWIGSTDCALL CSharp_Dali_ApplicationExtensions_Init(void * jarg1) { + Dali::ApplicationExtensions *arg1 = (Dali::ApplicationExtensions *) 0 ; - return jresult; + arg1 = (Dali::ApplicationExtensions *)jarg1; + { + try { + (arg1)->Init(); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return ; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return ; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return ; + }; + } + } } -SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_Window_New__SWIG_1(void * jarg1, char * jarg2) { +SWIGEXPORT void SWIGSTDCALL CSharp_Dali_ApplicationExtensions_Terminate(void * jarg1) { + Dali::ApplicationExtensions *arg1 = (Dali::ApplicationExtensions *) 0 ; + + arg1 = (Dali::ApplicationExtensions *)jarg1; + { + try { + (arg1)->Terminate(); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return ; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return ; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return ; + }; + } + } +} + + +SWIGEXPORT void SWIGSTDCALL CSharp_Dali_ApplicationExtensions_Pause(void * jarg1) { + Dali::ApplicationExtensions *arg1 = (Dali::ApplicationExtensions *) 0 ; + + arg1 = (Dali::ApplicationExtensions *)jarg1; + { + try { + (arg1)->Pause(); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return ; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return ; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return ; + }; + } + } +} + + +SWIGEXPORT void SWIGSTDCALL CSharp_Dali_ApplicationExtensions_Resume(void * jarg1) { + Dali::ApplicationExtensions *arg1 = (Dali::ApplicationExtensions *) 0 ; + + arg1 = (Dali::ApplicationExtensions *)jarg1; + { + try { + (arg1)->Resume(); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return ; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return ; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return ; + }; + } + } +} + + +SWIGEXPORT void SWIGSTDCALL CSharp_Dali_ApplicationExtensions_LanguageChange(void * jarg1) { + Dali::ApplicationExtensions *arg1 = (Dali::ApplicationExtensions *) 0 ; + + arg1 = (Dali::ApplicationExtensions *)jarg1; + { + try { + (arg1)->LanguageChange(); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return ; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return ; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return ; + }; + } + } +} + + +SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_Window_New__SWIG_0(void * jarg1, char * jarg2, unsigned int jarg3) { void * jresult ; Dali::PositionSize arg1 ; std::string *arg2 = 0 ; + bool arg3 ; Dali::PositionSize *argp1 ; Dali::Window result; @@ -52946,9 +53189,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_Window_New__SWIG_1(void * jarg1, char } std::string arg2_str(jarg2); arg2 = &arg2_str; + arg3 = jarg3 ? true : false; { try { - result = Dali::Window::New(arg1,(std::string const &)*arg2); + result = Dali::Window::New(arg1,(std::string const &)*arg2,arg3); } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -52971,12 +53215,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_Window_New__SWIG_1(void * jarg1, char } -SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_Window_New__SWIG_2(void * jarg1, char * jarg2, char * jarg3, unsigned int jarg4) { +SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_Window_New__SWIG_1(void * jarg1, char * jarg2) { void * jresult ; Dali::PositionSize arg1 ; std::string *arg2 = 0 ; - std::string *arg3 = 0 ; - bool arg4 ; Dali::PositionSize *argp1 ; Dali::Window result; @@ -52992,16 +53234,9 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_Window_New__SWIG_2(void * jarg1, char } std::string arg2_str(jarg2); arg2 = &arg2_str; - if (!jarg3) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "null string", 0); - return 0; - } - std::string arg3_str(jarg3); - arg3 = &arg3_str; - arg4 = jarg4 ? true : false; { try { - result = Dali::Window::New(arg1,(std::string const &)*arg2,(std::string const &)*arg3,arg4); + result = Dali::Window::New(arg1,(std::string const &)*arg2); } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -53018,16 +53253,69 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_Window_New__SWIG_2(void * jarg1, char } jresult = new Dali::Window((const Dali::Window &)result); - //argout typemap for const std::string& - - //argout typemap for const std::string& return jresult; } -SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_Window_New__SWIG_3(void * jarg1, char * jarg2, char * jarg3) { +SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_Window_New__SWIG_2(void * jarg1, char * jarg2, char * jarg3, unsigned int jarg4) { + void * jresult ; + Dali::PositionSize arg1 ; + std::string *arg2 = 0 ; + std::string *arg3 = 0 ; + bool arg4 ; + Dali::PositionSize *argp1 ; + Dali::Window result; + + argp1 = (Dali::PositionSize *)jarg1; + if (!argp1) { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Dali::PositionSize", 0); + return 0; + } + arg1 = *argp1; + if (!jarg2) { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "null string", 0); + return 0; + } + std::string arg2_str(jarg2); + arg2 = &arg2_str; + if (!jarg3) { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "null string", 0); + return 0; + } + std::string arg3_str(jarg3); + arg3 = &arg3_str; + arg4 = jarg4 ? true : false; + { + try { + result = Dali::Window::New(arg1,(std::string const &)*arg2,(std::string const &)*arg3,arg4); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = new Dali::Window((const Dali::Window &)result); + + //argout typemap for const std::string& + + + //argout typemap for const std::string& + + return jresult; +} + + +SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_Window_New__SWIG_3(void * jarg1, char * jarg2, char * jarg3) { void * jresult ; Dali::PositionSize arg1 ; std::string *arg2 = 0 ; @@ -55795,7 +56083,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Dali_IMAGE_VISUAL_BORDER_ONLY_get() { } -SWIGEXPORT int SWIGSTDCALL CSharp_Dali_BATCHING_ENABLED_get() { +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_IMAGE_VISUAL_BATCHING_ENABLED_get() { int jresult ; int result; @@ -55821,7 +56109,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Dali_BATCHING_ENABLED_get() { } -SWIGEXPORT int SWIGSTDCALL CSharp_Dali_PIXEL_AREA_get() { +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_IMAGE_VISUAL_PIXEL_AREA_get() { int jresult ; int result; @@ -55847,7 +56135,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Dali_PIXEL_AREA_get() { } -SWIGEXPORT int SWIGSTDCALL CSharp_Dali_WRAP_MODE_U_get() { +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_IMAGE_VISUAL_WRAP_MODE_U_get() { int jresult ; int result; @@ -55873,13 +56161,533 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Dali_WRAP_MODE_U_get() { } -SWIGEXPORT int SWIGSTDCALL CSharp_Dali_WRAP_MODE_V_get() { +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_IMAGE_VISUAL_WRAP_MODE_V_get() { + int jresult ; + int result; + + { + try { + result = (int)Dali::Toolkit::ImageVisual::Property::WRAP_MODE_V; + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (int)result; + return jresult; +} + + +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_OBJECT_URL_get() { + int jresult ; + int result; + + { + try { + result = (int)Dali::Toolkit::MeshVisual::Property::OBJECT_URL; + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (int)result; + return jresult; +} + + +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_MATERIAL_URL_get() { + int jresult ; + int result; + + { + try { + result = (int)Dali::Toolkit::MeshVisual::Property::MATERIAL_URL; + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (int)result; + return jresult; +} + + +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_TEXTURES_PATH_get() { + int jresult ; + int result; + + { + try { + result = (int)Dali::Toolkit::MeshVisual::Property::TEXTURES_PATH; + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (int)result; + return jresult; +} + + +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_SHADING_MODE_get() { + int jresult ; + int result; + + { + try { + result = (int)Dali::Toolkit::MeshVisual::Property::SHADING_MODE; + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (int)result; + return jresult; +} + + +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_USE_MIPMAPPING_get() { + int jresult ; + int result; + + { + try { + result = (int)Dali::Toolkit::MeshVisual::Property::USE_MIPMAPPING; + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (int)result; + return jresult; +} + + +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_USE_SOFT_NORMALS_get() { + int jresult ; + int result; + + { + try { + result = (int)Dali::Toolkit::MeshVisual::Property::USE_SOFT_NORMALS; + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (int)result; + return jresult; +} + + +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_LIGHT_POSITION_get() { + int jresult ; + int result; + + { + try { + result = (int)Dali::Toolkit::MeshVisual::Property::LIGHT_POSITION; + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (int)result; + return jresult; +} + + +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_SHAPE_get() { + int jresult ; + int result; + + { + try { + result = (int)Dali::Toolkit::PrimitiveVisual::Property::SHAPE; + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (int)result; + return jresult; +} + + +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_PRIMITIVE_VISUAL_MIX_COLOR_get() { + int jresult ; + int result; + + { + try { + result = (int)Dali::Toolkit::PrimitiveVisual::Property::MIX_COLOR; + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (int)result; + return jresult; +} + + +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_SLICES_get() { + int jresult ; + int result; + + { + try { + result = (int)Dali::Toolkit::PrimitiveVisual::Property::SLICES; + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (int)result; + return jresult; +} + + +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_STACKS_get() { + int jresult ; + int result; + + { + try { + result = (int)Dali::Toolkit::PrimitiveVisual::Property::STACKS; + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (int)result; + return jresult; +} + + +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_SCALE_TOP_RADIUS_get() { + int jresult ; + int result; + + { + try { + result = (int)Dali::Toolkit::PrimitiveVisual::Property::SCALE_TOP_RADIUS; + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (int)result; + return jresult; +} + + +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_SCALE_BOTTOM_RADIUS_get() { + int jresult ; + int result; + + { + try { + result = (int)Dali::Toolkit::PrimitiveVisual::Property::SCALE_BOTTOM_RADIUS; + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (int)result; + return jresult; +} + + +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_SCALE_HEIGHT_get() { + int jresult ; + int result; + + { + try { + result = (int)Dali::Toolkit::PrimitiveVisual::Property::SCALE_HEIGHT; + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (int)result; + return jresult; +} + + +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_SCALE_RADIUS_get() { + int jresult ; + int result; + + { + try { + result = (int)Dali::Toolkit::PrimitiveVisual::Property::SCALE_RADIUS; + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (int)result; + return jresult; +} + + +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_SCALE_DIMENSIONS_get() { + int jresult ; + int result; + + { + try { + result = (int)Dali::Toolkit::PrimitiveVisual::Property::SCALE_DIMENSIONS; + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (int)result; + return jresult; +} + + +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_BEVEL_PERCENTAGE_get() { + int jresult ; + int result; + + { + try { + result = (int)Dali::Toolkit::PrimitiveVisual::Property::BEVEL_PERCENTAGE; + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (int)result; + return jresult; +} + + +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_BEVEL_SMOOTHNESS_get() { + int jresult ; + int result; + + { + try { + result = (int)Dali::Toolkit::PrimitiveVisual::Property::BEVEL_SMOOTHNESS; + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (int)result; + return jresult; +} + + +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_PRIMITIVE_VISUAL_LIGHT_POSITION_get() { + int jresult ; + int result; + + { + try { + result = (int)Dali::Toolkit::PrimitiveVisual::Property::LIGHT_POSITION; + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (int)result; + return jresult; +} + + +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_RENDERING_BACKEND_get() { int jresult ; int result; { try { - result = (int)Dali::Toolkit::ImageVisual::Property::WRAP_MODE_V; + result = (int)Dali::Toolkit::TextVisual::Property::RENDERING_BACKEND; } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -55899,13 +56707,13 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Dali_WRAP_MODE_V_get() { } -SWIGEXPORT int SWIGSTDCALL CSharp_Dali_OBJECT_URL_get() { +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_TEXT_get() { int jresult ; int result; { try { - result = (int)Dali::Toolkit::MeshVisual::Property::OBJECT_URL; + result = (int)Dali::Toolkit::TextVisual::Property::TEXT; } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -55925,13 +56733,13 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Dali_OBJECT_URL_get() { } -SWIGEXPORT int SWIGSTDCALL CSharp_Dali_MATERIAL_URL_get() { +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_FONT_FAMILY_get() { int jresult ; int result; { try { - result = (int)Dali::Toolkit::MeshVisual::Property::MATERIAL_URL; + result = (int)Dali::Toolkit::TextVisual::Property::FONT_FAMILY; } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -55951,13 +56759,13 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Dali_MATERIAL_URL_get() { } -SWIGEXPORT int SWIGSTDCALL CSharp_Dali_TEXTURES_PATH_get() { +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_FONT_STYLE_get() { int jresult ; int result; { try { - result = (int)Dali::Toolkit::MeshVisual::Property::TEXTURES_PATH; + result = (int)Dali::Toolkit::TextVisual::Property::FONT_STYLE; } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -55977,13 +56785,13 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Dali_TEXTURES_PATH_get() { } -SWIGEXPORT int SWIGSTDCALL CSharp_Dali_SHADING_MODE_get() { +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_POINT_SIZE_get() { int jresult ; int result; { try { - result = (int)Dali::Toolkit::MeshVisual::Property::SHADING_MODE; + result = (int)Dali::Toolkit::TextVisual::Property::POINT_SIZE; } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -56003,13 +56811,13 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Dali_SHADING_MODE_get() { } -SWIGEXPORT int SWIGSTDCALL CSharp_Dali_USE_MIPMAPPING_get() { +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_MULTI_LINE_get() { int jresult ; int result; { try { - result = (int)Dali::Toolkit::MeshVisual::Property::USE_MIPMAPPING; + result = (int)Dali::Toolkit::TextVisual::Property::MULTI_LINE; } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -56029,13 +56837,13 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Dali_USE_MIPMAPPING_get() { } -SWIGEXPORT int SWIGSTDCALL CSharp_Dali_USE_SOFT_NORMALS_get() { +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_HORIZONTAL_ALIGNMENT_get() { int jresult ; int result; { try { - result = (int)Dali::Toolkit::MeshVisual::Property::USE_SOFT_NORMALS; + result = (int)Dali::Toolkit::TextVisual::Property::HORIZONTAL_ALIGNMENT; } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -56055,13 +56863,13 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Dali_USE_SOFT_NORMALS_get() { } -SWIGEXPORT int SWIGSTDCALL CSharp_Dali_LIGHT_POSITION_get() { +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_VERTICAL_ALIGNMENT_get() { int jresult ; int result; { try { - result = (int)Dali::Toolkit::MeshVisual::Property::LIGHT_POSITION; + result = (int)Dali::Toolkit::TextVisual::Property::VERTICAL_ALIGNMENT; } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -56081,13 +56889,13 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Dali_LIGHT_POSITION_get() { } -SWIGEXPORT int SWIGSTDCALL CSharp_Dali_SHAPE_get() { +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_TEXT_COLOR_get() { int jresult ; int result; { try { - result = (int)Dali::Toolkit::PrimitiveVisual::Property::SHAPE; + result = (int)Dali::Toolkit::TextVisual::Property::TEXT_COLOR; } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -56107,13 +56915,13 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Dali_SHAPE_get() { } -SWIGEXPORT int SWIGSTDCALL CSharp_Dali_PRIMITIVE_VISUAL_MIX_COLOR_get() { +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_ENABLE_MARKUP_get() { int jresult ; int result; { try { - result = (int)Dali::Toolkit::PrimitiveVisual::Property::MIX_COLOR; + result = (int)Dali::Toolkit::TextVisual::Property::ENABLE_MARKUP; } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -56133,13 +56941,13 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Dali_PRIMITIVE_VISUAL_MIX_COLOR_get() { } -SWIGEXPORT int SWIGSTDCALL CSharp_Dali_SLICES_get() { +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_ENABLE_AUTO_SCROLL_get() { int jresult ; int result; { try { - result = (int)Dali::Toolkit::PrimitiveVisual::Property::SLICES; + result = (int)Dali::Toolkit::TextVisual::Property::ENABLE_AUTO_SCROLL; } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -56159,13 +56967,13 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Dali_SLICES_get() { } -SWIGEXPORT int SWIGSTDCALL CSharp_Dali_STACKS_get() { +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_AUTO_SCROLL_SPEED_get() { int jresult ; int result; { try { - result = (int)Dali::Toolkit::PrimitiveVisual::Property::STACKS; + result = (int)Dali::Toolkit::TextVisual::Property::AUTO_SCROLL_SPEED; } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -56185,13 +56993,13 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Dali_STACKS_get() { } -SWIGEXPORT int SWIGSTDCALL CSharp_Dali_SCALE_TOP_RADIUS_get() { +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_AUTO_SCROLL_LOOP_COUNT_get() { int jresult ; int result; { try { - result = (int)Dali::Toolkit::PrimitiveVisual::Property::SCALE_TOP_RADIUS; + result = (int)Dali::Toolkit::TextVisual::Property::AUTO_SCROLL_LOOP_COUNT; } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -56211,13 +57019,13 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Dali_SCALE_TOP_RADIUS_get() { } -SWIGEXPORT int SWIGSTDCALL CSharp_Dali_SCALE_BOTTOM_RADIUS_get() { +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_AUTO_SCROLL_GAP_get() { int jresult ; int result; { try { - result = (int)Dali::Toolkit::PrimitiveVisual::Property::SCALE_BOTTOM_RADIUS; + result = (int)Dali::Toolkit::TextVisual::Property::AUTO_SCROLL_GAP; } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -56237,13 +57045,13 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Dali_SCALE_BOTTOM_RADIUS_get() { } -SWIGEXPORT int SWIGSTDCALL CSharp_Dali_SCALE_HEIGHT_get() { +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_LINE_SPACING_get() { int jresult ; int result; { try { - result = (int)Dali::Toolkit::PrimitiveVisual::Property::SCALE_HEIGHT; + result = (int)Dali::Toolkit::TextVisual::Property::LINE_SPACING; } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -56263,13 +57071,13 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Dali_SCALE_HEIGHT_get() { } -SWIGEXPORT int SWIGSTDCALL CSharp_Dali_SCALE_RADIUS_get() { +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_UNDERLINE_get() { int jresult ; int result; { try { - result = (int)Dali::Toolkit::PrimitiveVisual::Property::SCALE_RADIUS; + result = (int)Dali::Toolkit::TextVisual::Property::UNDERLINE; } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -56289,13 +57097,13 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Dali_SCALE_RADIUS_get() { } -SWIGEXPORT int SWIGSTDCALL CSharp_Dali_SCALE_DIMENSIONS_get() { +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_SHADOW_get() { int jresult ; int result; { try { - result = (int)Dali::Toolkit::PrimitiveVisual::Property::SCALE_DIMENSIONS; + result = (int)Dali::Toolkit::TextVisual::Property::SHADOW; } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -56315,13 +57123,13 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Dali_SCALE_DIMENSIONS_get() { } -SWIGEXPORT int SWIGSTDCALL CSharp_Dali_BEVEL_PERCENTAGE_get() { +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_EMBOSS_get() { int jresult ; int result; { try { - result = (int)Dali::Toolkit::PrimitiveVisual::Property::BEVEL_PERCENTAGE; + result = (int)Dali::Toolkit::TextVisual::Property::EMBOSS; } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -56341,13 +57149,13 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Dali_BEVEL_PERCENTAGE_get() { } -SWIGEXPORT int SWIGSTDCALL CSharp_Dali_BEVEL_SMOOTHNESS_get() { +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_OUTLINE_get() { int jresult ; int result; { try { - result = (int)Dali::Toolkit::PrimitiveVisual::Property::BEVEL_SMOOTHNESS; + result = (int)Dali::Toolkit::TextVisual::Property::OUTLINE; } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -56367,13 +57175,13 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Dali_BEVEL_SMOOTHNESS_get() { } -SWIGEXPORT int SWIGSTDCALL CSharp_Dali_PRIMITIVE_VISUAL_LIGHT_POSITION_get() { +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_BATCHING_ENABLED_get() { int jresult ; int result; { try { - result = (int)Dali::Toolkit::PrimitiveVisual::Property::LIGHT_POSITION; + result = (int)Dali::Toolkit::TextVisual::Property::BATCHING_ENABLED; } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -57351,6 +58159,306 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_Builder_QuitSignal(void * jarg1) { } +SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_new_TransitionData__SWIG_0() { + void * jresult ; + Dali::Toolkit::TransitionData *result = 0 ; + + { + try { + result = (Dali::Toolkit::TransitionData *)new Dali::Toolkit::TransitionData(); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (void *)result; + return jresult; +} + + +SWIGEXPORT void SWIGSTDCALL CSharp_Dali_delete_TransitionData(void * jarg1) { + Dali::Toolkit::TransitionData *arg1 = (Dali::Toolkit::TransitionData *) 0 ; + + arg1 = (Dali::Toolkit::TransitionData *)jarg1; + { + try { + delete arg1; + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return ; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return ; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return ; + }; + } + } +} + + +SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_TransitionData_New__SWIG_0(void * jarg1) { + void * jresult ; + Dali::Property::Map *arg1 = 0 ; + Dali::Toolkit::TransitionData result; + + arg1 = (Dali::Property::Map *)jarg1; + if (!arg1) { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Dali::Property::Map const & type is null", 0); + return 0; + } + { + try { + result = Dali::Toolkit::TransitionData::New((Dali::Property::Map const &)*arg1); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = new Dali::Toolkit::TransitionData((const Dali::Toolkit::TransitionData &)result); + return jresult; +} + + +SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_TransitionData_New__SWIG_1(void * jarg1) { + void * jresult ; + Dali::Property::Array *arg1 = 0 ; + Dali::Toolkit::TransitionData result; + + arg1 = (Dali::Property::Array *)jarg1; + if (!arg1) { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Dali::Property::Array const & type is null", 0); + return 0; + } + { + try { + result = Dali::Toolkit::TransitionData::New((Dali::Property::Array const &)*arg1); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = new Dali::Toolkit::TransitionData((const Dali::Toolkit::TransitionData &)result); + return jresult; +} + + +SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_TransitionData_DownCast(void * jarg1) { + void * jresult ; + Dali::BaseHandle arg1 ; + Dali::BaseHandle *argp1 ; + Dali::Toolkit::TransitionData result; + + argp1 = (Dali::BaseHandle *)jarg1; + if (!argp1) { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Dali::BaseHandle", 0); + return 0; + } + arg1 = *argp1; + { + try { + result = Dali::Toolkit::TransitionData::DownCast(arg1); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = new Dali::Toolkit::TransitionData((const Dali::Toolkit::TransitionData &)result); + return jresult; +} + + +SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_new_TransitionData__SWIG_1(void * jarg1) { + void * jresult ; + Dali::Toolkit::TransitionData *arg1 = 0 ; + Dali::Toolkit::TransitionData *result = 0 ; + + arg1 = (Dali::Toolkit::TransitionData *)jarg1; + if (!arg1) { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Dali::Toolkit::TransitionData const & type is null", 0); + return 0; + } + { + try { + result = (Dali::Toolkit::TransitionData *)new Dali::Toolkit::TransitionData((Dali::Toolkit::TransitionData const &)*arg1); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (void *)result; + return jresult; +} + + +SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_TransitionData_Assign(void * jarg1, void * jarg2) { + void * jresult ; + Dali::Toolkit::TransitionData *arg1 = (Dali::Toolkit::TransitionData *) 0 ; + Dali::Toolkit::TransitionData *arg2 = 0 ; + Dali::Toolkit::TransitionData *result = 0 ; + + arg1 = (Dali::Toolkit::TransitionData *)jarg1; + arg2 = (Dali::Toolkit::TransitionData *)jarg2; + if (!arg2) { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Dali::Toolkit::TransitionData const & type is null", 0); + return 0; + } + { + try { + result = (Dali::Toolkit::TransitionData *) &(arg1)->operator =((Dali::Toolkit::TransitionData const &)*arg2); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (void *)result; + return jresult; +} + + +SWIGEXPORT unsigned long SWIGSTDCALL CSharp_Dali_TransitionData_Count(void * jarg1) { + unsigned long jresult ; + Dali::Toolkit::TransitionData *arg1 = (Dali::Toolkit::TransitionData *) 0 ; + size_t result; + + arg1 = (Dali::Toolkit::TransitionData *)jarg1; + { + try { + result = ((Dali::Toolkit::TransitionData const *)arg1)->Count(); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (unsigned long)result; + return jresult; +} + + +SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_TransitionData_GetAnimatorAt(void * jarg1, unsigned long jarg2) { + void * jresult ; + Dali::Toolkit::TransitionData *arg1 = (Dali::Toolkit::TransitionData *) 0 ; + size_t arg2 ; + Dali::Property::Map result; + + arg1 = (Dali::Toolkit::TransitionData *)jarg1; + arg2 = (size_t)jarg2; + { + try { + result = (arg1)->GetAnimatorAt(arg2); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = new Dali::Property::Map((const Dali::Property::Map &)result); + return jresult; +} + + +SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_new_TransitionData__SWIG_2(void * jarg1) { + void * jresult ; + Dali::Toolkit::Internal::TransitionData *arg1 = (Dali::Toolkit::Internal::TransitionData *) 0 ; + Dali::Toolkit::TransitionData *result = 0 ; + + arg1 = (Dali::Toolkit::Internal::TransitionData *)jarg1; + { + try { + result = (Dali::Toolkit::TransitionData *)new Dali::Toolkit::TransitionData(arg1); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (void *)result; + return jresult; +} + + SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_ViewImpl_New() { void * jresult ; Dali::Toolkit::Control result; @@ -59557,6 +60665,266 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_new_View__SWIG_2(void * jarg1) { } +SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_new_KeyInputFocusManager() { + void * jresult ; + Dali::Toolkit::KeyInputFocusManager *result = 0 ; + + { + try { + result = (Dali::Toolkit::KeyInputFocusManager *)new Dali::Toolkit::KeyInputFocusManager(); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (void *)result; + return jresult; +} + + +SWIGEXPORT void SWIGSTDCALL CSharp_Dali_delete_KeyInputFocusManager(void * jarg1) { + Dali::Toolkit::KeyInputFocusManager *arg1 = (Dali::Toolkit::KeyInputFocusManager *) 0 ; + + arg1 = (Dali::Toolkit::KeyInputFocusManager *)jarg1; + { + try { + delete arg1; + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return ; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return ; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return ; + }; + } + } +} + + +SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_KeyInputFocusManager_Get() { + void * jresult ; + Dali::Toolkit::KeyInputFocusManager result; + + { + try { + result = Dali::Toolkit::KeyInputFocusManager::Get(); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = new Dali::Toolkit::KeyInputFocusManager((const Dali::Toolkit::KeyInputFocusManager &)result); + return jresult; +} + + +SWIGEXPORT void SWIGSTDCALL CSharp_Dali_KeyInputFocusManager_SetFocus(void * jarg1, void * jarg2) { + Dali::Toolkit::KeyInputFocusManager *arg1 = (Dali::Toolkit::KeyInputFocusManager *) 0 ; + Dali::Toolkit::Control arg2 ; + Dali::Toolkit::Control *argp2 ; + + arg1 = (Dali::Toolkit::KeyInputFocusManager *)jarg1; + argp2 = (Dali::Toolkit::Control *)jarg2; + if (!argp2) { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Dali::Toolkit::Control", 0); + return ; + } + arg2 = *argp2; + { + try { + (arg1)->SetFocus(arg2); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return ; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return ; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return ; + }; + } + } +} + + +SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_KeyInputFocusManager_GetCurrentFocusControl(void * jarg1) { + void * jresult ; + Dali::Toolkit::KeyInputFocusManager *arg1 = (Dali::Toolkit::KeyInputFocusManager *) 0 ; + Dali::Toolkit::Control result; + + arg1 = (Dali::Toolkit::KeyInputFocusManager *)jarg1; + { + try { + result = ((Dali::Toolkit::KeyInputFocusManager const *)arg1)->GetCurrentFocusControl(); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = new Dali::Toolkit::Control((const Dali::Toolkit::Control &)result); + return jresult; +} + + +SWIGEXPORT void SWIGSTDCALL CSharp_Dali_KeyInputFocusManager_RemoveFocus(void * jarg1, void * jarg2) { + Dali::Toolkit::KeyInputFocusManager *arg1 = (Dali::Toolkit::KeyInputFocusManager *) 0 ; + Dali::Toolkit::Control arg2 ; + Dali::Toolkit::Control *argp2 ; + + arg1 = (Dali::Toolkit::KeyInputFocusManager *)jarg1; + argp2 = (Dali::Toolkit::Control *)jarg2; + if (!argp2) { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Dali::Toolkit::Control", 0); + return ; + } + arg2 = *argp2; + { + try { + (arg1)->RemoveFocus(arg2); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return ; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return ; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return ; + }; + } + } +} + + +SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Dali_KeyInputFocusManager_IsKeyboardListener(void * jarg1, void * jarg2) { + unsigned int jresult ; + Dali::Toolkit::KeyInputFocusManager *arg1 = (Dali::Toolkit::KeyInputFocusManager *) 0 ; + Dali::Toolkit::Control arg2 ; + Dali::Toolkit::Control *argp2 ; + bool result; + + arg1 = (Dali::Toolkit::KeyInputFocusManager *)jarg1; + argp2 = (Dali::Toolkit::Control *)jarg2; + if (!argp2) { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Dali::Toolkit::Control", 0); + return 0; + } + arg2 = *argp2; + { + try { + result = (bool)(arg1)->IsKeyboardListener(arg2); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = result; + return jresult; +} + + +SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_KeyInputFocusManager_KeyInputFocusChangedSignal(void * jarg1) { + void * jresult ; + Dali::Toolkit::KeyInputFocusManager *arg1 = (Dali::Toolkit::KeyInputFocusManager *) 0 ; + Dali::Toolkit::KeyInputFocusManager::KeyInputFocusChangedSignalType *result = 0 ; + + arg1 = (Dali::Toolkit::KeyInputFocusManager *)jarg1; + { + try { + result = (Dali::Toolkit::KeyInputFocusManager::KeyInputFocusChangedSignalType *) &(arg1)->KeyInputFocusChangedSignal(); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (void *)result; + return jresult; +} + + +SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_KeyInputFocusManager_UnhandledKeyEventSignal(void * jarg1) { + void * jresult ; + Dali::Toolkit::KeyInputFocusManager *arg1 = (Dali::Toolkit::KeyInputFocusManager *) 0 ; + Dali::Toolkit::KeyInputFocusManager::UnhandledKeyEventSignalType *result = 0 ; + + arg1 = (Dali::Toolkit::KeyInputFocusManager *)jarg1; + { + try { + result = (Dali::Toolkit::KeyInputFocusManager::UnhandledKeyEventSignalType *) &(arg1)->UnhandledKeyEventSignal(); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = (void *)result; + return jresult; +} + + SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_new_Alignment_Padding__SWIG_0() { void * jresult ; Dali::Toolkit::Alignment::Padding *result = 0 ; @@ -79385,7 +80753,7 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_PageFactory_NewPage(void * jarg1, unsi void * jresult ; Dali::Toolkit::PageFactory *arg1 = (Dali::Toolkit::PageFactory *) 0 ; unsigned int arg2 ; - Dali::Image result; + Dali::Texture result; arg1 = (Dali::Toolkit::PageFactory *)jarg1; arg2 = (unsigned int)jarg2; @@ -79406,7 +80774,7 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_PageFactory_NewPage(void * jarg1, unsi }; } } - jresult = new Dali::Image((const Dali::Image &)result); + jresult = new Dali::Texture((const Dali::Texture &)result); return jresult; } @@ -80245,19 +81613,20 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_VisualBase_Assign(void * jarg1, void * } -SWIGEXPORT void SWIGSTDCALL CSharp_Dali_VisualBase_SetSize(void * jarg1, void * jarg2) { +SWIGEXPORT void SWIGSTDCALL CSharp_Dali_VisualBase_SetName(void * jarg1, char * jarg2) { Dali::Toolkit::Visual::Base *arg1 = (Dali::Toolkit::Visual::Base *) 0 ; - Dali::Vector2 *arg2 = 0 ; + std::string *arg2 = 0 ; arg1 = (Dali::Toolkit::Visual::Base *)jarg1; - arg2 = (Dali::Vector2 *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Dali::Vector2 const & type is null", 0); + if (!jarg2) { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "null string", 0); return ; - } + } + std::string arg2_str(jarg2); + arg2 = &arg2_str; { try { - (arg1)->SetSize((Dali::Vector2 const &)*arg2); + (arg1)->SetName((std::string const &)*arg2); } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return ; @@ -80272,18 +81641,21 @@ SWIGEXPORT void SWIGSTDCALL CSharp_Dali_VisualBase_SetSize(void * jarg1, void * }; } } + + //argout typemap for const std::string& + } -SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_VisualBase_GetSize(void * jarg1) { - void * jresult ; +SWIGEXPORT char * SWIGSTDCALL CSharp_Dali_VisualBase_GetName(void * jarg1) { + char * jresult ; Dali::Toolkit::Visual::Base *arg1 = (Dali::Toolkit::Visual::Base *) 0 ; - Dali::Vector2 *result = 0 ; + std::string *result = 0 ; arg1 = (Dali::Toolkit::Visual::Base *)jarg1; { try { - result = (Dali::Vector2 *) &((Dali::Toolkit::Visual::Base const *)arg1)->GetSize(); + result = (std::string *) &(arg1)->GetName(); } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -80298,24 +81670,24 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_VisualBase_GetSize(void * jarg1) { }; } } - jresult = (void *)result; + jresult = SWIG_csharp_string_callback(result->c_str()); return jresult; } -SWIGEXPORT void SWIGSTDCALL CSharp_Dali_VisualBase_GetNaturalSize(void * jarg1, void * jarg2) { +SWIGEXPORT void SWIGSTDCALL CSharp_Dali_VisualBase_SetSize(void * jarg1, void * jarg2) { Dali::Toolkit::Visual::Base *arg1 = (Dali::Toolkit::Visual::Base *) 0 ; Dali::Vector2 *arg2 = 0 ; arg1 = (Dali::Toolkit::Visual::Base *)jarg1; arg2 = (Dali::Vector2 *)jarg2; if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Dali::Vector2 & type is null", 0); + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Dali::Vector2 const & type is null", 0); return ; } { try { - ((Dali::Toolkit::Visual::Base const *)arg1)->GetNaturalSize(*arg2); + (arg1)->SetSize((Dali::Vector2 const &)*arg2); } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return ; @@ -80333,41 +81705,45 @@ SWIGEXPORT void SWIGSTDCALL CSharp_Dali_VisualBase_GetNaturalSize(void * jarg1, } -SWIGEXPORT void SWIGSTDCALL CSharp_Dali_VisualBase_SetDepthIndex(void * jarg1, float jarg2) { +SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_VisualBase_GetSize(void * jarg1) { + void * jresult ; Dali::Toolkit::Visual::Base *arg1 = (Dali::Toolkit::Visual::Base *) 0 ; - float arg2 ; + Dali::Vector2 *result = 0 ; arg1 = (Dali::Toolkit::Visual::Base *)jarg1; - arg2 = (float)jarg2; { try { - (arg1)->SetDepthIndex(arg2); + result = (Dali::Vector2 *) &((Dali::Toolkit::Visual::Base const *)arg1)->GetSize(); } catch (std::out_of_range& e) { { - SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return ; + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; }; } catch (std::exception& e) { { - SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return ; + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; }; } catch (...) { { - SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return ; + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; }; } } + jresult = (void *)result; + return jresult; } -SWIGEXPORT float SWIGSTDCALL CSharp_Dali_VisualBase_GetDepthIndex(void * jarg1) { +SWIGEXPORT float SWIGSTDCALL CSharp_Dali_VisualBase_GetHeightForWidth(void * jarg1, float jarg2) { float jresult ; Dali::Toolkit::Visual::Base *arg1 = (Dali::Toolkit::Visual::Base *) 0 ; + float arg2 ; float result; arg1 = (Dali::Toolkit::Visual::Base *)jarg1; + arg2 = (float)jarg2; { try { - result = (float)((Dali::Toolkit::Visual::Base const *)arg1)->GetDepthIndex(); + result = (float)((Dali::Toolkit::Visual::Base const *)arg1)->GetHeightForWidth(arg2); } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; @@ -80387,19 +81763,19 @@ SWIGEXPORT float SWIGSTDCALL CSharp_Dali_VisualBase_GetDepthIndex(void * jarg1) } -SWIGEXPORT void SWIGSTDCALL CSharp_Dali_VisualBase_SetOnStage(void * jarg1, void * jarg2) { +SWIGEXPORT void SWIGSTDCALL CSharp_Dali_VisualBase_GetNaturalSize(void * jarg1, void * jarg2) { Dali::Toolkit::Visual::Base *arg1 = (Dali::Toolkit::Visual::Base *) 0 ; - Dali::Actor *arg2 = 0 ; + Dali::Vector2 *arg2 = 0 ; arg1 = (Dali::Toolkit::Visual::Base *)jarg1; - arg2 = (Dali::Actor *)jarg2; + arg2 = (Dali::Vector2 *)jarg2; if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Dali::Actor & type is null", 0); + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Dali::Vector2 & type is null", 0); return ; } { try { - (arg1)->SetOnStage(*arg2); + (arg1)->GetNaturalSize(*arg2); } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return ; @@ -80417,19 +81793,15 @@ SWIGEXPORT void SWIGSTDCALL CSharp_Dali_VisualBase_SetOnStage(void * jarg1, void } -SWIGEXPORT void SWIGSTDCALL CSharp_Dali_VisualBase_SetOffStage(void * jarg1, void * jarg2) { +SWIGEXPORT void SWIGSTDCALL CSharp_Dali_VisualBase_SetDepthIndex(void * jarg1, float jarg2) { Dali::Toolkit::Visual::Base *arg1 = (Dali::Toolkit::Visual::Base *) 0 ; - Dali::Actor *arg2 = 0 ; + float arg2 ; arg1 = (Dali::Toolkit::Visual::Base *)jarg1; - arg2 = (Dali::Actor *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Dali::Actor & type is null", 0); - return ; - } + arg2 = (float)jarg2; { try { - (arg1)->SetOffStage(*arg2); + (arg1)->SetDepthIndex(arg2); } catch (std::out_of_range& e) { { SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return ; @@ -80447,33 +81819,31 @@ SWIGEXPORT void SWIGSTDCALL CSharp_Dali_VisualBase_SetOffStage(void * jarg1, voi } -SWIGEXPORT void SWIGSTDCALL CSharp_Dali_VisualBase_RemoveAndReset(void * jarg1, void * jarg2) { +SWIGEXPORT float SWIGSTDCALL CSharp_Dali_VisualBase_GetDepthIndex(void * jarg1) { + float jresult ; Dali::Toolkit::Visual::Base *arg1 = (Dali::Toolkit::Visual::Base *) 0 ; - Dali::Actor *arg2 = 0 ; + float result; arg1 = (Dali::Toolkit::Visual::Base *)jarg1; - arg2 = (Dali::Actor *)jarg2; - if (!arg2) { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Dali::Actor & type is null", 0); - return ; - } { try { - (arg1)->RemoveAndReset(*arg2); + result = (float)((Dali::Toolkit::Visual::Base const *)arg1)->GetDepthIndex(); } catch (std::out_of_range& e) { { - SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return ; + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; }; } catch (std::exception& e) { { - SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return ; + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; }; } catch (...) { { - SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return ; + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; }; } } + jresult = result; + return jresult; } @@ -80507,6 +81877,68 @@ SWIGEXPORT void SWIGSTDCALL CSharp_Dali_VisualBase_CreatePropertyMap(void * jarg } +SWIGEXPORT void SWIGSTDCALL CSharp_Dali_VisualBase_SetProperty(void * jarg1, int jarg2, void * jarg3) { + Dali::Toolkit::Visual::Base *arg1 = (Dali::Toolkit::Visual::Base *) 0 ; + Dali::Property::Index arg2 ; + Dali::Property::Value *arg3 = 0 ; + + arg1 = (Dali::Toolkit::Visual::Base *)jarg1; + arg2 = (Dali::Property::Index)jarg2; + arg3 = (Dali::Property::Value *)jarg3; + if (!arg3) { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Dali::Property::Value const & type is null", 0); + return ; + } + { + try { + (arg1)->SetProperty(arg2,(Dali::Property::Value const &)*arg3); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return ; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return ; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return ; + }; + } + } +} + + +SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_VisualBase_GetProperty(void * jarg1, int jarg2) { + void * jresult ; + Dali::Toolkit::Visual::Base *arg1 = (Dali::Toolkit::Visual::Base *) 0 ; + Dali::Property::Index arg2 ; + Dali::Property::Value result; + + arg1 = (Dali::Toolkit::Visual::Base *)jarg1; + arg2 = (Dali::Property::Index)jarg2; + { + try { + result = (arg1)->GetProperty(arg2); + } catch (std::out_of_range& e) { + { + SWIG_CSharpException(SWIG_IndexError, const_cast(e.what())); return 0; + }; + } catch (std::exception& e) { + { + SWIG_CSharpException(SWIG_RuntimeError, const_cast(e.what())); return 0; + }; + } catch (...) { + { + SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0; + }; + } + } + jresult = new Dali::Property::Value((const Dali::Property::Value &)result); + return jresult; +} + + SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_new_VisualBase__SWIG_2(void * jarg1) { void * jresult ; Dali::Toolkit::Internal::Visual::Base *arg1 = (Dali::Toolkit::Internal::Visual::Base *) 0 ; @@ -88205,6 +89637,10 @@ SWIGEXPORT Dali::BaseHandle * SWIGSTDCALL CSharp_Dali_Builder_SWIGUpcast(Dali::T return (Dali::BaseHandle *)jarg1; } +SWIGEXPORT Dali::BaseHandle * SWIGSTDCALL CSharp_Dali_TransitionData_SWIGUpcast(Dali::Toolkit::TransitionData *jarg1) { + return (Dali::BaseHandle *)jarg1; +} + SWIGEXPORT Dali::CustomActorImpl * SWIGSTDCALL CSharp_Dali_ViewImpl_SWIGUpcast(Dali::Toolkit::Internal::Control *jarg1) { return (Dali::CustomActorImpl *)jarg1; } @@ -88213,6 +89649,10 @@ SWIGEXPORT Dali::CustomActor * SWIGSTDCALL CSharp_Dali_View_SWIGUpcast(Dali::Too return (Dali::CustomActor *)jarg1; } +SWIGEXPORT Dali::BaseHandle * SWIGSTDCALL CSharp_Dali_KeyInputFocusManager_SWIGUpcast(Dali::Toolkit::KeyInputFocusManager *jarg1) { + return (Dali::BaseHandle *)jarg1; +} + SWIGEXPORT Dali::Toolkit::Control * SWIGSTDCALL CSharp_Dali_Alignment_SWIGUpcast(Dali::Toolkit::Alignment *jarg1) { return (Dali::Toolkit::Control *)jarg1; } diff --git a/plugins/dali-swig/automatic/csharp/AccessibilityManager.cs b/plugins/dali-swig/automatic/csharp/AccessibilityManager.cs index 2205a7405d..f607ef131b 100644 --- a/plugins/dali-swig/automatic/csharp/AccessibilityManager.cs +++ b/plugins/dali-swig/automatic/csharp/AccessibilityManager.cs @@ -907,7 +907,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerStatusChangedEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerStatusChangedEventHandler(this, e, true); + return _accessibilityManagerStatusChangedEventHandler(this, e); } return false; } @@ -954,7 +954,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionNextEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionNextEventHandler(this, e, true); + return _accessibilityManagerActionNextEventHandler(this, e); } return false; } @@ -1001,7 +1001,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionPreviousEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionPreviousEventHandler(this, e, true); + return _accessibilityManagerActionPreviousEventHandler(this, e); } return false; } @@ -1048,7 +1048,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionActivateEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionActivateEventHandler(this, e, true); + return _accessibilityManagerActionActivateEventHandler(this, e); } return false; } @@ -1095,7 +1095,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionReadEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionReadEventHandler(this, e, true); + return _accessibilityManagerActionReadEventHandler(this, e); } return false; } @@ -1142,7 +1142,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionOverEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionOverEventHandler(this, e, true); + return _accessibilityManagerActionOverEventHandler(this, e); } return false; } @@ -1189,7 +1189,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionReadNextEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionReadNextEventHandler(this, e, true); + return _accessibilityManagerActionReadNextEventHandler(this, e); } return false; } @@ -1237,7 +1237,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionReadPreviousEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionReadPreviousEventHandler(this, e, true); + return _accessibilityManagerActionReadPreviousEventHandler(this, e); } return false; } @@ -1284,7 +1284,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionUpEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionUpEventHandler(this, e, true); + return _accessibilityManagerActionUpEventHandler(this, e); } return false; } @@ -1331,7 +1331,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionDownEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionDownEventHandler(this, e, true); + return _accessibilityManagerActionDownEventHandler(this, e); } return false; } @@ -1378,7 +1378,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionClearFocusEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionClearFocusEventHandler(this, e, true); + return _accessibilityManagerActionClearFocusEventHandler(this, e); } return false; } @@ -1425,7 +1425,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionBackEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionBackEventHandler(this, e, true); + return _accessibilityManagerActionBackEventHandler(this, e); } return false; } @@ -1472,7 +1472,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionScrollUpEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionScrollUpEventHandler(this, e, true); + return _accessibilityManagerActionScrollUpEventHandler(this, e); } return false; } @@ -1519,7 +1519,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionScrollDownEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionScrollDownEventHandler(this, e, true); + return _accessibilityManagerActionScrollDownEventHandler(this, e); } return false; } @@ -1567,7 +1567,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionPageLeftEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionPageLeftEventHandler(this, e, true); + return _accessibilityManagerActionPageLeftEventHandler(this, e); } return false; } @@ -1614,7 +1614,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionPageRightEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionPageRightEventHandler(this, e, true); + return _accessibilityManagerActionPageRightEventHandler(this, e); } return false; } @@ -1661,7 +1661,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionPageUpEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionPageUpEventHandler(this, e, true); + return _accessibilityManagerActionPageUpEventHandler(this, e); } return false; } @@ -1709,7 +1709,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionPageDownEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionPageDownEventHandler(this, e, true); + return _accessibilityManagerActionPageDownEventHandler(this, e); } return false; } @@ -1757,7 +1757,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionMoveToFirstEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionMoveToFirstEventHandler(this, e, true); + return _accessibilityManagerActionMoveToFirstEventHandler(this, e); } return false; } @@ -1804,7 +1804,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionMoveToLastEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionMoveToLastEventHandler(this, e, true); + return _accessibilityManagerActionMoveToLastEventHandler(this, e); } return false; } @@ -1851,7 +1851,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionReadFromTopEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionReadFromTopEventHandler(this, e, true); + return _accessibilityManagerActionReadFromTopEventHandler(this, e); } return false; } @@ -1898,7 +1898,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionReadFromNextEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionReadFromNextEventHandler(this, e, true); + return _accessibilityManagerActionReadFromNextEventHandler(this, e); } return false; } @@ -1945,7 +1945,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionZoomEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionZoomEventHandler(this, e, true); + return _accessibilityManagerActionZoomEventHandler(this, e); } return false; } @@ -1992,7 +1992,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionReadIndicatorInformationEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionReadIndicatorInformationEventHandler(this, e, true); + return _accessibilityManagerActionReadIndicatorInformationEventHandler(this, e); } return false; } @@ -2039,7 +2039,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionReadPauseResumeEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionReadPauseResumeEventHandler(this, e, true); + return _accessibilityManagerActionReadPauseResumeEventHandler(this, e); } return false; } @@ -2086,7 +2086,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionStartStopEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionStartStopEventHandler(this, e, true); + return _accessibilityManagerActionStartStopEventHandler(this, e); } return false; } @@ -2134,7 +2134,7 @@ public class AccessibilityManager : BaseHandle { if (_accessibilityManagerActionScrollEventHandler != null) { //here we send all data to user event handlers - return _accessibilityManagerActionScrollEventHandler(this, e, true); + return _accessibilityManagerActionScrollEventHandler(this, e); } return false; } diff --git a/plugins/dali-swig/automatic/csharp/Actor.cs b/plugins/dali-swig/automatic/csharp/Actor.cs index 3dda733c8a..c09fa1ffbc 100644 --- a/plugins/dali-swig/automatic/csharp/Actor.cs +++ b/plugins/dali-swig/automatic/csharp/Actor.cs @@ -59,555 +59,6 @@ public class Actor : Handle { } - - /** - * @brief Event arguments that passed via Touch signal - * - */ - public class TouchEventArgs : EventArgs - { - private Actor _actor; - private TouchData _touchData; - - /** - * @brief Actor - is the actor that is being touched - * - */ - public Actor Actor - { - get - { - return _actor; - } - set - { - _actor = value; - } - } - - /** - * @brief TouchData - contains the information of touch points - * - */ - public TouchData TouchData - { - get - { - return _touchData; - } - set - { - _touchData = value; - } - } - } - - /** - * @brief Event arguments that passed via Hover signal - * - */ - public class HoverEventArgs : EventArgs - { - private Actor _actor; - private HoverEvent _hoverEvent; - - /** - * @brief Actor - is the actor that is being hovered - * - */ - public Actor Actor - { - get - { - return _actor; - } - set - { - _actor = value; - } - } - - /** - * @brief HoverEvent - contains touch points that represent the points - * that are currently being hovered or the points where a hover has stopped - * - */ - public HoverEvent HoverEvent - { - get - { - return _hoverEvent; - } - set - { - _hoverEvent = value; - } - } - } - - /** - * @brief Event arguments that passed via Wheel signal - * - */ - public class WheelEventArgs : EventArgs - { - private Actor _actor; - private WheelEvent _wheelEvent; - - /** - * @brief Actor - is the actor that is being wheeled - * - */ - public Actor Actor - { - get - { - return _actor; - } - set - { - _actor = value; - } - } - - /** - * @brief WheelEvent - store a wheel rolling type : MOUSE_WHEEL or CUSTOM_WHEEL - * - */ - public WheelEvent WheelEvent - { - get - { - return _wheelEvent; - } - set - { - _wheelEvent = value; - } - } - } - - /** - * @brief Event arguments that passed via OnStage signal - * - */ - public class OnStageEventArgs : EventArgs - { - private Actor _actor; - - /** - * @brief Actor - is the actor that is being connected to the stage - * - */ - public Actor Actor - { - get - { - return _actor; - } - set - { - _actor = value; - } - } - } - - /** - * @brief Event arguments that passed via OffStage signal - * - */ - public class OffStageEventArgs : EventArgs - { - private Actor _actor; - - /** - * @brief Actor - is the actor that is being disconnected from the stage - * - */ - public Actor Actor - { - get - { - return _actor; - } - set - { - _actor = value; - } - } - } - - /** - * @brief Event arguments that passed via OnRelayout signal - * - */ - public class OnRelayoutEventArgs : EventArgs - { - private Actor _actor; - - /** - * @brief Actor - is the actor that is being resized upon relayout - * - */ - public Actor Actor - { - get - { - return _actor; - } - set - { - _actor = value; - } - } - } - - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - private delegate bool TouchCallbackDelegate(IntPtr actor, IntPtr touchData); - private DaliEventHandlerWithReturnType _actorTouchDataEventHandler; - private TouchCallbackDelegate _actorTouchDataCallbackDelegate; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - private delegate bool HoverEventCallbackDelegate(IntPtr actor, IntPtr hoverEvent); - private DaliEventHandlerWithReturnType _actorHoverEventHandler; - private HoverEventCallbackDelegate _actorHoverEventCallbackDelegate; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - private delegate bool WheelEventCallbackDelegate(IntPtr actor, IntPtr wheelEvent); - private DaliEventHandlerWithReturnType _actorWheelEventHandler; - private WheelEventCallbackDelegate _actorWheelEventCallbackDelegate; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - private delegate void OnStageEventCallbackDelegate(IntPtr actor); - private DaliEventHandler _actorOnStageEventHandler; - private OnStageEventCallbackDelegate _actorOnStageEventCallbackDelegate; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - private delegate void OffStageEventCallbackDelegate(IntPtr actor); - private DaliEventHandler _actorOffStageEventHandler; - private OffStageEventCallbackDelegate _actorOffStageEventCallbackDelegate; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - private delegate void OnRelayoutEventCallbackDelegate(IntPtr actor); - private DaliEventHandler _actorOnRelayoutEventHandler; - private OnRelayoutEventCallbackDelegate _actorOnRelayoutEventCallbackDelegate; - - /** - * @brief Event for Touched signal which can be used to subscribe/unsubscribe the event handler - * (in the type of TouchEventHandler-DaliEventHandlerWithReturnType) - * provided by the user. Touched signal is emitted when touch input is received. - */ - public event DaliEventHandlerWithReturnType Touched - { - add - { - lock(this) - { - // Restricted to only one listener - if (_actorTouchDataEventHandler == null) - { - _actorTouchDataEventHandler += value; - - _actorTouchDataCallbackDelegate = new TouchCallbackDelegate(OnTouch); - this.TouchSignal().Connect(_actorTouchDataCallbackDelegate); - } - } - } - - remove - { - lock(this) - { - if (_actorTouchDataEventHandler != null) - { - this.TouchSignal().Disconnect(_actorTouchDataCallbackDelegate); - } - - _actorTouchDataEventHandler -= value; - } - } - } - - // Callback for Actor TouchSignal - private bool OnTouch(IntPtr actor, IntPtr touchData) - { - TouchEventArgs e = new TouchEventArgs(); - - // Populate all members of "e" (TouchEventArgs) with real data - e.Actor = Actor.GetActorFromPtr(actor); - e.TouchData = Dali.TouchData.GetTouchDataFromPtr(touchData); - - if (_actorTouchDataEventHandler != null) - { - //here we send all data to user event handlers - return _actorTouchDataEventHandler(this, e, true); - } - - return false; - } - - /** - * @brief Event for Hovered signal which can be used to subscribe/unsubscribe the event handler - * (in the type of HoverEventHandler-DaliEventHandlerWithReturnType) - * provided by the user. Hovered signal is emitted when hover input is received. - */ - public event DaliEventHandlerWithReturnType Hovered - { - add - { - lock(this) - { - // Restricted to only one listener - if (_actorHoverEventHandler == null) - { - _actorHoverEventHandler += value; - - _actorHoverEventCallbackDelegate = new HoverEventCallbackDelegate(OnHoverEvent); - this.HoveredSignal().Connect(_actorHoverEventCallbackDelegate); - } - } - } - - remove - { - lock(this) - { - if (_actorHoverEventHandler != null) - { - this.HoveredSignal().Disconnect(_actorHoverEventCallbackDelegate); - } - - _actorHoverEventHandler -= value; - } - } - } - - // Callback for Actor Hover signal - private bool OnHoverEvent(IntPtr actor, IntPtr hoverEvent) - { - HoverEventArgs e = new HoverEventArgs(); - - // Populate all members of "e" (HoverEventArgs) with real data - e.Actor = Actor.GetActorFromPtr(actor); - e.HoverEvent = Dali.HoverEvent.GetHoverEventFromPtr(hoverEvent); - - if (_actorHoverEventHandler != null) - { - //here we send all data to user event handlers - return _actorHoverEventHandler(this, e, true); - } - - return false; - } - - /** - * @brief Event for WheelMoved signal which can be used to subscribe/unsubscribe the event handler - * (in the type of WheelEventHandler-DaliEventHandlerWithReturnType) - * provided by the user. WheelMoved signal is emitted when wheel event is received. - */ - public event DaliEventHandlerWithReturnType WheelMoved - { - add - { - lock(this) - { - // Restricted to only one listener - if (_actorWheelEventHandler == null) - { - _actorWheelEventHandler += value; - - _actorWheelEventCallbackDelegate = new WheelEventCallbackDelegate(OnWheelEvent); - this.WheelEventSignal().Connect(_actorWheelEventCallbackDelegate); - } - } - } - - remove - { - lock(this) - { - if (_actorWheelEventHandler != null) - { - this.WheelEventSignal().Disconnect(_actorWheelEventCallbackDelegate); - } - - _actorWheelEventHandler -= value; - } - } - } - - // Callback for Actor Wheel signal - private bool OnWheelEvent(IntPtr actor, IntPtr wheelEvent) - { - WheelEventArgs e = new WheelEventArgs(); - - // Populate all members of "e" (WheelEventArgs) with real data - e.Actor = Actor.GetActorFromPtr(actor); - e.WheelEvent = Dali.WheelEvent.GetWheelEventFromPtr(wheelEvent); - - if (_actorWheelEventHandler != null) - { - //here we send all data to user event handlers - return _actorWheelEventHandler(this, e, true); - } - - return false; - } - - /** - * @brief Event for OnStage signal which can be used to subscribe/unsubscribe the event handler - * (in the type of OnStageEventHandler) provided by the user. - * OnStage signal is emitted after the actor has been connected to the stage. - */ - public event DaliEventHandler OnStageEvent - { - add - { - lock(this) - { - // Restricted to only one listener - if (_actorOnStageEventHandler == null) - { - _actorOnStageEventHandler += value; - - _actorOnStageEventCallbackDelegate = new OnStageEventCallbackDelegate(OnStage); - this.OnStageSignal().Connect(_actorOnStageEventCallbackDelegate); - } - } - } - - remove - { - lock(this) - { - if (_actorOnStageEventHandler != null) - { - this.OnStageSignal().Disconnect(_actorOnStageEventCallbackDelegate); - } - - _actorOnStageEventHandler -= value; - } - } - } - - // Callback for Actor OnStage signal - private void OnStage(IntPtr data) - { - OnStageEventArgs e = new OnStageEventArgs(); - - // Populate all members of "e" (OnStageEventArgs) with real data - e.Actor = Actor.GetActorFromPtr(data); - - if (_actorOnStageEventHandler != null) - { - //here we send all data to user event handlers - _actorOnStageEventHandler(this, e); - } - } - - /** - * @brief Event for OffStage signal which can be used to subscribe/unsubscribe the event handler - * (in the type of OffStageEventHandler) provided by the user. - * OffStage signal is emitted after the actor has been disconnected from the stage. - */ - public event DaliEventHandler OffStageEvent - { - add - { - lock(this) - { - // Restricted to only one listener - if (_actorOffStageEventHandler == null) - { - _actorOffStageEventHandler += value; - - _actorOffStageEventCallbackDelegate = new OffStageEventCallbackDelegate(OffStage); - this.OnStageSignal().Connect(_actorOffStageEventCallbackDelegate); - } - } - } - - remove - { - lock(this) - { - if (_actorOffStageEventHandler != null) - { - this.OnStageSignal().Disconnect(_actorOffStageEventCallbackDelegate); - } - - _actorOffStageEventHandler -= value; - } - } - } - - // Callback for Actor OffStage signal - private void OffStage(IntPtr data) - { - OffStageEventArgs e = new OffStageEventArgs(); - - // Populate all members of "e" (OffStageEventArgs) with real data - e.Actor = Actor.GetActorFromPtr(data); - - if (_actorOffStageEventHandler != null) - { - //here we send all data to user event handlers - _actorOffStageEventHandler(this, e); - } - } - - /** - * @brief Event for OnRelayout signal which can be used to subscribe/unsubscribe the event handler - * (in the type of OnRelayoutEventHandler) provided by the user. - * OnRelayout signal is emitted after the size has been set on the actor during relayout. - */ - public event DaliEventHandler OnRelayoutEvent - { - add - { - lock(this) - { - // Restricted to only one listener - if (_actorOnRelayoutEventHandler == null) - { - _actorOnRelayoutEventHandler += value; - - _actorOnRelayoutEventCallbackDelegate = new OnRelayoutEventCallbackDelegate(OnRelayout); - this.OnRelayoutSignal().Connect(_actorOnRelayoutEventCallbackDelegate); - } - } - } - - remove - { - lock(this) - { - if (_actorOnRelayoutEventHandler != null) - { - this.OnRelayoutSignal().Disconnect(_actorOnRelayoutEventCallbackDelegate); - } - - _actorOnRelayoutEventHandler -= value; - } - } - } - - // Callback for Actor OnRelayout signal - private void OnRelayout(IntPtr data) - { - OnRelayoutEventArgs e = new OnRelayoutEventArgs(); - - // Populate all members of "e" (OnRelayoutEventArgs) with real data - e.Actor = Actor.GetActorFromPtr(data); - - if (_actorOnRelayoutEventHandler != null) - { - //here we send all data to user event handlers - _actorOnRelayoutEventHandler(this, e); - } - } - public static Actor GetActorFromPtr(global::System.IntPtr cPtr) { Actor ret = new Actor(cPtr, false); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); @@ -628,7 +79,7 @@ public class Actor : Handle { } } - public bool Vibility + public bool Visibility { get { @@ -643,16 +94,12 @@ public class Actor : Handle { { SetOpacity(value); } - } - - public float CurrentOpacity - { get { float ret = GetCurrentOpacity(); return ret; } - } + } public bool StateFocusEnable { @@ -667,6 +114,16 @@ public class Actor : Handle { } } + public void Show() + { + SetVisible(true); + } + + public void Hide() + { + SetVisible(false); + } + public class Property : global::System.IDisposable { private global::System.Runtime.InteropServices.HandleRef swigCPtr; diff --git a/plugins/dali-swig/automatic/csharp/AlphaFunction.cs b/plugins/dali-swig/automatic/csharp/AlphaFunction.cs index 674ef848d6..5c1d130d9e 100644 --- a/plugins/dali-swig/automatic/csharp/AlphaFunction.cs +++ b/plugins/dali-swig/automatic/csharp/AlphaFunction.cs @@ -40,6 +40,10 @@ public class AlphaFunction : global::System.IDisposable { } } + public AlphaFunction(Dali.Constants.AlphaFunction.BuiltinFunction function) : this(NDalicPINVOKE.new_AlphaFunction__SWIG_1((int)function), true){ + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + public AlphaFunction() : this(NDalicPINVOKE.new_AlphaFunction__SWIG_0(), true) { if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } diff --git a/plugins/dali-swig/automatic/csharp/Animation.cs b/plugins/dali-swig/automatic/csharp/Animation.cs index 6c8996d532..e3a3ea4ef5 100644 --- a/plugins/dali-swig/automatic/csharp/Animation.cs +++ b/plugins/dali-swig/automatic/csharp/Animation.cs @@ -59,6 +59,63 @@ public class Animation : BaseHandle { } + public static readonly int ParentOrigin = NDalicPINVOKE.Actor_Property_PARENT_ORIGIN_get(); + public static readonly int ParentOriginX = NDalicPINVOKE.Actor_Property_PARENT_ORIGIN_X_get(); + public static readonly int ParentOriginY = NDalicPINVOKE.Actor_Property_PARENT_ORIGIN_Y_get(); + public static readonly int ParentOriginZ = NDalicPINVOKE.Actor_Property_PARENT_ORIGIN_Z_get(); + public static readonly int AnchorPoint = NDalicPINVOKE.Actor_Property_ANCHOR_POINT_get(); + public static readonly int AnchorPointX = NDalicPINVOKE.Actor_Property_ANCHOR_POINT_X_get(); + public static readonly int AnchorPointY = NDalicPINVOKE.Actor_Property_ANCHOR_POINT_Y_get(); + public static readonly int AnchorPointZ = NDalicPINVOKE.Actor_Property_ANCHOR_POINT_Z_get(); + public static readonly int Size = NDalicPINVOKE.Actor_Property_SIZE_get(); + public static readonly int SizeWidth = NDalicPINVOKE.Actor_Property_SIZE_WIDTH_get(); + public static readonly int SizeHeight = NDalicPINVOKE.Actor_Property_SIZE_HEIGHT_get(); + public static readonly int SizeDepth = NDalicPINVOKE.Actor_Property_SIZE_DEPTH_get(); + public static readonly int Position = NDalicPINVOKE.Actor_Property_POSITION_get(); + public static readonly int PositionX = NDalicPINVOKE.Actor_Property_POSITION_X_get(); + public static readonly int PositionY = NDalicPINVOKE.Actor_Property_POSITION_Y_get(); + public static readonly int PositionZ = NDalicPINVOKE.Actor_Property_POSITION_Z_get(); + public static readonly int WorldPosition = NDalicPINVOKE.Actor_Property_WORLD_POSITION_get(); + public static readonly int WorldPositionX = NDalicPINVOKE.Actor_Property_WORLD_POSITION_X_get(); + public static readonly int WorldPositionY = NDalicPINVOKE.Actor_Property_WORLD_POSITION_Y_get(); + public static readonly int WorldPositionZ = NDalicPINVOKE.Actor_Property_WORLD_POSITION_Z_get(); + public static readonly int Orientation = NDalicPINVOKE.Actor_Property_ORIENTATION_get(); + public static readonly int WorldOrientation = NDalicPINVOKE.Actor_Property_WORLD_ORIENTATION_get(); + public static readonly int Scale = NDalicPINVOKE.Actor_Property_SCALE_get(); + public static readonly int ScaleX = NDalicPINVOKE.Actor_Property_SCALE_X_get(); + public static readonly int ScaleY = NDalicPINVOKE.Actor_Property_SCALE_Y_get(); + public static readonly int ScaleZ = NDalicPINVOKE.Actor_Property_SCALE_Z_get(); + public static readonly int WorldScale = NDalicPINVOKE.Actor_Property_WORLD_SCALE_get(); + public static readonly int Visibile = NDalicPINVOKE.Actor_Property_VISIBLE_get(); + public static readonly int Color = NDalicPINVOKE.Actor_Property_COLOR_get(); + public static readonly int ColorRed = NDalicPINVOKE.Actor_Property_COLOR_RED_get(); + public static readonly int ColorGreeb = NDalicPINVOKE.Actor_Property_COLOR_GREEN_get(); + public static readonly int ColorBlue = NDalicPINVOKE.Actor_Property_COLOR_BLUE_get(); + public static readonly int ColorAlpha = NDalicPINVOKE.Actor_Property_COLOR_ALPHA_get(); + public static readonly int WorldColor = NDalicPINVOKE.Actor_Property_WORLD_COLOR_get(); + public static readonly int WorldMatrix = NDalicPINVOKE.Actor_Property_WORLD_MATRIX_get(); + public static readonly int Name = NDalicPINVOKE.Actor_Property_NAME_get(); + public static readonly int Sensitive = NDalicPINVOKE.Actor_Property_SENSITIVE_get(); + public static readonly int LeaveRequired = NDalicPINVOKE.Actor_Property_LEAVE_REQUIRED_get(); + public static readonly int InheritOrientation = NDalicPINVOKE.Actor_Property_INHERIT_ORIENTATION_get(); + public static readonly int InheritScale = NDalicPINVOKE.Actor_Property_INHERIT_SCALE_get(); + public static readonly int ColorMode = NDalicPINVOKE.Actor_Property_COLOR_MODE_get(); + public static readonly int PositionInheritance = NDalicPINVOKE.Actor_Property_POSITION_INHERITANCE_get(); + public static readonly int DrawMode = NDalicPINVOKE.Actor_Property_DRAW_MODE_get(); + public static readonly int SizeModeFactor = NDalicPINVOKE.Actor_Property_SIZE_MODE_FACTOR_get(); + public static readonly int WidthResizePolicy = NDalicPINVOKE.Actor_Property_WIDTH_RESIZE_POLICY_get(); + public static readonly int HeightResizePolicy = NDalicPINVOKE.Actor_Property_HEIGHT_RESIZE_POLICY_get(); + public static readonly int SizeScalePolicy = NDalicPINVOKE.Actor_Property_SIZE_SCALE_POLICY_get(); + public static readonly int WidthForHeight = NDalicPINVOKE.Actor_Property_WIDTH_FOR_HEIGHT_get(); + public static readonly int HeightForWidth = NDalicPINVOKE.Actor_Property_HEIGHT_FOR_WIDTH_get(); + public static readonly int Padding = NDalicPINVOKE.Actor_Property_PADDING_get(); + public static readonly int MinimumSize = NDalicPINVOKE.Actor_Property_MINIMUM_SIZE_get(); + public static readonly int MaximumSize = NDalicPINVOKE.Actor_Property_MAXIMUM_SIZE_get(); + public static readonly int InheritPosition = NDalicPINVOKE.Actor_Property_INHERIT_POSITION_get(); + public static readonly int ClippingMode = NDalicPINVOKE.Actor_Property_CLIPPING_MODE_get(); + public static readonly int BatchParent = NDalicPINVOKE.Actor_Property_BATCH_PARENT_get(); + + /** * @brief Event arguments that passed via Finished signal * @@ -161,6 +218,19 @@ public class Animation : BaseHandle { } } + public int DurationMilliSecs + { + set + { + SetDuration(value/1000); + } + get + { + int ret = (int) GetDuration() * 1000; + return ret; + } + } + public AlphaFunction DefaultAlphaFunction { set @@ -183,6 +253,156 @@ public class Animation : BaseHandle { } } + public int LoopCount + { + set + { + SetLoopCount(value); + } + get + { + int ret = GetLoopCount(); + return ret; + } + } + + public bool Looping + { + set + { + SetLooping(value); + } + get + { + bool ret = IsLooping(); + return ret; + } + } + + public void AnimateBy(Actor target, T propertyIndex, U relativeValue) + { + dynamic var = (object)(propertyIndex); + dynamic obj = (object)(relativeValue); + AnimateBy(new Property(target, var), new Property.Value(obj)); + } + + public void AnimateBy(Actor target, T propertyIndex, U relativeValue, AlphaFunction alpha) + { + dynamic var = (object)(propertyIndex); + dynamic obj = (object)(relativeValue); + AnimateBy(new Property(target, var), new Property.Value(obj), alpha); + } + + public void AnimateBy(Actor target, T propertyIndex, U relativeValue, TimePeriod period) + { + dynamic var = (object)(propertyIndex); + dynamic obj = (object)(relativeValue); + AnimateBy(new Property(target, var), new Property.Value(obj), period); + } + + public void AnimateBy(Actor target, T propertyIndex, U relativeValue, AlphaFunction alpha, TimePeriod period) + { + dynamic var = (object)(propertyIndex); + dynamic obj = (object)(relativeValue); + AnimateBy(new Property(target, var), new Property.Value(obj), alpha, period); + } + + public void AnimateTo(Actor target, T propertyIndex, U destinationValue) + { + dynamic var = (object)(propertyIndex); + dynamic obj = (object)(destinationValue); + AnimateTo(new Property(target, var), new Property.Value(obj)); + } + + public void AnimateTo(Actor target, T propertyIndex, U destinationValue, AlphaFunction alpha) + { + dynamic var = (object)(propertyIndex); + dynamic obj = (object)(destinationValue); + AnimateTo(new Property(target, var), new Property.Value(obj), alpha); + } + + public void AnimateTo(Actor target, T propertyIndex, U destinationValue, TimePeriod period) + { + dynamic var = (object)(propertyIndex); + dynamic obj = (object)(destinationValue); + AnimateTo(new Property(target, var), new Property.Value(obj), period); + } + + public void AnimateTo(Actor target, T propertyIndex, U destinationValue, AlphaFunction alpha, TimePeriod period) + { + dynamic var = (object)(propertyIndex); + dynamic obj = (object)(destinationValue); + AnimateTo(new Property(target, var), new Property.Value(obj), alpha, period); + } + + public void AnimateBetween(Actor target, U propertyIndex, KeyFrames keyFrames) + { + dynamic var = (object)(propertyIndex); + AnimateBetween(new Property(target, var), keyFrames); + } + + public void AnimateBetween(Actor target, U propertyIndex, KeyFrames keyFrames, Animation.Interpolation interpolation) + { + dynamic var = (object)(propertyIndex); + AnimateBetween(new Property(target, var), keyFrames, interpolation); + } + + public void AnimateBetween(Actor target, U propertyIndex, KeyFrames keyFrames, AlphaFunction alpha) + { + dynamic var = (object)(propertyIndex); + AnimateBetween(new Property(target, var), keyFrames, alpha); + } + + public void AnimateBetween(Actor target, U propertyIndex, KeyFrames keyFrames, AlphaFunction alpha, Animation.Interpolation interpolation) + { + dynamic var = (object)(propertyIndex); + AnimateBetween(new Property(target, var), keyFrames, alpha, interpolation); + } + + public void AnimateBetween(Actor target, U propertyIndex, KeyFrames keyFrames, TimePeriod period) + { + dynamic var = (object)(propertyIndex); + AnimateBetween(new Property(target, var), keyFrames, period); + } + + public void AnimateBetween(Actor target, U propertyIndex, KeyFrames keyFrames, TimePeriod period, Animation.Interpolation interpolation) + { + dynamic var = (object)(propertyIndex); + AnimateBetween(new Property(target, var), keyFrames, period, interpolation); + } + + public void AnimateBetween(Actor target, U propertyIndex, KeyFrames keyFrames, AlphaFunction alpha, TimePeriod period) + { + dynamic var = (object)(propertyIndex); + AnimateBetween(new Property(target, var), keyFrames, alpha, period); + } + + public void AnimateBetween(Actor target, U propertyIndex, KeyFrames keyFrames, AlphaFunction alpha, TimePeriod period, Animation.Interpolation interpolation) + { + dynamic var = (object)(propertyIndex); + AnimateBetween(new Property(target, var), keyFrames, alpha, period, interpolation); + } + + public void Stop(Animation.EndAction action) { + SetEndAction(action); + NDalicPINVOKE.Animation_Stop(swigCPtr); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + + /** + * @brief Create an initialized Animation. + * + * The animation will not loop. + * The default end action is "Bake". + * The default Alpha function is linear. + * @since 1.0.0 + * @param [in] durationmSeconds The duration in milli seconds (int). + * @return A handle to a newly allocated Dali resource. + * @pre DurationmSeconds must be greater than zero. + */ + public Animation (int durationmSeconds) : this (NDalicPINVOKE.Animation_New((float)durationmSeconds/1000.0f), true) { + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } public Animation (float durationSeconds) : this (NDalicPINVOKE.Animation_New(durationSeconds), true) { if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); diff --git a/plugins/dali-swig/automatic/csharp/ApplicationExtensions.cs b/plugins/dali-swig/automatic/csharp/ApplicationExtensions.cs new file mode 100644 index 0000000000..25b42cd47a --- /dev/null +++ b/plugins/dali-swig/automatic/csharp/ApplicationExtensions.cs @@ -0,0 +1,78 @@ +//------------------------------------------------------------------------------ +// +// +// This file was automatically generated by SWIG (http://www.swig.org). +// Version 3.0.9 +// +// Do not make changes to this file unless you know what you are doing--modify +// the SWIG interface file instead. +//------------------------------------------------------------------------------ + +namespace Dali { + +public class ApplicationExtensions : global::System.IDisposable { + private global::System.Runtime.InteropServices.HandleRef swigCPtr; + protected bool swigCMemOwn; + + internal ApplicationExtensions(global::System.IntPtr cPtr, bool cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr); + } + + internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ApplicationExtensions obj) { + return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr; + } + + ~ApplicationExtensions() { + Dispose(); + } + + public virtual void Dispose() { + lock(this) { + if (swigCPtr.Handle != global::System.IntPtr.Zero) { + if (swigCMemOwn) { + swigCMemOwn = false; + NDalicPINVOKE.delete_ApplicationExtensions(swigCPtr); + } + swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero); + } + global::System.GC.SuppressFinalize(this); + } + } + + public ApplicationExtensions() : this(NDalicPINVOKE.new_ApplicationExtensions__SWIG_0(), true) { + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + + public ApplicationExtensions(Application application) : this(NDalicPINVOKE.new_ApplicationExtensions__SWIG_1(Application.getCPtr(application)), true) { + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + + public void Init() { + NDalicPINVOKE.ApplicationExtensions_Init(swigCPtr); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + + public void Terminate() { + NDalicPINVOKE.ApplicationExtensions_Terminate(swigCPtr); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + + public void Pause() { + NDalicPINVOKE.ApplicationExtensions_Pause(swigCPtr); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + + public void Resume() { + NDalicPINVOKE.ApplicationExtensions_Resume(swigCPtr); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + + public void LanguageChange() { + NDalicPINVOKE.ApplicationExtensions_LanguageChange(swigCPtr); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + +} + +} diff --git a/plugins/dali-swig/automatic/csharp/BaseHandle.cs b/plugins/dali-swig/automatic/csharp/BaseHandle.cs index e105430a8c..fb11e7224c 100644 --- a/plugins/dali-swig/automatic/csharp/BaseHandle.cs +++ b/plugins/dali-swig/automatic/csharp/BaseHandle.cs @@ -41,21 +41,116 @@ public class BaseHandle : global::System.IDisposable { } - public static bool operator true(BaseHandle handle) - { - if( handle!= null ) - { - return handle.IsHandleEmpty(); - } - else - { - return false; - } - } - public static bool operator false(BaseHandle handle) - { - return handle.IsHandleEmpty(); - } + // Returns the bool value true to indicate that an operand is true and returns false otherwise. + public static bool operator true(BaseHandle handle) + { + // if the C# object is null, return false + if( BaseHandle.ReferenceEquals( handle, null ) ) + { + return false; + } + // returns true if the handle has a body, false otherwise + return handle.HasBody(); + } + + // Returns the bool false to indicate that an operand is false and returns true otherwise. + public static bool operator false(BaseHandle handle) + { + // if the C# object is null, return true + if( BaseHandle.ReferenceEquals( handle, null ) ) + { + return true; + } + return !handle.HasBody(); + } + + // Explicit conversion from Handle to bool. + public static explicit operator bool(BaseHandle handle) + { + // if the C# object is null, return false + if( BaseHandle.ReferenceEquals( handle, null ) ) + { + return false; + } + // returns true if the handle has a body, false otherwise + return handle.HasBody(); + } + + // Equality operator + public static bool operator == (BaseHandle x, BaseHandle y) + { + // if the C# objects are the same return true + if( BaseHandle.ReferenceEquals( x, y ) ) + { + return true; + } + if ( !BaseHandle.ReferenceEquals( x, null ) && !BaseHandle.ReferenceEquals( y, null ) ) + { + // drop into native code to see if both handles point to the same body + return x.IsEqual( y) ; + } + return false; + + } + + // Inequality operator. Returns Null if either operand is Null + public static bool operator !=(BaseHandle x, BaseHandle y) + { + return !(x==y); + } + + // Logical AND operator for && + // It's possible when doing a && this function (opBitwiseAnd) is never called due + // to short circuiting. E.g. + // If you perform x && y What actually is called is + // BaseHandle.op_False( x ) ? BaseHandle.op_True( x ) : BaseHandle.opTrue( BaseHandle.opBitwiseAnd(x,y) ) + // + public static BaseHandle operator &(BaseHandle x, BaseHandle y) + { + if( x == y ) + { + return x; + } + return null; + } + + // Logical OR operator for || + // It's possible when doing a || this function (opBitwiseOr) is never called due + // to short circuiting. E.g. + // If you perform x || y What actually is called is + // BaseHandle.op_True( x ) ? BaseHandle.op_True( x ) : BaseHandle.opTrue( BaseHandle.opBitwiseOr(x,y) ) + public static BaseHandle operator |(BaseHandle x, BaseHandle y) + { + if ( !BaseHandle.ReferenceEquals( x, null ) || !BaseHandle.ReferenceEquals( y, null ) ) + { + if( x.HasBody() ) + { + return x; + } + if( y.HasBody() ) + { + return y; + } + return null; + } + return null; + } + + // Logical ! operator + public static bool operator !(BaseHandle x) + { + // if the C# object is null, return true + if( BaseHandle.ReferenceEquals( x, null ) ) + { + return true; + } + if( x.HasBody() ) + { + return false; + } + return true; + } + public BaseHandle(BaseObject handle) : this(NDalicPINVOKE.new_BaseHandle__SWIG_0(BaseObject.getCPtr(handle)), true) { if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); @@ -123,8 +218,14 @@ public class BaseHandle : global::System.IDisposable { return ret; } - public bool IsHandleEmpty() { - bool ret = NDalicPINVOKE.BaseHandle_IsHandleEmpty(swigCPtr); + public bool HasBody() { + bool ret = NDalicPINVOKE.BaseHandle_HasBody(swigCPtr); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + + public bool IsEqual(BaseHandle rhs) { + bool ret = NDalicPINVOKE.BaseHandle_IsEqual(swigCPtr, BaseHandle.getCPtr(rhs)); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); return ret; } diff --git a/plugins/dali-swig/automatic/csharp/Button.cs b/plugins/dali-swig/automatic/csharp/Button.cs index 6d7cafbe87..311ba022e5 100644 --- a/plugins/dali-swig/automatic/csharp/Button.cs +++ b/plugins/dali-swig/automatic/csharp/Button.cs @@ -175,7 +175,7 @@ public class StateChangedEventArgs : EventArgs if (_buttonClickedEventHandler != null) { //here we send all data to user event handlers - return _buttonClickedEventHandler(this, e,true); + return _buttonClickedEventHandler(this, e); } return false; } @@ -222,7 +222,7 @@ public class StateChangedEventArgs : EventArgs if (_buttonPressedEventHandler != null) { //here we send all data to user event handlers - return _buttonPressedEventHandler(this, e,true); + return _buttonPressedEventHandler(this, e); } return false; } @@ -269,7 +269,7 @@ public class StateChangedEventArgs : EventArgs if (_buttonReleasedEventHandler != null) { //here we send all data to user event handlers - return _buttonReleasedEventHandler(this, e, true); + return _buttonReleasedEventHandler(this, e); } return false; } @@ -316,7 +316,7 @@ public class StateChangedEventArgs : EventArgs if (_buttonStateChangedEventHandler != null) { //here we send all data to user event handlers - return _buttonStateChangedEventHandler(this, e, true); + return _buttonStateChangedEventHandler(this, e); } return false; } diff --git a/plugins/dali-swig/automatic/csharp/KeyInputFocusManager.cs b/plugins/dali-swig/automatic/csharp/KeyInputFocusManager.cs new file mode 100644 index 0000000000..cea70f509f --- /dev/null +++ b/plugins/dali-swig/automatic/csharp/KeyInputFocusManager.cs @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// +// +// This file was automatically generated by SWIG (http://www.swig.org). +// Version 3.0.9 +// +// Do not make changes to this file unless you know what you are doing--modify +// the SWIG interface file instead. +//------------------------------------------------------------------------------ + +namespace Dali { + +public class KeyInputFocusManager : BaseHandle { + private global::System.Runtime.InteropServices.HandleRef swigCPtr; + + internal KeyInputFocusManager(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.KeyInputFocusManager_SWIGUpcast(cPtr), cMemoryOwn) { + swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr); + } + + internal static global::System.Runtime.InteropServices.HandleRef getCPtr(KeyInputFocusManager obj) { + return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr; + } + + ~KeyInputFocusManager() { + Dispose(); + } + + public override void Dispose() { + lock(this) { + if (swigCPtr.Handle != global::System.IntPtr.Zero) { + if (swigCMemOwn) { + swigCMemOwn = false; + NDalicPINVOKE.delete_KeyInputFocusManager(swigCPtr); + } + swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero); + } + global::System.GC.SuppressFinalize(this); + base.Dispose(); + } + } + + public KeyInputFocusManager() : this(NDalicPINVOKE.new_KeyInputFocusManager(), true) { + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + + public static KeyInputFocusManager Get() { + KeyInputFocusManager ret = new KeyInputFocusManager(NDalicPINVOKE.KeyInputFocusManager_Get(), true); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + + public void SetFocus(View control) { + NDalicPINVOKE.KeyInputFocusManager_SetFocus(swigCPtr, View.getCPtr(control)); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + + public View GetCurrentFocusControl() { + View ret = new View(NDalicPINVOKE.KeyInputFocusManager_GetCurrentFocusControl(swigCPtr), true); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + + public void RemoveFocus(View control) { + NDalicPINVOKE.KeyInputFocusManager_RemoveFocus(swigCPtr, View.getCPtr(control)); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + + public bool IsKeyboardListener(View control) { + bool ret = NDalicPINVOKE.KeyInputFocusManager_IsKeyboardListener(swigCPtr, View.getCPtr(control)); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + + public SWIGTYPE_p_Dali__SignalT_void_fDali__Toolkit__Control_Dali__Toolkit__ControlF_t KeyInputFocusChangedSignal() { + SWIGTYPE_p_Dali__SignalT_void_fDali__Toolkit__Control_Dali__Toolkit__ControlF_t ret = new SWIGTYPE_p_Dali__SignalT_void_fDali__Toolkit__Control_Dali__Toolkit__ControlF_t(NDalicPINVOKE.KeyInputFocusManager_KeyInputFocusChangedSignal(swigCPtr), false); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + + public KeyEventSignal UnhandledKeyEventSignal() { + KeyEventSignal ret = new KeyEventSignal(NDalicPINVOKE.KeyInputFocusManager_UnhandledKeyEventSignal(swigCPtr), false); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + +} + +} diff --git a/plugins/dali-swig/automatic/csharp/NDalic.cs b/plugins/dali-swig/automatic/csharp/NDalic.cs index 92c245e9a8..d185e923e6 100644 --- a/plugins/dali-swig/automatic/csharp/NDalic.cs +++ b/plugins/dali-swig/automatic/csharp/NDalic.cs @@ -973,10 +973,10 @@ public class NDalic { public static readonly int IMAGE_VISUAL_DESIRED_HEIGHT = NDalicPINVOKE.IMAGE_VISUAL_DESIRED_HEIGHT_get(); public static readonly int IMAGE_VISUAL_SYNCHRONOUS_LOADING = NDalicPINVOKE.IMAGE_VISUAL_SYNCHRONOUS_LOADING_get(); public static readonly int IMAGE_VISUAL_BORDER_ONLY = NDalicPINVOKE.IMAGE_VISUAL_BORDER_ONLY_get(); - public static readonly int BATCHING_ENABLED = NDalicPINVOKE.BATCHING_ENABLED_get(); - public static readonly int PIXEL_AREA = NDalicPINVOKE.PIXEL_AREA_get(); - public static readonly int WRAP_MODE_U = NDalicPINVOKE.WRAP_MODE_U_get(); - public static readonly int WRAP_MODE_V = NDalicPINVOKE.WRAP_MODE_V_get(); + public static readonly int IMAGE_VISUAL_BATCHING_ENABLED = NDalicPINVOKE.IMAGE_VISUAL_BATCHING_ENABLED_get(); + public static readonly int IMAGE_VISUAL_PIXEL_AREA = NDalicPINVOKE.IMAGE_VISUAL_PIXEL_AREA_get(); + public static readonly int IMAGE_VISUAL_WRAP_MODE_U = NDalicPINVOKE.IMAGE_VISUAL_WRAP_MODE_U_get(); + public static readonly int IMAGE_VISUAL_WRAP_MODE_V = NDalicPINVOKE.IMAGE_VISUAL_WRAP_MODE_V_get(); public static readonly int OBJECT_URL = NDalicPINVOKE.OBJECT_URL_get(); public static readonly int MATERIAL_URL = NDalicPINVOKE.MATERIAL_URL_get(); @@ -999,6 +999,27 @@ public class NDalic { public static readonly int BEVEL_SMOOTHNESS = NDalicPINVOKE.BEVEL_SMOOTHNESS_get(); public static readonly int PRIMITIVE_VISUAL_LIGHT_POSITION = NDalicPINVOKE.PRIMITIVE_VISUAL_LIGHT_POSITION_get(); + public static readonly int RENDERING_BACKEND = NDalicPINVOKE.RENDERING_BACKEND_get(); + public static readonly int TEXT = NDalicPINVOKE.TEXT_get(); + public static readonly int FONT_FAMILY = NDalicPINVOKE.FONT_FAMILY_get(); + public static readonly int FONT_STYLE = NDalicPINVOKE.FONT_STYLE_get(); + public static readonly int POINT_SIZE = NDalicPINVOKE.POINT_SIZE_get(); + public static readonly int MULTI_LINE = NDalicPINVOKE.MULTI_LINE_get(); + public static readonly int HORIZONTAL_ALIGNMENT = NDalicPINVOKE.HORIZONTAL_ALIGNMENT_get(); + public static readonly int VERTICAL_ALIGNMENT = NDalicPINVOKE.VERTICAL_ALIGNMENT_get(); + public static readonly int TEXT_COLOR = NDalicPINVOKE.TEXT_COLOR_get(); + public static readonly int ENABLE_MARKUP = NDalicPINVOKE.ENABLE_MARKUP_get(); + public static readonly int ENABLE_AUTO_SCROLL = NDalicPINVOKE.ENABLE_AUTO_SCROLL_get(); + public static readonly int AUTO_SCROLL_SPEED = NDalicPINVOKE.AUTO_SCROLL_SPEED_get(); + public static readonly int AUTO_SCROLL_LOOP_COUNT = NDalicPINVOKE.AUTO_SCROLL_LOOP_COUNT_get(); + public static readonly int AUTO_SCROLL_GAP = NDalicPINVOKE.AUTO_SCROLL_GAP_get(); + public static readonly int LINE_SPACING = NDalicPINVOKE.LINE_SPACING_get(); + public static readonly int UNDERLINE = NDalicPINVOKE.UNDERLINE_get(); + public static readonly int SHADOW = NDalicPINVOKE.SHADOW_get(); + public static readonly int EMBOSS = NDalicPINVOKE.EMBOSS_get(); + public static readonly int OUTLINE = NDalicPINVOKE.OUTLINE_get(); + public static readonly int BATCHING_ENABLED = NDalicPINVOKE.BATCHING_ENABLED_get(); + } } diff --git a/plugins/dali-swig/automatic/csharp/NDalicPINVOKE.cs b/plugins/dali-swig/automatic/csharp/NDalicPINVOKE.cs index 1339953cdc..21af0a66f8 100644 --- a/plugins/dali-swig/automatic/csharp/NDalicPINVOKE.cs +++ b/plugins/dali-swig/automatic/csharp/NDalicPINVOKE.cs @@ -1463,6 +1463,9 @@ class NDalicPINVOKE { [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_Property_Array_PushBack")] public static extern void Property_Array_PushBack(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2); + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_Property_Array_Add")] + public static extern global::System.IntPtr Property_Array_Add(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2); + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_Property_Array_GetElementAt__SWIG_0")] public static extern global::System.IntPtr Property_Array_GetElementAt__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2); @@ -1751,8 +1754,11 @@ class NDalicPINVOKE { [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_BaseHandle_GetObjectPtr")] public static extern global::System.IntPtr BaseHandle_GetObjectPtr(global::System.Runtime.InteropServices.HandleRef jarg1); - [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_BaseHandle_IsHandleEmpty")] - public static extern bool BaseHandle_IsHandleEmpty(global::System.Runtime.InteropServices.HandleRef jarg1); + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_BaseHandle_HasBody")] + public static extern bool BaseHandle_HasBody(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_BaseHandle_IsEqual")] + public static extern bool BaseHandle_IsEqual(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2); [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_LessThan__SWIG_3")] public static extern bool LessThan__SWIG_3(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2); @@ -6227,6 +6233,30 @@ class NDalicPINVOKE { [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_DragAndDropDetector_DroppedSignal")] public static extern global::System.IntPtr DragAndDropDetector_DroppedSignal(global::System.Runtime.InteropServices.HandleRef jarg1); + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_new_ApplicationExtensions__SWIG_0")] + public static extern global::System.IntPtr new_ApplicationExtensions__SWIG_0(); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_new_ApplicationExtensions__SWIG_1")] + public static extern global::System.IntPtr new_ApplicationExtensions__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_delete_ApplicationExtensions")] + public static extern void delete_ApplicationExtensions(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_ApplicationExtensions_Init")] + public static extern void ApplicationExtensions_Init(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_ApplicationExtensions_Terminate")] + public static extern void ApplicationExtensions_Terminate(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_ApplicationExtensions_Pause")] + public static extern void ApplicationExtensions_Pause(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_ApplicationExtensions_Resume")] + public static extern void ApplicationExtensions_Resume(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_ApplicationExtensions_LanguageChange")] + public static extern void ApplicationExtensions_LanguageChange(global::System.Runtime.InteropServices.HandleRef jarg1); + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_Window_New__SWIG_0")] public static extern global::System.IntPtr Window_New__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, bool jarg3); @@ -6530,17 +6560,17 @@ class NDalicPINVOKE { [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_IMAGE_VISUAL_BORDER_ONLY_get")] public static extern int IMAGE_VISUAL_BORDER_ONLY_get(); - [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_BATCHING_ENABLED_get")] - public static extern int BATCHING_ENABLED_get(); + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_IMAGE_VISUAL_BATCHING_ENABLED_get")] + public static extern int IMAGE_VISUAL_BATCHING_ENABLED_get(); - [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_PIXEL_AREA_get")] - public static extern int PIXEL_AREA_get(); + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_IMAGE_VISUAL_PIXEL_AREA_get")] + public static extern int IMAGE_VISUAL_PIXEL_AREA_get(); - [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_WRAP_MODE_U_get")] - public static extern int WRAP_MODE_U_get(); + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_IMAGE_VISUAL_WRAP_MODE_U_get")] + public static extern int IMAGE_VISUAL_WRAP_MODE_U_get(); - [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_WRAP_MODE_V_get")] - public static extern int WRAP_MODE_V_get(); + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_IMAGE_VISUAL_WRAP_MODE_V_get")] + public static extern int IMAGE_VISUAL_WRAP_MODE_V_get(); [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_OBJECT_URL_get")] public static extern int OBJECT_URL_get(); @@ -6599,6 +6629,66 @@ class NDalicPINVOKE { [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_PRIMITIVE_VISUAL_LIGHT_POSITION_get")] public static extern int PRIMITIVE_VISUAL_LIGHT_POSITION_get(); + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_RENDERING_BACKEND_get")] + public static extern int RENDERING_BACKEND_get(); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_TEXT_get")] + public static extern int TEXT_get(); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_FONT_FAMILY_get")] + public static extern int FONT_FAMILY_get(); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_FONT_STYLE_get")] + public static extern int FONT_STYLE_get(); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_POINT_SIZE_get")] + public static extern int POINT_SIZE_get(); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_MULTI_LINE_get")] + public static extern int MULTI_LINE_get(); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_HORIZONTAL_ALIGNMENT_get")] + public static extern int HORIZONTAL_ALIGNMENT_get(); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_VERTICAL_ALIGNMENT_get")] + public static extern int VERTICAL_ALIGNMENT_get(); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_TEXT_COLOR_get")] + public static extern int TEXT_COLOR_get(); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_ENABLE_MARKUP_get")] + public static extern int ENABLE_MARKUP_get(); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_ENABLE_AUTO_SCROLL_get")] + public static extern int ENABLE_AUTO_SCROLL_get(); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_AUTO_SCROLL_SPEED_get")] + public static extern int AUTO_SCROLL_SPEED_get(); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_AUTO_SCROLL_LOOP_COUNT_get")] + public static extern int AUTO_SCROLL_LOOP_COUNT_get(); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_AUTO_SCROLL_GAP_get")] + public static extern int AUTO_SCROLL_GAP_get(); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_LINE_SPACING_get")] + public static extern int LINE_SPACING_get(); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_UNDERLINE_get")] + public static extern int UNDERLINE_get(); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_SHADOW_get")] + public static extern int SHADOW_get(); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_EMBOSS_get")] + public static extern int EMBOSS_get(); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_OUTLINE_get")] + public static extern int OUTLINE_get(); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_BATCHING_ENABLED_get")] + public static extern int BATCHING_ENABLED_get(); + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_new_Builder")] public static extern global::System.IntPtr new_Builder(); @@ -6677,6 +6767,36 @@ class NDalicPINVOKE { [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_Builder_QuitSignal")] public static extern global::System.IntPtr Builder_QuitSignal(global::System.Runtime.InteropServices.HandleRef jarg1); + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_new_TransitionData__SWIG_0")] + public static extern global::System.IntPtr new_TransitionData__SWIG_0(); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_delete_TransitionData")] + public static extern void delete_TransitionData(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_TransitionData_New__SWIG_0")] + public static extern global::System.IntPtr TransitionData_New__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_TransitionData_New__SWIG_1")] + public static extern global::System.IntPtr TransitionData_New__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_TransitionData_DownCast")] + public static extern global::System.IntPtr TransitionData_DownCast(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_new_TransitionData__SWIG_1")] + public static extern global::System.IntPtr new_TransitionData__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_TransitionData_Assign")] + public static extern global::System.IntPtr TransitionData_Assign(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_TransitionData_Count")] + public static extern uint TransitionData_Count(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_TransitionData_GetAnimatorAt")] + public static extern global::System.IntPtr TransitionData_GetAnimatorAt(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_new_TransitionData__SWIG_2")] + public static extern global::System.IntPtr new_TransitionData__SWIG_2(global::System.Runtime.InteropServices.HandleRef jarg1); + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_ViewImpl_New")] public static extern global::System.IntPtr ViewImpl_New(); @@ -6920,6 +7040,33 @@ class NDalicPINVOKE { [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_new_View__SWIG_2")] public static extern global::System.IntPtr new_View__SWIG_2(global::System.Runtime.InteropServices.HandleRef jarg1); + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_new_KeyInputFocusManager")] + public static extern global::System.IntPtr new_KeyInputFocusManager(); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_delete_KeyInputFocusManager")] + public static extern void delete_KeyInputFocusManager(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_KeyInputFocusManager_Get")] + public static extern global::System.IntPtr KeyInputFocusManager_Get(); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_KeyInputFocusManager_SetFocus")] + public static extern void KeyInputFocusManager_SetFocus(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_KeyInputFocusManager_GetCurrentFocusControl")] + public static extern global::System.IntPtr KeyInputFocusManager_GetCurrentFocusControl(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_KeyInputFocusManager_RemoveFocus")] + public static extern void KeyInputFocusManager_RemoveFocus(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_KeyInputFocusManager_IsKeyboardListener")] + public static extern bool KeyInputFocusManager_IsKeyboardListener(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_KeyInputFocusManager_KeyInputFocusChangedSignal")] + public static extern global::System.IntPtr KeyInputFocusManager_KeyInputFocusChangedSignal(global::System.Runtime.InteropServices.HandleRef jarg1); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_KeyInputFocusManager_UnhandledKeyEventSignal")] + public static extern global::System.IntPtr KeyInputFocusManager_UnhandledKeyEventSignal(global::System.Runtime.InteropServices.HandleRef jarg1); + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_new_Alignment_Padding__SWIG_0")] public static extern global::System.IntPtr new_Alignment_Padding__SWIG_0(); @@ -9638,12 +9785,21 @@ class NDalicPINVOKE { [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_VisualBase_Assign")] public static extern global::System.IntPtr VisualBase_Assign(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2); + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_VisualBase_SetName")] + public static extern void VisualBase_SetName(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_VisualBase_GetName")] + public static extern string VisualBase_GetName(global::System.Runtime.InteropServices.HandleRef jarg1); + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_VisualBase_SetSize")] public static extern void VisualBase_SetSize(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2); [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_VisualBase_GetSize")] public static extern global::System.IntPtr VisualBase_GetSize(global::System.Runtime.InteropServices.HandleRef jarg1); + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_VisualBase_GetHeightForWidth")] + public static extern float VisualBase_GetHeightForWidth(global::System.Runtime.InteropServices.HandleRef jarg1, float jarg2); + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_VisualBase_GetNaturalSize")] public static extern void VisualBase_GetNaturalSize(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2); @@ -9653,18 +9809,15 @@ class NDalicPINVOKE { [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_VisualBase_GetDepthIndex")] public static extern float VisualBase_GetDepthIndex(global::System.Runtime.InteropServices.HandleRef jarg1); - [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_VisualBase_SetOnStage")] - public static extern void VisualBase_SetOnStage(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2); - - [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_VisualBase_SetOffStage")] - public static extern void VisualBase_SetOffStage(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2); - - [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_VisualBase_RemoveAndReset")] - public static extern void VisualBase_RemoveAndReset(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2); - [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_VisualBase_CreatePropertyMap")] public static extern void VisualBase_CreatePropertyMap(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2); + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_VisualBase_SetProperty")] + public static extern void VisualBase_SetProperty(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3); + + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_VisualBase_GetProperty")] + public static extern global::System.IntPtr VisualBase_GetProperty(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2); + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_new_VisualBase__SWIG_2")] public static extern global::System.IntPtr new_VisualBase__SWIG_2(global::System.Runtime.InteropServices.HandleRef jarg1); @@ -10592,12 +10745,18 @@ class NDalicPINVOKE { [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_Builder_SWIGUpcast")] public static extern global::System.IntPtr Builder_SWIGUpcast(global::System.IntPtr jarg1); + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_TransitionData_SWIGUpcast")] + public static extern global::System.IntPtr TransitionData_SWIGUpcast(global::System.IntPtr jarg1); + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_ViewImpl_SWIGUpcast")] public static extern global::System.IntPtr ViewImpl_SWIGUpcast(global::System.IntPtr jarg1); [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_View_SWIGUpcast")] public static extern global::System.IntPtr View_SWIGUpcast(global::System.IntPtr jarg1); + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_KeyInputFocusManager_SWIGUpcast")] + public static extern global::System.IntPtr KeyInputFocusManager_SWIGUpcast(global::System.IntPtr jarg1); + [global::System.Runtime.InteropServices.DllImport("NDalic", EntryPoint="CSharp_Dali_Alignment_SWIGUpcast")] public static extern global::System.IntPtr Alignment_SWIGUpcast(global::System.IntPtr jarg1); diff --git a/plugins/dali-swig/automatic/csharp/PageFactory.cs b/plugins/dali-swig/automatic/csharp/PageFactory.cs index 40215ec472..39c4345c07 100644 --- a/plugins/dali-swig/automatic/csharp/PageFactory.cs +++ b/plugins/dali-swig/automatic/csharp/PageFactory.cs @@ -46,8 +46,8 @@ public class PageFactory : global::System.IDisposable { return ret; } - public virtual Image NewPage(uint pageId) { - Image ret = new Image(NDalicPINVOKE.PageFactory_NewPage(swigCPtr, pageId), true); + public virtual Texture NewPage(uint pageId) { + Texture ret = new Texture(NDalicPINVOKE.PageFactory_NewPage(swigCPtr, pageId), true); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); return ret; } diff --git a/plugins/dali-swig/automatic/csharp/Property.cs b/plugins/dali-swig/automatic/csharp/Property.cs index 94dd11712e..a65b4cb131 100644 --- a/plugins/dali-swig/automatic/csharp/Property.cs +++ b/plugins/dali-swig/automatic/csharp/Property.cs @@ -206,6 +206,12 @@ public class Property : global::System.IDisposable { if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } + public Property.Array Add(Property.Value value) { + Property.Array ret = new Property.Array(NDalicPINVOKE.Property_Array_Add(swigCPtr, Property.Value.getCPtr(value)), false); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + public Property.Value GetElementAt(uint index) { Property.Value ret = new Property.Value(NDalicPINVOKE.Property_Array_GetElementAt__SWIG_0(swigCPtr, index), false); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); diff --git a/plugins/dali-swig/automatic/csharp/RectInteger.cs b/plugins/dali-swig/automatic/csharp/RectInteger.cs index 64a76cd3b1..f9bd4d3c78 100644 --- a/plugins/dali-swig/automatic/csharp/RectInteger.cs +++ b/plugins/dali-swig/automatic/csharp/RectInteger.cs @@ -40,6 +40,56 @@ public class RectInteger : global::System.IDisposable { } } + + public int X { + set { + NDalicPINVOKE.RectInteger_x_set(swigCPtr, value); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + get { + int ret = NDalicPINVOKE.RectInteger_x_get(swigCPtr); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + } + + public int Y { + set { + NDalicPINVOKE.RectInteger_y_set(swigCPtr, value); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + get { + int ret = NDalicPINVOKE.RectInteger_y_get(swigCPtr); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + } + + public int W { + set { + NDalicPINVOKE.RectInteger_width_set(swigCPtr, value); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + get { + int ret = NDalicPINVOKE.RectInteger_width_get(swigCPtr); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + } + + public int H { + set { + NDalicPINVOKE.RectInteger_height_set(swigCPtr, value); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + get { + int ret = NDalicPINVOKE.RectInteger_height_get(swigCPtr); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + } + + public RectInteger() : this(NDalicPINVOKE.new_RectInteger__SWIG_0(), true) { if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } diff --git a/plugins/dali-swig/automatic/csharp/SWIGTYPE_p_Dali__SignalT_void_fDali__Toolkit__Control_Dali__Toolkit__ControlF_t.cs b/plugins/dali-swig/automatic/csharp/SWIGTYPE_p_Dali__SignalT_void_fDali__Toolkit__Control_Dali__Toolkit__ControlF_t.cs new file mode 100644 index 0000000000..1804f907b9 --- /dev/null +++ b/plugins/dali-swig/automatic/csharp/SWIGTYPE_p_Dali__SignalT_void_fDali__Toolkit__Control_Dali__Toolkit__ControlF_t.cs @@ -0,0 +1,29 @@ +//------------------------------------------------------------------------------ +// +// +// This file was automatically generated by SWIG (http://www.swig.org). +// Version 3.0.9 +// +// Do not make changes to this file unless you know what you are doing--modify +// the SWIG interface file instead. +//------------------------------------------------------------------------------ + +namespace Dali { + +public class SWIGTYPE_p_Dali__SignalT_void_fDali__Toolkit__Control_Dali__Toolkit__ControlF_t { + private global::System.Runtime.InteropServices.HandleRef swigCPtr; + + internal SWIGTYPE_p_Dali__SignalT_void_fDali__Toolkit__Control_Dali__Toolkit__ControlF_t(global::System.IntPtr cPtr, bool futureUse) { + swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_Dali__SignalT_void_fDali__Toolkit__Control_Dali__Toolkit__ControlF_t() { + swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero); + } + + internal static global::System.Runtime.InteropServices.HandleRef getCPtr(SWIGTYPE_p_Dali__SignalT_void_fDali__Toolkit__Control_Dali__Toolkit__ControlF_t obj) { + return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr; + } +} + +} diff --git a/plugins/dali-swig/automatic/csharp/SWIGTYPE_p_Dali__Toolkit__Internal__TransitionData.cs b/plugins/dali-swig/automatic/csharp/SWIGTYPE_p_Dali__Toolkit__Internal__TransitionData.cs new file mode 100644 index 0000000000..979727a14f --- /dev/null +++ b/plugins/dali-swig/automatic/csharp/SWIGTYPE_p_Dali__Toolkit__Internal__TransitionData.cs @@ -0,0 +1,29 @@ +//------------------------------------------------------------------------------ +// +// +// This file was automatically generated by SWIG (http://www.swig.org). +// Version 3.0.9 +// +// Do not make changes to this file unless you know what you are doing--modify +// the SWIG interface file instead. +//------------------------------------------------------------------------------ + +namespace Dali { + +public class SWIGTYPE_p_Dali__Toolkit__Internal__TransitionData { + private global::System.Runtime.InteropServices.HandleRef swigCPtr; + + internal SWIGTYPE_p_Dali__Toolkit__Internal__TransitionData(global::System.IntPtr cPtr, bool futureUse) { + swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_Dali__Toolkit__Internal__TransitionData() { + swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero); + } + + internal static global::System.Runtime.InteropServices.HandleRef getCPtr(SWIGTYPE_p_Dali__Toolkit__Internal__TransitionData obj) { + return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr; + } +} + +} diff --git a/plugins/dali-swig/automatic/csharp/Slider.cs b/plugins/dali-swig/automatic/csharp/Slider.cs index 787b8fb272..2190d9d19d 100644 --- a/plugins/dali-swig/automatic/csharp/Slider.cs +++ b/plugins/dali-swig/automatic/csharp/Slider.cs @@ -209,7 +209,7 @@ public class MarkReachedEventArgs : EventArgs if (_sliderValueChangedEventHandler != null) { //here we send all page to user event handlers - return _sliderValueChangedEventHandler(this, e, true); + return _sliderValueChangedEventHandler(this, e); } return false; } @@ -257,7 +257,7 @@ public class MarkReachedEventArgs : EventArgs if (_sliderSlidingFinishedEventHandler != null) { //here we send all page to user event handlers - return _sliderSlidingFinishedEventHandler(this, e, true); + return _sliderSlidingFinishedEventHandler(this, e); } return false; } @@ -305,7 +305,7 @@ public class MarkReachedEventArgs : EventArgs if (_sliderMarkReachedEventHandler != null) { //here we send all page to user event handlers - return _sliderMarkReachedEventHandler(this, e, true); + return _sliderMarkReachedEventHandler(this, e); } return false; } diff --git a/plugins/dali-swig/automatic/csharp/Stage.cs b/plugins/dali-swig/automatic/csharp/Stage.cs index 34545bab72..7b0d331199 100644 --- a/plugins/dali-swig/automatic/csharp/Stage.cs +++ b/plugins/dali-swig/automatic/csharp/Stage.cs @@ -542,16 +542,21 @@ public class SceneCreatedEventArgs : EventArgs } } - public Vector2 Size + ///< name "Size", type Dali.Size (Stage Size value) + //@since 1.0.0 + public Dali.Size Size { get { - Vector2 ret = GetSize(); + Vector2 ret1 = GetSize(); + Dali.Size ret= new Size(ret1); return ret; } } - public Vector4 BackgroundColor + ///< name "BackgroundColor", type Dali.Color (Stage background color value) + //@since 1.0.0 + public Dali.Color BackgroundColor { set { @@ -559,7 +564,8 @@ public class SceneCreatedEventArgs : EventArgs } get { - Vector4 ret = GetBackgroundColor(); + Vector4 ret1 = GetBackgroundColor(); + Dali.Color ret = new Color(ret1); return ret; } } diff --git a/plugins/dali-swig/automatic/csharp/TextEditor.cs b/plugins/dali-swig/automatic/csharp/TextEditor.cs index e715079339..f4e24f6bfd 100644 --- a/plugins/dali-swig/automatic/csharp/TextEditor.cs +++ b/plugins/dali-swig/automatic/csharp/TextEditor.cs @@ -362,12 +362,12 @@ public class TextChangedEventArgs : EventArgs SetProperty( TextEditor.Property.FONT_FAMILY, new Dali.Property.Value( value ) ); } } - public string FontStyle + public Dali.Property.Map FontStyle { get { - string temp; - GetProperty( TextEditor.Property.FONT_STYLE).Get( out temp ); + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( TextEditor.Property.FONT_STYLE).Get( temp ); return temp; } set @@ -674,12 +674,12 @@ public class TextChangedEventArgs : EventArgs SetProperty( TextEditor.Property.INPUT_FONT_FAMILY, new Dali.Property.Value( value ) ); } } - public string InputFontStyle + public Dali.Property.Map InputFontStyle { get { - string temp; - GetProperty( TextEditor.Property.INPUT_FONT_STYLE).Get( out temp ); + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( TextEditor.Property.INPUT_FONT_STYLE).Get( temp ); return temp; } set @@ -726,12 +726,12 @@ public class TextChangedEventArgs : EventArgs SetProperty( TextEditor.Property.INPUT_LINE_SPACING, new Dali.Property.Value( value ) ); } } - public string Underline + public Dali.Property.Map Underline { get { - string temp; - GetProperty( TextEditor.Property.UNDERLINE).Get( out temp ); + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( TextEditor.Property.UNDERLINE).Get( temp ); return temp; } set @@ -739,12 +739,12 @@ public class TextChangedEventArgs : EventArgs SetProperty( TextEditor.Property.UNDERLINE, new Dali.Property.Value( value ) ); } } - public string InputUnderline + public Dali.Property.Map InputUnderline { get { - string temp; - GetProperty( TextEditor.Property.INPUT_UNDERLINE).Get( out temp ); + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( TextEditor.Property.INPUT_UNDERLINE).Get( temp ); return temp; } set @@ -752,12 +752,12 @@ public class TextChangedEventArgs : EventArgs SetProperty( TextEditor.Property.INPUT_UNDERLINE, new Dali.Property.Value( value ) ); } } - public string Shadow + public Dali.Property.Map Shadow { get { - string temp; - GetProperty( TextEditor.Property.SHADOW).Get( out temp ); + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( TextEditor.Property.SHADOW).Get( temp ); return temp; } set @@ -765,12 +765,12 @@ public class TextChangedEventArgs : EventArgs SetProperty( TextEditor.Property.SHADOW, new Dali.Property.Value( value ) ); } } - public string InputShadow + public Dali.Property.Map InputShadow { get { - string temp; - GetProperty( TextEditor.Property.INPUT_SHADOW).Get( out temp ); + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( TextEditor.Property.INPUT_SHADOW).Get( temp ); return temp; } set @@ -778,12 +778,12 @@ public class TextChangedEventArgs : EventArgs SetProperty( TextEditor.Property.INPUT_SHADOW, new Dali.Property.Value( value ) ); } } - public string Emboss + public Dali.Property.Map Emboss { get { - string temp; - GetProperty( TextEditor.Property.EMBOSS).Get( out temp ); + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( TextEditor.Property.EMBOSS).Get( temp ); return temp; } set @@ -791,12 +791,12 @@ public class TextChangedEventArgs : EventArgs SetProperty( TextEditor.Property.EMBOSS, new Dali.Property.Value( value ) ); } } - public string InputEmboss + public Dali.Property.Map InputEmboss { get { - string temp; - GetProperty( TextEditor.Property.INPUT_EMBOSS).Get( out temp ); + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( TextEditor.Property.INPUT_EMBOSS).Get( temp ); return temp; } set @@ -804,12 +804,12 @@ public class TextChangedEventArgs : EventArgs SetProperty( TextEditor.Property.INPUT_EMBOSS, new Dali.Property.Value( value ) ); } } - public string Outline + public Dali.Property.Map Outline { get { - string temp; - GetProperty( TextEditor.Property.OUTLINE).Get( out temp ); + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( TextEditor.Property.OUTLINE).Get( temp ); return temp; } set @@ -817,12 +817,12 @@ public class TextChangedEventArgs : EventArgs SetProperty( TextEditor.Property.OUTLINE, new Dali.Property.Value( value ) ); } } - public string InputOutline + public Dali.Property.Map InputOutline { get { - string temp; - GetProperty( TextEditor.Property.INPUT_OUTLINE).Get( out temp ); + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( TextEditor.Property.INPUT_OUTLINE).Get( temp ); return temp; } set diff --git a/plugins/dali-swig/automatic/csharp/TextField.cs b/plugins/dali-swig/automatic/csharp/TextField.cs index 7b5fa11f73..c26f969790 100644 --- a/plugins/dali-swig/automatic/csharp/TextField.cs +++ b/plugins/dali-swig/automatic/csharp/TextField.cs @@ -449,12 +449,12 @@ public class MaxLengthReachedEventArgs : EventArgs SetProperty( TextField.Property.FONT_FAMILY, new Dali.Property.Value( value ) ); } } - public string FontStyle + public Dali.Property.Map FontStyle { get { - string temp; - GetProperty( TextField.Property.FONT_STYLE).Get( out temp ); + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( TextField.Property.FONT_STYLE).Get( temp ); return temp; } set @@ -865,12 +865,12 @@ public class MaxLengthReachedEventArgs : EventArgs SetProperty( TextField.Property.INPUT_FONT_FAMILY, new Dali.Property.Value( value ) ); } } - public string InputFontStyle + public Dali.Property.Map InputFontStyle { get { - string temp; - GetProperty( TextField.Property.INPUT_FONT_STYLE).Get( out temp ); + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( TextField.Property.INPUT_FONT_STYLE).Get( temp ); return temp; } set @@ -891,12 +891,12 @@ public class MaxLengthReachedEventArgs : EventArgs SetProperty( TextField.Property.INPUT_POINT_SIZE, new Dali.Property.Value( value ) ); } } - public string Underline + public Dali.Property.Map Underline { get { - string temp; - GetProperty( TextField.Property.UNDERLINE).Get( out temp ); + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( TextField.Property.UNDERLINE).Get( temp ); return temp; } set @@ -904,12 +904,12 @@ public class MaxLengthReachedEventArgs : EventArgs SetProperty( TextField.Property.UNDERLINE, new Dali.Property.Value( value ) ); } } - public string InputUnderline + public Dali.Property.Map InputUnderline { get { - string temp; - GetProperty( TextField.Property.INPUT_UNDERLINE).Get( out temp ); + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( TextField.Property.INPUT_UNDERLINE).Get( temp ); return temp; } set @@ -917,12 +917,12 @@ public class MaxLengthReachedEventArgs : EventArgs SetProperty( TextField.Property.INPUT_UNDERLINE, new Dali.Property.Value( value ) ); } } - public string Shadow + public Dali.Property.Map Shadow { get { - string temp; - GetProperty( TextField.Property.SHADOW).Get( out temp ); + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( TextField.Property.SHADOW).Get( temp ); return temp; } set @@ -930,12 +930,12 @@ public class MaxLengthReachedEventArgs : EventArgs SetProperty( TextField.Property.SHADOW, new Dali.Property.Value( value ) ); } } - public string InputShadow + public Dali.Property.Map InputShadow { get { - string temp; - GetProperty( TextField.Property.INPUT_SHADOW).Get( out temp ); + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( TextField.Property.INPUT_SHADOW).Get( temp ); return temp; } set @@ -943,12 +943,12 @@ public class MaxLengthReachedEventArgs : EventArgs SetProperty( TextField.Property.INPUT_SHADOW, new Dali.Property.Value( value ) ); } } - public string Emboss + public Dali.Property.Map Emboss { get { - string temp; - GetProperty( TextField.Property.EMBOSS).Get( out temp ); + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( TextField.Property.EMBOSS).Get( temp ); return temp; } set @@ -956,12 +956,12 @@ public class MaxLengthReachedEventArgs : EventArgs SetProperty( TextField.Property.EMBOSS, new Dali.Property.Value( value ) ); } } - public string InputEmboss + public Dali.Property.Map InputEmboss { get { - string temp; - GetProperty( TextField.Property.INPUT_EMBOSS).Get( out temp ); + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( TextField.Property.INPUT_EMBOSS).Get( temp ); return temp; } set @@ -969,12 +969,12 @@ public class MaxLengthReachedEventArgs : EventArgs SetProperty( TextField.Property.INPUT_EMBOSS, new Dali.Property.Value( value ) ); } } - public string Outline + public Dali.Property.Map Outline { get { - string temp; - GetProperty( TextField.Property.OUTLINE).Get( out temp ); + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( TextField.Property.OUTLINE).Get( temp ); return temp; } set @@ -982,12 +982,12 @@ public class MaxLengthReachedEventArgs : EventArgs SetProperty( TextField.Property.OUTLINE, new Dali.Property.Value( value ) ); } } - public string InputOutline + public Dali.Property.Map InputOutline { get { - string temp; - GetProperty( TextField.Property.INPUT_OUTLINE).Get( out temp ); + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( TextField.Property.INPUT_OUTLINE).Get( temp ); return temp; } set diff --git a/plugins/dali-swig/automatic/csharp/TextLabel.cs b/plugins/dali-swig/automatic/csharp/TextLabel.cs index 8cf1bfed95..3217cfb81a 100644 --- a/plugins/dali-swig/automatic/csharp/TextLabel.cs +++ b/plugins/dali-swig/automatic/csharp/TextLabel.cs @@ -184,12 +184,12 @@ public class TextLabel : View { SetProperty( TextLabel.Property.FONT_FAMILY, new Dali.Property.Value( value ) ); } } - public string FontStyle + public Dali.Property.Map FontStyle { get { - string temp; - GetProperty( TextLabel.Property.FONT_STYLE).Get( out temp ); + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( TextLabel.Property.FONT_STYLE).Get( temp ); return temp; } set @@ -405,12 +405,12 @@ public class TextLabel : View { SetProperty( TextLabel.Property.LINE_SPACING, new Dali.Property.Value( value ) ); } } - public string Underline + public Dali.Property.Map Underline { get { - string temp; - GetProperty( TextLabel.Property.UNDERLINE).Get( out temp ); + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( TextLabel.Property.UNDERLINE).Get( temp ); return temp; } set @@ -418,12 +418,12 @@ public class TextLabel : View { SetProperty( TextLabel.Property.UNDERLINE, new Dali.Property.Value( value ) ); } } - public string Shadow + public Dali.Property.Map Shadow { get { - string temp; - GetProperty( TextLabel.Property.SHADOW).Get( out temp ); + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( TextLabel.Property.SHADOW).Get( temp ); return temp; } set @@ -431,12 +431,12 @@ public class TextLabel : View { SetProperty( TextLabel.Property.SHADOW, new Dali.Property.Value( value ) ); } } - public string Emboss + public Dali.Property.Map Emboss { get { - string temp; - GetProperty( TextLabel.Property.EMBOSS).Get( out temp ); + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( TextLabel.Property.EMBOSS).Get( temp ); return temp; } set @@ -444,12 +444,12 @@ public class TextLabel : View { SetProperty( TextLabel.Property.EMBOSS, new Dali.Property.Value( value ) ); } } - public string Outline + public Dali.Property.Map Outline { get { - string temp; - GetProperty( TextLabel.Property.OUTLINE).Get( out temp ); + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( TextLabel.Property.OUTLINE).Get( temp ); return temp; } set diff --git a/plugins/dali-swig/automatic/csharp/TransitionData.cs b/plugins/dali-swig/automatic/csharp/TransitionData.cs new file mode 100644 index 0000000000..0bfbb63ae7 --- /dev/null +++ b/plugins/dali-swig/automatic/csharp/TransitionData.cs @@ -0,0 +1,100 @@ +/** Copyright (c) 2016 Samsung Electronics Co., Ltd. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ +// This File has been auto-generated by SWIG and then modified using DALi Ruby Scripts +//------------------------------------------------------------------------------ +// +// +// This file was automatically generated by SWIG (http://www.swig.org). +// Version 3.0.9 +// +// Do not make changes to this file unless you know what you are doing--modify +// the SWIG interface file instead. +//------------------------------------------------------------------------------ + +namespace Dali { + +public class TransitionData : BaseHandle { + private global::System.Runtime.InteropServices.HandleRef swigCPtr; + + internal TransitionData(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.TransitionData_SWIGUpcast(cPtr), cMemoryOwn) { + swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr); + } + + internal static global::System.Runtime.InteropServices.HandleRef getCPtr(TransitionData obj) { + return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr; + } + + ~TransitionData() { + Dispose(); + } + + public override void Dispose() { + lock(this) { + if (swigCPtr.Handle != global::System.IntPtr.Zero) { + if (swigCMemOwn) { + swigCMemOwn = false; + NDalicPINVOKE.delete_TransitionData(swigCPtr); + } + swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero); + } + global::System.GC.SuppressFinalize(this); + base.Dispose(); + } + } + + public TransitionData (Property.Map transition) : this (NDalicPINVOKE.TransitionData_New__SWIG_0(Property.Map.getCPtr(transition)), true) { + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + + } + public TransitionData (Property.Array transition) : this (NDalicPINVOKE.TransitionData_New__SWIG_1(Property.Array.getCPtr(transition)), true) { + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + + } + public static TransitionData DownCast(BaseHandle handle) { + TransitionData ret = new TransitionData(NDalicPINVOKE.TransitionData_DownCast(BaseHandle.getCPtr(handle)), true); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + + public TransitionData(TransitionData handle) : this(NDalicPINVOKE.new_TransitionData__SWIG_1(TransitionData.getCPtr(handle)), true) { + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + + public TransitionData Assign(TransitionData handle) { + TransitionData ret = new TransitionData(NDalicPINVOKE.TransitionData_Assign(swigCPtr, TransitionData.getCPtr(handle)), false); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + + public uint Count() { + uint ret = NDalicPINVOKE.TransitionData_Count(swigCPtr); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + + public Property.Map GetAnimatorAt(uint index) { + Property.Map ret = new Property.Map(NDalicPINVOKE.TransitionData_GetAnimatorAt(swigCPtr, index), true); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + + public TransitionData(SWIGTYPE_p_Dali__Toolkit__Internal__TransitionData impl) : this(NDalicPINVOKE.new_TransitionData__SWIG_2(SWIGTYPE_p_Dali__Toolkit__Internal__TransitionData.getCPtr(impl)), true) { + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + +} + +} diff --git a/plugins/dali-swig/automatic/csharp/View.cs b/plugins/dali-swig/automatic/csharp/View.cs index 3fd6b3c72e..be4a86545f 100644 --- a/plugins/dali-swig/automatic/csharp/View.cs +++ b/plugins/dali-swig/automatic/csharp/View.cs @@ -26,10 +26,10 @@ namespace Dali { -using System; -using System.Runtime.InteropServices; - + using System; + using System.Runtime.InteropServices; + public class View : CustomActor { private global::System.Runtime.InteropServices.HandleRef swigCPtr; @@ -61,274 +61,822 @@ public class View : CustomActor { -/** - * @brief Event arguments that passed via KeyInputFocusGained signal - * - */ -public class KeyInputFocusGainedEventArgs : EventArgs -{ - private View _view; + /** + * @brief Event arguments that passed via KeyInputFocusGained signal + * + */ + public class KeyInputFocusGainedEventArgs : EventArgs + { + private View _view; + + /** + * @brief View - is the view that gets Key Input Focus + * + */ + public View View + { + get + { + return _view; + } + set + { + _view = value; + } + } + } - /** - * @brief View - is the view that gets Key Input Focus + /** + * @brief Event arguments that passed via KeyInputFocusLost signal * */ - public View View - { - get + public class KeyInputFocusLostEventArgs : EventArgs + { + private View _view; + + /** + * @brief View - is the view that loses Key Input Focus + * + */ + public View View { - return _view; + get + { + return _view; + } + set + { + _view = value; + } } - set + } + + /** + * @brief Event arguments that passed via KeyEvent signal + * + */ + public class KeyEventArgs : EventArgs + { + private View _view; + private KeyEvent _keyEvent; + + /** + * @brief View - is the view that recieves the keyevent. + * + */ + public View View { - _view = value; + get + { + return _view; + } + set + { + _view = value; + } } - } -} -/** - * @brief Event arguments that passed via KeyInputFocusLost signal - * - */ -public class KeyInputFocusLostEventArgs : EventArgs -{ - private View _view; + /** + * @brief KeyEvent - is the keyevent sent to the View. + * + */ + public KeyEvent KeyEvent + { + get + { + return _keyEvent; + } + set + { + _keyEvent = value; + } + } + } - /** - * @brief View - is the view that loses Key Input Focus - * + /** + * @brief Event arguments that passed via OnRelayout signal + * + */ + public class OnRelayoutEventArgs : EventArgs + { + private View _view; + + /** + * @brief View - is the view that is being resized upon relayout + * + */ + public View View + { + get + { + return _view; + } + set + { + _view = value; + } + } + } + + + /** + * @brief Event arguments that passed via Touch signal + * + */ + public class TouchEventArgs : EventArgs + { + private View _view; + private TouchData _touchData; + + /** + * @brief View - is the view that is being touched + * + */ + public View View + { + get + { + return _view; + } + set + { + _view = value; + } + } + + /** + * @brief TouchData - contains the information of touch points + * + */ + public TouchData TouchData + { + get + { + return _touchData; + } + set + { + _touchData = value; + } + } + } + + /** + * @brief Event arguments that passed via Hover signal + * + */ + public class HoverEventArgs : EventArgs + { + private View _view; + private HoverEvent _hoverEvent; + + /** + * @brief View - is the view that is being hovered + * + */ + public View View + { + get + { + return _view; + } + set + { + _view = value; + } + } + + /** + * @brief HoverEvent - contains touch points that represent the points + * that are currently being hovered or the points where a hover has stopped + * + */ + public HoverEvent HoverEvent + { + get + { + return _hoverEvent; + } + set + { + _hoverEvent = value; + } + } + } + + /** + * @brief Event arguments that passed via Wheel signal + * + */ + public class WheelEventArgs : EventArgs + { + private View _view; + private WheelEvent _wheelEvent; + + /** + * @brief View - is the view that is being wheeled + * + */ + public View View + { + get + { + return _view; + } + set + { + _view = value; + } + } + + /** + * @brief WheelEvent - store a wheel rolling type : MOUSE_WHEEL or CUSTOM_WHEEL + * + */ + public WheelEvent WheelEvent + { + get + { + return _wheelEvent; + } + set + { + _wheelEvent = value; + } + } + } + + /** + * @brief Event arguments that passed via OnStage signal + * + */ + public class OnStageEventArgs : EventArgs + { + private View _view; + + /** + * @brief View - is the view that is being connected to the stage + * + */ + public View View + { + get + { + return _view; + } + set + { + _view = value; + } + } + } + + /** + * @brief Event arguments that passed via OffStage signal + * + */ + public class OffStageEventArgs : EventArgs + { + private View _view; + + /** + * @brief View - is the view that is being disconnected from the stage + * + */ + public View View + { + get + { + return _view; + } + set + { + _view = value; + } + } + } + + [UnmanagedFunctionPointer(CallingConvention.StdCall)] + private delegate void KeyInputFocusGainedCallbackDelegate(IntPtr control); + private DaliEventHandler _KeyInputFocusGainedEventHandler; + private KeyInputFocusGainedCallbackDelegate _KeyInputFocusGainedCallbackDelegate; + + [UnmanagedFunctionPointer(CallingConvention.StdCall)] + private delegate void KeyInputFocusLostCallbackDelegate(IntPtr control); + private DaliEventHandler _KeyInputFocusLostEventHandler; + private KeyInputFocusLostCallbackDelegate _KeyInputFocusLostCallbackDelegate; + + [UnmanagedFunctionPointer(CallingConvention.StdCall)] + private delegate bool KeyCallbackDelegate(IntPtr control, IntPtr keyEvent); + private DaliEventHandlerWithReturnType _KeyEventHandler; + private KeyCallbackDelegate _KeyCallbackDelegate; + + [UnmanagedFunctionPointer(CallingConvention.StdCall)] + private delegate void OnRelayoutEventCallbackDelegate(IntPtr control); + private DaliEventHandler _viewOnRelayoutEventHandler; + private OnRelayoutEventCallbackDelegate _viewOnRelayoutEventCallbackDelegate; + + [UnmanagedFunctionPointer(CallingConvention.StdCall)] + private delegate bool TouchCallbackDelegate(IntPtr view, IntPtr touchData); + private DaliEventHandlerWithReturnType _viewTouchDataEventHandler; + private TouchCallbackDelegate _viewTouchDataCallbackDelegate; + + [UnmanagedFunctionPointer(CallingConvention.StdCall)] + private delegate bool HoverEventCallbackDelegate(IntPtr view, IntPtr hoverEvent); + private DaliEventHandlerWithReturnType _viewHoverEventHandler; + private HoverEventCallbackDelegate _viewHoverEventCallbackDelegate; + + [UnmanagedFunctionPointer(CallingConvention.StdCall)] + private delegate bool WheelEventCallbackDelegate(IntPtr view, IntPtr wheelEvent); + private DaliEventHandlerWithReturnType _viewWheelEventHandler; + private WheelEventCallbackDelegate _viewWheelEventCallbackDelegate; + + [UnmanagedFunctionPointer(CallingConvention.StdCall)] + private delegate void OnStageEventCallbackDelegate(IntPtr control); + private DaliEventHandler _viewOnStageEventHandler; + private OnStageEventCallbackDelegate _viewOnStageEventCallbackDelegate; + + [UnmanagedFunctionPointer(CallingConvention.StdCall)] + private delegate void OffStageEventCallbackDelegate(IntPtr control); + private DaliEventHandler _viewOffStageEventHandler; + private OffStageEventCallbackDelegate _viewOffStageEventCallbackDelegate; + + /** + * @brief Event for KeyInputFocusGained signal which can be used to subscribe/unsubscribe the event handler + * (in the type of KeyInputFocusGainedEventHandler-DaliEventHandler) + * provided by the user. KeyInputFocusGained signal is emitted when the control gets Key Input Focus. */ - public View View - { - get + public event DaliEventHandler KeyInputFocusGained + { + add { - return _view; + lock(this) + { + // Restricted to only one listener + if (_KeyInputFocusGainedEventHandler == null) + { + _KeyInputFocusGainedEventHandler += value; + Console.WriteLine("View Keyevent EVENT Locked...."); + _KeyInputFocusGainedCallbackDelegate = new KeyInputFocusGainedCallbackDelegate(OnKeyInputFocusGained); + this.KeyInputFocusGainedSignal().Connect(_KeyInputFocusGainedCallbackDelegate); + } + } } - set + + remove { - _view = value; + lock(this) + { + if (_KeyInputFocusGainedEventHandler != null) + { + this.KeyInputFocusGainedSignal().Disconnect(_KeyInputFocusGainedCallbackDelegate); + } + + _KeyInputFocusGainedEventHandler -= value; + } } - } -} + } -/** - * @brief Event arguments that passed via KeyEvent signal - * - */ -public class KeyEventArgs : EventArgs -{ - private View _view; - private KeyEvent _keyEvent; - - /** - * @brief View - is the view that recieves the keyevent. - * + private void OnKeyInputFocusGained(IntPtr view) + { + KeyInputFocusGainedEventArgs e = new KeyInputFocusGainedEventArgs(); + Console.WriteLine("View Keyevent ...."); + // Populate all members of "e" (KeyInputFocusGainedEventArgs) with real data + e.View = Dali.View.GetViewFromPtr(view); + + if (_KeyInputFocusGainedEventHandler != null) + { + //here we send all data to user event handlers + _KeyInputFocusGainedEventHandler(this, e); + } + + } + + /** + * @brief Event for KeyInputFocusLost signal which can be used to subscribe/unsubscribe the event handler + * (in the type of KeyInputFocusLostEventHandler-DaliEventHandler) + * provided by the user. KeyInputFocusLost signal is emitted when the control loses Key Input Focus. */ - public View View - { - get + public event DaliEventHandler KeyInputFocusLost + { + add { - return _view; + lock(this) + { + // Restricted to only one listener + if (_KeyInputFocusLostEventHandler == null) + { + _KeyInputFocusLostEventHandler += value; + + _KeyInputFocusLostCallbackDelegate = new KeyInputFocusLostCallbackDelegate(OnKeyInputFocusLost); + this.KeyInputFocusLostSignal().Connect(_KeyInputFocusLostCallbackDelegate); + } + } } - set + + remove { - _view = value; + lock(this) + { + if (_KeyInputFocusLostEventHandler != null) + { + this.KeyInputFocusLostSignal().Disconnect(_KeyInputFocusLostCallbackDelegate); + } + + _KeyInputFocusLostEventHandler -= value; + } } - } + } - /** - * @brief KeyEvent - is the keyevent sent to the View. - * + private void OnKeyInputFocusLost(IntPtr view) + { + KeyInputFocusLostEventArgs e = new KeyInputFocusLostEventArgs(); + + // Populate all members of "e" (KeyInputFocusLostEventArgs) with real data + e.View = Dali.View.GetViewFromPtr(view); + + if (_KeyInputFocusLostEventHandler != null) + { + //here we send all data to user event handlers + _KeyInputFocusLostEventHandler(this, e); + } + } + + /** + * @brief Event for KeyPressed signal which can be used to subscribe/unsubscribe the event handler + * (in the type of KeyEventEventHandler-DaliEventHandlerWithReturnType) + * provided by the user. KeyPressed signal is emitted when key event is received. */ - public KeyEvent KeyEvent - { - get + public event DaliEventHandlerWithReturnType KeyPressed + { + add { - return _keyEvent; + lock(this) + { + // Restricted to only one listener + if (_KeyEventHandler == null) + { + _KeyEventHandler += value; + + _KeyCallbackDelegate = new KeyCallbackDelegate(OnKeyEvent); + this.KeyEventSignal().Connect(_KeyCallbackDelegate); + } + } } - set + + remove { - _keyEvent = value; + lock(this) + { + if (_KeyEventHandler != null) + { + this.KeyEventSignal().Disconnect(_KeyCallbackDelegate); + } + + _KeyEventHandler -= value; + } } - } -} + } - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - private delegate void KeyInputFocusGainedCallbackDelegate(IntPtr control); - private DaliEventHandler _KeyInputFocusGainedEventHandler; - private KeyInputFocusGainedCallbackDelegate _KeyInputFocusGainedCallbackDelegate; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - private delegate void KeyInputFocusLostCallbackDelegate(IntPtr control); - private DaliEventHandler _KeyInputFocusLostEventHandler; - private KeyInputFocusLostCallbackDelegate _KeyInputFocusLostCallbackDelegate; - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - private delegate bool KeyCallbackDelegate(IntPtr control, IntPtr keyEvent); - private DaliEventHandlerWithReturnType _KeyEventHandler; - private KeyCallbackDelegate _KeyCallbackDelegate; - - /** - * @brief Event for KeyInputFocusGained signal which can be used to subscribe/unsubscribe the event handler - * (in the type of KeyInputFocusGainedEventHandler-DaliEventHandler) - * provided by the user. KeyInputFocusGained signal is emitted when the control gets Key Input Focus. - */ - public event DaliEventHandler KeyInputFocusGained - { - add - { + private bool OnKeyEvent(IntPtr view, IntPtr keyEvent) + { + KeyEventArgs e = new KeyEventArgs(); + + // Populate all members of "e" (KeyEventArgs) with real data + e.View = Dali.View.GetViewFromPtr(view); + e.KeyEvent = Dali.KeyEvent.GetKeyEventFromPtr(keyEvent); + + if (_KeyEventHandler != null) + { + //here we send all data to user event handlers + return _KeyEventHandler(this, e); + } + return false; + + } + + /** + * @brief Event for OnRelayout signal which can be used to subscribe/unsubscribe the event handler + * (in the type of OnRelayoutEventHandler) provided by the user. + * OnRelayout signal is emitted after the size has been set on the view during relayout. + */ + public event DaliEventHandler OnRelayoutEvent + { + add + { lock(this) { - // Restricted to only one listener - if (_KeyInputFocusGainedEventHandler == null) - { - _KeyInputFocusGainedEventHandler += value; + // Restricted to only one listener + if (_viewOnRelayoutEventHandler == null) + { + _viewOnRelayoutEventHandler += value; + Console.WriteLine("View OnRelayoutEventArgs Locked...."); + _viewOnRelayoutEventCallbackDelegate = new OnRelayoutEventCallbackDelegate(OnRelayout); + this.OnRelayoutSignal().Connect(_viewOnRelayoutEventCallbackDelegate); + } + } + } + + remove + { + lock(this) + { + if (_viewOnRelayoutEventHandler != null) + { + this.OnRelayoutSignal().Disconnect(_viewOnRelayoutEventCallbackDelegate); + } + + _viewOnRelayoutEventHandler -= value; + } + } + } + + // Callback for View OnRelayout signal + private void OnRelayout(IntPtr data) + { + OnRelayoutEventArgs e = new OnRelayoutEventArgs(); + Console.WriteLine("View OnRelayoutEventArgs...."); + // Populate all members of "e" (OnRelayoutEventArgs) with real data + e.View = View.GetViewFromPtr(data); + + if (_viewOnRelayoutEventHandler != null) + { + //here we send all data to user event handlers + _viewOnRelayoutEventHandler(this, e); + } + } - _KeyInputFocusGainedCallbackDelegate = new KeyInputFocusGainedCallbackDelegate(OnKeyInputFocusGained); - this.KeyInputFocusGainedSignal().Connect(_KeyInputFocusGainedCallbackDelegate); - } + /** + * @brief Event for Touched signal which can be used to subscribe/unsubscribe the event handler + * (in the type of TouchEventHandler-DaliEventHandlerWithReturnType) + * provided by the user. Touched signal is emitted when touch input is received. + */ + public event DaliEventHandlerWithReturnType Touched + { + add + { + lock(this) + { + // Restricted to only one listener + if (_viewTouchDataEventHandler == null) + { + _viewTouchDataEventHandler += value; + Console.WriteLine("View Touch EVENT LOCKED...."); + _viewTouchDataCallbackDelegate = new TouchCallbackDelegate(OnTouch); + this.TouchSignal().Connect(_viewTouchDataCallbackDelegate); + } } - } + } - remove - { + remove + { lock(this) { - if (_KeyInputFocusGainedEventHandler != null) - { - this.KeyInputFocusGainedSignal().Disconnect(_KeyInputFocusGainedCallbackDelegate); - } + if (_viewTouchDataEventHandler != null) + { + this.TouchSignal().Disconnect(_viewTouchDataCallbackDelegate); + } - _KeyInputFocusGainedEventHandler -= value; + _viewTouchDataEventHandler -= value; } - } - } + } + } + + // Callback for View TouchSignal + private bool OnTouch(IntPtr view, IntPtr touchData) + { + TouchEventArgs e = new TouchEventArgs(); + Console.WriteLine("View Touch EVENT...."); + // Populate all members of "e" (TouchEventArgs) with real data + e.View = View.GetViewFromPtr(view); + e.TouchData = Dali.TouchData.GetTouchDataFromPtr(touchData); - private void OnKeyInputFocusGained(IntPtr view) - { - KeyInputFocusGainedEventArgs e = new KeyInputFocusGainedEventArgs(); + if (_viewTouchDataEventHandler != null) + { + //here we send all data to user event handlers + return _viewTouchDataEventHandler(this, e); + } - // Populate all members of "e" (KeyInputFocusGainedEventArgs) with real data - e.View = Dali.View.GetViewFromPtr(view); + return false; + } - if (_KeyInputFocusGainedEventHandler != null) - { - //here we send all data to user event handlers - _KeyInputFocusGainedEventHandler(this, e); - } + /** + * @brief Event for Hovered signal which can be used to subscribe/unsubscribe the event handler + * (in the type of HoverEventHandler-DaliEventHandlerWithReturnType) + * provided by the user. Hovered signal is emitted when hover input is received. + */ + public event DaliEventHandlerWithReturnType Hovered + { + add + { + lock(this) + { + // Restricted to only one listener + if (_viewHoverEventHandler == null) + { + _viewHoverEventHandler += value; - } + _viewHoverEventCallbackDelegate = new HoverEventCallbackDelegate(OnHoverEvent); + this.HoveredSignal().Connect(_viewHoverEventCallbackDelegate); + } + } + } - /** - * @brief Event for KeyInputFocusLost signal which can be used to subscribe/unsubscribe the event handler - * (in the type of KeyInputFocusLostEventHandler-DaliEventHandler) - * provided by the user. KeyInputFocusLost signal is emitted when the control loses Key Input Focus. - */ - public event DaliEventHandler KeyInputFocusLost - { - add - { + remove + { lock(this) { - // Restricted to only one listener - if (_KeyInputFocusLostEventHandler == null) - { - _KeyInputFocusLostEventHandler += value; + if (_viewHoverEventHandler != null) + { + this.HoveredSignal().Disconnect(_viewHoverEventCallbackDelegate); + } + + _viewHoverEventHandler -= value; + } + } + } + + // Callback for View Hover signal + private bool OnHoverEvent(IntPtr view, IntPtr hoverEvent) + { + HoverEventArgs e = new HoverEventArgs(); + + // Populate all members of "e" (HoverEventArgs) with real data + e.View = View.GetViewFromPtr(view); + e.HoverEvent = Dali.HoverEvent.GetHoverEventFromPtr(hoverEvent); + + if (_viewHoverEventHandler != null) + { + //here we send all data to user event handlers + return _viewHoverEventHandler(this, e); + } - _KeyInputFocusLostCallbackDelegate = new KeyInputFocusLostCallbackDelegate(OnKeyInputFocusLost); - this.KeyInputFocusLostSignal().Connect(_KeyInputFocusLostCallbackDelegate); - } + return false; + } + + /** + * @brief Event for WheelMoved signal which can be used to subscribe/unsubscribe the event handler + * (in the type of WheelEventHandler-DaliEventHandlerWithReturnType) + * provided by the user. WheelMoved signal is emitted when wheel event is received. + */ + public event DaliEventHandlerWithReturnType WheelMoved + { + add + { + lock(this) + { + // Restricted to only one listener + if (_viewWheelEventHandler == null) + { + _viewWheelEventHandler += value; + Console.WriteLine("View Wheel EVENT LOCKED...."); + _viewWheelEventCallbackDelegate = new WheelEventCallbackDelegate(OnWheelEvent); + this.WheelEventSignal().Connect(_viewWheelEventCallbackDelegate); + } } - } + } - remove - { + remove + { lock(this) { - if (_KeyInputFocusLostEventHandler != null) - { - this.KeyInputFocusLostSignal().Disconnect(_KeyInputFocusLostCallbackDelegate); - } + if (_viewWheelEventHandler != null) + { + this.WheelEventSignal().Disconnect(_viewWheelEventCallbackDelegate); + } - _KeyInputFocusLostEventHandler -= value; + _viewWheelEventHandler -= value; } - } - } + } + } - private void OnKeyInputFocusLost(IntPtr view) - { - KeyInputFocusLostEventArgs e = new KeyInputFocusLostEventArgs(); + // Callback for View Wheel signal + private bool OnWheelEvent(IntPtr view, IntPtr wheelEvent) + { + WheelEventArgs e = new WheelEventArgs(); + Console.WriteLine("View Wheel EVENT ...."); + // Populate all members of "e" (WheelEventArgs) with real data + e.View = View.GetViewFromPtr(view); + e.WheelEvent = Dali.WheelEvent.GetWheelEventFromPtr(wheelEvent); - // Populate all members of "e" (KeyInputFocusLostEventArgs) with real data - e.View = Dali.View.GetViewFromPtr(view); + if (_viewWheelEventHandler != null) + { + //here we send all data to user event handlers + return _viewWheelEventHandler(this, e); + } - if (_KeyInputFocusLostEventHandler != null) - { - //here we send all data to user event handlers - _KeyInputFocusLostEventHandler(this, e); - } - } + return false; + } + + /** + * @brief Event for OnStage signal which can be used to subscribe/unsubscribe the event handler + * (in the type of OnStageEventHandler) provided by the user. + * OnStage signal is emitted after the view has been connected to the stage. + */ + public event DaliEventHandler OnStageEvent + { + add + { + lock(this) + { + // Restricted to only one listener + if (_viewOnStageEventHandler == null) + { + _viewOnStageEventHandler += value; + + _viewOnStageEventCallbackDelegate = new OnStageEventCallbackDelegate(OnStage); + this.OnStageSignal().Connect(_viewOnStageEventCallbackDelegate); + } + } + } - /** - * @brief Event for KeyPressed signal which can be used to subscribe/unsubscribe the event handler - * (in the type of KeyEventEventHandler-DaliEventHandlerWithReturnType) - * provided by the user. KeyPressed signal is emitted when key event is received. - */ - public event DaliEventHandlerWithReturnType KeyPressed - { - add - { + remove + { lock(this) { - // Restricted to only one listener - if (_KeyEventHandler == null) - { - _KeyEventHandler += value; + if (_viewOnStageEventHandler != null) + { + this.OnStageSignal().Disconnect(_viewOnStageEventCallbackDelegate); + } - _KeyCallbackDelegate = new KeyCallbackDelegate(OnKeyEvent); - this.KeyEventSignal().Connect(_KeyCallbackDelegate); - } + _viewOnStageEventHandler -= value; } - } + } + } + + // Callback for View OnStage signal + private void OnStage(IntPtr data) + { + OnStageEventArgs e = new OnStageEventArgs(); - remove - { + // Populate all members of "e" (OnStageEventArgs) with real data + e.View = View.GetViewFromPtr(data); + + if (_viewOnStageEventHandler != null) + { + //here we send all data to user event handlers + _viewOnStageEventHandler(this, e); + } + } + + /** + * @brief Event for OffStage signal which can be used to subscribe/unsubscribe the event handler + * (in the type of OffStageEventHandler) provided by the user. + * OffStage signal is emitted after the view has been disconnected from the stage. + */ + public event DaliEventHandler OffStageEvent + { + add + { lock(this) { - if (_KeyEventHandler != null) - { - this.KeyEventSignal().Disconnect(_KeyCallbackDelegate); - } + // Restricted to only one listener + if (_viewOffStageEventHandler == null) + { + _viewOffStageEventHandler += value; - _KeyEventHandler -= value; + _viewOffStageEventCallbackDelegate = new OffStageEventCallbackDelegate(OffStage); + this.OnStageSignal().Connect(_viewOffStageEventCallbackDelegate); + } } - } - } + } - private bool OnKeyEvent(IntPtr view, IntPtr keyEvent) - { - KeyEventArgs e = new KeyEventArgs(); + remove + { + lock(this) + { + if (_viewOffStageEventHandler != null) + { + this.OnStageSignal().Disconnect(_viewOffStageEventCallbackDelegate); + } - // Populate all members of "e" (KeyEventArgs) with real data - e.View = Dali.View.GetViewFromPtr(view); - e.KeyEvent = Dali.KeyEvent.GetKeyEventFromPtr(keyEvent); + _viewOffStageEventHandler -= value; + } + } + } - if (_KeyEventHandler != null) - { - //here we send all data to user event handlers - return _KeyEventHandler(this, e, true); - } - return false; + // Callback for View OffStage signal + private void OffStage(IntPtr data) + { + OffStageEventArgs e = new OffStageEventArgs(); - } + // Populate all members of "e" (OffStageEventArgs) with real data + e.View = View.GetViewFromPtr(data); - public static View GetViewFromPtr(global::System.IntPtr cPtr) { - View ret = new View(cPtr, false); - if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } + if (_viewOffStageEventHandler != null) + { + //here we send all data to user event handlers + _viewOffStageEventHandler(this, e); + } + } + public static View GetViewFromPtr(global::System.IntPtr cPtr) { + View ret = new View(cPtr, false); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + public class Property : global::System.IDisposable { private global::System.Runtime.InteropServices.HandleRef swigCPtr; protected bool swigCMemOwn; @@ -534,6 +1082,178 @@ public class KeyEventArgs : EventArgs CONTROL_PROPERTY_END_INDEX = CONTROL_PROPERTY_START_INDEX+1000 } + public string StyleName + { + get + { + string temp; + GetProperty( View.Property.STYLE_NAME).Get( out temp ); + return temp; + } + set + { + SetProperty( View.Property.STYLE_NAME, new Dali.Property.Value( value ) ); + } + } + public Vector4 BackgroundColor + { + get + { + Vector4 temp = new Vector4(0.0f,0.0f,0.0f,0.0f); + GetProperty( View.Property.BACKGROUND_COLOR).Get( temp ); + return temp; + } + set + { + SetProperty( View.Property.BACKGROUND_COLOR, new Dali.Property.Value( value ) ); + } + } + public Dali.Property.Map BackgroundImage + { + get + { + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( View.Property.BACKGROUND_IMAGE).Get( temp ); + return temp; + } + set + { + SetProperty( View.Property.BACKGROUND_IMAGE, new Dali.Property.Value( value ) ); + } + } + public bool KeyInputFocus + { + get + { + bool temp = false; + GetProperty( View.Property.KEY_INPUT_FOCUS).Get( ref temp ); + return temp; + } + set + { + SetProperty( View.Property.KEY_INPUT_FOCUS, new Dali.Property.Value( value ) ); + } + } + public Dali.Property.Map Background + { + get + { + Dali.Property.Map temp = new Dali.Property.Map(); + GetProperty( View.Property.BACKGROUND).Get( temp ); + return temp; + } + set + { + SetProperty( View.Property.BACKGROUND, new Dali.Property.Value( value ) ); + } + } + + public Vector2 CellIndex + { + get + { + Vector2 temp = new Vector2(0.0f,0.0f); + GetProperty( TableView.ChildProperty.CELL_INDEX).Get( temp ); + return temp; + } + set + { + SetProperty( TableView.ChildProperty.CELL_INDEX, new Dali.Property.Value( value ) ); + } + } + public float RowSpan + { + get + { + float temp = 0.0f; + GetProperty( TableView.ChildProperty.ROW_SPAN).Get( ref temp ); + return temp; + } + set + { + SetProperty( TableView.ChildProperty.ROW_SPAN, new Dali.Property.Value( value ) ); + } + } + public float ColumnSpan + { + get + { + float temp = 0.0f; + GetProperty( TableView.ChildProperty.COLUMN_SPAN).Get( ref temp ); + return temp; + } + set + { + SetProperty( TableView.ChildProperty.COLUMN_SPAN, new Dali.Property.Value( value ) ); + } + } + public string CellHorizontalAlignment + { + get + { + string temp; + GetProperty( TableView.ChildProperty.CELL_HORIZONTAL_ALIGNMENT).Get( out temp ); + return temp; + } + set + { + SetProperty( TableView.ChildProperty.CELL_HORIZONTAL_ALIGNMENT, new Dali.Property.Value( value ) ); + } + } + public string CellVerticalAlignment + { + get + { + string temp; + GetProperty( TableView.ChildProperty.CELL_VERTICAL_ALIGNMENT).Get( out temp ); + return temp; + } + set + { + SetProperty( TableView.ChildProperty.CELL_VERTICAL_ALIGNMENT, new Dali.Property.Value( value ) ); + } + } + + public float Flex + { + get + { + float temp = 0.0f; + GetProperty( FlexContainer.ChildProperty.FLEX).Get( ref temp ); + return temp; + } + set + { + SetProperty( FlexContainer.ChildProperty.FLEX, new Dali.Property.Value( value ) ); + } + } + public int AlignSelf + { + get + { + int temp = 0; + GetProperty( FlexContainer.ChildProperty.ALIGN_SELF).Get( ref temp ); + return temp; + } + set + { + SetProperty( FlexContainer.ChildProperty.ALIGN_SELF, new Dali.Property.Value( value ) ); + } + } + public Vector4 FlexMargin + { + get + { + Vector4 temp = new Vector4(0.0f,0.0f,0.0f,0.0f); + GetProperty( FlexContainer.ChildProperty.FLEX_MARGIN).Get( temp ); + return temp; + } + set + { + SetProperty( FlexContainer.ChildProperty.FLEX_MARGIN, new Dali.Property.Value( value ) ); + } + } + } } diff --git a/plugins/dali-swig/automatic/csharp/VisualBase.cs b/plugins/dali-swig/automatic/csharp/VisualBase.cs index 0947ff9908..bbbfaef50b 100644 --- a/plugins/dali-swig/automatic/csharp/VisualBase.cs +++ b/plugins/dali-swig/automatic/csharp/VisualBase.cs @@ -53,6 +53,17 @@ public class VisualBase : BaseHandle { return ret; } + public void SetName(string name) { + NDalicPINVOKE.VisualBase_SetName(swigCPtr, name); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + + public string GetName() { + string ret = NDalicPINVOKE.VisualBase_GetName(swigCPtr); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + public void SetSize(Vector2 size) { NDalicPINVOKE.VisualBase_SetSize(swigCPtr, Vector2.getCPtr(size)); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); @@ -64,6 +75,12 @@ public class VisualBase : BaseHandle { return ret; } + public float GetHeightForWidth(float width) { + float ret = NDalicPINVOKE.VisualBase_GetHeightForWidth(swigCPtr, width); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + public void GetNaturalSize(Vector2 naturalSize) { NDalicPINVOKE.VisualBase_GetNaturalSize(swigCPtr, Vector2.getCPtr(naturalSize)); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); @@ -80,24 +97,20 @@ public class VisualBase : BaseHandle { return ret; } - public void SetOnStage(Actor actor) { - NDalicPINVOKE.VisualBase_SetOnStage(swigCPtr, Actor.getCPtr(actor)); - if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); - } - - public void SetOffStage(Actor actor) { - NDalicPINVOKE.VisualBase_SetOffStage(swigCPtr, Actor.getCPtr(actor)); + public void CreatePropertyMap(Property.Map map) { + NDalicPINVOKE.VisualBase_CreatePropertyMap(swigCPtr, Property.Map.getCPtr(map)); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } - public void RemoveAndReset(Actor actor) { - NDalicPINVOKE.VisualBase_RemoveAndReset(swigCPtr, Actor.getCPtr(actor)); + public void SetProperty(int index, Property.Value propertyValue) { + NDalicPINVOKE.VisualBase_SetProperty(swigCPtr, index, Property.Value.getCPtr(propertyValue)); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } - public void CreatePropertyMap(Property.Map map) { - NDalicPINVOKE.VisualBase_CreatePropertyMap(swigCPtr, Property.Map.getCPtr(map)); + public Property.Value GetProperty(int index) { + Property.Value ret = new Property.Value(NDalicPINVOKE.VisualBase_GetProperty(swigCPtr, index), true); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; } public VisualBase(SWIGTYPE_p_Dali__Toolkit__Internal__Visual__Base impl) : this(NDalicPINVOKE.new_VisualBase__SWIG_2(SWIGTYPE_p_Dali__Toolkit__Internal__Visual__Base.getCPtr(impl)), true) { diff --git a/plugins/dali-swig/automatic/csharp/VisualType.cs b/plugins/dali-swig/automatic/csharp/VisualType.cs index 04a8a43826..754bd5cf2c 100644 --- a/plugins/dali-swig/automatic/csharp/VisualType.cs +++ b/plugins/dali-swig/automatic/csharp/VisualType.cs @@ -17,7 +17,8 @@ public enum VisualType { IMAGE, MESH, PRIMITIVE, - WIREFRAME + WIREFRAME, + TEXT } } diff --git a/plugins/dali-swig/manual/csharp/Color.cs b/plugins/dali-swig/manual/csharp/Color.cs index 0082950891..3115a71432 100644 --- a/plugins/dali-swig/manual/csharp/Color.cs +++ b/plugins/dali-swig/manual/csharp/Color.cs @@ -2,6 +2,22 @@ namespace Dali { using System; + +public enum Colors +{ + Red, + White, + Blue, + Green, + Black, + Grey, + Yellow, + Azure, + Rose +} + + + public class Color : Vector4 { /** @@ -77,6 +93,49 @@ public class Color : Vector4 break; } } + + + /** + * @brief constructor + * + * @since 1.0.0 + * @param [in] color as enum Colors. + */ + public Color(Colors color) + : base(0, 0, 0, 0) + { + switch (color) + { + case Colors.Red: + SetColor(255, 0, 0, 255); + break; + case Colors.White: + SetColor(255, 255, 255, 255); + break; + case Colors.Blue: + SetColor(0, 0, 255, 255); + break; + case Colors.Green: + SetColor(0, 255, 0, 255); + break; + case Colors.Black: + SetColor(0, 0, 0, 255); + break; + case Colors.Grey: + SetColor(128, 128, 128, 255); + break; + case Colors.Yellow: + SetColor(255, 255, 0, 255); + break; + case Colors.Azure: + SetColor(0, 255, 255, 255); + break; + case Colors.Rose: + SetColor(255, 0, 255, 255); + break; + } + } + /** * @brief SetColor -- 2.34.1