From 67b68b25d887cc68a7255171c1d5b9ac0a1065e8 Mon Sep 17 00:00:00 2001 From: Bowon Ryu Date: Thu, 10 Nov 2022 11:54:59 +0900 Subject: [PATCH] New with additional behaviour flag for text controls Add new "New" function that we can append additional ControlBehaviour This code works in TextField and TextEditor Change-Id: I28df965491bf6e6abff95ed3dc1a2a83f03588a5 Signed-off-by: Bowon Ryu --- .../src/dali-toolkit-styling/utc-Dali-StyleManager.cpp | 9 +++++++++ .../internal/controls/text-controls/text-editor-impl.cpp | 8 ++++---- dali-toolkit/internal/controls/text-controls/text-editor-impl.h | 7 +++++-- dali-toolkit/internal/controls/text-controls/text-field-impl.cpp | 8 ++++---- dali-toolkit/internal/controls/text-controls/text-field-impl.h | 7 +++++-- dali-toolkit/internal/controls/text-controls/text-label-impl.cpp | 4 ++-- dali-toolkit/public-api/controls/text-controls/text-editor.cpp | 5 +++++ dali-toolkit/public-api/controls/text-controls/text-editor.h | 9 +++++++++ dali-toolkit/public-api/controls/text-controls/text-field.cpp | 5 +++++ dali-toolkit/public-api/controls/text-controls/text-field.h | 9 +++++++++ dali-toolkit/public-api/controls/text-controls/text-label.h | 4 ++-- 11 files changed, 59 insertions(+), 16 deletions(-) diff --git a/automated-tests/src/dali-toolkit-styling/utc-Dali-StyleManager.cpp b/automated-tests/src/dali-toolkit-styling/utc-Dali-StyleManager.cpp index 3d9e206..0d6c4ae 100644 --- a/automated-tests/src/dali-toolkit-styling/utc-Dali-StyleManager.cpp +++ b/automated-tests/src/dali-toolkit-styling/utc-Dali-StyleManager.cpp @@ -1371,6 +1371,7 @@ int UtcDaliStyleManagerNewWithAdditionalBehavior(void) }; // Default New + // Note: TextField and TextEditor have TextSelectionPopup tet_infoline( "Check whether ControlStyleChangeSignal connected in default New\n"); checkup(1, Control::New()); checkup(1, ImageView::New()); @@ -1378,6 +1379,8 @@ int UtcDaliStyleManagerNewWithAdditionalBehavior(void) checkup(1, ImageView::New("url", Dali::ImageDimensions(32u, 32u))); checkup(1, TextLabel::New()); checkup(1, TextLabel::New("text")); + checkup(2, TextField::New()); + checkup(2, TextEditor::New()); // New with additional behaviour, but enable style change signals tet_infoline( "Check whether ControlStyleChangeSignal connected in non-disable style change signals\n"); @@ -1394,6 +1397,10 @@ int UtcDaliStyleManagerNewWithAdditionalBehavior(void) checkup(1, TextLabel::New(Toolkit::Control::ControlBehaviour::CONTROL_BEHAVIOUR_DEFAULT, "text")); checkup(1, TextLabel::New(Toolkit::Control::ControlBehaviour::DISABLE_SIZE_NEGOTIATION)); checkup(1, TextLabel::New(Toolkit::Control::ControlBehaviour::DISABLE_SIZE_NEGOTIATION, "text")); + checkup(2, TextField::New(Toolkit::Control::ControlBehaviour::CONTROL_BEHAVIOUR_DEFAULT)); + checkup(2, TextField::New(Toolkit::Control::ControlBehaviour::DISABLE_SIZE_NEGOTIATION)); + checkup(2, TextEditor::New(Toolkit::Control::ControlBehaviour::CONTROL_BEHAVIOUR_DEFAULT)); + checkup(2, TextEditor::New(Toolkit::Control::ControlBehaviour::DISABLE_SIZE_NEGOTIATION)); // New with additional behaviour, so disable style change signals tet_infoline( "Check whether ControlStyleChangeSignal did not connected\n"); @@ -1404,6 +1411,8 @@ int UtcDaliStyleManagerNewWithAdditionalBehavior(void) checkup(0, ImageView::New(Toolkit::Control::ControlBehaviour::DISABLE_STYLE_CHANGE_SIGNALS, "url", Dali::ImageDimensions(32u, 32u))); checkup(0, TextLabel::New(Toolkit::Control::ControlBehaviour::DISABLE_STYLE_CHANGE_SIGNALS)); checkup(0, TextLabel::New(Toolkit::Control::ControlBehaviour::DISABLE_STYLE_CHANGE_SIGNALS, "text")); + checkup(1, TextField::New(Toolkit::Control::ControlBehaviour::DISABLE_STYLE_CHANGE_SIGNALS)); + checkup(1, TextEditor::New(Toolkit::Control::ControlBehaviour::DISABLE_STYLE_CHANGE_SIGNALS)); END_TEST; } diff --git a/dali-toolkit/internal/controls/text-controls/text-editor-impl.cpp b/dali-toolkit/internal/controls/text-controls/text-editor-impl.cpp index 8520498..a27f45d 100644 --- a/dali-toolkit/internal/controls/text-controls/text-editor-impl.cpp +++ b/dali-toolkit/internal/controls/text-controls/text-editor-impl.cpp @@ -233,10 +233,10 @@ Toolkit::TextEditor::InputStyle::Mask ConvertInputStyle(Text::InputStyle::Mask i } // namespace -Toolkit::TextEditor TextEditor::New() +Toolkit::TextEditor TextEditor::New(ControlBehaviour additionalBehaviour) { // Create the implementation, temporarily owned by this handle on stack - IntrusivePtr impl = new TextEditor(); + IntrusivePtr impl = new TextEditor(additionalBehaviour); // Pass ownership to CustomActor handle Toolkit::TextEditor handle(*impl); @@ -1366,8 +1366,8 @@ void TextEditor::OnLayoutDirectionChanged(Actor actor, LayoutDirection::Type typ mController->ChangedLayoutDirection(); } -TextEditor::TextEditor() -: Control(ControlBehaviour(CONTROL_BEHAVIOUR_DEFAULT)), +TextEditor::TextEditor(ControlBehaviour additionalBehaviour) +: Control(ControlBehaviour(CONTROL_BEHAVIOUR_DEFAULT | additionalBehaviour)), mAnimationPeriod(0.0f, 0.0f), mIdleCallback(NULL), mAlignmentOffset(0.f), diff --git a/dali-toolkit/internal/controls/text-controls/text-editor-impl.h b/dali-toolkit/internal/controls/text-controls/text-editor-impl.h index 062baf4..a6cd50d 100644 --- a/dali-toolkit/internal/controls/text-controls/text-editor-impl.h +++ b/dali-toolkit/internal/controls/text-controls/text-editor-impl.h @@ -58,8 +58,9 @@ class TextEditor : public Control, public Text::ControlInterface, public Text::E public: /** * @copydoc Dali::Toollkit::TextEditor::New() + * @param[in] additionalBehaviour custom behavior flags for this TextEditor. Default is CONTROL_BEHAVIOUR_DEFAULT */ - static Toolkit::TextEditor New(); + static Toolkit::TextEditor New(ControlBehaviour additionalBehaviour = ControlBehaviour::CONTROL_BEHAVIOUR_DEFAULT); // Properties @@ -525,8 +526,10 @@ private: // Implementation /** * Construct a new TextEditor. + * + * @param[in] additionalBehaviour additional behaviour flags for this TextEditor */ - TextEditor(); + TextEditor(ControlBehaviour additionalBehaviour); /** * A reference counted object may only be deleted by calling Unreference() diff --git a/dali-toolkit/internal/controls/text-controls/text-field-impl.cpp b/dali-toolkit/internal/controls/text-controls/text-field-impl.cpp index 2f0b559..3d53aa1 100644 --- a/dali-toolkit/internal/controls/text-controls/text-field-impl.cpp +++ b/dali-toolkit/internal/controls/text-controls/text-field-impl.cpp @@ -209,10 +209,10 @@ Toolkit::TextField::InputStyle::Mask ConvertInputStyle(Text::InputStyle::Mask in } // namespace -Toolkit::TextField TextField::New() +Toolkit::TextField TextField::New(ControlBehaviour additionalBehaviour) { // Create the implementation, temporarily owned by this handle on stack - IntrusivePtr impl = new TextField(); + IntrusivePtr impl = new TextField(additionalBehaviour); // Pass ownership to CustomActor handle Toolkit::TextField handle(*impl); @@ -1167,8 +1167,8 @@ void TextField::OnIdleSignal() mIdleCallback = NULL; } -TextField::TextField() -: Control(ControlBehaviour(CONTROL_BEHAVIOUR_DEFAULT)), +TextField::TextField(ControlBehaviour additionalBehaviour) +: Control(ControlBehaviour(CONTROL_BEHAVIOUR_DEFAULT | additionalBehaviour)), mIdleCallback(NULL), mAlignmentOffset(0.f), mRenderingBackend(DEFAULT_RENDERING_BACKEND), diff --git a/dali-toolkit/internal/controls/text-controls/text-field-impl.h b/dali-toolkit/internal/controls/text-controls/text-field-impl.h index 7b5d2f6..c9ef431 100644 --- a/dali-toolkit/internal/controls/text-controls/text-field-impl.h +++ b/dali-toolkit/internal/controls/text-controls/text-field-impl.h @@ -54,8 +54,9 @@ class TextField : public Control, public Text::ControlInterface, public Text::Ed public: /** * @copydoc Dali::Toollkit::TextField::New() + * @param[in] additionalBehaviour custom behavior flags for this TextField. Default is CONTROL_BEHAVIOUR_DEFAULT */ - static Toolkit::TextField New(); + static Toolkit::TextField New(ControlBehaviour additionalBehaviour = ControlBehaviour::CONTROL_BEHAVIOUR_DEFAULT); // Properties @@ -481,8 +482,10 @@ private: // Implementation /** * Construct a new TextField. + * + * @param[in] additionalBehaviour additional behaviour flags for this TextField */ - TextField(); + TextField(ControlBehaviour additionalBehaviour); /** * A reference counted object may only be deleted by calling Unreference() diff --git a/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp b/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp index 2c379db..570e370 100644 --- a/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp +++ b/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp @@ -1214,8 +1214,8 @@ void TextLabel::OnAccessibilityStatusChanged() CommonTextUtils::SynchronizeTextAnchorsInParent(Self(), mController, mAnchorActors); } -TextLabel::TextLabel(ControlBehaviour additionalBehavior) -: Control(ControlBehaviour(CONTROL_BEHAVIOUR_DEFAULT | additionalBehavior)), +TextLabel::TextLabel(ControlBehaviour additionalBehaviour) +: Control(ControlBehaviour(CONTROL_BEHAVIOUR_DEFAULT | additionalBehaviour)), mRenderingBackend(DEFAULT_RENDERING_BACKEND), mTextUpdateNeeded(false), mLastAutoScrollEnabled(false) diff --git a/dali-toolkit/public-api/controls/text-controls/text-editor.cpp b/dali-toolkit/public-api/controls/text-controls/text-editor.cpp index 980b0c9..17b7486 100644 --- a/dali-toolkit/public-api/controls/text-controls/text-editor.cpp +++ b/dali-toolkit/public-api/controls/text-controls/text-editor.cpp @@ -30,6 +30,11 @@ TextEditor TextEditor::New() return Internal::TextEditor::New(); } +TextEditor TextEditor::New(ControlBehaviour additionalBehaviour) +{ + return Internal::TextEditor::New(static_cast(additionalBehaviour)); +} + TextEditor::TextEditor() { } diff --git a/dali-toolkit/public-api/controls/text-controls/text-editor.h b/dali-toolkit/public-api/controls/text-controls/text-editor.h index b644b08..d3d8595 100644 --- a/dali-toolkit/public-api/controls/text-controls/text-editor.h +++ b/dali-toolkit/public-api/controls/text-controls/text-editor.h @@ -512,6 +512,15 @@ public: New(); /** + * @brief Creates the TextEditor control with additional behaviour. + * + * @SINCE_2_2.3 + * @param[in] additionalBehaviour Additional control behaviour + * @return A handle to the TextEditor control + */ + static TextEditor New(ControlBehaviour additionalBehaviour); + + /** * @brief Creates an empty handle. * * @SINCE_1_1.37 diff --git a/dali-toolkit/public-api/controls/text-controls/text-field.cpp b/dali-toolkit/public-api/controls/text-controls/text-field.cpp index 075a468..3c862fa 100644 --- a/dali-toolkit/public-api/controls/text-controls/text-field.cpp +++ b/dali-toolkit/public-api/controls/text-controls/text-field.cpp @@ -30,6 +30,11 @@ TextField TextField::New() return Internal::TextField::New(); } +TextField TextField::New(ControlBehaviour additionalBehaviour) +{ + return Internal::TextField::New(static_cast(additionalBehaviour)); +} + TextField::TextField() { } diff --git a/dali-toolkit/public-api/controls/text-controls/text-field.h b/dali-toolkit/public-api/controls/text-controls/text-field.h index a99d1d2..302ba46 100644 --- a/dali-toolkit/public-api/controls/text-controls/text-field.h +++ b/dali-toolkit/public-api/controls/text-controls/text-field.h @@ -523,6 +523,15 @@ public: static TextField New(); /** + * @brief Creates the TextField control with additional behaviour. + * + * @SINCE_2_2.3 + * @param[in] additionalBehaviour Additional control behaviour + * @return A handle to the TextField control + */ + static TextField New(ControlBehaviour additionalBehaviour); + + /** * @brief Creates an empty handle. * @SINCE_1_0.0 */ diff --git a/dali-toolkit/public-api/controls/text-controls/text-label.h b/dali-toolkit/public-api/controls/text-controls/text-label.h index 3f0323f..0655519 100644 --- a/dali-toolkit/public-api/controls/text-controls/text-label.h +++ b/dali-toolkit/public-api/controls/text-controls/text-label.h @@ -382,7 +382,7 @@ public: static TextLabel New(const std::string& text); /** - * @brief Creates the TextLabel control with additional behavior. + * @brief Creates the TextLabel control with additional behaviour. * * @SINCE_2_1.8 * @param[in] additionalBehaviour Additional control behaviour @@ -391,7 +391,7 @@ public: static TextLabel New(ControlBehaviour additionalBehaviour); /** - * @brief Creates the TextLabel control with additional behavior. + * @brief Creates the TextLabel control with additional behaviour. * * @SINCE_2_1.8 * @param[in] additionalBehaviour Additional control behaviour -- 2.7.4