From 95e4acc6c3016aabf40bf495351775b3a1fd29ec Mon Sep 17 00:00:00 2001 From: Bowon Ryu Date: Thu, 8 Aug 2024 14:13:39 +0900 Subject: [PATCH] Async text feature Please refer to devel/async_text for detailed history/logs of each patch. [Related patches] https://review.tizen.org/gerrit/#/c/platform/core/uifw/dali-adaptor/+/315160/ https://review.tizen.org/gerrit/#/c/platform/core/uifw/dali-toolkit/+/315140/ Change-Id: Id110567a7e3dba8861202146bf64bc7c3c34bf38 Signed-off-by: Bowon Ryu --- .../dali-toolkit/text-label-wrap.cpp | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) diff --git a/dali-csharp-binder/dali-toolkit/text-label-wrap.cpp b/dali-csharp-binder/dali-toolkit/text-label-wrap.cpp index 3234cc2d..8934e1e2 100755 --- a/dali-csharp-binder/dali-toolkit/text-label-wrap.cpp +++ b/dali-csharp-binder/dali-toolkit/text-label-wrap.cpp @@ -97,6 +97,21 @@ SWIGEXPORT int SWIGSTDCALL CSharp_Dali_TextLabel_Property_CUTOUT_get() return (int)Dali::Toolkit::DevelTextLabel::Property::CUTOUT; } +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_TextLabel_Property_RENDER_MODE_get() +{ + return (int)Dali::Toolkit::DevelTextLabel::Property::RENDER_MODE; +} + +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_TextLabel_Property_MANUAL_RENDERED_get() +{ + return (int)Dali::Toolkit::DevelTextLabel::Property::MANUAL_RENDERED; +} + +SWIGEXPORT int SWIGSTDCALL CSharp_Dali_TextLabel_Property_ASYNC_LINE_COUNT_get() +{ + return (int)Dali::Toolkit::DevelTextLabel::Property::ASYNC_LINE_COUNT; +} + SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_TextLabel_GetTextSize(void * pTextLabel, unsigned int start, unsigned int end) { Dali::Toolkit::TextLabel *textLabel = (Dali::Toolkit::TextLabel *) 0; @@ -197,6 +212,94 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_TextLabel_GetTextFitArray(void * argTe return result; } +SWIGEXPORT void SWIGSTDCALL CSharp_Dali_TextLabel_RequestAsyncRenderWithFixedSize(void * pTextLabel, float width, float height) +{ + Dali::Toolkit::TextLabel *textLabel = (Dali::Toolkit::TextLabel *) 0; + + textLabel = (Dali::Toolkit::TextLabel *)pTextLabel; + { + try + { + Dali::Toolkit::DevelTextLabel::RequestAsyncRenderWithFixedSize(*textLabel, width, height); + } CALL_CATCH_EXCEPTION(); + } +} + +SWIGEXPORT void SWIGSTDCALL CSharp_Dali_TextLabel_RequestAsyncRenderWithFixedWidth(void * pTextLabel, float width, float heightConstraint) +{ + Dali::Toolkit::TextLabel *textLabel = (Dali::Toolkit::TextLabel *) 0; + + textLabel = (Dali::Toolkit::TextLabel *)pTextLabel; + { + try + { + Dali::Toolkit::DevelTextLabel::RequestAsyncRenderWithFixedWidth(*textLabel, width, heightConstraint); + } CALL_CATCH_EXCEPTION(); + } +} + +SWIGEXPORT void SWIGSTDCALL CSharp_Dali_TextLabel_RequestAsyncRenderWithConstraint(void * pTextLabel, float widthConstraint, float heightConstraint) +{ + Dali::Toolkit::TextLabel *textLabel = (Dali::Toolkit::TextLabel *) 0; + + textLabel = (Dali::Toolkit::TextLabel *)pTextLabel; + { + try + { + Dali::Toolkit::DevelTextLabel::RequestAsyncRenderWithConstraint(*textLabel, widthConstraint, heightConstraint); + } CALL_CATCH_EXCEPTION(); + } +} + +SWIGEXPORT void SWIGSTDCALL CSharp_Dali_TextLabel_RequestAsyncNaturalSize(void * pTextLabel) +{ + Dali::Toolkit::TextLabel *textLabel = (Dali::Toolkit::TextLabel *) 0; + + textLabel = (Dali::Toolkit::TextLabel *)pTextLabel; + { + try + { + Dali::Toolkit::DevelTextLabel::RequestAsyncNaturalSize(*textLabel); + } CALL_CATCH_EXCEPTION(); + } +} + +SWIGEXPORT void SWIGSTDCALL CSharp_Dali_TextLabel_RequestAsyncHeightForWidth(void * pTextLabel, float width) +{ + Dali::Toolkit::TextLabel *textLabel = (Dali::Toolkit::TextLabel *) 0; + + textLabel = (Dali::Toolkit::TextLabel *)pTextLabel; + { + try + { + Dali::Toolkit::DevelTextLabel::RequestAsyncHeightForWidth(*textLabel, width); + } CALL_CATCH_EXCEPTION(); + } +} + +// Signals +#ifndef GENERATE_DEVEL_TEXT_LABEL_SIGNAL +#define GENERATE_DEVEL_TEXT_LABEL_SIGNAL(HType, SignalName) GENERATE_DEVEL_SIGNAL(Dali::Toolkit::TextLabel*, HType, Dali::Toolkit::DevelTextLabel, Dali_TextLabel, SignalName) +#endif +#ifndef GENERATE_TEXT_LABEL_SIGNAL +#define GENERATE_TEXT_LABEL_SIGNAL(HType, SignalName) GENERATE_SIGNAL(Dali::Toolkit::TextLabel*, HType, Dali_TextLabel, SignalName) +#endif + +// TODO: Other signals also need to be redefined using macros. + +GENERATE_DEVEL_TEXT_LABEL_SIGNAL(void(*)(Dali::Toolkit::TextLabel, float, float), AsyncTextRenderedSignal) +// CSharp_Dali_TextLabel_AsyncTextRenderedSignal_Connect +// CSharp_Dali_TextLabel_AsyncTextRenderedSignal_Disconnect + +GENERATE_DEVEL_TEXT_LABEL_SIGNAL(void(*)(Dali::Toolkit::TextLabel, float, float), AsyncNaturalSizeComputedSignal) +// CSharp_Dali_TextLabel_AsyncNaturalSizeComputedSignal_Connect +// CSharp_Dali_TextLabel_AsyncNaturalSizeComputedSignal_Disconnect + +GENERATE_DEVEL_TEXT_LABEL_SIGNAL(void(*)(Dali::Toolkit::TextLabel, float, float), AsyncHeightForWidthComputedSignal) +// CSharp_Dali_TextLabel_AsyncHeightForWidthComputedSignal_Connect +// CSharp_Dali_TextLabel_AsyncHeightForWidthComputedSignal_Disconnect + + SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_TextLabel_AnchorClickedSignal(void * jarg1) { void * jresult ; Dali::Toolkit::TextLabel *arg1 = (Dali::Toolkit::TextLabel *) 0 ; -- 2.34.1