From 2a1adc3ea4a67a391593127ee2225d6e4dd621b7 Mon Sep 17 00:00:00 2001 From: Sara Samara Date: Mon, 9 Aug 2021 08:50:32 +0300 Subject: [PATCH] [NUI] Support Public APIs - CopyText, CutText & PasteText string CopyText(TextEditor textEditor) or string CopyText(TextField textField) This function will copy the previously selected string into the clipboard and will return it. string CutText(TextEditor textEditor) or string CutText(TextField textField) This function will cut the previously selected string into the clipboard and will return it. void PasteText(TextEditor textEditor) or void PasteText(TextField textField This function will paste the most recent string in the clipboard stack into the text control. corresponding dali-toolkit patch: https://review.tizen.org/gerrit/c/platform/core/uifw/dali-toolkit/+/262080 Change-Id: I668510d999f2e4a36b50ffc57d28912cba288220 --- dali-csharp-binder/src/text-editor-wrap.cpp | 50 +++++++++++++++++++++++++++++ dali-csharp-binder/src/text-field-wrap.cpp | 50 +++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+) diff --git a/dali-csharp-binder/src/text-editor-wrap.cpp b/dali-csharp-binder/src/text-editor-wrap.cpp index 8741755..e2ee1ca 100755 --- a/dali-csharp-binder/src/text-editor-wrap.cpp +++ b/dali-csharp-binder/src/text-editor-wrap.cpp @@ -18,6 +18,10 @@ #include #include +/* Callback for returning strings to C# without leaking memory */ +typedef char * (SWIGSTDCALL* SWIG_CSharpStringHelperCallback)(const char *); +extern SWIG_CSharpStringHelperCallback SWIG_csharp_string_callback; + SWIGINTERN bool Dali_Signal_Sl_void_Sp_Dali_Toolkit_TextEditor_SP__Sg__Empty(Dali::Signal< void (Dali::Toolkit::TextEditor) > const *self){ return self->Empty(); } @@ -1265,6 +1269,52 @@ SWIGEXPORT void SWIGSTDCALL CSharp_Dali_TextEditor_SelectNone(void * jarg1) { } } +SWIGEXPORT char* SWIGSTDCALL CSharp_Dali_TextEditor_CopyText(void *pTextEditor) +{ + char *csCopiedText; + Dali::Toolkit::TextEditor *textEditor = (Dali::Toolkit::TextEditor *)0; + std::string copiedText; + + textEditor = (Dali::Toolkit::TextEditor *)pTextEditor; + { + try { + copiedText = Dali::Toolkit::DevelTextEditor::CopyText(*textEditor); + } + CALL_CATCH_EXCEPTION(0); + } + csCopiedText = SWIG_csharp_string_callback((&copiedText)->c_str()); + return csCopiedText; +} + +SWIGEXPORT char* SWIGSTDCALL CSharp_Dali_TextEditor_CutText(void *pTextEditor) +{ + char *csCutText; + Dali::Toolkit::TextEditor *textEditor = (Dali::Toolkit::TextEditor *)0; + std::string cutText; + + textEditor = (Dali::Toolkit::TextEditor *)pTextEditor; + { + try { + cutText = Dali::Toolkit::DevelTextEditor::CutText(*textEditor); + } + CALL_CATCH_EXCEPTION(0); + } + csCutText = SWIG_csharp_string_callback((&cutText)->c_str()); + return csCutText; +} + +SWIGEXPORT void SWIGSTDCALL CSharp_Dali_TextEditor_PasteText(void *pTextEditor) +{ + Dali::Toolkit::TextEditor *textEditor = (Dali::Toolkit::TextEditor *)0; + + textEditor = (Dali::Toolkit::TextEditor *)pTextEditor; + { + try { + Dali::Toolkit::DevelTextEditor::PasteText(*textEditor); + } + CALL_CATCH_EXCEPTION(); + } +} /*TextEditorSignal*/ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Dali_TextEditorSignal_Empty(void * jarg1) { diff --git a/dali-csharp-binder/src/text-field-wrap.cpp b/dali-csharp-binder/src/text-field-wrap.cpp index 3778ec7..11e300e 100755 --- a/dali-csharp-binder/src/text-field-wrap.cpp +++ b/dali-csharp-binder/src/text-field-wrap.cpp @@ -18,6 +18,10 @@ #include #include +/* Callback for returning strings to C# without leaking memory */ +typedef char * (SWIGSTDCALL* SWIG_CSharpStringHelperCallback)(const char *); +extern SWIG_CSharpStringHelperCallback SWIG_csharp_string_callback; + SWIGINTERN bool Dali_Signal_Sl_void_Sp_Dali_Toolkit_TextField_SP__Sg__Empty(Dali::Signal< void (Dali::Toolkit::TextField) > const *self){ return self->Empty(); } @@ -1225,6 +1229,52 @@ SWIGEXPORT void SWIGSTDCALL CSharp_Dali_TextField_SelectNone(void * jarg1) { } } +SWIGEXPORT char* SWIGSTDCALL CSharp_Dali_TextField_CopyText(void *pTextField) +{ + char *csCopiedText; + Dali::Toolkit::TextField *textField = (Dali::Toolkit::TextField *)0; + std::string copiedText; + + textField = (Dali::Toolkit::TextField *)pTextField; + { + try { + copiedText = Dali::Toolkit::DevelTextField::CopyText(*textField); + } + CALL_CATCH_EXCEPTION(0); + } + csCopiedText = SWIG_csharp_string_callback((&copiedText)->c_str()); + return csCopiedText; +} + +SWIGEXPORT char* SWIGSTDCALL CSharp_Dali_TextField_CutText(void *pTextField) +{ + char *csCutText; + Dali::Toolkit::TextField *textField = (Dali::Toolkit::TextField *)0; + std::string cutText; + + textField = (Dali::Toolkit::TextField *)pTextField; + { + try { + cutText = Dali::Toolkit::DevelTextField::CutText(*textField); + } + CALL_CATCH_EXCEPTION(0); + } + csCutText = SWIG_csharp_string_callback((&cutText)->c_str()); + return csCutText; +} + +SWIGEXPORT void SWIGSTDCALL CSharp_Dali_TextField_PasteText(void *pTextField) +{ + Dali::Toolkit::TextField *textField = (Dali::Toolkit::TextField *)0; + + textField = (Dali::Toolkit::TextField *)pTextField; + { + try { + Dali::Toolkit::DevelTextField::PasteText(*textField); + } + CALL_CATCH_EXCEPTION(); + } +} SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Dali_TextFieldSignal_Empty(void * jarg1) { unsigned int jresult ; -- 2.7.4