Merge "[ATSPI][SVACE] Fixes use of v variable after it was freed by eldbus_service_in...
authorSeoyeon Kim <seoyeon2.kim@samsung.com>
Wed, 7 Jul 2021 07:01:46 +0000 (07:01 +0000)
committerGerrit Code Review <gerrit@review>
Wed, 7 Jul 2021 07:01:46 +0000 (07:01 +0000)
40 files changed:
automated-tests/src/dali-toolkit-internal/utc-Dali-Accessibility-Controls-BridgeUp.cpp
automated-tests/src/dali-toolkit-internal/utc-Dali-Accessibility-Controls.cpp
automated-tests/src/dali-toolkit-internal/utc-Dali-Accessibility-Text.cpp
automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Controller.cpp
automated-tests/src/dali-toolkit-internal/utc-Dali-TextEditor-internal.cpp
automated-tests/src/dali-toolkit-internal/utc-Dali-TextField-internal.cpp
automated-tests/src/dali-toolkit-internal/utc-Dali-TextLabel-internal.cpp
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-web-engine.cpp
automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp
dali-toolkit/devel-api/controls/accessible-impl.cpp
dali-toolkit/devel-api/controls/accessible-impl.h
dali-toolkit/devel-api/controls/control-devel.cpp
dali-toolkit/devel-api/controls/control-devel.h
dali-toolkit/devel-api/controls/web-view/web-context.cpp
dali-toolkit/devel-api/controls/web-view/web-context.h
dali-toolkit/devel-api/controls/web-view/web-view.cpp
dali-toolkit/devel-api/controls/web-view/web-view.h
dali-toolkit/internal/controls/buttons/button-impl.cpp
dali-toolkit/internal/controls/buttons/check-box-button-impl.cpp
dali-toolkit/internal/controls/buttons/push-button-impl.cpp
dali-toolkit/internal/controls/buttons/radio-button-impl.cpp
dali-toolkit/internal/controls/buttons/toggle-button-impl.cpp
dali-toolkit/internal/controls/control/control-data-impl.cpp
dali-toolkit/internal/controls/control/control-data-impl.h
dali-toolkit/internal/controls/progress-bar/progress-bar-impl.cpp
dali-toolkit/internal/controls/scroll-bar/scroll-bar-impl.cpp
dali-toolkit/internal/controls/slider/slider-impl.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/internal/controls/text-controls/text-label-impl.h
dali-toolkit/internal/controls/web-view/web-view-impl.cpp [changed mode: 0755->0644]
dali-toolkit/internal/controls/web-view/web-view-impl.h
dali-toolkit/internal/text/text-controller-impl-event-handler.cpp
dali-toolkit/internal/text/text-controller-impl.cpp
dali-toolkit/internal/text/text-editable-control-interface.h
dali-toolkit/public-api/dali-toolkit-version.cpp
packaging/dali-toolkit.spec

index 808cc7a..a6b682e 100644 (file)
@@ -712,7 +712,7 @@ int UtcDaliAccessibilityGetExtents(void)
   auto a = Dali::Accessibility::Accessible::Get( control );
   auto a_component = dynamic_cast<Dali::Accessibility::Component*>( a );
 
-  auto extents = a_component->GetExtents(Dali::Accessibility::CoordType::SCREEN);
+  auto extents = a_component->GetExtents(Dali::Accessibility::CoordinateType::SCREEN);
   DALI_TEST_EQUALS( extents.x, 5.0f, TEST_LOCATION );
   DALI_TEST_EQUALS( extents.y, 5.0f, TEST_LOCATION );
   DALI_TEST_EQUALS( extents.height, 10.0f, TEST_LOCATION );
@@ -728,7 +728,7 @@ int UtcDaliAccessibilityGetExtents(void)
   application.SendNotification();
   application.Render( 1 );
 
-  extents = a_component->GetExtents(Dali::Accessibility::CoordType::SCREEN);
+  extents = a_component->GetExtents(Dali::Accessibility::CoordinateType::SCREEN);
   DALI_TEST_EQUALS( extents.x, 10.0f, TEST_LOCATION );
   DALI_TEST_EQUALS( extents.y, 10.0f, TEST_LOCATION );
   DALI_TEST_EQUALS( extents.height, 10.0f, TEST_LOCATION );
@@ -1050,4 +1050,4 @@ int UtcDaliAccessibilityScrollToChildNonScrollable(void)
 
   Dali::Accessibility::TestEnableSC( false );
   END_TEST;
-}
\ No newline at end of file
+}
index dabd012..9243a0b 100644 (file)
@@ -540,9 +540,9 @@ int UtcDaliAccessibilityTextField(void)
   auto text = dynamic_cast< Dali::Accessibility::Text* >( accessible );
   DALI_TEST_CHECK( text );
   DALI_TEST_EQUALS( text->GetText( 0, 10 ), "", TEST_LOCATION );
-  DALI_TEST_EQUALS( text->SetCaretOffset(100), false, TEST_LOCATION );
-  DALI_TEST_EQUALS( text->SetCaretOffset(2), true, TEST_LOCATION );
-  DALI_TEST_EQUALS( text->GetCaretOffset(), 2, TEST_LOCATION );
+  DALI_TEST_EQUALS( text->SetCursorOffset(100), false, TEST_LOCATION );
+  DALI_TEST_EQUALS( text->SetCursorOffset(2), true, TEST_LOCATION );
+  DALI_TEST_EQUALS( text->GetCursorOffset(), 2, TEST_LOCATION );
 
   auto editabletext = dynamic_cast< Dali::Accessibility::EditableText* >( accessible );
   DALI_TEST_CHECK( editabletext );
@@ -552,11 +552,11 @@ int UtcDaliAccessibilityTextField(void)
   DALI_TEST_EQUALS( editabletext->CutText( 1, 3 ), true, TEST_LOCATION );
   DALI_TEST_EQUALS( text->GetText( 0, 1 ), "t", TEST_LOCATION );
 
-  auto range = text->GetSelection( 1 );
+  auto range = text->GetRangeOfSelection( 1 );
   DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
   DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
   DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
-  DALI_TEST_EQUALS( text->SetSelection( 1, 0, 1 ), false, TEST_LOCATION );
+  DALI_TEST_EQUALS( text->SetRangeOfSelection( 1, 0, 1 ), false, TEST_LOCATION );
   DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION );
 
   DALI_TEST_EQUALS(editabletext->SetTextContents("adef"), true, TEST_LOCATION);
@@ -596,9 +596,9 @@ int UtcDaliAccessibilityTextEditor(void)
   auto text = dynamic_cast< Dali::Accessibility::Text* >( accessible );
   DALI_TEST_CHECK( text );
   DALI_TEST_EQUALS( text->GetText( 0, 10 ), "", TEST_LOCATION );
-  DALI_TEST_EQUALS( text->SetCaretOffset(100), false, TEST_LOCATION );
-  DALI_TEST_EQUALS( text->SetCaretOffset(2), true, TEST_LOCATION );
-  DALI_TEST_EQUALS( text->GetCaretOffset(), 2, TEST_LOCATION );
+  DALI_TEST_EQUALS( text->SetCursorOffset(100), false, TEST_LOCATION );
+  DALI_TEST_EQUALS( text->SetCursorOffset(2), true, TEST_LOCATION );
+  DALI_TEST_EQUALS( text->GetCursorOffset(), 2, TEST_LOCATION );
 
   auto editabletext = dynamic_cast< Dali::Accessibility::EditableText* >( accessible );
   DALI_TEST_CHECK( editabletext );
@@ -608,11 +608,11 @@ int UtcDaliAccessibilityTextEditor(void)
   DALI_TEST_EQUALS( editabletext->CutText( 1, 3 ), true, TEST_LOCATION );
   DALI_TEST_EQUALS( text->GetText( 0, 1 ), "t", TEST_LOCATION );
 
-  auto range = text->GetSelection( 1 );
+  auto range = text->GetRangeOfSelection( 1 );
   DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
   DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
   DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
-  DALI_TEST_EQUALS( text->SetSelection( 1, 0, 1 ), false, TEST_LOCATION );
+  DALI_TEST_EQUALS( text->SetRangeOfSelection( 1, 0, 1 ), false, TEST_LOCATION );
   DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION );
 
   DALI_TEST_EQUALS(editabletext->SetTextContents("adef"), true, TEST_LOCATION);
@@ -650,14 +650,14 @@ int UtcDaliAccessibilityTextLabel(void)
   DALI_TEST_CHECK( text );
   DALI_TEST_EQUALS( text->GetText( 0, 10 ), "", TEST_LOCATION );
   DALI_TEST_EQUALS( text->GetText( 0, 4 ), "test", TEST_LOCATION );
-  DALI_TEST_EQUALS( text->SetCaretOffset(0), false, TEST_LOCATION );
-  DALI_TEST_EQUALS( text->GetCaretOffset(), 0, TEST_LOCATION );
+  DALI_TEST_EQUALS( text->SetCursorOffset(0), false, TEST_LOCATION );
+  DALI_TEST_EQUALS( text->GetCursorOffset(), 0, TEST_LOCATION );
 
-  auto range = text->GetSelection( 1 );
+  auto range = text->GetRangeOfSelection( 1 );
   DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
   DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
   DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
-  DALI_TEST_EQUALS( text->SetSelection( 1, 0, 1 ), false, TEST_LOCATION );
+  DALI_TEST_EQUALS( text->SetRangeOfSelection( 1, 0, 1 ), false, TEST_LOCATION );
   DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION );
 
   Dali::Accessibility::TestEnableSC( false );
index 7bc4fe1..6b77f00 100644 (file)
@@ -141,7 +141,7 @@ int utcDaliAccessibilityTextEditorGetTextAtOffset(void)
   END_TEST;
 }
 
-int utcDaliAccessibilityTextEditorGetSetSelection(void)
+int utcDaliAccessibilityTextEditorGetSetRangeOfSelection(void)
 {
   ToolkitTestApplication application;
 
@@ -151,14 +151,14 @@ int utcDaliAccessibilityTextEditorGetSetSelection(void)
   DALI_TEST_CHECK( x );
   if( x )
   {
-    auto range = x->GetSelection( 0 );
+    auto range = x->GetRangeOfSelection( 0 );
     DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
     DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
     DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
 
-    x->SetSelection( 0, 4, 9 );
+    x->SetRangeOfSelection( 0, 4, 9 );
     editor.SetProperty( Toolkit::TextEditor::Property::TEXT, "exemplary_text" );
-    range = x->GetSelection( 0 );
+    range = x->GetRangeOfSelection( 0 );
 
     DALI_TEST_EQUALS( range.startOffset, 4, TEST_LOCATION );
     DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION );
@@ -178,17 +178,17 @@ int utcDaliAccessibilityTextEditorRemoveSelection(void)
   DALI_TEST_CHECK( x );
   if( x )
   {
-    auto range = x->GetSelection( 0 );
+    auto range = x->GetRangeOfSelection( 0 );
     DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
     DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
 
-    x->SetSelection( 0, 4, 9 );
-    range = x->GetSelection( 0 );
+    x->SetRangeOfSelection( 0, 4, 9 );
+    range = x->GetRangeOfSelection( 0 );
     DALI_TEST_EQUALS( range.startOffset, 4, TEST_LOCATION );
     DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION );
 
     x->RemoveSelection( 0 );
-    range = x->GetSelection( 0 );
+    range = x->GetRangeOfSelection( 0 );
     DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
     DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
   }
@@ -299,7 +299,7 @@ int utcDaliAccessibilityTextFieldGetTextAtOffset(void)
   END_TEST;
 }
 
-int utcDaliAccessibilityTextFieldGetSetSelection(void)
+int utcDaliAccessibilityTextFieldGetSetRangeOfSelection(void)
 {
   ToolkitTestApplication application;
 
@@ -309,14 +309,14 @@ int utcDaliAccessibilityTextFieldGetSetSelection(void)
   DALI_TEST_CHECK( x );
   if( x )
   {
-    auto range = x->GetSelection( 0 );
+    auto range = x->GetRangeOfSelection( 0 );
     DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
     DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
     DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
 
-    x->SetSelection( 0, 4, 9 );
+    x->SetRangeOfSelection( 0, 4, 9 );
     field.SetProperty( Toolkit::TextEditor::Property::TEXT, "exemplary_text" );
-    range = x->GetSelection( 0 );
+    range = x->GetRangeOfSelection( 0 );
 
     DALI_TEST_EQUALS( range.startOffset, 4, TEST_LOCATION );
     DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION );
@@ -336,17 +336,17 @@ int utcDaliAccessibilityTextFieldRemoveSelection(void)
   DALI_TEST_CHECK( x );
   if( x )
   {
-    auto range = x->GetSelection( 0 );
+    auto range = x->GetRangeOfSelection( 0 );
     DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
     DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
 
-    x->SetSelection( 0, 4, 9 );
-    range = x->GetSelection( 0 );
+    x->SetRangeOfSelection( 0, 4, 9 );
+    range = x->GetRangeOfSelection( 0 );
     DALI_TEST_EQUALS( range.startOffset, 4, TEST_LOCATION );
     DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION );
 
     x->RemoveSelection( 0 );
-    range = x->GetSelection( 0 );
+    range = x->GetRangeOfSelection( 0 );
     DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
     DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
   }
@@ -467,17 +467,17 @@ int utcDaliAccessibilityTextLabelRemoveSelection( void )
   DALI_TEST_CHECK( x );
   if( x )
   {
-    auto range = x->GetSelection( 0 );
+    auto range = x->GetRangeOfSelection( 0 );
     DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
     DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
 
-    x->SetSelection( 0, 4, 9 );
-    range = x->GetSelection( 0 );
+    x->SetRangeOfSelection( 0, 4, 9 );
+    range = x->GetRangeOfSelection( 0 );
     DALI_TEST_EQUALS( range.startOffset, 4, TEST_LOCATION );
     DALI_TEST_EQUALS( range.endOffset, 9, TEST_LOCATION );
 
     x->RemoveSelection( 0 );
-    range = x->GetSelection( 0 );
+    range = x->GetRangeOfSelection( 0 );
     DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
     DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
   }
index 1d394e6..bb3ed33 100755 (executable)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2021 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -386,6 +386,50 @@ int UtcDaliTextControllerImfPreeditStyle(void)
   END_TEST;
 }
 
+int UtcDaliTextControllerImfPreeditStyleReverse(void)
+{
+  tet_infoline(" UtcDaliTextControllerImfPreeditStyleReverse");
+  ToolkitTestApplication application;
+
+  // Creates a text controller.
+  ControllerPtr controller = Controller::New();
+
+  std::string text;
+  InputMethodContext::EventData imfEvent;
+
+  DALI_TEST_CHECK(controller);
+
+  // Configures the text controller similarly to the text-field.
+  ConfigureTextField(controller);
+
+  InputMethodContext inputMethodContext = InputMethodContext::New();
+
+  // Send PRE_EDIT event
+  imfEvent = InputMethodContext::EventData(InputMethodContext::PRE_EDIT, "Reverse", 0, 7);
+  controller->OnInputMethodContextEvent(inputMethodContext, imfEvent);
+
+  // For coverage, mEditableControlInterface is required.
+  // Creates a temporary text-field to use mEditableControlInterface.
+  TextField field = TextField::New();
+  Toolkit::Internal::TextField& fieldImpl = GetImpl(field);
+  ControllerPtr fieldController = fieldImpl.GetTextController();
+  Controller::Impl& fieldControllerImpl = Controller::Impl::GetImplementation(*fieldController.Get());
+  Controller::Impl& controllerImpl = Controller::Impl::GetImplementation(*controller.Get());
+
+  // For coverage, mEditableControlInterface is required.
+  controllerImpl.mEditableControlInterface = fieldControllerImpl.mEditableControlInterface;
+
+  // Set the preedit style as REVERSE
+  inputMethodContext.SetPreeditStyle(InputMethodContext::PreeditStyle::REVERSE);
+  controller->GetNaturalSize();
+
+  controller->GetText(text);
+  DALI_TEST_EQUALS("Reverse", text, TEST_LOCATION);
+
+  tet_result(TET_PASS);
+  END_TEST;
+}
+
 int UtcDaliTextControllerTextPopupButtonTouched(void)
 {
   tet_infoline(" UtcDaliTextControllerTextPopupButtonTouched");
index 09c5078..0b18d11 100755 (executable)
@@ -90,13 +90,13 @@ int UtcDaliTextEditorMarkupUnderline(void)
   uint32_t expectedNumberOfUnderlinedGlyphs = 5u;
 
   Toolkit::Internal::TextEditor& textEditorImpl = GetImpl( textEditor );
-  const Text::Length numberOfUnderlineRuns = textEditorImpl.getController()->GetTextModel()->GetNumberOfUnderlineRuns();
+  const Text::Length numberOfUnderlineRuns = textEditorImpl.GetTextController()->GetTextModel()->GetNumberOfUnderlineRuns();
 
   DALI_TEST_EQUALS( numberOfUnderlineRuns, expectedNumberOfUnderlinedGlyphs, TEST_LOCATION );
 
   Vector<GlyphRun> underlineRuns;
   underlineRuns.Resize(numberOfUnderlineRuns);
-  textEditorImpl.getController()->GetTextModel()->GetUnderlineRuns(underlineRuns.Begin(), 0u, numberOfUnderlineRuns);
+  textEditorImpl.GetTextController()->GetTextModel()->GetUnderlineRuns(underlineRuns.Begin(), 0u, numberOfUnderlineRuns);
 
   //ABC are underlined
   DALI_TEST_EQUALS( underlineRuns[0u].glyphIndex, 0u, TEST_LOCATION);
@@ -184,7 +184,7 @@ int UtcDaliTextEditorBackgroundTag(void)
   application.Render();
 
   Toolkit::Internal::TextEditor& editorImpl = GetImpl( editor );
-  const ColorIndex* const backgroundColorIndicesBuffer = editorImpl.getController()->GetTextModel()->GetBackgroundColorIndices();
+  const ColorIndex* const backgroundColorIndicesBuffer = editorImpl.GetTextController()->GetTextModel()->GetBackgroundColorIndices();
 
   DALI_TEST_CHECK( backgroundColorIndicesBuffer );
 
@@ -226,7 +226,7 @@ int UtcDaliTextEditorTextWithSpan(void)
   DALI_TEST_GREATER(spanSize.width, originalSize.width, TEST_LOCATION);
 
   Toolkit::Internal::TextEditor& editorImpl = GetImpl( editor );
-  const ColorIndex* const colorIndicesBuffer1 = editorImpl.getController()->GetTextModel()->GetColorIndices();
+  const ColorIndex* const colorIndicesBuffer1 = editorImpl.GetTextController()->GetTextModel()->GetColorIndices();
 
   DALI_TEST_CHECK( colorIndicesBuffer1 );
 
@@ -245,7 +245,7 @@ int UtcDaliTextEditorTextWithSpan(void)
   application.SendNotification();
   application.Render();
 
-  const ColorIndex* const colorIndicesBuffer2 = editorImpl.getController()->GetTextModel()->GetColorIndices();
+  const ColorIndex* const colorIndicesBuffer2 = editorImpl.GetTextController()->GetTextModel()->GetColorIndices();
 
   DALI_TEST_CHECK( colorIndicesBuffer2 );
 
@@ -262,4 +262,39 @@ int UtcDaliTextEditorTextWithSpan(void)
   DALI_TEST_EQUALS( colorIndicesBuffer2[7], 0u, TEST_LOCATION);
 
   END_TEST;
-}
\ No newline at end of file
+}
+
+int UtcDaliTextEditorControlBackgroundColor(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" UtcDaliTextEditorControlBackgroundColor\n");
+
+  TextEditor editor = TextEditor::New();
+  DALI_TEST_CHECK(editor);
+
+  Vector4 backgroundColor;
+
+  editor.SetProperty(TextEditor::Property::TEXT, "Background Color");
+  application.GetScene().Add(editor);
+  application.SendNotification();
+  application.Render();
+
+  Toolkit::Internal::TextEditor& editorImpl = GetImpl(editor);
+  ControllerPtr controller = editorImpl.GetTextController();
+  Controller::Impl& controllerImpl = Controller::Impl::GetImplementation(*controller.Get());
+
+  // Default color is transparent
+  controllerImpl.mEditableControlInterface->GetControlBackgroundColor(backgroundColor);
+  DALI_TEST_EQUALS(backgroundColor, Color::TRANSPARENT, TEST_LOCATION);
+
+  // Set background color to red
+  editor.SetBackgroundColor(Color::RED);
+  application.SendNotification();
+  application.Render();
+
+  // Should be red
+  controllerImpl.mEditableControlInterface->GetControlBackgroundColor(backgroundColor);
+  DALI_TEST_EQUALS(backgroundColor, Color::RED, TEST_LOCATION);
+
+  END_TEST;
+}
index 1fbc13e..77075b5 100755 (executable)
@@ -172,13 +172,13 @@ int UtcDaliTextFieldMarkupUnderline(void)
   uint32_t expectedNumberOfUnderlinedGlyphs = 5u;
 
   Toolkit::Internal::TextField& textFieldImpl = GetImpl( textField );
-  const Text::Length numberOfUnderlineRuns = textFieldImpl.getController()->GetTextModel()->GetNumberOfUnderlineRuns();
+  const Text::Length numberOfUnderlineRuns = textFieldImpl.GetTextController()->GetTextModel()->GetNumberOfUnderlineRuns();
 
   DALI_TEST_EQUALS( numberOfUnderlineRuns, expectedNumberOfUnderlinedGlyphs, TEST_LOCATION );
 
   Vector<GlyphRun> underlineRuns;
   underlineRuns.Resize(numberOfUnderlineRuns);
-  textFieldImpl.getController()->GetTextModel()->GetUnderlineRuns(underlineRuns.Begin(), 0u, numberOfUnderlineRuns);
+  textFieldImpl.GetTextController()->GetTextModel()->GetUnderlineRuns(underlineRuns.Begin(), 0u, numberOfUnderlineRuns);
 
   //ABC are underlined
   DALI_TEST_EQUALS( underlineRuns[0u].glyphIndex, 0u, TEST_LOCATION);
@@ -268,7 +268,7 @@ int UtcDaliTextFieldBackgroundTag(void)
   application.Render();
 
   Toolkit::Internal::TextField& fieldImpl = GetImpl( field );
-  const ColorIndex* const backgroundColorIndicesBuffer = fieldImpl.getController()->GetTextModel()->GetBackgroundColorIndices();
+  const ColorIndex* const backgroundColorIndicesBuffer = fieldImpl.GetTextController()->GetTextModel()->GetBackgroundColorIndices();
 
   DALI_TEST_CHECK( backgroundColorIndicesBuffer );
 
@@ -310,7 +310,7 @@ int UtcDaliTextFieldTextWithSpan(void)
   DALI_TEST_GREATER(spanSize.width, originalSize.width, TEST_LOCATION);
 
   Toolkit::Internal::TextField& fieldImpl = GetImpl( field );
-  const ColorIndex* const colorIndicesBuffer1 = fieldImpl.getController()->GetTextModel()->GetColorIndices();
+  const ColorIndex* const colorIndicesBuffer1 = fieldImpl.GetTextController()->GetTextModel()->GetColorIndices();
 
   DALI_TEST_CHECK( colorIndicesBuffer1 );
 
@@ -329,7 +329,7 @@ int UtcDaliTextFieldTextWithSpan(void)
   application.SendNotification();
   application.Render();
 
-  const ColorIndex* const colorIndicesBuffer2 = fieldImpl.getController()->GetTextModel()->GetColorIndices();
+  const ColorIndex* const colorIndicesBuffer2 = fieldImpl.GetTextController()->GetTextModel()->GetColorIndices();
 
   DALI_TEST_CHECK( colorIndicesBuffer2 );
 
@@ -346,4 +346,39 @@ int UtcDaliTextFieldTextWithSpan(void)
   DALI_TEST_EQUALS( colorIndicesBuffer2[7], 0u, TEST_LOCATION);
 
   END_TEST;
-}
\ No newline at end of file
+}
+
+int UtcDaliTextFieldControlBackgroundColor(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" UtcDaliTextFieldControlBackgroundColor\n");
+
+  TextField field = TextField::New();
+  DALI_TEST_CHECK(field);
+
+  Vector4 backgroundColor;
+
+  field.SetProperty(TextField::Property::TEXT, "Background Color");
+  application.GetScene().Add(field);
+  application.SendNotification();
+  application.Render();
+
+  Toolkit::Internal::TextField& fieldImpl = GetImpl(field);
+  ControllerPtr controller = fieldImpl.GetTextController();
+  Controller::Impl& controllerImpl = Controller::Impl::GetImplementation(*controller.Get());
+
+  // Default color is transparent
+  controllerImpl.mEditableControlInterface->GetControlBackgroundColor(backgroundColor);
+  DALI_TEST_EQUALS(backgroundColor, Color::TRANSPARENT, TEST_LOCATION);
+
+  // Set background color to red
+  field.SetBackgroundColor(Color::RED);
+  application.SendNotification();
+  application.Render();
+
+  // Should be red
+  controllerImpl.mEditableControlInterface->GetControlBackgroundColor(backgroundColor);
+  DALI_TEST_EQUALS(backgroundColor, Color::RED, TEST_LOCATION);
+
+  END_TEST;
+}
index e03fec1..e8a3996 100755 (executable)
@@ -47,13 +47,13 @@ int UtcDaliTextLabelMarkupUnderline(void)
   uint32_t expectedNumberOfUnderlinedGlyphs = 5u;
 
   Toolkit::Internal::TextLabel& textLabelImpl = GetImpl( textLabel );
-  const Text::Length numberOfUnderlineRuns = textLabelImpl.getController()->GetTextModel()->GetNumberOfUnderlineRuns();
+  const Text::Length numberOfUnderlineRuns = textLabelImpl.GetTextController()->GetTextModel()->GetNumberOfUnderlineRuns();
 
   DALI_TEST_EQUALS( numberOfUnderlineRuns, expectedNumberOfUnderlinedGlyphs, TEST_LOCATION );
 
   Vector<GlyphRun> underlineRuns;
   underlineRuns.Resize(numberOfUnderlineRuns);
-  textLabelImpl.getController()->GetTextModel()->GetUnderlineRuns(underlineRuns.Begin(), 0u, numberOfUnderlineRuns);
+  textLabelImpl.GetTextController()->GetTextModel()->GetUnderlineRuns(underlineRuns.Begin(), 0u, numberOfUnderlineRuns);
 
   //ABC are underlined
   DALI_TEST_EQUALS( underlineRuns[0u].glyphIndex, 0u, TEST_LOCATION);
@@ -83,7 +83,7 @@ int UtcDaliTextLabelBackgroundTag(void)
   application.Render();
 
   Toolkit::Internal::TextLabel& labelImpl = GetImpl( label );
-  const ColorIndex* const backgroundColorIndicesBuffer = labelImpl.getController()->GetTextModel()->GetBackgroundColorIndices();
+  const ColorIndex* const backgroundColorIndicesBuffer = labelImpl.GetTextController()->GetTextModel()->GetBackgroundColorIndices();
 
   DALI_TEST_CHECK( backgroundColorIndicesBuffer );
 
@@ -125,7 +125,7 @@ int UtcDaliTextLabelTextWithSpan(void)
   DALI_TEST_GREATER(spanSize.width, originalSize.width, TEST_LOCATION);
 
   Toolkit::Internal::TextLabel& labelImpl = GetImpl( label );
-  const ColorIndex* const colorIndicesBuffer1 = labelImpl.getController()->GetTextModel()->GetColorIndices();
+  const ColorIndex* const colorIndicesBuffer1 = labelImpl.GetTextController()->GetTextModel()->GetColorIndices();
 
   DALI_TEST_CHECK( colorIndicesBuffer1 );
 
@@ -144,7 +144,7 @@ int UtcDaliTextLabelTextWithSpan(void)
   application.SendNotification();
   application.Render();
 
-  const ColorIndex* const colorIndicesBuffer2 = labelImpl.getController()->GetTextModel()->GetColorIndices();
+  const ColorIndex* const colorIndicesBuffer2 = labelImpl.GetTextController()->GetTextModel()->GetColorIndices();
 
   DALI_TEST_CHECK( colorIndicesBuffer2 );
 
@@ -161,4 +161,4 @@ int UtcDaliTextLabelTextWithSpan(void)
   DALI_TEST_EQUALS( colorIndicesBuffer2[7], 0u, TEST_LOCATION);
 
   END_TEST;
-}
\ No newline at end of file
+}
index b30d3b6..ec13bcb 100755 (executable)
@@ -118,6 +118,22 @@ public:
 
   void SetProxyUri( const std::string& uri ) override
   {
+    mockProxyUri = uri;
+  }
+
+  std::string GetProxyUri() const override
+  {
+    return mockProxyUri;
+  }
+
+  void SetProxyBypassRule(const std::string& proxy, const std::string& bypass) override
+  {
+    mockBypassRule = bypass;
+  }
+
+  std::string GetProxyBypassRule() const override
+  {
+    return mockBypassRule;
   }
 
   void SetDefaultProxyAuth( const std::string& username, const std::string& password ) override
@@ -126,6 +142,12 @@ public:
 
   void SetCertificateFilePath( const std::string& certificatePath ) override
   {
+    mockCertificateFilePath = certificatePath;
+  }
+
+  std::string GetCertificateFilePath() const override
+  {
+    return mockCertificateFilePath;
   }
 
   void DeleteAllWebDatabase() override
@@ -218,36 +240,32 @@ public:
 
   void EnableCache( bool cacheEnabled ) override
   {
+    mockCacheEnabled = cacheEnabled;
   }
 
   bool IsCacheEnabled() const override
   {
-    return true;
+    return mockCacheEnabled;
   }
 
-  std::string GetContextCertificateFile() const override
+  void SetAppId(const std::string& appID) override
   {
-    return "test";
   }
 
-  void SetContextAppId(const std::string& appID) override
-  {
-  }
-
-  bool SetContextAppVersion(const std::string& appVersion) override
+  bool SetAppVersion(const std::string& appVersion) override
   {
     return true;
   }
 
-  void SetContextApplicationType(const Dali::WebEngineContext::ApplicationType applicationType) override
+  void SetApplicationType(const Dali::WebEngineContext::ApplicationType applicationType) override
   {
   }
 
-  void SetContextTimeOffset(float timeOffset) override
+  void SetTimeOffset(float timeOffset) override
   {
   }
 
-  void SetContextTimeZoneOffset(float timeZoneOffset, float daylightSavingTime) override
+  void SetTimeZoneOffset(float timeZoneOffset, float daylightSavingTime) override
   {
   }
 
@@ -261,11 +279,12 @@ public:
 
   void SetDefaultZoomFactor(float zoomFactor) override
   {
+    mockZoomFactor = zoomFactor;
   }
 
-  float GetContextDefaultZoomFactor() const override
+  float GetDefaultZoomFactor() const override
   {
-    return 0;
+    return mockZoomFactor;
   }
 
   bool DeleteAllApplicationCache() override
@@ -290,20 +309,6 @@ public:
   {
   }
 
-  std::string GetContextProxy() const override
-  {
-    return "test";
-  }
-
-  void SetContextProxy(const std::string& proxy, const std::string& bypass) override
-  {
-  }
-
-  std::string GetProxyBypassRule() const override
-  {
-    return "test";
-  }
-
   bool FreeUnusedMemory() override
   {
     return true;
@@ -318,6 +323,11 @@ public:
 
 private:
   Dali::WebEngineContext::CacheModel mockModel;
+  std::string                        mockProxyUri;
+  std::string                        mockBypassRule;
+  std::string                        mockCertificateFilePath;
+  bool                               mockCacheEnabled;
+  float                              mockZoomFactor;
 };
 
 class MockWebEngineCookieManager : public Dali::WebEngineCookieManager
@@ -751,11 +761,6 @@ public:
     return result;
   }
 
-  Dali::Vector2 GetPosition() const override
-  {
-    return Dali::Vector2(100, 100);
-  }
-
   bool RemoveItem(WebEngineContextMenuItem& item) override
   {
     return true;
@@ -1217,7 +1222,7 @@ public:
     ConnectToGlobalSignal( &OnLoadUrl );
   }
 
-  const std::string& GetUrl() const
+  std::string GetUrl() const
   {
     return mUrl;
   }
@@ -1325,7 +1330,7 @@ public:
     ConnectToGlobalSignal( &OnClearHistory );
   }
 
-  const std::string& GetUserAgent() const
+  std::string GetUserAgent() const
   {
     return mUserAgent;
   }
@@ -1519,14 +1524,14 @@ public:
     return mHttpAuthHandlerSignal;
   }
 
-  Dali::WebEnginePlugin::WebEngineContextMenuCustomizedSignalType& ContextMenuCustomizedSignal()
+  Dali::WebEnginePlugin::WebEngineContextMenuShownSignalType& ContextMenuShownSignal()
   {
-    return mContextMenuCustomizedSignal;
+    return mContextMenuShownSignal;
   }
 
-  Dali::WebEnginePlugin::WebEngineContextMenuItemSelectedSignalType& ContextMenuItemSelectedSignal()
+  Dali::WebEnginePlugin::WebEngineContextMenuHiddenSignalType& ContextMenuHiddenSignal()
   {
-    return mContextMenuItemSelectedSignal;
+    return mContextMenuHiddenSignal;
   }
 
   std::string              mUrl;
@@ -1534,22 +1539,22 @@ public:
   size_t                   mCurrentPlusOnePos;
   std::string              mUserAgent;
 
-  Dali::WebEnginePlugin::WebEnginePageLoadSignalType                mPageLoadStartedSignal;
-  Dali::WebEnginePlugin::WebEnginePageLoadSignalType                mPageLoadInProgressSignal;
-  Dali::WebEnginePlugin::WebEnginePageLoadSignalType                mPageLoadFinishedSignal;
-  Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType           mPageLoadErrorSignal;
-  Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType       mScrollEdgeReachedSignal;
-  Dali::WebEnginePlugin::WebEngineUrlChangedSignalType              mUrlChangedSignal;
-  Dali::WebEnginePlugin::WebEngineFormRepostDecisionSignalType      mFormRepostDecisionSignal;
-  Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType           mFrameRenderedSignal;
-  Dali::WebEnginePlugin::WebEngineRequestInterceptorSignalType      mRequestInterceptorSignal;
-  Dali::WebEnginePlugin::WebEngineConsoleMessageSignalType          mConsoleMessageSignal;
-  Dali::WebEnginePlugin::WebEngineResponsePolicyDecisionSignalType  mResponsePolicyDecisionSignal;
-  Dali::WebEnginePlugin::WebEngineCertificateSignalType             mCertificateConfirmSignal;
-  Dali::WebEnginePlugin::WebEngineCertificateSignalType             mSslCertificateChangedSignal;
-  Dali::WebEnginePlugin::WebEngineHttpAuthHandlerSignalType         mHttpAuthHandlerSignal;
-  Dali::WebEnginePlugin::WebEngineContextMenuCustomizedSignalType   mContextMenuCustomizedSignal;
-  Dali::WebEnginePlugin::WebEngineContextMenuItemSelectedSignalType mContextMenuItemSelectedSignal;
+  Dali::WebEnginePlugin::WebEnginePageLoadSignalType               mPageLoadStartedSignal;
+  Dali::WebEnginePlugin::WebEnginePageLoadSignalType               mPageLoadInProgressSignal;
+  Dali::WebEnginePlugin::WebEnginePageLoadSignalType               mPageLoadFinishedSignal;
+  Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType          mPageLoadErrorSignal;
+  Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType      mScrollEdgeReachedSignal;
+  Dali::WebEnginePlugin::WebEngineUrlChangedSignalType             mUrlChangedSignal;
+  Dali::WebEnginePlugin::WebEngineFormRepostDecisionSignalType     mFormRepostDecisionSignal;
+  Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType          mFrameRenderedSignal;
+  Dali::WebEnginePlugin::WebEngineRequestInterceptorSignalType     mRequestInterceptorSignal;
+  Dali::WebEnginePlugin::WebEngineConsoleMessageSignalType         mConsoleMessageSignal;
+  Dali::WebEnginePlugin::WebEngineResponsePolicyDecisionSignalType mResponsePolicyDecisionSignal;
+  Dali::WebEnginePlugin::WebEngineCertificateSignalType            mCertificateConfirmSignal;
+  Dali::WebEnginePlugin::WebEngineCertificateSignalType            mSslCertificateChangedSignal;
+  Dali::WebEnginePlugin::WebEngineHttpAuthHandlerSignalType        mHttpAuthHandlerSignal;
+  Dali::WebEnginePlugin::WebEngineContextMenuShownSignalType       mContextMenuShownSignal;
+  Dali::WebEnginePlugin::WebEngineContextMenuHiddenSignalType      mContextMenuHiddenSignal;
 
   bool  mEvaluating;
   float mPageZoomFactor;
@@ -1638,9 +1643,9 @@ bool OnLoadUrl()
     gInstance->mHttpAuthHandlerSignal.Emit(std::move(handler));
 
     std::shared_ptr<Dali::WebEngineContextMenu> menu(new MockWebEngineContextMenu());
-    gInstance->mContextMenuCustomizedSignal.Emit(std::move(menu));
-    std::shared_ptr<Dali::WebEngineContextMenuItem> item(new MockWebEngineContextMenuItem());
-    gInstance->mContextMenuItemSelectedSignal.Emit(std::move(item));
+    gInstance->mContextMenuShownSignal.Emit(std::move(menu));
+    std::shared_ptr<Dali::WebEngineContextMenu> hiddenMenu(new MockWebEngineContextMenu());
+    gInstance->mContextMenuHiddenSignal.Emit(std::move(hiddenMenu));
   }
   return false;
 }
@@ -1941,7 +1946,7 @@ Dali::PixelData WebEngine::GetFavicon() const
   return Internal::Adaptor::GetImplementation( *this ).GetFavicon();
 }
 
-const std::string& WebEngine::GetUrl()
+std::string WebEngine::GetUrl() const
 {
   return Internal::Adaptor::GetImplementation( *this ).GetUrl();
 }
@@ -2134,7 +2139,7 @@ void WebEngine::RegisterGeolocationPermissionCallback(Dali::WebEnginePlugin::Geo
   Internal::Adaptor::GetImplementation( *this ).RegisterGeolocationPermissionCallback(callback);
 }
 
-const std::string& WebEngine::GetUserAgent() const
+std::string WebEngine::GetUserAgent() const
 {
   return Internal::Adaptor::GetImplementation( *this ).GetUserAgent();
 }
@@ -2334,14 +2339,14 @@ Dali::WebEnginePlugin::WebEngineHttpAuthHandlerSignalType& WebEngine::HttpAuthHa
   return Internal::Adaptor::GetImplementation(*this).HttpAuthHandlerSignal();
 }
 
-Dali::WebEnginePlugin::WebEngineContextMenuCustomizedSignalType& WebEngine::ContextMenuCustomizedSignal()
+Dali::WebEnginePlugin::WebEngineContextMenuShownSignalType& WebEngine::ContextMenuShownSignal()
 {
-  return Internal::Adaptor::GetImplementation( *this ).ContextMenuCustomizedSignal();
+  return Internal::Adaptor::GetImplementation( *this ).ContextMenuShownSignal();
 }
 
-Dali::WebEnginePlugin::WebEngineContextMenuItemSelectedSignalType& WebEngine::ContextMenuItemSelectedSignal()
+Dali::WebEnginePlugin::WebEngineContextMenuHiddenSignalType& WebEngine::ContextMenuHiddenSignal()
 {
-  return Internal::Adaptor::GetImplementation( *this ).ContextMenuItemSelectedSignal();
+  return Internal::Adaptor::GetImplementation( *this ).ContextMenuHiddenSignal();
 }
 
 } // namespace Dali;
index 4fbe8c1..36258d4 100755 (executable)
@@ -96,10 +96,10 @@ static int gDownloadStartedCallbackCalled = 0;
 static int gMimeOverriddenCallbackCalled = 0;
 static std::vector<std::unique_ptr<Dali::WebEngineSecurityOrigin>> gSecurityOriginList;
 static std::vector<std::unique_ptr<Dali::WebEngineContext::PasswordData>> gPasswordDataList;
-static int gContextMenuCustomizedCallbackCalled = 0;
-static std::shared_ptr<Dali::WebEngineContextMenu> gContextMenuInstance = nullptr;
-static int gContextMenuItemSelectedCallbackCalled = 0;
-static std::shared_ptr<Dali::WebEngineContextMenuItem> gContextMenuItemInstance = nullptr;
+static int gContextMenuShownCallbackCalled = 0;
+static std::shared_ptr<Dali::WebEngineContextMenu> gContextMenuShownInstance = nullptr;
+static int gContextMenuHiddenCallbackCalled = 0;
+static std::shared_ptr<Dali::WebEngineContextMenu> gContextMenuHiddenInstance = nullptr;
 static int gHitTestCreatedCallbackCalled = 0;
 static int gCookieManagerChangsWatchCallbackCalled = 0;
 
@@ -293,16 +293,16 @@ static bool OnMimeOverridden(const std::string&, const std::string&, std::string
   return false;
 }
 
-static void OnContextMenuCustomized(WebView view, std::shared_ptr<Dali::WebEngineContextMenu> menu)
+static void OnContextMenuShown(WebView view, std::shared_ptr<Dali::WebEngineContextMenu> menu)
 {
-  gContextMenuCustomizedCallbackCalled++;
-  gContextMenuInstance = std::move(menu);
+  gContextMenuShownCallbackCalled++;
+  gContextMenuShownInstance = std::move(menu);
 }
 
-static void OnContextMenuItemSelected(WebView view, std::shared_ptr<Dali::WebEngineContextMenuItem> item)
+static void OnContextMenuHidden(WebView view, std::shared_ptr<Dali::WebEngineContextMenu> menu)
 {
-  gContextMenuItemSelectedCallbackCalled++;
-  gContextMenuItemInstance = std::move(item);
+  gContextMenuHiddenCallbackCalled++;
+  gContextMenuHiddenInstance = std::move(menu);
 }
 
 } // namespace
@@ -1072,7 +1072,7 @@ int UtcDaliWebViewPropertyTitleFavicon(void)
   END_TEST;
 }
 
-int UtcDaliWebViewContextMenuCustomizedAndItemSelected(void)
+int UtcDaliWebViewContextMenuShownAndHidden(void)
 {
   ToolkitTestApplication application;
 
@@ -1081,54 +1081,53 @@ int UtcDaliWebViewContextMenuCustomizedAndItemSelected(void)
 
   // load url.
   ConnectionTracker* testTracker = new ConnectionTracker();
-  view.ContextMenuCustomizedSignal().Connect( &OnContextMenuCustomized );
-  view.ContextMenuItemSelectedSignal().Connect( &OnContextMenuItemSelected );
+  view.ContextMenuShownSignal().Connect( &OnContextMenuShown );
+  view.ContextMenuHiddenSignal().Connect( &OnContextMenuHidden );
   bool signal1 = false;
   bool signal2 = false;
-  view.ConnectSignal( testTracker, "contextMenuCustomized", CallbackFunctor(&signal1) );
-  view.ConnectSignal( testTracker, "contextMenuItemSelected", CallbackFunctor(&signal2) );
-  DALI_TEST_EQUALS( gContextMenuCustomizedCallbackCalled, 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( gContextMenuItemSelectedCallbackCalled, 0, TEST_LOCATION );
-  DALI_TEST_CHECK(gContextMenuInstance == 0);
-  DALI_TEST_CHECK(gContextMenuItemInstance == 0);
+  view.ConnectSignal( testTracker, "contextMenuShown", CallbackFunctor(&signal1) );
+  view.ConnectSignal( testTracker, "contextMenuHidden", CallbackFunctor(&signal2) );
+  DALI_TEST_EQUALS( gContextMenuShownCallbackCalled, 0, TEST_LOCATION );
+  DALI_TEST_EQUALS( gContextMenuHiddenCallbackCalled, 0, TEST_LOCATION );
+  DALI_TEST_CHECK(gContextMenuShownInstance == 0);
+  DALI_TEST_CHECK(gContextMenuHiddenInstance == 0);
 
   view.LoadUrl( TEST_URL1 );
   Test::EmitGlobalTimerSignal();
-  DALI_TEST_EQUALS( gContextMenuCustomizedCallbackCalled, 1, TEST_LOCATION );
-  DALI_TEST_EQUALS( gContextMenuItemSelectedCallbackCalled, 1, TEST_LOCATION );
+  DALI_TEST_EQUALS( gContextMenuShownCallbackCalled, 1, TEST_LOCATION );
+  DALI_TEST_EQUALS( gContextMenuHiddenCallbackCalled, 1, TEST_LOCATION );
   DALI_TEST_CHECK( signal1 );
   DALI_TEST_CHECK( signal2 );
 
   // check context meun & its items.
-  DALI_TEST_CHECK(gContextMenuInstance != 0);
-  std::unique_ptr<Dali::WebEngineContextMenuItem> item = gContextMenuInstance->GetItemAt(0);
+  DALI_TEST_CHECK(gContextMenuShownInstance != 0);
+  std::unique_ptr<Dali::WebEngineContextMenuItem> item = gContextMenuShownInstance->GetItemAt(0);
   DALI_TEST_CHECK(item.get() != 0);
-  std::vector<std::unique_ptr<Dali::WebEngineContextMenuItem>> itemList = gContextMenuInstance->GetItemList();
+  std::vector<std::unique_ptr<Dali::WebEngineContextMenuItem>> itemList = gContextMenuShownInstance->GetItemList();
   DALI_TEST_CHECK(itemList.size() == 1);
-  Dali::Vector2 testPosition = Dali::Vector2(100, 100);
-  DALI_TEST_EQUALS(gContextMenuInstance->GetPosition(), testPosition, TEST_LOCATION);
-  DALI_TEST_CHECK(gContextMenuInstance->RemoveItem(*(item.get())));
-  DALI_TEST_CHECK(gContextMenuInstance->AppendItemAsAction(WebEngineContextMenuItem::ItemTag::NO_ACTION, "", false));
-  DALI_TEST_CHECK(gContextMenuInstance->AppendItem(WebEngineContextMenuItem::ItemTag::NO_ACTION, "", "", false));
-  DALI_TEST_CHECK(gContextMenuInstance->SelectItem(*(item.get())));
-  DALI_TEST_CHECK(gContextMenuInstance->Hide());
-
-  DALI_TEST_CHECK(gContextMenuItemInstance != 0);
+  DALI_TEST_CHECK(gContextMenuShownInstance->RemoveItem(*(item.get())));
+  DALI_TEST_CHECK(gContextMenuShownInstance->AppendItemAsAction(WebEngineContextMenuItem::ItemTag::NO_ACTION, "", false));
+  DALI_TEST_CHECK(gContextMenuShownInstance->AppendItem(WebEngineContextMenuItem::ItemTag::NO_ACTION, "", "", false));
+  DALI_TEST_CHECK(gContextMenuShownInstance->SelectItem(*(item.get())));
+  DALI_TEST_CHECK(gContextMenuShownInstance->Hide());
+
   Dali::WebEngineContextMenuItem::ItemTag testItemTag = Dali::WebEngineContextMenuItem::ItemTag::NO_ACTION;
-  DALI_TEST_EQUALS(gContextMenuItemInstance->GetTag(), testItemTag, TEST_LOCATION);
+  DALI_TEST_EQUALS(item->GetTag(), testItemTag, TEST_LOCATION);
   Dali::WebEngineContextMenuItem::ItemType testItemType = Dali::WebEngineContextMenuItem::ItemType::ACTION;
-  DALI_TEST_EQUALS(gContextMenuItemInstance->GetType(), testItemType, TEST_LOCATION);
-  DALI_TEST_CHECK(gContextMenuItemInstance->IsEnabled());
+  DALI_TEST_EQUALS(item->GetType(), testItemType, TEST_LOCATION);
+  DALI_TEST_CHECK(item->IsEnabled());
   std::string testLinkUrl("http://test.html");
-  DALI_TEST_EQUALS(gContextMenuItemInstance->GetLinkUrl(), testLinkUrl, TEST_LOCATION);
+  DALI_TEST_EQUALS(item->GetLinkUrl(), testLinkUrl, TEST_LOCATION);
   std::string testImageUrl("http://test.jpg");
-  DALI_TEST_EQUALS(gContextMenuItemInstance->GetImageUrl(), testImageUrl, TEST_LOCATION);
+  DALI_TEST_EQUALS(item->GetImageUrl(), testImageUrl, TEST_LOCATION);
   std::string testTitle("title");
-  DALI_TEST_EQUALS(gContextMenuItemInstance->GetTitle(), testTitle, TEST_LOCATION);
-  DALI_TEST_CHECK(gContextMenuItemInstance->GetParentMenu().get() == 0);
+  DALI_TEST_EQUALS(item->GetTitle(), testTitle, TEST_LOCATION);
+  DALI_TEST_CHECK(item->GetParentMenu().get() == 0);
+
+  DALI_TEST_CHECK(gContextMenuHiddenInstance != 0);
 
-  gContextMenuInstance = nullptr;
-  gContextMenuItemInstance = nullptr;
+  gContextMenuShownInstance = nullptr;
+  gContextMenuHiddenInstance = nullptr;
 
   END_TEST;
 }
@@ -1585,19 +1584,15 @@ int UtcDaliWebContextGetSetCacheModel(void)
   std::string kDefaultValue;
 
   // Reset something
-  context->SetProxyUri( kDefaultValue );
-  context->SetCertificateFilePath( kDefaultValue );
-  context->EnableCache( true );
+  context->SetAppId( "id" );
+  context->SetApplicationType( Dali::WebEngineContext::ApplicationType::OTHER );
+  context->SetTimeOffset( 0 );
+  context->SetTimeZoneOffset( 0, 0 );
   context->SetDefaultProxyAuth( kDefaultValue, kDefaultValue );
   context->DeleteAllWebDatabase();
   context->DeleteAllWebStorage();
   context->DeleteLocalFileSystem();
   context->ClearCache();
-  context->SetContextAppId( "id" );
-  context->SetContextApplicationType( Dali::WebEngineContext::ApplicationType::OTHER );
-  context->SetContextTimeOffset( 0 );
-  context->SetContextTimeZoneOffset( 0, 0 );
-  context->SetDefaultZoomFactor( 0 );
   context->DeleteAllFormPasswordData();
   context->DeleteAllFormCandidateData();
 
@@ -1611,14 +1606,16 @@ int UtcDaliWebContextGetSetCacheModel(void)
   DALI_TEST_CHECK( value == Dali::WebEngineContext::CacheModel::DOCUMENT_BROWSER );
 
   // Get cache enabled
+  context->EnableCache( true );
   DALI_TEST_CHECK( context->IsCacheEnabled() );
 
   // Get certificate
-  std::string str = context->GetContextCertificateFile();
+  context->SetCertificateFilePath( "test" );
+  std::string str = context->GetCertificateFilePath();
   DALI_TEST_EQUALS( str, "test", TEST_LOCATION );
 
   // Set version
-  DALI_TEST_CHECK( context->SetContextAppVersion( "test" ) );
+  DALI_TEST_CHECK( context->SetAppVersion( "test" ) );
 
   // Register
   std::vector<std::string> temp;
@@ -1626,16 +1623,18 @@ int UtcDaliWebContextGetSetCacheModel(void)
   context->RegisterJsPluginMimeTypes( temp );
   context->DeleteFormPasswordDataList( temp );
 
-  // Get zoom
-  DALI_TEST_EQUALS( context->GetContextDefaultZoomFactor(), float( 0 ), TEST_LOCATION );
+  // Get zoom factor
+  context->SetDefaultZoomFactor( 1.0f );
+  DALI_TEST_EQUALS( context->GetDefaultZoomFactor(), float( 1.0f ), TEST_LOCATION );
 
   // Delete cache and database
   DALI_TEST_CHECK( context->DeleteAllApplicationCache() );
   DALI_TEST_CHECK( context->DeleteAllWebIndexedDatabase() );
 
   // Get contextProxy
-  context->SetContextProxy("", "");
-  DALI_TEST_EQUALS( context->GetContextProxy(), "test", TEST_LOCATION );
+  context->SetProxyUri( "test" );
+  DALI_TEST_EQUALS( context->GetProxyUri(), "test", TEST_LOCATION );
+  context->SetProxyBypassRule("", "test");
   DALI_TEST_EQUALS( context->GetProxyBypassRule(), "test", TEST_LOCATION );
 
   //Notify low memory
index 5f2a157..c42cb8a 100644 (file)
@@ -33,7 +33,8 @@
 #include <dali-toolkit/public-api/controls/image-view/image-view.h>
 #include <dali-toolkit/public-api/focus-manager/keyboard-focus-manager.h>
 
-namespace Dali::Toolkit::DevelControl {
+namespace Dali::Toolkit::DevelControl
+{
 
 static std::string GetLocaleText(std::string string, const char *domain = "dali-toolkit")
 {
@@ -47,15 +48,17 @@ static std::string GetLocaleText(std::string string, const char *domain = "dali-
 }
 
 AccessibleImpl::AccessibleImpl(Dali::Actor self, Dali::Accessibility::Role role, bool modal)
-: self(self),
-  modal(modal)
+: mSelf(self),
+  mIsModal(modal)
 {
   auto control = Dali::Toolkit::Control::DownCast(Self());
 
   Internal::Control&       internalControl = Toolkit::Internal::GetImplementation(control);
   Internal::Control::Impl& controlImpl     = Internal::Control::Impl::Get(internalControl);
   if(controlImpl.mAccessibilityRole == Dali::Accessibility::Role::UNKNOWN)
+  {
     controlImpl.mAccessibilityRole = role;
+  }
 
   Self().PropertySetSignal().Connect(&controlImpl, [this, &controlImpl](Dali::Handle& handle, Dali::Property::Index index, Dali::Property::Value value) {
     if(this->Self() != Dali::Accessibility::Accessible::GetCurrentlyHighlightedActor())
@@ -169,15 +172,18 @@ Dali::Accessibility::Accessible* AccessibleImpl::GetChildAtIndex(size_t index)
 
 size_t AccessibleImpl::GetIndexInParent()
 {
-  auto s      = Self();
-  auto parent = s.GetParent();
+  auto self = Self();
+  auto parent = self.GetParent();
   DALI_ASSERT_ALWAYS(parent && "can't call GetIndexInParent on object without parent");
+
   auto count = parent.GetChildCount();
   for(auto i = 0u; i < count; ++i)
   {
-    auto c = parent.GetChildAt(i);
-    if(c == s)
+    auto child = parent.GetChildAt(i);
+    if(child == self)
+    {
       return i;
+    }
   }
   DALI_ASSERT_ALWAYS(false && "object isn't child of it's parent");
   return static_cast<size_t>(-1);
@@ -196,25 +202,32 @@ std::string AccessibleImpl::GetLocalizedRoleName()
 Dali::Accessibility::States AccessibleImpl::CalculateStates()
 {
   Dali::Actor self = Self();
-  Dali::Accessibility::States s;
-  s[Dali::Accessibility::State::FOCUSABLE] = self.GetProperty<bool>(Actor::Property::KEYBOARD_FOCUSABLE);
-  s[Dali::Accessibility::State::FOCUSED]   = Toolkit::KeyboardFocusManager::Get().GetCurrentFocusActor() == self;
+  Dali::Accessibility::States state;
+  state[Dali::Accessibility::State::FOCUSABLE] = self.GetProperty<bool>(Actor::Property::KEYBOARD_FOCUSABLE);
+  state[Dali::Accessibility::State::FOCUSED]   = Toolkit::KeyboardFocusManager::Get().GetCurrentFocusActor() == self;
+
   if(self.GetProperty(Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE).GetType() == Dali::Property::NONE)
-    s[Dali::Accessibility::State::HIGHLIGHTABLE] = false;
+  {
+    state[Dali::Accessibility::State::HIGHLIGHTABLE] = false;
+  }
   else
-    s[Dali::Accessibility::State::HIGHLIGHTABLE] = self.GetProperty(Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE).Get<bool>();
-  s[Dali::Accessibility::State::HIGHLIGHTED] = GetCurrentlyHighlightedActor() == self;
-  s[Dali::Accessibility::State::ENABLED]     = true;
-  s[Dali::Accessibility::State::SENSITIVE]   = true;
-  s[Dali::Accessibility::State::VISIBLE]     = true;
-  if(modal)
   {
-    s[Dali::Accessibility::State::MODAL] = true;
+    state[Dali::Accessibility::State::HIGHLIGHTABLE] = self.GetProperty(Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE).Get<bool>();
   }
-  s[Dali::Accessibility::State::SHOWING] = !self.GetProperty(Dali::DevelActor::Property::CULLED).Get<bool>() && self.GetCurrentProperty<bool>(Actor::Property::VISIBLE);
 
-  s[Dali::Accessibility::State::DEFUNCT] = !self.GetProperty(Dali::DevelActor::Property::CONNECTED_TO_SCENE).Get<bool>();
-  return s;
+  state[Dali::Accessibility::State::HIGHLIGHTED] = GetCurrentlyHighlightedActor() == self;
+  state[Dali::Accessibility::State::ENABLED]     = true;
+  state[Dali::Accessibility::State::SENSITIVE]   = true;
+  state[Dali::Accessibility::State::VISIBLE]     = true;
+
+  if(mIsModal)
+  {
+    state[Dali::Accessibility::State::MODAL] = true;
+  }
+  state[Dali::Accessibility::State::SHOWING] = !self.GetProperty(Dali::DevelActor::Property::CULLED).Get<bool>() && self.GetCurrentProperty<bool>(Actor::Property::VISIBLE);
+
+  state[Dali::Accessibility::State::DEFUNCT] = !self.GetProperty(Dali::DevelActor::Property::CONNECTED_TO_SCENE).Get<bool>();
+  return state;
 }
 
 Dali::Accessibility::States AccessibleImpl::GetStates()
@@ -224,32 +237,30 @@ Dali::Accessibility::States AccessibleImpl::GetStates()
 
 Dali::Accessibility::Attributes AccessibleImpl::GetAttributes()
 {
-  std::unordered_map<std::string, std::string> attribute_map;
-  auto                                         q = Dali::Toolkit::Control::DownCast(Self());
-  auto                                         w =
-    q.GetProperty(Dali::Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES);
-  auto z = w.GetMap();
+  std::unordered_map<std::string, std::string> attributeMap;
+  auto control = Dali::Toolkit::Control::DownCast(Self());
+  auto attribute = control.GetProperty(Dali::Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES);
+  auto map = attribute.GetMap();
 
-  if(z)
+  if(map)
   {
-    auto map_size = z->Count();
+    auto mapSize = map->Count();
 
-    for(unsigned int i = 0; i < map_size; i++)
+    for(unsigned int i = 0; i < mapSize; i++)
     {
-      auto map_key = z->GetKeyAt(i);
-      if(map_key.type == Dali::Property::Key::STRING)
+      auto mapKey = map->GetKeyAt(i);
+      if(mapKey.type == Dali::Property::Key::STRING)
       {
-        std::string map_value;
-        if(z->GetValue(i).Get(map_value))
+        std::string mapValue;
+        if(map->GetValue(i).Get(mapValue))
         {
-          attribute_map.emplace(std::move(map_key.stringKey),
-                                std::move(map_value));
+          attributeMap.emplace(std::move(mapKey.stringKey), std::move(mapValue));
         }
       }
     }
   }
 
-  return attribute_map;
+  return attributeMap;
 }
 
 Dali::Accessibility::ComponentLayer AccessibleImpl::GetLayer()
@@ -257,21 +268,15 @@ Dali::Accessibility::ComponentLayer AccessibleImpl::GetLayer()
   return Dali::Accessibility::ComponentLayer::WINDOW;
 }
 
-Dali::Rect<> AccessibleImpl::GetExtents(Dali::Accessibility::CoordType ctype)
+Dali::Rect<> AccessibleImpl::GetExtents(Dali::Accessibility::CoordinateType type)
 {
   Dali::Actor self = Self();
-  Vector2 screenPosition =
-    self.GetProperty(Dali::DevelActor::Property::SCREEN_POSITION)
-      .Get<Vector2>();
+
+  Vector2 screenPosition = self.GetProperty(Dali::DevelActor::Property::SCREEN_POSITION).Get<Vector2>();
   auto size = self.GetCurrentProperty<Vector3>(Actor::Property::SIZE) * self.GetCurrentProperty<Vector3>(Actor::Property::WORLD_SCALE);
-  bool positionUsesAnchorPoint =
-    self.GetProperty(Dali::DevelActor::Property::POSITION_USES_ANCHOR_POINT)
-      .Get<bool>();
-  Vector3 anchorPointOffSet =
-    size * (positionUsesAnchorPoint ? self.GetCurrentProperty<Vector3>(Actor::Property::ANCHOR_POINT)
-                                    : AnchorPoint::TOP_LEFT);
-  Vector2 position = Vector2(screenPosition.x - anchorPointOffSet.x,
-                             screenPosition.y - anchorPointOffSet.y);
+  bool positionUsesAnchorPoint = self.GetProperty(Dali::DevelActor::Property::POSITION_USES_ANCHOR_POINT).Get<bool>();
+  Vector3 anchorPointOffSet = size * (positionUsesAnchorPoint ? self.GetCurrentProperty<Vector3>(Actor::Property::ANCHOR_POINT) : AnchorPoint::TOP_LEFT);
+  Vector2 position = Vector2((screenPosition.x - anchorPointOffSet.x), (screenPosition.y - anchorPointOffSet.y));
 
   return {position.x, position.y, size.x, size.y};
 }
@@ -294,10 +299,12 @@ static Dali::Actor CreateHighlightIndicatorActor()
 {
   std::string focusBorderImagePath(AssetManager::GetDaliImagePath());
   focusBorderImagePath += "/keyboard_focus.9.png";
+
   // Create the default if it hasn't been set and one that's shared by all the
   // keyboard focusable actors
   auto actor = Toolkit::ImageView::New(focusBorderImagePath);
   actor.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS);
+
   DevelControl::AppendAccessibilityAttribute(actor, "highlight", std::string());
   actor.SetProperty(Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, false);
 
@@ -324,24 +331,35 @@ void AccessibleImpl::ScrollToSelf()
 bool AccessibleImpl::GrabHighlight()
 {
   Dali::Actor self = Self();
-  auto old = GetCurrentlyHighlightedActor();
+  auto oldHighlightedActor = GetCurrentlyHighlightedActor();
 
   if(!Dali::Accessibility::IsUp())
+  {
     return false;
-  if(self == old)
+  }
+
+  if(self == oldHighlightedActor)
+  {
     return true;
-  if(old)
+  }
+
+  // Clear the old highlight.
+  if(oldHighlightedActor)
   {
-    auto c = dynamic_cast<Dali::Accessibility::Component*>(Internal::Control::Impl::GetAccessibilityObject(old));
-    if(c)
-      c->ClearHighlight();
+    auto oldHighlightObject = dynamic_cast<Dali::Accessibility::Component*>(Internal::Control::Impl::GetAccessibilityObject(oldHighlightedActor));
+    if(oldHighlightObject)
+    {
+      oldHighlightObject->ClearHighlight();
+    }
   }
+
   auto highlight = GetHighlightActor();
   if(!highlight)
   {
     highlight = CreateHighlightIndicatorActor();
     SetHighlightActor(highlight);
   }
+
   highlight.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
   highlight.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
   highlight.SetProperty(Actor::Property::POSITION_Z, 1.0f);
@@ -349,7 +367,7 @@ bool AccessibleImpl::GrabHighlight()
 
   // Remember the highlight actor, so that when the default is changed with
   // SetHighlightActor(), the currently displayed highlight can still be cleared.
-  currentHighlightActor = highlight;
+  mCurrentHighlightActor = highlight;
   ScrollToSelf();
   self.Add(highlight);
   SetCurrentlyHighlightedActor(self);
@@ -363,11 +381,14 @@ bool AccessibleImpl::ClearHighlight()
   Dali::Actor self = Self();
 
   if(!Dali::Accessibility::IsUp())
+  {
     return false;
+  }
+
   if(GetCurrentlyHighlightedActor() == self)
   {
-    self.Remove(currentHighlightActor.GetHandle());
-    currentHighlightActor = {};
+    self.Remove(mCurrentHighlightActor.GetHandle());
+    mCurrentHighlightActor = {};
     SetCurrentlyHighlightedActor({});
     EmitHighlighted(false);
     return true;
@@ -377,7 +398,11 @@ bool AccessibleImpl::ClearHighlight()
 
 std::string AccessibleImpl::GetActionName(size_t index)
 {
-  if(index >= GetActionCount()) return {};
+  if(index >= GetActionCount())
+  {
+    return {};
+  }
+
   Dali::TypeInfo type;
   Self().GetTypeInfo(type);
   DALI_ASSERT_ALWAYS(type && "no TypeInfo object");
@@ -444,13 +469,12 @@ std::vector<Dali::Accessibility::Relation> AccessibleImpl::GetRelationSet()
 
   std::vector<Dali::Accessibility::Relation> ret;
 
-  auto& v = controlImpl.mAccessibilityRelations;
-  for(auto i = 0u; i < v.size(); ++i)
+  auto& relation = controlImpl.mAccessibilityRelations;
+  for(auto i = 0u; i < relation.size(); ++i)
   {
-    if(v[i].empty())
-      continue;
+    if(relation[i].empty()) continue;
 
-    ret.emplace_back(Accessibility::Relation{static_cast<Accessibility::RelationType>(i), v[i]});
+    ret.emplace_back(Accessibility::Relation{static_cast<Accessibility::RelationType>(i), relation[i]});
   }
 
   return ret;
index 2a8ca3c..37e7ad3 100644 (file)
@@ -47,13 +47,14 @@ struct DALI_TOOLKIT_API AccessibleImpl : public virtual Dali::Accessibility::Acc
                                          public virtual Dali::Accessibility::Action
 {
 protected:
-  Dali::WeakHandle<Dali::Actor> self;
-  Dali::WeakHandle<Dali::Actor> currentHighlightActor;
-  bool        modal = false, root = false;
+  Dali::WeakHandle<Dali::Actor> mSelf;
+  Dali::WeakHandle<Dali::Actor> mCurrentHighlightActor;
+  bool mIsModal = false;
+  bool mIsRoot = false;
 
   Dali::Actor Self()
   {
-    auto handle = self.GetHandle();
+    auto handle = mSelf.GetHandle();
 
     // Control::Impl holds a std::unique_ptr to the Accessible object,
     // so that one does not outlive the other.
@@ -130,7 +131,7 @@ public:
   /**
    * @copydoc Dali::Accessibility::Component::GetExtents()
    */
-  Dali::Rect<> GetExtents(Dali::Accessibility::CoordType ctype) override;
+  Dali::Rect<> GetExtents(Accessibility::CoordinateType type) override;
 
   /**
    * @copydoc Dali::Accessibility::Component::GetLayer()
index 487aa1b..55becb3 100644 (file)
@@ -135,107 +135,102 @@ void CreateTransitions(Control control, Dali::Animation& animation, Dali::Toolki
   }
 }
 
-static Toolkit::Internal::Control::Impl* GetControlImplementationIfAny(Dali::Actor actor)
+static Toolkit::Internal::Control::Impl* GetControlImplementation(Dali::Actor actor)
 {
-  Dali::Toolkit::Control c = Toolkit::Control::DownCast(actor);
-  if(c)
+  Dali::Toolkit::Control control = Toolkit::Control::DownCast(actor);
+  if(control)
   {
-    auto& impl1 = Toolkit::Internal::GetImplementation(c);
-    auto& impl2 = Toolkit::Internal::Control::Impl::Get(impl1);
-    return &impl2;
+    auto& internalControl = Toolkit::Internal::GetImplementation(control);
+    auto& controlDataImpl = Toolkit::Internal::Control::Impl::Get(internalControl);
+    return &controlDataImpl;
   }
   return nullptr;
 }
 
 Toolkit::DevelControl::AccessibilityActivateSignalType& AccessibilityActivateSignal(Toolkit::Control control)
 {
-  auto ac = GetControlImplementationIfAny(control);
-  return ac->mAccessibilityActivateSignal;
+  return GetControlImplementation(control)->mAccessibilityActivateSignal;
 }
 
 Toolkit::DevelControl::AccessibilityReadingSkippedSignalType& AccessibilityReadingSkippedSignal(Toolkit::Control control)
 {
-  auto ac = GetControlImplementationIfAny(control);
-  return ac->mAccessibilityReadingSkippedSignal;
+  return GetControlImplementation(control)->mAccessibilityReadingSkippedSignal;
 }
 
 Toolkit::DevelControl::AccessibilityReadingPausedSignalType& AccessibilityReadingPausedSignal(Toolkit::Control control)
 {
-  auto ac = GetControlImplementationIfAny(control);
-  return ac->mAccessibilityReadingPausedSignal;
+  return GetControlImplementation(control)->mAccessibilityReadingPausedSignal;
 }
 
 Toolkit::DevelControl::AccessibilityReadingResumedSignalType& AccessibilityReadingResumedSignal(Toolkit::Control control)
 {
-  auto ac = GetControlImplementationIfAny(control);
-  return ac->mAccessibilityReadingResumedSignal;
+  return GetControlImplementation(control)->mAccessibilityReadingResumedSignal;
 }
 
 Toolkit::DevelControl::AccessibilityReadingCancelledSignalType& AccessibilityReadingCancelledSignal(Toolkit::Control control)
 {
-  auto ac = GetControlImplementationIfAny(control);
-  return ac->mAccessibilityReadingCancelledSignal;
+  return GetControlImplementation(control)->mAccessibilityReadingCancelledSignal;
 }
 
 Toolkit::DevelControl::AccessibilityReadingStoppedSignalType& AccessibilityReadingStoppedSignal(Toolkit::Control control)
 {
-  auto ac = GetControlImplementationIfAny(control);
-  return ac->mAccessibilityReadingStoppedSignal;
+  return GetControlImplementation(control)->mAccessibilityReadingStoppedSignal;
 }
 
 Toolkit::DevelControl::AccessibilityGetNameSignalType& AccessibilityGetNameSignal(Toolkit::Control control)
 {
-  auto ac = GetControlImplementationIfAny(control);
-  return ac->mAccessibilityGetNameSignal;
+  return GetControlImplementation(control)->mAccessibilityGetNameSignal;
 }
 
 Toolkit::DevelControl::AccessibilityGetDescriptionSignalType& AccessibilityGetDescriptionSignal(Toolkit::Control control)
 {
-  auto ac = GetControlImplementationIfAny(control);
-  return ac->mAccessibilityGetDescriptionSignal;
+  return GetControlImplementation(control)->mAccessibilityGetDescriptionSignal;
 }
 
 Toolkit::DevelControl::AccessibilityDoGestureSignalType& AccessibilityDoGestureSignal(Toolkit::Control control)
 {
-  auto ac = GetControlImplementationIfAny(control);
-  return ac->mAccessibilityDoGestureSignal;
+  return GetControlImplementation(control)->mAccessibilityDoGestureSignal;
 }
 
 void AppendAccessibilityRelation(Dali::Actor control, Actor destination, Dali::Accessibility::RelationType relation)
 {
-  if(auto ac = GetControlImplementationIfAny(control))
+  if(auto controlDataImpl = GetControlImplementation(control))
   {
     auto index = static_cast<Dali::Property::Array::SizeType>(relation);
-    if(index >= ac->mAccessibilityRelations.size())
+    if(index >= controlDataImpl->mAccessibilityRelations.size())
     {
       DALI_LOG_ERROR("Relation index exceeds vector size.");
       return;
     }
 
-    auto obj = ac->GetAccessibilityObject(destination);
-    if(obj)
-      ac->mAccessibilityRelations[index].push_back(obj->GetAddress());
+    auto object = controlDataImpl->GetAccessibilityObject(destination);
+    if(object)
+    {
+      controlDataImpl->mAccessibilityRelations[index].push_back(object->GetAddress());
+    }
   }
 }
 
 void RemoveAccessibilityRelation(Dali::Actor control, Actor destination, Dali::Accessibility::RelationType relation)
 {
-  if(auto ac = GetControlImplementationIfAny(control))
+  if(auto controlDataImpl = GetControlImplementation(control))
   {
     auto index = static_cast<Dali::Property::Array::SizeType>(relation);
-    if(index >= ac->mAccessibilityRelations.size())
+    if(index >= controlDataImpl->mAccessibilityRelations.size())
     {
       DALI_LOG_ERROR("Relation index exceeds vector size.");
       return;
     }
 
-    auto obj = ac->GetAccessibilityObject(destination);
-    if(!obj)
+    auto object = controlDataImpl->GetAccessibilityObject(destination);
+    if(!object)
+    {
       return;
+    }
 
-    auto address = obj->GetAddress();
+    auto address = object->GetAddress();
 
-    auto& targets = ac->mAccessibilityRelations[index];
+    auto& targets = controlDataImpl->mAccessibilityRelations[index];
     for(auto i = 0u; i < targets.size(); ++i)
     {
       if(targets[i].ToString() == address.ToString())
@@ -249,110 +244,117 @@ void RemoveAccessibilityRelation(Dali::Actor control, Actor destination, Dali::A
 
 std::vector<std::vector<Accessibility::Address>> GetAccessibilityRelations(Dali::Actor control)
 {
-  if(auto ac = GetControlImplementationIfAny(control))
+  if(auto controlDataImpl = GetControlImplementation(control))
   {
-    return ac->mAccessibilityRelations;
+    return controlDataImpl->mAccessibilityRelations;
   }
   return {};
 }
 
 void ClearAccessibilityRelations(Dali::Actor control)
 {
-  if(auto ac = GetControlImplementationIfAny(control))
+  if(auto controlDataImpl = GetControlImplementation(control))
   {
-    for(auto& it : ac->mAccessibilityRelations)
+    for(auto& it : controlDataImpl->mAccessibilityRelations)
+    {
       it.clear();
+    }
   }
 }
 
-void SetAccessibilityConstructor(Dali::Actor                                                                  control,
-                                 std::function<std::unique_ptr<Dali::Accessibility::Accessible>(Dali::Actor)> constructor)
+void SetAccessibilityConstructor(Dali::Actor control, std::function<std::unique_ptr<Dali::Accessibility::Accessible>(Dali::Actor)> constructor)
 {
-  if(auto ac = GetControlImplementationIfAny(control))
+  if(auto controlDataImpl = GetControlImplementation(control))
   {
-    ac->accessibilityConstructor = constructor;
+    controlDataImpl->mAccessibilityConstructor = constructor;
   }
 }
 
 void AppendAccessibilityAttribute(Dali::Actor control, const std::string& key, const std::string value)
 {
-  if(auto ac = GetControlImplementationIfAny(control))
+  if(auto controlDataImpl = GetControlImplementation(control))
   {
-    ac->AppendAccessibilityAttribute(key, value);
+    controlDataImpl->AppendAccessibilityAttribute(key, value);
   }
 }
 
 void RemoveAccessibilityAttribute(Dali::Actor control, const std::string& key)
 {
-  if(auto ac = GetControlImplementationIfAny(control))
+  if(auto controlDataImpl = GetControlImplementation(control))
   {
-    ac->RemoveAccessibilityAttribute(key);
+    controlDataImpl->RemoveAccessibilityAttribute(key);
   }
 }
 
 void ClearAccessibilityAttributes(Dali::Actor control)
 {
-  if(auto ac = GetControlImplementationIfAny(control))
+  if(auto controlDataImpl = GetControlImplementation(control))
   {
-    ac->ClearAccessibilityAttributes();
+    controlDataImpl->ClearAccessibilityAttributes();
   }
 }
 
 void SetAccessibilityReadingInfoType(Dali::Actor control, const Dali::Accessibility::ReadingInfoTypes types)
 {
-  if(auto ac = GetControlImplementationIfAny(control))
+  if(auto controlDataImpl = GetControlImplementation(control))
   {
-    ac->SetAccessibilityReadingInfoType(types);
+    controlDataImpl->SetAccessibilityReadingInfoType(types);
   }
 }
 
 Dali::Accessibility::ReadingInfoTypes GetAccessibilityReadingInfoType(Dali::Actor control)
 {
-  if(auto ac = GetControlImplementationIfAny(control))
+  if(auto controlDataImpl = GetControlImplementation(control))
   {
-    return ac->GetAccessibilityReadingInfoType();
+    return controlDataImpl->GetAccessibilityReadingInfoType();
   }
   return {};
 }
 
 bool ClearAccessibilityHighlight(Dali::Actor control)
 {
-  if(auto ac = GetControlImplementationIfAny(control))
+  if(auto controlDataImpl = GetControlImplementation(control))
   {
-    auto ptr = dynamic_cast<Dali::Accessibility::Component*>(ac->GetAccessibilityObject());
-    if(ptr)
-      return ptr->ClearHighlight();
+    auto object = dynamic_cast<Dali::Accessibility::Component*>(controlDataImpl->GetAccessibilityObject());
+    if(object)
+    {
+      return object->ClearHighlight();
+    }
   }
   return false;
 }
 
 bool GrabAccessibilityHighlight(Dali::Actor control)
 {
-  if(auto ac = GetControlImplementationIfAny(control))
+  if(auto controlDataImpl = GetControlImplementation(control))
   {
-    auto ptr = dynamic_cast<Dali::Accessibility::Component*>(ac->GetAccessibilityObject());
-    if(ptr)
-      return ptr->GrabHighlight();
+    auto object = dynamic_cast<Dali::Accessibility::Component*>(controlDataImpl->GetAccessibilityObject());
+    if(object)
+    {
+      return object->GrabHighlight();
+    }
   }
   return false;
 }
 
 Dali::Accessibility::States GetAccessibilityStates(Dali::Actor control)
 {
-  if(auto ac = GetControlImplementationIfAny(control))
+  if(auto controlDataImpl = GetControlImplementation(control))
   {
-    auto ptr = dynamic_cast<Dali::Accessibility::Component*>(ac->GetAccessibilityObject());
-    if(ptr)
-      return ptr->GetStates();
+    auto object = dynamic_cast<Dali::Accessibility::Component*>(controlDataImpl->GetAccessibilityObject());
+    if(object)
+    {
+      return object->GetStates();
+    }
   }
   return {};
 }
 
-void NotifyAccessibilityStateChange(Dali::Actor control, Dali::Accessibility::States states, bool doRecursive)
+void NotifyAccessibilityStateChange(Dali::Actor control, Dali::Accessibility::States states, bool isRecursive)
 {
-  if(auto ac = GetControlImplementationIfAny(control))
+  if(auto controlDataImpl = GetControlImplementation(control))
   {
-    ac->GetAccessibilityObject()->NotifyAccessibilityStateChange(std::move(states), doRecursive);
+    controlDataImpl->GetAccessibilityObject()->NotifyAccessibilityStateChange(std::move(states), isRecursive);
   }
 }
 
index d977c34..51cf1cc 100644 (file)
@@ -555,9 +555,9 @@ DALI_TOOLKIT_API Dali::Accessibility::States GetAccessibilityStates(Dali::Actor
  *
  * @param control object to append attribute to
  * @param states      mask with states expected to broadcast
- * @param doRecursive flag pointing if notifications of children's state would be sent
+ * @param isRecursive flag pointing if notifications of children's state would be sent
  */
-DALI_TOOLKIT_API void NotifyAccessibilityStateChange(Dali::Actor control, Dali::Accessibility::States states, bool doRecursive);
+DALI_TOOLKIT_API void NotifyAccessibilityStateChange(Dali::Actor control, Dali::Accessibility::States states, bool isRecursive);
 
 /**
  * The method allows to set specific constructor for creating accessibility structure
index 2a7090b..12218f7 100755 (executable)
@@ -49,11 +49,31 @@ void WebContext::SetProxyUri(const std::string& uri)
   mWebEngineContext.SetProxyUri(uri);
 }
 
+std::string WebContext::GetProxyUri() const
+{
+  return mWebEngineContext.GetProxyUri();
+}
+
+void WebContext::SetProxyBypassRule(const std::string& proxy, const std::string& bypass)
+{
+  mWebEngineContext.SetProxyBypassRule(proxy, bypass);
+}
+
+std::string WebContext::GetProxyBypassRule() const
+{
+  return mWebEngineContext.GetProxyBypassRule();
+}
+
 void WebContext::SetCertificateFilePath(const std::string& certificatePath)
 {
   mWebEngineContext.SetCertificateFilePath(certificatePath);
 }
 
+std::string WebContext::GetCertificateFilePath() const
+{
+  return mWebEngineContext.GetCertificateFilePath();
+}
+
 void WebContext::SetDefaultProxyAuth(const std::string& username, const std::string& password)
 {
   mWebEngineContext.SetDefaultProxyAuth(username, password);
@@ -134,34 +154,39 @@ bool WebContext::IsCacheEnabled() const
   return mWebEngineContext.IsCacheEnabled();
 }
 
-std::string WebContext::GetContextCertificateFile() const
+void WebContext::SetAppId(const std::string& appId)
 {
-  return mWebEngineContext.GetContextCertificateFile();
+  mWebEngineContext.SetAppId(appId);
 }
 
-void WebContext::SetContextAppId(const std::string& appID)
+bool WebContext::SetAppVersion(const std::string& appVersion)
 {
-  mWebEngineContext.SetContextAppId(appID);
+  return mWebEngineContext.SetAppVersion(appVersion);
 }
 
-bool WebContext::SetContextAppVersion(const std::string& appVersion)
+void WebContext::SetApplicationType(const Dali::WebEngineContext::ApplicationType applicationType)
 {
-  return mWebEngineContext.SetContextAppVersion(appVersion);
+  mWebEngineContext.SetApplicationType(applicationType);
 }
 
-void WebContext::SetContextApplicationType(const Dali::WebEngineContext::ApplicationType applicationType)
+void WebContext::SetTimeOffset(float timeOffset)
 {
-  mWebEngineContext.SetContextApplicationType(applicationType);
+  mWebEngineContext.SetTimeOffset(timeOffset);
 }
 
-void WebContext::SetContextTimeOffset(float timeOffset)
+void WebContext::SetTimeZoneOffset(float timeZoneOffset, float daylightSavingTime)
 {
-  mWebEngineContext.SetContextTimeOffset(timeOffset);
+  mWebEngineContext.SetTimeZoneOffset(timeZoneOffset, daylightSavingTime);
+}
+
+void WebContext::SetDefaultZoomFactor(float zoomFactor)
+{
+  mWebEngineContext.SetDefaultZoomFactor(zoomFactor);
 }
 
-void WebContext::SetContextTimeZoneOffset(float timeZoneOffset, float daylightSavingTime)
+float WebContext::GetDefaultZoomFactor() const
 {
-  mWebEngineContext.SetContextTimeZoneOffset(timeZoneOffset, daylightSavingTime);
+  return mWebEngineContext.GetDefaultZoomFactor();
 }
 
 void WebContext::RegisterUrlSchemesAsCorsEnabled(const std::vector<std::string>& schemes)
@@ -174,16 +199,6 @@ void WebContext::RegisterJsPluginMimeTypes(const std::vector<std::string>& mimeT
   mWebEngineContext.RegisterJsPluginMimeTypes(mimeTypes);
 }
 
-void WebContext::SetDefaultZoomFactor(float zoomFactor)
-{
-  mWebEngineContext.SetDefaultZoomFactor(zoomFactor);
-}
-
-float WebContext::GetContextDefaultZoomFactor() const
-{
-  return mWebEngineContext.GetContextDefaultZoomFactor();
-}
-
 bool WebContext::DeleteAllApplicationCache()
 {
   return mWebEngineContext.DeleteAllApplicationCache();
@@ -209,21 +224,6 @@ void WebContext::DeleteAllFormCandidateData()
   mWebEngineContext.DeleteAllFormCandidateData();
 }
 
-std::string WebContext::GetContextProxy() const
-{
-  return mWebEngineContext.GetContextProxy();
-}
-
-void WebContext::SetContextProxy(const std::string& proxy, const std::string& bypass)
-{
-  mWebEngineContext.SetContextProxy(proxy, bypass);
-}
-
-std::string WebContext::GetProxyBypassRule() const
-{
-  return mWebEngineContext.GetProxyBypassRule();
-}
-
 bool WebContext::FreeUnusedMemory()
 {
   return mWebEngineContext.FreeUnusedMemory();
index 531ec00..56bf2d8 100755 (executable)
@@ -79,6 +79,28 @@ public:
   void SetProxyUri(const std::string& uri);
 
   /**
+   * @brief Get the proxy URI from the network backend of specific context.
+   *
+   * @return current proxy URI or null string if it's not set
+   */
+  std::string GetProxyUri() const;
+
+  /**
+   * @brief Set the given proxy to network backend of specific context.
+   *
+   * @param[in] proxy URI to set
+   * @param[in] bypass rule to set
+   */
+  void SetProxyBypassRule(const std::string& proxy, const std::string& bypass);
+
+  /**
+   * @brief Get the proxy bypass rule from the network backend of specific context.
+   *
+   * @return current proxy bypass rule or null string if it's not set
+   */
+  std::string GetProxyBypassRule() const;
+
+  /**
    * @brief Add CA certificates to persistent NSS certificate database
    *
    * Function accepts a path to a CA certificate file, a path to a directory
@@ -91,6 +113,15 @@ public:
   void SetCertificateFilePath(const std::string& certificatePath);
 
   /**
+   * @brief Get CA certifcate file path
+   *
+   * It returns an internal string and should not be modified.
+   *
+   * @return certificate_file path which is set during ewk_context_certificate_file_set or null string otherwise
+   */
+  std::string GetCertificateFilePath() const;
+
+  /**
    * @brief Set a proxy auth credential to network backend of specific context.
    *
    * @param[in] username username to set
@@ -207,34 +238,25 @@ public:
   /**
    * @brief Query if the cache is enabled
    *
-   * @return @c true is cache is enabled or @c false otherwise
+   * @return true is cache is enabled or false otherwise
    */
   bool IsCacheEnabled() const;
 
   /**
-   * @brief Get CA certifcate file path
-   *
-   * It returns an internal string and should not be modified.
+   * @brief Set application id for context.
    *
-   * @return @c certificate_file is path which is set during ewk_context_certificate_file_set or @c null string otherwise
+   * @param[in] appId application id
    */
-  std::string GetContextCertificateFile() const;
+  void SetAppId(const std::string& appId);
 
   /**
-   * @brief Set application id for @a context.
-   *
-   * @param[in] appID application id
-   */
-  void SetContextAppId(const std::string& appID);
-
-  /**
-   * @brief Set application version for @a context.
+   * @brief Set application version for context.
    *
    * @param[in] appVersion application version
    *
-   * @return @c true if successful, @c false otherwise
+   * @return true if successful, false otherwise
    */
-  bool SetContextAppVersion(const std::string& appVersion);
+  bool SetAppVersion(const std::string& appVersion);
 
   /**
    * @brief To declare application type
@@ -242,14 +264,14 @@ public:
    * @param[in] applicationType The Application_Type enum
    *
    */
-  void SetContextApplicationType(const Dali::WebEngineContext::ApplicationType applicationType);
+  void SetApplicationType(const Dali::WebEngineContext::ApplicationType applicationType);
 
   /**
    * @brief Set time offset
    *
    * @param[in] timeOffset The value will be added to system time as offset
    */
-  void SetContextTimeOffset(float timeOffset);
+  void SetTimeOffset(float timeOffset);
 
   /**
    * @brief Set timezone offset
@@ -257,39 +279,39 @@ public:
    * @param[in] timeZoneOffset offset for time zone.
    * @param[in] daylightSavingTime The value is for daylight saving time use.
    */
-  void SetContextTimeZoneOffset(float timeZoneOffset, float daylightSavingTime);
+  void SetTimeZoneOffset(float timeZoneOffset, float daylightSavingTime);
 
   /**
-   * @brief Register url schemes as CORS enabled
-   *
-   * @param[in] schemes The URL schemes list which will be added to web security policy
+   * @brief Set default zoom factor
    *
+   * @param[in] zoomFactor default zoom factor
    */
-  void RegisterUrlSchemesAsCorsEnabled(const std::vector<std::string>& schemes);
+  void SetDefaultZoomFactor(float zoomFactor);
 
   /**
-   * @brief Register JS plugin mime types.
+   * @brief Get default zoom factor
    *
-   * @param[in] mimeTypes The MIME types will be checked by the renderer frame loader
-   * to skip creating default frame for the object tags with the registered MIME type.
+   * Gets default zoom factor for all pages opened with this context.
+   *
+   * @return default zoom factor or negative value on error
    */
-  void RegisterJsPluginMimeTypes(const std::vector<std::string>& mimeTypes);
+  float GetDefaultZoomFactor() const;
 
   /**
-   * @brief Set default zoom factor
+   * @brief Register url schemes as CORS enabled
+   *
+   * @param[in] schemes The URL schemes list which will be added to web security policy
    *
-   * @param[in] zoomFactor default zoom factor
    */
-  void SetDefaultZoomFactor(float zoomFactor);
+  void RegisterUrlSchemesAsCorsEnabled(const std::vector<std::string>& schemes);
 
   /**
-   * @brief Get default zoom factor
-   *
-   * Gets default zoom factor for all pages opened with this context.
+   * @brief Register JS plugin mime types.
    *
-   * @return @c default zoom factor or negative value on error
+   * @param[in] mimeTypes The MIME types will be checked by the renderer frame loader
+   * to skip creating default frame for the object tags with the registered MIME type.
    */
-  float GetContextDefaultZoomFactor() const;
+  void RegisterJsPluginMimeTypes(const std::vector<std::string>& mimeTypes);
 
   /**
    * @brief Request for deleting all web application caches.
@@ -323,28 +345,6 @@ public:
   void DeleteAllFormCandidateData();
 
   /**
-   * @brief Get the proxy URI from the network backend of specific context.
-   *
-   * @return current proxy URI or @c null string if it's not set
-   */
-  std::string GetContextProxy() const;
-
-  /**
-   * @brief Set the given proxy to network backend of specific context.
-   *
-   * @param[in] proxy URI to set
-   * @param[in] bypass rule to set
-   */
-  void SetContextProxy(const std::string& proxy, const std::string& bypass);
-
-  /**
-   * @brief Get the proxy bypass rule from the network backend of specific context.
-   *
-   * @return current proxy bypass rule or @c null string if it's not set
-   */
-  std::string GetProxyBypassRule() const;
-
-  /**
    * @brief Notify low memory to free unused memory.
    *
    * @return @c true on success or @c false otherwise.
index 5cac9f4..adeb66f 100755 (executable)
@@ -379,14 +379,14 @@ WebView::WebViewHttpAuthHandlerSignalType& WebView::HttpAuthHandlerSignal()
   return Dali::Toolkit::GetImpl(*this).HttpAuthHandlerSignal();
 }
 
-WebView::WebViewContextMenuCustomizedSignalType& WebView::ContextMenuCustomizedSignal()
+WebView::WebViewContextMenuShownSignalType& WebView::ContextMenuShownSignal()
 {
-  return Dali::Toolkit::GetImpl(*this).ContextMenuCustomizedSignal();
+  return Dali::Toolkit::GetImpl(*this).ContextMenuShownSignal();
 }
 
-WebView::WebViewContextMenuItemSelectedSignalType& WebView::ContextMenuItemSelectedSignal()
+WebView::WebViewContextMenuHiddenSignalType& WebView::ContextMenuHiddenSignal()
 {
-  return Dali::Toolkit::GetImpl(*this).ContextMenuItemSelectedSignal();
+  return Dali::Toolkit::GetImpl(*this).ContextMenuHiddenSignal();
 }
 
 WebView::WebView(Internal::WebView& implementation)
index b290bfd..8fb08b1 100755 (executable)
@@ -34,7 +34,6 @@ class ImageView;
 class WebBackForwardList;
 class WebContext;
 class WebContextMenu;
-class WebContextMenuItem;
 class WebCookieManager;
 class WebFormRepostDecision;
 class WebSettings;
@@ -249,14 +248,14 @@ public:
   using WebViewHttpAuthHandlerSignalType = Signal<void(WebView, std::shared_ptr<Dali::WebEngineHttpAuthHandler>)>;
 
   /**
-   * @brief WebView signal type related with context menu customized.
+   * @brief WebView signal type related with context menu shown.
    */
-  using WebViewContextMenuCustomizedSignalType = Signal<void(WebView, std::shared_ptr<Dali::WebEngineContextMenu>)>;
+  using WebViewContextMenuShownSignalType = Signal<void(WebView, std::shared_ptr<Dali::WebEngineContextMenu>)>;
 
   /**
-   * @brief WebView signal type related with context menu item selected.
+   * @brief WebView signal type related with context menu hidden.
    */
-  using WebViewContextMenuItemSelectedSignalType = Signal<void(WebView, std::shared_ptr<Dali::WebEngineContextMenuItem>)>;
+  using WebViewContextMenuHiddenSignalType = Signal<void(WebView, std::shared_ptr<Dali::WebEngineContextMenu>)>;
 
 public:
   /**
@@ -781,18 +780,18 @@ public:
   WebViewHttpAuthHandlerSignalType& HttpAuthHandlerSignal();
 
   /**
-   * @brief Connect to this signal to be notified when context menu would be customized.
+   * @brief Connect to this signal to be notified when context menu would be shown.
    *
    * @return A signal object to connect with.
    */
-  WebViewContextMenuCustomizedSignalType& ContextMenuCustomizedSignal();
+  WebViewContextMenuShownSignalType& ContextMenuShownSignal();
 
   /**
-   * @brief Connect to this signal to be notified when context menu item is selected.
+   * @brief Connect to this signal to be notified when context menu would be hidden.
    *
    * @return A signal object to connect with.
    */
-  WebViewContextMenuItemSelectedSignalType& ContextMenuItemSelectedSignal();
+  WebViewContextMenuHiddenSignalType& ContextMenuHiddenSignal();
 
 public: // Not intended for application developers
   /// @cond internal
index 54cf75f..70e9c76 100644 (file)
@@ -1324,9 +1324,13 @@ Property::Index Button::AccessibleImpl::GetNamePropertyIndex()
   Property::Map   labelMap = Self().GetProperty<Property::Map>(label);
 
   if(MapContainsTextString(labelMap))
+  {
     return label;
+  }
   else
+  {
     return Property::INVALID_INDEX;
+  }
 }
 
 Dali::Accessibility::States Button::AccessibleImpl::CalculateStates()
index 8308ce1..98733ea 100644 (file)
@@ -85,11 +85,13 @@ void CheckBoxButton::OnInitialize()
 
 Dali::Accessibility::States CheckBoxButton::AccessibleImpl::CalculateStates()
 {
-  auto tmp = Button::AccessibleImpl::CalculateStates();
-  auto slf = Toolkit::Button::DownCast(Self());
-  if(slf.GetProperty<bool>(Toolkit::Button::Property::SELECTED))
-    tmp[Dali::Accessibility::State::CHECKED] = true;
-  return tmp;
+  auto state = Button::AccessibleImpl::CalculateStates();
+  auto self = Toolkit::Button::DownCast(Self());
+  if(self.GetProperty<bool>(Toolkit::Button::Property::SELECTED))
+  {
+    state[Dali::Accessibility::State::CHECKED] = true;
+  }
+  return state;
 }
 
 void CheckBoxButton::OnStateChange(State newState)
@@ -98,8 +100,7 @@ void CheckBoxButton::OnStateChange(State newState)
   if(Dali::Accessibility::IsUp() && (Dali::Accessibility::Accessible::GetCurrentlyHighlightedActor() == Self())
      && (newState == SELECTED_STATE || newState == UNSELECTED_STATE))
   {
-    Dali::Accessibility::Accessible::Get(Self())->EmitStateChanged(
-      Dali::Accessibility::State::CHECKED, newState == SELECTED_STATE ? 1 : 0, 0);
+    Dali::Accessibility::Accessible::Get(Self())->EmitStateChanged(Dali::Accessibility::State::CHECKED, newState == SELECTED_STATE ? 1 : 0, 0);
   }
 }
 
index 2dc4385..2958766 100644 (file)
@@ -196,10 +196,10 @@ Property::Value PushButton::GetProperty(BaseObject* object, Property::Index prop
 
 Dali::Accessibility::States PushButton::AccessibleImpl::CalculateStates()
 {
-  auto tmp                                 = Button::AccessibleImpl::CalculateStates();
-  auto slf                                 = Toolkit::Button::DownCast(Self());
-  tmp[Dali::Accessibility::State::PRESSED] = slf.GetProperty<bool>(Toolkit::Button::Property::SELECTED);
-  return tmp;
+  auto state = Button::AccessibleImpl::CalculateStates();
+  auto self = Toolkit::Button::DownCast(Self());
+  state[Dali::Accessibility::State::PRESSED] = self.GetProperty<bool>(Toolkit::Button::Property::SELECTED);
+  return state;
 }
 
 void PushButton::OnStateChange(State newState)
@@ -208,13 +208,11 @@ void PushButton::OnStateChange(State newState)
   if(Dali::Accessibility::IsUp() && (Dali::Accessibility::Accessible::GetCurrentlyHighlightedActor() == Self())
      && (newState == SELECTED_STATE || newState == UNSELECTED_STATE))
   {
-    Dali::Accessibility::Accessible::Get(Self())->EmitStateChanged(
-      Dali::Accessibility::State::PRESSED, newState == SELECTED_STATE ? 1 : 0, 0);
+    Dali::Accessibility::Accessible::Get(Self())->EmitStateChanged(Dali::Accessibility::State::PRESSED, newState == SELECTED_STATE ? 1 : 0, 0);
 
     if(Self().GetProperty<bool>(Toolkit::Button::Property::TOGGLABLE))
     {
-      Dali::Accessibility::Accessible::Get(Self())->EmitStateChanged(
-        Dali::Accessibility::State::CHECKED, newState == SELECTED_STATE ? 1 : 0, 0);
+      Dali::Accessibility::Accessible::Get(Self())->EmitStateChanged(Dali::Accessibility::State::CHECKED, newState == SELECTED_STATE ? 1 : 0, 0);
     }
   }
 }
index f17a8c9..4b4e070 100644 (file)
@@ -103,23 +103,27 @@ void RadioButton::OnStateChange(State newState)
       }
     }
   }
+
   // TODO: replace it with OnPropertySet hook once Button::Property::SELECTED will be consistently used
   if(Dali::Accessibility::IsUp() && (Dali::Accessibility::Accessible::GetCurrentlyHighlightedActor() == Self())
      && (newState == SELECTED_STATE || newState == UNSELECTED_STATE))
   {
-    Dali::Accessibility::Accessible::Get(Self())->EmitStateChanged(
-      Dali::Accessibility::State::CHECKED, newState == SELECTED_STATE ? 1 : 0, 0);
+    Dali::Accessibility::Accessible::Get(Self())->EmitStateChanged(Dali::Accessibility::State::CHECKED, newState == SELECTED_STATE ? 1 : 0, 0);
   }
 }
 
 Dali::Accessibility::States RadioButton::AccessibleImpl::CalculateStates()
 {
-  auto tmp = Button::AccessibleImpl::CalculateStates();
-  auto slf = Toolkit::Button::DownCast(Self());
-  if(slf.GetProperty<bool>(Toolkit::Button::Property::SELECTED))
-    tmp[Dali::Accessibility::State::CHECKED] = true;
-  tmp[Dali::Accessibility::State::SELECTABLE] = true;
-  return tmp;
+  auto state = Button::AccessibleImpl::CalculateStates();
+  auto self = Toolkit::Button::DownCast(Self());
+
+  if(self.GetProperty<bool>(Toolkit::Button::Property::SELECTED))
+  {
+    state[Dali::Accessibility::State::CHECKED] = true;
+  }
+
+  state[Dali::Accessibility::State::SELECTABLE] = true;
+  return state;
 }
 
 } // namespace Internal
index 311f6b3..1697b20 100644 (file)
@@ -377,7 +377,9 @@ Dali::Accessibility::States ToggleButton::AccessibleImpl::CalculateStates()
   auto states = Button::AccessibleImpl::CalculateStates();
   auto button = Toolkit::ToggleButton::DownCast(Self());
   if(button.GetProperty<int>(Toolkit::ToggleButton::Property::CURRENT_STATE_INDEX))
+  {
     states[Dali::Accessibility::State::CHECKED] = true;
+  }
   return states;
 }
 
@@ -401,9 +403,8 @@ void ToggleButton::OnStateChange(State newState)
   if(Dali::Accessibility::IsUp() && (Self() == Dali::Accessibility::Accessible::GetCurrentlyHighlightedActor())
      && (newState == SELECTED_STATE || newState == UNSELECTED_STATE))
   {
-    Dali::Accessibility::Accessible::Get(Self())->EmitStateChanged(
-      Dali::Accessibility::State::CHECKED, mCurrentToggleIndex ? 1 : 0, 0);
-      Dali::Accessibility::Accessible::Get(Self())->Emit(Dali::Accessibility::ObjectPropertyChangeEvent::DESCRIPTION);
+    Dali::Accessibility::Accessible::Get(Self())->EmitStateChanged(Dali::Accessibility::State::CHECKED, mCurrentToggleIndex ? 1 : 0, 0);
+    Dali::Accessibility::Accessible::Get(Self())->Emit(Dali::Accessibility::ObjectPropertyChangeEvent::DESCRIPTION);
   }
 }
 
index 33670d6..0af44fb 100644 (file)
@@ -222,44 +222,57 @@ static bool DoAction(BaseObject* object, const std::string& actionName, const Pr
 
   DALI_ASSERT_ALWAYS(control);
 
-  if(0 == strcmp(actionName.c_str(), ACTION_ACCESSIBILITY_ACTIVATED) ||
-     actionName == "activate")
+  if(0 == strcmp(actionName.c_str(), ACTION_ACCESSIBILITY_ACTIVATED) || actionName == "activate")
   {
     // if cast succeeds there is an implementation so no need to check
     if(!DevelControl::AccessibilityActivateSignal(control).Empty())
+    {
       DevelControl::AccessibilityActivateSignal(control).Emit();
+    }
     else
+    {
       ret = Internal::GetImplementation(control).OnAccessibilityActivated();
+    }
   }
   else if(0 == strcmp(actionName.c_str(), ACTION_ACCESSIBILITY_READING_SKIPPED))
   {
     // if cast succeeds there is an implementation so no need to check
     if(!DevelControl::AccessibilityReadingSkippedSignal(control).Empty())
+    {
       DevelControl::AccessibilityReadingSkippedSignal(control).Emit();
+    }
   }
   else if(0 == strcmp(actionName.c_str(), ACTION_ACCESSIBILITY_READING_PAUSED))
   {
     // if cast succeeds there is an implementation so no need to check
     if(!DevelControl::AccessibilityReadingPausedSignal(control).Empty())
+    {
       DevelControl::AccessibilityReadingPausedSignal(control).Emit();
+    }
   }
   else if(0 == strcmp(actionName.c_str(), ACTION_ACCESSIBILITY_READING_RESUMED))
   {
     // if cast succeeds there is an implementation so no need to check
     if(!DevelControl::AccessibilityReadingResumedSignal(control).Empty())
+    {
       DevelControl::AccessibilityReadingResumedSignal(control).Emit();
+    }
   }
   else if(0 == strcmp(actionName.c_str(), ACTION_ACCESSIBILITY_READING_CANCELLED))
   {
     // if cast succeeds there is an implementation so no need to check
     if(!DevelControl::AccessibilityReadingCancelledSignal(control).Empty())
+    {
       DevelControl::AccessibilityReadingCancelledSignal(control).Emit();
+    }
   }
   else if(0 == strcmp(actionName.c_str(), ACTION_ACCESSIBILITY_READING_STOPPED))
   {
     // if cast succeeds there is an implementation so no need to check
     if(!DevelControl::AccessibilityReadingStoppedSignal(control).Empty())
+    {
       DevelControl::AccessibilityReadingStoppedSignal(control).Emit();
+    }
   }
   else
   {
@@ -414,12 +427,12 @@ const PropertyRegistration Control::Impl::PROPERTY_12(typeRegistration, "rightFo
 const PropertyRegistration Control::Impl::PROPERTY_13(typeRegistration, "upFocusableActorId",             Toolkit::DevelControl::Property::UP_FOCUSABLE_ACTOR_ID,            Property::INTEGER, &Control::Impl::SetProperty, &Control::Impl::GetProperty);
 const PropertyRegistration Control::Impl::PROPERTY_14(typeRegistration, "downFocusableActorId",           Toolkit::DevelControl::Property::DOWN_FOCUSABLE_ACTOR_ID,          Property::INTEGER, &Control::Impl::SetProperty, &Control::Impl::GetProperty);
 const PropertyRegistration Control::Impl::PROPERTY_15(typeRegistration, "shadow",                         Toolkit::DevelControl::Property::SHADOW,                           Property::MAP,     &Control::Impl::SetProperty, &Control::Impl::GetProperty);
-const PropertyRegistration Control::Impl::PROPERTY_16(typeRegistration, "accessibilityAttributes",        Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES,         Property::MAP,     &Control::Impl::SetProperty, &Control::Impl::GetProperty);
-const PropertyRegistration Control::Impl::PROPERTY_17(typeRegistration, "accessibilityName",              Toolkit::DevelControl::Property::ACCESSIBILITY_NAME,               Property::STRING,  &Control::Impl::SetProperty, &Control::Impl::GetProperty);
-const PropertyRegistration Control::Impl::PROPERTY_18(typeRegistration, "accessibilityDescription",       Toolkit::DevelControl::Property::ACCESSIBILITY_DESCRIPTION,        Property::STRING,  &Control::Impl::SetProperty, &Control::Impl::GetProperty);
-const PropertyRegistration Control::Impl::PROPERTY_19(typeRegistration, "accessibilityTranslationDomain", Toolkit::DevelControl::Property::ACCESSIBILITY_TRANSLATION_DOMAIN, Property::STRING,  &Control::Impl::SetProperty, &Control::Impl::GetProperty);
-const PropertyRegistration Control::Impl::PROPERTY_20(typeRegistration, "accessibilityRole",              Toolkit::DevelControl::Property::ACCESSIBILITY_ROLE,               Property::INTEGER, &Control::Impl::SetProperty, &Control::Impl::GetProperty);
-const PropertyRegistration Control::Impl::PROPERTY_21(typeRegistration, "accessibilityHighlightable",     Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE,      Property::BOOLEAN, &Control::Impl::SetProperty, &Control::Impl::GetProperty);
+const PropertyRegistration Control::Impl::PROPERTY_16(typeRegistration, "accessibilityName",              Toolkit::DevelControl::Property::ACCESSIBILITY_NAME,               Property::STRING,  &Control::Impl::SetProperty, &Control::Impl::GetProperty);
+const PropertyRegistration Control::Impl::PROPERTY_17(typeRegistration, "accessibilityDescription",       Toolkit::DevelControl::Property::ACCESSIBILITY_DESCRIPTION,        Property::STRING,  &Control::Impl::SetProperty, &Control::Impl::GetProperty);
+const PropertyRegistration Control::Impl::PROPERTY_18(typeRegistration, "accessibilityTranslationDomain", Toolkit::DevelControl::Property::ACCESSIBILITY_TRANSLATION_DOMAIN, Property::STRING,  &Control::Impl::SetProperty, &Control::Impl::GetProperty);
+const PropertyRegistration Control::Impl::PROPERTY_19(typeRegistration, "accessibilityRole",              Toolkit::DevelControl::Property::ACCESSIBILITY_ROLE,               Property::INTEGER, &Control::Impl::SetProperty, &Control::Impl::GetProperty);
+const PropertyRegistration Control::Impl::PROPERTY_20(typeRegistration, "accessibilityHighlightable",     Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE,      Property::BOOLEAN, &Control::Impl::SetProperty, &Control::Impl::GetProperty);
+const PropertyRegistration Control::Impl::PROPERTY_21(typeRegistration, "accessibilityAttributes",        Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES,         Property::MAP,     &Control::Impl::SetProperty, &Control::Impl::GetProperty);
 // clang-format on
 
 Control::Impl::Impl(Control& controlImpl)
@@ -461,14 +474,13 @@ Control::Impl::Impl(Control& controlImpl)
       return Control::Impl::GetAccessibilityObject(actor);
     });
 
-  accessibilityConstructor = [](Dali::Actor actor) -> std::unique_ptr<Dali::Accessibility::Accessible> {
-    return std::unique_ptr<Dali::Accessibility::Accessible>(new DevelControl::AccessibleImpl(actor,
-                                                                                             Dali::Accessibility::Role::UNKNOWN));
+  mAccessibilityConstructor = [](Dali::Actor actor) -> std::unique_ptr<Dali::Accessibility::Accessible> {
+    return std::unique_ptr<Dali::Accessibility::Accessible>(new DevelControl::AccessibleImpl(actor, Dali::Accessibility::Role::UNKNOWN));
   };
 
-  size_t len = static_cast<size_t>(Dali::Accessibility::RelationType::MAX_COUNT);
-  mAccessibilityRelations.reserve(len);
-  for(auto i = 0u; i < len; ++i)
+  size_t length = static_cast<size_t>(Dali::Accessibility::RelationType::MAX_COUNT);
+  mAccessibilityRelations.reserve(length);
+  for(auto i = 0u; i < length; ++i)
   {
     mAccessibilityRelations.push_back({});
   }
@@ -958,11 +970,10 @@ void Control::Impl::DoAction(Dali::Property::Index visualIndex, Dali::Property::
   }
 }
 
-void Control::Impl::AppendAccessibilityAttribute(const std::string& key,
-                                                 const std::string  value)
+void Control::Impl::AppendAccessibilityAttribute(const std::string& key, const std::string value)
 {
-  Property::Value* val = mAccessibilityAttributes.Find(key);
-  if(val)
+  Property::Value* checkedValue = mAccessibilityAttributes.Find(key);
+  if(checkedValue)
   {
     mAccessibilityAttributes[key] = Property::Value(value);
   }
@@ -1045,76 +1056,6 @@ void Control::Impl::SetProperty(BaseObject* object, Property::Index index, const
       }
       break;
 
-      case Toolkit::DevelControl::Property::ACCESSIBILITY_NAME:
-      {
-        std::string name;
-        if(value.Get(name))
-        {
-          controlImpl.mImpl->mAccessibilityName    = name;
-          controlImpl.mImpl->mAccessibilityNameSet = true;
-        }
-        else
-        {
-          controlImpl.mImpl->mAccessibilityNameSet = false;
-        }
-      }
-      break;
-
-      case Toolkit::DevelControl::Property::ACCESSIBILITY_DESCRIPTION:
-      {
-        std::string txt;
-        if(value.Get(txt))
-        {
-          controlImpl.mImpl->mAccessibilityDescription    = txt;
-          controlImpl.mImpl->mAccessibilityDescriptionSet = true;
-        }
-        else
-        {
-          controlImpl.mImpl->mAccessibilityDescriptionSet = false;
-        }
-      }
-      break;
-
-      case Toolkit::DevelControl::Property::ACCESSIBILITY_TRANSLATION_DOMAIN:
-      {
-        std::string txt;
-        if(value.Get(txt))
-        {
-          controlImpl.mImpl->mAccessibilityTranslationDomain    = txt;
-          controlImpl.mImpl->mAccessibilityTranslationDomainSet = true;
-        }
-        else
-        {
-          controlImpl.mImpl->mAccessibilityTranslationDomainSet = false;
-        }
-      }
-      break;
-
-      case Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE:
-      {
-        bool highlightable;
-        if(value.Get(highlightable))
-        {
-          controlImpl.mImpl->mAccessibilityHighlightable    = highlightable;
-          controlImpl.mImpl->mAccessibilityHighlightableSet = true;
-        }
-        else
-        {
-          controlImpl.mImpl->mAccessibilityHighlightableSet = false;
-        }
-      }
-      break;
-
-      case Toolkit::DevelControl::Property::ACCESSIBILITY_ROLE:
-      {
-        Dali::Accessibility::Role val;
-        if(value.Get(val))
-        {
-          controlImpl.mImpl->mAccessibilityRole = val;
-        }
-      }
-      break;
-
       case Toolkit::DevelControl::Property::UP_FOCUSABLE_ACTOR_ID:
       {
         int focusId;
@@ -1224,6 +1165,76 @@ void Control::Impl::SetProperty(BaseObject* object, Property::Index index, const
         break;
       }
 
+      case Toolkit::DevelControl::Property::ACCESSIBILITY_NAME:
+      {
+        std::string name;
+        if(value.Get(name))
+        {
+          controlImpl.mImpl->mAccessibilityName    = name;
+          controlImpl.mImpl->mAccessibilityNameSet = true;
+        }
+        else
+        {
+          controlImpl.mImpl->mAccessibilityNameSet = false;
+        }
+      }
+      break;
+
+      case Toolkit::DevelControl::Property::ACCESSIBILITY_DESCRIPTION:
+      {
+        std::string text;
+        if(value.Get(text))
+        {
+          controlImpl.mImpl->mAccessibilityDescription    = text;
+          controlImpl.mImpl->mAccessibilityDescriptionSet = true;
+        }
+        else
+        {
+          controlImpl.mImpl->mAccessibilityDescriptionSet = false;
+        }
+      }
+      break;
+
+      case Toolkit::DevelControl::Property::ACCESSIBILITY_TRANSLATION_DOMAIN:
+      {
+        std::string text;
+        if(value.Get(text))
+        {
+          controlImpl.mImpl->mAccessibilityTranslationDomain    = text;
+          controlImpl.mImpl->mAccessibilityTranslationDomainSet = true;
+        }
+        else
+        {
+          controlImpl.mImpl->mAccessibilityTranslationDomainSet = false;
+        }
+      }
+      break;
+
+      case Toolkit::DevelControl::Property::ACCESSIBILITY_ROLE:
+      {
+        Dali::Accessibility::Role role;
+        if(value.Get(role))
+        {
+          controlImpl.mImpl->mAccessibilityRole = role;
+        }
+      }
+      break;
+
+      case Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE:
+      {
+        bool highlightable;
+        if(value.Get(highlightable))
+        {
+          controlImpl.mImpl->mAccessibilityHighlightable    = highlightable;
+          controlImpl.mImpl->mAccessibilityHighlightableSet = true;
+        }
+        else
+        {
+          controlImpl.mImpl->mAccessibilityHighlightableSet = false;
+        }
+      }
+      break;
+
       case Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES:
       {
         const Property::Map* map = value.GetMap();
@@ -1279,48 +1290,6 @@ Property::Value Control::Impl::GetProperty(BaseObject* object, Property::Index i
         break;
       }
 
-      case Toolkit::DevelControl::Property::ACCESSIBILITY_NAME:
-      {
-        if(controlImpl.mImpl->mAccessibilityNameSet)
-        {
-          value = controlImpl.mImpl->mAccessibilityName;
-        }
-        break;
-      }
-
-      case Toolkit::DevelControl::Property::ACCESSIBILITY_DESCRIPTION:
-      {
-        if(controlImpl.mImpl->mAccessibilityDescriptionSet)
-        {
-          value = controlImpl.mImpl->mAccessibilityDescription;
-        }
-        break;
-      }
-
-      case Toolkit::DevelControl::Property::ACCESSIBILITY_TRANSLATION_DOMAIN:
-      {
-        if(controlImpl.mImpl->mAccessibilityTranslationDomainSet)
-        {
-          value = controlImpl.mImpl->mAccessibilityTranslationDomain;
-        }
-        break;
-      }
-
-      case Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE:
-      {
-        if(controlImpl.mImpl->mAccessibilityHighlightableSet)
-        {
-          value = controlImpl.mImpl->mAccessibilityHighlightable;
-        }
-        break;
-      }
-
-      case Toolkit::DevelControl::Property::ACCESSIBILITY_ROLE:
-      {
-        value = Property::Value(controlImpl.mImpl->mAccessibilityRole);
-        break;
-      }
-
       case Toolkit::DevelControl::Property::UP_FOCUSABLE_ACTOR_ID:
       {
         value = controlImpl.mImpl->mUpFocusableActorId;
@@ -1388,6 +1357,48 @@ Property::Value Control::Impl::GetProperty(BaseObject* object, Property::Index i
         break;
       }
 
+      case Toolkit::DevelControl::Property::ACCESSIBILITY_NAME:
+      {
+        if(controlImpl.mImpl->mAccessibilityNameSet)
+        {
+          value = controlImpl.mImpl->mAccessibilityName;
+        }
+        break;
+      }
+
+      case Toolkit::DevelControl::Property::ACCESSIBILITY_DESCRIPTION:
+      {
+        if(controlImpl.mImpl->mAccessibilityDescriptionSet)
+        {
+          value = controlImpl.mImpl->mAccessibilityDescription;
+        }
+        break;
+      }
+
+      case Toolkit::DevelControl::Property::ACCESSIBILITY_TRANSLATION_DOMAIN:
+      {
+        if(controlImpl.mImpl->mAccessibilityTranslationDomainSet)
+        {
+          value = controlImpl.mImpl->mAccessibilityTranslationDomain;
+        }
+        break;
+      }
+
+      case Toolkit::DevelControl::Property::ACCESSIBILITY_ROLE:
+      {
+        value = Property::Value(controlImpl.mImpl->mAccessibilityRole);
+        break;
+      }
+
+      case Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE:
+      {
+        if(controlImpl.mImpl->mAccessibilityHighlightableSet)
+        {
+          value = controlImpl.mImpl->mAccessibilityHighlightable;
+        }
+        break;
+      }
+
       case Toolkit::DevelControl::Property::ACCESSIBILITY_ATTRIBUTES:
       {
         value = controlImpl.mImpl->mAccessibilityAttributes;
@@ -1401,9 +1412,11 @@ Property::Value Control::Impl::GetProperty(BaseObject* object, Property::Index i
 
 void Control::Impl::RemoveAccessibilityAttribute(const std::string& key)
 {
-  Property::Value* val = mAccessibilityAttributes.Find(key);
-  if(val)
+  Property::Value* value = mAccessibilityAttributes.Find(key);
+  if(value)
+  {
     mAccessibilityAttributes[key] = Property::Value();
+  }
 }
 
 void Control::Impl::ClearAccessibilityAttributes()
@@ -1413,7 +1426,7 @@ void Control::Impl::ClearAccessibilityAttributes()
 
 void Control::Impl::SetAccessibilityReadingInfoType(const Dali::Accessibility::ReadingInfoTypes types)
 {
-  std::string value;
+  std::string value{};
   if(types[Dali::Accessibility::ReadingInfoType::NAME])
   {
     value += READING_INFO_TYPE_NAME;
@@ -1447,7 +1460,7 @@ void Control::Impl::SetAccessibilityReadingInfoType(const Dali::Accessibility::R
 
 Dali::Accessibility::ReadingInfoTypes Control::Impl::GetAccessibilityReadingInfoType() const
 {
-  std::string value;
+  std::string value{};
   auto        place = mAccessibilityAttributes.Find(READING_INFO_TYPE_ATTRIBUTE_NAME);
   if(place)
   {
@@ -1947,20 +1960,22 @@ void Control::Impl::OnIdleCallback()
 
 Dali::Accessibility::Accessible* Control::Impl::GetAccessibilityObject()
 {
-  if(!accessibilityObject)
-    accessibilityObject = accessibilityConstructor(mControlImpl.Self());
-  return accessibilityObject.get();
+  if(!mAccessibilityObject)
+  {
+    mAccessibilityObject = mAccessibilityConstructor(mControlImpl.Self());
+  }
+  return mAccessibilityObject.get();
 }
 
 Dali::Accessibility::Accessible* Control::Impl::GetAccessibilityObject(Dali::Actor actor)
 {
   if(actor)
   {
-    auto q = Dali::Toolkit::Control::DownCast(actor);
-    if(q)
+    auto control = Dali::Toolkit::Control::DownCast(actor);
+    if(control)
     {
-      auto q2 = static_cast<Internal::Control*>(&q.GetImplementation());
-      return q2->mImpl->GetAccessibilityObject();
+      auto controlImpl = static_cast<Internal::Control*>(&control.GetImplementation());
+      return controlImpl->mImpl->GetAccessibilityObject();
     }
   }
   return nullptr;
index 96290b7..e278390 100644 (file)
@@ -342,8 +342,7 @@ public:
    * Attribute is added if not existed previously or updated
    * if existed.
    */
-  void AppendAccessibilityAttribute(const std::string& key,
-                                    const std::string  value);
+  void AppendAccessibilityAttribute(const std::string& key, const std::string value);
 
   /**
    * @brief Removes accessibility attribute
@@ -405,6 +404,22 @@ public:
    */
   void MakeVisualTransition(Dali::Animation& animation, Dali::Toolkit::Control source, Dali::Property::Index visualIndex, AlphaFunction alphaFunction, TimePeriod timePeriod);
 
+  /**
+   * @brief Gets the current control's accessible object.
+   *
+   * @return The handle to Accessible object
+   */
+  Dali::Accessibility::Accessible* GetAccessibilityObject();
+
+  /**
+   * @brief Gets Accessible object handle.
+   *
+   * The method acquires Accessible handle from Actor object
+   * @param  actor Actor object
+   * @return The handle to Accessible object
+   */
+  static Dali::Accessibility::Accessible* GetAccessibilityObject(Dali::Actor actor);
+
 private:
   /**
    * Used as an alternative to boolean so that it is obvious whether a visual is enabled/disabled.
@@ -475,6 +490,8 @@ public:
   Toolkit::Control::KeyInputFocusSignalType                      mKeyInputFocusLostSignal;
   Toolkit::Control::ResourceReadySignalType                      mResourceReadySignal;
   DevelControl::VisualEventSignalType                            mVisualEventSignal;
+
+  // Accessibility
   Toolkit::DevelControl::AccessibilityActivateSignalType         mAccessibilityActivateSignal;
   Toolkit::DevelControl::AccessibilityReadingSkippedSignalType   mAccessibilityReadingSkippedSignal;
   Toolkit::DevelControl::AccessibilityReadingPausedSignalType    mAccessibilityReadingPausedSignal;
@@ -482,17 +499,15 @@ public:
   Toolkit::DevelControl::AccessibilityReadingCancelledSignalType mAccessibilityReadingCancelledSignal;
   Toolkit::DevelControl::AccessibilityReadingStoppedSignalType   mAccessibilityReadingStoppedSignal;
 
-  Toolkit::DevelControl::AccessibilityGetNameSignalType        mAccessibilityGetNameSignal;
-  Toolkit::DevelControl::AccessibilityGetDescriptionSignalType mAccessibilityGetDescriptionSignal;
-  Toolkit::DevelControl::AccessibilityDoGestureSignalType      mAccessibilityDoGestureSignal;
+  Toolkit::DevelControl::AccessibilityGetNameSignalType          mAccessibilityGetNameSignal;
+  Toolkit::DevelControl::AccessibilityGetDescriptionSignalType   mAccessibilityGetDescriptionSignal;
+  Toolkit::DevelControl::AccessibilityDoGestureSignalType        mAccessibilityDoGestureSignal;
 
   std::string mAccessibilityName;
-  bool        mAccessibilityNameSet = false;
-
   std::string mAccessibilityDescription;
-  bool        mAccessibilityDescriptionSet = false;
-
   std::string mAccessibilityTranslationDomain;
+  bool        mAccessibilityNameSet = false;
+  bool        mAccessibilityDescriptionSet = false;
   bool        mAccessibilityTranslationDomainSet = false;
 
   bool mAccessibilityHighlightable    = false;
@@ -500,7 +515,9 @@ public:
 
   Dali::Accessibility::Role mAccessibilityRole = Dali::Accessibility::Role::UNKNOWN;
 
-  std::vector<std::vector<Accessibility::Address>> mAccessibilityRelations;
+  std::vector<std::vector<Accessibility::Address>>                       mAccessibilityRelations;
+  std::function<std::unique_ptr<Dali::Accessibility::Accessible>(Actor)> mAccessibilityConstructor;
+  std::unique_ptr<Dali::Accessibility::Accessible>                       mAccessibilityObject;
 
   // Gesture Detection
   PinchGestureDetector     mPinchGestureDetector;
@@ -545,17 +562,6 @@ public:
   static const PropertyRegistration PROPERTY_20;
   static const PropertyRegistration PROPERTY_21;
   static const PropertyRegistration PROPERTY_22;
-
-  /**
-   * The method acquires Accessible handle from Actor object
-   * @param  actor Actor object
-   * @return       handle to Accessible object
-   */
-  static Dali::Accessibility::Accessible* GetAccessibilityObject(Dali::Actor actor);
-  Dali::Accessibility::Accessible*        GetAccessibilityObject();
-
-  std::function<std::unique_ptr<Dali::Accessibility::Accessible>(Actor)> accessibilityConstructor;
-  std::unique_ptr<Dali::Accessibility::Accessible>                       accessibilityObject;
 };
 
 } // namespace Internal
index 48dfaad..1006307 100644 (file)
@@ -683,9 +683,8 @@ double ProgressBar::AccessibleImpl::GetMinimum()
 
 double ProgressBar::AccessibleImpl::GetCurrent()
 {
-  auto p = Toolkit::ProgressBar::DownCast(Self());
-  return p.GetProperty(Toolkit::ProgressBar::Property::PROGRESS_VALUE)
-    .Get<float>();
+  auto self = Toolkit::ProgressBar::DownCast(Self());
+  return self.GetProperty(Toolkit::ProgressBar::Property::PROGRESS_VALUE).Get<float>();
 }
 
 double ProgressBar::AccessibleImpl::GetMaximum()
@@ -696,10 +695,12 @@ double ProgressBar::AccessibleImpl::GetMaximum()
 bool ProgressBar::AccessibleImpl::SetCurrent(double current)
 {
   if(current < GetMinimum() || current > GetMaximum())
+  {
     return false;
-  auto p = Toolkit::ProgressBar::DownCast(Self());
-  p.SetProperty(Toolkit::ProgressBar::Property::PROGRESS_VALUE,
-                static_cast<float>(current));
+  }
+
+  auto self = Toolkit::ProgressBar::DownCast(Self());
+  self.SetProperty(Toolkit::ProgressBar::Property::PROGRESS_VALUE, static_cast<float>(current));
   return true;
 }
 
index fcf0b91..1da4297 100644 (file)
@@ -863,42 +863,49 @@ Toolkit::ScrollBar ScrollBar::New(Toolkit::ScrollBar::Direction direction)
 
 double ScrollBar::AccessibleImpl::GetMinimum()
 {
-  auto   p                = Toolkit::ScrollBar::DownCast(Self());
-  Handle scrollableHandle = GetImpl(p).mScrollableObject.GetHandle();
-  return scrollableHandle ? scrollableHandle.GetCurrentProperty<float>(GetImpl(p).mPropertyMinScrollPosition) : 0.0f;
+  auto self = Toolkit::ScrollBar::DownCast(Self());
+  Handle scrollableHandle = GetImpl(self).mScrollableObject.GetHandle();
+  return scrollableHandle ? scrollableHandle.GetCurrentProperty<float>(GetImpl(self).mPropertyMinScrollPosition) : 0.0f;
 }
 
 double ScrollBar::AccessibleImpl::GetCurrent()
 {
-  auto   p                = Toolkit::ScrollBar::DownCast(Self());
-  Handle scrollableHandle = GetImpl(p).mScrollableObject.GetHandle();
-  return scrollableHandle ? scrollableHandle.GetCurrentProperty<float>(GetImpl(p).mPropertyScrollPosition) : 0.0f;
+  auto self = Toolkit::ScrollBar::DownCast(Self());
+  Handle scrollableHandle = GetImpl(self).mScrollableObject.GetHandle();
+  return scrollableHandle ? scrollableHandle.GetCurrentProperty<float>(GetImpl(self).mPropertyScrollPosition) : 0.0f;
 }
 
 double ScrollBar::AccessibleImpl::GetMaximum()
 {
-  auto   p                = Toolkit::ScrollBar::DownCast(Self());
-  Handle scrollableHandle = GetImpl(p).mScrollableObject.GetHandle();
-  return scrollableHandle ? scrollableHandle.GetCurrentProperty<float>(GetImpl(p).mPropertyMaxScrollPosition) : 1.0f;
+  auto self = Toolkit::ScrollBar::DownCast(Self());
+  Handle scrollableHandle = GetImpl(self).mScrollableObject.GetHandle();
+  return scrollableHandle ? scrollableHandle.GetCurrentProperty<float>(GetImpl(self).mPropertyMaxScrollPosition) : 1.0f;
 }
 
 bool ScrollBar::AccessibleImpl::SetCurrent(double current)
 {
   if(current < GetMinimum() || current > GetMaximum())
+  {
     return false;
+  }
 
-  auto value_before = GetCurrent();
+  auto valueBefore = GetCurrent();
 
-  auto   p                = Toolkit::ScrollBar::DownCast(Self());
-  Handle scrollableHandle = GetImpl(p).mScrollableObject.GetHandle();
+  auto self = Toolkit::ScrollBar::DownCast(Self());
+  Handle scrollableHandle = GetImpl(self).mScrollableObject.GetHandle();
   if(!scrollableHandle)
+  {
     return false;
-  scrollableHandle.SetProperty(GetImpl(p).mPropertyScrollPosition, static_cast<float>(current));
+  }
 
-  auto value_after = GetCurrent();
+  scrollableHandle.SetProperty(GetImpl(self).mPropertyScrollPosition, static_cast<float>(current));
 
-  if((current != value_before) && (value_before == value_after))
+  auto valueAfter = GetCurrent();
+
+  if((current != valueBefore) && (valueBefore == valueAfter))
+  {
     return false;
+  }
 
   return true;
 }
index fdbbbd9..8cac5ed 100644 (file)
@@ -1413,20 +1413,20 @@ Property::Value Slider::GetProperty(BaseObject* object, Property::Index property
 
 double Slider::AccessibleImpl::GetMinimum()
 {
-  auto p = Toolkit::Slider::DownCast(Self());
-  return p.GetProperty(Toolkit::Slider::Property::LOWER_BOUND).Get<float>();
+  auto self = Toolkit::Slider::DownCast(Self());
+  return self.GetProperty(Toolkit::Slider::Property::LOWER_BOUND).Get<float>();
 }
 
 double Slider::AccessibleImpl::GetCurrent()
 {
-  auto p = Toolkit::Slider::DownCast(Self());
-  return p.GetProperty(Toolkit::Slider::Property::VALUE).Get<float>();
+  auto self = Toolkit::Slider::DownCast(Self());
+  return self.GetProperty(Toolkit::Slider::Property::VALUE).Get<float>();
 }
 
 double Slider::AccessibleImpl::GetMaximum()
 {
-  auto p = Toolkit::Slider::DownCast(Self());
-  return p.GetProperty(Toolkit::Slider::Property::UPPER_BOUND).Get<float>();
+  auto self = Toolkit::Slider::DownCast(Self());
+  return self.GetProperty(Toolkit::Slider::Property::UPPER_BOUND).Get<float>();
 }
 
 bool Slider::AccessibleImpl::SetCurrent(double current)
@@ -1434,19 +1434,19 @@ bool Slider::AccessibleImpl::SetCurrent(double current)
   if(current < GetMinimum() || current > GetMaximum())
     return false;
 
-  auto  p    = Toolkit::Slider::DownCast(Self());
-  auto& impl = Toolkit::GetImpl(p);
+  auto self = Toolkit::Slider::DownCast(Self());
+  auto& impl = Toolkit::GetImpl(self);
 
-  const float prev = p.GetProperty<float>(Toolkit::Slider::Property::VALUE);
+  const float prev = self.GetProperty<float>(Toolkit::Slider::Property::VALUE);
   float       next = static_cast<float>(current);
 
   if(fabsf(next - prev) < Math::MACHINE_EPSILON_0)
   {
     // do nothing
   }
-  else if(p.GetProperty<bool>(Toolkit::Slider::Property::SNAP_TO_MARKS))
+  else if(self.GetProperty<bool>(Toolkit::Slider::Property::SNAP_TO_MARKS))
   {
-    auto marks = p.GetProperty<Property::Array>(Toolkit::Slider::Property::MARKS);
+    auto marks = self.GetProperty<Property::Array>(Toolkit::Slider::Property::MARKS);
 
     int prevIdx;
     if(impl.MarkReached(impl.MapValuePercentage(prev), prevIdx))
@@ -1455,7 +1455,9 @@ bool Slider::AccessibleImpl::SetCurrent(double current)
       nextIdx += (next > prev) ? 1 : -1;
 
       if(nextIdx < 0 || nextIdx >= static_cast<int>(marks.Count()))
+      {
         return false;
+      }
 
       next = marks[nextIdx].Get<float>();
     }
@@ -1477,13 +1479,15 @@ bool Slider::AccessibleImpl::SetCurrent(double current)
 
 double Slider::AccessibleImpl::GetMinimumIncrement()
 {
-  auto p = Toolkit::Slider::DownCast(Self());
+  auto self = Toolkit::Slider::DownCast(Self());
 
-  bool  hasMarks  = !p.GetProperty<Property::Array>(Toolkit::Slider::Property::MARKS).Empty();
-  float tolerance = p.GetProperty<float>(Toolkit::Slider::Property::MARK_TOLERANCE);
+  bool  hasMarks  = !self.GetProperty<Property::Array>(Toolkit::Slider::Property::MARKS).Empty();
+  float tolerance = self.GetProperty<float>(Toolkit::Slider::Property::MARK_TOLERANCE);
 
   if(!hasMarks || fabsf(tolerance) < 0.01)
+  {
     return 0.0; // let screen-reader choose the increment
+  }
 
   return Math::MACHINE_EPSILON_10000 + tolerance * (GetMaximum() - GetMinimum());
 }
index 56f43ff..72503a5 100644 (file)
@@ -1272,7 +1272,7 @@ DevelTextEditor::InputFilteredSignalType& TextEditor::InputFilteredSignal()
   return mInputFilteredSignal;
 }
 
-Text::ControllerPtr TextEditor::getController()
+Text::ControllerPtr TextEditor::GetTextController()
 {
   return mController;
 }
@@ -1813,11 +1813,11 @@ void TextEditor::TextDeleted(unsigned int position, unsigned int length, const s
   }
 }
 
-void TextEditor::CaretMoved(unsigned int position)
+void TextEditor::CursorMoved(unsigned int position)
 {
   if(Accessibility::IsUp())
   {
-    Control::Impl::GetAccessibilityObject(Self())->EmitTextCaretMoved(position);
+    Control::Impl::GetAccessibilityObject(Self())->EmitTextCursorMoved(position);
   }
 }
 
@@ -1949,6 +1949,18 @@ Uint32Pair TextEditor::GetTextSelectionRange() const
   return range;
 }
 
+void TextEditor::GetControlBackgroundColor(Vector4& color) const
+{
+  Property::Value propValue = Self().GetProperty(Toolkit::Control::Property::BACKGROUND);
+  Property::Map*  resultMap = propValue.GetMap();
+
+  Property::Value* colorValue = nullptr;
+  if(resultMap && (colorValue = resultMap->Find(ColorVisual::Property::MIX_COLOR)))
+  {
+    colorValue->Get(color);
+  }
+}
+
 void TextEditor::UpdateScrollBar()
 {
   using namespace Dali;
@@ -2189,61 +2201,63 @@ TextEditor::~TextEditor()
 
 std::string TextEditor::AccessibleImpl::GetName()
 {
-  auto slf = Toolkit::TextEditor::DownCast(Self());
-  return slf.GetProperty(Toolkit::TextEditor::Property::TEXT)
-    .Get<std::string>();
+  auto self = Toolkit::TextEditor::DownCast(Self());
+  return self.GetProperty(Toolkit::TextEditor::Property::TEXT).Get<std::string>();
 }
 
-std::string TextEditor::AccessibleImpl::GetText(size_t startOffset,
-                                                size_t endOffset)
+std::string TextEditor::AccessibleImpl::GetText(size_t startOffset, size_t endOffset)
 {
   if(endOffset <= startOffset)
+  {
     return {};
+  }
 
-  auto slf = Toolkit::TextEditor::DownCast(Self());
-  auto txt =
-    slf.GetProperty(Toolkit::TextEditor::Property::TEXT).Get<std::string>();
+  auto self = Toolkit::TextEditor::DownCast(Self());
+  auto text = self.GetProperty(Toolkit::TextEditor::Property::TEXT).Get<std::string>();
 
-  if(startOffset > txt.size() || endOffset > txt.size())
+  if(startOffset > text.size() || endOffset > text.size())
+  {
     return {};
+  }
 
-  return txt.substr(startOffset, endOffset - startOffset);
+  return text.substr(startOffset, endOffset - startOffset);
 }
 
 size_t TextEditor::AccessibleImpl::GetCharacterCount()
 {
-  auto slf = Toolkit::TextEditor::DownCast(Self());
-  auto txt =
-    slf.GetProperty(Toolkit::TextEditor::Property::TEXT).Get<std::string>();
+  auto self = Toolkit::TextEditor::DownCast(Self());
+  auto text = self.GetProperty(Toolkit::TextEditor::Property::TEXT).Get<std::string>();
 
-  return txt.size();
+  return text.size();
 }
 
-size_t TextEditor::AccessibleImpl::GetCaretOffset()
+size_t TextEditor::AccessibleImpl::GetCursorOffset()
 {
   auto slf = Toolkit::TextEditor::DownCast(Self());
-  return Dali::Toolkit::GetImpl(slf).getController()->GetCursorPosition();
+  return Dali::Toolkit::GetImpl(slf).GetTextController()->GetCursorPosition();
 }
 
-bool TextEditor::AccessibleImpl::SetCaretOffset(size_t offset)
+bool TextEditor::AccessibleImpl::SetCursorOffset(size_t offset)
 {
   auto slf = Toolkit::TextEditor::DownCast(Self());
   auto txt = slf.GetProperty(Toolkit::TextEditor::Property::TEXT).Get<std::string>();
   if(offset > txt.size())
+  {
     return false;
+  }
 
   auto& slfImpl = Dali::Toolkit::GetImpl(slf);
-  slfImpl.getController()->ResetCursorPosition(offset);
+  slfImpl.GetTextController()->ResetCursorPosition(offset);
   slfImpl.RequestTextRelayout();
+
   return true;
 }
 
-Dali::Accessibility::Range TextEditor::AccessibleImpl::GetTextAtOffset(
-  size_t offset, Dali::Accessibility::TextBoundary boundary)
+Dali::Accessibility::Range TextEditor::AccessibleImpl::GetTextAtOffset( size_t offset, Dali::Accessibility::TextBoundary boundary)
 {
-  auto slf      = Toolkit::TextEditor::DownCast(Self());
-  auto txt      = slf.GetProperty(Toolkit::TextEditor::Property::TEXT).Get<std::string>();
-  auto txt_size = txt.size();
+  auto self = Toolkit::TextEditor::DownCast(Self());
+  auto text = self.GetProperty(Toolkit::TextEditor::Property::TEXT).Get<std::string>();
+  auto textSize = text.size();
 
   auto range = Dali::Accessibility::Range{};
 
@@ -2251,62 +2265,78 @@ Dali::Accessibility::Range TextEditor::AccessibleImpl::GetTextAtOffset(
   {
     case Dali::Accessibility::TextBoundary::CHARACTER:
     {
-      if(offset < txt_size)
+      if(offset < textSize)
       {
-        range.content     = txt[offset];
+        range.content     = text[offset];
         range.startOffset = offset;
         range.endOffset   = offset + 1;
       }
+      break;
     }
-    break;
     case Dali::Accessibility::TextBoundary::WORD:
     case Dali::Accessibility::TextBoundary::LINE:
     {
-      auto txt_c_string = txt.c_str();
-      auto breaks       = std::vector<char>(txt_size, 0);
+      auto textString = text.c_str();
+      auto breaks = std::vector<char>(textSize, 0);
+
       if(boundary == Dali::Accessibility::TextBoundary::WORD)
-        Accessibility::Accessible::FindWordSeparationsUtf8((const utf8_t*)txt_c_string, txt_size, "", breaks.data());
+      {
+        Accessibility::Accessible::FindWordSeparationsUtf8(reinterpret_cast<const utf8_t*>(textString), textSize, "", breaks.data());
+      }
       else
-        Accessibility::Accessible::FindLineSeparationsUtf8((const utf8_t*)txt_c_string, txt_size, "", breaks.data());
+      {
+        Accessibility::Accessible::FindLineSeparationsUtf8(reinterpret_cast<const utf8_t*>(textString), textSize, "", breaks.data());
+      }
+
       auto index   = 0u;
       auto counter = 0u;
-      while(index < txt_size && counter <= offset)
+      while(index < textSize && counter <= offset)
       {
         auto start = index;
         if(breaks[index])
         {
           while(breaks[index])
+          {
             index++;
+          }
           counter++;
         }
         else
         {
           if(boundary == Dali::Accessibility::TextBoundary::WORD)
+          {
             index++;
+          }
           if(boundary == Dali::Accessibility::TextBoundary::LINE)
+          {
             counter++;
+          }
         }
+
         if((counter > 0) && ((counter - 1) == offset))
         {
-          range.content     = txt.substr(start, index - start + 1);
+          range.content     = text.substr(start, index - start + 1);
           range.startOffset = start;
           range.endOffset   = index + 1;
         }
+
         if(boundary == Dali::Accessibility::TextBoundary::LINE)
+        {
           index++;
+        }
       }
+      break;
     }
-    break;
     case Dali::Accessibility::TextBoundary::SENTENCE:
     {
-      /* not supported by efl */
+      /* not supported by default */
+      break;
     }
-    break;
     case Dali::Accessibility::TextBoundary::PARAGRAPH:
     {
       /* Paragraph is not supported by libunibreak library */
+      break;
     }
-    break;
     default:
       break;
   }
@@ -2314,87 +2344,90 @@ Dali::Accessibility::Range TextEditor::AccessibleImpl::GetTextAtOffset(
   return range;
 }
 
-Dali::Accessibility::Range
-TextEditor::AccessibleImpl::GetSelection(size_t selectionNum)
+Dali::Accessibility::Range TextEditor::AccessibleImpl::GetRangeOfSelection(size_t selectionIndex)
 {
   // Since DALi supports only one selection indexes higher than 0 are ignored
-  if(selectionNum > 0)
+  if(selectionIndex > 0)
+  {
     return {};
+  }
 
-  auto        slf  = Toolkit::TextEditor::DownCast(Self());
-  auto        ctrl = Dali::Toolkit::GetImpl(slf).getController();
-  std::string ret;
-  ctrl->RetrieveSelection(ret);
-  auto r = ctrl->GetSelectionIndexes();
+  auto self  = Toolkit::TextEditor::DownCast(Self());
+  auto controller = Dali::Toolkit::GetImpl(self).GetTextController();
+  std::string value{};
+  controller->RetrieveSelection(value);
+  auto indices = controller->GetSelectionIndexes();
 
-  return {static_cast<size_t>(r.first), static_cast<size_t>(r.second), ret};
+  return {static_cast<size_t>(indices.first), static_cast<size_t>(indices.second), value};
 }
 
-bool TextEditor::AccessibleImpl::RemoveSelection(size_t selectionNum)
+bool TextEditor::AccessibleImpl::RemoveSelection(size_t selectionIndex)
 {
   // Since DALi supports only one selection indexes higher than 0 are ignored
-  if(selectionNum > 0)
+  if(selectionIndex > 0)
+  {
     return false;
+  }
 
-  auto slf = Toolkit::TextEditor::DownCast(Self());
-  Dali::Toolkit::GetImpl(slf).getController()->SetSelection(0, 0);
+  auto self = Toolkit::TextEditor::DownCast(Self());
+  Dali::Toolkit::GetImpl(self).GetTextController()->SetSelection(0, 0);
   return true;
 }
 
-bool TextEditor::AccessibleImpl::SetSelection(size_t selectionNum,
-                                              size_t startOffset,
-                                              size_t endOffset)
+bool TextEditor::AccessibleImpl::SetRangeOfSelection(size_t selectionIndex, size_t startOffset, size_t endOffset)
 {
   // Since DALi supports only one selection indexes higher than 0 are ignored
-  if(selectionNum > 0)
+  if(selectionIndex > 0)
+  {
     return false;
+  }
 
-  auto slf = Toolkit::TextEditor::DownCast(Self());
-  Dali::Toolkit::GetImpl(slf).getController()->SetSelection(startOffset,
-                                                            endOffset);
+  auto self = Toolkit::TextEditor::DownCast(Self());
+  Dali::Toolkit::GetImpl(self).GetTextController()->SetSelection(startOffset, endOffset);
   return true;
 }
 
-bool TextEditor::AccessibleImpl::CopyText(size_t startPosition,
-                                          size_t endPosition)
+bool TextEditor::AccessibleImpl::CopyText(size_t startPosition, size_t endPosition)
 {
   if(endPosition <= startPosition)
+  {
     return false;
+  }
 
-  auto slf = Toolkit::TextEditor::DownCast(Self());
-  auto txt = slf.GetProperty(Toolkit::TextEditor::Property::TEXT).Get<std::string>();
-  Dali::Toolkit::GetImpl(slf).getController()->CopyStringToClipboard(txt.substr(startPosition, endPosition - startPosition));
+  auto self = Toolkit::TextEditor::DownCast(Self());
+  auto text = self.GetProperty(Toolkit::TextEditor::Property::TEXT).Get<std::string>();
+  Dali::Toolkit::GetImpl(self).GetTextController()->CopyStringToClipboard(text.substr(startPosition, endPosition - startPosition));
 
   return true;
 }
 
-bool TextEditor::AccessibleImpl::CutText(size_t startPosition,
-                                         size_t endPosition)
+bool TextEditor::AccessibleImpl::CutText(size_t startPosition, size_t endPosition)
 {
   if(endPosition <= startPosition)
+  {
     return false;
+  }
 
-  auto slf = Toolkit::TextEditor::DownCast(Self());
-  auto txt = slf.GetProperty(Toolkit::TextEditor::Property::TEXT).Get<std::string>();
-  Dali::Toolkit::GetImpl(slf).getController()->CopyStringToClipboard(txt.substr(startPosition, endPosition - startPosition));
+  auto self = Toolkit::TextEditor::DownCast(Self());
+  auto text = self.GetProperty(Toolkit::TextEditor::Property::TEXT).Get<std::string>();
+  Dali::Toolkit::GetImpl(self).GetTextController()->CopyStringToClipboard(text.substr(startPosition, endPosition - startPosition));
 
-  slf.SetProperty(Toolkit::TextEditor::Property::TEXT,
-                  txt.substr(0, startPosition) + txt.substr(endPosition));
+  self.SetProperty(Toolkit::TextEditor::Property::TEXT, text.substr(0, startPosition) + text.substr(endPosition));
 
   return true;
 }
 
-bool TextEditor::AccessibleImpl::DeleteText(size_t startPosition,
-                                            size_t endPosition)
+bool TextEditor::AccessibleImpl::DeleteText(size_t startPosition, size_t endPosition)
 {
   if(endPosition <= startPosition)
+  {
     return false;
+  }
 
-  auto slf = Toolkit::TextEditor::DownCast(Self());
-  auto txt = slf.GetProperty(Toolkit::TextEditor::Property::TEXT).Get<std::string>();
+  auto self = Toolkit::TextEditor::DownCast(Self());
+  auto text = self.GetProperty(Toolkit::TextEditor::Property::TEXT).Get<std::string>();
 
-  slf.SetProperty(Toolkit::TextEditor::Property::TEXT,
-                  txt.substr(0, startPosition) + txt.substr(endPosition));
+  self.SetProperty(Toolkit::TextEditor::Property::TEXT, text.substr(0, startPosition) + text.substr(endPosition));
 
   return true;
 }
@@ -2403,12 +2436,12 @@ Dali::Accessibility::States TextEditor::AccessibleImpl::CalculateStates()
 {
   using namespace Dali::Accessibility;
 
-  auto states              = DevelControl::AccessibleImpl::CalculateStates();
+  auto states = DevelControl::AccessibleImpl::CalculateStates();
   states[State::EDITABLE]  = true;
   states[State::FOCUSABLE] = true;
 
   Toolkit::Control focusControl = Toolkit::KeyInputFocusManager::Get().GetCurrentFocusControl();
-  if(self == focusControl)
+  if(mSelf == focusControl)
   {
     states[State::FOCUSED] = true;
   }
@@ -2416,23 +2449,22 @@ Dali::Accessibility::States TextEditor::AccessibleImpl::CalculateStates()
   return states;
 }
 
-bool TextEditor::AccessibleImpl::InsertText(size_t      startPosition,
-                                            std::string text)
+bool TextEditor::AccessibleImpl::InsertText(size_t startPosition, std::string text)
 {
-  auto slf = Toolkit::TextEditor::DownCast(Self());
-  auto txt = slf.GetProperty(Toolkit::TextEditor::Property::TEXT).Get<std::string>();
+  auto self = Toolkit::TextEditor::DownCast(Self());
+  auto insertedText = self.GetProperty(Toolkit::TextEditor::Property::TEXT).Get<std::string>();
 
-  txt.insert(startPosition, text);
+  insertedText.insert(startPosition, text);
 
-  slf.SetProperty(Toolkit::TextEditor::Property::TEXT, std::move(txt));
+  self.SetProperty(Toolkit::TextEditor::Property::TEXT, std::move(insertedText));
 
   return true;
 }
 
 bool TextEditor::AccessibleImpl::SetTextContents(std::string newContents)
 {
-  auto slf = Toolkit::TextEditor::DownCast(Self());
-  slf.SetProperty(Toolkit::TextEditor::Property::TEXT, std::move(newContents));
+  auto self = Toolkit::TextEditor::DownCast(Self());
+  self.SetProperty(Toolkit::TextEditor::Property::TEXT, std::move(newContents));
   return true;
 }
 
index 424cda5..6947faa 100644 (file)
@@ -109,6 +109,13 @@ public:
   static bool DoConnectSignal(BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor);
 
   /**
+   * @brief Gets text controller
+   *
+   * @return The text controller
+   */
+  Text::ControllerPtr GetTextController();
+
+  /**
    * @copydoc TextEditor::TextChangedSignal()
    */
   Toolkit::TextEditor::TextChangedSignalType& TextChangedSignal();
@@ -209,9 +216,9 @@ private: // From Control
   void TextDeleted(unsigned int position, unsigned int length, const std::string& content) override;
 
   /**
-   * @copydoc Text::EditableControlInterface::CaretMoved()
+   * @copydoc Text::EditableControlInterface::CursorMoved()
    */
-  void CaretMoved(unsigned int position) override;
+  void CursorMoved(unsigned int position) override;
 
   /**
    * @copydoc Text::EditableControlInterface::TextChanged()
@@ -238,6 +245,11 @@ private: // From Control
    */
   void InputFiltered(Toolkit::InputFilter::Property::Type type) override;
 
+  /**
+   * @copydoc Text::EditableControlInterface::GetControlBackgroundColor()
+   */
+  void GetControlBackgroundColor(Vector4& color) const override;
+
   // From SelectableControlInterface
 public:
   /**
@@ -301,8 +313,6 @@ public:
    */
   void AnchorClicked(const std::string& href) override;
 
-  Text::ControllerPtr getController();
-
 private: // Implementation
   /**
    * @copydoc Dali::Toolkit::Text::Controller::(InputMethodContext& inputMethodContext, const InputMethodContext::EventData& inputMethodContextEvent)
@@ -437,27 +447,89 @@ private: // Data
   bool  mScrollStarted : 1;
   bool  mTextChanged : 1; ///< If true, emits TextChangedSignal in next OnRelayout().
 
+  /**
+   * @brief This structure is to connect TextEditor with Accessible functions.
+   */
   struct AccessibleImpl : public DevelControl::AccessibleImpl,
                           public virtual Dali::Accessibility::Text,
                           public virtual Dali::Accessibility::EditableText
   {
     using DevelControl::AccessibleImpl::AccessibleImpl;
 
-    std::string           GetName() override;
-    std::string           GetText(size_t startOffset, size_t endOffset) override;
-    size_t                GetCharacterCount() override;
-    size_t                GetCaretOffset() override;
-    bool                  SetCaretOffset(size_t offset) override;
-    Accessibility::Range  GetTextAtOffset(size_t offset, Accessibility::TextBoundary boundary) override;
-    Accessibility::Range  GetSelection(size_t selectionNum) override;
-    bool                  RemoveSelection(size_t selectionNum) override;
-    bool                  SetSelection(size_t selectionNum, size_t startOffset, size_t endOffset) override;
-    bool                  CopyText(size_t startPosition, size_t endPosition) override;
-    bool                  CutText(size_t startPosition, size_t endPosition) override;
+    /**
+     * @copydoc Dali::Accessibility::Accessible::GetName()
+     */
+    std::string GetName() override;
+
+    /**
+     * @copydoc Dali::Accessibility::Text::GetText()
+     */
+    std::string GetText(size_t startOffset, size_t endOffset) override;
+
+    /**
+     * @copydoc Dali::Accessibility::Text::GetCharacterCount()
+     */
+    size_t GetCharacterCount() override;
+
+    /**
+     * @copydoc Dali::Accessibility::Text::GetCursorOffset()
+     */
+    size_t GetCursorOffset() override;
+
+    /**
+     * @copydoc Dali::Accessibility::Text::SetCursorOffset()
+     */
+    bool SetCursorOffset(size_t offset) override;
+
+    /**
+     * @copydoc Dali::Accessibility::Text::GetTextAtOffset()
+     */
+    Accessibility::Range GetTextAtOffset(size_t offset, Accessibility::TextBoundary boundary) override;
+
+    /**
+     * @copydoc Dali::Accessibility::Text::GetRangeOfSelection()
+     */
+    Accessibility::Range GetRangeOfSelection(size_t selectionIndex) override;
+
+    /**
+     * @copydoc Dali::Accessibility::Text::RemoveSelection()
+     */
+    bool RemoveSelection(size_t selectionIndex) override;
+
+    /**
+     * @copydoc Dali::Accessibility::Text::SetRangeOfSelection()
+     */
+    bool SetRangeOfSelection(size_t selectionIndex, size_t startOffset, size_t endOffset) override;
+
+    /**
+     * @copydoc Dali::Accessibility::EditableText::CopyText()
+     */
+    bool CopyText(size_t startPosition, size_t endPosition) override;
+
+    /**
+     * @copydoc Dali::Accessibility::EditableText::CutText()
+     */
+    bool CutText(size_t startPosition, size_t endPosition) override;
+
+    /**
+     * @copydoc Dali::Accessibility::Accessible::GetStates()
+     */
     Accessibility::States CalculateStates() override;
-    bool                  InsertText(size_t startPosition, std::string text) override;
-    bool                  SetTextContents(std::string newContents) override;
-    bool                  DeleteText(size_t startPosition, size_t endPosition) override;
+
+    /**
+     * @copydoc Dali::Accessibility::EditableText::InsertText()
+     */
+    bool InsertText(size_t startPosition, std::string text) override;
+
+    /**
+     * @copydoc Dali::Accessibility::EditableText::SetTextContents()
+     */
+    bool SetTextContents(std::string newContents) override;
+
+    /**
+     * @copydoc Dali::Accessibility::EditableText::DeleteText()
+     */
+    bool DeleteText(size_t startPosition, size_t endPosition) override;
   };
 };
 
index dbf5624..b1a85c7 100644 (file)
@@ -1485,7 +1485,7 @@ void TextField::OnRelayout(const Vector2& size, RelayoutContainer& container)
   }
 }
 
-Text::ControllerPtr TextField::getController()
+Text::ControllerPtr TextField::GetTextController()
 {
   return mController;
 }
@@ -1746,11 +1746,11 @@ void TextField::TextDeleted(unsigned int position, unsigned int length, const st
   }
 }
 
-void TextField::CaretMoved(unsigned int position)
+void TextField::CursorMoved(unsigned int position)
 {
   if(Accessibility::IsUp())
   {
-    Control::Impl::GetAccessibilityObject(Self())->EmitTextCaretMoved(position);
+    Control::Impl::GetAccessibilityObject(Self())->EmitTextCursorMoved(position);
   }
 }
 
@@ -1859,6 +1859,18 @@ void TextField::AddDecoration(Actor& actor, bool needsClipping)
   }
 }
 
+void TextField::GetControlBackgroundColor(Vector4& color) const
+{
+  Property::Value propValue = Self().GetProperty(Toolkit::Control::Property::BACKGROUND);
+  Property::Map*  resultMap = propValue.GetMap();
+
+  Property::Value* colorValue = nullptr;
+  if(resultMap && (colorValue = resultMap->Find(ColorVisual::Property::MIX_COLOR)))
+  {
+    colorValue->Get(color);
+  }
+}
+
 void TextField::OnSceneConnect(Dali::Actor actor)
 {
   if(mHasBeenStaged)
@@ -1976,60 +1988,64 @@ TextField::~TextField()
 
 std::string TextField::AccessibleImpl::GetName()
 {
-  auto slf = Toolkit::TextField::DownCast(Self());
-  return slf.GetProperty(Toolkit::TextField::Property::TEXT).Get<std::string>();
+  auto self = Toolkit::TextField::DownCast(Self());
+  return self.GetProperty(Toolkit::TextField::Property::TEXT).Get<std::string>();
 }
 
-std::string TextField::AccessibleImpl::GetText(size_t startOffset,
-                                               size_t endOffset)
+std::string TextField::AccessibleImpl::GetText(size_t startOffset, size_t endOffset)
 {
   if(endOffset <= startOffset)
+  {
     return {};
+  }
 
-  auto slf = Toolkit::TextField::DownCast(Self());
-  auto txt =
-    slf.GetProperty(Toolkit::TextField::Property::TEXT).Get<std::string>();
+  auto self = Toolkit::TextField::DownCast(Self());
+  auto text = self.GetProperty(Toolkit::TextField::Property::TEXT).Get<std::string>();
 
-  if(startOffset > txt.size() || endOffset > txt.size())
+  if(startOffset > text.size() || endOffset > text.size())
+  {
     return {};
+  }
 
-  return txt.substr(startOffset, endOffset - startOffset);
+  return text.substr(startOffset, endOffset - startOffset);
 }
 
 size_t TextField::AccessibleImpl::GetCharacterCount()
 {
-  auto slf = Toolkit::TextField::DownCast(Self());
-  auto txt =
-    slf.GetProperty(Toolkit::TextField::Property::TEXT).Get<std::string>();
+  auto self = Toolkit::TextField::DownCast(Self());
+  auto text = self.GetProperty(Toolkit::TextField::Property::TEXT).Get<std::string>();
 
-  return txt.size();
+  return text.size();
 }
 
-size_t TextField::AccessibleImpl::GetCaretOffset()
+size_t TextField::AccessibleImpl::GetCursorOffset()
 {
-  auto slf = Toolkit::TextField::DownCast(Self());
-  return Dali::Toolkit::GetImpl(slf).getController()->GetCursorPosition();
+  auto self = Toolkit::TextField::DownCast(Self());
+  return Dali::Toolkit::GetImpl(self).GetTextController()->GetCursorPosition();
 }
 
-bool TextField::AccessibleImpl::SetCaretOffset(size_t offset)
+bool TextField::AccessibleImpl::SetCursorOffset(size_t offset)
 {
-  auto slf = Toolkit::TextField::DownCast(Self());
-  auto txt = slf.GetProperty(Toolkit::TextField::Property::TEXT).Get<std::string>();
-  if(offset > txt.size())
+  auto self = Toolkit::TextField::DownCast(Self());
+  auto text = self.GetProperty(Toolkit::TextField::Property::TEXT).Get<std::string>();
+  if(offset > text.size())
+  {
     return false;
+  }
+
+  auto& selfImpl = Dali::Toolkit::GetImpl(self);
+  selfImpl.GetTextController()->ResetCursorPosition(offset);
+  selfImpl.RequestTextRelayout();
 
-  auto& slfImpl = Dali::Toolkit::GetImpl(slf);
-  slfImpl.getController()->ResetCursorPosition(offset);
-  slfImpl.RequestTextRelayout();
   return true;
 }
 
 Dali::Accessibility::Range TextField::AccessibleImpl::GetTextAtOffset(
   size_t offset, Dali::Accessibility::TextBoundary boundary)
 {
-  auto slf      = Toolkit::TextField::DownCast(Self());
-  auto txt      = slf.GetProperty(Toolkit::TextField::Property::TEXT).Get<std::string>();
-  auto txt_size = txt.size();
+  auto self = Toolkit::TextField::DownCast(Self());
+  auto text = self.GetProperty(Toolkit::TextField::Property::TEXT).Get<std::string>();
+  auto textSize = text.size();
 
   auto range = Dali::Accessibility::Range{};
 
@@ -2037,62 +2053,78 @@ Dali::Accessibility::Range TextField::AccessibleImpl::GetTextAtOffset(
   {
     case Dali::Accessibility::TextBoundary::CHARACTER:
     {
-      if(offset < txt_size)
+      if(offset < textSize)
       {
-        range.content     = txt[offset];
+        range.content     = text[offset];
         range.startOffset = offset;
         range.endOffset   = offset + 1;
       }
+      break;
     }
-    break;
     case Dali::Accessibility::TextBoundary::WORD:
     case Dali::Accessibility::TextBoundary::LINE:
     {
-      auto txt_c_string = txt.c_str();
-      auto breaks       = std::vector<char>(txt_size, 0);
+      auto textString = text.c_str();
+      auto breaks = std::vector<char>(textSize, 0);
+
       if(boundary == Dali::Accessibility::TextBoundary::WORD)
-        Accessibility::Accessible::FindWordSeparationsUtf8((const utf8_t*)txt_c_string, txt_size, "", breaks.data());
+      {
+        Accessibility::Accessible::FindWordSeparationsUtf8(reinterpret_cast<const utf8_t*>(textString), textSize, "", breaks.data());
+      }
       else
-        Accessibility::Accessible::FindLineSeparationsUtf8((const utf8_t*)txt_c_string, txt_size, "", breaks.data());
+      {
+        Accessibility::Accessible::FindLineSeparationsUtf8(reinterpret_cast<const utf8_t*>(textString), textSize, "", breaks.data());
+      }
+
       auto index   = 0u;
       auto counter = 0u;
-      while(index < txt_size && counter <= offset)
+      while(index < textSize && counter <= offset)
       {
         auto start = index;
         if(breaks[index])
         {
           while(breaks[index])
+          {
             index++;
+          }
           counter++;
         }
         else
         {
           if(boundary == Dali::Accessibility::TextBoundary::WORD)
+          {
             index++;
+          }
           if(boundary == Dali::Accessibility::TextBoundary::LINE)
+          {
             counter++;
+          }
         }
+
         if((counter > 0) && ((counter - 1) == offset))
         {
-          range.content     = txt.substr(start, index - start + 1);
+          range.content     = text.substr(start, index - start + 1);
           range.startOffset = start;
           range.endOffset   = index + 1;
         }
+
         if(boundary == Dali::Accessibility::TextBoundary::LINE)
+        {
           index++;
+        }
       }
+      break;
     }
-    break;
     case Dali::Accessibility::TextBoundary::SENTENCE:
     {
-      /* not supported by efl */
+      /* not supported by default */
+      break;
     }
-    break;
     case Dali::Accessibility::TextBoundary::PARAGRAPH:
     {
       /* Paragraph is not supported by libunibreak library */
+      break;
     }
-    break;
     default:
       break;
   }
@@ -2100,87 +2132,90 @@ Dali::Accessibility::Range TextField::AccessibleImpl::GetTextAtOffset(
   return range;
 }
 
-Dali::Accessibility::Range
-TextField::AccessibleImpl::GetSelection(size_t selectionNum)
+Dali::Accessibility::Range TextField::AccessibleImpl::GetRangeOfSelection(size_t selectionIndex)
 {
   // Since DALi supports only one selection indexes higher than 0 are ignored
-  if(selectionNum > 0)
+  if(selectionIndex > 0)
+  {
     return {};
+  }
 
-  auto        slf  = Toolkit::TextField::DownCast(Self());
-  auto        ctrl = Dali::Toolkit::GetImpl(slf).getController();
-  std::string ret;
-  ctrl->RetrieveSelection(ret);
-  auto r = ctrl->GetSelectionIndexes();
+  auto self  = Toolkit::TextField::DownCast(Self());
+  auto controller = Dali::Toolkit::GetImpl(self).GetTextController();
+  std::string value{};
+  controller->RetrieveSelection(value);
+  auto indices = controller->GetSelectionIndexes();
 
-  return {static_cast<size_t>(r.first), static_cast<size_t>(r.second), ret};
+  return {static_cast<size_t>(indices.first), static_cast<size_t>(indices.second), value};
 }
 
-bool TextField::AccessibleImpl::RemoveSelection(size_t selectionNum)
+bool TextField::AccessibleImpl::RemoveSelection(size_t selectionIndex)
 {
   // Since DALi supports only one selection indexes higher than 0 are ignored
-  if(selectionNum > 0)
+  if(selectionIndex > 0)
+  {
     return false;
+  }
 
-  auto slf = Toolkit::TextField::DownCast(Self());
-  Dali::Toolkit::GetImpl(slf).getController()->SetSelection(0, 0);
+  auto self = Toolkit::TextField::DownCast(Self());
+  Dali::Toolkit::GetImpl(self).GetTextController()->SetSelection(0, 0);
   return true;
 }
 
-bool TextField::AccessibleImpl::SetSelection(size_t selectionNum,
-                                             size_t startOffset,
-                                             size_t endOffset)
+bool TextField::AccessibleImpl::SetRangeOfSelection(size_t selectionIndex, size_t startOffset, size_t endOffset)
 {
   // Since DALi supports only one selection indexes higher than 0 are ignored
-  if(selectionNum > 0)
+  if(selectionIndex > 0)
+  {
     return false;
+  }
 
-  auto slf = Toolkit::TextField::DownCast(Self());
-  Dali::Toolkit::GetImpl(slf).getController()->SetSelection(startOffset,
-                                                            endOffset);
+  auto self = Toolkit::TextField::DownCast(Self());
+  Dali::Toolkit::GetImpl(self).GetTextController()->SetSelection(startOffset, endOffset);
   return true;
 }
 
-bool TextField::AccessibleImpl::CopyText(size_t startPosition,
-                                         size_t endPosition)
+bool TextField::AccessibleImpl::CopyText(size_t startPosition, size_t endPosition)
 {
   if(endPosition <= startPosition)
+  {
     return false;
+  }
 
-  auto slf = Toolkit::TextField::DownCast(Self());
-  auto txt = slf.GetProperty(Toolkit::TextField::Property::TEXT).Get<std::string>();
-  Dali::Toolkit::GetImpl(slf).getController()->CopyStringToClipboard(txt.substr(startPosition, endPosition - startPosition));
+  auto self = Toolkit::TextField::DownCast(Self());
+  auto text = self.GetProperty(Toolkit::TextField::Property::TEXT).Get<std::string>();
+  Dali::Toolkit::GetImpl(self).GetTextController()->CopyStringToClipboard(text.substr(startPosition, endPosition - startPosition));
 
   return true;
 }
 
-bool TextField::AccessibleImpl::CutText(size_t startPosition,
-                                        size_t endPosition)
+bool TextField::AccessibleImpl::CutText(size_t startPosition, size_t endPosition)
 {
   if(endPosition <= startPosition)
+  {
     return false;
+  }
 
-  auto slf = Toolkit::TextField::DownCast(Self());
-  auto txt = slf.GetProperty(Toolkit::TextField::Property::TEXT).Get<std::string>();
-  Dali::Toolkit::GetImpl(slf).getController()->CopyStringToClipboard(txt.substr(startPosition, endPosition - startPosition));
+  auto self = Toolkit::TextField::DownCast(Self());
+  auto text = self.GetProperty(Toolkit::TextField::Property::TEXT).Get<std::string>();
+  Dali::Toolkit::GetImpl(self).GetTextController()->CopyStringToClipboard(text.substr(startPosition, endPosition - startPosition));
 
-  slf.SetProperty(Toolkit::TextField::Property::TEXT,
-                  txt.substr(0, startPosition) + txt.substr(endPosition));
+  self.SetProperty(Toolkit::TextField::Property::TEXT, text.substr(0, startPosition) + text.substr(endPosition));
 
   return true;
 }
 
-bool TextField::AccessibleImpl::DeleteText(size_t startPosition,
-                                           size_t endPosition)
+bool TextField::AccessibleImpl::DeleteText(size_t startPosition, size_t endPosition)
 {
   if(endPosition <= startPosition)
+  {
     return false;
+  }
 
-  auto slf = Toolkit::TextField::DownCast(Self());
-  auto txt = slf.GetProperty(Toolkit::TextField::Property::TEXT).Get<std::string>();
+  auto self = Toolkit::TextField::DownCast(Self());
+  auto text = self.GetProperty(Toolkit::TextField::Property::TEXT).Get<std::string>();
 
-  slf.SetProperty(Toolkit::TextField::Property::TEXT,
-                  txt.substr(0, startPosition) + txt.substr(endPosition));
+  self.SetProperty(Toolkit::TextField::Property::TEXT, text.substr(0, startPosition) + text.substr(endPosition));
 
   return true;
 }
@@ -2195,7 +2230,7 @@ Dali::Accessibility::States TextField::AccessibleImpl::CalculateStates()
   states[State::FOCUSABLE] = true;
 
   Toolkit::Control focusControl = Toolkit::KeyInputFocusManager::Get().GetCurrentFocusControl();
-  if(self == focusControl)
+  if(mSelf == focusControl)
   {
     states[State::FOCUSED] = true;
   }
@@ -2203,23 +2238,22 @@ Dali::Accessibility::States TextField::AccessibleImpl::CalculateStates()
   return states;
 }
 
-bool TextField::AccessibleImpl::InsertText(size_t startPosition,
-                                            std::string text)
+bool TextField::AccessibleImpl::InsertText(size_t startPosition, std::string text)
 {
-  auto slf = Toolkit::TextField::DownCast(Self());
-  auto txt = slf.GetProperty(Toolkit::TextField::Property::TEXT).Get<std::string>();
+  auto self = Toolkit::TextField::DownCast(Self());
+  auto insertedText = self.GetProperty(Toolkit::TextField::Property::TEXT).Get<std::string>();
 
-  txt.insert(startPosition, text);
+  insertedText.insert(startPosition, text);
 
-  slf.SetProperty(Toolkit::TextField::Property::TEXT, std::move(txt));
+  self.SetProperty(Toolkit::TextField::Property::TEXT, std::move(insertedText));
 
   return true;
 }
 
 bool TextField::AccessibleImpl::SetTextContents(std::string newContents)
 {
-  auto slf = Toolkit::TextField::DownCast(Self());
-  slf.SetProperty(Toolkit::TextField::Property::TEXT, std::move(newContents));
+  auto self = Toolkit::TextField::DownCast(Self());
+  self.SetProperty(Toolkit::TextField::Property::TEXT, std::move(newContents));
   return true;
 }
 
index d1a2671..349ac26 100644 (file)
@@ -90,6 +90,13 @@ public:
   static bool DoConnectSignal(BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor);
 
   /**
+   * @brief Gets text controller
+   *
+   * @return The text controller
+   */
+  Text::ControllerPtr GetTextController();
+
+  /**
    * @copydoc TextField::TextChangedSignal()
    */
   Toolkit::TextField::TextChangedSignalType& TextChangedSignal();
@@ -114,8 +121,6 @@ public:
    */
   DevelTextField::InputFilteredSignalType& InputFilteredSignal();
 
-  Text::ControllerPtr getController();
-
 private: // From Control
   /**
    * @copydoc Control::OnInitialize()
@@ -202,9 +207,9 @@ private: // From Control
   void TextDeleted(unsigned int position, unsigned int length, const std::string& content) override;
 
   /**
-   * @copydoc Text::EditableControlInterface::CaretMoved()
+   * @copydoc Text::EditableControlInterface::CursorMoved()
    */
-  void CaretMoved(unsigned int position) override;
+  void CursorMoved(unsigned int position) override;
 
   /**
    * @copydoc Text::EditableControlInterface::TextChanged()
@@ -231,6 +236,11 @@ private: // From Control
    */
   void InputFiltered(Toolkit::InputFilter::Property::Type type) override;
 
+  /**
+   * @copydoc Text::EditableControlInterface::GetControlBackgroundColor()
+   */
+  void GetControlBackgroundColor(Vector4& color) const override;
+
   // From SelectableControlInterface
 public:
   /**
@@ -357,12 +367,6 @@ private: // Implementation
   // Connection needed to re-render text, when a Text Field returns to the scene.
   void OnSceneConnect(Dali::Actor actor);
 
-public: // For UTC only
-  Text::ControllerPtr GetTextController()
-  {
-    return mController;
-  }
-
 private: // Data
   // Signals
   Toolkit::TextField::TextChangedSignalType        mTextChangedSignal;
@@ -391,27 +395,89 @@ private: // Data
   bool  mTextChanged : 1; ///< If true, emits TextChangedSignal in next OnRelayout().
 
 protected:
+  /**
+   * @brief This structure is to connect TextField with Accessible functions.
+   */
   struct AccessibleImpl : public DevelControl::AccessibleImpl,
                           public virtual Dali::Accessibility::Text,
                           public virtual Dali::Accessibility::EditableText
   {
     using DevelControl::AccessibleImpl::AccessibleImpl;
 
-    std::string           GetName() override;
-    std::string           GetText(size_t startOffset, size_t endOffset) override;
-    size_t                GetCharacterCount() override;
-    size_t                GetCaretOffset() override;
-    bool                  SetCaretOffset(size_t offset) override;
-    Accessibility::Range  GetTextAtOffset(size_t offset, Accessibility::TextBoundary boundary) override;
-    Accessibility::Range  GetSelection(size_t selectionNum) override;
-    bool                  RemoveSelection(size_t selectionNum) override;
-    bool                  SetSelection(size_t selectionNum, size_t startOffset, size_t endOffset) override;
-    bool                  CopyText(size_t startPosition, size_t endPosition) override;
-    bool                  CutText(size_t startPosition, size_t endPosition) override;
+    /**
+     * @copydoc Dali::Accessibility::Accessible::GetName()
+     */
+    std::string GetName() override;
+
+    /**
+     * @copydoc Dali::Accessibility::Text::GetText()
+     */
+    std::string GetText(size_t startOffset, size_t endOffset) override;
+
+    /**
+     * @copydoc Dali::Accessibility::Text::GetCharacterCount()
+     */
+    size_t GetCharacterCount() override;
+
+    /**
+     * @copydoc Dali::Accessibility::Text::GetCursorOffset()
+     */
+    size_t GetCursorOffset() override;
+
+    /**
+     * @copydoc Dali::Accessibility::Text::SetCursorOffset()
+     */
+    bool SetCursorOffset(size_t offset) override;
+
+    /**
+     * @copydoc Dali::Accessibility::Text::GetTextAtOffset()
+     */
+    Accessibility::Range GetTextAtOffset(size_t offset, Accessibility::TextBoundary boundary) override;
+
+    /**
+     * @copydoc Dali::Accessibility::Text::GetRangeOfSelection()
+     */
+    Accessibility::Range GetRangeOfSelection(size_t selectionIndex) override;
+
+    /**
+     * @copydoc Dali::Accessibility::Text::RemoveSelection()
+     */
+    bool RemoveSelection(size_t selectionIndex) override;
+
+    /**
+     * @copydoc Dali::Accessibility::Text::SetRangeOfSelection()
+     */
+    bool SetRangeOfSelection(size_t selectionIndex, size_t startOffset, size_t endOffset) override;
+
+    /**
+     * @copydoc Dali::Accessibility::EditableText::CopyText()
+     */
+    bool CopyText(size_t startPosition, size_t endPosition) override;
+
+    /**
+     * @copydoc Dali::Accessibility::EditableText::CutText()
+     */
+    bool CutText(size_t startPosition, size_t endPosition) override;
+
+    /**
+     * @copydoc Dali::Accessibility::Accessible::GetStates()
+     */
     Accessibility::States CalculateStates() override;
-    bool                  InsertText(size_t startPosition, std::string text) override;
-    bool                  SetTextContents(std::string newContents) override;
-    bool                  DeleteText(size_t startPosition, size_t endPosition) override;
+
+    /**
+     * @copydoc Dali::Accessibility::EditableText::InsertText()
+     */
+    bool InsertText(size_t startPosition, std::string text) override;
+
+    /**
+     * @copydoc Dali::Accessibility::EditableText::SetTextContents()
+     */
+    bool SetTextContents(std::string newContents) override;
+
+    /**
+     * @copydoc Dali::Accessibility::EditableText::DeleteText()
+     */
+    bool DeleteText(size_t startPosition, size_t endPosition) override;
   };
 };
 
index 52f9c29..e4ba0ad 100644 (file)
@@ -495,7 +495,7 @@ void TextLabel::SetProperty(BaseObject* object, Property::Index index, const Pro
   }
 }
 
-Text::ControllerPtr TextLabel::getController()
+Text::ControllerPtr TextLabel::GetTextController()
 {
   return mController;
 }
@@ -1061,8 +1061,8 @@ TextLabel::~TextLabel()
 
 std::string TextLabel::AccessibleImpl::GetNameRaw()
 {
-  auto slf = Toolkit::TextLabel::DownCast(Self());
-  return slf.GetProperty(Toolkit::TextLabel::Property::TEXT).Get<std::string>();
+  auto self = Toolkit::TextLabel::DownCast(Self());
+  return self.GetProperty(Toolkit::TextLabel::Property::TEXT).Get<std::string>();
 }
 
 Property::Index TextLabel::AccessibleImpl::GetNamePropertyIndex()
@@ -1070,47 +1070,47 @@ Property::Index TextLabel::AccessibleImpl::GetNamePropertyIndex()
   return Toolkit::TextLabel::Property::TEXT;
 }
 
-std::string TextLabel::AccessibleImpl::GetText(size_t startOffset,
-                                               size_t endOffset)
+std::string TextLabel::AccessibleImpl::GetText(size_t startOffset, size_t endOffset)
 {
   if(endOffset <= startOffset)
+  {
     return {};
+  }
 
-  auto slf = Toolkit::TextLabel::DownCast(Self());
-  auto txt =
-    slf.GetProperty(Toolkit::TextLabel::Property::TEXT).Get<std::string>();
+  auto self = Toolkit::TextLabel::DownCast(Self());
+  auto text = self.GetProperty(Toolkit::TextLabel::Property::TEXT).Get<std::string>();
 
-  if(startOffset > txt.size() || endOffset > txt.size())
+  if(startOffset > text.size() || endOffset > text.size())
+  {
     return {};
+  }
 
-  return txt.substr(startOffset, endOffset - startOffset);
+  return text.substr(startOffset, endOffset - startOffset);
 }
 
 size_t TextLabel::AccessibleImpl::GetCharacterCount()
 {
-  auto slf = Toolkit::TextLabel::DownCast(Self());
-  auto txt =
-    slf.GetProperty(Toolkit::TextLabel::Property::TEXT).Get<std::string>();
+  auto self = Toolkit::TextLabel::DownCast(Self());
+  auto text = self.GetProperty(Toolkit::TextLabel::Property::TEXT).Get<std::string>();
 
-  return txt.size();
+  return text.size();
 }
 
-size_t TextLabel::AccessibleImpl::GetCaretOffset()
+size_t TextLabel::AccessibleImpl::GetCursorOffset()
 {
   return {};
 }
 
-bool TextLabel::AccessibleImpl::SetCaretOffset(size_t offset)
+bool TextLabel::AccessibleImpl::SetCursorOffset(size_t offset)
 {
   return {};
 }
 
-Dali::Accessibility::Range TextLabel::AccessibleImpl::GetTextAtOffset(
-  size_t offset, Dali::Accessibility::TextBoundary boundary)
+Dali::Accessibility::Range TextLabel::AccessibleImpl::GetTextAtOffset(size_t offset, Dali::Accessibility::TextBoundary boundary)
 {
-  auto slf      = Toolkit::TextLabel::DownCast(Self());
-  auto txt      = slf.GetProperty(Toolkit::TextLabel::Property::TEXT).Get<std::string>();
-  auto txt_size = txt.size();
+  auto self = Toolkit::TextLabel::DownCast(Self());
+  auto text = self.GetProperty(Toolkit::TextLabel::Property::TEXT).Get<std::string>();
+  auto textSize = text.size();
 
   auto range = Dali::Accessibility::Range{};
 
@@ -1118,62 +1118,78 @@ Dali::Accessibility::Range TextLabel::AccessibleImpl::GetTextAtOffset(
   {
     case Dali::Accessibility::TextBoundary::CHARACTER:
     {
-      if(offset < txt_size)
+      if(offset < textSize)
       {
-        range.content     = txt[offset];
+        range.content     = text[offset];
         range.startOffset = offset;
         range.endOffset   = offset + 1;
       }
+      break;
     }
-    break;
     case Dali::Accessibility::TextBoundary::WORD:
     case Dali::Accessibility::TextBoundary::LINE:
     {
-      auto txt_c_string = txt.c_str();
-      auto breaks       = std::vector<char>(txt_size, 0);
+      auto textString = text.c_str();
+      auto breaks = std::vector<char>(textSize, 0);
+
       if(boundary == Dali::Accessibility::TextBoundary::WORD)
-        Accessibility::Accessible::FindWordSeparationsUtf8((const utf8_t*)txt_c_string, txt_size, "", breaks.data());
+      {
+        Accessibility::Accessible::FindWordSeparationsUtf8(reinterpret_cast<const utf8_t*>(textString), textSize, "", breaks.data());
+      }
       else
-        Accessibility::Accessible::FindLineSeparationsUtf8((const utf8_t*)txt_c_string, txt_size, "", breaks.data());
-      auto index   = 0u;
+      {
+        Accessibility::Accessible::FindLineSeparationsUtf8(reinterpret_cast<const utf8_t*>(textString), textSize, "", breaks.data());
+      }
+
+      auto index = 0u;
       auto counter = 0u;
-      while(index < txt_size && counter <= offset)
+      while(index < textSize && counter <= offset)
       {
         auto start = index;
         if(breaks[index])
         {
           while(breaks[index])
+          {
             index++;
+          }
           counter++;
         }
         else
         {
           if(boundary == Dali::Accessibility::TextBoundary::WORD)
+          {
             index++;
+          }
           if(boundary == Dali::Accessibility::TextBoundary::LINE)
+          {
             counter++;
+          }
         }
+
         if((counter > 0) && ((counter - 1) == offset))
         {
-          range.content     = txt.substr(start, index - start + 1);
+          range.content     = text.substr(start, index - start + 1);
           range.startOffset = start;
           range.endOffset   = index + 1;
         }
+
         if(boundary == Dali::Accessibility::TextBoundary::LINE)
+        {
           index++;
+        }
       }
+      break;
     }
-    break;
     case Dali::Accessibility::TextBoundary::SENTENCE:
     {
-      /* not supported by efl */
+      /* not supported by default */
+      break;
     }
-    break;
     case Dali::Accessibility::TextBoundary::PARAGRAPH:
     {
       /* Paragraph is not supported by libunibreak library */
+      break;
     }
-    break;
     default:
       break;
   }
@@ -1181,44 +1197,46 @@ Dali::Accessibility::Range TextLabel::AccessibleImpl::GetTextAtOffset(
   return range;
 }
 
-Dali::Accessibility::Range
-TextLabel::AccessibleImpl::GetSelection(size_t selectionNum)
+Dali::Accessibility::Range TextLabel::AccessibleImpl::GetRangeOfSelection(size_t selectionIndex)
 {
   // Since DALi supports only one selection indexes higher than 0 are ignored
-  if(selectionNum > 0)
+  if(selectionIndex > 0)
+  {
     return {};
+  }
 
-  auto        slf  = Toolkit::TextLabel::DownCast(Self());
-  auto        ctrl = Dali::Toolkit::GetImpl(slf).getController();
-  std::string ret;
-  ctrl->RetrieveSelection(ret);
-  auto r = ctrl->GetSelectionIndexes();
+  auto self  = Toolkit::TextLabel::DownCast(Self());
+  auto controller = Dali::Toolkit::GetImpl(self).GetTextController();
+  std::string value{};
+  controller->RetrieveSelection(value);
+  auto indices = controller->GetSelectionIndexes();
 
-  return {static_cast<size_t>(r.first), static_cast<size_t>(r.second), ret};
+  return {static_cast<size_t>(indices.first), static_cast<size_t>(indices.second), value};
 }
 
-bool TextLabel::AccessibleImpl::RemoveSelection(size_t selectionNum)
+bool TextLabel::AccessibleImpl::RemoveSelection(size_t selectionIndex)
 {
   // Since DALi supports only one selection indexes higher than 0 are ignored
-  if(selectionNum > 0)
+  if(selectionIndex > 0)
+  {
     return false;
+  }
 
-  auto slf = Toolkit::TextLabel::DownCast(Self());
-  Dali::Toolkit::GetImpl(slf).getController()->SetSelection(0, 0);
+  auto self = Toolkit::TextLabel::DownCast(Self());
+  Dali::Toolkit::GetImpl(self).GetTextController()->SetSelection(0, 0);
   return true;
 }
 
-bool TextLabel::AccessibleImpl::SetSelection(size_t selectionNum,
-                                             size_t startOffset,
-                                             size_t endOffset)
+bool TextLabel::AccessibleImpl::SetRangeOfSelection(size_t selectionIndex, size_t startOffset, size_t endOffset)
 {
   // Since DALi supports only one selection indexes higher than 0 are ignored
-  if(selectionNum > 0)
+  if(selectionIndex > 0)
+  {
     return false;
+  }
 
-  auto slf = Toolkit::TextLabel::DownCast(Self());
-  Dali::Toolkit::GetImpl(slf).getController()->SetSelection(startOffset,
-                                                            endOffset);
+  auto self = Toolkit::TextLabel::DownCast(Self());
+  Dali::Toolkit::GetImpl(self).GetTextController()->SetSelection(startOffset, endOffset);
   return true;
 }
 
index a204be6..01211c2 100644 (file)
@@ -86,7 +86,12 @@ public:
    */
   static bool DoConnectSignal(BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor);
 
-  Text::ControllerPtr getController();
+  /**
+   * @brief Gets text controller
+   *
+   * @return The text controller
+   */
+  Text::ControllerPtr GetTextController();
 
 private: // From Control
   /**
@@ -190,21 +195,63 @@ private: // Data
   bool mTextUpdateNeeded : 1;
 
 protected:
+  /**
+   * @brief This structure is to connect TextLabel with Accessible functions.
+   */
   struct AccessibleImpl : public DevelControl::AccessibleImpl,
                           public virtual Dali::Accessibility::Text
   {
     using DevelControl::AccessibleImpl::AccessibleImpl;
 
-    std::string          GetText(size_t startOffset, size_t endOffset) override;
-    size_t               GetCharacterCount() override;
-    size_t               GetCaretOffset() override;
-    bool                 SetCaretOffset(size_t offset) override;
+    /**
+     * @copydoc Dali::Accessibility::Text::GetText()
+     */
+    std::string GetText(size_t startOffset, size_t endOffset) override;
+
+    /**
+     * @copydoc Dali::Accessibility::Text::GetCharacterCount()
+     */
+    size_t GetCharacterCount() override;
+
+    /**
+     * @copydoc Dali::Accessibility::Text::GetCursorOffset()
+     */
+    size_t GetCursorOffset() override;
+
+    /**
+     * @copydoc Dali::Accessibility::Text::SetCursorOffset()
+     */
+    bool SetCursorOffset(size_t offset) override;
+
+    /**
+     * @copydoc Dali::Accessibility::Text::GetTextAtOffset()
+     */
     Accessibility::Range GetTextAtOffset(size_t offset, Accessibility::TextBoundary boundary) override;
-    Accessibility::Range GetSelection(size_t selectionNum) override;
-    bool                 RemoveSelection(size_t selectionNum) override;
-    bool                 SetSelection(size_t selectionNum, size_t startOffset, size_t endOffset) override;
-    std::string          GetNameRaw() override;
-    Property::Index      GetNamePropertyIndex() override;
+
+    /**
+     * @copydoc Dali::Accessibility::Text::GetRangeOfSelection()
+     */
+    Accessibility::Range GetRangeOfSelection(size_t selectionIndex) override;
+
+    /**
+     * @copydoc Dali::Accessibility::Text::RemoveSelection()
+     */
+    bool RemoveSelection(size_t selectionIndex) override;
+
+    /**
+     * @copydoc Dali::Accessibility::Text::SetRangeOfSelection()
+     */
+    bool SetRangeOfSelection(size_t selectionIndex, size_t startOffset, size_t endOffset) override;
+
+    /**
+     * @copydoc Dali::Accessibility::Text::GetNameRaw()
+     */
+    std::string GetNameRaw() override;
+
+    /**
+     * @copydoc Dali::Accessibility::Text::GetNamePropertyIndex()
+     */
+    Property::Index GetNamePropertyIndex() override;
   };
 };
 
old mode 100755 (executable)
new mode 100644 (file)
index bf85d8d..54e9026
@@ -87,28 +87,26 @@ DALI_PROPERTY_REGISTRATION(Toolkit, WebView, "pageZoomFactor",          FLOAT,
 DALI_PROPERTY_REGISTRATION(Toolkit, WebView, "textZoomFactor",          FLOAT,   TEXT_ZOOM_FACTOR          )
 DALI_PROPERTY_REGISTRATION(Toolkit, WebView, "loadProgressPercentage",  FLOAT,   LOAD_PROGRESS_PERCENTAGE  )
 
-DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "pageLoadStarted",         PAGE_LOAD_STARTED_SIGNAL         )
-DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "pageLoadInProgress",      PAGE_LOAD_IN_PROGRESS_SIGNAL     )
-DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "pageLoadFinished",        PAGE_LOAD_FINISHED_SIGNAL        )
-DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "pageLoadError",           PAGE_LOAD_ERROR_SIGNAL           )
-DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "scrollEdgeReached",       SCROLL_EDGE_REACHED_SIGNAL       )
-DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "urlChanged",              URL_CHANGED_SIGNAL               )
-DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "formRepostDecision",      FORM_REPOST_DECISION_SIGNAL      )
-DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "frameRendered",           FRAME_RENDERED_SIGNAL            )
-DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "requestInterceptor",      REQUEST_INTERCEPTOR_SIGNAL       )
-DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "consoleMessage",          CONSOLE_MESSAGE_SIGNAL           )
-DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "responsePolicyDecided",   POLICY_DECISION                  )
-DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "certificateConfirm",      CERTIFICATE_CONFIRM_SIGNAL       )
-DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "sslCertificateChanged",   SSL_CERTIFICATE_CHANGED_SIGNAL   )
-DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "httpAuthRequest",         HTTP_AUTH_REQUEST_SIGNAL         )
-DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "contextMenuCustomized",   CONTEXT_MENU_CUSTOMIZED_SIGNAL   )
-DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "contextMenuItemSelected", CONTEXT_MENU_ITEM_SELECTED_SIGNAL)
+DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "pageLoadStarted",       PAGE_LOAD_STARTED_SIGNAL      )
+DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "pageLoadInProgress",    PAGE_LOAD_IN_PROGRESS_SIGNAL  )
+DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "pageLoadFinished",      PAGE_LOAD_FINISHED_SIGNAL     )
+DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "pageLoadError",         PAGE_LOAD_ERROR_SIGNAL        )
+DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "scrollEdgeReached",     SCROLL_EDGE_REACHED_SIGNAL    )
+DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "urlChanged",            URL_CHANGED_SIGNAL            )
+DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "formRepostDecision",    FORM_REPOST_DECISION_SIGNAL   )
+DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "frameRendered",         FRAME_RENDERED_SIGNAL         )
+DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "requestInterceptor",    REQUEST_INTERCEPTOR_SIGNAL    )
+DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "consoleMessage",        CONSOLE_MESSAGE_SIGNAL        )
+DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "responsePolicyDecided", POLICY_DECISION               )
+DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "certificateConfirm",    CERTIFICATE_CONFIRM_SIGNAL    )
+DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "sslCertificateChanged", SSL_CERTIFICATE_CHANGED_SIGNAL)
+DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "httpAuthRequest",       HTTP_AUTH_REQUEST_SIGNAL      )
+DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "contextMenuShown",      CONTEXT_MENU_SHOWN_SIGNAL     )
+DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "contextMenuHidden",     CONTEXT_MENU_HIDDEN_SIGNAL    )
 
 DALI_TYPE_REGISTRATION_END()
 // clang-format on
 
-const std::string kEmptyString;
-
 } // namespace
 
 #define GET_ENUM_STRING(structName, inputExp) \
@@ -119,7 +117,6 @@ const std::string kEmptyString;
 
 WebView::WebView(const std::string& locale, const std::string& timezoneId)
 : Control(ControlBehaviour(ACTOR_BEHAVIOUR_DEFAULT | DISABLE_STYLE_CHANGE_SIGNALS)),
-  mUrl(),
   mVisual(),
   mWebViewSize(Stage::GetCurrent().GetSize()),
   mWebEngine(),
@@ -144,7 +141,6 @@ WebView::WebView(const std::string& locale, const std::string& timezoneId)
 
 WebView::WebView(uint32_t argc, char** argv)
 : Control(ControlBehaviour(ACTOR_BEHAVIOUR_DEFAULT | DISABLE_STYLE_CHANGE_SIGNALS)),
-  mUrl(),
   mVisual(),
   mWebViewSize(Stage::GetCurrent().GetSize()),
   mWebEngine(),
@@ -240,8 +236,8 @@ void WebView::OnInitialize()
     mWebEngine.CertificateConfirmSignal().Connect(this, &WebView::OnCertificateConfirm);
     mWebEngine.SslCertificateChangedSignal().Connect(this, &WebView::OnSslCertificateChanged);
     mWebEngine.HttpAuthHandlerSignal().Connect(this, &WebView::OnHttpAuthenticationRequest);
-    mWebEngine.ContextMenuCustomizedSignal().Connect(this, &WebView::OnContextMenuCustomized);
-    mWebEngine.ContextMenuItemSelectedSignal().Connect(this, &WebView::OnContextMenuItemSelected);
+    mWebEngine.ContextMenuShownSignal().Connect(this, &WebView::OnContextMenuShown);
+    mWebEngine.ContextMenuHiddenSignal().Connect(this, &WebView::OnContextMenuHidden);
 
     mWebContext         = std::unique_ptr<Dali::Toolkit::WebContext>(new WebContext(mWebEngine.GetContext()));
     mWebCookieManager   = std::unique_ptr<Dali::Toolkit::WebCookieManager>(new WebCookieManager(mWebEngine.GetCookieManager()));
@@ -283,26 +279,14 @@ Dali::Toolkit::ImageView WebView::GetFavicon() const
 
 void WebView::LoadUrl(const std::string& url)
 {
-  mUrl = url;
   if(mWebEngine)
   {
-    Texture           texture        = Dali::Texture::New(*mWebEngine.GetNativeImageSource());
-    const std::string nativeImageUrl = Dali::Toolkit::TextureManager::AddTexture(texture);
-    mVisual                          = Toolkit::VisualFactory::Get().CreateVisual(
-      {{Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE},
-       {Toolkit::ImageVisual::Property::URL, nativeImageUrl}});
-
-    if(mVisual)
+    if(!mVisual)
     {
-      // Clean up previously registered visual and add new one.
-      DevelControl::RegisterVisual(*this, Toolkit::WebView::Property::URL, mVisual);
-      mWebEngine.LoadUrl(url);
+      mWebEngine.FrameRenderedSignal().Connect(this, &WebView::OnInitialFrameRendered);
     }
 
-    if(mVideoHoleEnabled)
-    {
-      EnableBlendMode(false);
-    }
+    mWebEngine.LoadUrl(url);
   }
 }
 
@@ -310,22 +294,12 @@ void WebView::LoadHtmlString(const std::string& htmlString)
 {
   if(mWebEngine)
   {
-    Texture           texture        = Dali::Texture::New(*mWebEngine.GetNativeImageSource());
-    const std::string nativeImageUrl = Dali::Toolkit::TextureManager::AddTexture(texture);
-    mVisual                          = Toolkit::VisualFactory::Get().CreateVisual(
-      {{Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE},
-       {Toolkit::ImageVisual::Property::URL, nativeImageUrl}});
-
-    if(mVisual)
+    if(!mVisual)
     {
-      DevelControl::RegisterVisual(*this, Toolkit::WebView::Property::URL, mVisual);
-      mWebEngine.LoadHtmlString(htmlString);
+      mWebEngine.FrameRenderedSignal().Connect(this, &WebView::OnInitialFrameRendered);
     }
 
-    if(mVideoHoleEnabled)
-    {
-      EnableBlendMode(false);
-    }
+    mWebEngine.LoadHtmlString(htmlString);
   }
 }
 
@@ -334,24 +308,12 @@ bool WebView::LoadHtmlStringOverrideCurrentEntry(const std::string& html, const
   if(!mWebEngine)
     return false;
 
-  Texture           texture        = Dali::Texture::New(*mWebEngine.GetNativeImageSource());
-  const std::string nativeImageUrl = Dali::Toolkit::TextureManager::AddTexture(texture);
-  mVisual                          = Toolkit::VisualFactory::Get().CreateVisual(
-    {{Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE},
-     {Toolkit::ImageVisual::Property::URL, nativeImageUrl}});
-
-  bool result = false;
-  if(mVisual)
+  if(!mVisual)
   {
-    DevelControl::RegisterVisual(*this, Toolkit::WebView::Property::URL, mVisual);
-    result = mWebEngine.LoadHtmlStringOverrideCurrentEntry(html, basicUri, unreachableUrl);
+    mWebEngine.FrameRenderedSignal().Connect(this, &WebView::OnInitialFrameRendered);
   }
 
-  if(mVideoHoleEnabled)
-  {
-    EnableBlendMode(false);
-  }
-  return result;
+  return mWebEngine.LoadHtmlStringOverrideCurrentEntry(html, basicUri, unreachableUrl);
 }
 
 bool WebView::LoadContents(const std::string& contents, uint32_t contentSize, const std::string& mimeType, const std::string& encoding, const std::string& baseUri)
@@ -359,24 +321,12 @@ bool WebView::LoadContents(const std::string& contents, uint32_t contentSize, co
   if(!mWebEngine)
     return false;
 
-  Texture           texture        = Dali::Texture::New(*mWebEngine.GetNativeImageSource());
-  const std::string nativeImageUrl = Dali::Toolkit::TextureManager::AddTexture(texture);
-  mVisual                          = Toolkit::VisualFactory::Get().CreateVisual(
-    {{Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE},
-     {Toolkit::ImageVisual::Property::URL, nativeImageUrl}});
-
-  bool result = false;
-  if(mVisual)
+  if(!mVisual)
   {
-    DevelControl::RegisterVisual(*this, Toolkit::WebView::Property::URL, mVisual);
-    result = mWebEngine.LoadContents(contents, contentSize, mimeType, encoding, baseUri);
+    mWebEngine.FrameRenderedSignal().Connect(this, &WebView::OnInitialFrameRendered);
   }
 
-  if(mVideoHoleEnabled)
-  {
-    EnableBlendMode(false);
-  }
-  return result;
+  return mWebEngine.LoadContents(contents, contentSize, mimeType, encoding, baseUri);
 }
 
 void WebView::Reload()
@@ -792,14 +742,14 @@ Dali::Toolkit::WebView::WebViewHttpAuthHandlerSignalType& WebView::HttpAuthHandl
   return mHttpAuthHandlerSignal;
 }
 
-Dali::Toolkit::WebView::WebViewContextMenuCustomizedSignalType& WebView::ContextMenuCustomizedSignal()
+Dali::Toolkit::WebView::WebViewContextMenuShownSignalType& WebView::ContextMenuShownSignal()
 {
-  return mContextMenuCustomizedSignal;
+  return mContextMenuShownSignal;
 }
 
-Dali::Toolkit::WebView::WebViewContextMenuItemSelectedSignalType& WebView::ContextMenuItemSelectedSignal()
+Dali::Toolkit::WebView::WebViewContextMenuHiddenSignalType& WebView::ContextMenuHiddenSignal()
 {
-  return mContextMenuItemSelectedSignal;
+  return mContextMenuHiddenSignal;
 }
 
 void WebView::OnPageLoadStarted(const std::string& url)
@@ -874,6 +824,21 @@ void WebView::OnFrameRendered()
   }
 }
 
+void WebView::OnInitialFrameRendered()
+{
+  mWebEngine.FrameRenderedSignal().Disconnect(this, &WebView::OnInitialFrameRendered);
+
+  Texture           texture        = Dali::Texture::New(*mWebEngine.GetNativeImageSource());
+  const std::string nativeImageUrl = Dali::Toolkit::TextureManager::AddTexture(texture);
+  mVisual                          = Toolkit::VisualFactory::Get().CreateVisual({{Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE}, {Toolkit::ImageVisual::Property::URL, nativeImageUrl}});
+
+  if(mVisual)
+  {
+    DevelControl::RegisterVisual(*this, Toolkit::WebView::Property::URL, mVisual);
+    EnableBlendMode(!mVideoHoleEnabled);
+  }
+}
+
 void WebView::OnVisibilityChanged(Actor actor, bool isVisible, Dali::DevelActor::VisibilityChange::Type type)
 {
   if(type == Dali::DevelActor::VisibilityChange::Type::SELF)
@@ -945,21 +910,21 @@ void WebView::OnHttpAuthenticationRequest(std::shared_ptr<Dali::WebEngineHttpAut
   }
 }
 
-void WebView::OnContextMenuCustomized(std::shared_ptr<Dali::WebEngineContextMenu> menu)
+void WebView::OnContextMenuShown(std::shared_ptr<Dali::WebEngineContextMenu> menu)
 {
-  if(!mContextMenuCustomizedSignal.Empty())
+  if(!mContextMenuShownSignal.Empty())
   {
     Dali::Toolkit::WebView handle(GetOwner());
-    mContextMenuCustomizedSignal.Emit(handle, std::move(menu));
+    mContextMenuShownSignal.Emit(handle, std::move(menu));
   }
 }
 
-void WebView::OnContextMenuItemSelected(std::shared_ptr<Dali::WebEngineContextMenuItem> item)
+void WebView::OnContextMenuHidden(std::shared_ptr<Dali::WebEngineContextMenu> menu)
 {
-  if(!mContextMenuItemSelectedSignal.Empty())
+  if(!mContextMenuHiddenSignal.Empty())
   {
     Dali::Toolkit::WebView handle(GetOwner());
-    mContextMenuItemSelectedSignal.Emit(handle, std::move(item));
+    mContextMenuHiddenSignal.Emit(handle, std::move(menu));
   }
 }
 
@@ -1040,14 +1005,14 @@ bool WebView::DoConnectSignal(BaseObject* object, ConnectionTrackerInterface* tr
     webView.HttpAuthHandlerSignal().Connect(tracker, functor);
     connected = true;
   }
-  else if(0 == strcmp(signalName.c_str(), CONTEXT_MENU_CUSTOMIZED_SIGNAL))
+  else if(0 == strcmp(signalName.c_str(), CONTEXT_MENU_SHOWN_SIGNAL))
   {
-    webView.ContextMenuCustomizedSignal().Connect(tracker, functor);
+    webView.ContextMenuShownSignal().Connect(tracker, functor);
     connected = true;
   }
-  else if(0 == strcmp(signalName.c_str(), CONTEXT_MENU_ITEM_SELECTED_SIGNAL))
+  else if(0 == strcmp(signalName.c_str(), CONTEXT_MENU_HIDDEN_SIGNAL))
   {
-    webView.ContextMenuItemSelectedSignal().Connect(tracker, functor);
+    webView.ContextMenuHiddenSignal().Connect(tracker, functor);
     connected = true;
   }
 
@@ -1209,7 +1174,7 @@ Property::Value WebView::GetProperty(BaseObject* object, Property::Index propert
     {
       case Toolkit::WebView::Property::URL:
       {
-        value = impl.mUrl;
+        value = impl.GetUrl();
         break;
       }
       case Toolkit::WebView::Property::USER_AGENT:
@@ -1367,7 +1332,7 @@ Dali::Vector2 WebView::GetContentSize() const
 
 std::string WebView::GetTitle() const
 {
-  return mWebEngine ? mWebEngine.GetTitle() : kEmptyString;
+  return mWebEngine ? mWebEngine.GetTitle() : std::string();
 }
 
 void WebView::SetDocumentBackgroundColor(Dali::Vector4 color)
@@ -1404,12 +1369,17 @@ void WebView::EnableCursorByClient(bool enabled)
 
 std::string WebView::GetSelectedText() const
 {
-  return mWebEngine ? mWebEngine.GetSelectedText() : kEmptyString;
+  return mWebEngine ? mWebEngine.GetSelectedText() : std::string();
+}
+
+std::string WebView::GetUrl() const
+{
+  return mWebEngine ? mWebEngine.GetUrl() : std::string();
 }
 
-const std::string& WebView::GetUserAgent() const
+std::string WebView::GetUserAgent() const
 {
-  return mWebEngine ? mWebEngine.GetUserAgent() : kEmptyString;
+  return mWebEngine ? mWebEngine.GetUserAgent() : std::string();
 }
 
 void WebView::SetUserAgent(const std::string& userAgent)
index a5cefa4..bbe7b27 100755 (executable)
@@ -378,14 +378,14 @@ public:
   Dali::Toolkit::WebView::WebViewHttpAuthHandlerSignalType& HttpAuthHandlerSignal();
 
   /**
-   * @copydoc Dali::Toolkit::WebView::ContextMenuCustomizedSignal()
+   * @copydoc Dali::Toolkit::WebView::ContextMenuShownSignal()
    */
-  Dali::Toolkit::WebView::WebViewContextMenuCustomizedSignalType& ContextMenuCustomizedSignal();
+  Dali::Toolkit::WebView::WebViewContextMenuShownSignalType& ContextMenuShownSignal();
 
   /**
-   * @copydoc Dali::Toolkit::WebView::ContextMenuItemSelectedSignal()
+   * @copydoc Dali::Toolkit::WebView::ContextMenuHiddenSignal()
    */
-  Dali::Toolkit::WebView::WebViewContextMenuItemSelectedSignalType& ContextMenuItemSelectedSignal();
+  Dali::Toolkit::WebView::WebViewContextMenuHiddenSignalType& ContextMenuHiddenSignal();
 
 public: // Properties
   /**
@@ -522,10 +522,16 @@ private:
   std::string GetSelectedText() const;
 
   /**
+   * @brief Get url of web page.
+   * @return The string of url
+   */
+  std::string GetUrl() const;
+
+  /**
    * @brief Get user agent string.
    * @return The string value of user agent
    */
-  const std::string& GetUserAgent() const;
+  std::string GetUserAgent() const;
 
   /**
    * @brief Set user agent string.
@@ -683,6 +689,11 @@ private:
   void OnFrameRendered();
 
   /**
+   * @brief Callback function to be called when frame is rendered. This is to check initial buffer is ready.
+   */
+  void OnInitialFrameRendered();
+
+  /**
    * @brief Callback function to be called when visibility is changed.
    * @param[in] actor The actor, or child of actor, whose visibility has changed
    * @param[in] isVisible Whether the actor is now visible or not
@@ -733,39 +744,38 @@ private:
   void OnHttpAuthenticationRequest(std::shared_ptr<Dali::WebEngineHttpAuthHandler> handler);
 
   /**
-   * @brief Callback function to be called when context menu would be customized.
+   * @brief Callback function to be called when context menu would be shown.
    * @param[in] e The scroll edge reached.
    */
-  void OnContextMenuCustomized(std::shared_ptr<Dali::WebEngineContextMenu> menu);
+  void OnContextMenuShown(std::shared_ptr<Dali::WebEngineContextMenu> menu);
 
   /**
-   * @brief Callback function to be called when context menu item is selected.
+   * @brief Callback function to be called when context menu would be hidden.
    * @param[in] url The url currently being loaded
    */
-  void OnContextMenuItemSelected(std::shared_ptr<Dali::WebEngineContextMenuItem> item);
+  void OnContextMenuHidden(std::shared_ptr<Dali::WebEngineContextMenu> menu);
 
 private:
-  std::string                 mUrl;
   Dali::Toolkit::Visual::Base mVisual;
   Dali::Size                  mWebViewSize;
   Dali::WebEngine             mWebEngine;
 
-  Dali::Toolkit::WebView::WebViewPageLoadSignalType                mPageLoadStartedSignal;
-  Dali::Toolkit::WebView::WebViewPageLoadSignalType                mPageLoadInProgressSignal;
-  Dali::Toolkit::WebView::WebViewPageLoadSignalType                mPageLoadFinishedSignal;
-  Dali::Toolkit::WebView::WebViewPageLoadErrorSignalType           mPageLoadErrorSignal;
-  Dali::Toolkit::WebView::WebViewUrlChangedSignalType              mUrlChangedSignal;
-  Dali::Toolkit::WebView::WebViewScrollEdgeReachedSignalType       mScrollEdgeReachedSignal;
-  Dali::Toolkit::WebView::WebViewFormRepostDecisionSignalType      mFormRepostDecisionSignal;
-  Dali::Toolkit::WebView::WebViewFrameRenderedSignalType           mFrameRenderedSignal;
-  Dali::Toolkit::WebView::WebViewRequestInterceptorSignalType      mRequestInterceptorSignal;
-  Dali::Toolkit::WebView::WebViewConsoleMessageSignalType          mConsoleMessageSignal;
-  Dali::Toolkit::WebView::WebViewResponsePolicyDecisionSignalType  mResponsePolicyDecisionSignal;
-  Dali::Toolkit::WebView::WebViewCertificateSignalType             mCertificateConfirmSignal;
-  Dali::Toolkit::WebView::WebViewCertificateSignalType             mSslCertificateChangedSignal;
-  Dali::Toolkit::WebView::WebViewHttpAuthHandlerSignalType         mHttpAuthHandlerSignal;
-  Dali::Toolkit::WebView::WebViewContextMenuCustomizedSignalType   mContextMenuCustomizedSignal;
-  Dali::Toolkit::WebView::WebViewContextMenuItemSelectedSignalType mContextMenuItemSelectedSignal;
+  Dali::Toolkit::WebView::WebViewPageLoadSignalType               mPageLoadStartedSignal;
+  Dali::Toolkit::WebView::WebViewPageLoadSignalType               mPageLoadInProgressSignal;
+  Dali::Toolkit::WebView::WebViewPageLoadSignalType               mPageLoadFinishedSignal;
+  Dali::Toolkit::WebView::WebViewPageLoadErrorSignalType          mPageLoadErrorSignal;
+  Dali::Toolkit::WebView::WebViewUrlChangedSignalType             mUrlChangedSignal;
+  Dali::Toolkit::WebView::WebViewScrollEdgeReachedSignalType      mScrollEdgeReachedSignal;
+  Dali::Toolkit::WebView::WebViewFormRepostDecisionSignalType     mFormRepostDecisionSignal;
+  Dali::Toolkit::WebView::WebViewFrameRenderedSignalType          mFrameRenderedSignal;
+  Dali::Toolkit::WebView::WebViewRequestInterceptorSignalType     mRequestInterceptorSignal;
+  Dali::Toolkit::WebView::WebViewConsoleMessageSignalType         mConsoleMessageSignal;
+  Dali::Toolkit::WebView::WebViewResponsePolicyDecisionSignalType mResponsePolicyDecisionSignal;
+  Dali::Toolkit::WebView::WebViewCertificateSignalType            mCertificateConfirmSignal;
+  Dali::Toolkit::WebView::WebViewCertificateSignalType            mSslCertificateChangedSignal;
+  Dali::Toolkit::WebView::WebViewHttpAuthHandlerSignalType        mHttpAuthHandlerSignal;
+  Dali::Toolkit::WebView::WebViewContextMenuShownSignalType       mContextMenuShownSignal;
+  Dali::Toolkit::WebView::WebViewContextMenuHiddenSignalType      mContextMenuHiddenSignal;
 
   std::unique_ptr<Dali::Toolkit::WebContext>         mWebContext;
   std::unique_ptr<Dali::Toolkit::WebCookieManager>   mWebCookieManager;
index 29f6ba3..995a800 100644 (file)
@@ -124,7 +124,7 @@ bool ControllerImplEventHandler::ProcessInputEvents(Controller::Impl& impl)
 
     if(nullptr != impl.mEditableControlInterface)
     {
-      impl.mEditableControlInterface->CaretMoved(eventData->mPrimaryCursorPosition);
+      impl.mEditableControlInterface->CursorMoved(eventData->mPrimaryCursorPosition);
     }
 
     if(eventData->mUpdateCursorHookPosition)
index b8b6f31..12cdae7 100644 (file)
 #include <dali-toolkit/internal/text/shaper.h>
 #include <dali-toolkit/internal/text/text-control-interface.h>
 #include <dali-toolkit/internal/text/text-controller-impl-event-handler.h>
+#include <dali-toolkit/internal/text/text-editable-control-interface.h>
+#include <dali-toolkit/internal/text/text-enumerations-impl.h>
 #include <dali-toolkit/internal/text/text-run-container.h>
 #include <dali-toolkit/internal/text/text-selection-handle-controller.h>
 
-#include <dali-toolkit/internal/text/text-enumerations-impl.h>
-
 using namespace Dali;
 
 namespace
@@ -60,6 +60,14 @@ struct BackgroundMesh
   Vector<unsigned short>   mIndices;  ///< container of indices
 };
 
+// The relative luminance of a color is defined as (L = 0.2126 * R + 0.7152 * G + 0.0722 * B)
+// based on W3C Recommendations (https://www.w3.org/TR/WCAG20/)
+const float         BRIGHTNESS_THRESHOLD = 0.179f;
+const float         CONSTANT_R           = 0.2126f;
+const float         CONSTANT_G           = 0.7152f;
+const float         CONSTANT_B           = 0.0722f;
+const Dali::Vector4 BLACK(0.f, 0.f, 0.f, 1.f);
+const Dali::Vector4 WHITE(1.f, 1.f, 1.f, 1.f);
 const Dali::Vector4 LIGHT_BLUE(0.75f, 0.96f, 1.f, 1.f);
 const Dali::Vector4 BACKGROUND_SUB4(0.58f, 0.87f, 0.96f, 1.f);
 const Dali::Vector4 BACKGROUND_SUB5(0.83f, 0.94f, 0.98f, 1.f);
@@ -915,7 +923,23 @@ bool Controller::Impl::UpdateModel(OperationsMask operationsRequired)
           backgroundColorRun.color                           = textColor;
           mModel->mLogicalModel->mBackgroundColorRuns.PushBack(backgroundColorRun);
 
-          Vector4          backgroundColor = mModel->mVisualModel->GetBackgroundColor();
+          Vector4 backgroundColor = mModel->mVisualModel->GetBackgroundColor();
+          if(backgroundColor.a == 0) // There is no text background color.
+          {
+            // Try use the control's background color.
+            if(nullptr != mEditableControlInterface)
+            {
+              mEditableControlInterface->GetControlBackgroundColor(backgroundColor);
+              if(backgroundColor.a == 0) // There is no control background color.
+              {
+                // Determines black or white color according to text color.
+                // Based on W3C Recommendations (https://www.w3.org/TR/WCAG20/)
+                float L         = CONSTANT_R * textColor.r + CONSTANT_G * textColor.g + CONSTANT_B * textColor.b;
+                backgroundColor = L > BRIGHTNESS_THRESHOLD ? BLACK : WHITE;
+              }
+            }
+          }
+
           Vector<ColorRun> colorRuns;
           colorRuns.Resize(1u);
           ColorRun& colorRun                       = *(colorRuns.Begin());
index af2abd0..d62101e 100644 (file)
@@ -56,11 +56,11 @@ public:
   /**
    * @brief Called to signal that caret (cursor position) has been moved.
    */
-  virtual void CaretMoved(unsigned int position) = 0;
+  virtual void CursorMoved(unsigned int position) = 0;
 
   /**
    * @brief Called to signal that text has been inserted or deleted.
-   * 
+   *
    * @param[in] immediate If true, it immediately emits the signal, if false, only emits once the signal when OnRelayout() is called next time.
    */
   virtual void TextChanged(bool immediate) = 0;
@@ -93,6 +93,13 @@ public:
   virtual void AddDecoration(Actor& actor, bool needsClipping) = 0;
 
   /**
+   * @brief Gets the color of the control.
+   *
+   * @param[out] The color of the control.
+   */
+  virtual void GetControlBackgroundColor(Vector4& color) const = 0;
+
+  /**
    * @brief Editable status (on/off).
    *
    * @return true if it can be edit, else false.
index 1010fe1..02d0628 100644 (file)
@@ -29,7 +29,7 @@ namespace Toolkit
 {
 const unsigned int TOOLKIT_MAJOR_VERSION = 2;
 const unsigned int TOOLKIT_MINOR_VERSION = 0;
-const unsigned int TOOLKIT_MICRO_VERSION = 32;
+const unsigned int TOOLKIT_MICRO_VERSION = 33;
 const char* const  TOOLKIT_BUILD_DATE    = __DATE__ " " __TIME__;
 
 #ifdef DEBUG_ENABLED
index 2c852c4..d4c7bdc 100644 (file)
@@ -1,6 +1,6 @@
 Name:       dali2-toolkit
 Summary:    Dali 3D engine Toolkit
-Version:    2.0.32
+Version:    2.0.33
 Release:    1
 Group:      System/Libraries
 License:    Apache-2.0 and BSD-3-Clause and MIT