2 * Copyright (c) 2022 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 #include <dali-toolkit/dali-toolkit.h>
20 #include <dali-toolkit/devel-api/text/character-sequence.h>
21 #include <dali/dali.h>
24 #include <dali-csharp-binder/common/common.h>
26 /* Callback for returning strings to C# without leaking memory */
27 typedef char *(SWIGSTDCALL *SWIG_CSharpStringHelperCallback)(const char *);
28 extern SWIG_CSharpStringHelperCallback SWIG_csharp_string_callback;
34 using namespace Dali::Toolkit::Text;
36 SWIGEXPORT void SWIGSTDCALL
37 CSharp_Dali_delete_CharacterSequence(void *refCharacterSequence) {
38 CharacterSequence *characterSequencePtr = (CharacterSequence *)0;
39 characterSequencePtr = (CharacterSequence *)refCharacterSequence;
43 delete characterSequencePtr;
45 CALL_CATCH_EXCEPTION();
49 SWIGEXPORT void *SWIGSTDCALL
50 CSharp_Dali_CharacterSequence_GetCharacters(void *refCharacterSequence) {
52 CharacterSequence *characterSequencePtr;
53 void *result = nullptr;
55 characterSequencePtr = (CharacterSequence *)refCharacterSequence;
56 if (!characterSequencePtr) {
57 SWIG_CSharpSetPendingExceptionArgument(
58 SWIG_CSharpArgumentNullException,
59 "Attempt to dereference null CharacterSequence", 0);
65 result = new Dali::Vector<uint32_t>(
66 (const Dali::Vector<uint32_t> &)(characterSequencePtr
69 CALL_CATCH_EXCEPTION(0);
75 SWIGEXPORT unsigned int SWIGSTDCALL
76 CSharp_Dali_CharacterSequence_GetNumberOfCharacters(
77 void *refCharacterSequence) {
79 CharacterSequence *characterSequencePtr;
80 unsigned int result = 0;
82 characterSequencePtr = (CharacterSequence *)refCharacterSequence;
83 if (!characterSequencePtr) {
84 SWIG_CSharpSetPendingExceptionArgument(
85 SWIG_CSharpArgumentNullException,
86 "Attempt to dereference null CharacterSequence", 0);
92 result = characterSequencePtr->GetNumberOfCharacters();
94 CALL_CATCH_EXCEPTION(0);
100 SWIGEXPORT char *SWIGSTDCALL
101 CSharp_Dali_CharacterSequence_ToString(void *refCharacterSequence) {
103 CharacterSequence *characterSequencePtr;
106 characterSequencePtr = (CharacterSequence *)refCharacterSequence;
107 if (!characterSequencePtr) {
108 SWIG_CSharpSetPendingExceptionArgument(
109 SWIG_CSharpArgumentNullException,
110 "Attempt to dereference null CharacterSequence", 0);
116 result = characterSequencePtr->ToString();
118 CALL_CATCH_EXCEPTION(0);
121 char *csResult = SWIG_csharp_string_callback(result.c_str());