New with additional behaviour flag for text controls 13/284113/6
authorBowon Ryu <bowon.ryu@samsung.com>
Thu, 10 Nov 2022 02:54:59 +0000 (11:54 +0900)
committerBowon Ryu <bowon.ryu@samsung.com>
Mon, 21 Nov 2022 05:49:44 +0000 (14:49 +0900)
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 <bowon.ryu@samsung.com>
automated-tests/src/dali-toolkit-styling/utc-Dali-StyleManager.cpp
dali-toolkit/internal/controls/text-controls/text-editor-impl.cpp
dali-toolkit/internal/controls/text-controls/text-editor-impl.h
dali-toolkit/internal/controls/text-controls/text-field-impl.cpp
dali-toolkit/internal/controls/text-controls/text-field-impl.h
dali-toolkit/internal/controls/text-controls/text-label-impl.cpp
dali-toolkit/public-api/controls/text-controls/text-editor.cpp
dali-toolkit/public-api/controls/text-controls/text-editor.h
dali-toolkit/public-api/controls/text-controls/text-field.cpp
dali-toolkit/public-api/controls/text-controls/text-field.h
dali-toolkit/public-api/controls/text-controls/text-label.h

index 3d9e206..0d6c4ae 100644 (file)
@@ -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;
 }
index 8520498..a27f45d 100644 (file)
@@ -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<TextEditor> impl = new TextEditor();
+  IntrusivePtr<TextEditor> 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),
index 062baf4..a6cd50d 100644 (file)
@@ -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()
index 2f0b559..3d53aa1 100644 (file)
@@ -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<TextField> impl = new TextField();
+  IntrusivePtr<TextField> 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),
index 7b5d2f6..c9ef431 100644 (file)
@@ -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()
index 2c379db..570e370 100644 (file)
@@ -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)
index 980b0c9..17b7486 100644 (file)
@@ -30,6 +30,11 @@ TextEditor TextEditor::New()
   return Internal::TextEditor::New();
 }
 
+TextEditor TextEditor::New(ControlBehaviour additionalBehaviour)
+{
+  return Internal::TextEditor::New(static_cast<Toolkit::Internal::Control::ControlBehaviour>(additionalBehaviour));
+}
+
 TextEditor::TextEditor()
 {
 }
index b644b08..d3d8595 100644 (file)
@@ -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
index 075a468..3c862fa 100644 (file)
@@ -30,6 +30,11 @@ TextField TextField::New()
   return Internal::TextField::New();
 }
 
+TextField TextField::New(ControlBehaviour additionalBehaviour)
+{
+  return Internal::TextField::New(static_cast<Toolkit::Internal::Control::ControlBehaviour>(additionalBehaviour));
+}
+
 TextField::TextField()
 {
 }
index a99d1d2..302ba46 100644 (file)
@@ -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
    */
index 3f0323f..0655519 100644 (file)
@@ -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