[dali_1.2.26] Merge branch 'devel/master' 72/114172/1
authorVictor Cebollada <v.cebollada@samsung.com>
Fri, 10 Feb 2017 07:58:38 +0000 (07:58 +0000)
committerVictor Cebollada <v.cebollada@samsung.com>
Fri, 10 Feb 2017 07:58:38 +0000 (07:58 +0000)
Change-Id: Ibb2353fd0d8fe2668f3a5c0ae03148806bc85437

85 files changed:
automated-tests/resources/progress-bar-skin-indeterminate.png [new file with mode: 0644]
automated-tests/resources/progress-bar-skin-progress.png [new file with mode: 0644]
automated-tests/resources/progress-bar-skin-secondary-progress.png [new file with mode: 0644]
automated-tests/resources/progress-bar-skin-track.png [new file with mode: 0644]
automated-tests/src/dali-toolkit-internal/CMakeLists.txt
automated-tests/src/dali-toolkit-internal/utc-Dali-PropertyHelper.cpp [new file with mode: 0644]
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-platform-abstraction.cpp
automated-tests/src/dali-toolkit/utc-Dali-Control.cpp
automated-tests/src/dali-toolkit/utc-Dali-ProgressBar.cpp
automated-tests/src/dali-toolkit/utc-Dali-TextEditor.cpp
automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp
dali-toolkit/devel-api/controls/control-depth-index-ranges.h
dali-toolkit/devel-api/controls/progress-bar/progress-bar.h
dali-toolkit/devel-api/controls/text-controls/text-editor-devel.h [new file with mode: 0644]
dali-toolkit/devel-api/file.list
dali-toolkit/internal/controls/progress-bar/progress-bar-impl.cpp
dali-toolkit/internal/controls/progress-bar/progress-bar-impl.h
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-label-impl.cpp
dali-toolkit/internal/file.list
dali-toolkit/internal/helpers/property-helper.cpp [new file with mode: 0644]
dali-toolkit/internal/helpers/property-helper.h [new file with mode: 0644]
dali-toolkit/internal/text/rendering/atlas/text-atlas-renderer.cpp
dali-toolkit/internal/text/text-controller-impl.h
dali-toolkit/internal/text/text-controller.cpp
dali-toolkit/internal/text/text-controller.h
dali-toolkit/internal/text/text-model.cpp
dali-toolkit/internal/text/text-model.h
dali-toolkit/internal/text/text-vertical-scroller.cpp [new file with mode: 0644]
dali-toolkit/internal/text/text-vertical-scroller.h [new file with mode: 0644]
dali-toolkit/internal/visuals/npatch/npatch-visual.cpp
dali-toolkit/internal/visuals/text/text-visual.cpp
dali-toolkit/internal/visuals/visual-base-data-impl.cpp
dali-toolkit/internal/visuals/visual-base-impl.cpp
dali-toolkit/public-api/accessibility-manager/accessibility-manager.h
dali-toolkit/public-api/controls/alignment/alignment.h
dali-toolkit/public-api/controls/buttons/button.h
dali-toolkit/public-api/controls/buttons/check-box-button.h
dali-toolkit/public-api/controls/buttons/push-button.h
dali-toolkit/public-api/controls/buttons/radio-button.h
dali-toolkit/public-api/controls/control-impl.cpp
dali-toolkit/public-api/controls/control-impl.h
dali-toolkit/public-api/controls/control.h
dali-toolkit/public-api/controls/flex-container/flex-container.h
dali-toolkit/public-api/controls/image-view/image-view.h
dali-toolkit/public-api/controls/model3d-view/model3d-view.h
dali-toolkit/public-api/controls/scroll-bar/scroll-bar.h
dali-toolkit/public-api/controls/scrollable/item-view/default-item-layout.h
dali-toolkit/public-api/controls/scrollable/item-view/item-factory.h
dali-toolkit/public-api/controls/scrollable/item-view/item-layout.h
dali-toolkit/public-api/controls/scrollable/item-view/item-view.h
dali-toolkit/public-api/controls/scrollable/scroll-view/scroll-view-constraints.h
dali-toolkit/public-api/controls/scrollable/scroll-view/scroll-view-effect.h
dali-toolkit/public-api/controls/scrollable/scroll-view/scroll-view-page-path-effect.h
dali-toolkit/public-api/controls/scrollable/scroll-view/scroll-view.h
dali-toolkit/public-api/controls/scrollable/scrollable.h
dali-toolkit/public-api/controls/slider/slider.h
dali-toolkit/public-api/controls/table-view/table-view.h
dali-toolkit/public-api/controls/text-controls/text-editor.h
dali-toolkit/public-api/controls/text-controls/text-field.h
dali-toolkit/public-api/controls/text-controls/text-label.h
dali-toolkit/public-api/controls/video-view/video-view.h
dali-toolkit/public-api/dali-toolkit-version.cpp
dali-toolkit/public-api/enums.h
dali-toolkit/public-api/focus-manager/keyboard-focus-manager.h
dali-toolkit/public-api/image-loader/async-image-loader.h
dali-toolkit/public-api/image-loader/sync-image-loader.h
dali-toolkit/public-api/styling/style-manager.h
dali-toolkit/public-api/toolkit-property-index-ranges.h
dali-toolkit/public-api/visuals/visual-properties.h
dali-toolkit/styles/1920x1080/dali-toolkit-default-theme.json
dali-toolkit/styles/480x800/dali-toolkit-default-theme.json
dali-toolkit/styles/720x1280/dali-toolkit-default-theme.json
dali-toolkit/styles/images-common/progress-bar-skin-indeterminate.png [new file with mode: 0644]
dali-toolkit/styles/images-common/progress-bar-skin-progress.9.png [new file with mode: 0644]
dali-toolkit/styles/images-common/progress-bar-skin-secondary-progress.9.png [new file with mode: 0644]
dali-toolkit/styles/images-common/progress-bar-skin-track.9.png [new file with mode: 0644]
dali-toolkit/styles/images-common/progress-skin-progress.9.png [deleted file]
dali-toolkit/styles/images-common/progress-skin.9.png [deleted file]
docs/content/images/visuals/HelloWorld.png [new file with mode: 0644]
docs/content/shared-javascript-and-cpp-documentation/visuals.md
packaging/dali-addon.spec
packaging/dali-toolkit.spec

diff --git a/automated-tests/resources/progress-bar-skin-indeterminate.png b/automated-tests/resources/progress-bar-skin-indeterminate.png
new file mode 100644 (file)
index 0000000..df99c15
Binary files /dev/null and b/automated-tests/resources/progress-bar-skin-indeterminate.png differ
diff --git a/automated-tests/resources/progress-bar-skin-progress.png b/automated-tests/resources/progress-bar-skin-progress.png
new file mode 100644 (file)
index 0000000..f73b14f
Binary files /dev/null and b/automated-tests/resources/progress-bar-skin-progress.png differ
diff --git a/automated-tests/resources/progress-bar-skin-secondary-progress.png b/automated-tests/resources/progress-bar-skin-secondary-progress.png
new file mode 100644 (file)
index 0000000..f0ae311
Binary files /dev/null and b/automated-tests/resources/progress-bar-skin-secondary-progress.png differ
diff --git a/automated-tests/resources/progress-bar-skin-track.png b/automated-tests/resources/progress-bar-skin-track.png
new file mode 100644 (file)
index 0000000..a22e7c2
Binary files /dev/null and b/automated-tests/resources/progress-bar-skin-track.png differ
index 4e3e0ff..f07653b 100755 (executable)
@@ -23,6 +23,7 @@ SET(TC_SOURCES
  utc-Dali-Text-ViewModel.cpp
  utc-Dali-DebugRendering.cpp
  utc-Dali-ItemView-internal.cpp
+ utc-Dali-PropertyHelper.cpp
 )
 
 # Append list of test harness files (Won't get parsed for test cases)
diff --git a/automated-tests/src/dali-toolkit-internal/utc-Dali-PropertyHelper.cpp b/automated-tests/src/dali-toolkit-internal/utc-Dali-PropertyHelper.cpp
new file mode 100644 (file)
index 0000000..58fc510
--- /dev/null
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c) 2017 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <dali-toolkit-test-suite-utils.h>
+#include <dali-toolkit/internal/helpers/property-helper.h>
+
+using namespace Dali;
+using namespace Dali::Toolkit;
+
+void dali_property_helper_startup(void)
+{
+  test_return_value = TET_UNDEF;
+}
+
+void dali_property_helper_cleanup(void)
+{
+  test_return_value = TET_PASS;
+}
+
+int UtcDaliPropertyHelperGetStringFromPropertyWithString(void)
+{
+  tet_infoline( "Test to check if a simple string is parsed correctly" );
+
+  const std::string inputString = "Hello World";
+  Property::Value value( inputString );
+
+  std::string output;
+  DALI_TEST_CHECK( Toolkit::Internal::GetStringFromProperty( value, output ) );
+  DALI_TEST_EQUALS( output, inputString, TEST_LOCATION );
+
+  END_TEST;
+}
+
+int UtcDaliPropertyHelperGetStringFromPropertyWithEmptyValue(void)
+{
+  tet_infoline( "Test to ensure if an empty value returns false" );
+
+  std::string output;
+  DALI_TEST_CHECK( ! Toolkit::Internal::GetStringFromProperty( Property::Value(), output ) );
+
+  END_TEST;
+}
+
+int UtcDaliPropertyHelperGetStringFromPropertyWithStringArray(void)
+{
+  tet_infoline( "Test to check if a string array is parsed correctly and adds new line characters too" );
+
+  Property::Value value( Property::Array().Add( "Hello World" )
+                                          .Add( "The Quick Brown Fox" )
+                                          .Add( "Jumps over the lazy dog" ) );
+
+  std::string output;
+  DALI_TEST_CHECK( Toolkit::Internal::GetStringFromProperty( value, output ) );
+  DALI_TEST_CHECK( output.find( "Hello World\n" ) != std::string::npos );
+  DALI_TEST_CHECK( output.find( "The Quick Brown Fox\n" ) != std::string::npos );
+  DALI_TEST_CHECK( output.find( "Jumps over the lazy dog\n" ) != std::string::npos );
+
+  END_TEST;
+}
+
+int UtcDaliPropertyHelperGetStringFromPropertyWithEmptyArray(void)
+{
+  tet_infoline( "Test to check if an empty array returns false" );
+
+  Property::Array array;
+
+  std::string output;
+  DALI_TEST_CHECK( ! Toolkit::Internal::GetStringFromProperty( Property::Value( array ), output ) );
+
+  END_TEST;
+}
+
+int UtcDaliPropertyHelperGetStringFromPropertyWithMultipleTypesInArray(void)
+{
+  tet_infoline( "Test to ensure an array with multiple types returns false" );
+
+  Property::Value value( Property::Array().Add( "Hello World" )
+                                          .Add( "The Quick Brown Fox" )
+                                          .Add( 1 )
+                                          .Add( "Jumps" )
+                                          .Add( 25 )
+                                          .Add( "Over" ) );
+
+  std::string output;
+  DALI_TEST_CHECK( ! Toolkit::Internal::GetStringFromProperty( value, output ) );
+  DALI_TEST_CHECK( output.empty() );
+
+  END_TEST;
+}
index db22b86..61f88f0 100644 (file)
@@ -40,6 +40,7 @@ TestPlatformAbstraction::TestPlatformAbstraction()
 
 TestPlatformAbstraction::~TestPlatformAbstraction()
 {
+  DiscardRequest();
 }
 
 void TestPlatformAbstraction::Suspend()
@@ -264,6 +265,7 @@ void TestPlatformAbstraction::SetAllResourceRequestsAsLoaded()
     Integration::ResourcePointer resource(bitmap);
     bitmap->GetPackedPixelsProfile()->ReserveBuffer(Pixel::RGBA8888, 80, 80, 80, 80);
     SetResourceLoaded( request->GetId(), request->GetType()->id, resource );
+    delete request;
   }
   mResourceRequests.Clear();
 }
@@ -273,13 +275,21 @@ void TestPlatformAbstraction::SetAllResourceRequestsAsFailed( Integration::Resou
   for( ResourceRequestContainer::Iterator iter = mResourceRequests.Begin(), endIter = mResourceRequests.End();
        iter != endIter; ++iter )
   {
+    Integration::ResourceRequest* request = *iter;
     SetResourceLoadFailed( (*iter)->GetId(), failure);
+    delete request;
   }
   mResourceRequests.Clear();
 }
 
 void TestPlatformAbstraction::DiscardRequest()
 {
+  for( ResourceRequestContainer::Iterator iter = mResourceRequests.Begin(), endIter = mResourceRequests.End();
+       iter != endIter; ++iter )
+  {
+    Integration::ResourceRequest* request = *iter;
+    delete request;
+  }
   mResourceRequests.Clear();
 }
 
index 93ee34e..376ad0d 100644 (file)
@@ -24,6 +24,9 @@
 
 #include <dali.h>
 #include <dali-toolkit/dali-toolkit.h>
+#include <dali-toolkit/devel-api/visuals/visual-properties-devel.h>
+#include <dali-toolkit/devel-api/align-enums.h>
+
 #include "dummy-control.h"
 
 using namespace Dali;
@@ -721,3 +724,41 @@ int UtcDaliControlAutoClippingWhenAlreadyOnStageN(void)
 
   END_TEST;
 }
+
+int UtcDaliControlSetTransformSize(void)
+{
+  ToolkitTestApplication application;
+  Control control = Control::New();
+
+  Property::Map transformMap;
+  transformMap.Add( DevelVisual::Transform::Property::OFFSET, Vector2( 10, 10 ) )
+              .Add( DevelVisual::Transform::Property::ANCHOR_POINT, Align::BOTTOM_END )
+              .Add( DevelVisual::Transform::Property::ORIGIN, Align::BOTTOM_END )
+              .Add( DevelVisual::Transform::Property::SIZE, Vector2( 10, 20 ) );
+
+  control.SetProperty( Control::Property::BACKGROUND, Property::Map().Add( Visual::Property::TYPE, Visual::COLOR )
+                                                                     .Add( DevelVisual::Property::TRANSFORM, transformMap ) );
+
+  tet_infoline( "Test to ensure that the control background transform does not get overwritten when adding to the stage" );
+
+  Stage::GetCurrent().Add( control );
+
+  application.SendNotification();
+  application.Render();
+
+  // Ensure the transform property still matches what we set
+  Property::Value value = control.GetProperty( Control::Property::BACKGROUND );
+  Property::Map* map = value.GetMap();
+  DALI_TEST_CHECK( map );
+  Property::Value* transformValue = map->Find( DevelVisual::Property::TRANSFORM );
+  DALI_TEST_CHECK( transformValue );
+
+  Property::Map* retMap = transformValue->GetMap();
+  DALI_TEST_CHECK( retMap );
+  DALI_TEST_EQUALS( retMap->Find( DevelVisual::Transform::Property::OFFSET )->Get< Vector2 >(), Vector2( 10, 10 ), TEST_LOCATION );
+  DALI_TEST_EQUALS( retMap->Find( DevelVisual::Transform::Property::ANCHOR_POINT )->Get< int >(), (int)Align::BOTTOM_END, TEST_LOCATION );
+  DALI_TEST_EQUALS( retMap->Find( DevelVisual::Transform::Property::ORIGIN )->Get< int >(), (int)Align::BOTTOM_END, TEST_LOCATION );
+  DALI_TEST_EQUALS( retMap->Find( DevelVisual::Transform::Property::SIZE )->Get< Vector2 >(), Vector2( 10, 20 ), TEST_LOCATION );
+
+  END_TEST;
+}
index 2a2ae20..4b965c8 100644 (file)
@@ -18,6 +18,9 @@
 #include <dali-toolkit-test-suite-utils.h>
 #include <dali-toolkit/dali-toolkit.h>
 #include <dali-toolkit/devel-api/controls/progress-bar/progress-bar.h>
+#include <dali-toolkit/devel-api/visuals/text-visual-properties.h>
+#include <dali-toolkit/devel-api/visuals/visual-properties-devel.h>
+#include <dali-toolkit/public-api/visuals/image-visual-properties.h>
 
 using namespace Dali;
 using namespace Dali::Toolkit;
@@ -36,7 +39,10 @@ void utc_dali_toolkit_progressbar_cleanup(void)
 
 namespace
 {
-
+static const char* trackImage = TEST_RESOURCE_DIR "/progress-bar-skin-track-progress.png";
+static const char* progressImage = TEST_RESOURCE_DIR "/progress-bar-skin-progress-progress.png";
+static const char* secondaryProgressImage = TEST_RESOURCE_DIR "/progress-bar-skin-secondary-progress.png";
+static const char* indeterminateImage = TEST_RESOURCE_DIR "/progress-bar-skin-indeterminate.png";
 static bool gObjectCreatedCallBackCalled;
 
 static void TestCallback(BaseHandle handle)
@@ -107,7 +113,7 @@ int UtcDaliProgressBarDownCast(void)
 
 static bool gProgressBarValueChangedCallBackCalled = false;
 
-static void OnProgressBarValueChanged( ProgressBar progressBar, float value )
+static void OnProgressBarValueChanged( ProgressBar progressBar, float value, float secondaryValue )
 {
   gProgressBarValueChangedCallBackCalled = true;
 }
@@ -124,14 +130,21 @@ int UtcDaliProgressBarSignals(void)
   progressBar.SetAnchorPoint(ParentOrigin::TOP_LEFT);
   progressBar.SetSize( Vector2( Stage::GetCurrent().GetSize().x, 20.0f ) );
   progressBar.SetPosition( 0.0f, 0.0f );
-
   progressBar.ValueChangedSignal().Connect( &OnProgressBarValueChanged );
+
   progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.2f);
 
   application.SendNotification();
   application.Render();
 
-  //gProgressBarValueChangedCallBackCalled = false;
+  DALI_TEST_CHECK(gProgressBarValueChangedCallBackCalled);
+
+  //Check Secondary progress value can make signal
+  gProgressBarValueChangedCallBackCalled = false;
+  progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VALUE, 0.2f);
+
+  application.SendNotification();
+  application.Render();
 
   DALI_TEST_CHECK(gProgressBarValueChangedCallBackCalled);
   END_TEST;
@@ -147,91 +160,140 @@ int UtcDaliProgressBarSetPropertyP(void)
   progressBar.SetAnchorPoint(ParentOrigin::TOP_LEFT);
   progressBar.SetSize( Vector2( Stage::GetCurrent().GetSize().x, 20.0f ) );
   progressBar.SetPosition( 0.0f, 0.0f );
-
+  progressBar.ValueChangedSignal().Connect( &OnProgressBarValueChanged );
   Stage::GetCurrent().Add(progressBar);
   application.SendNotification();
   application.Render();
 
-  float val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
-  DALI_TEST_EQUALS(val, 0.0f, TEST_LOCATION);
-
-  progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.2f);
-  val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
-  DALI_TEST_EQUALS(val, 0.2f, TEST_LOCATION);
-
-  progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.8f);
-  val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
-  DALI_TEST_EQUALS(val, 0.8f, TEST_LOCATION);
-
-  progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.4f);
-  val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
-  DALI_TEST_EQUALS(val, 0.4f, TEST_LOCATION);
-
-  progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.0f);
-  val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
-  DALI_TEST_EQUALS(val, 0.0f, TEST_LOCATION);
-
-  progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 1.0f);
-  val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
-  DALI_TEST_EQUALS(val, 1.0f, TEST_LOCATION);
-
-  progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, -1.0f);
-  val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
-  DALI_TEST_EQUALS(val, 1.0f, TEST_LOCATION);
-
-  progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.9f);
-  val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
-  DALI_TEST_EQUALS(val, 0.9f, TEST_LOCATION);
-
-  progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 1.1f);
-  val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
-  DALI_TEST_EQUALS(val, 0.9f, TEST_LOCATION);
-
-  progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 2.0f);
-  val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
-  DALI_TEST_EQUALS(val, 0.9f, TEST_LOCATION);
-
-  progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.0f);
-  val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
-  DALI_TEST_EQUALS(val, 0.0f, TEST_LOCATION);
-
-  progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.9f);
-  val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
-  DALI_TEST_EQUALS(val, 0.9f, TEST_LOCATION);
-
-  progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.09f);
-  val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
-  DALI_TEST_EQUALS(val, 0.09f, TEST_LOCATION);
-
-  progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.1f);
-  val = progressBar.GetProperty<float>(ProgressBar::Property::PROGRESS_VALUE);
-  DALI_TEST_EQUALS(val, 0.1f, TEST_LOCATION);
-
-  {
-    Property::Map map;
-    map["rendererType"] = "image";
-    map["size"] = Vector2(200, 200);
-    map["url"] = "track2.png";
-    progressBar.SetProperty(ProgressBar::Property::TRACK_VISUAL, map);
-    map["url"] = "progress2.png";
-    progressBar.SetProperty(ProgressBar::Property::PROGRESS_VISUAL, map);
-
-    Property::Value value = progressBar.GetProperty(ProgressBar::Property::TRACK_VISUAL);
-    Property::Map* resultMap = value.GetMap();
-    DALI_TEST_CHECK( resultMap );
-    Property::Value* url = resultMap->Find("url");
-    DALI_TEST_CHECK( url ) ;
-    DALI_TEST_EQUALS( *url, "track2.png", TEST_LOCATION );
-
-    value = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VISUAL);
-    resultMap = value.GetMap();
-    DALI_TEST_CHECK( resultMap );
-    url = resultMap->Find("url");
-    DALI_TEST_CHECK( url ) ;
-    DALI_TEST_EQUALS( *url, "progress2.png", TEST_LOCATION );
-
-   }
-
+  Property::Map map;
+  map["visualType"] = "IMAGE";
+  map[Toolkit::ImageVisual::Property::URL] = trackImage;
+  progressBar.SetProperty(ProgressBar::Property::TRACK_VISUAL, map);
+
+  Property::Value value = progressBar.GetProperty(ProgressBar::Property::TRACK_VISUAL);
+  Property::Map* resultMap = value.GetMap();
+  DALI_TEST_CHECK( resultMap );
+  Property::Value* urlValue = resultMap->Find( Toolkit::ImageVisual::Property::URL );
+  std::string urlString;
+  urlValue->Get( urlString );
+  DALI_TEST_CHECK( !urlString.empty() ) ;
+  DALI_TEST_EQUALS( urlString, trackImage, TEST_LOCATION );
+
+  Property::Map colorMap;
+  colorMap["visualType"] = "COLOR";
+  colorMap[Toolkit::ColorVisual::Property::MIX_COLOR] = Color::RED;
+  progressBar.SetProperty(ProgressBar::Property::TRACK_VISUAL, colorMap);
+
+  value = progressBar.GetProperty(ProgressBar::Property::TRACK_VISUAL);
+  resultMap = value.GetMap();
+  DALI_TEST_CHECK( resultMap );
+  Property::Value* colorValue = resultMap->Find( Toolkit::ColorVisual::Property::MIX_COLOR );
+  Vector4 color = Color::TRANSPARENT;
+  colorValue->Get( color );
+  DALI_TEST_CHECK( color != Color::TRANSPARENT );
+  DALI_TEST_EQUALS( color, Color::RED, TEST_LOCATION );
+
+  map[Toolkit::ImageVisual::Property::URL] = progressImage;
+  progressBar.SetProperty(ProgressBar::Property::PROGRESS_VISUAL, map);
+
+  value = progressBar.GetProperty(ProgressBar::Property::PROGRESS_VISUAL);
+  resultMap = value.GetMap();
+  DALI_TEST_CHECK( resultMap );
+  urlValue = resultMap->Find( Toolkit::ImageVisual::Property::URL );
+  urlValue->Get( urlString );
+  DALI_TEST_CHECK( !urlString.empty() ) ;
+  DALI_TEST_EQUALS( urlString, progressImage, TEST_LOCATION );
+
+  progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VISUAL, secondaryProgressImage);
+
+  value = progressBar.GetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VISUAL);
+  resultMap = value.GetMap();
+  DALI_TEST_CHECK( resultMap );
+  urlValue = resultMap->Find( Toolkit::ImageVisual::Property::URL );
+  urlValue->Get( urlString );
+  DALI_TEST_CHECK( !urlString.empty() ) ;
+  DALI_TEST_EQUALS( urlString, secondaryProgressImage, TEST_LOCATION );
+
+  map[Toolkit::ImageVisual::Property::URL] = secondaryProgressImage;
+  progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VISUAL, map);
+
+  value = progressBar.GetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VISUAL);
+  resultMap = value.GetMap();
+  DALI_TEST_CHECK( resultMap );
+  urlValue = resultMap->Find( Toolkit::ImageVisual::Property::URL );
+  urlValue->Get( urlString );
+  DALI_TEST_CHECK( !urlString.empty() ) ;
+  DALI_TEST_EQUALS( urlString, secondaryProgressImage, TEST_LOCATION );
+
+  map[Toolkit::ImageVisual::Property::URL] = indeterminateImage;
+  progressBar.SetProperty(ProgressBar::Property::INDETERMINATE_VISUAL, map);
+
+  value = progressBar.GetProperty(ProgressBar::Property::INDETERMINATE_VISUAL);
+  resultMap = value.GetMap();
+  DALI_TEST_CHECK( resultMap );
+  urlValue = resultMap->Find( Toolkit::ImageVisual::Property::URL );
+  urlValue->Get( urlString );
+  DALI_TEST_CHECK( !urlString.empty() ) ;
+  DALI_TEST_EQUALS( urlString, indeterminateImage, TEST_LOCATION );
+
+  progressBar.SetProperty(ProgressBar::Property::LABEL_VISUAL, "test1");
+
+  value = progressBar.GetProperty(ProgressBar::Property::LABEL_VISUAL);
+  resultMap = value.GetMap();
+  DALI_TEST_CHECK( resultMap );
+  Property::Value* textValue = resultMap->Find(Toolkit::TextVisual::Property::TEXT);
+
+  std::string textString;
+  textValue->Get( textString );
+  DALI_TEST_CHECK( !textString.empty() );
+  DALI_TEST_EQUALS( textString, std::string( "test1" ), TEST_LOCATION );
+
+  Property::Map textVisualMap2;
+  textVisualMap2.Insert( Toolkit::Visual::Property::TYPE, Toolkit::DevelVisual::TEXT );
+  textVisualMap2.Insert( Toolkit::TextVisual::Property::TEXT, "test2" );
+  textVisualMap2.Insert( Toolkit::TextVisual::Property::POINT_SIZE, 12.0f );
+  progressBar.SetProperty(ProgressBar::Property::LABEL_VISUAL, textVisualMap2);
+
+  value = progressBar.GetProperty(ProgressBar::Property::LABEL_VISUAL);
+  resultMap = value.GetMap();
+  DALI_TEST_CHECK( resultMap );
+  textValue = resultMap->Find(Toolkit::TextVisual::Property::TEXT);
+
+  textValue->Get( textString );
+  DALI_TEST_CHECK( !textString.empty() );
+  DALI_TEST_EQUALS( textString, std::string( "test2" ), TEST_LOCATION );
+
+  progressBar.SetProperty(ProgressBar::Property::LABEL_VISUAL, "test3");
+
+  value = progressBar.GetProperty(ProgressBar::Property::LABEL_VISUAL);
+  resultMap = value.GetMap();
+  DALI_TEST_CHECK( resultMap );
+  textValue = resultMap->Find(Toolkit::TextVisual::Property::TEXT);
+
+  std::string textString2;
+  textValue->Get( textString2 );
+  DALI_TEST_CHECK( !textString2.empty() );
+  DALI_TEST_EQUALS( textString2, std::string( "test3" ), TEST_LOCATION );
+
+  Property::Map transitionMap;
+  transitionMap["target"] = "indeterminateVisual";
+  transitionMap["property"] = "offset";
+  transitionMap["initialValue"] = Vector2( 0.0f, 0.0f );
+  transitionMap["targetValue"] = Vector2( 10.0f, 0.0f );
+  transitionMap["animator"] = Property::Map().Add("alphaFunction", "EASE_IN_OUT_BACK")
+                                             .Add("timePeriod", Property::Map().Add("delay", 0.5f).Add("duration", 1.0f));
+  Property::Array array;
+  array.PushBack( transitionMap );
+  progressBar.SetProperty(ProgressBar::Property::INDETERMINATE_VISUAL_ANIMATION, array);
+
+  Property::Map transitionMap2;
+  transitionMap2["target"] = "indeterminateVisual";
+  transitionMap2["property"] = "offset";
+  transitionMap2["initialValue"] = Vector2( 0.0f, 0.0f );
+  transitionMap2["targetValue"] = Vector2( 15.0f, 0.0f );
+  transitionMap2["animator"] = Property::Map().Add("alphaFunction", "EASE_IN_OUT_BACK")
+                                             .Add("timePeriod", Property::Map().Add("delay", 0.5f).Add("duration", 1.0f));
+  progressBar.SetProperty(ProgressBar::Property::INDETERMINATE_VISUAL_ANIMATION, transitionMap2);
   END_TEST;
 }
 
@@ -245,6 +307,7 @@ int UtcDaliProgressBarSetPropertyP1(void)
   progressBar.SetAnchorPoint(ParentOrigin::TOP_LEFT);
   progressBar.SetSize( Vector2( Stage::GetCurrent().GetSize().x, 20.0f ) );
   progressBar.SetPosition( 0.0f, 0.0f );
+  progressBar.ValueChangedSignal().Connect( &OnProgressBarValueChanged );
 
   Stage::GetCurrent().Add(progressBar);
   application.SendNotification();
@@ -254,7 +317,7 @@ int UtcDaliProgressBarSetPropertyP1(void)
   DALI_TEST_EQUALS(val, 0.0f, TEST_LOCATION);
 
   // test to download a file of 100k in chunks
-  float lowerBound = 0, upperBound = 100, progressValue = 0, chunkValue = 0;
+  float lowerBound = 0, upperBound = 100, progressValue = 0, secondaryProgressValue = 0, chunkValue = 0;
 
   while( chunkValue <= upperBound )
   {
@@ -277,6 +340,76 @@ int UtcDaliProgressBarSetPropertyP1(void)
     chunkValue = chunkValue + 100;
   }
 
+  val = progressBar.GetProperty<float>(ProgressBar::Property::SECONDARY_PROGRESS_VALUE);
+  DALI_TEST_EQUALS(val, 0.0f, TEST_LOCATION);
+
+  // test to download a file of 100k in chunks
+  lowerBound = 0, upperBound = 100, secondaryProgressValue = 0, chunkValue = 0;
+
+  while( chunkValue <= upperBound )
+  {
+    secondaryProgressValue = (chunkValue - lowerBound ) / ( upperBound - lowerBound );
+    progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VALUE, secondaryProgressValue);
+    val = progressBar.GetProperty<float>(ProgressBar::Property::SECONDARY_PROGRESS_VALUE);
+    DALI_TEST_EQUALS(val, secondaryProgressValue, TEST_LOCATION);
+    chunkValue = chunkValue + 10;
+  }
+
+  // test to download a file of 1000k in chunks
+  lowerBound = 0, upperBound = 1000, secondaryProgressValue = 0, chunkValue = 0;
+
+  while( chunkValue <= upperBound )
+  {
+    secondaryProgressValue = (chunkValue - lowerBound ) / ( upperBound - lowerBound );
+    progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VALUE, secondaryProgressValue);
+    val = progressBar.GetProperty<float>(ProgressBar::Property::SECONDARY_PROGRESS_VALUE);
+    DALI_TEST_EQUALS(val, secondaryProgressValue, TEST_LOCATION);
+    chunkValue = chunkValue + 100;
+  }
+
   END_TEST;
 }
 
+int UtcDaliProgressBarSetPropertyP2(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline( "UtcDaliProgressBarSetPropertyP2" );
+
+  ProgressBar progressBar = ProgressBar::New();
+  progressBar.SetParentOrigin(ParentOrigin::TOP_LEFT);
+  progressBar.SetAnchorPoint(ParentOrigin::TOP_LEFT);
+  progressBar.SetPosition( 0.0f, 0.0f );
+  progressBar.SetProperty(ProgressBar::Property::LABEL_VISUAL, "test");
+  progressBar.SetProperty(ProgressBar::Property::INDETERMINATE, true);
+  progressBar.SetProperty(ProgressBar::Property::TRACK_VISUAL, trackImage);
+  progressBar.SetProperty(ProgressBar::Property::PROGRESS_VISUAL, progressImage);
+  progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VISUAL, secondaryProgressImage);
+  progressBar.SetProperty(ProgressBar::Property::INDETERMINATE_VISUAL, indeterminateImage);
+
+  Property::Map transitionMap;
+  transitionMap["target"] = "indeterminateVisual";
+  transitionMap["property"] = "offset";
+  transitionMap["initialValue"] = Vector2( 0.0f, 0.0f );
+  transitionMap["targetValue"] = Vector2( 10.0f, 0.0f );
+  transitionMap["animator"] = Property::Map().Add("alphaFunction", "EASE_IN_OUT_BACK")
+                                             .Add("timePeriod", Property::Map().Add("delay", 0.5f).Add("duration", 1.0f));
+  progressBar.SetProperty(ProgressBar::Property::INDETERMINATE_VISUAL_ANIMATION, transitionMap);
+  progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.2f);
+  progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VALUE, 0.3f);
+
+  progressBar.SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS );
+  progressBar.SetSize( Vector2( Stage::GetCurrent().GetSize().x, 20.0f ) );
+  Stage::GetCurrent().Add(progressBar);
+  application.SendNotification();
+  application.Render();
+
+  // Test get/set INDETERMINATE
+  bool val = progressBar.GetProperty<bool>(ProgressBar::Property::INDETERMINATE);
+  DALI_TEST_EQUALS(val, true, TEST_LOCATION);
+
+  progressBar.SetProperty(ProgressBar::Property::INDETERMINATE, false);
+  val = progressBar.GetProperty<bool>(ProgressBar::Property::INDETERMINATE);
+  DALI_TEST_EQUALS(val, false, TEST_LOCATION);
+
+  END_TEST;
+}
index 2dae967..cd9d6bf 100644 (file)
@@ -25,6 +25,7 @@
 #include <dali/integration-api/events/tap-gesture-event.h>
 #include <dali-toolkit-test-suite-utils.h>
 #include <dali-toolkit/dali-toolkit.h>
+#include <dali-toolkit/devel-api/controls/text-controls/text-editor-devel.h>
 
 using namespace Dali;
 using namespace Toolkit;
@@ -84,6 +85,9 @@ const char* const PROPERTY_NAME_INPUT_EMBOSS                         = "inputEmb
 const char* const PROPERTY_NAME_OUTLINE                              = "outline";
 const char* const PROPERTY_NAME_INPUT_OUTLINE                        = "inputOutline";
 
+const char* const PROPERTY_NAME_SMOOTH_SCROLL                        = "smoothScroll";
+const char* const PROPERTY_NAME_SMOOTH_SCROLL_DURATION               = "smoothScrollDuration";
+
 const int DEFAULT_RENDERING_BACKEND = Dali::Toolkit::Text::DEFAULT_RENDERING_BACKEND;
 
 const Dali::Vector4 LIGHT_BLUE( 0.75f, 0.96f, 1.f, 1.f ); // The text highlight color.
@@ -324,6 +328,8 @@ int UtcDaliTextEditorGetPropertyP(void)
   DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_INPUT_EMBOSS ) == TextEditor::Property::INPUT_EMBOSS );
   DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_OUTLINE ) == TextEditor::Property::OUTLINE );
   DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_INPUT_OUTLINE ) == TextEditor::Property::INPUT_OUTLINE );
+  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_SMOOTH_SCROLL ) == DevelTextEditor::Property::SMOOTH_SCROLL );
+  DALI_TEST_CHECK( editor.GetPropertyIndex( PROPERTY_NAME_SMOOTH_SCROLL_DURATION ) == DevelTextEditor::Property::SMOOTH_SCROLL_DURATION );
 
   END_TEST;
 }
@@ -593,6 +599,15 @@ int UtcDaliTextEditorSetPropertyP(void)
   editor.SetProperty( TextEditor::Property::INPUT_OUTLINE, "Outline input properties" );
   DALI_TEST_EQUALS( editor.GetProperty<std::string>( TextEditor::Property::INPUT_OUTLINE ), std::string("Outline input properties"), TEST_LOCATION );
 
+  // Check the smooth scroll property
+  DALI_TEST_EQUALS( editor.GetProperty<bool>( DevelTextEditor::Property::SMOOTH_SCROLL ), false, TEST_LOCATION );
+  editor.SetProperty( DevelTextEditor::Property::SMOOTH_SCROLL, true );
+  DALI_TEST_EQUALS( editor.GetProperty<bool>( DevelTextEditor::Property::SMOOTH_SCROLL ), true, TEST_LOCATION );
+
+  // Check the smooth scroll duration property
+  editor.SetProperty( DevelTextEditor::Property::SMOOTH_SCROLL_DURATION, 0.2f );
+  DALI_TEST_EQUALS( editor.GetProperty<float>( DevelTextEditor::Property::SMOOTH_SCROLL_DURATION ), 0.2f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+
   END_TEST;
 }
 
@@ -1520,3 +1535,73 @@ int utcDaliTextEditorEvent04(void)
 
   END_TEST;
 }
+
+int utcDaliTextEditorEvent05(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" utcDaliTextEditorEvent05");
+
+  // Checks if the highlight actor is created.
+
+  TextEditor editor = TextEditor::New();
+  DALI_TEST_CHECK( editor );
+
+  Stage::GetCurrent().Add( editor );
+
+  editor.SetProperty( TextEditor::Property::TEXT, "Hello\nworl" );
+  editor.SetProperty( TextEditor::Property::POINT_SIZE, 10.f );
+  editor.SetSize( 50.f, 50.f );
+  editor.SetParentOrigin( ParentOrigin::TOP_LEFT );
+  editor.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+  editor.SetProperty( DevelTextEditor::Property::SMOOTH_SCROLL, true );
+  editor.SetProperty( DevelTextEditor::Property::SMOOTH_SCROLL_DURATION, 0.2f );
+
+  // Avoid a crash when core load gl resources.
+  application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  // Tap on the text editor
+  application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 3.f, 25.0f ) ) );
+  application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 3.f, 25.0f ) ) );
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  // Move at the end of the text.
+  application.ProcessEvent( GenerateKey( "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::Down ) );
+  application.ProcessEvent( GenerateKey( "", "", DALI_KEY_CURSOR_DOWN, 0, 0, Integration::KeyEvent::Down ) );
+
+  // Render and notify
+  application.SendNotification();
+  application.Render();
+
+  for( unsigned int index = 0u; index < 10u; ++index )
+  {
+    // Add a character
+    application.ProcessEvent( GenerateKey( "d", "d", 0, 0, 0, Integration::KeyEvent::Down ) );
+
+    // Render and notify
+    application.SendNotification();
+    application.Render();
+  }
+  // Modify duration after scroll is enabled
+  editor.SetProperty( DevelTextEditor::Property::SMOOTH_SCROLL_DURATION, 0.1f );
+
+  // Continuous scroll left to increase coverage
+  for( unsigned int index = 0u; index < 10u; ++index )
+  {
+    application.ProcessEvent( GenerateKey( "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::Down ) );
+
+    // Render and notify
+    application.SendNotification();
+    application.Render();
+  }
+  DALI_TEST_EQUALS( editor.GetProperty<float>( DevelTextEditor::Property::SMOOTH_SCROLL_DURATION ), 0.1f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+  DALI_TEST_EQUALS( editor.GetProperty<bool>( DevelTextEditor::Property::SMOOTH_SCROLL ), true, TEST_LOCATION );
+
+  END_TEST;
+}
index 2bf846b..f0175c4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2017 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.
@@ -1695,6 +1695,7 @@ static void TestTransform( ToolkitTestApplication& application, Visual::Base vis
 
   //Set a new transform
   transform.Clear();
+  transform = DefaultTransform();
   transform.Insert( DevelVisual::Transform::Property::OFFSET, Vector2(20.0f, 20.0f) );
   transform.Insert( DevelVisual::Transform::Property::SIZE, Vector2(100.0f, 100.0f) );
   transform.Insert( DevelVisual::Transform::Property::OFFSET_SIZE_MODE, Vector4(0.0f, 0.0f, 1.0f,1.0f) );
@@ -2083,8 +2084,8 @@ int UtcDaliVisualTextVisualRender(void)
   Renderer renderer = dummyControl.GetRendererAt(0u);
   Property::Index index = renderer.GetPropertyIndex("size");
 
-  tet_infoline( "Test that the TextVisual overrides anything set by developer" );
-  DALI_TEST_EQUALS( renderer.GetProperty<Vector2>(index), Vector2( 1.0, 1.0 ), 0.001f, TEST_LOCATION );
+  tet_infoline( "Test that the TextVisual has NOT overridden what was set by developer" );
+  DALI_TEST_EQUALS( renderer.GetProperty<Vector2>(index), Vector2( 0.5f, 0.5f ), 0.001f, TEST_LOCATION );
 
   END_TEST;
 }
index d010c11..088fb7a 100644 (file)
@@ -19,7 +19,8 @@
  */
 
 // EXTERNAL INCLUDES
-#include <dali/public-api/actors/layer.h>
+#include <dali/public-api/common/compile-time-assert.h>
+#include <dali/devel-api/actors/layer-devel.h>
 
 namespace Dali
 {
@@ -30,14 +31,29 @@ namespace Toolkit
 namespace DepthIndex
 {
 
+// The negative value for background effect and background has been
+// chosen so that newer controls can have content without setting
+// depth index, and go in front of native controls with a background.
+// This backround negative value means that the highest possible value
+// is SIBLING_ORDER_MULTIPLIER-BACKGROUND_EFFECT-1.  The divisor of
+// 100 ensures the range fits within the sibling order range, and has
+// enough gaps to allow Control Authors to use other intermediate depths.
+
 enum Ranges
 {
-    BACKGROUND    = -Dali::Layer::TREE_DEPTH_MULTIPLIER / 10,
-    CONTENT       = 0,
-    TEXT          = Dali::Layer::TREE_DEPTH_MULTIPLIER / 100,
-    DECORATION    = Dali::Layer::TREE_DEPTH_MULTIPLIER / 10
+  BACKGROUND_EFFECT = -2 * DevelLayer::SIBLING_ORDER_MULTIPLIER/100,
+  BACKGROUND    =     -1 * DevelLayer::SIBLING_ORDER_MULTIPLIER/100,
+  CONTENT       =      0,
+  DECORATION    =      1 * DevelLayer::SIBLING_ORDER_MULTIPLIER/100,
+  FOREGROUND_EFFECT =  2 * DevelLayer::SIBLING_ORDER_MULTIPLIER/100
 };
 
+DALI_COMPILE_TIME_ASSERT( (unsigned int)DevelLayer::ACTOR_DEPTH_MULTIPLIER > (unsigned int)DevelLayer::SIBLING_ORDER_MULTIPLIER );
+DALI_COMPILE_TIME_ASSERT( BACKGROUND_EFFECT < BACKGROUND );
+DALI_COMPILE_TIME_ASSERT( BACKGROUND < CONTENT );
+DALI_COMPILE_TIME_ASSERT( CONTENT < DECORATION );
+DALI_COMPILE_TIME_ASSERT( DECORATION < FOREGROUND_EFFECT );
+
 } // namespace DepthIndex
 
 } // namespace Toolkit
index b487029..4c39a87 100644 (file)
@@ -34,6 +34,25 @@ class ProgressBar;
 
 /**
  * @brief ProgressBar is a control to give the user an indication of the progress of an operation.
+ * *
+ *     Determinate Progress State
+ *
+ *      #  : Progress visual
+ *      *  : Secondary Progress visual
+ *      =  : Track visual
+ *     40% : Label visual
+ *
+ *     =============================================
+ *     = ###############**** 40%                   =
+ *     =============================================
+ *
+ *     Indeterminate Progress State
+ *
+ *      /  : Indeterminate visual
+ *
+ *     =============================================
+ *     = ///////////////////////////////////////// =
+ *     =============================================
  *
  * Also progress value percentage is shown as text inside the progress bar.
  *
@@ -42,6 +61,7 @@ class ProgressBar;
  * |-------------------|-------------------------------|
  * | valueChanged      | @ref ValueChangedSignal()     |
  */
+
 class DALI_IMPORT_API ProgressBar : public Control
 {
 public:
@@ -77,6 +97,23 @@ public:
       PROGRESS_VALUE = PROPERTY_START_INDEX,
 
       /**
+       * @brief The secondary progress value of progress bar, secondary progress runs form 0 to 1.
+       * @details Name "secondaryProgressValue", type Property::FLOAT.
+       * @note Optional. If not supplied, the default is 0.
+       * @note Value should be between 0 to 1.
+       * @note If Value is set to 0, progress bar will be set secondary progress to beginning.
+       * @note If Value is set to 1, progress bar will be set secondary progress to end.
+       * @note Any Value outside of the range is ignored.
+       */
+      SECONDARY_PROGRESS_VALUE,
+
+      /**
+       * @brief Sets the progress-bar as \e indeterminate state.
+       * @details name "indeterminate", type bool
+       */
+      INDETERMINATE,
+
+      /**
        * @brief The track Visual value of progress bar, it's a full progress area and it's shown behind PROGRESS_VISUAL.
        * @details Name "trackVisual", type Property::STRING if it is a url, map otherwise.
        * @note Optional. If not supplied, the default track visual will be shown.
@@ -89,6 +126,33 @@ public:
        * @note Optional. If not supplied, the default progress visual will be shown.
        */
       PROGRESS_VISUAL,
+
+      /**
+       * @brief The secondary progress visual of progress bar, size of the secondary progress visual is changed based on SECONDARY_PROGRESS_VALUE.
+       * @details Name "secondaryProgressVisual", type Property::STRING if it is a url, map otherwise.
+       * @note Optional. If not supplied, the secondary progress visual will not be shown.
+       */
+      SECONDARY_PROGRESS_VISUAL,
+
+      /**
+       * @brief The indeterminate visual of progress bar.
+       * @details Name "inditerminateVisual", type Property::STRING if it is a url, map otherwise.
+       * @note Optional. If not supplied, the default inditerminate visual will be shown.
+       */
+      INDETERMINATE_VISUAL,
+
+      /**
+       * @brief The transition data for indeterminate visual animation.
+       * @details Name "indeterminateVisualAnimation", type Property::STRING.
+       * @note Optional. If not supplied, default animation will be played.
+       */
+      INDETERMINATE_VISUAL_ANIMATION,
+
+      /**
+       * @brief The Label visual of progress bar.
+       * @details Name "labelVisual", type Property::MAP.
+       */
+      LABEL_VISUAL,
     };
   };
 
@@ -141,19 +205,20 @@ public:  // Signals
   /**
    * @brief Value changed signal type.
    */
-  typedef Signal< void ( ProgressBar, float ) > ValueChangedSignalType;
+  typedef Signal< void ( ProgressBar, float, float ) > ValueChangedSignalType;
 
   /**
    * @brief Signal emitted when the ProgressBar value changes.
    *
    * A callback of the following type may be connected:
    * @code
-   *   void YourCallbackName( ProgressBar progressBar, float value );
+   *   void YourCallbackName( ProgressBar progressBar, float progressValue, float secondaryProgressValue );
    * @endcode
    * @return The signal to connect to
    */
   ValueChangedSignalType& ValueChangedSignal();
 
+
 public: // Not intended for application developers
 
   /// @cond internal
diff --git a/dali-toolkit/devel-api/controls/text-controls/text-editor-devel.h b/dali-toolkit/devel-api/controls/text-controls/text-editor-devel.h
new file mode 100644 (file)
index 0000000..d842559
--- /dev/null
@@ -0,0 +1,98 @@
+#ifndef DALI_TOOLKIT_TEXT_EDITOR_DEVEL_H
+#define DALI_TOOLKIT_TEXT_EDITOR_DEVEL_H
+
+/*
+ * Copyright (c) 2017 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// INTERNAL INCLUDES
+#include <dali-toolkit/public-api/controls/text-controls/text-editor.h>
+
+namespace Dali
+{
+
+namespace Toolkit
+{
+
+namespace DevelTextEditor
+{
+
+namespace Property
+{
+  enum Type
+  {
+      RENDERING_BACKEND = Dali::Toolkit::TextEditor::Property::RENDERING_BACKEND,
+      TEXT = Dali::Toolkit::TextEditor::Property::TEXT,
+      TEXT_COLOR = Dali::Toolkit::TextEditor::Property::TEXT_COLOR,
+      FONT_FAMILY = Dali::Toolkit::TextEditor::Property::FONT_FAMILY,
+      FONT_STYLE = Dali::Toolkit::TextEditor::Property::FONT_STYLE,
+      POINT_SIZE = Dali::Toolkit::TextEditor::Property::POINT_SIZE,
+      HORIZONTAL_ALIGNMENT = Dali::Toolkit::TextEditor::Property::HORIZONTAL_ALIGNMENT,
+      SCROLL_THRESHOLD = Dali::Toolkit::TextEditor::Property::SCROLL_THRESHOLD,
+      SCROLL_SPEED = Dali::Toolkit::TextEditor::Property::SCROLL_SPEED,
+      PRIMARY_CURSOR_COLOR = Dali::Toolkit::TextEditor::Property::PRIMARY_CURSOR_COLOR,
+      SECONDARY_CURSOR_COLOR = Dali::Toolkit::TextEditor::Property::SECONDARY_CURSOR_COLOR,
+      ENABLE_CURSOR_BLINK = Dali::Toolkit::TextEditor::Property::ENABLE_CURSOR_BLINK,
+      CURSOR_BLINK_INTERVAL = Dali::Toolkit::TextEditor::Property::CURSOR_BLINK_INTERVAL,
+      CURSOR_BLINK_DURATION = Dali::Toolkit::TextEditor::Property::CURSOR_BLINK_DURATION,
+      CURSOR_WIDTH = Dali::Toolkit::TextEditor::Property::CURSOR_WIDTH,
+      GRAB_HANDLE_IMAGE = Dali::Toolkit::TextEditor::Property::GRAB_HANDLE_IMAGE,
+      GRAB_HANDLE_PRESSED_IMAGE = Dali::Toolkit::TextEditor::Property::GRAB_HANDLE_PRESSED_IMAGE,
+      SELECTION_HANDLE_IMAGE_LEFT = Dali::Toolkit::TextEditor::Property::SELECTION_HANDLE_IMAGE_LEFT,
+      SELECTION_HANDLE_IMAGE_RIGHT = Dali::Toolkit::TextEditor::Property::SELECTION_HANDLE_IMAGE_RIGHT,
+      SELECTION_HANDLE_PRESSED_IMAGE_LEFT = Dali::Toolkit::TextEditor::Property::SELECTION_HANDLE_PRESSED_IMAGE_LEFT,
+      SELECTION_HANDLE_PRESSED_IMAGE_RIGHT = Dali::Toolkit::TextEditor::Property::SELECTION_HANDLE_PRESSED_IMAGE_RIGHT,
+      SELECTION_HANDLE_MARKER_IMAGE_LEFT = Dali::Toolkit::TextEditor::Property::SELECTION_HANDLE_MARKER_IMAGE_LEFT,
+      SELECTION_HANDLE_MARKER_IMAGE_RIGHT = Dali::Toolkit::TextEditor::Property::SELECTION_HANDLE_MARKER_IMAGE_RIGHT,
+      SELECTION_HIGHLIGHT_COLOR = Dali::Toolkit::TextEditor::Property::SELECTION_HIGHLIGHT_COLOR,
+      DECORATION_BOUNDING_BOX = Dali::Toolkit::TextEditor::Property::DECORATION_BOUNDING_BOX,
+      ENABLE_MARKUP = Dali::Toolkit::TextEditor::Property::ENABLE_MARKUP,
+      INPUT_COLOR = Dali::Toolkit::TextEditor::Property::INPUT_COLOR,
+      INPUT_FONT_FAMILY = Dali::Toolkit::TextEditor::Property::INPUT_FONT_FAMILY,
+      INPUT_FONT_STYLE = Dali::Toolkit::TextEditor::Property::INPUT_FONT_STYLE,
+      INPUT_POINT_SIZE = Dali::Toolkit::TextEditor::Property::INPUT_POINT_SIZE,
+      LINE_SPACING = Dali::Toolkit::TextEditor::Property::LINE_SPACING,
+      INPUT_LINE_SPACING = Dali::Toolkit::TextEditor::Property::INPUT_LINE_SPACING,
+      UNDERLINE = Dali::Toolkit::TextEditor::Property::UNDERLINE,
+      INPUT_UNDERLINE = Dali::Toolkit::TextEditor::Property::INPUT_UNDERLINE,
+      SHADOW = Dali::Toolkit::TextEditor::Property::SHADOW,
+      INPUT_SHADOW = Dali::Toolkit::TextEditor::Property::INPUT_SHADOW,
+      EMBOSS = Dali::Toolkit::TextEditor::Property::EMBOSS,
+      INPUT_EMBOSS = Dali::Toolkit::TextEditor::Property::INPUT_EMBOSS,
+      OUTLINE = Dali::Toolkit::TextEditor::Property::OUTLINE,
+      INPUT_OUTLINE = Dali::Toolkit::TextEditor::Property::INPUT_OUTLINE,
+
+      /**
+       * @brief name "smoothScroll", type bool
+       * @details Enable or disable the smooth scroll animation
+       */
+      SMOOTH_SCROLL = INPUT_OUTLINE + 1,
+
+      /**
+       * @brief name "smoothScrollDuration", type float
+       * @details Sets the duration of smooth scroll animation
+       */
+      SMOOTH_SCROLL_DURATION
+  };
+} // namespace Property
+
+} // namespace DevelText
+
+} // namespace Toolkit
+
+} // namespace Dali
+
+#endif // DALI_TOOLKIT_TEXT_EDITOR_DEVEL_H
\ No newline at end of file
index c8e9f29..3108cc3 100755 (executable)
@@ -123,6 +123,7 @@ devel_api_super_blur_view_header_files = \
   $(devel_api_src_dir)/controls/super-blur-view/super-blur-view.h
 
 devel_api_text_controls_header_files = \
+  $(devel_api_src_dir)/controls/text-controls/text-editor-devel.h \
   $(devel_api_src_dir)/controls/text-controls/text-selection-popup.h \
   $(devel_api_src_dir)/controls/text-controls/text-selection-toolbar.h
 
index ff3ed25..05005f5 100755 (executable)
 #include <dali/public-api/object/type-registry-helper.h>
 #include <dali/public-api/size-negotiation/relayout-container.h>
 #include <dali/public-api/math/math-utils.h>
+#include <dali-toolkit/devel-api/align-enums.h>
+#include <dali-toolkit/devel-api/visual-factory/visual-base.h>
+#include <dali-toolkit/public-api/visuals/color-visual-properties.h>
+#include <dali-toolkit/public-api/visuals/image-visual-properties.h>
+#include <dali-toolkit/devel-api/visuals/text-visual-properties.h>
+#include <dali-toolkit/devel-api/visuals/visual-properties-devel.h>
+#include <dali-toolkit/devel-api/visual-factory/visual-factory.h>
+
+#include <dali/integration-api/debug.h>
 
 namespace Dali
 {
@@ -46,19 +55,36 @@ BaseHandle Create()
 // Setup properties, signals and actions using the type-registry.
 DALI_TYPE_REGISTRATION_BEGIN( Toolkit::ProgressBar, Toolkit::Control, Create )
 
-DALI_PROPERTY_REGISTRATION( Toolkit, ProgressBar, "progressValue",          FLOAT,    PROGRESS_VALUE         )
-DALI_PROPERTY_REGISTRATION( Toolkit, ProgressBar, "trackVisual",            MAP,      TRACK_VISUAL           )
-DALI_PROPERTY_REGISTRATION( Toolkit, ProgressBar, "progressVisual",         MAP,      PROGRESS_VISUAL        )
-DALI_SIGNAL_REGISTRATION(   Toolkit, ProgressBar, "valueChanged",                     SIGNAL_VALUE_CHANGED   )
+DALI_PROPERTY_REGISTRATION( Toolkit, ProgressBar, "progressValue",                     FLOAT,    PROGRESS_VALUE                   )
+DALI_PROPERTY_REGISTRATION( Toolkit, ProgressBar, "secondaryProgressValue",            FLOAT,    SECONDARY_PROGRESS_VALUE         )
+DALI_PROPERTY_REGISTRATION( Toolkit, ProgressBar, "indeterminate",                     BOOLEAN,  INDETERMINATE                    )
+DALI_PROPERTY_REGISTRATION( Toolkit, ProgressBar, "trackVisual",                       MAP,      TRACK_VISUAL                     )
+DALI_PROPERTY_REGISTRATION( Toolkit, ProgressBar, "progressVisual",                    MAP,      PROGRESS_VISUAL                  )
+DALI_PROPERTY_REGISTRATION( Toolkit, ProgressBar, "secondaryProgressVisual",           MAP,      SECONDARY_PROGRESS_VISUAL        )
+DALI_PROPERTY_REGISTRATION( Toolkit, ProgressBar, "indeterminateVisual",               MAP,      INDETERMINATE_VISUAL             )
+DALI_PROPERTY_REGISTRATION( Toolkit, ProgressBar, "indeterminateVisualAnimation",      ARRAY,    INDETERMINATE_VISUAL_ANIMATION   )
+DALI_PROPERTY_REGISTRATION( Toolkit, ProgressBar, "labelVisual",                       MAP,      LABEL_VISUAL                     )
+DALI_SIGNAL_REGISTRATION(   Toolkit, ProgressBar, "valueChanged",                      SIGNAL_VALUE_CHANGED                       )
 
 DALI_TYPE_REGISTRATION_END()
 
-const char* SKINNED_TRACK_VISUAL = DALI_IMAGE_DIR "slider-skin.9.png";
-const char* SKINNED_PROGRESS_VISUAL = DALI_IMAGE_DIR "slider-skin-progress.9.png";
+struct ProgressDepthIndex
+{
+  // Enum to make sure the visual order
+  enum
+  {
+    TRACK_VISUAL,
+    SECONDARY_PROGRESS_VISUAL,
+    PROGRESS_VISUAL,
+    LABEL_VISUAL,
+    INDETERMINATE_VISUAL
+  };
+};
 
 float DEFAULT_VALUE = 0.0f;
 float DEFAULT_LOWER_BOUND = 0.0f;
 float DEFAULT_UPPER_BOUND = 1.0f;
+float DEFAULT_FONT_SIZE = 12.0f;
 
 } // Unnamed namespace
 
@@ -83,12 +109,9 @@ Dali::Toolkit::ProgressBar ProgressBar::New()
 
 ProgressBar::ProgressBar()
 : Control( ControlBehaviour( CONTROL_BEHAVIOUR_DEFAULT ) ),
-  mTrackVisual(""),
-  mProgressVisual(""),
-  mTrackMap(),
-  mTrackVisualSize(),
-  mProgressVisualSize(),
-  mValue( DEFAULT_VALUE )
+  mProgressValue( DEFAULT_VALUE ),
+  mSecondaryProgressValue( DEFAULT_VALUE ),
+  mIndeterminate( false )
 {
 }
 
@@ -98,49 +121,96 @@ ProgressBar::~ProgressBar()
 
 void ProgressBar::OnInitialize()
 {
-  // Setup
-  CreateChildren();
-
-  // Properties
-  SetTrackVisual( SKINNED_TRACK_VISUAL );
-  SetProgressVisual( SKINNED_PROGRESS_VISUAL );
-
-  DisplayValue( mValue, false );       // Run this last to display the correct value
 }
 
 void ProgressBar::OnRelayout( const Vector2& size, RelayoutContainer& container )
 {
-  // Track
-  if( mTrack )
+
+  Vector2 trackSize( size );
+  mDomain = CalcDomain( size );
+
+  trackSize.width = std::max( 0.0f, size.width ); // Ensure we don't go negative
+
+  Toolkit::Visual::Base trackVisual = GetVisual( Toolkit::ProgressBar::Property::TRACK_VISUAL );
+  Toolkit::Visual::Base secondProgressVisual = GetVisual( Toolkit::ProgressBar::Property::SECONDARY_PROGRESS_VISUAL );
+  Toolkit::Visual::Base progressVisual = GetVisual( Toolkit::ProgressBar::Property::PROGRESS_VISUAL );
+  Toolkit::Visual::Base labelVisual = GetVisual( Toolkit::ProgressBar::Property::LABEL_VISUAL );
+  Toolkit::Visual::Base indeterminateVisual = GetVisual( Toolkit::ProgressBar::Property::INDETERMINATE_VISUAL );
+
+  if( trackVisual )
+  {
+    Property::Map visualTransform;
+
+    visualTransform.Add( Toolkit::DevelVisual::Transform::Property::SIZE, trackSize )
+                   .Add( Toolkit::DevelVisual::Transform::Property::OFFSET_SIZE_MODE, Vector4( 1.0f, 1.0f, 1.0f, 1.0f ) );  // Use Absolute size
+    trackVisual.SetTransformAndSize( visualTransform, trackSize );
+  }
+
+  if( secondProgressVisual )
   {
-    container.Add( mTrack, size );
+    Property::Map visualTransform;
 
-    // mValueTextLabel will have its relayout method called automatically as it's a child of mTrack,
-    // which is added to the container
+    visualTransform.Add( Toolkit::DevelVisual::Transform::Property::SIZE, Vector2( mDomain.from.x + mSecondaryProgressValue * ( mDomain.to.x - mDomain.from.x ), trackSize.height  ) )
+                   .Add( Toolkit::DevelVisual::Transform::Property::OFFSET_SIZE_MODE, Vector4( 1.0f, 1.0f, 1.0f, 1.0f ) )  // Use Absolute size
+                   .Add( Toolkit::DevelVisual::Transform::Property::ORIGIN, Toolkit::Align::TOP_BEGIN )
+                   .Add( Toolkit::DevelVisual::Transform::Property::ANCHOR_POINT, Toolkit::Align::TOP_BEGIN );
+    secondProgressVisual.SetTransformAndSize( visualTransform, trackSize );
   }
 
-  // Progress bar
-  if( mProgress )
+  if( progressVisual )
   {
-    mDomain = CalcDomain( size );
+    Property::Map visualTransform;
+
+    visualTransform.Add( Toolkit::DevelVisual::Transform::Property::SIZE, Vector2( mDomain.from.x + mProgressValue * ( mDomain.to.x - mDomain.from.x ), trackSize.height ) )
+                   .Add( Toolkit::DevelVisual::Transform::Property::OFFSET_SIZE_MODE, Vector4( 1.0f, 1.0f, 1.0f, 1.0f ) )  // Use Absolute size
+                   .Add( Toolkit::DevelVisual::Transform::Property::ORIGIN, Toolkit::Align::TOP_BEGIN )
+                   .Add( Toolkit::DevelVisual::Transform::Property::ANCHOR_POINT, Toolkit::Align::TOP_BEGIN );
+    progressVisual.SetTransformAndSize( visualTransform, trackSize );
+  }
 
-    Vector2 progressSize( size );
+  if( labelVisual )
+  {
+    Property::Map visualTransform;
 
-    // If no progress, then we do not want a n-patch image shown incorrectly
-    progressSize.width = std::max( mProgressVisualSize.width, mDomain.from.x + mValue * ( mDomain.to.x - mDomain.from.x ) );
-    progressSize.width = std::min( progressSize.width, size.width ); // We should not exceed given size
+    visualTransform.Add( Toolkit::DevelVisual::Transform::Property::SIZE, trackSize )
+                   .Add( Toolkit::DevelVisual::Transform::Property::OFFSET_SIZE_MODE, Vector4( 1.0f, 1.0f, 1.0f, 1.0f ) );  // Use Absolute size
 
-    container.Add( mProgress, progressSize );
+    labelVisual.SetTransformAndSize( visualTransform, trackSize );
   }
+
+  if( indeterminateVisual )
+  {
+    Property::Map visualTransform;
+
+    visualTransform.Add( Toolkit::DevelVisual::Transform::Property::SIZE, trackSize )
+                   .Add( Toolkit::DevelVisual::Transform::Property::OFFSET_SIZE_MODE, Vector4( 1.0f, 1.0f, 1.0f, 1.0f ) );  // Use Absolute size
+    indeterminateVisual.SetTransformAndSize( visualTransform, trackSize );
+  }
+
 }
 
 Vector3 ProgressBar::GetNaturalSize()
 {
-  // Return the maximum width/height combinations of our visuals
+  // Return the bigger size after comparing trackVisual naturalSize and labelVisual naturalSize
+  Toolkit::Visual::Base trackVisual =  GetVisual( Toolkit::ProgressBar::Property::TRACK_VISUAL );
+  Toolkit::Visual::Base labelVisual =  GetVisual( Toolkit::ProgressBar::Property::LABEL_VISUAL );
+
+  Size trackSize;
+  Size labelSize;
+
+  if ( trackVisual )
+  {
+    trackVisual.GetNaturalSize( trackSize );
+  }
+  if ( labelVisual )
+  {
+    labelVisual.GetNaturalSize( labelSize );
+  }
 
   Vector3 naturalSize;
-  naturalSize.width = std::max( mTrackVisualSize.width, mProgressVisualSize.width );
-  naturalSize.height = std::max( mTrackVisualSize.height, mProgressVisualSize.height );
+  naturalSize.width = ( trackSize.width > labelSize.width ) ? trackSize.width: labelSize.width;
+  naturalSize.height = ( trackSize.height > labelSize.height ) ? trackSize.height: labelSize.height;
+
   return naturalSize;
 }
 
@@ -149,202 +219,184 @@ ProgressBar::Domain ProgressBar::CalcDomain( const Vector2& currentSize )
    return Domain( Vector2( 0.0f, 0.0f ), currentSize );
 }
 
-void ProgressBar::DisplayValue( float value, bool raiseSignals )
+Toolkit::ProgressBar::ValueChangedSignalType& ProgressBar::ValueChangedSignal()
 {
-  // Signals
-  if( raiseSignals )
-  {
-    Toolkit::ProgressBar self = Toolkit::ProgressBar::DownCast( Self() );
-    mValueChangedSignal.Emit( self, value );
-  }
+  return mValueChangedSignal;
+}
 
-  // Change the value of the text label
-  if( mValueTextLabel )
+void ProgressBar::SetProgressValue( float value )
+{
+  // update the progress bar value (taking float precision errors into account)
+  // TODO : it seems 0.0f cannot into this statement.
+  if( ( mProgressValue != value ) &&
+      ( ( value >= DEFAULT_LOWER_BOUND ) || ( Equals( value, DEFAULT_LOWER_BOUND ) ) ) &&
+      ( ( value <= DEFAULT_UPPER_BOUND ) || ( Equals( value, DEFAULT_UPPER_BOUND ) ) ) )
   {
-    std::stringstream ss;
-    ss.precision( 0 );
-    ss << std::fixed << ( value * 100 ) << "%";
+    mProgressValue = Clamp( value, DEFAULT_LOWER_BOUND, DEFAULT_UPPER_BOUND );
 
-    std::string label = mValueTextLabel.GetProperty<std::string>( Toolkit::TextLabel::Property::TEXT );
-    if( label.compare(ss.str()) )
-    {
-      mValueTextLabel.SetProperty( Toolkit::TextLabel::Property::TEXT, ss.str() );
-    }
+    Toolkit::ProgressBar self = Toolkit::ProgressBar::DownCast( Self() );
+    mValueChangedSignal.Emit( self, mProgressValue, mSecondaryProgressValue );
+    RelayoutRequest();
   }
 }
 
-Toolkit::ImageView ProgressBar::CreateTrack()
+float ProgressBar::GetProgressValue() const
 {
-  Toolkit::ImageView track = Toolkit::ImageView::New();
-  track.SetParentOrigin( ParentOrigin::CENTER );
-  track.SetAnchorPoint( AnchorPoint::CENTER );
-  track.SetResizePolicy(ResizePolicy::USE_ASSIGNED_SIZE, Dimension::ALL_DIMENSIONS );
-
-  return track;
+  return mProgressValue;
 }
 
-void ProgressBar::SetTrackVisual( const std::string& filename )
+void ProgressBar::SetSecondaryProgressValue( float value )
 {
-  if( mTrack && filename.size() > 0 )
+  // update the progress bar value (taking float precision errors into account)
+  // TODO : it seems 0.0f cannot into this statement.
+  if( ( mSecondaryProgressValue != value ) &&
+      ( ( value >= DEFAULT_LOWER_BOUND ) || ( Equals( value, DEFAULT_LOWER_BOUND ) ) ) &&
+      ( ( value <= DEFAULT_UPPER_BOUND ) || ( Equals( value, DEFAULT_UPPER_BOUND ) ) ) )
   {
-    mTrack.SetImage( filename );
-    mTrackVisual = filename;
-    mTrackVisualSize = Vector2::ZERO;
+    mSecondaryProgressValue = Clamp( value, DEFAULT_LOWER_BOUND, DEFAULT_UPPER_BOUND );
+
+    Toolkit::ProgressBar self = Toolkit::ProgressBar::DownCast( Self() );
+    mValueChangedSignal.Emit( self, mProgressValue, mSecondaryProgressValue );
+
     RelayoutRequest();
   }
 }
 
-void ProgressBar::SetTrackVisual( Property::Map map )
+float ProgressBar::GetSecondaryProgressValue() const
 {
-  bool relayoutRequired = false;
+  return mSecondaryProgressValue;
+}
 
-  Property::Value* imageValue = map.Find( "url" );
-  if( imageValue )
+void ProgressBar::SetIndeterminate( bool value )
+{
+  mIndeterminate = value;
+  EnableVisual( Toolkit::ProgressBar::Property::INDETERMINATE_VISUAL, mIndeterminate );
+
+  if( mIndeterminate )
   {
-    mTrackVisual.clear();
-    std::string filename;
-    if( imageValue->Get( filename ) )
+    RelayoutRequest();
+    if( mIndeterminateVisualTransition )
     {
-      if( mTrack && ( filename.size() > 0 ) )
-      {
-        mTrack.SetImage( filename );
-        mTrackMap = map;
-        relayoutRequired = true;
-      }
+      PlayIndeterminateVisualTransition();
     }
   }
-
-  Property::Value* sizeValue = map.Find( "size" );
-  if( sizeValue )
+  else
   {
-    Vector2 size;
-    if( sizeValue->Get( size ) )
+    if( mIndeterminateVisualAni )
     {
-      mTrackVisualSize = size;
-      relayoutRequired = true;
+      mIndeterminateVisualAni.Stop();
     }
   }
+}
 
-  // Visual and/or visual size changed so we need to relayout
-  if( relayoutRequired )
-  {
-    RelayoutRequest();
-  }
+bool ProgressBar::GetIndeterminate() const
+{
+  return mIndeterminate;
 }
 
-std::string ProgressBar::GetTrackVisual()
+void ProgressBar::SetIndeterminateVisualTransition( Toolkit::TransitionData transition )
 {
-  return mTrackVisual;
+  mIndeterminateVisualTransition = transition;
+  if( mIndeterminate )
+  {
+    PlayIndeterminateVisualTransition();
+  }
 }
 
-Toolkit::ImageView ProgressBar::CreateProgress()
+void ProgressBar::PlayIndeterminateVisualTransition()
 {
-  Toolkit::ImageView progress = Toolkit::ImageView::New();
-  progress.SetParentOrigin( ParentOrigin::CENTER_LEFT );
-  progress.SetAnchorPoint( AnchorPoint::CENTER_LEFT );
-  progress.SetResizePolicy(ResizePolicy::USE_ASSIGNED_SIZE, Dimension::ALL_DIMENSIONS );
+  if( mIndeterminateVisualAni )
+  {
+    mIndeterminateVisualAni.Stop();
+    mIndeterminateVisualAni.Clear();
+  }
+
+  mIndeterminateVisualAni = CreateTransition( mIndeterminateVisualTransition );
 
-  return progress;
+  if( mIndeterminate && mIndeterminateVisualAni )
+  {
+    mIndeterminateVisualAni.SetLooping(true);
+    mIndeterminateVisualAni.Play();
+  }
 }
 
-void ProgressBar::SetProgressVisual( const std::string& filename )
+Toolkit::TransitionData ProgressBar::ConvertPropertyToTransition( const Property::Value& value )
 {
-  if( mProgress && ( filename.size() > 0 ) )
+  Toolkit::TransitionData transitionData;
+
+  if( value.GetType() == Property::ARRAY )
   {
-    mProgress.SetImage( filename );
-    mProgressVisual = filename;
-    mProgressVisualSize = Vector2::ZERO;
-    RelayoutRequest();
+    transitionData = Toolkit::TransitionData::New( *value.GetArray() );
+  }
+  else if( value.GetType() == Property::MAP )
+  {
+    transitionData = Toolkit::TransitionData::New( *value.GetMap() );
   }
+
+  return transitionData;
 }
 
-void ProgressBar::SetProgressVisual( Property::Map map )
+/**
+ * Create Visual for given index from a property map or url.
+ * 1) Check if value passed in is a url and create visual
+ * 2) Create visual from map if step (1) is false
+ * 3) Register visual with control with false for enable flag.
+ * 4) Unregister visual if empty map was provided. This is the method to remove a visual
+ */
+
+void ProgressBar::CreateVisualsForComponent( Property::Index index, const Property::Value& value, const float visualDepth )
 {
-  bool relayoutRequired = false;
+  Toolkit::VisualFactory visualFactory = Toolkit::VisualFactory::Get();
+  Toolkit::Visual::Base progressVisual;
 
-  Property::Value* imageValue = map.Find( "url" );
-  if( imageValue )
+  std::string imageUrl;
+  if( value.Get( imageUrl ) )
   {
-    mProgressVisual.clear();
-    std::string filename;
-    if( imageValue->Get( filename ) )
+    if ( !imageUrl.empty() )
     {
-      if( mProgress && ( filename.size() > 0 ) )
-      {
-        mProgress.SetImage( filename );
-        mProgressMap = map;
-        relayoutRequired = true;
-      }
+      progressVisual = visualFactory.CreateVisual(  imageUrl, ImageDimensions()  );
     }
   }
-
-  Property::Value* sizeValue = map.Find( "size" );
-  if( sizeValue )
+  else // Does this code make text-visual can be accepted as visual?
   {
-    Vector2 size;
-    if( sizeValue->Get( size ) )
+    // if its not a string then get a Property::Map from the property if possible.
+    Property::Map *map = value.GetMap();
+    if( map && !map->Empty()  ) // Empty map results in current visual removal.
     {
-      mProgressVisualSize = size;
-      relayoutRequired = true;
+      progressVisual = visualFactory.CreateVisual( *map );
     }
   }
 
-  // Visual and/or visual size changed so we need to relayout
-  if( relayoutRequired )
+  if ( progressVisual )
   {
-    RelayoutRequest();
+    progressVisual.SetDepthIndex( visualDepth );
+    if( index == Toolkit::ProgressBar::Property::INDETERMINATE_VISUAL )
+    {
+      RegisterVisual( index, progressVisual, mIndeterminate );
+    }
+    else
+    {
+      RegisterVisual( index, progressVisual, true );
+    }
+  }
+  else
+  {
+    UnregisterVisual( index );
   }
 }
 
-std::string ProgressBar::GetProgressVisual()
-{
-  return mProgressVisual;
-}
-
-Toolkit::ProgressBar::ValueChangedSignalType& ProgressBar::ValueChangedSignal()
-{
-  return mValueChangedSignal;
-}
-
-void ProgressBar::CreateChildren()
+bool ProgressBar::GetPropertyMapForVisual( Property::Index visualIndex, Property::Map& retreivedMap ) const
 {
-  Actor self = Self();
-
-  // Track
-  mTrack = CreateTrack();
-  self.Add( mTrack ); // Needs to be a direct child as we want to manipulate its size
-
-  // Progress bar
-  mProgress = CreateProgress();
-  self.Add( mProgress ); // Needs to be a direct child as we want to manipulate its size
-
-  // Value Text
-  mValueTextLabel = Toolkit::TextLabel::New();
-  mValueTextLabel.SetName( "ProgressBarValueTextLabel" );
-  mValueTextLabel.SetStyleName( "ProgressBarValueTextLabel" );
-  mValueTextLabel.SetParentOrigin( ParentOrigin::CENTER );
-  mValueTextLabel.SetAnchorPoint( AnchorPoint::CENTER );
-  mValueTextLabel.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
-  mValueTextLabel.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
-  mTrack.Add( mValueTextLabel ); // Add to mTrack and let it automatically set its size
-}
+  bool success = false;
+  Toolkit::Visual::Base visual = GetVisual( visualIndex );
 
-void ProgressBar::SetProgressValue( float value )
-{
-  // update the progress bar value (taking float precision errors into account)
-  if( ( mValue != value ) &&
-      ( ( value >= DEFAULT_LOWER_BOUND ) || ( Equals( value, DEFAULT_LOWER_BOUND ) ) ) &&
-      ( ( value <= DEFAULT_UPPER_BOUND ) || ( Equals( value, DEFAULT_UPPER_BOUND ) ) ) )
+  if ( visual )
   {
-    mValue = Clamp( value, DEFAULT_LOWER_BOUND, DEFAULT_UPPER_BOUND );
-    DisplayValue( mValue, true );
-    RelayoutRequest();
+    visual.CreatePropertyMap( retreivedMap );
+    success = true;
   }
-}
 
-float ProgressBar::GetProgressValue() const
-{
-  return mValue;
+  return success;
 }
 
 // Static class method to support script connecting signals
@@ -378,29 +430,89 @@ void ProgressBar::SetProperty( BaseObject* object, Property::Index propertyIndex
 
     switch ( propertyIndex )
     {
-      case Toolkit::ProgressBar::Property::PROGRESS_VALUE:
+      case Toolkit::ProgressBar::Property::TRACK_VISUAL:
       {
-        progressBarImpl.SetProgressValue( value.Get< float >() );
+        progressBarImpl.CreateVisualsForComponent( propertyIndex, value, ProgressDepthIndex::TRACK_VISUAL );
         break;
       }
 
-      case Toolkit::ProgressBar::Property::TRACK_VISUAL:
+      case Toolkit::ProgressBar::Property::SECONDARY_PROGRESS_VISUAL:
       {
-        Property::Map map;
-        if( value.Get( map ) )
-        {
-          progressBarImpl.SetTrackVisual( map );
-        }
+        progressBarImpl.CreateVisualsForComponent( propertyIndex, value, ProgressDepthIndex::SECONDARY_PROGRESS_VISUAL );
         break;
       }
 
       case Toolkit::ProgressBar::Property::PROGRESS_VISUAL:
       {
+        progressBarImpl.CreateVisualsForComponent( propertyIndex, value, ProgressDepthIndex::PROGRESS_VISUAL );
+        break;
+      }
+
+      case Toolkit::ProgressBar::Property::INDETERMINATE_VISUAL:
+      {
+        progressBarImpl.CreateVisualsForComponent( propertyIndex, value, ProgressDepthIndex::INDETERMINATE_VISUAL );
+        break;
+      }
+
+      case Toolkit::ProgressBar::Property::LABEL_VISUAL:
+      {
         Property::Map map;
-        if( value.Get( map ) )
+        std::string textString;
+
+        if ( value.Get( textString ) )
+        {
+          // set new text string as TEXT property
+          Property::Map newTextMap;
+          Toolkit::Visual::Base label = progressBarImpl.GetVisual( Toolkit::ProgressBar::Property::LABEL_VISUAL );
+
+          if( label )
+          {
+            label.CreatePropertyMap( map );
+          }
+
+          // if LABEL_VISUAL doesn't set before, add Visual property "TYPE" to create new text Visual
+          if( map.Empty() )
+          {
+            newTextMap.Add( Toolkit::Visual::Property::TYPE, Toolkit::DevelVisual::TEXT );
+            newTextMap.Add( Toolkit::TextVisual::Property::POINT_SIZE, DEFAULT_FONT_SIZE );
+          }
+          newTextMap.Add( Toolkit::TextVisual::Property::TEXT, textString );
+
+          map.Merge( newTextMap );
+        }
+        else
         {
-          progressBarImpl.SetProgressVisual( map );
+          value.Get( map );
         }
+
+        if( !map.Empty() )
+        {
+          progressBarImpl.CreateVisualsForComponent( propertyIndex, map, ProgressDepthIndex::LABEL_VISUAL );
+        }
+        break;
+      }
+
+      case Toolkit::ProgressBar::Property::PROGRESS_VALUE:
+      {
+        progressBarImpl.SetProgressValue( value.Get< float >() );
+        break;
+      }
+
+      case Toolkit::ProgressBar::Property::SECONDARY_PROGRESS_VALUE:
+      {
+        progressBarImpl.SetSecondaryProgressValue( value.Get< float >() );
+        break;
+      }
+
+      case Toolkit::ProgressBar::Property::INDETERMINATE:
+      {
+        progressBarImpl.SetIndeterminate( value.Get< bool >() );
+        break;
+      }
+
+      case Toolkit::ProgressBar::Property::INDETERMINATE_VISUAL_ANIMATION:
+      {
+        progressBarImpl.SetIndeterminateVisualTransition( progressBarImpl.ConvertPropertyToTransition( value ) );
         break;
       }
     }
@@ -419,43 +531,59 @@ Property::Value ProgressBar::GetProperty( BaseObject* object, Property::Index pr
 
     switch ( propertyIndex )
     {
+      case Toolkit::ProgressBar::Property::TRACK_VISUAL:
+      case Toolkit::ProgressBar::Property::PROGRESS_VISUAL:
+      case Toolkit::ProgressBar::Property::SECONDARY_PROGRESS_VISUAL:
+      case Toolkit::ProgressBar::Property::INDETERMINATE_VISUAL:
+      case Toolkit::ProgressBar::Property::LABEL_VISUAL:
+      {
+        Property::Map visualProperty;
+        if ( progressBarImpl.GetPropertyMapForVisual( propertyIndex, visualProperty ) )
+        {
+          value = visualProperty;
+        }
+        break;
+      }
+
       case Toolkit::ProgressBar::Property::PROGRESS_VALUE:
       {
         value = progressBarImpl.GetProgressValue();
         break;
       }
 
-      case Toolkit::ProgressBar::Property::TRACK_VISUAL:
+      case Toolkit::ProgressBar::Property::SECONDARY_PROGRESS_VALUE:
       {
-        if( !progressBarImpl.mTrackVisual.empty() )
-        {
-          value = progressBarImpl.GetTrackVisual();
-        }
-        else if( !progressBarImpl.mTrackMap.Empty() )
-        {
-          value = progressBarImpl.mTrackMap;
-        }
+        value = progressBarImpl.GetSecondaryProgressValue();
         break;
       }
 
-      case Toolkit::ProgressBar::Property::PROGRESS_VISUAL:
+      case Toolkit::ProgressBar::Property::INDETERMINATE:
       {
-        if( !progressBarImpl.mProgressVisual.empty() )
-        {
-          value = progressBarImpl.GetProgressVisual();
-        }
-        else if( !progressBarImpl.mProgressMap.Empty() )
-        {
-          value = progressBarImpl.mProgressMap;
-        }
+        value = progressBarImpl.GetIndeterminate();
         break;
       }
+
+      case Toolkit::ProgressBar::Property::INDETERMINATE_VISUAL_ANIMATION:
+      {
+        //TODO: Return INDETERMINATE_VISUAL_TRANSITION;
+      }
     }
   }
 
   return value;
 }
 
+void ProgressBar::OnStageConnection( int depth )
+{
+  // Chain up first (ensures visuals are ready to draw)
+  Control::OnStageConnection( depth );
+
+  if( mIndeterminate )
+  {
+    PlayIndeterminateVisualTransition();
+  }
+}
+
 } // namespace Internal
 
 } // namespace Toolkit
index f5f7e91..b59c8b3 100755 (executable)
  *
  */
 
-// EXTERNAL INCLUDES
-#include <dali/public-api/object/property-map.h>
 
 // INTERNAL INCLUDES
 #include <dali-toolkit/public-api/controls/control-impl.h>
+#include <dali/public-api/animation/animation.h>
 #include <dali-toolkit/devel-api/controls/progress-bar/progress-bar.h>
-#include <dali-toolkit/public-api/controls/image-view/image-view.h>
-#include <dali-toolkit/public-api/controls/text-controls/text-label.h>
+#include <dali-toolkit/devel-api/visual-factory/transition-data.h>
 
 namespace Dali
 {
@@ -63,7 +61,6 @@ public:
    *
    * @param[in] value The value to set. Will be clamped to [lowerBound .. upperBound]
    */
-
   void SetProgressValue( float value );
 
   /**
@@ -73,14 +70,62 @@ public:
    */
   float GetProgressValue() const;
 
+  /**
+   * Set the secondary progress value of the ProgressBar
+   *
+   * @param[in] value The secondary progress value to set. Will be clamped to [lowerBound .. upperBound]
+   */
+  void SetSecondaryProgressValue( float value );
+
+  /**
+   * Get the secondary progress value of the ProgressBar
+   *
+   * @return The current secondary progress value of the ProgressBar
+   */
+  float GetSecondaryProgressValue() const;
+
+  /**
+   * Set the indeterminate state of the ProgressBar
+   *
+   * @param[in] value The value to set.
+   */
+  void SetIndeterminate( bool value );
+
+  /**
+   * Get the indeterminate state value of the ProgressBar
+   *
+   * @return The current determined state of the ProgressBar
+   */
+  bool GetIndeterminate() const;
+
+  /**
+   * Set the indeterminate visual transition of the ProgressBar
+   *
+   * @param[in] Transition data map to set.
+   */
+  void SetIndeterminateVisualTransition( Property::Map transtion );
+
+  /**
+   * Get the indeterminate visual transition data map of the ProgressBar
+   *
+   * @return The current indeterminate visual transition data map of the ProgressBar
+   */
+  Property::Map GetIndeterminateVisualTransition() const;
+
+  /**
+   * Play the indeterminate visual transition
+   */
+  void PlayIndeterminateVisualTransition();
+
 public:
   //Signals
 
   /**
-   * @copydoc Toolkit::ProgressBar::ValueChangedSignal()
+   * @copydoc toolkit::progressbar::valuechangedsignal()
    */
   Toolkit::ProgressBar::ValueChangedSignalType& ValueChangedSignal();
 
+
   /**
    * Connects a callback function with the object's signals.
    * @param[in] object The object providing the signal.
@@ -168,73 +213,29 @@ private:
   Domain CalcDomain( const Vector2& currentSize );
 
   /**
-   * Create the track for the ProgressBar
-   *
-   * @return The track actor
-   */
-  Toolkit::ImageView CreateTrack();
-
-  /**
-   * Create the progress track for the ProgressBar
-   *
-   * @return The track actor
-   */
-  Toolkit::ImageView CreateProgress();
-
-  /**
-   * Create all the children
-   */
-  void CreateChildren();
-
-  /**
-   * Set value choosing whether to fire signals or not
-   *
-   * @paramp[in] value The value to set
-   * @param[in] raiseSignals Configure signals to be raised or not.
-   */
-  void DisplayValue( float value, bool raiseSignals );
-
-  /**
-   * Create the image for the track
-   *
-   * @param[in] filename The track image
-   */
-  void SetTrackVisual( const std::string& filename );
-
-  /**
-   * @brief Set the track visual from an Dali::Property::Map
-   *
-   * @param[in] map The Dali::Property::Map to use for to display
+   * Set indeterminate visual transition animation
    */
-  void SetTrackVisual( Dali::Property::Map map );
+  void SetIndeterminateVisualTransition( Toolkit::TransitionData transtion );
 
   /**
-   * @brief Return the track image.
-   *
-   * @return The track image.
+   * Convert value to transition data
    */
-  std::string GetTrackVisual();
+  Toolkit::TransitionData ConvertPropertyToTransition( const Property::Value& value );
 
   /**
-   * Create the image for the progress bar
-   *
-   * @param[in] filename The progress bar image
+   * Update progress bar label when progress value is changed
    */
-  void SetProgressVisual( const std::string& filename );
+  void CreateVisualsForComponent( Property::Index index, const Property::Value& value, const float visualDepth );
 
   /**
-   * @brief Set the progress visual from an Dali::Property::Map
-   *
-   * @param[in] map The Dali::Property::Map to use for to display
+   * Update progress bar label when progress value is changed
    */
-  void SetProgressVisual( Dali::Property::Map map );
+  bool GetPropertyMapForVisual( Property::Index visualIndex, Property::Map& retreivedMap ) const;
 
   /**
-   * @brief Return the progress bar image.
-   *
-   * @return The progress bar image if it exists.
+   * Check if we should start animating
    */
-  std::string GetProgressVisual();
+  virtual void OnStageConnection( int depth );
 
 private:
 
@@ -246,23 +247,15 @@ private:
 
 private:
 
-  Domain mDomain;                           ///< Current domain of the handle
-
-  Toolkit::ImageView mTrack;                ///< Track image
-  Toolkit::ImageView mProgress;             ///< Progress bar
-  Toolkit::TextLabel mValueTextLabel;       ///< Text value to show progress percentage
-  Toolkit::ProgressBar::ValueChangedSignalType mValueChangedSignal;       ///< Signal emitted when the value is changed
-
-  std::string mTrackVisual;           ///< Image for track image
-  std::string mProgressVisual;        ///< Image for progress bar image
-
-  Property::Map mTrackMap;         ///< the Property::Map if the image came from a Property::Map, empty otherwise
-  Property::Map mProgressMap;      ///< the Property::Map if the image came from a Property::Map, empty otherwise
+  Domain mDomain;                                                     ///< Current domain of the handle
 
-  Vector2 mTrackVisualSize;      ///< Size of the track image used
-  Vector2 mProgressVisualSize;   ///< Size of progress image used
+  Animation mIndeterminateVisualAni;                                  ///< Animation for indetrminate visual. Transition animation.
+  Toolkit::ProgressBar::ValueChangedSignalType mValueChangedSignal;   ///< Signal emitted when the value is changed
 
-  float mValue;             ///< Current value of ProgressBar
+  Toolkit::TransitionData mIndeterminateVisualTransition;             ///< Transition data map for mIndeterminateVisualAni
+  float mProgressValue;                                               ///< Current value of ProgressBar
+  float mSecondaryProgressValue;                                      ///< Current loading value of ProgressBar
+  bool mIndeterminate;                                                ///< Whether the progress state is determined or not
 };
 
 } // namespace Internal
index aab4f95..b6d9900 100644 (file)
@@ -25,6 +25,7 @@
 #include <dali/public-api/common/stage.h>
 #include <dali/public-api/images/resource-image.h>
 #include <dali/devel-api/adaptor-framework/virtual-keyboard.h>
+#include <dali/devel-api/object/property-helper-devel.h>
 #include <dali/public-api/object/type-registry-helper.h>
 #include <dali/integration-api/adaptors/adaptor.h>
 #include <dali/integration-api/debug.h>
@@ -33,6 +34,7 @@
 #include <dali-toolkit/public-api/text/rendering-backend.h>
 #include <dali-toolkit/public-api/visuals/color-visual-properties.h>
 #include <dali-toolkit/devel-api/controls/control-depth-index-ranges.h>
+#include <dali-toolkit/devel-api/controls/text-controls/text-editor-devel.h>
 #include <dali-toolkit/devel-api/visuals/visual-properties-devel.h>
 #include <dali-toolkit/internal/text/rendering/text-backend.h>
 #include <dali-toolkit/internal/text/text-effects-style.h>
@@ -122,6 +124,8 @@ DALI_PROPERTY_REGISTRATION( Toolkit, TextEditor, "emboss",
 DALI_PROPERTY_REGISTRATION( Toolkit, TextEditor, "inputEmboss",                          MAP,       INPUT_EMBOSS                         )
 DALI_PROPERTY_REGISTRATION( Toolkit, TextEditor, "outline",                              MAP,       OUTLINE                              )
 DALI_PROPERTY_REGISTRATION( Toolkit, TextEditor, "inputOutline",                         MAP,       INPUT_OUTLINE                        )
+DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextEditor, "smoothScroll",                   BOOLEAN,   SMOOTH_SCROLL                        )
+DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextEditor, "smoothScrollDuration",           FLOAT,     SMOOTH_SCROLL_DURATION               )
 
 DALI_SIGNAL_REGISTRATION( Toolkit, TextEditor, "textChanged",        SIGNAL_TEXT_CHANGED )
 DALI_SIGNAL_REGISTRATION( Toolkit, TextEditor, "inputStyleChanged",  SIGNAL_INPUT_STYLE_CHANGED )
@@ -590,6 +594,26 @@ void TextEditor::SetProperty( BaseObject* object, Property::Index index, const P
         }
         break;
       }
+      case Toolkit::DevelTextEditor::Property::SMOOTH_SCROLL:
+      {
+        const bool enable = value.Get< bool >();
+        DALI_LOG_INFO( gLogFilter, Debug::Verbose, "TextEditor SMOOTH_SCROLL %d\n", enable );
+
+        impl.mScrollAnimationEnabled = enable;
+        break;
+      }
+      case Toolkit::DevelTextEditor::Property::SMOOTH_SCROLL_DURATION:
+      {
+        const float duration = value.Get< float >();
+        DALI_LOG_INFO( gLogFilter, Debug::General, "TextEditor SMOOTH_SCROLL_DURATION %f\n", duration );
+
+        impl.mScrollAnimationDuration = duration;
+        if ( impl.mTextVerticalScroller )
+        {
+          impl.mTextVerticalScroller->SetDuration( duration );
+        }
+        break;
+      }
     } // switch
   } // texteditor
 }
@@ -891,6 +915,16 @@ Property::Value TextEditor::GetProperty( BaseObject* object, Property::Index ind
         GetOutlineProperties( impl.mController, value, Text::EffectStyle::INPUT );
         break;
       }
+      case Toolkit::DevelTextEditor::Property::SMOOTH_SCROLL:
+      {
+        value = impl.mScrollAnimationEnabled;
+        break;
+      }
+      case Toolkit::DevelTextEditor::Property::SMOOTH_SCROLL_DURATION:
+      {
+        value = impl.mScrollAnimationDuration;
+        break;
+      }
     } //switch
   }
 
@@ -1094,7 +1128,7 @@ void TextEditor::RenderText( Text::Controller::UpdateTextType updateTextType )
     {
       renderableActor = mRenderer->Render( mController->GetView(),
                                            mAlignmentOffset,
-                                           DepthIndex::TEXT );
+                                           DepthIndex::CONTENT );
     }
 
     if( renderableActor != mRenderableActor )
@@ -1106,10 +1140,6 @@ void TextEditor::RenderText( Text::Controller::UpdateTextType updateTextType )
 
   if( mRenderableActor )
   {
-    const Vector2& scrollOffset = mController->GetTextModel()->GetScrollPosition();
-
-    mRenderableActor.SetPosition( scrollOffset.x + mAlignmentOffset, scrollOffset.y );
-
     // Make sure the actors are parented correctly with/without clipping
     Actor self = mStencil ? mStencil : Self();
 
@@ -1123,6 +1153,8 @@ void TextEditor::RenderText( Text::Controller::UpdateTextType updateTextType )
     mClippingDecorationActors.clear();
 
     self.Add( mRenderableActor );
+
+    ApplyScrollPosition();
   }
 }
 
@@ -1397,12 +1429,42 @@ void TextEditor::OnIdleSignal()
   mIdleCallback = NULL;
 }
 
+void TextEditor::ApplyScrollPosition()
+{
+  const Vector2& scrollOffset = mController->GetTextModel()->GetScrollPosition();
+  float scrollAmount = 0.0f;
+
+  if ( mScrollAnimationEnabled )
+  {
+    scrollAmount = mController->GetScrollAmountByUserInput();
+  }
+  if ( mTextVerticalScroller )
+  {
+    mTextVerticalScroller->CheckStartAnimation( mRenderableActor, scrollOffset.x + mAlignmentOffset, scrollOffset.y - scrollAmount, scrollAmount );
+  }
+  else if ( Equals( scrollAmount, 0.0f, Math::MACHINE_EPSILON_1 ))
+  {
+    mRenderableActor.SetPosition( scrollOffset.x + mAlignmentOffset, scrollOffset.y - scrollAmount );
+  }
+  else
+  {
+    mTextVerticalScroller = Text::TextVerticalScroller::New();
+    if ( !Equals( mScrollAnimationDuration, 0.0f, Math::MACHINE_EPSILON_1 ))
+    {
+      mTextVerticalScroller->SetDuration( mScrollAnimationDuration );
+    }
+    mTextVerticalScroller->CheckStartAnimation( mRenderableActor, scrollOffset.x + mAlignmentOffset, scrollOffset.y - scrollAmount, scrollAmount );
+  }
+}
+
 TextEditor::TextEditor()
 : Control( ControlBehaviour( CONTROL_BEHAVIOUR_DEFAULT ) ),
   mIdleCallback( NULL ),
   mAlignmentOffset( 0.f ),
+  mScrollAnimationDuration( 0.f ),
   mRenderingBackend( DEFAULT_RENDERING_BACKEND ),
-  mHasBeenStaged( false )
+  mHasBeenStaged( false ),
+  mScrollAnimationEnabled( false )
 {
 }
 
index 2be7072..09465a8 100644 (file)
@@ -28,6 +28,7 @@
 #include <dali-toolkit/internal/text/text-control-interface.h>
 #include <dali-toolkit/internal/text/text-editable-control-interface.h>
 #include <dali-toolkit/internal/text/text-controller.h>
+#include <dali-toolkit/internal/text/text-vertical-scroller.h>
 #include <dali-toolkit/internal/text/rendering/text-renderer.h>
 
 namespace Dali
@@ -227,6 +228,13 @@ private: // Implementation
   void OnIdleSignal();
 
   /**
+   * @brief set RenderActor's position with new scrollPosition
+   *
+   * Apply updated scroll position or start scroll animation if VerticalScrollAnimation is enabled
+   */
+  void ApplyScrollPosition();
+
+  /**
    * Construct a new TextEditor.
    */
   TextEditor();
@@ -257,6 +265,7 @@ private: // Data
   Text::ControllerPtr mController;
   Text::RendererPtr mRenderer;
   Text::DecoratorPtr mDecorator;
+  Text::TextVerticalScrollerPtr mTextVerticalScroller;
   Toolkit::Control mStencil;
   std::vector<Actor> mClippingDecorationActors;   ///< Decoration actors which need clipping.
 
@@ -264,8 +273,10 @@ private: // Data
   CallbackBase* mIdleCallback;
 
   float mAlignmentOffset;
+  float mScrollAnimationDuration;
   int mRenderingBackend;
   bool mHasBeenStaged:1;
+  bool mScrollAnimationEnabled:1;
 };
 
 } // namespace Internal
index 63568e6..6a846e4 100644 (file)
@@ -1272,7 +1272,7 @@ void TextField::RenderText( Text::Controller::UpdateTextType updateTextType )
     {
       renderableActor = mRenderer->Render( mController->GetView(),
                                            mAlignmentOffset,
-                                           DepthIndex::TEXT );
+                                           DepthIndex::CONTENT );
     }
 
     if( renderableActor != mRenderableActor )
index 9f7863f..b6b5db0 100644 (file)
@@ -731,7 +731,7 @@ void TextLabel::RenderText()
   {
     renderableActor = mRenderer->Render( mController->GetView(),
                                          alignmentOffset,
-                                         DepthIndex::TEXT );
+                                         DepthIndex::CONTENT );
   }
 
   if( renderableActor != mRenderableActor )
index 7f39ff6..84f3214 100755 (executable)
@@ -88,6 +88,7 @@ toolkit_src_files = \
    \
    $(toolkit_src_dir)/focus-manager/keyboard-focus-manager-impl.cpp \
    $(toolkit_src_dir)/focus-manager/keyinput-focus-manager-impl.cpp \
+   $(toolkit_src_dir)/helpers/property-helper.cpp \
    $(toolkit_src_dir)/filters/blur-two-pass-filter.cpp \
    $(toolkit_src_dir)/filters/emboss-filter.cpp \
    $(toolkit_src_dir)/filters/image-filter.cpp \
@@ -118,6 +119,7 @@ toolkit_src_files = \
    $(toolkit_src_dir)/text/text-io.cpp \
    $(toolkit_src_dir)/text/text-model.cpp \
    $(toolkit_src_dir)/text/text-scroller.cpp \
+   $(toolkit_src_dir)/text/text-vertical-scroller.cpp \
    $(toolkit_src_dir)/text/text-view.cpp \
    $(toolkit_src_dir)/text/text-view-interface.cpp \
    $(toolkit_src_dir)/text/visual-model-impl.cpp \
diff --git a/dali-toolkit/internal/helpers/property-helper.cpp b/dali-toolkit/internal/helpers/property-helper.cpp
new file mode 100644 (file)
index 0000000..94be023
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2017 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// HEADER
+#include <dali-toolkit/internal/helpers/property-helper.h>
+
+// EXTERNAL INCLUDES
+#include <dali/public-api/object/property-array.h>
+
+namespace Dali
+{
+
+namespace Toolkit
+{
+
+namespace Internal
+{
+
+bool GetStringFromProperty( const Property::Value& value, std::string& output )
+{
+  bool extracted = false;
+  if( value.Get( output ) )
+  {
+    extracted = true;
+  }
+  else
+  {
+    Property::Array* array = value.GetArray();
+    if( array )
+    {
+      const unsigned int arraySize = array->Size();
+      for( unsigned int i = 0; i < arraySize; ++i )
+      {
+        std::string element;
+        if( array->GetElementAt( i ).Get( element ) )
+        {
+          extracted = true;
+          output += element + '\n';
+        }
+        else
+        {
+          // If property in array is anything other than a string, then it is invalid so break and clear output.
+          output.clear();
+          extracted = false;
+          break;
+        }
+      }
+    }
+  }
+
+  return extracted;
+}
+
+} // namespace Internal
+
+} // namespace Toolkit
+
+} // namespace Dali
diff --git a/dali-toolkit/internal/helpers/property-helper.h b/dali-toolkit/internal/helpers/property-helper.h
new file mode 100644 (file)
index 0000000..e91062d
--- /dev/null
@@ -0,0 +1,52 @@
+#ifndef DALI_TOOLKIT_INTERNAL_PROPERTY_HELPER_H
+#define DALI_TOOLKIT_INTERNAL_PROPERTY_HELPER_H
+
+/*
+ * Copyright (c) 2017 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// EXTERNAL INCLUDES
+#include <string>
+#include <dali/public-api/object/property.h>
+
+namespace Dali
+{
+
+namespace Toolkit
+{
+
+namespace Internal
+{
+
+/**
+ * @brief Parses a Property::Value to retrieve the string.
+ *
+ * If value is a Property::STRING, then it simply extracts the required string.
+ * If value is a Property::ARRAY, then it combines all the strings it contains into one adding a newline character to each line.
+ * The second option allows users to write long strings over several lines in a JSON file.
+ *
+ * @return True if a string was extracted successfully.
+ */
+bool GetStringFromProperty( const Property::Value& value, std::string& output );
+
+} // namespace Internal
+
+} // namespace Toolkit
+
+} // namespace Dali
+
+
+#endif // DALI_TOOLKIT_INTERNAL_PROPERTY_HELPER_H
index de437fb..2332c7a 100644 (file)
@@ -21,6 +21,7 @@
 // EXTERNAL INCLUDES
 #include <dali/public-api/rendering/geometry.h>
 #include <dali/public-api/rendering/renderer.h>
+#include <dali/public-api/images/frame-buffer-image.h>
 #include <dali/devel-api/text-abstraction/font-client.h>
 #include <dali/integration-api/debug.h>
 
index 81b6554..424ac0b 100644 (file)
@@ -148,6 +148,7 @@ struct EventData
   bool mScrollAfterDelete               : 1;   ///< Whether to scroll after delete characters.
   bool mAllTextSelected                 : 1;   ///< True if the selection handles are selecting all the text.
   bool mUpdateInputStyle                : 1;   ///< Whether to update the input style after moving the cursor.
+  bool mCheckScrollAmount               : 1;   ///< Whether to check scrolled amount after updating the position
 };
 
 struct ModifyEvent
index 58def07..1bb0fed 100644 (file)
@@ -1344,16 +1344,17 @@ Vector3 Controller::GetNaturalSize()
                                                                            BIDI_INFO         |
                                                                            SHAPE_TEXT        |
                                                                            GET_GLYPH_METRICS );
+
+    // Set the update info to relayout the whole text.
+    mImpl->mTextUpdateInfo.mParagraphCharacterIndex = 0u;
+    mImpl->mTextUpdateInfo.mRequestedNumberOfCharacters = mImpl->mModel->mLogicalModel->mText.Count();
+
     // Make sure the model is up-to-date before layouting
     mImpl->UpdateModel( onlyOnceOperations );
 
     // Layout the text for the new width.
     mImpl->mOperationsPending = static_cast<OperationsMask>( mImpl->mOperationsPending | LAYOUT );
 
-    // Set the update info to relayout the whole text.
-    mImpl->mTextUpdateInfo.mParagraphCharacterIndex = 0u;
-    mImpl->mTextUpdateInfo.mRequestedNumberOfCharacters = mImpl->mModel->mLogicalModel->mText.Count();
-
     // Store the actual control's size to restore later.
     const Size actualControlSize = mImpl->mModel->mVisualModel->mControlSize;
 
@@ -1416,6 +1417,11 @@ float Controller::GetHeightForWidth( float width )
                                                                            BIDI_INFO         |
                                                                            SHAPE_TEXT        |
                                                                            GET_GLYPH_METRICS );
+
+    // Set the update info to relayout the whole text.
+    mImpl->mTextUpdateInfo.mParagraphCharacterIndex = 0u;
+    mImpl->mTextUpdateInfo.mRequestedNumberOfCharacters = mImpl->mModel->mLogicalModel->mText.Count();
+
     // Make sure the model is up-to-date before layouting
     mImpl->UpdateModel( onlyOnceOperations );
 
@@ -1423,10 +1429,6 @@ float Controller::GetHeightForWidth( float width )
     // Layout the text for the new width.
     mImpl->mOperationsPending = static_cast<OperationsMask>( mImpl->mOperationsPending | LAYOUT );
 
-    // Set the update info to relayout the whole text.
-    mImpl->mTextUpdateInfo.mParagraphCharacterIndex = 0u;
-    mImpl->mTextUpdateInfo.mRequestedNumberOfCharacters = mImpl->mModel->mLogicalModel->mText.Count();
-
     // Store the actual control's width.
     const float actualControlWidth = mImpl->mModel->mVisualModel->mControlSize.width;
 
@@ -1467,6 +1469,18 @@ const ModelInterface* const Controller::GetTextModel() const
   return mImpl->mModel.Get();
 }
 
+float Controller::GetScrollAmountByUserInput()
+{
+  float scrollAmount = 0.0f;
+
+  if (NULL != mImpl->mEventData && mImpl->mEventData->mCheckScrollAmount)
+  {
+    scrollAmount = mImpl->mModel->mScrollPosition.y -  mImpl->mModel->mScrollPositionLast.y;
+    mImpl->mEventData->mCheckScrollAmount = false;
+  }
+  return scrollAmount;
+}
+
 // public : Relayout.
 
 Controller::UpdateTextType Controller::Relayout( const Size& size )
@@ -1538,6 +1552,7 @@ Controller::UpdateTextType Controller::Relayout( const Size& size )
 
   // Do not re-do any operation until something changes.
   mImpl->mOperationsPending = NO_OPERATION;
+  mImpl->mModel->mScrollPositionLast = mImpl->mModel->mScrollPosition;
 
   // Whether the text control is editable
   const bool isEditable = NULL != mImpl->mEventData;
@@ -1686,6 +1701,8 @@ bool Controller::KeyEvent( const Dali::KeyEvent& keyEvent )
              ( Dali::DALI_KEY_CURSOR_UP    == keyCode ) ||
              ( Dali::DALI_KEY_CURSOR_DOWN  == keyCode ) )
     {
+      mImpl->mEventData->mCheckScrollAmount = true;
+
       Event event( Event::CURSOR_KEY_EVENT );
       event.p1.mInt = keyCode;
       mImpl->mEventData->mEventQueue.push_back( event );
@@ -1694,17 +1711,14 @@ bool Controller::KeyEvent( const Dali::KeyEvent& keyEvent )
     {
       textChanged = BackspaceKeyEvent();
     }
-    else if( IsKey( keyEvent,  Dali::DALI_KEY_POWER ) )
-    {
-      mImpl->ChangeState( EventData::INTERRUPTED ); // State is not INACTIVE as expect to return to edit mode.
-      // Avoids calling the InsertText() method which can delete selected text
-    }
-    else if( IsKey( keyEvent, Dali::DALI_KEY_MENU ) ||
+    else if( IsKey( keyEvent, Dali::DALI_KEY_POWER ) ||
+             IsKey( keyEvent, Dali::DALI_KEY_MENU ) ||
              IsKey( keyEvent, Dali::DALI_KEY_HOME ) )
     {
+      // Power key/Menu/Home key behaviour does not allow edit mode to resume.
       mImpl->ChangeState( EventData::INACTIVE );
-      // Menu/Home key behaviour does not allow edit mode to resume like Power key
-      // Avoids calling the InsertText() method which can delete selected text
+
+      // This branch avoids calling the InsertText() method of the 'else' branch which can delete selected text.
     }
     else if( Dali::DALI_KEY_SHIFT_LEFT == keyCode )
     {
@@ -2444,7 +2458,8 @@ bool Controller::RemoveText( int cursorOffset,
       numberOfCharacters = currentText.Count() - cursorIndex;
     }
 
-    if( ( cursorIndex + numberOfCharacters ) <= mImpl->mTextUpdateInfo.mPreviousNumberOfCharacters )
+    if( mImpl->mEventData->mPreEditFlag || // If the preedit flag is enabled, it means two (or more) of them came together i.e. when two keys have been pressed at the same time.
+        ( ( cursorIndex + numberOfCharacters ) <= mImpl->mTextUpdateInfo.mPreviousNumberOfCharacters ) )
     {
       // Mark the paragraphs to be updated.
       mImpl->mTextUpdateInfo.mCharacterIndex = std::min( cursorIndex, mImpl->mTextUpdateInfo.mCharacterIndex );
@@ -2792,6 +2807,8 @@ void Controller::TextInsertedEvent()
     return;
   }
 
+  mImpl->mEventData->mCheckScrollAmount = true;
+
   // The natural size needs to be re-calculated.
   mImpl->mRecalculateNaturalSize = true;
 
@@ -2808,6 +2825,8 @@ void Controller::TextDeletedEvent()
     return;
   }
 
+  mImpl->mEventData->mCheckScrollAmount = true;
+
   // The natural size needs to be re-calculated.
   mImpl->mRecalculateNaturalSize = true;
 
@@ -2834,6 +2853,7 @@ void Controller::SelectEvent( float x, float y, bool selectAll )
       mImpl->mEventData->mEventQueue.push_back( event );
     }
 
+    mImpl->mEventData->mCheckScrollAmount = true;
     mImpl->RequestRelayout();
   }
 }
index 6f4b864..f5b825e 100644 (file)
@@ -814,6 +814,13 @@ public: // Queries & retrieves.
    */
   const ModelInterface* const GetTextModel() const;
 
+  /**
+   * @brief Used to get scrolled distance by user input
+   *
+   * @return Distance from last scroll offset to new scroll offset
+   */
+  float GetScrollAmountByUserInput();
+
 public: // Relayout.
 
   /**
index 5de3e43..7eae0e1 100644 (file)
@@ -106,6 +106,7 @@ Model::Model()
 : mLogicalModel(),
   mVisualModel(),
   mScrollPosition(),
+  mScrollPositionLast(),
   mHorizontalAlignment( Layout::HORIZONTAL_ALIGN_BEGIN ),
   mVerticalAlignment( Layout::VERTICAL_ALIGN_TOP ),
   mAlignmentOffset( 0.0f ),
index e0dd85e..26b9f08 100644 (file)
@@ -156,6 +156,7 @@ public:
    * Typically this will have a negative value with scrolling occurs.
    */
   Vector2                     mScrollPosition;      ///< The text is offset by this position when scrolling.
+  Vector2                     mScrollPositionLast;  ///< The last offset value of mScrollPosition
   Layout::HorizontalAlignment mHorizontalAlignment; ///< The layout's horizontal alignment.
   Layout::VerticalAlignment   mVerticalAlignment;   ///< The layout's vertical alignment.
   float                       mAlignmentOffset;     ///< The alignment offset.
diff --git a/dali-toolkit/internal/text/text-vertical-scroller.cpp b/dali-toolkit/internal/text/text-vertical-scroller.cpp
new file mode 100644 (file)
index 0000000..b9d6606
--- /dev/null
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 2017 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// CLASS HEADER
+#include <dali-toolkit/internal/text/text-vertical-scroller.h>
+
+// EXTERNAL INCLUDES
+
+// INTERNAL INCLUDES
+
+namespace Dali
+{
+
+namespace Toolkit
+{
+
+namespace
+{
+
+const float DEFAULT_VERTICAL_SCROLL_DURATION(0.15f);     ///< Duration to complete scroll animation
+
+} // namespace
+
+namespace Text
+{
+
+TextVerticalScrollerPtr TextVerticalScroller::New()
+{
+  TextVerticalScrollerPtr textScroller( new TextVerticalScroller() );
+  return textScroller;
+}
+
+TextVerticalScroller::TextVerticalScroller()
+: mDuration( DEFAULT_VERTICAL_SCROLL_DURATION ),
+  mScrollTo( 0.0f )
+{
+}
+
+TextVerticalScroller::~TextVerticalScroller()
+{
+}
+
+void TextVerticalScroller::CheckStartAnimation( Actor& sourceActor, float x, float y, float scrollAmount )
+{
+  if ( Equals( scrollAmount, 0.0f, Math::MACHINE_EPSILON_1 ) )
+  {
+    // scroll animation isn't required, set position only
+    if( mScrollAnimation && mScrollAnimation.GetState() == Animation::PLAYING )
+    {
+      mScrollAnimation.Clear();
+    }
+    sourceActor.SetPosition( x, y );
+    return;
+  }
+  float toY = y + scrollAmount;
+  // Either actor or scroll area is changed, so restart animation
+  if( mScrollAnimation )
+  {
+    mScrollAnimation.Clear();
+  }
+  else
+  {
+    // Create animation at first
+    mScrollAnimation = Animation::New( mDuration );
+  }
+  mScrollingActor = sourceActor;
+  mScrollTo = toY;
+
+  // Set animation attribute
+  sourceActor.SetPosition( x, y );
+  mScrollAnimation.AnimateTo( Property(sourceActor, Actor::Property::POSITION_Y), mScrollTo, AlphaFunction::EASE_OUT_SINE );
+  mScrollAnimation.Play();
+}
+
+void TextVerticalScroller::SetDuration( float duration )
+{
+  mDuration = duration;
+}
+
+} // namespace Text
+
+} // namespace Toolkit
+
+} // namespace Dali
diff --git a/dali-toolkit/internal/text/text-vertical-scroller.h b/dali-toolkit/internal/text/text-vertical-scroller.h
new file mode 100644 (file)
index 0000000..f6a005a
--- /dev/null
@@ -0,0 +1,93 @@
+#ifndef DALI_TOOLKIT_TEXT_VERTICAL_SCROLLER_H
+#define DALI_TOOLKIT_TEXT_VERTICAL_SCROLLER_H
+
+/*
+ * Copyright (c) 2017 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// EXTERNAL INCLUDES
+#include <dali/public-api/actors/actor.h>
+#include <dali/public-api/animation/animation.h>
+
+// INTERNAL INCLUDES
+
+namespace Dali
+{
+
+namespace Toolkit
+{
+
+namespace Text
+{
+
+class TextVerticalScroller;
+
+typedef IntrusivePtr<TextVerticalScroller> TextVerticalScrollerPtr;
+
+/**
+ * @brief A helper class for scrolling text vertically
+ */
+class TextVerticalScroller : public RefObject, public ConnectionTracker
+{
+public:
+
+  /**
+   * @brief Text Scrolling helper, used to automatically scroll text, StartScroll should be called when scrolling is needed.
+   *
+   */
+  static TextVerticalScrollerPtr New();
+
+  /**
+   * @brief variables required to set up scrolling animation
+   * @param[in] sourceActor actor to be animated
+   * @param[in] x The new x position
+   * @param[in] y The new y position
+   * @param[in] scrollAmount The distance to destination y position for actor to be animated
+   */
+  void CheckStartAnimation( Actor& sourceActor, float x, float y, float scrollAmount );
+
+  /**
+   * @brief Set duration the text should scroll
+   * @param[in] duration The duration in seconds
+   */
+  void SetDuration( float duration );
+
+private: // Implementation
+  /**
+   * Constructor
+   */
+  TextVerticalScroller();
+
+  /**
+   * @brief Virtual Destructor.
+   */
+  virtual ~TextVerticalScroller();
+
+private:
+
+  Animation          mScrollAnimation;          // Animation used to update the actor's position
+  Actor              mScrollingActor;           // The actor being animated
+  float              mDuration;                 // The duration of text scrolling
+  float              mScrollTo;                 // The destination y position
+}; // TextVerticalScroller class
+
+} // namespace Text
+
+} // namespace Toolkit
+
+} // namespace Dali
+
+#endif // DALI_TOOLKIT_TEXT_VERTICAL_SCROLLER_H
index 57c1a48..b2f0cbb 100644 (file)
@@ -110,7 +110,7 @@ const char* VERTEX_SHADER_3X3 = DALI_COMPOSE_SHADER(
       vec2 visualOffset = mix( offset, offset/uSize.xy, offsetSizeMode.xy);\n
 
       mediump vec2 scale        = vec2( length( uModelMatrix[ 0 ].xyz ), length( uModelMatrix[ 1 ].xyz ) );\n
-      mediump vec2 size         = visualSize.xy * scale;\n
+      mediump vec2 size         = visualSize.xy;\n
       \n
       mediump vec2 fixedFactor  = vec2( uFixed[ int( ( aPosition.x + 1.0 ) * 0.5 ) ].x, uFixed[ int( ( aPosition.y  + 1.0 ) * 0.5 ) ].y );\n
       mediump vec2 stretch      = floor( aPosition * 0.5 );\n
@@ -118,7 +118,7 @@ const char* VERTEX_SHADER_3X3 = DALI_COMPOSE_SHADER(
       \n
       mediump vec4 vertexPosition = vec4( fixedFactor + ( size - fixedTotal ) * stretch, 0.0, 1.0 );
       vertexPosition.xy -= size * vec2( 0.5, 0.5 );\n
-      vertexPosition.xy =  vertexPosition.xy / scale + anchorPoint*size + (visualOffset + origin)*uSize.xy;\
+      vertexPosition.xy =  vertexPosition.xy + anchorPoint*size + (visualOffset + origin)*uSize.xy;\
       \n
       vertexPosition = uMvpMatrix * vertexPosition;\n
       \n
index f3b895b..280fac2 100644 (file)
@@ -313,7 +313,7 @@ void TextVisual::DoSetOnStage( Actor& actor )
   }
 
   mImpl->mRenderer = Renderer::New( geometry, shader );
-  mImpl->mRenderer.SetProperty( Dali::Renderer::Property::DEPTH_INDEX, Toolkit::DepthIndex::TEXT );
+  mImpl->mRenderer.SetProperty( Dali::Renderer::Property::DEPTH_INDEX, Toolkit::DepthIndex::CONTENT );
 
   UpdateRenderer( true ); // Renderer needs textures and to be added to control
 }
index 16044b7..8990c9a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2017 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.
@@ -26,6 +26,7 @@
 
 // INTERNAL INCLUDES
 #include <dali-toolkit/devel-api/visuals/visual-properties-devel.h>
+#include <dali-toolkit/internal/helpers/property-helper.h>
 #include <dali-toolkit/internal/visuals/visual-string-constants.h>
 
 namespace Dali
@@ -116,7 +117,7 @@ void Internal::Visual::Base::Impl::CustomShader::SetPropertyMap( const Property:
   Property::Value* vertexShaderValue = shaderMap.Find( Toolkit::Visual::Shader::Property::VERTEX_SHADER, CUSTOM_VERTEX_SHADER );
   if( vertexShaderValue )
   {
-    if( !vertexShaderValue->Get( mVertexShader ) )
+    if( ! GetStringFromProperty( *vertexShaderValue, mVertexShader ) )
     {
       DALI_LOG_ERROR( "'%s' parameter does not correctly specify a string\n", CUSTOM_VERTEX_SHADER );
     }
@@ -125,7 +126,7 @@ void Internal::Visual::Base::Impl::CustomShader::SetPropertyMap( const Property:
   Property::Value* fragmentShaderValue = shaderMap.Find( Toolkit::Visual::Shader::Property::FRAGMENT_SHADER, CUSTOM_FRAGMENT_SHADER );
   if( fragmentShaderValue )
   {
-    if( !fragmentShaderValue->Get( mFragmentShader ) )
+    if( ! GetStringFromProperty( *fragmentShaderValue, mFragmentShader ) )
     {
       DALI_LOG_ERROR( "'%s' parameter does not correctly specify a string\n", CUSTOM_FRAGMENT_SHADER );
     }
index 68620ea..701da0e 100644 (file)
@@ -146,7 +146,7 @@ void Visual::Base::SetProperties( const Property::Map& propertyMap )
 void Visual::Base::SetTransformAndSize( const Property::Map& transform, Size controlSize )
 {
   mImpl->mControlSize = controlSize;
-  mImpl->mTransform.SetPropertyMap( transform );
+  mImpl->mTransform.UpdatePropertyMap( transform );
 
 #if defined(DEBUG_ENABLED)
   std::ostringstream oss;
index ac61e9e..4a1c148 100644 (file)
@@ -71,7 +71,7 @@ public:
   typedef Signal< bool ( AccessibilityManager&, const Dali::TouchEvent& )> AccessibilityActionScrollSignalType; ///< Scroll signal type @SINCE_1_0.0
 
   /**
-   * @brief Accessibility needs four information which will be read by screen-reader.
+   * @brief Enumeration for accessibility that needs four information which will be read by screen-reader.
    *
    * Reading order : Label -> Trait -> Optional (Value and Hint)
    * @SINCE_1_0.0
@@ -86,7 +86,7 @@ public:
   };
 
    /**
-    * @brief Overshoot direction.
+    * @brief Enumeration for overshoot direction.
     * @SINCE_1_0.0
     */
   enum FocusOvershotDirection
@@ -110,15 +110,15 @@ public:
   typedef Signal< void ( Actor ) > FocusedActorActivatedSignalType;
 
   /**
-   * @brief Create a AccessibilityManager handle; this can be initialised with AccessibilityManager::New().
+   * @brief Creates an AccessibilityManager handle; this can be initialised with AccessibilityManager::New().
    *
-   * Calling member functions with an uninitialised handle is not allowed.
+   * Calling member functions with an uninitialized handle is not allowed.
    * @SINCE_1_0.0
    */
   AccessibilityManager();
 
   /**
-   * @brief Destructor
+   * @brief Destructor.
    *
    * This is non-virtual since derived Handle types must not contain data or virtual methods.
    * @SINCE_1_0.0
@@ -126,18 +126,18 @@ public:
   ~AccessibilityManager();
 
   /**
-   * @brief Get the singleton of AccessibilityManager object.
+   * @brief Gets the singleton of AccessibilityManager object.
    *
    * @SINCE_1_0.0
-   * @return A handle to the AccessibilityManager control.
+   * @return A handle to the AccessibilityManager control
    */
   static AccessibilityManager Get();
 
   /**
-   * @brief Set the information of the specified actor's accessibility attribute.
+   * @brief Sets the information of the specified actor's accessibility attribute.
    *
    * @SINCE_1_0.0
-   * @param actor The actor the text to be set with
+   * @param actor The actor, the text to be set with
    * @param type The attribute type the text to be set with
    * @param text The text for the actor's accessibility information
    * @pre The AccessibilityManager has been initialized.
@@ -146,7 +146,7 @@ public:
   void SetAccessibilityAttribute(Actor actor, AccessibilityAttribute type, const std::string& text);
 
   /**
-   * @brief Get the text of the specified actor's accessibility attribute.
+   * @brief Gets the text of the specified actor's accessibility attribute.
    *
    * @SINCE_1_0.0
    * @param actor The actor to be queried
@@ -158,10 +158,10 @@ public:
   std::string GetAccessibilityAttribute(Actor actor, AccessibilityAttribute type) const;
 
   /**
-   * @brief Set the focus order of the actor.
+   * @brief Sets the focus order of the actor.
    *
-   * The focus order of each actor in the focus chain is unique. If
-   * there is another actor assigned with the same focus order
+   * The focus order of each actor in the focus chain is unique.
+   * If there is another actor assigned with the same focus order
    * already, the new actor will be inserted to the focus chain with
    * that focus order, and the focus order of the original actor and
    * all the actors followed in the focus chain will be increased
@@ -179,7 +179,7 @@ public:
   void SetFocusOrder(Actor actor, const unsigned int order);
 
   /**
-   * @brief Get the focus order of the actor.
+   * @brief Gets the focus order of the actor.
    *
    * When the focus order is 0, it means the focus order of the actor
    * is undefined.
@@ -210,7 +210,7 @@ public:
   unsigned int GenerateNewFocusOrder() const;
 
   /**
-   * @brief Get the actor that has the specified focus order.
+   * @brief Gets the actor that has the specified focus order.
    *
    * It will return an empty handle if no actor in the stage
    * has the specified focus order.
@@ -219,15 +219,15 @@ public:
    * @param order The focus order of the actor
    *
    * @return The actor that has the specified focus order or an empty
-   * handle if no actor in the stage has the specified focus order.
+   * handle if no actor in the stage has the specified focus order
    * @pre The AccessibilityManager has been initialized.
    */
   Actor GetActorByFocusOrder(const unsigned int order);
 
   /**
-   * @brief Move the focus to the specified actor.
+   * @brief Moves the focus to the specified actor.
    *
-   * Only one actor can be focused at the same time.  The actor must
+   * Only one actor can be focused at the same time. The actor must
    * have a defined focus order and must be focusable, visible and in
    * the stage.
    *
@@ -240,38 +240,38 @@ public:
   bool SetCurrentFocusActor(Actor actor);
 
   /**
-   * @brief Get the current focused actor.
+   * @brief Gets the current focused actor.
    *
    * @SINCE_1_0.0
-   * @return A handle to the current focused actor or an empty handle if no actor is focused.
+   * @return A handle to the current focused actor or an empty handle if no actor is focused
    * @pre The AccessibilityManager has been initialized.
    */
   Actor GetCurrentFocusActor();
 
   /**
-   * @brief Get the focus group of current focused actor.
+   * @brief Gets the focus group of current focused actor.
    *
    * @SINCE_1_0.0
    * @return A handle to the immediate parent of the current focused
    * actor which is also a focus group, or an empty handle if no actor
-   * is focused.
+   * is focused
    * @pre The AccessibilityManager has been initialized.
    *
    */
   Actor GetCurrentFocusGroup();
 
   /**
-   * @brief Get the focus order of currently focused actor.
+   * @brief Gets the focus order of currently focused actor.
    * @SINCE_1_0.0
    * @return The focus order of the currently focused actor or 0 if no
-   * actor is in focus.
+   * actor is in focus
    * @pre The AccessibilityManager has been initialized.
    *
    */
   unsigned int GetCurrentFocusOrder();
 
   /**
-   * @brief Move the focus to the next focusable actor in the focus
+   * @brief Moves the focus to the next focusable actor in the focus
    * chain (according to the focus traversal order).
    *
    * When the focus movement is wrapped around, the focus will be moved
@@ -284,7 +284,7 @@ public:
   bool MoveFocusForward();
 
   /**
-   * @brief Move the focus to the previous focusable actor in the
+   * @brief Moves the focus to the previous focusable actor in the
    * focus chain (according to the focus traversal order).
    *
    * When the focus movement is wrapped around, the focus will be
@@ -298,7 +298,7 @@ public:
   bool MoveFocusBackward();
 
   /**
-   * @brief Clear the focus from the current focused actor if any, so
+   * @brief Clears the focus from the current focused actor if any, so
    * that no actor is focused in the focus chain.
    *
    * It will emit focus changed signal without current focused actor.
@@ -308,41 +308,41 @@ public:
   void ClearFocus();
 
   /**
-   * @brief Clear the every registered focusable actor from focus-manager.
+   * @brief Clears every registered focusable actor from focus-manager.
    * @SINCE_1_0.0
    * @pre The AccessibilityManager has been initialized.
    */
   void Reset();
 
   /**
-   * @brief Set whether an actor is a focus group that can limit the
+   * @brief Sets whether an actor is a focus group that can limit the
    * scope of focus movement to its child actors in the focus chain.
    *
    * @SINCE_1_0.0
-   * @param actor The actor to be set as a focus group.
-   * @param isFocusGroup Whether to set the actor to be a focus group or not.
+   * @param actor The actor to be set as a focus group
+   * @param isFocusGroup Whether to set the actor to be a focus group or not
    * @pre The AccessibilityManager has been initialized.
    * @pre The Actor has been initialized.
    */
   void SetFocusGroup(Actor actor, bool isFocusGroup);
 
   /**
-   * @brief Check whether the actor is set as a focus group or not.
+   * @brief Checks whether the actor is set as a focus group or not.
    *
    * @SINCE_1_0.0
-   * @param actor The actor to be checked.
-   * @return Whether the actor is set as a focus group.
+   * @param actor The actor to be checked
+   * @return Whether the actor is set as a focus group
    * @pre The AccessibilityManager has been initialized.
    * @pre The Actor has been initialized.
    */
   bool IsFocusGroup(Actor actor) const;
 
   /**
-   * @brief Set whether the group mode is enabled or not.
+   * @brief Sets whether the group mode is enabled or not.
    *
    * When the group mode is enabled, the focus movement will be limited to the child actors
    * of the current focus group including the current focus group itself. The current focus
-   * group is the closest ancestor of the current focused actor that set as a focus group.
+   * group is the closest ancestor of the current focused actor that is set as a focus group.
    * @SINCE_1_0.0
    * @param enabled Whether the group mode is enabled or not
    * @pre The AccessibilityManager has been initialized.
@@ -350,7 +350,7 @@ public:
   void SetGroupMode(bool enabled);
 
   /**
-   * @brief Get whether the group mode is enabled or not.
+   * @brief Gets whether the group mode is enabled or not.
    *
    * @SINCE_1_0.0
    * @return Whether the group mode is enabled or not.
@@ -359,7 +359,7 @@ public:
   bool GetGroupMode() const;
 
   /**
-   * @brief Set whether focus will be moved to the beginning of the
+   * @brief Sets whether focus will be moved to the beginning of the
    * focus chain when it reaches the end or vice versa.
    *
    * When both the wrap mode and the group mode are enabled, focus will be
@@ -371,7 +371,7 @@ public:
   void SetWrapMode(bool wrapped);
 
   /**
-   * @brief Get whether the wrap mode is enabled or not.
+   * @brief Gets whether the wrap mode is enabled or not.
    *
    * @SINCE_1_0.0
    * @return Whether the wrap mode is enabled or not.
@@ -380,7 +380,7 @@ public:
   bool GetWrapMode() const;
 
   /**
-   * @brief Set the focus indicator actor.
+   * @brief Sets the focus indicator actor.
    *
    * This will replace the default focus indicator actor in
    * AccessibilityManager and will be added to the focused actor as a
@@ -394,7 +394,7 @@ public:
   void SetFocusIndicatorActor(Actor indicator);
 
   /**
-   * @brief Get the focus indicator actor.
+   * @brief Gets the focus indicator actor.
    *
    * @SINCE_1_0.0
    * @return A handle to the focus indicator actor
@@ -414,7 +414,7 @@ public:
   /**
    * @brief Returns the current position of the read action.
    * @SINCE_1_0.0
-   * @return The current event position.
+   * @return The current event position
    */
   Vector2 GetReadPosition() const;
 
@@ -428,7 +428,7 @@ public:
    *   void YourCallbackName(Actor originalFocusedActor, Actor currentFocusedActor);
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    * @pre The Object has been initialized.
    */
   FocusChangedSignalType& FocusChangedSignal();
@@ -441,7 +441,7 @@ public:
    *   void YourCallbackName(Actor currentFocusedActor, FocusOvershotDirection direction);
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    * @pre The Object has been initialized.
    */
   FocusOvershotSignalType& FocusOvershotSignal();
@@ -454,7 +454,7 @@ public:
    *   void YourCallbackName(Actor activatedActor);
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    * @pre The Object has been initialized.
    */
   FocusedActorActivatedSignalType& FocusedActorActivatedSignal();
@@ -469,7 +469,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionSignalType& StatusChangedSignal();
 
@@ -482,7 +482,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionSignalType& ActionNextSignal();
 
@@ -495,7 +495,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionSignalType& ActionPreviousSignal();
 
@@ -508,7 +508,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionSignalType& ActionActivateSignal();
 
@@ -521,7 +521,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionSignalType& ActionReadSignal();
 
@@ -534,7 +534,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionSignalType& ActionOverSignal();
 
@@ -547,7 +547,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionSignalType& ActionReadNextSignal();
 
@@ -560,7 +560,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionSignalType& ActionReadPreviousSignal();
 
@@ -573,7 +573,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionSignalType& ActionUpSignal();
 
@@ -586,7 +586,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionSignalType& ActionDownSignal();
 
@@ -599,7 +599,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionSignalType& ActionClearFocusSignal();
 
@@ -612,7 +612,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionSignalType& ActionBackSignal();
 
@@ -625,7 +625,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionSignalType& ActionScrollUpSignal();
 
@@ -638,7 +638,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionSignalType& ActionScrollDownSignal();
 
@@ -651,7 +651,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionSignalType& ActionPageLeftSignal();
 
@@ -664,7 +664,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionSignalType& ActionPageRightSignal();
 
@@ -677,7 +677,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionSignalType& ActionPageUpSignal();
 
@@ -690,7 +690,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionSignalType& ActionPageDownSignal();
 
@@ -703,7 +703,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionSignalType& ActionMoveToFirstSignal();
 
@@ -716,7 +716,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionSignalType& ActionMoveToLastSignal();
 
@@ -742,7 +742,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionSignalType& ActionReadFromNextSignal();
 
@@ -755,7 +755,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionSignalType& ActionZoomSignal();
 
@@ -768,7 +768,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionSignalType& ActionReadIndicatorInformationSignal();
 
@@ -781,7 +781,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionSignalType& ActionReadPauseResumeSignal();
 
@@ -794,7 +794,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionSignalType& ActionStartStopSignal();
 
@@ -807,7 +807,7 @@ public:
    *   bool YourCallback( AccessibilityManager& manager, const TouchEvent& event );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   AccessibilityActionScrollSignalType& ActionScrollSignal();
 
index b290856..48e2c8e 100644 (file)
@@ -39,18 +39,18 @@ class Alignment;
 /**
  * @brief Alignment is a container which provides an easy way to align other actors inside its boundary.
  *
- * Additionaly it provides a scaling property to resize the contained actors @see Scaling.
+ * Additionally, it provides a scaling property to resize the contained actors @see Scaling.
  * @SINCE_1_0.0
  * @note The use of scaling property will override all constraints applied to actors.
  *
- * All actors added to an alignment are going to be set with the same anchor point and parent origin. And, if the scaling property is set to a value
+ * All actors added to an alignment are going to be set with the same anchor point and parent origin. And if the scaling property is set to a value
  * different than ScaleNone, constraints as well.
  */
 class DALI_IMPORT_API Alignment : public Control
 {
 public:
   /**
-   * @brief Different types of alignment.
+   * @brief Enumeration for different types of alignment.
    * @SINCE_1_0.0
    */
   enum Type
@@ -64,7 +64,7 @@ public:
   };
 
   /**
-   * @brief Scaling determines how actors are scaled, to match the alignment's boundary.
+   * @brief Scaling determines how actors are scaled to match the alignment's boundary.
    * @SINCE_1_0.0
    */
   enum Scaling
@@ -84,7 +84,7 @@ public:
   struct Padding
   {
     /**
-     * @brief Constructor
+     * @brief Constructor.
      * @SINCE_1_0.0
      */
     Padding()
@@ -96,7 +96,7 @@ public:
     }
 
     /**
-     * @brief Constructor
+     * @brief Constructor.
      *
      * @SINCE_1_0.0
      * @param[in] l Left padding
@@ -119,9 +119,9 @@ public:
   };
 
   /**
-   * @brief Create an Alignment handle; this can be initialised with Alignment::New().
+   * @brief Creates an Alignment handle; this can be initialized with Alignment::New().
    *
-   * Calling member functions with an uninitialised handle is not allowed.
+   * Calling member functions with an uninitialized handle is not allowed.
    * @SINCE_1_0.0
    */
   Alignment();
@@ -130,9 +130,9 @@ public:
    * @brief Creates an alignment control.
    *
    * @SINCE_1_0.0
-   * @param [in] horizontal Specifies how to align actors horizontally. Could be HorizontalLeft, HorizontalCenter or HorizontalRight. By default HorizontalCenter.
-   * @param [in] vertical Specifies how to align actors vertically. Could be VerticalTop, VerticalCenter or VerticalBottom. By default VerticalCenter.
-   * @return A handle to the Alignment control.
+   * @param[in] horizontal Specifies how to align actors horizontally. Could be HorizontalLeft, HorizontalCenter or HorizontalRight. By default, HorizontalCenter
+   * @param[in] vertical Specifies how to align actors vertically. Could be VerticalTop, VerticalCenter or VerticalBottom. By default, VerticalCenter
+   * @return A handle to the Alignment control
    */
   static Alignment New( Type horizontal = HorizontalCenter, Type vertical = VerticalCenter );
 
@@ -140,12 +140,12 @@ public:
    * @brief Copy constructor. Creates another handle that points to the same real object.
    *
    * @SINCE_1_0.0
-   * @param[in] alignment Object to copy.
+   * @param[in] alignment Object to copy
    */
   Alignment(const Alignment& alignment);
 
   /**
-   * @brief Destructor
+   * @brief Destructor.
    *
    * This is non-virtual since derived Handle types must not contain data or virtual methods.
    * @SINCE_1_0.0
@@ -153,10 +153,10 @@ public:
   ~Alignment();
 
   /**
-   * @brief Downcast a handle to Alignment handle.
+   * @brief Downcasts a handle to Alignment handle.
    *
-   * If handle points to a Alignment the downcast produces valid
-   * handle. If not the returned handle is left uninitialized.
+   * If handle points to an Alignment, the downcast produces valid handle.
+   * If not, the returned handle is left uninitialized.
    *
    * @SINCE_1_0.0
    * @param[in] handle Handle to an object
@@ -165,16 +165,16 @@ public:
   static Alignment DownCast( BaseHandle handle );
 
   /**
-   * @brief Sets the new alignment. By default ( HorizontalCenter | VerticalCenter ).
+   * @brief Sets the new alignment. By default, ( HorizontalCenter | VerticalCenter ).
    *
    * @SINCE_1_0.0
-   * @param [in] type The new alignment option.
+   * @param[in] type The new alignment option
    * @note There should only be one horizontal and one vertical policy.
    */
   void SetAlignmentType( Type type );
 
   /**
-   * @brief Get the current alignment combined into a single value.
+   * @brief Gets the current alignment combined into a single value.
    *
    * The values can be tested by using the & operator and the desired
    * flag. e.g.
@@ -186,7 +186,7 @@ public:
    * @endcode
    *
    * @SINCE_1_0.0
-   * @return the alignment value.
+   * @return the alignment value
    */
   Type GetAlignmentType() const;
 
@@ -194,7 +194,7 @@ public:
    * @brief Sets how added actors scale to fit the alignment's boundary.
    *
    * @SINCE_1_0.0
-   * @param[in] scaling The scaling property.
+   * @param[in] scaling The scaling property
    * @see Scaling.
    */
   void SetScaling( Scaling scaling );
@@ -203,24 +203,24 @@ public:
    * @brief Retrieves the scaling property.
    *
    * @SINCE_1_0.0
-   * @return The scaling.
+   * @return The scaling
    * @see Scaling.
    */
   Scaling GetScaling() const;
 
   /**
-   * @brief Set a padding value.
+   * @brief Sets a padding value.
    *
    * @SINCE_1_0.0
-   * @param [in] padding The left, right, top, bottom padding values.
+   * @param[in] padding The left, right, top, bottom padding values
    */
   void SetPadding( const Padding& padding );
 
   /**
-   * @brief Get the padding values.
+   * @brief Gets the padding values.
    *
    * @SINCE_1_0.0
-   * @return The left, right, top, bottom padding values.
+   * @return The left, right, top, bottom padding values
    */
   const Padding& GetPadding() const;
 
@@ -241,7 +241,7 @@ public: // Not intended for application developers
    * @brief Creates a handle using the Toolkit::Internal implementation.
    *
    * @SINCE_1_0.0
-   * @param[in]  implementation  The Control implementation.
+   * @param[in] implementation The Control implementation
    */
   DALI_INTERNAL Alignment( Internal::Alignment& implementation );
 
@@ -249,7 +249,7 @@ public: // Not intended for application developers
    * @brief Allows the creation of this Control from an Internal::CustomActor pointer.
    *
    * @SINCE_1_0.0
-   * @param[in]  internal  A pointer to the internal CustomActor.
+   * @param[in] internal A pointer to the internal CustomActor
    */
   explicit DALI_INTERNAL Alignment( Dali::Internal::CustomActor* internal );
   /// @endcond
index e447554..d9fc769 100644 (file)
@@ -90,7 +90,7 @@ class DALI_IMPORT_API Button : public Control
 public:
 
   /**
-   * @brief The start and end property ranges for this control.
+   * @brief Enumeration for the start and end property ranges for this control.
    * @SINCE_1_0.0
    */
   enum PropertyRange
@@ -100,13 +100,13 @@ public:
   };
 
   /**
-   * @brief An enumeration of properties belonging to the Button class.
+   * @brief Enumeration for the instance of properties belonging to the Button class.
    * @SINCE_1_0.0
    */
   struct Property
   {
     /**
-     * @brief An enumeration of properties belonging to the Button class.
+     * @brief Enumeration for the instance of properties belonging to the Button class.
      * @SINCE_1_0.0
      */
     enum
@@ -209,7 +209,7 @@ public:
 public:
 
   /**
-   * @brief Create an uninitialized Button.
+   * @brief Creates an uninitialized Button.
    *
    * Only derived versions can be instantiated.  Calling member
    * functions with an uninitialized Dali::Object is not allowed.
@@ -233,10 +233,10 @@ public:
   Button& operator=( const Button& button );
 
   /**
-   * @brief Downcast a handle to Button handle.
+   * @brief Downcasts a handle to Button handle.
    *
-   * If handle points to a Button the downcast produces valid
-   * handle. If not the returned handle is left uninitialized.
+   * If handle points to a Button, the downcast produces valid handle.
+   * If not the returned handle is left uninitialized.
    *
    * @SINCE_1_0.0
    * @param[in] handle Handle to an object
@@ -245,7 +245,7 @@ public:
   static Button DownCast( BaseHandle handle );
 
   /**
-   * @brief Destructor
+   * @brief Destructor.
    *
    * This is non-virtual since derived Handle types must not contain data or virtual methods.
    * @SINCE_1_0.0
@@ -262,7 +262,7 @@ public:
    * No signals are emitted when the \e disabled property is set.
    *
    * @SINCE_1_0.0
-   * @param[in] disabled property.
+   * @param[in] disabled Disabled property
    */
   void SetDisabled( bool disabled ) DALI_DEPRECATED_API;
 
@@ -271,7 +271,7 @@ public:
    *
    * @brief Returns if the button is disabled.
    * @SINCE_1_0.0
-   * @return \e true if the button is \e disabled.
+   * @return \e true if the button is \e disabled
    */
   bool IsDisabled() const DALI_DEPRECATED_API;
 
@@ -284,7 +284,7 @@ public:
    * but no signal is emitted.
    *
    * @SINCE_1_0.0
-   * @param[in] autoRepeating \e autorepeating property.
+   * @param[in] autoRepeating \e autorepeating property
    */
   void SetAutoRepeating( bool autoRepeating ) DALI_DEPRECATED_API;
 
@@ -293,7 +293,7 @@ public:
    *
    * @brief Returns if the autorepeating property is set.
    * @SINCE_1_0.0
-   * @return \e true if the \e autorepeating property is set.
+   * @return \e true if the \e autorepeating property is set
    */
   bool IsAutoRepeating() const DALI_DEPRECATED_API;
 
@@ -302,10 +302,10 @@ public:
    *
    * @brief Sets the initial autorepeating delay.
    *
-   * By default this value is set to 0.15 seconds.
+   * By default, this value is set to 0.15 seconds.
    *
    * @SINCE_1_0.0
-   * @param[in] initialAutoRepeatingDelay in seconds.
+   * @param[in] initialAutoRepeatingDelay in seconds
    * @pre initialAutoRepeatingDelay must be greater than zero.
    */
   void SetInitialAutoRepeatingDelay( float initialAutoRepeatingDelay ) DALI_DEPRECATED_API;
@@ -315,7 +315,7 @@ public:
    *
    * @brief Gets the initial autorepeating delay in seconds.
    * @SINCE_1_0.0
-   * @return the initial autorepeating delay in seconds.
+   * @return The initial autorepeating delay in seconds
    */
   float GetInitialAutoRepeatingDelay() const DALI_DEPRECATED_API;
 
@@ -324,10 +324,10 @@ public:
    *
    * @brief Sets the next autorepeating delay.
    *
-   * By default this value is set to 0.05 seconds.
+   * By default, this value is set to 0.05 seconds.
    *
    * @SINCE_1_0.0
-   * @param[in] nextAutoRepeatingDelay in seconds.
+   * @param[in] nextAutoRepeatingDelay in seconds
    * @pre nextAutoRepeatingDelay must be greater than zero.
    */
   void SetNextAutoRepeatingDelay( float nextAutoRepeatingDelay ) DALI_DEPRECATED_API;
@@ -337,7 +337,7 @@ public:
    *
    * @brief Gets the next autorepeating delay in seconds.
    * @SINCE_1_0.0
-   * @return the next autorepeating delay in seconds.
+   * @return The next autorepeating delay in seconds
    */
   float GetNextAutoRepeatingDelay() const DALI_DEPRECATED_API;
 
@@ -349,7 +349,7 @@ public:
    * If the \e togglable property is set to \e true, then the \e autorepeating property is set to false.
    *
    * @SINCE_1_0.0
-   * @param[in] togglable property.
+   * @param[in] togglable Togglable property
    */
   void SetTogglableButton( bool togglable ) DALI_DEPRECATED_API;
 
@@ -358,7 +358,7 @@ public:
    *
    * @brief Returns if the togglable property is set.
    * @SINCE_1_0.0
-   * @return \e true if the \e togglable property is set.
+   * @return \e true if the \e togglable property is set
    */
   bool IsTogglableButton() const DALI_DEPRECATED_API;
 
@@ -372,7 +372,7 @@ public:
    * Emits a Button::StateChangedSignal() signal.
    *
    * @SINCE_1_0.0
-   * @param[in] selected property.
+   * @param[in] selected Selected property
    */
   void SetSelected( bool selected ) DALI_DEPRECATED_API;
 
@@ -381,7 +381,7 @@ public:
    *
    * @brief Returns if the selected property is set and the button is togglable.
    * @SINCE_1_0.0
-   * @return \e true if the button is \e selected.
+   * @return \e true if the button is \e selected
    */
   bool IsSelected() const DALI_DEPRECATED_API;
 
@@ -391,7 +391,7 @@ public:
    * @brief Sets the animation time.
    *
    * @SINCE_1_0.0
-   * @param[in] animationTime The animation time in seconds.
+   * @param[in] animationTime The animation time in seconds
    */
   void SetAnimationTime( float animationTime ) DALI_DEPRECATED_API;
 
@@ -401,7 +401,7 @@ public:
    * @brief Retrieves button's animation time.
    *
    * @SINCE_1_0.0
-   * @return The animation time in seconds.
+   * @return The animation time in seconds
    */
   float GetAnimationTime() const DALI_DEPRECATED_API;
 
@@ -411,7 +411,7 @@ public:
    * @brief Sets the button's label.
    *
    * @SINCE_1_0.0
-   * @param[in] label The label text.
+   * @param[in] label The label text
    */
   void SetLabelText( const std::string& label ) DALI_DEPRECATED_API;
 
@@ -421,7 +421,7 @@ public:
    * @brief Gets the label.
    *
    * @SINCE_1_0.0
-   * @return The label text.
+   * @return The label text
    */
   std::string GetLabelText() const DALI_DEPRECATED_API;
 
@@ -431,7 +431,7 @@ public:
    * @brief Sets the unselected button image.
    *
    * @SINCE_1_0.0
-   * @param[in] filename The button image.
+   * @param[in] filename The button image
    */
   void SetUnselectedImage( const std::string& filename ) DALI_DEPRECATED_API;
 
@@ -442,7 +442,7 @@ public:
    * @brief Sets the background image.
    *
    * @SINCE_1_0.0
-   * @param[in] filename The background image.
+   * @param[in] filename The background image
    */
   void SetBackgroundImage( const std::string& filename ) DALI_DEPRECATED_API;
 
@@ -452,7 +452,7 @@ public:
    * @brief Sets the selected image.
    *
    * @SINCE_1_0.0
-   * @param[in] filename The selected image.
+   * @param[in] filename The selected image
    */
   void SetSelectedImage( const std::string& filename ) DALI_DEPRECATED_API;
 
@@ -463,7 +463,7 @@ public:
    * @brief Sets the selected background image.
    *
    * @SINCE_1_0.0
-   * @param[in] filename The selected background image.
+   * @param[in] filename The selected background image
    */
   void SetSelectedBackgroundImage( const std::string& filename ) DALI_DEPRECATED_API;
 
@@ -474,7 +474,7 @@ public:
    * @brief Sets the disabled background image.
    *
    * @SINCE_1_0.0
-   * @param[in] filename The disabled background image.
+   * @param[in] filename The disabled background image
    */
   void SetDisabledBackgroundImage( const std::string& filename ) DALI_DEPRECATED_API;
 
@@ -484,7 +484,7 @@ public:
    * @brief Sets the disabled button image.
    *
    * @SINCE_1_0.0
-   * @param[in] filename The disabled button image.
+   * @param[in] filename The disabled button image
    */
   void SetDisabledImage( const std::string& filename ) DALI_DEPRECATED_API;
 
@@ -495,17 +495,17 @@ public:
    * @brief Sets the disabled selected button image.
    *
    * @SINCE_1_0.0
-   * @param[in] filename The disabled selected button image.
+   * @param[in] filename The disabled selected button image
    */
   void SetDisabledSelectedImage( const std::string& filename ) DALI_DEPRECATED_API;
 
   /**
-   * @DEPRECATED_1_0.50. Instead, use SetLabelText.
+   * @DEPRECATED_1_0.50. Instead, use SetLabelText
    *
    * @brief Sets the label with an actor.
    *
    * @SINCE_1_0.0
-   * @param[in]  label The actor to use as a label
+   * @param[in] label The actor to use as a label
    */
   void SetLabel( Actor label ) DALI_DEPRECATED_API;
 
@@ -515,7 +515,7 @@ public:
    * @brief Sets the button image.
    *
    * @SINCE_1_0.0
-   * @param[in]  image The button image.
+   * @param[in] image The button image
    */
   void SetButtonImage( Image image ) DALI_DEPRECATED_API;
 
@@ -525,7 +525,7 @@ public:
    * @brief Sets the selected image.
    *
    * @SINCE_1_0.0
-   * @param[in]  image The selected image.
+   * @param[in] image The selected image
    */
   void SetSelectedImage( Image image ) DALI_DEPRECATED_API;
 
@@ -536,7 +536,7 @@ public:
    *
    * @SINCE_1_0.0
    * @remarks Avoid using this method as it's a legacy code.
-   * @return     An actor with the button image.
+   * @return An actor with the button image
    */
   Actor GetButtonImage() const DALI_DEPRECATED_API;
 
@@ -547,14 +547,14 @@ public:
    *
    * @SINCE_1_0.0
    * @remarks Avoid using this method as it's a legacy code.
-   * @return     An actor with the selected image.
+   * @return An actor with the selected image
    */
   Actor GetSelectedImage() const DALI_DEPRECATED_API;
 
 public: //Signals
 
   /**
-   * @brief Button signal type
+   * @brief Button signal type.
    * @SINCE_1_0.0
    */
   typedef Signal< bool ( Button ) > ButtonSignalType;
@@ -567,7 +567,7 @@ public: //Signals
    *   bool YourCallbackName( Button button );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   ButtonSignalType& PressedSignal();
 
@@ -579,7 +579,7 @@ public: //Signals
    *   bool YourCallbackName( Button button );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   ButtonSignalType& ReleasedSignal();
 
@@ -591,7 +591,7 @@ public: //Signals
    *   bool YourCallbackName( Button button );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   ButtonSignalType& ClickedSignal();
 
@@ -605,7 +605,7 @@ public: //Signals
    *   bool YourCallbackName( Button button );
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    */
   ButtonSignalType& StateChangedSignal();
 
@@ -616,7 +616,7 @@ public: // Not intended for application developers
    * @brief Creates a handle using the Toolkit::Internal implementation.
    *
    * @SINCE_1_0.0
-   * @param[in]  implementation  The Control implementation.
+   * @param[in] implementation The Control implementation
    */
   DALI_INTERNAL Button( Internal::Button& implementation );
 
@@ -624,7 +624,7 @@ public: // Not intended for application developers
    * @brief Allows the creation of this Control from an Internal::CustomActor pointer.
    *
    * @SINCE_1_0.0
-   * @param[in]  internal  A pointer to the internal CustomActor.
+   * @param[in] internal A pointer to the internal CustomActor
    */
   DALI_INTERNAL Button( Dali::Internal::CustomActor* internal );
   /// @endcond
index 4473734..301a810 100644 (file)
@@ -41,7 +41,7 @@ class CheckBoxButton;
 /**
  * @brief CheckBoxButton provides a check box button which user can check or uncheck.
  *
- * By default a CheckBoxButton emits a Button::ClickedSignal() signal when the button changes its state to selected or unselected.
+ * By default, a CheckBoxButton emits a Button::ClickedSignal() signal when the button changes its state to selected or unselected.
  *
  * The button's appearance could be modified by Button::SetUnselectedImage, Button::SetBackgroundImage,
  * Button::SetSelectedImage, Button::SetSelectedBackgroundImage, Button::SetDisabledBackgroundImage,
@@ -83,7 +83,7 @@ class DALI_IMPORT_API CheckBoxButton : public Button
 public:
 
   /**
-   * @brief Create an uninitialized CheckBoxButton; this can be initialized with CheckBoxButton::New().
+   * @brief Creates an uninitialized CheckBoxButton; this can be initialized with CheckBoxButton::New().
    * Calling member functions with an uninitialized Dali::Object is not allowed.
    * @SINCE_1_0.0
    */
@@ -105,7 +105,7 @@ public:
   CheckBoxButton& operator=( const CheckBoxButton& checkBox );
 
   /**
-   * @brief Destructor
+   * @brief Destructor.
    *
    * This is non-virtual since derived Handle types must not contain data or virtual methods.
    * @SINCE_1_0.0
@@ -113,20 +113,20 @@ public:
   ~CheckBoxButton();
 
   /**
-   * @brief Create an initialized CheckBoxButton.
+   * @brief Creates an initialized CheckBoxButton.
    * @SINCE_1_0.0
-   * @return A handle to a newly allocated Dali resource.
+   * @return A handle to a newly allocated Dali resource
    */
   static CheckBoxButton New();
 
   /**
-   * @brief Downcast a handle to CheckBoxButton handle.
+   * @brief Downcasts a handle to CheckBoxButton handle.
    *
-   * If handle points to a CheckBoxButton the
-   * downcast produces valid handle. If not the returned handle is left uninitialized.
+   * If handle points to a CheckBoxButton, the downcast produces valid handle.
+   * If not, the returned handle is left uninitialized.
    * @SINCE_1_0.0
    * @param[in] handle Handle to an object
-   * @return handle to a CheckBoxButton or an uninitialized handle
+   * @return Handle to a CheckBoxButton or an uninitialized handle
    */
   static CheckBoxButton DownCast( BaseHandle handle );
 
@@ -136,14 +136,14 @@ public: // Not intended for application developers
   /**
    * @brief Creates a handle using the Toolkit::Internal implementation.
    * @SINCE_1_0.0
-   * @param[in]  implementation  The Control implementation.
+   * @param[in] implementation The Control implementation
    */
   DALI_INTERNAL CheckBoxButton( Internal::CheckBoxButton& implementation );
 
   /**
    * @brief Allows the creation of this Control from an Internal::CustomActor pointer.
    * @SINCE_1_0.0
-   * @param[in]  internal  A pointer to the internal CustomActor.
+   * @param[in] internal A pointer to the internal CustomActor
    */
   DALI_INTERNAL CheckBoxButton( Dali::Internal::CustomActor* internal );
   /// @endcond
index c0535fe..f3cbea8 100644 (file)
@@ -43,7 +43,7 @@ class PushButton;
 /**
  * @brief A PushButton changes its appearance when is pressed and returns to its original when is released.
  *
- * By default a PushButton emits a Button::PressedSignal() signal when the button is pressed, a Button::ClickedSignal() signal when it's clicked
+ * By default, a PushButton emits a Button::PressedSignal() signal when the button is pressed, a Button::ClickedSignal() signal when it's clicked.
  * and a Button::ReleasedSignal() signal when it's released or having pressed it, the touch point leaves the boundary of the button.
  *
  * Usage example: -
@@ -82,7 +82,7 @@ class PushButton;
  * }
  * @endcode
  *
- * See Button for more detail on signals and modifying appearance via properties.
+ * See Button for more details on signals and modifying appearance via properties.
  * @SINCE_1_0.0
  */
 class DALI_IMPORT_API PushButton : public Button
@@ -90,7 +90,7 @@ class DALI_IMPORT_API PushButton : public Button
 public:
 
   /**
-   * @brief The start and end property ranges for this control.
+   * @brief Enumeration for the start and end property ranges for this control.
    * @SINCE_1_0.0
    */
   enum PropertyRange
@@ -100,13 +100,13 @@ public:
   };
 
   /**
-   * @brief An enumeration of properties belonging to the PushButton class.
+   * @brief Enumeration for the instance of properties belonging to the PushButton class.
    * @SINCE_1_0.0
    */
   struct Property
   {
     /**
-     * @brief An enumeration of properties belonging to the PushButton class.
+     * @brief Enumeration for the instance of properties belonging to the PushButton class.
      * @SINCE_1_0.0
      */
     enum
@@ -122,7 +122,7 @@ public:
 public:
 
   /**
-   * @brief Create an uninitialized PushButton; this can be initialized with PushButton::New().
+   * @brief Creates an uninitialized PushButton; this can be initialized with PushButton::New().
    *
    * Calling member functions with an uninitialized Dali::Object is not allowed.
    * @SINCE_1_0.0
@@ -145,7 +145,7 @@ public:
   PushButton& operator=( const PushButton& pushButton );
 
   /**
-   * @brief Destructor
+   * @brief Destructor.
    *
    * This is non-virtual since derived Handle types must not contain data or virtual methods.
    * @SINCE_1_0.0
@@ -153,18 +153,18 @@ public:
   ~PushButton();
 
   /**
-   * @brief Create an initialized PushButton.
+   * @brief Creates an initialized PushButton.
    *
    * @SINCE_1_0.0
-   * @return A handle to a newly allocated Dali resource.
+   * @return A handle to a newly allocated Dali resource
    */
   static PushButton New();
 
   /**
-   * @brief Downcast a handle to PushButton handle.
+   * @brief Downcasts a handle to PushButton handle.
    *
-   * If handle points to a PushButton the downcast produces valid
-   * handle. If not the returned handle is left uninitialized.
+   * If handle points to a PushButton, the downcast produces valid handle.
+   * If not, the returned handle is left uninitialized.
    *
    * @SINCE_1_0.0
    * @param[in] handle Handle to an object
@@ -183,7 +183,7 @@ public:
    * @brief Sets the unselected image with an Actor.
    *
    * @SINCE_1_0.0
-   * @param[in] image The Actor to use.
+   * @param[in] image The Actor to use
    */
   void SetButtonImage( Actor image ) DALI_DEPRECATED_API;
 
@@ -195,7 +195,7 @@ public:
    * @brief Sets the background image with an Actor.
    *
    * @SINCE_1_0.0
-   * @param[in] image The Actor to use.
+   * @param[in] image The Actor to use
    */
   void SetBackgroundImage( Actor image ) DALI_DEPRECATED_API;
 
@@ -207,7 +207,7 @@ public:
    * @brief Sets the selected image with an Actor.
    *
    * @SINCE_1_0.0
-   * @param[in] image The Actor to use.
+   * @param[in] image The Actor to use
    */
   void SetSelectedImage( Actor image ) DALI_DEPRECATED_API;
 
@@ -219,7 +219,7 @@ public:
    * @brief Sets the selected background image with an Actor.
    *
    * @SINCE_1_0.0
-   * @param[in] image The Actor to use.
+   * @param[in] image The Actor to use
    */
   void SetSelectedBackgroundImage( Actor image ) DALI_DEPRECATED_API;
 
@@ -231,7 +231,7 @@ public:
    * @brief Sets the disabled background image with an Actor.
    *
    * @SINCE_1_0.0
-   * @param[in] image The Actor to use.
+   * @param[in] image The Actor to use
    */
   void SetDisabledBackgroundImage( Actor image ) DALI_DEPRECATED_API;
 
@@ -243,7 +243,7 @@ public:
    * @brief Sets the disabled image with an Actor.
    *
    * @SINCE_1_0.0
-   * @param[in] image The Actor to use.
+   * @param[in] image The Actor to use
    */
   void SetDisabledImage( Actor image ) DALI_DEPRECATED_API;
 
@@ -255,7 +255,7 @@ public:
    * @brief Sets the disabled selected image with an Actor.
    *
    * @SINCE_1_0.0
-   * @param[in] image The Actor to use.
+   * @param[in] image The Actor to use
    */
   void SetDisabledSelectedImage( Actor image ) DALI_DEPRECATED_API;
 
@@ -267,7 +267,7 @@ public: // Not intended for application developers
    * @brief Creates a handle using the Toolkit::Internal implementation.
    *
    * @SINCE_1_0.0
-   * @param[in]  implementation  The Control implementation.
+   * @param[in] implementation The Control implementation
    */
   DALI_INTERNAL PushButton( Internal::PushButton& implementation );
 
@@ -275,7 +275,7 @@ public: // Not intended for application developers
    * @brief Allows the creation of this Control from an Internal::CustomActor pointer.
    *
    * @SINCE_1_0.0
-   * @param[in]  internal  A pointer to the internal CustomActor.
+   * @param[in] internal A pointer to the internal CustomActor
    */
   DALI_INTERNAL PushButton( Dali::Internal::CustomActor* internal );
   /// @endcond
index 99a4815..58b8604 100644 (file)
@@ -60,7 +60,7 @@ class RadioButton;
  * Usage example: -
  *
  * @code
- * // in Creating a DALi Application
+ * // In Creating a DALi Application
  *
  * // Create a group to bind two or more RadioButtons together
  * Actor radioGroup = Actor::New();
@@ -88,7 +88,7 @@ class DALI_IMPORT_API RadioButton: public Button
 {
  public:
   /**
-   * @brief Create an uninitialized RadioButton; this can be initialized with RadioButton::New().
+   * @brief Creates an uninitialized RadioButton; this can be initialized with RadioButton::New().
    *
    * Calling member functions with an uninitialized Dali::Object is not allowed.
    * @SINCE_1_0.0
@@ -111,7 +111,7 @@ class DALI_IMPORT_API RadioButton: public Button
   RadioButton& operator=( const RadioButton& radioButton );
 
   /**
-   * @brief Destructor
+   * @brief Destructor.
    *
    * This is non-virtual since derived Handle types must not contain data or virtual methods.
    * @SINCE_1_0.0
@@ -119,28 +119,27 @@ class DALI_IMPORT_API RadioButton: public Button
   ~RadioButton();
 
   /**
-   * @brief Create an initialized RadioButton.
+   * @brief Creates an initialized RadioButton.
    *
    * @SINCE_1_0.0
-   * @return A handle to a newly allocated Dali resource.
+   * @return A handle to a newly allocated Dali resource
    */
   static RadioButton New();
 
   /**
-   * @brief Create an initialized RadioButton with given label.
+   * @brief Creates an initialized RadioButton with given label.
    *
    * @SINCE_1_0.0
-   * @param[in] label The button label.
-   *
-   * @return A handle to a newly allocated Dali resource.
+   * @param[in] label The button label
+   * @return A handle to a newly allocated Dali resource
    */
   static RadioButton New( const std::string& label );
 
   /**
-   * @brief Downcast a handle to RadioButton handle.
+   * @brief Downcasts a handle to RadioButton handle.
    *
-   * If handle points to a RadioButton the downcast produces valid
-   * handle. If not the returned handle is left uninitialized.
+   * If handle points to a RadioButton, the downcast produces valid handle.
+   * If not, the returned handle is left uninitialized.
    *
    * @SINCE_1_0.0
    * @param[in] handle Handle to an object
@@ -155,7 +154,7 @@ class DALI_IMPORT_API RadioButton: public Button
    * @brief Creates a handle using the Toolkit::Internal implementation.
    *
    * @SINCE_1_0.0
-   * @param[in]  implementation  The Control implementation.
+   * @param[in] implementation The Control implementation
    */
   DALI_INTERNAL RadioButton( Internal::RadioButton& implementation );
 
@@ -163,7 +162,7 @@ class DALI_IMPORT_API RadioButton: public Button
    * @brief Allows the creation of this Control from an Internal::CustomActor pointer.
    *
    * @SINCE_1_0.0
-   * @param[in]  internal  A pointer to the internal CustomActor.
+   * @param[in] internal A pointer to the internal CustomActor
    */
   DALI_INTERNAL RadioButton( Dali::Internal::CustomActor* internal );
   /// @endcond
index 18dd3fd..c94ebb1 100644 (file)
@@ -121,17 +121,6 @@ Toolkit::Visual::Base GetVisualByName(
   return visualHandle;
 }
 
-void SetDefaultTransform( Property::Map& propertyMap )
-{
-  propertyMap.Clear();
-  propertyMap
-    .Add( Toolkit::DevelVisual::Transform::Property::OFFSET, Vector2(0.0f, 0.0f) )
-    .Add( Toolkit::DevelVisual::Transform::Property::SIZE, Vector2(1.0f, 1.0f) )
-    .Add( Toolkit::DevelVisual::Transform::Property::ORIGIN, Toolkit::Align::CENTER )
-    .Add( Toolkit::DevelVisual::Transform::Property::ANCHOR_POINT, Toolkit::Align::CENTER )
-    .Add( Toolkit::DevelVisual::Transform::Property::OFFSET_SIZE_MODE, Vector4::ZERO );
-}
-
 /**
  * Creates control through type registry
  */
@@ -1212,9 +1201,7 @@ void Control::OnSizeSet(const Vector3& targetSize)
   if( visual )
   {
     Vector2 size( targetSize );
-    Property::Map transformMap;
-    SetDefaultTransform( transformMap );
-    visual.SetTransformAndSize( transformMap, size );
+    visual.SetTransformAndSize( Property::Map(), size ); // Send an empty map as we do not want to modify the visual's set transform
   }
 }
 
@@ -1253,10 +1240,7 @@ void Control::OnRelayout( const Vector2& size, RelayoutContainer& container )
   Toolkit::Visual::Base visual = GetVisual( Toolkit::Control::Property::BACKGROUND );
   if( visual )
   {
-    Vector2 controlSize( size );
-    Property::Map transformMap;
-    SetDefaultTransform( transformMap );
-    visual.SetTransformAndSize( transformMap, controlSize );
+    visual.SetTransformAndSize( Property::Map(), size ); // Send an empty map as we do not want to modify the visual's set transform
   }
 }
 
index 729cf80..45eff9f 100644 (file)
@@ -68,11 +68,11 @@ public:
   // Creation & Destruction
 
   /**
-   * @brief Create a new ControlImpl instance that does not require touch by default.
+   * @brief Creates a new ControlImpl instance that does not require touch by default.
    *
-   * If touch is required then the user can connect to this class' touch signal.
+   * If touch is required, then the user can connect to this class' touch signal.
    * @SINCE_1_0.0
-   * @return A handle to the ControlImpl instance.
+   * @return A handle to the ControlImpl instance
    */
   static Toolkit::Control New();
 
@@ -114,10 +114,10 @@ public:
   void SetBackgroundImage( Image image );
 
   /**
-   * @brief Set the background with a property map.
+   * @brief Sets the background with a property map.
    *
    * @SINCE_1_0.0
-   * @param[in] map The background property map.
+   * @param[in] map The background property map
    */
   void SetBackground(const Property::Map& map);
 
@@ -136,7 +136,7 @@ public:
    * EnableGestureDetection(Gesture::Type(Gesture::Pinch | Gesture::Tap | Gesture::Pan));
    * @endcode
    * @SINCE_1_0.0
-   * @param[in]  type  The gesture type(s) to enable.
+   * @param[in] type The gesture type(s) to enable
    */
   void EnableGestureDetection( Gesture::Type type );
 
@@ -145,18 +145,18 @@ public:
    *
    * Like EnableGestureDetection, this can also be called using bitwise or.
    * @SINCE_1_0.0
-   * @param[in]  type  The gesture type(s) to disable.
+   * @param[in] type The gesture type(s) to disable
    * @see EnableGetureDetection
    */
   void DisableGestureDetection( Gesture::Type type );
 
   /**
    * @brief If deriving classes wish to fine tune pinch gesture
-   * detection then they can access the gesture detector through this
+   * detection, then they can access the gesture detector through this
    * API and modify the detection.
    *
    * @SINCE_1_0.0
-   * @return The pinch gesture detector.
+   * @return The pinch gesture detector
    * @pre Pinch detection should have been enabled via EnableGestureDetection().
    * @see EnableGestureDetection
    */
@@ -164,11 +164,11 @@ public:
 
   /**
    * @brief If deriving classes wish to fine tune pan gesture
-   * detection then they can access the gesture detector through this
+   * detection, then they can access the gesture detector through this
    * API and modify the detection.
    *
    * @SINCE_1_0.0
-   * @return The pan gesture detector.
+   * @return The pan gesture detector
    * @pre Pan detection should have been enabled via EnableGestureDetection().
    * @see EnableGestureDetection
    */
@@ -176,11 +176,11 @@ public:
 
   /**
    * @brief If deriving classes wish to fine tune tap gesture
-   * detection then they can access the gesture detector through this
+   * detection, then they can access the gesture detector through this
    * API and modify the detection.
    *
    * @SINCE_1_0.0
-   * @return The tap gesture detector.
+   * @return The tap gesture detector
    * @pre Tap detection should have been enabled via EnableGestureDetection().
    * @see EnableGestureDetection
    */
@@ -188,11 +188,11 @@ public:
 
   /**
    * @brief If deriving classes wish to fine tune long press gesture
-   * detection then they can access the gesture detector through this
+   * detection, then they can access the gesture detector through this
    * API and modify the detection.
    *
    * @SINCE_1_0.0
-   * @return The long press gesture detector.
+   * @return The long press gesture detector
    * @pre Long press detection should have been enabled via EnableGestureDetection().
    * @see EnableGestureDetection
    */
@@ -207,7 +207,7 @@ public:
    *
    * The control doesn't support it by default.
    * @SINCE_1_0.0
-   * @param[in] isSupported Whether this control supports two dimensional keyboard navigation.
+   * @param[in] isSupported Whether this control supports two dimensional keyboard navigation
    */
   void SetKeyboardNavigationSupport( bool isSupported );
 
@@ -215,7 +215,7 @@ public:
    * @brief Gets whether this control supports two dimensional keyboard navigation.
    *
    * @SINCE_1_0.0
-   * @return true if this control supports two dimensional keyboard navigation.
+   * @return true if this control supports two dimensional keyboard navigation
    */
   bool IsKeyboardNavigationSupported();
 
@@ -242,9 +242,9 @@ public:
    * @brief Sets whether this control is a focus group for keyboard navigation.
    *
    * (i.e. the scope of keyboard focus movement
-   * can be limitied to its child actors). The control is not a focus group by default.
+   * can be limited to its child actors). The control is not a focus group by default.
    * @SINCE_1_0.0
-   * @param[in] isFocusGroup Whether this control is set as a focus group for keyboard navigation.
+   * @param[in] isFocusGroup Whether this control is set as a focus group for keyboard navigation
    */
   void SetAsKeyboardFocusGroup( bool isFocusGroup );
 
@@ -252,7 +252,7 @@ public:
    * @brief Gets whether this control is a focus group for keyboard navigation.
    *
    * @SINCE_1_0.0
-   * @return true if this control is set as a focus group for keyboard navigation.
+   * @return true if this control is set as a focus group for keyboard navigation
    */
   bool IsKeyboardFocusGroup();
 
@@ -292,8 +292,8 @@ public:
    * @brief Called by the KeyInputFocusManager to emit key event signals.
    *
    * @SINCE_1_0.0
-   * @param[in] event The key event.
-   * @return True if the event was consumed.
+   * @param[in] event The key event
+   * @return True if the event was consumed
    */
   DALI_INTERNAL bool EmitKeyEventSignal( const KeyEvent& event );
   /// @endcond
@@ -385,7 +385,7 @@ protected: // For derived classes to call
   Dali::Animation CreateTransition( const Toolkit::TransitionData& transitionData );
 
   /**
-   * @brief Emits KeyInputFocusGained signal if true else emits KeyInputFocusLost signal
+   * @brief Emits KeyInputFocusGained signal if true else emits KeyInputFocusLost signal.
    *
    * Should be called last by the control after it acts on the Input Focus change.
    *
@@ -508,7 +508,7 @@ protected: // Helpers for deriving classes
   // Construction
 
   /**
-   * @brief Flags for the constructor
+   * @brief Flags for the constructor.
    * @SINCE_1_0.0
    */
   enum ControlBehaviour
@@ -525,7 +525,7 @@ protected: // Helpers for deriving classes
   static const int CONTROL_BEHAVIOUR_FLAG_COUNT = Log< LAST_CONTROL_BEHAVIOUR_FLAG - 1 >::value + 1;      ///< Total count of flags
 
   /**
-   * @brief Control constructor
+   * @brief Control constructor.
    *
    * @SINCE_1_0.0
    * @param[in] behaviourFlags Behavioural flags from ControlBehaviour enum
@@ -558,7 +558,7 @@ public: // API for derived classes to override
    * Could be overridden by derived classes.
    *
    * @SINCE_1_0.0
-   * @param[in] child The added actor.
+   * @param[in] child The added actor
    */
   virtual void OnControlChildAdd( Actor& child ) DALI_DEPRECATED_API;
 
@@ -570,7 +570,7 @@ public: // API for derived classes to override
    * Could be overridden by derived classes.
    *
    * @SINCE_1_0.0
-   * @param[in] child The removed actor.
+   * @param[in] child The removed actor
    */
   virtual void OnControlChildRemove( Actor& child ) DALI_DEPRECATED_API;
 
@@ -580,8 +580,8 @@ public: // API for derived classes to override
    * @brief This method should be overridden by deriving classes requiring notifications when the style changes.
    *
    * @SINCE_1_0.0
-   * @param[in] styleManager  The StyleManager object.
-   * @param[in] change  Information denoting what has changed.
+   * @param[in] styleManager The StyleManager object
+   * @param[in] change Information denoting what has changed
    */
   virtual void OnStyleChange( Toolkit::StyleManager styleManager, StyleChange::Type change );
 
@@ -592,7 +592,7 @@ public: // API for derived classes to override
    *
    * Derived classes should override this to perform custom accessibility activation.
    * @SINCE_1_0.0
-   * @return true if this control can perform accessibility activation.
+   * @return true if this control can perform accessibility activation
    */
   virtual bool OnAccessibilityActivated();
 
@@ -601,7 +601,7 @@ public: // API for derived classes to override
    * pan gesture.
    *
    * @SINCE_1_0.0
-   * @param[in] gesture The pan gesture.
+   * @param[in] gesture The pan gesture
    * @return true if the pan gesture has been consumed by this control
    */
   virtual bool OnAccessibilityPan( PanGesture gesture );
@@ -611,7 +611,7 @@ public: // API for derived classes to override
    * touch event.
    *
    * @SINCE_1_0.0
-   * @param[in] touchEvent The touch event.
+   * @param[in] touchEvent The touch event
    * @return true if the touch event has been consumed by this control
    */
   virtual bool OnAccessibilityTouch( const TouchEvent& touchEvent );
@@ -658,21 +658,21 @@ public: // API for derived classes to override
    *
    * A control needs to override this function in order to support two dimensional keyboard navigation.
    * @SINCE_1_0.0
-   * @param[in] currentFocusedActor The current focused actor.
-   * @param[in] direction The direction to move the focus towards.
-   * @param[in] loopEnabled Whether the focus movement should be looped within the control.
-   * @return the next keyboard focusable actor in this control or an empty handle if no actor can be focused.
+   * @param[in] currentFocusedActor The current focused actor
+   * @param[in] direction The direction to move the focus towards
+   * @param[in] loopEnabled Whether the focus movement should be looped within the control
+   * @return The next keyboard focusable actor in this control or an empty handle if no actor can be focused
    */
   virtual Actor GetNextKeyboardFocusableActor( Actor currentFocusedActor, Toolkit::Control::KeyboardFocus::Direction direction, bool loopEnabled );
 
   /**
    * @brief Informs this control that its chosen focusable actor will be focused.
    *
-   * This allows the application to preform any actions if wishes
+   * This allows the application to perform any actions if wishes
    * before the focus is actually moved to the chosen actor.
    *
    * @SINCE_1_0.0
-   * @param[in] commitedFocusableActor The commited focusable actor.
+   * @param[in] commitedFocusableActor The commited focusable actor
    */
   virtual void OnKeyboardFocusChangeCommitted( Actor commitedFocusableActor );
 
@@ -681,7 +681,7 @@ public: // API for derived classes to override
    *
    * Derived classes should override this to perform custom actions.
    * @SINCE_1_0.0
-   * @return true if this control supported this action.
+   * @return true if this control supported this action
    */
   virtual bool OnKeyboardEnter();
 
@@ -695,8 +695,8 @@ public: // API for derived classes to override
    * pinch scale.
    *
    * @SINCE_1_0.0
-   * @param[in]  pinch  The pinch gesture.
-   * @note If overridden, then the default behaviour will not occur.
+   * @param[in] pinch The pinch gesture
+   * @note If overridden, then the default behavior will not occur.
    * @note Pinch detection should be enabled via EnableGestureDetection().
    * @see EnableGestureDetection
    */
@@ -709,8 +709,8 @@ public: // API for derived classes to override
    * is enabled.
    *
    * @SINCE_1_0.0
-   * @param[in]  pan  The pan gesture.
-   * @note There is no default behaviour with panning.
+   * @param[in] pan The pan gesture
+   * @note There is no default behavior with panning.
    * @note Pan detection should be enabled via EnableGestureDetection().
    * @see EnableGestureDetection
    */
@@ -723,8 +723,8 @@ public: // API for derived classes to override
    * is enabled.
    *
    * @SINCE_1_0.0
-   * @param[in]  tap  The tap gesture.
-   * @note There is no default behaviour with a tap.
+   * @param[in] tap The tap gesture
+   * @note There is no default behavior with a tap.
    * @note Tap detection should be enabled via EnableGestureDetection().
    * @see EnableGestureDetection
    */
@@ -737,7 +737,7 @@ public: // API for derived classes to override
    * detection is enabled.
    *
    * @SINCE_1_0.0
-   * @param[in]  longPress  The long press gesture.
+   * @param[in] longPress The long press gesture
    * @note There is no default behaviour associated with a long press.
    * @note Long press detection should be enabled via EnableGestureDetection().
    * @see EnableGestureDetection
@@ -757,7 +757,7 @@ public: // API for derived classes to override
   virtual void SignalDisconnected( SlotObserver* slotObserver, CallbackBase* callback );
 
   /**
-   * @brief Retrieve the extension for this control
+   * @brief Retrieves the extension for this control.
    *
    * @SINCE_1_0.0
    * @return The extension if available, NULL otherwise
@@ -781,22 +781,22 @@ private:
 };
 
 /**
- * @brief Get implementation from the handle.
+ * @brief Gets implementation from the handle.
  *
  * @SINCE_1_0.0
  * @param handle
- * @return implementation
+ * @return Implementation
  * @pre handle is initialized and points to a control
  */
 DALI_IMPORT_API Internal::Control& GetImplementation( Dali::Toolkit::Control& handle );
 
 /**
- * @brief Get implementation from the handle.
+ * @brief Gets implementation from the handle.
  *
  * @SINCE_1_0.0
  * @param handle
- * @return implementation
- * @pre handle is initialized and points to a control
+ * @return Implementation
+ * @pre Handle is initialized and points to a control.
  */
 DALI_IMPORT_API const Internal::Control& GetImplementation( const Dali::Toolkit::Control& handle );
 
index c6e3b1d..3f2f169 100644 (file)
@@ -73,7 +73,7 @@ class DALI_IMPORT_API Control : public CustomActor
 public:
 
   /**
-   * @brief The start and end property ranges for control.
+   * @brief Enumeration for the start and end property ranges for control.
    * @SINCE_1_0.0
    */
   enum PropertyRange
@@ -84,44 +84,44 @@ public:
   };
 
   /**
-   * @brief An enumeration of properties belonging to the Control class.
+   * @brief Enumeration for the instance of properties belonging to the Control class.
    * @SINCE_1_0.0
    */
   struct Property
   {
     /**
-     * @brief An enumeration of properties belonging to the Control class.
+     * @brief Enumeration for the instance of properties belonging to the Control class.
      * @SINCE_1_0.0
      */
     enum
     {
       /**
-       * @brief name "styleName", type std::string
+       * @brief name "styleName", type std::string.
        * @SINCE_1_0.0
        * @see SetStyleName
        */
       STYLE_NAME = PROPERTY_START_INDEX,
       /**
        * @DEPRECATED_1_1.3
-       * @brief name "background-color", mutually exclusive with BACKGROUND_IMAGE & BACKGROUND,  type Vector4
+       * @brief name "backgroundColor", mutually exclusive with BACKGROUND_IMAGE & BACKGROUND,  type Vector4.
        * @SINCE_1_0.0
        * @see SetStyleName
        */
       BACKGROUND_COLOR,
       /**
        * @DEPRECATED_1_1.3
-       * @brief name "background-image", mutually exclusive with BACKGROUND_COLOR & BACKGROUND,  type Map
+       * @brief name "backgroundImage", mutually exclusive with BACKGROUND_COLOR & BACKGROUND,  type Map.
        * @SINCE_1_0.0
        */
       BACKGROUND_IMAGE,
       /**
-       * @brief name "keyInputFocus", type bool
+       * @brief name "keyInputFocus", type bool.
        * @SINCE_1_0.0
        * @see SetKeyInputFocus
        */
       KEY_INPUT_FOCUS,
       /**
-       * @brief name "background", mutually exclusive with BACKGROUND_COLOR & BACKGROUND_IMAGE, type Map or std::string for URL
+       * @brief name "background", mutually exclusive with BACKGROUND_COLOR & BACKGROUND_IMAGE, type Map or std::string for URL.
        * @SINCE_1_1.3
        */
       BACKGROUND,
@@ -135,7 +135,7 @@ public:
   struct KeyboardFocus
   {
     /**
-     * @brief Keyboard focus direction
+     * @brief Keyboard focus direction.
      * @SINCE_1_0.0
      */
     enum Direction
@@ -160,15 +160,15 @@ public:
 public: // Creation & Destruction
 
   /**
-   * @brief Create a new instance of a Control.
+   * @brief Creates a new instance of a Control.
    *
    * @SINCE_1_0.0
-   * @return A handle to a new Control.
+   * @return A handle to a new Control
    */
   static Control New();
 
   /**
-   * @brief Create an uninitialized Control handle.
+   * @brief Creates an uninitialized Control handle.
    *
    * Only derived versions can be instantiated.  Calling member
    * functions with an uninitialized Dali::Object is not allowed.
@@ -201,17 +201,17 @@ public: // operators
    * Changes this handle to point to another real object.
    * @SINCE_1_0.0
    * @param[in] handle Object to assign this to
-   * @return reference to this
+   * @return Reference to this
    */
   Control& operator=( const Control& handle );
 
 public:
 
   /**
-   * @brief Downcast a handle to Control handle.
+   * @brief Downcasts a handle to Control handle.
    *
-   * If handle points to a Control the downcast produces valid
-   * handle. If not the returned handle is left uninitialized.
+   * If handle points to a Control, the downcast produces valid handle.
+   * If not, the returned handle is left uninitialized.
    *
    * @SINCE_1_0.0
    * @param[in] handle Handle to an object
@@ -242,7 +242,7 @@ public:
    * As the key input focus mechanism works like a stack, the top most control receives all the key events, and passes on the
    * unhandled events to the controls below in the stack. A control in the stack will regain key input focus when there are no more
    * controls above it in the focus stack.
-   * To query for the conrol which is on top of the focus stack use Dali::Toolkit::KeyInputFocusManager::GetCurrentKeyboardFocusActor().
+   * To query for the control which is on top of the focus stack use Dali::Toolkit::KeyInputFocusManager::GetCurrentKeyboardFocusActor().
    */
   bool HasKeyInputFocus();
 
@@ -261,7 +261,7 @@ public:
    * @brief Retrieves the pinch gesture detector of the control.
    *
    * @SINCE_1_0.0
-   * @return The pinch gesture detector.
+   * @return The pinch gesture detector
    * @note Will return an empty handle if the control does not handle the gesture itself.
    */
   PinchGestureDetector GetPinchGestureDetector() const;
@@ -270,7 +270,7 @@ public:
    * @brief Retrieves the pan gesture detector of the control.
    *
    * @SINCE_1_0.0
-   * @return The pan gesture detector.
+   * @return The pan gesture detector
    * @note Will return an empty handle if the control does not handle the gesture itself.
    */
   PanGestureDetector GetPanGestureDetector() const;
@@ -279,7 +279,7 @@ public:
    * @brief Retrieves the tap gesture detector of the control.
    *
    * @SINCE_1_0.0
-   * @return The tap gesture detector.
+   * @return The tap gesture detector
    * @note Will return an empty handle if the control does not handle the gesture itself.
    */
   TapGestureDetector GetTapGestureDetector() const;
@@ -288,7 +288,7 @@ public:
    * @brief Retrieves the long press gesture detector of the control.
    *
    * @SINCE_1_0.0
-   * @return The long press gesture detector.
+   * @return The long press gesture detector
    * @note Will return an empty handle if the control does not handle the gesture itself.
    */
   LongPressGestureDetector GetLongPressGestureDetector() const;
@@ -299,14 +299,14 @@ public:
    * @brief Sets the name of the style to be applied to the control.
    *
    * @SINCE_1_0.0
-   * @param[in] styleName A string matching a style described in a stylesheet.
+   * @param[in] styleName A string matching a style described in a stylesheet
    */
   void SetStyleName( const std::string& styleName );
 
   /**
    * @brief Retrieves the name of the style to be applied to the control (if any).
    * @SINCE_1_0.0
-   * @return A string matching a style or an empty string.
+   * @return A string matching a style, or an empty string
    */
   const std::string& GetStyleName() const;
 
@@ -318,7 +318,7 @@ public:
    * @SINCE_1_0.0
    * @param[in] color The required background color of the control
    *
-   * @note if SetBackgroundImage is called later, this background color is removed.
+   * @note If SetBackgroundImage is called later, this background color is removed.
    *
    * @note The background color fully blends with the actor color.
    */
@@ -330,7 +330,7 @@ public:
    * @brief Retrieves the background color of the control.
    *
    * @SINCE_1_0.0
-   * @return The background color of the control.
+   * @return The background color of the control
    */
   Vector4 GetBackgroundColor() const DALI_DEPRECATED_API;
 
@@ -340,7 +340,7 @@ public:
    * @brief Sets an image as the background of the control.
    *
    * @SINCE_1_0.0
-   * @param[in] image The image to set as the background.
+   * @param[in] image The image to set as the background
    */
   void SetBackgroundImage( Image image ) DALI_DEPRECATED_API;
 
@@ -362,7 +362,7 @@ public:
    * The return value of True, indicates that the event should be consumed.
    * Otherwise the signal will be emitted on the next parent of the actor.
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    * @pre The Control has been initialized.
    */
   KeyEventSignalType& KeyEventSignal();
@@ -377,7 +377,7 @@ public:
    * The return value of True, indicates that the event should be consumed.
    * Otherwise the signal will be emitted on the next parent of the actor.
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    * @pre The Control has been initialized.
    */
   KeyInputFocusSignalType& KeyInputFocusGainedSignal();
@@ -394,7 +394,7 @@ public:
    * The return value of True, indicates that the event should be consumed.
    * Otherwise the signal will be emitted on the next parent of the actor.
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    * @pre The Control has been initialized.
    */
   KeyInputFocusSignalType& KeyInputFocusLostSignal();
@@ -402,12 +402,11 @@ public:
 public: // Intended for control developers
 
   /**
-   * @brief Create an initialised Control.
+   * @brief Creates an initialized Control.
    *
    * @SINCE_1_0.0
-   * @param[in] implementation The implementation for this control.
-   * @return A handle to a newly allocated Dali resource.
-   *
+   * @param[in] implementation The implementation for this control
+   * @return A handle to a newly allocated Dali resource
    * @note Should NOT be called to create a handle from the implementation. As stated, this allocates a NEW Dali resource.
    */
   explicit Control(Internal::Control& implementation);
@@ -417,7 +416,7 @@ public: // Intended for control developers
    * using an Internal CustomActor pointer.
    *
    * @SINCE_1_0.0
-   * @param [in] internal A pointer to a newly allocated Dali resource
+   * @param[in] internal A pointer to a newly allocated Dali resource
    */
   explicit Control(Dali::Internal::CustomActor* internal);
 
@@ -426,11 +425,11 @@ public: // Templates for Deriving Classes
   /**
    * @brief Template to allow deriving controls to DownCast handles to deriving handle classes.
    *
-   * @tparam     T       The handle class
-   * @tparam     I       The implementation class
+   * @tparam     T      The handle class
+   * @tparam     I      The implementation class
    * @SINCE_1_0.0
-   * @param[in]  handle  Handle to an object
-   * @return Handle to a class T or an uninitialized handle.
+   * @param[in] handle Handle to an object
+   * @return Handle to a class T or an uninitialized handle
    * @see DownCast(BaseHandle)
    */
   template<typename T, typename I>
@@ -458,9 +457,9 @@ public: // Templates for Deriving Classes
    * @brief Template to allow deriving controls to verify whether the Internal::CustomActor* is actually an
    * implementation of their class.
    *
-   * @tparam     I         The implementation class
+   * @tparam     I       The implementation class
    * @SINCE_1_0.0
-   * @param[in]  internal  Pointer to the Internal::CustomActor
+   * @param[in] internal Pointer to the Internal::CustomActor
    */
   template<typename I>
   DALI_INTERNAL void VerifyCustomActorPointer(Dali::Internal::CustomActor* internal)
index ef86a70..0f6f9d9 100644 (file)
@@ -93,9 +93,9 @@ class FlexContainer;
  * "type":"ImageView",
  * "image":"image.png",
  *   "properties": {
- *     "flex":1,                        // property to make the item to receive the specified proportion of the free space in the container.
- *     "alignSelf":"flexStart",         // property to specify how the item will align along the cross axis.
- *     "flexMargin":[10, 10, 10, 10]    // property to specify the space around the item.
+ *     "flex":1,                        // Property to make the item to receive the specified proportion of the free space in the container.
+ *     "alignSelf":"flexStart",         // Property to specify how the item will align along the cross axis.
+ *     "flexMargin":[10, 10, 10, 10]    // Property to specify the space around the item.
  *   }
  * @endcode
  * @SINCE_1_1.35
@@ -106,7 +106,7 @@ class DALI_IMPORT_API FlexContainer : public Control
 public:
 
   /**
-   * @brief The direction of the main axis in the flex container. This determines
+   * @brief Enumeration for the direction of the main axis in the flex container. This determines
    * the direction that flex items are laid out in the flex container.
    * @SINCE_1_1.35
    */
@@ -119,7 +119,7 @@ public:
   };
 
   /**
-   * @brief The primary direction in which content is ordered in the flex container
+   * @brief Enumeration for the primary direction in which content is ordered in the flex container
    * and on which sides the “start” and “end” are.
    * @SINCE_1_1.35
    */
@@ -131,7 +131,7 @@ public:
   };
 
   /**
-   * @brief Alignment of the flex items when the items do not use all available
+   * @brief Enumeration for the alignment of the flex items when the items do not use all available
    * space on the main-axis.
    * @SINCE_1_1.35
    */
@@ -145,8 +145,8 @@ public:
   };
 
   /**
-   * @brief Alignment of the flex items or lines when the items or lines do not
-   * use all available space on the cross-axis.
+   * @brief Enumeration for the alignment of the flex items or lines when the items or lines do not
+   * use all the available space on the cross-axis.
    * @SINCE_1_1.35
    */
   enum Alignment
@@ -159,7 +159,7 @@ public:
   };
 
   /**
-   * @brief The wrap type of the flex container when there is no enough room for
+   * @brief Enumeration for the wrap type of the flex container when there is no enough room for
    * all the items on one flex line.
    * @SINCE_1_1.35
    */
@@ -172,7 +172,7 @@ public:
 public:
 
   /**
-   * @brief The start and end property ranges for this control.
+   * @brief Enumeration for the start and end property ranges for this control.
    * @SINCE_1_1.35
    */
   enum PropertyRange
@@ -185,13 +185,13 @@ public:
   };
 
   /**
-   * @brief An enumeration of properties belonging to the FlexContainer class.
+   * @brief Enumeration for the instance of properties belonging to the FlexContainer class.
    * @SINCE_1_1.35
    */
   struct Property
   {
     /**
-     * @brief An enumeration of properties belonging to the FlexContainer class.
+     * @brief Enumeration for the instance of properties belonging to the FlexContainer class.
      * @SINCE_1_1.35
      */
     enum
@@ -207,13 +207,13 @@ public:
   };
 
   /**
-   * @brief An enumeration of child properties belonging to the FlexContainer class.
+   * @brief Enumeration for the instance of child properties belonging to the FlexContainer class.
    * @SINCE_1_1.35
    */
   struct ChildProperty
   {
     /**
-     * @brief An enumeration of child properties belonging to the FlexContainer class.
+     * @brief Enumeration for the instance of child properties belonging to the FlexContainer class.
      * @SINCE_1_1.35
      */
     enum
@@ -226,14 +226,14 @@ public:
   };
 
   /**
-   * @brief Create a FlexContainer handle; this can be initialised with FlexContainer::New()
-   * Calling member functions with an uninitialised handle is not allowed.
+   * @brief Creates a FlexContainer handle; this can be initialized with FlexContainer::New()
+   * Calling member functions with an uninitialized handle is not allowed.
    * @SINCE_1_1.35
    */
   FlexContainer();
 
   /**
-   * @brief Copy constructor. Creates another handle that points to the same real object
+   * @brief Copy constructor. Creates another handle that points to the same real object.
    * @SINCE_1_1.35
    *
    * @param[in] handle The handle to copy from
@@ -241,7 +241,7 @@ public:
   FlexContainer( const FlexContainer& handle );
 
   /**
-   * @brief Assignment operator. Changes this handle to point to another real object
+   * @brief Assignment operator. Changes this handle to point to another real object.
    * @SINCE_1_1.35
    * @param[in] handle Handle to an object
    * @return A reference to this
@@ -249,7 +249,7 @@ public:
   FlexContainer& operator=( const FlexContainer& handle );
 
   /**
-   * @brief Destructor
+   * @brief Destructor.
    *
    * @details This is non-virtual since derived Handle types must not contain data or virtual methods.
    *
@@ -258,23 +258,23 @@ public:
   ~FlexContainer();
 
   /**
-   * @brief Create the FlexContainer control.
+   * @brief Creates the FlexContainer control.
    * @SINCE_1_1.35
    *
-   * @return A handle to the FlexContainer control.
+   * @return A handle to the FlexContainer control
    */
   static FlexContainer New();
 
   /**
-   * @brief Downcast an Object handle to FlexContainer.
+   * @brief Downcasts an Object handle to FlexContainer.
    *
-   * @details If handle points to a FlexContainer the downcast produces
-   * valid handle. If not the returned handle is left uninitialized.
+   * @details If handle points to a FlexContainer, the downcast produces valid handle.
+   * If not, the returned handle is left uninitialized.
    *
    * @SINCE_1_1.35
    *
    * @param[in] handle Handle to an object
-   * @return handle to a FlexContainer or an uninitialized handle
+   * @return Handle to a FlexContainer or an uninitialized handle
    */
   static FlexContainer DownCast( BaseHandle handle );
 
@@ -286,7 +286,7 @@ public: // Not intended for application developers
    * @brief Creates a handle using the Toolkit::Internal implementation.
    * @SINCE_1_1.35
    *
-   * @param[in] implementation The Control implementation.
+   * @param[in] implementation The Control implementation
    */
   DALI_INTERNAL FlexContainer( Internal::FlexContainer& implementation );
 
@@ -294,7 +294,7 @@ public: // Not intended for application developers
    * @brief Allows the creation of this Control from an Internal::CustomActor pointer.
    * @SINCE_1_1.35
    *
-   * @param[in] internal A pointer to the internal CustomActor.
+   * @param[in] internal A pointer to the internal CustomActor
    */
   explicit DALI_INTERNAL FlexContainer( Dali::Internal::CustomActor* internal );
   /// @endcond
index 7954884..69bcbc3 100644 (file)
@@ -52,7 +52,7 @@ class DALI_IMPORT_API ImageView : public Control
 public:
 
   /**
-   * @brief The start and end property ranges for this control.
+   * @brief Enumeration for the start and end property ranges for this control.
    * @SINCE_1_0.0
    */
   enum PropertyRange
@@ -65,13 +65,13 @@ public:
   };
 
   /**
-   * @brief An enumeration of properties belonging to the ImageView class.
+   * @brief Enumeration for the instance of properties belonging to the ImageView class.
    * @SINCE_1_0.0
    */
   struct Property
   {
     /**
-     * @brief An enumeration of properties belonging to the ImageView class.
+     * @brief Enumeration for the instance of properties belonging to the ImageView class.
      * @SINCE_1_0.0
      */
     enum
@@ -80,19 +80,19 @@ public:
 
       /**
        * @DEPRECATED_1_1.16. Use IMAGE instead.
-       * @brief name "resourceUrl", type string
+       * @brief name "resourceUrl", type string.
        * @SINCE_1_0.0
        */
       RESOURCE_URL = PROPERTY_START_INDEX,
 
       /**
-       * @brief name "image", type string if it is a url, map otherwise
+       * @brief name "image", type string if it is a url, map otherwise.
        * @SINCE_1_0.0
        */
       IMAGE,
 
       /**
-       * @brief name "preMultipliedAlpha", type Boolean
+       * @brief name "preMultipliedAlpha", type Boolean.
        * @SINCE_1_1.18
        * @pre image must be initialized.
        */
@@ -102,7 +102,7 @@ public:
       // Animatable properties
 
       /**
-       * @brief name "pixelArea", type Vector4
+       * @brief name "pixelArea", type Vector4.
        * @details Pixel area is a relative value with the whole image area as [0.0, 0.0, 1.0, 1.0].
        * @SINCE_1_1.18
        */
@@ -113,7 +113,7 @@ public:
 public:
 
   /**
-   * @brief Create an uninitialized ImageView.
+   * @brief Creates an uninitialized ImageView.
    * @SINCE_1_0.0
    */
   ImageView();
@@ -122,7 +122,7 @@ public:
    * @brief Create an initialized ImageView.
    *
    * @SINCE_1_0.0
-   * @return A handle to a newly allocated Dali ImageView.
+   * @return A handle to a newly allocated Dali ImageView
    *
    * @note ImageView will not display anything.
    */
@@ -131,41 +131,40 @@ public:
   /**
    * @DEPRECATED_1_2_8, use New( const std::string& ) instead.
    *
-   * @brief Create an initialized ImageView from an Image instance.
+   * @brief Creates an initialized ImageView from an Image instance.
    *
    * If the handle is empty, ImageView will not display anything.
    *
    * @SINCE_1_0.0
-   * @param[in] image The Image instance to display.
-   * @return A handle to a newly allocated ImageView.
+   * @param[in] image The Image instance to display
+   * @return A handle to a newly allocated ImageView
    */
   static ImageView New( Image image ) DALI_DEPRECATED_API;
 
   /**
-   * @brief Create an initialized ImageView from an URL to an image resource.
+   * @brief Creates an initialized ImageView from an URL to an image resource.
    *
    * If the string is empty, ImageView will not display anything.
    *
    * @SINCE_1_0.0
    * @REMARK_INTERNET
    * @REMARK_STORAGE
-   * @param[in] url The url of the image resource to display.
-   * @return A handle to a newly allocated ImageView.
+   * @param[in] url The url of the image resource to display
+   * @return A handle to a newly allocated ImageView
    */
   static ImageView New( const std::string& url );
 
   /**
-   * @brief Create an initialized ImageView from a URL to an image resource.
+   * @brief Creates an initialized ImageView from a URL to an image resource.
    *
    * If the string is empty, ImageView will not display anything.
    *
    * @SINCE_1_1.10
    * @REMARK_INTERNET
    * @REMARK_STORAGE
-   * @param[in] url The url of the image resource to display.
-   * @param [in] size The width and height to which to fit the loaded image.
-   * @return A handle to a newly allocated ImageView.
-   *
+   * @param[in] url The url of the image resource to display
+   * @param [in] size The width and height to which to fit the loaded image
+   * @return A handle to a newly allocated ImageView
    * @note A valid size is preferable for efficiency.
    *       However, do not set a size that is bigger than the actual image size, as up-scaling is not available.
    *       The content of the area not covered by the actual image is undefined and will not be cleared.
@@ -173,7 +172,7 @@ public:
   static ImageView New( const std::string& url, ImageDimensions size );
 
   /**
-   * @brief Destructor
+   * @brief Destructor.
    *
    * This is non-virtual since derived Handle types must not contain data or virtual methods.
    * @SINCE_1_0.0
@@ -192,20 +191,20 @@ public:
    * @brief Assignment operator.
    *
    * @SINCE_1_0.0
-   * @param[in] imageView The ImageView to assign from.
-   * @return The updated ImageView.
+   * @param[in] imageView The ImageView to assign from
+   * @return The updated ImageView
    */
   ImageView& operator=( const ImageView& imageView );
 
   /**
-   * @brief Downcast a handle to ImageView handle.
+   * @brief Downcasts a handle to ImageView handle.
    *
-   * If handle points to a ImageView the downcast produces valid
-   * handle. If not the returned handle is left uninitialized.
+   * If handle points to a ImageView, the downcast produces valid handle.
+   * If not, the returned handle is left uninitialized.
    *
    * @SINCE_1_0.0
    * @param[in] handle Handle to an object
-   * @return handle to a ImageView or an uninitialized handle
+   * @return Handle to a ImageView or an uninitialized handle
    */
   static ImageView DownCast( BaseHandle handle );
 
@@ -228,7 +227,7 @@ public:
    * @SINCE_1_1.4
    * @REMARK_INTERNET
    * @REMARK_STORAGE
-   * @param[in] url The URL to the image resource to display.
+   * @param[in] url The URL to the image resource to display
    */
   void SetImage( const std::string& url );
 
@@ -240,8 +239,8 @@ public:
    * @SINCE_1_1.10
    * @REMARK_INTERNET
    * @REMARK_STORAGE
-   * @param[in] url The URL to the image resource to display.
-   * @param [in] size The width and height to fit the loaded image to.
+   * @param[in] url The URL to the image resource to display
+   * @param [in] size The width and height to fit the loaded image to
    */
   void SetImage( const std::string& url, ImageDimensions size );
 
@@ -252,7 +251,7 @@ public:
    * A valid handle will be returned only if this instance was created with New(Image) or SetImage(Image) was called.
    *
    * @SINCE_1_0.0
-   * @return The Image instance currently used by the ImageView.
+   * @return The Image instance currently used by the ImageView
    */
   Image GetImage() const DALI_DEPRECATED_API;
 
@@ -263,7 +262,7 @@ public: // Not intended for application developers
    * @brief Creates a handle using the Toolkit::Internal implementation.
    *
    * @SINCE_1_0.0
-   * @param[in]  implementation  The ImageView implementation.
+   * @param[in] implementation The ImageView implementation
    */
   DALI_INTERNAL ImageView( Internal::ImageView& implementation );
 
@@ -271,7 +270,7 @@ public: // Not intended for application developers
    * @brief Allows the creation of this ImageView from an Internal::CustomActor pointer.
    *
    * @SINCE_1_0.0
-   * @param[in]  internal  A pointer to the internal CustomActor.
+   * @param[in] internal A pointer to the internal CustomActor
    */
   DALI_INTERNAL ImageView( Dali::Internal::CustomActor* internal );
   /// @endcond
index 160ca96..ac7c1b0 100644 (file)
@@ -35,7 +35,7 @@ class Model3dView;
  * @brief Model3dView is a control for displaying 3d geometry.
  *
  * All the geometry loaded with the control is automatically centered and scaled to fit
- * the size of all the other controls. So the max is (0.5,0.5) and the min is (-0.5,-0.5)
+ * the size of all the other controls. So the max is (0.5,0.5) and the min is (-0.5,-0.5).
  *
  * @SINCE_1_1.4
  */
@@ -44,7 +44,7 @@ class DALI_IMPORT_API Model3dView : public Control
 public:
 
   /**
-   * @brief The start and end property ranges for this control.
+   * @brief Enumeration for the start and end property ranges for this control.
    * @SINCE_1_1.4
    */
   enum PropertyRange
@@ -57,13 +57,13 @@ public:
   };
 
   /**
-   * @brief An enumeration of properties belonging to the TextLabel class.
+   * @brief Enumeration for the instance of properties belonging to the TextLabel class.
    * @SINCE_1_1.4
    */
   struct Property
   {
     /**
-     * @brief An enumeration of properties belonging to the TextLabel class.
+     * @brief Enumeration for the instance of properties belonging to the TextLabel class.
      * @SINCE_1_1.4
      */
     enum
@@ -88,36 +88,36 @@ public:
   };
 
   /**
-   * @brief Create a new instance of a Model3dView control.
+   * @brief Creates a new instance of a Model3dView control.
    *
    * @SINCE_1_1.4
-   * @return A handle to the new Model3dView control.
+   * @return A handle to the new Model3dView control
    */
   static Model3dView New();
 
   /**
-   * @brief Create a new instance of a Model3dView control.
+   * @brief Creates a new instance of a Model3dView control.
    *
    * @SINCE_1_1.4
    * @param[in] objUrl The path to the geometry file
    * @param[in] mtlUrl The path to the material file
    * @param[in] imagesUrl The path to the images directory
-   * @return A handle to the new Model3dView control.
+   * @return A handle to the new Model3dView control
    */
   static Model3dView New( const std::string& objUrl, const std::string& mtlUrl, const std::string& imagesUrl );
 
 
   /**
-   * @brief Create an uninitialized Model3dView
+   * @brief Creates an uninitialized Model3dView.
    *
-   * Only derived versions can be instantiated.  Calling member
+   * Only derived versions can be instantiated. Calling member
    * functions with an uninitialized Dali::Object is not allowed.
    * @SINCE_1_1.4
    */
   Model3dView();
 
   /**
-   * @brief Destructor
+   * @brief Destructor.
    *
    * This is non-virtual since derived Handle types must not contain data or virtual methods.
    * @SINCE_1_1.4
@@ -140,14 +140,14 @@ public:
   Model3dView& operator=( const Model3dView& model3dView );
 
   /**
-   * @brief Downcast an Object handle to Model3dView.
+   * @brief Downcasts an Object handle to Model3dView.
    *
-   * If handle points to a Model3dView the downcast produces valid
-   * handle. If not the returned handle is left uninitialized.
+   * If handle points to a Model3dView, the downcast produces valid handle.
+   * If not, the returned handle is left uninitialized.
    *
    * @SINCE_1_1.4
    * @param[in] handle Handle to an object
-   * @return handle to a Model3dView or an uninitialized handle
+   * @return Handle to a Model3dView or an uninitialized handle
    */
   static Model3dView DownCast( BaseHandle handle );
 
@@ -158,7 +158,7 @@ public: // Not intended for application developers
    * @brief Creates a handle using the Toolkit::Internal implementation.
    *
    * @SINCE_1_1.4
-   * @param[in]  implementation  The Control implementation.
+   * @param[in] implementation The Control implementation
    */
   DALI_INTERNAL Model3dView( Internal::Model3dView& implementation );
 
@@ -166,7 +166,7 @@ public: // Not intended for application developers
    * @brief Allows the creation of this Control from an Internal::CustomActor pointer.
    *
    * @SINCE_1_1.4
-   * @param[in]  internal  A pointer to the internal CustomActor.
+   * @param[in] internal A pointer to the internal CustomActor
    */
   DALI_INTERNAL Model3dView( Dali::Internal::CustomActor* internal );
   /// @endcond
index dffb7a4..3bd0adc 100755 (executable)
@@ -56,7 +56,7 @@ public:
   // Properties
 
   /**
-   * @brief The start and end property ranges for this control.
+   * @brief Enumeration for the start and end property ranges for this control.
    * @SINCE_1_0.0
    */
   enum PropertyRange
@@ -66,67 +66,67 @@ public:
   };
 
   /**
-   * @brief An enumeration of properties belonging to the ScrollBar class.
+   * @brief Enumeration for the instance of properties belonging to the ScrollBar class.
    * @SINCE_1_0.0
    */
   struct Property
   {
     /**
-     * @brief An enumeration of properties belonging to the ScrollBar class.
+     * @brief Enumeration for the instance of properties belonging to the ScrollBar class.
      * @SINCE_1_0.0
      */
     enum
     {
       /**
-       * @brief name "scrollDirection", type std::string
-       * @see SetScrollDirection()
+       * @brief name "scrollDirection", type std::string.
        * @SINCE_1_0.0
+       * @see SetScrollDirection()
        */
       SCROLL_DIRECTION = PROPERTY_START_INDEX,
       /**
-       * @brief name "indicatorHeightPolicy", type std::string
-       * @see SetIndicatorHeightPolicy()
+       * @brief name "indicatorHeightPolicy", type std::string.
        * @SINCE_1_0.0
+       * @see SetIndicatorHeightPolicy()
        */
       INDICATOR_HEIGHT_POLICY,
       /**
-       * @brief name "indicatorFixedHeight", type float
-       * @see SetIndicatorFixedHeight()
+       * @brief name "indicatorFixedHeight", type float.
        * @SINCE_1_0.0
+       * @see SetIndicatorFixedHeight()
        */
       INDICATOR_FIXED_HEIGHT,
       /**
-       * @brief name "indicatorShowDuration", type float
-       * @see SetIndicatorShowDuration()
+       * @brief name "indicatorShowDuration", type float.
        * @SINCE_1_0.0
+       * @see SetIndicatorShowDuration()
        */
       INDICATOR_SHOW_DURATION,
       /**
-       * @brief name "indicatorHideDuration", type float
-       * @see SetIndicatorHideDuration()
+       * @brief name "indicatorHideDuration", type float.
        * @SINCE_1_0.0
+       * @see SetIndicatorHideDuration()
        */
       INDICATOR_HIDE_DURATION,
       /**
-       * @brief name "scrollPositionIntervals", type Property::Array
-       * @see SetScrollPositionIntervals()
+       * @brief name "scrollPositionIntervals", type Property::Array.
        * @SINCE_1_0.0
+       * @see SetScrollPositionIntervals()
        */
       SCROLL_POSITION_INTERVALS,
       /**
-       * @brief name "indicatorMinimumHeight", type float
+       * @brief name "indicatorMinimumHeight", type float.
        * The minimum height for a variable size indicator.
        * @SINCE_1_1.36
        */
       INDICATOR_MINIMUM_HEIGHT,
       /**
-       * @brief name "indicatorStartPadding", type float
+       * @brief name "indicatorStartPadding", type float.
        * The padding at the start of the indicator. For example, the top if scrollDirection is Vertical.
        * @SINCE_1_1.36
        */
       INDICATOR_START_PADDING,
       /**
-       * @brief name "indicatorEndPadding", type float
+       * @brief name "indicatorEndPadding", type float.
        * The padding at the end of the indicator. For example, the bottom if scrollDirection is Vertical.
        * @SINCE_1_1.36
        */
@@ -162,7 +162,7 @@ public:
   };
 
   /**
-   * @brief Create an uninitialized ScrollBar; this can be initialized with ScrollBar::New()
+   * @brief Creates an uninitialized ScrollBar; this can be initialized with ScrollBar::New()
    * Calling member functions with an uninitialized Dali::Object is not allowed.
    * @SINCE_1_0.0
    */
@@ -184,7 +184,7 @@ public:
   ScrollBar& operator=( const ScrollBar& scrollBar );
 
   /**
-   * @brief Destructor
+   * @brief Destructor.
    *
    * This is non-virtual since derived Handle types must not contain data or virtual methods.
    * @SINCE_1_0.0
@@ -192,35 +192,34 @@ public:
   ~ScrollBar();
 
   /**
-   * @brief Create an initialized ScrollBar
+   * @brief Creates an initialized ScrollBar.
    * @SINCE_1_0.0
-   * @param[in] direction The direction of scroll bar (either vertically or horizontally).
-   * @return A pointer to the created ScrollBar.
+   * @param[in] direction The direction of scroll bar (either vertically or horizontally)
+   * @return A pointer to the created ScrollBar
    */
   static ScrollBar New(Direction direction = Vertical);
 
   /**
-   * @brief Downcast a handle to ScrollBar handle.
+   * @brief Downcasts a handle to ScrollBar handle.
    *
-   * If handle points to a ScrollBar the
-   * downcast produces valid handle. If not the returned handle is left uninitialized.
+   * If handle points to a ScrollBar, the downcast produces valid handle.
+   * If not, the returned handle is left uninitialized.
    * @SINCE_1_0.0
    * @param[in] handle Handle to an object
-   * @return handle to a ScrollBar or an uninitialized handle
+   * @return Handle to a ScrollBar or an uninitialized handle
    */
   static ScrollBar DownCast( BaseHandle handle );
 
   /**
-   * @brief Set the source of the scroll position properties.
-   *
-   * * @pre The handle to the object owing the scroll properties has been initialised and the property index must be vaild.
+   * @brief Sets the source of the scroll position properties.
    *
    * @SINCE_1_0.0
-   * @param[in] handle The handle of the object owing the scroll properties.
-   * @param[in] propertyScrollPosition The index of the scroll position property (The scroll position, type float).
-   * @param[in] propertyMinScrollPosition The index of the minimum scroll position property (The minimum scroll position, type float).
-   * @param[in] propertyMaxScrollPosition The index of the maximum scroll position property (The maximum scroll position, type float).
-   * @param[in] propertyScrollContentSize The index of the scroll content size property (The size of the scrollable content in actor coordinates, type float).
+   * @param[in] handle The handle of the object owing the scroll properties
+   * @param[in] propertyScrollPosition The index of the scroll position property (The scroll position, type float)
+   * @param[in] propertyMinScrollPosition The index of the minimum scroll position property (The minimum scroll position, type float)
+   * @param[in] propertyMaxScrollPosition The index of the maximum scroll position property (The maximum scroll position, type float)
+   * @param[in] propertyScrollContentSize The index of the scroll content size property (The size of the scrollable content in actor coordinates, type float)
+   * @pre The handle to the object owing the scroll properties has been initialised and the property index must be valid.
    */
   void SetScrollPropertySource( Handle handle, Dali::Property::Index propertyScrollPosition, Dali::Property::Index propertyMinScrollPosition, Dali::Property::Index propertyMaxScrollPosition, Dali::Property::Index propertyScrollContentSize );
 
@@ -228,9 +227,8 @@ public:
    * @brief Sets the indicator of scroll bar.
    *
    * @SINCE_1_0.0
-   * @param[in] indicator The indicator that moves to indicate the current scroll position.
-   * @pre The scroll bar actor has been initialised.
-   *
+   * @param[in] indicator The indicator that moves to indicate the current scroll position
+   * @pre The scroll bar actor has been initialized.
    */
   void SetScrollIndicator( Actor indicator );
 
@@ -238,9 +236,8 @@ public:
    * @brief Gets the indicator of scroll bar.
    *
    * @SINCE_1_0.0
-   * @return The indicator indicates the current scroll position of the scrollable content.
-   * @pre The scroll bar actor has been initialised.
-   *
+   * @return The indicator indicates the current scroll position of the scrollable content
+   * @pre The scroll bar actor has been initialized.
    */
   Actor GetScrollIndicator();
 
@@ -250,8 +247,7 @@ public:
    *
    * @SINCE_1_0.0
    * @param[in] positions List of values to receive notifications for when the current scroll position crosses them
-   * @pre The scroll bar actor has been initialised.
-   *
+   * @pre The scroll bar actor has been initialized.
    */
   void SetScrollPositionIntervals( const Dali::Vector<float>& positions );
 
@@ -261,7 +257,7 @@ public:
    *
    * @SINCE_1_0.0
    * @return The list of values to receive notifications for when the current scroll position crosses them
-   * @pre The scroll bar actor has been initialised.
+   * @pre The scroll bar actor has been initialized.
    *
    */
   Dali::Vector<float> GetScrollPositionIntervals() const;
@@ -270,9 +266,8 @@ public:
    * @brief Sets the direction of scroll bar to scroll either vertically or horizontally.
    *
    * @SINCE_1_0.0
-   * @param[in] direction The direction of scroll bar (either vertically or horizontally).
-   * @pre The scroll bar actor has been initialised.
-   *
+   * @param[in] direction The direction of scroll bar (either vertically or horizontally)
+   * @pre The scroll bar actor has been initialized.
    */
   void SetScrollDirection( Direction direction );
 
@@ -280,7 +275,7 @@ public:
    * @brief Gets the direction of scroll bar.
    *
    * @SINCE_1_0.0
-   * @return The direction of scroll bar.
+   * @return The direction of scroll bar
    */
   Direction GetScrollDirection() const;
 
@@ -289,8 +284,7 @@ public:
    *
    * @SINCE_1_0.0
    * @param[in] policy The height policy of scroll indicator
-   * @pre The scroll bar actor has been initialised.
-   *
+   * @pre The scroll bar actor has been initialized.
    */
   void SetIndicatorHeightPolicy( IndicatorHeightPolicy policy );
 
@@ -306,12 +300,12 @@ public:
    * @brief Sets the fixed height of scroll indicator.
    *
    * Normally the height of scroll indicator is changed dynamically according to the length of scroll content.
-   * However, when the height policy of scroll indicator is set to be fixed, the height will keep fixed
+   * However, when the height policy of scroll indicator is set to be fixed, the height will be kept fixed
    * regardless of the length of scroll content.
    *
    * @SINCE_1_0.0
    * @param[in] height The fixed height of the scroll indicator
-   * @pre The scroll bar actor has been initialised.
+   * @pre The scroll bar actor has been initialized.
    *
    */
   void SetIndicatorFixedHeight( float height );
@@ -324,7 +318,7 @@ public:
   float GetIndicatorFixedHeight() const;
 
   /**
-   * @brief Sets the duration in second for the scroll indicator to become fully visible
+   * @brief Sets the duration in seconds for the scroll indicator to become fully visible.
    *
    * @SINCE_1_0.0
    * @param[in] durationSeconds The duration for the scroll indicator to become fully visible
@@ -334,14 +328,14 @@ public:
   void SetIndicatorShowDuration( float durationSeconds );
 
   /**
-   * @brief Gets the duration in second for the scroll indicator to become fully visible
+   * @brief Gets the duration in seconds for the scroll indicator to become fully visible.
    * @SINCE_1_0.0
    * @return The duration for the scroll indicator to become fully visible
    */
   float GetIndicatorShowDuration() const;
 
   /**
-   * @brief Sets the duration in second for the scroll indicator to become fully invisible
+   * @brief Sets the duration in seconds for the scroll indicator to become fully invisible.
    *
    * @SINCE_1_0.0
    * @param[in] durationSeconds The duration for the scroll indicator to become fully invisible
@@ -351,20 +345,20 @@ public:
   void SetIndicatorHideDuration( float durationSeconds );
 
   /**
-   * @brief Gets the duration in second for the scroll indicator to become fully invisible
+   * @brief Gets the duration in seconds for the scroll indicator to become fully invisible.
    * @SINCE_1_0.0
    * @return The duration for the scroll indicator to become fully invisible
    */
   float GetIndicatorHideDuration() const;
 
   /**
-   * @brief Shows the scroll indicator
+   * @brief Shows the scroll indicator.
    * @SINCE_1_0.0
    */
   void ShowIndicator();
 
   /**
-   * @brief Hides the scroll indicator
+   * @brief Hides the scroll indicator.
    * @SINCE_1_0.0
    */
   void HideIndicator();
@@ -381,7 +375,7 @@ public: // Signals
    *   void YourCallbackName();
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    * @pre The Object has been initialized.
    */
   ScrollBar::PanFinishedSignalType& PanFinishedSignal();
@@ -397,7 +391,7 @@ public: // Signals
    *   void YourCallbackName(float currentScrollPosition);
    * @endcode
    * @SINCE_1_0.0
-   * @return The signal to connect to.
+   * @return The signal to connect to
    * @pre The Object has been initialized.
    */
   ScrollBar::ScrollPositionIntervalReachedSignalType& ScrollPositionIntervalReachedSignal();
@@ -408,14 +402,14 @@ public: // Not intended for application developers
   /**
    * @brief Creates a handle using the Toolkit::Internal implementation.
    * @SINCE_1_0.0
-   * @param[in]  implementation  The Control implementation.
+   * @param[in] implementation The Control implementation
    */
   DALI_INTERNAL ScrollBar( Internal::ScrollBar& implementation );
 
   /**
    * @brief Allows the creation of this Control from an Internal::CustomActor pointer.
    * @SINCE_1_0.0
-   * @param[in]  internal  A pointer to the internal CustomActor.
+   * @param[in] internal A pointer to the internal CustomActor
    */
   explicit DALI_INTERNAL ScrollBar( Dali::Internal::CustomActor* internal );
   /// @endcond
index f90fd39..8a880ac 100644 (file)
@@ -32,14 +32,14 @@ namespace Toolkit
  */
 
 /**
- * @brief Default item layout mode.
+ * @brief Enumeration for default item layout mode.
  * @SINCE_1_0.0
  */
 namespace DefaultItemLayout
 {
 
 /**
- * @brief The type of DefaultItemLayout
+ * @brief Enumeration for the type of DefaultItemLayout
  * @SINCE_1_0.0
  */
 enum Type
@@ -54,9 +54,8 @@ enum Type
  * @brief Creates a built-in default item-layout.
  *
  * @SINCE_1_0.0
- * @param[in]  type  The type of layout required.
- *
- * @return An ItemLayoutPtr to the newly created layout.
+ * @param[in] type The type of layout required
+ * @return An ItemLayoutPtr to the newly created layout
  */
 DALI_IMPORT_API ItemLayoutPtr New( Type type );
 
index e38579a..db4825a 100644 (file)
@@ -50,34 +50,34 @@ public:
   DALI_EXPORT_API virtual ~ItemFactory() {};
 
   /**
-   * @brief Query the number of items available from the factory.
+   * @brief Queries the number of items available from the factory.
    *
    * The maximum available item has an ID of GetNumberOfItems() - 1.
    * @SINCE_1_0.0
-   * @return the number of items
+   * @return The number of items
    */
   virtual unsigned int GetNumberOfItems() = 0;
 
   /**
-   * @brief Create an Actor to represent a visible item.
+   * @brief Creates an Actor to represent a visible item.
    *
    * @SINCE_1_0.0
-   * @param[in] itemId The ID of the newly visible item.
-   * @return An actor, or an uninitialized pointer if the ID is out of range.
+   * @param[in] itemId The ID of the newly visible item
+   * @return An actor, or an uninitialized pointer if the ID is out of range
    */
   virtual Actor NewItem(unsigned int itemId) = 0;
 
   /**
-   * @brief Notify the factory the actor representing the item is removed from ItemView.
+   * @brief Notifies the factory the actor representing the item is removed from ItemView.
    *
    * @SINCE_1_0.0
-   * @param[in] itemId The ID of the released item.
-   * @param[in] actor The actor that represents the released item.
+   * @param[in] itemId The ID of the released item
+   * @param[in] actor The actor that represents the released item
    */
   virtual void ItemReleased(unsigned int itemId, Actor actor) {};
 
   /**
-   * @brief Retrieve the extension for this control.
+   * @brief Retrieves the extension for this control.
    *
    * @SINCE_1_0.0
    * @return The extension if available, NULL otherwise
index 4d91ef5..a0cee00 100755 (executable)
@@ -48,11 +48,11 @@ typedef IntrusivePtr<ItemLayout> ItemLayoutPtr; ///< Pointer to a Dali::Toolkit:
 struct ItemRange
 {
   /**
-   * @brief Create a range of item identifiers.
+   * @brief Creates a range of item identifiers.
    *
    * @SINCE_1_0.0
-   * @param[in] beginItem The first item within the range.
-   * @param[in] endItem The past-the-end item.
+   * @param[in] beginItem The first item within the range
+   * @param[in] endItem The past-the-end item
    */
   ItemRange(unsigned int beginItem, unsigned int endItem)
   : begin(beginItem),
@@ -64,7 +64,7 @@ struct ItemRange
    * @brief Copy Constructor.
    *
    * @SINCE_1_0.0
-   * @param[in] copy ItemRange we should copy from.
+   * @param[in] copy ItemRange we should copy from
    */
   ItemRange(const ItemRange& copy)
   : begin(copy.begin),
@@ -76,8 +76,8 @@ struct ItemRange
    * @brief Assignment operator.
    *
    * @SINCE_1_0.0
-   * @param[in] range The Range to assign from.
-   * @return The updated range.
+   * @param[in] range The Range to assign from
+   * @return The updated range
    */
   ItemRange& operator=(const ItemRange& range)
   {
@@ -90,11 +90,11 @@ struct ItemRange
   }
 
   /**
-   * @brief Test whether an item is within the range.
+   * @brief Tests whether an item is within the range.
    *
    * @SINCE_1_0.0
-   * @param[in] itemId The item identifier.
-   * @return True if the item is within the range.
+   * @param[in] itemId The item identifier
+   * @return true if the item is within the range
    */
   bool Within(unsigned int itemId)
   {
@@ -103,11 +103,11 @@ struct ItemRange
   }
 
   /**
-   * @brief Create the intersection of two ranges.
+   * @brief Creates the intersection of two ranges.
    *
    * @SINCE_1_0.0
-   * @param[in] second The second range.
-   * @return The intersection.
+   * @param[in] second The second range
+   * @return The intersection
    */
   ItemRange Intersection(const ItemRange& second)
   {
index 60dba05..9cdf1e7 100755 (executable)
@@ -48,8 +48,8 @@ typedef IntrusivePtr<ItemLayout> ItemLayoutPtr;
 /**
  * @brief ItemView is a scrollable layout container.
  *
- * Multiple ItemLayouts may be provided, to determine the logical position of each item a layout.
- * Actors are provided from an external ItemFactory, to display the currently visible items.
+ * Multiple ItemLayouts may be provided to determine the logical position of each item layout.
+ * Actors are provided from an external ItemFactory to display the currently visible items.
  *
  * Signals
  * | %Signal Name                    | Method                                     |
@@ -69,7 +69,7 @@ class DALI_IMPORT_API ItemView : public Scrollable
 public:
 
   /**
-   * @brief The start and end property ranges for this control.
+   * @brief Enumeration for the start and end property ranges for this control.
    * @SINCE_1_1.18
    */
   enum PropertyRange
@@ -117,7 +117,7 @@ public:
 public:
 
   /**
-   * @brief Create an uninitialized ItemView; this can be initialized with ItemView::New().
+   * @brief Creates an uninitialized ItemView; this can be initialized with ItemView::New().
    *
    * Calling member functions with an uninitialized Dali::Object is not allowed.
    * @SINCE_1_0.0
@@ -140,7 +140,7 @@ public:
   ItemView& operator=( const ItemView& itemView );
 
   /**
-   * @brief Destructor
+   * @brief Destructor.
    *
    * This is non-virtual since derived Handle types must not contain data or virtual methods.
    * @SINCE_1_0.0
@@ -148,19 +148,19 @@ public:
   ~ItemView();
 
   /**
-   * @brief Create an initialized ItemView.
+   * @brief Creates an initialized ItemView.
    *
    * @SINCE_1_0.0
-   * @param[in] factory The factory which provides ItemView with items.
-   * @return A handle to a newly allocated Dali resource.
+   * @param[in] factory The factory which provides ItemView with items
+   * @return A handle to a newly allocated Dali resource
    */
   static ItemView New(ItemFactory& factory);
 
   /**
-   * @brief Downcast a handle to ItemView handle.
+   * @brief Downcasts a handle to ItemView handle.
    *
-   * If handle points to a ItemView the downcast produces valid
-   * handle. If not the returned handle is left uninitialized.
+   * If handle points to a ItemView, the downcast produces valid handle.
+   * If not, the returned handle is left uninitialized.
    *
    * @SINCE_1_0.0
    * @param[in] handle Handle to an object
@@ -169,75 +169,75 @@ public:
   static ItemView DownCast( BaseHandle handle );
 
   /**
-   * @brief Query the number of layouts.
+   * @brief Queries the number of layouts.
    *
    * @SINCE_1_0.0
-   * @return The number of layouts.
+   * @return The number of layouts
    */
   unsigned int GetLayoutCount() const;
 
   /**
-   * @brief Add a layout.
+   * @brief Adds a layout.
    *
    * @SINCE_1_0.0
-   * @param[in] layout The layout.
+   * @param[in] layout The layout
    */
   void AddLayout(ItemLayout& layout);
 
   /**
-   * @brief Remove a layout.
+   * @brief Removes a layout.
    *
    * @SINCE_1_0.0
-   * @param[in] layoutIndex The index of one of the ItemView layouts.
+   * @param[in] layoutIndex The index of one of the ItemView layouts
    * @pre layoutIndex is less than GetLayoutCount().
    */
   void RemoveLayout(unsigned int layoutIndex);
 
   /**
-   * @brief Retrieve a layout.
+   * @brief Retrieves a layout.
    *
    * @SINCE_1_0.0
-   * @param[in] layoutIndex The index of the layout to retrieve.
+   * @param[in] layoutIndex The index of the layout to retrieve
    * @return The layout
    * @pre layoutIndex is less than GetLayoutCount().
    */
   ItemLayoutPtr GetLayout(unsigned int layoutIndex) const;
 
   /**
-   * @brief Retrieve the currently active layout, if any.
+   * @brief Retrieves the currently active layout, if any.
    *
    * @SINCE_1_0.0
-   * @return The layout, or an uninitialized pointer if no layout is active.
+   * @return The layout, or an uninitialized pointer if no layout is active
    */
   ItemLayoutPtr GetActiveLayout() const;
 
   /**
-   * @brief Retrieve the current layout-position of an item in the ItemView.
+   * @brief Retrieves the current layout-position of an item in the ItemView.
    *
    * @SINCE_1_0.0
-   * @param[in] itemId The item identifier.
-   * @return The current layout-position.
+   * @param[in] itemId The item identifier
+   * @return The current layout-position
    */
   float GetCurrentLayoutPosition(ItemId itemId) const;
 
   /**
-   * @brief Activate one of the layouts; this will resize the ItemView
+   * @brief Activates one of the layouts; this will resize the ItemView
    * & relayout actors within the ItemView.
    *
    * This is done by applying constraints from the new layout, and
    * removing constraints from the previous layout.
    *
    * @SINCE_1_0.0
-   * @param[in] layoutIndex The index of one of the ItemView layouts.
-   * @param[in] targetSize The target ItemView & layout size.
-   * @param[in] durationSeconds The time taken to relayout in seconds (zero for immediate).
+   * @param[in] layoutIndex The index of one of the ItemView layouts
+   * @param[in] targetSize The target ItemView & layout size
+   * @param[in] durationSeconds The time taken to relayout in seconds (zero for immediate)
    * @pre layoutIndex is less than GetLayoutCount().
    * @pre durationSeconds is greater or equal to zero.
    */
   void ActivateLayout(unsigned int layoutIndex, Vector3 targetSize, float durationSeconds);
 
   /**
-   * @brief Deactivate the current layout, if any.
+   * @brief Deactivates the current layout, if any.
    *
    * The constraints applied by the layout will be removed.
    * @SINCE_1_0.0
@@ -245,8 +245,8 @@ public:
   void DeactivateCurrentLayout();
 
   /**
-   * @brief Set the minimum swipe speed in pixels per second; A pan
-   * gesture must exceed this to trigger a swipe.
+   * @brief Sets the minimum swipe speed in pixels per second;
+   *  A pan gesture must exceed this to trigger a swipe.
    *
    * @SINCE_1_0.0
    * @param[in] speed The minimum swipe speed
@@ -254,7 +254,7 @@ public:
   void SetMinimumSwipeSpeed(float speed);
 
   /**
-   * @brief Get the minimum swipe speed in pixels per second.
+   * @brief Gets the minimum swipe speed in pixels per second.
    *
    * @SINCE_1_0.0
    * @return The minimum swipe speed
@@ -262,16 +262,16 @@ public:
   float GetMinimumSwipeSpeed() const;
 
   /**
-   * @brief Set the minimum swipe distance in actor coordinates; A pan
-   * gesture must exceed this to trigger a swipe.
+   * @brief Sets the minimum swipe distance in actor coordinates;
+   *  A pan gesture must exceed this to trigger a swipe.
    *
    * @SINCE_1_0.0
-   * @param[in] distance The minimum swipe distance.
+   * @param[in] distance The minimum swipe distance
    */
   void SetMinimumSwipeDistance(float distance);
 
   /**
-   * @brief Get the minimum swipe distance in actor coordinates.
+   * @brief Gets the minimum swipe distance in actor coordinates.
    *
    * @SINCE_1_0.0
    * @return The minimum swipe distance
index 3116169..2e2c2b2 100644 (file)
@@ -2,7 +2,7 @@
 #define __DALI_TOOLKIT_SCROLL_VIEW_CONSTRAINTS_H__
 
 /*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2017 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.
@@ -43,22 +43,20 @@ namespace Toolkit
  */
 
 /**
- * @brief Move Actor constraint.
+ * @brief Moves an Actor in accordance with the scroll position.
  *
- * Moves an Actor in accordance to scroll position.
+ * @SINCE_1_0.0
  * @param[in] current Current position
  * @param[in] inputs The position input that Actor will move
- * @SINCE_1_0.0
  */
 DALI_IMPORT_API void MoveActorConstraint( Vector3& current, const PropertyInputContainer& inputs );
 
 /**
- * @brief Wrap Actor constraint.
+ * @brief Wraps an Actor's position in accordance with the min/max bounds of domain.
  *
- * Wraps an Actors position in accordance to min/max bounds of domain.
+ * @SINCE_1_0.0
  * @param[in] position Position to be wrapped
  * @param[in] inputs The input that Actor's position will be wrapped
- * @SINCE_1_0.0
  */
 DALI_IMPORT_API void WrapActorConstraint( Vector3& position, const PropertyInputContainer& inputs );
 
index d6bcc30..049e2ab 100644 (file)
@@ -50,7 +50,7 @@ class ScrollViewEffect;
  * ScrollView instance.
  *
  * Such effects are purely logical (i.e. physics), and may produce
- * properties that can be used with visual effects.  Such as creating
+ * properties that can be used with visual effects, such as creating
  * constraints that are applied to ShaderEffects or Actors using these
  * properties as inputs.
  * @SINCE_1_0.0
@@ -61,7 +61,7 @@ class DALI_IMPORT_API ScrollViewEffect : public Dali::BaseHandle
 public:
 
   /**
-   * @brief Create an uninitialized ScrollViewEffect; this can only be initialized with derived classes.
+   * @brief Creates an uninitialized ScrollViewEffect; this can only be initialized with derived classes.
    *
    * Calling member functions with an uninitialized Toolkit::BaseObject is not allowed.
    * @SINCE_1_0.0
@@ -75,7 +75,7 @@ public: // Not intended for application developers
    * @brief This constructor is used by Dali New() methods.
    *
    * @SINCE_1_0.0
-   * @param [in] impl A pointer to a newly allocated Dali resource
+   * @param[in] impl A pointer to a newly allocated Dali resource
    */
   explicit DALI_INTERNAL ScrollViewEffect(Internal::ScrollViewEffect *impl);
   /// @endcond
index 951298d..dc23694 100644 (file)
@@ -44,7 +44,7 @@ class ScrollViewPagePathEffect;
  *
  * This effect causes Actors to follow a given path. The opacity of the actor will be 0.0 at
  * the beginning of the path and will go to 1.0 as it is approximating to half of the path to return
- * to 0.0 at the end of the path
+ * to 0.0 at the end of the path.
  *
  *
  * ScrollView
@@ -68,40 +68,40 @@ class DALI_IMPORT_API ScrollViewPagePathEffect : public ScrollViewEffect
 public:
 
   /**
-   * @brief Create an initialized ScrollViewPagePathEffect.
+   * @brief Creates an initialized ScrollViewPagePathEffect.
    * @SINCE_1_0.0
    * @param[in] path The path that will be used by the scroll effect
    * @param[in] forward Vector in page object space which will be aligned with the tangent of the path
-   * @param[in] inputPropertyIndex Index of a property of the scroll-view which will be used as the input for the path.
+   * @param[in] inputPropertyIndex Index of a property of the scroll-view which will be used as the input for the path
    * @param[in] pageSize Size of a page in the scrollview
    * @param[in] pageCount Total number of pages in the scrollview
-   * @return A handle to a newly allocated Dali resource.
+   * @return A handle to a newly allocated Dali resource
    */
   static ScrollViewPagePathEffect New(Path path, const Vector3& forward, Dali::Property::Index inputPropertyIndex, const Vector3& pageSize, unsigned int pageCount);
 
   /**
-   * @brief Create an uninitialized ScrollViewPagePathEffect; this can be initialized with ScrollViewPagePathEffect::New()
+   * @brief Creates an uninitialized ScrollViewPagePathEffect; this can be initialized with ScrollViewPagePathEffect::New().
    * Calling member functions with an uninitialized Toolkit::ScrollViewPagePathEffect is not allowed.
    * @SINCE_1_0.0
    */
   ScrollViewPagePathEffect();
 
   /**
-   * @brief Downcast a handle to ScrollViewPagePathEffect handle.
+   * @brief Downcasts a handle to ScrollViewPagePathEffect handle.
    *
-   * If handle points to a ScrollViewPagePathEffect the
-   * downcast produces valid handle. If not the returned handle is left uninitialized.
+   * If handle points to a ScrollViewPagePathEffect, the downcast produces valid handle.
+   * If not, the returned handle is left uninitialized.
    * @SINCE_1_0.0
    * @param[in] handle Handle to an object
-   * @return handle to a ScrollViewPagePathEffect or an uninitialized handle
+   * @return Handle to a ScrollViewPagePathEffect or an uninitialized handle
    */
   static ScrollViewPagePathEffect DownCast( BaseHandle handle );
 
   /**
    * @brief Manually apply effect to a page in the scroll-view.
    * @SINCE_1_0.0
-   * @param[in] page The page to be affected by this effect.
-   * @param[in] pageOrder The order of the page in the scroll-view
+   * @param[in] page The page to be affected by this effect
+   * @param[in] pageOrder The order of the page in the scroll view
    */
   void ApplyToPage( Actor page, unsigned int pageOrder );
 
@@ -111,7 +111,7 @@ protected:
   /**
    * @brief This constructor is used by Dali New() methods.
    * @SINCE_1_0.0
-   * @param [in] impl A pointer to a newly allocated Dali resource
+   * @param[in] impl A pointer to a newly allocated Dali resource
    */
   explicit DALI_INTERNAL ScrollViewPagePathEffect( Internal::ScrollViewPagePathEffect *impl );
   /// @endcond
index cb24960..1a0e3fb 100644 (file)
@@ -40,7 +40,7 @@ class ScrollView;
  */
 
 /**
- * @brief How axes/rotation or scale are clamped
+ * @brief Enumeration for how axes/rotation or scale are clamped.
  * @SINCE_1_0.0
  */
 enum ClampState
@@ -51,7 +51,7 @@ enum ClampState
 };
 
 /**
- * @brief A 2 dimensional clamp
+ * @brief A 2 dimensional clamp.
  * @SINCE_1_0.0
  */
 struct ClampState2D
@@ -61,7 +61,7 @@ struct ClampState2D
 };
 
 /**
- * @brief The snap type
+ * @brief Enumeration for the snap type.
  * @SINCE_1_0.0
  */
 enum SnapType
@@ -71,7 +71,7 @@ enum SnapType
 };
 
 /**
- * @brief DirectionBias types.
+ * @brief Enumeration for DirectionBias types.
  * @SINCE_1_0.0
  */
 enum DirectionBias
@@ -95,7 +95,7 @@ public:
    * @SINCE_1_0.0
    * @param[in] min Minimum extent (point cannot traverse less than this)
    * @param[in] max Maximum extent (point cannot traverse greater than this)
-   * @param[in] enabled Whether domain has been enabled or not.
+   * @param[in] enabled Whether domain has been enabled or not
    */
   explicit RulerDomain(float min, float max, bool enabled = true);
 
@@ -112,10 +112,10 @@ public:
    * subject is not a point but a line to that should be clamped.
    *
    * @SINCE_1_0.0
-   * @param[in] x X point to be clamped between (min) and (max) extents.
-   * @param[in] length (optional) The Length of the line from (x) to (x + length) to be clamped.
-   * @param[in] scale Scaling parameter which treats domain as scaled in calculations.
-   * @return The clamped value.
+   * @param[in] x X point to be clamped between (min) and (max) extents
+   * @param[in] length (optional) The Length of the line from (x) to (x + length) to be clamped
+   * @param[in] scale Scaling parameter which treats domain as scaled in calculations
+   * @return The clamped value
    */
   float Clamp(float x, float length = 0.0f, float scale = 1.0f) const;
 
@@ -126,11 +126,11 @@ public:
    * subject is not a point but a line to that should be clamped.
    *
    * @SINCE_1_0.0
-   * @param[in] x X point to be clamped between (min) and (max) extents.
-   * @param[in] length (optional) The Length of the line from (x) to (x + length) to be clamped.
-   * @param[in] scale Scaling parameter which treats domain as scaled in calculations.
-   * @param[out] clamped Whether clamping occured and which size (None, Min or Max)
-   * @return The clamped value.
+   * @param[in] x X point to be clamped between (min) and (max) extents
+   * @param[in] length (optional) The Length of the line from (x) to (x + length) to be clamped
+   * @param[in] scale Scaling parameter which treats domain as scaled in calculations
+   * @param[out] clamped Whether clamping occurred and which size (None, Min or Max)
+   * @return The clamped value
    */
   float Clamp(float x, float length, float scale, ClampState &clamped) const;
 
@@ -138,7 +138,7 @@ public:
    * @brief Returns (max-min) size of ruler.
    *
    * @SINCE_1_0.0
-   * @return The size of the ruler from min to max.
+   * @return The size of the ruler from min to max
    */
   float GetSize() const;
 
@@ -148,10 +148,10 @@ public:
 class RulerExtension;
 
 /**
- * @brief Abstract class to define scroll axes.
+ * @brief Abstracts class to define scroll axes.
  *
- * It can specify whether they are traversable, where their snap
- * points are and their domain.
+ * It can specify whether they are traversable,
+ * where their snap points are and their domain.
  * @SINCE_1_0.0
  */
 class DALI_IMPORT_API Ruler : public RefObject
@@ -166,7 +166,7 @@ public:
 public:
 
   /**
-   * @brief Constructs ruler, default enabled, with limitless domain.
+   * @brief Constructs ruler, enabled by default, with limitless domain.
    * @SINCE_1_0.0
    */
   Ruler();
@@ -175,7 +175,7 @@ public:
    * @brief Snaps (x) in accordance to the ruler settings.
    *
    * @SINCE_1_0.0
-   * @param[in] x The input value on the ruler to be snapped.
+   * @param[in] x The input value on the ruler to be snapped
    * @param[in] bias (optional) The biasing employed for snapping
    * 0 floor input (floor x) "Used for Flick Left"
    * 0.5 round input (floor x + 0.5) "Used for Release"
@@ -197,7 +197,7 @@ public:
    * @param[in] page The page index
    * @param[out] volume The overflow volume when the page exceeds the domain (wrap must be enabled)
    * @param[in] wrap Enable wrap mode
-   * @return The position representing this page point.
+   * @return The position representing this page point
    */
   virtual float GetPositionFromPage(unsigned int page, unsigned int &volume, bool wrap) const = 0;
 
@@ -210,7 +210,7 @@ public:
    * @SINCE_1_0.0
    * @param[in] position The position on the domain
    * @param[in] wrap Enable wrap mode
-   * @return The page where this position resides.
+   * @return The page where this position resides
    */
   virtual unsigned int GetPageFromPosition(float position, bool wrap) const = 0;
 
@@ -218,7 +218,7 @@ public:
    * @brief Returns the total number of pages within this Ruler.
    *
    * @SINCE_1_0.0
-   * @return The number of pages in the Ruler.
+   * @return The number of pages in the Ruler
    */
   virtual unsigned int GetTotalPages() const = 0;
 
@@ -236,7 +236,7 @@ public:
    * @brief Gets the ruler type.
    *
    * @SINCE_1_0.0
-   * @return The ruler type.
+   * @return The ruler type
    */
   Ruler::RulerType GetType() const;
 
@@ -261,15 +261,15 @@ public:
   void Disable();
 
   /**
-   * @brief Sets Domain.
+   * @brief Sets the Domain.
    *
    * @SINCE_1_0.0
-   * @param[in] domain Ruler domain object.
+   * @param[in] domain Ruler domain object
    */
   void SetDomain(RulerDomain domain);
 
   /**
-   * @brief Gets Domain.
+   * @brief Gets the Domain.
    *
    * @SINCE_1_0.0
    * @return The domain
@@ -289,10 +289,10 @@ public:
    * subject is not a point but a line that should be clamped.
    *
    * @SINCE_1_0.0
-   * @param[in] x X point to be clamped between (min) and (max) extents.
-   * @param[in] length (optional) The Length of the line from (x) to (x + length) to be clamped.
-   * @param[in] scale Scaling parameter which treats domain as scaled in calculations.
-   * @return The clamped value.
+   * @param[in] x X point to be clamped between (min) and (max) extents
+   * @param[in] length (optional) The Length of the line from (x) to (x + length) to be clamped
+   * @param[in] scale Scaling parameter which treats domain as scaled in calculations
+   * @return The clamped value
    */
   float Clamp(float x, float length = 0.0f, float scale = 1.0f) const;
 
@@ -304,11 +304,11 @@ public:
    * subject is not a point but a line to that should be clamped.
    *
    * @SINCE_1_0.0
-   * @param[in] x X point to be clamped between (min) and (max) extents.
-   * @param[in] length (optional) The Length of the line from (x) to (x + length) to be clamped.
-   * @param[in] scale Scaling parameter which treats domain as scaled in calculations.
-   * @param[out] clamped Whether clamping occured and which size (None, Min or Max)
-   * @return The clamped value.
+   * @param[in] x X point to be clamped between (min) and (max) extents
+   * @param[in] length (optional) The Length of the line from (x) to (x + length) to be clamped
+   * @param[in] scale Scaling parameter which treats domain as scaled in calculations
+   * @param[out] clamped Whether clamping occurred and which size (None, Min or Max)
+   * @return The clamped value
    */
   float Clamp(float x, float length, float scale, ClampState &clamped) const;
 
@@ -316,16 +316,16 @@ public:
    * @brief Snaps and Clamps (x) in accordance to ruler settings.
    *
    * @SINCE_1_0.0
-   * @param[in] x value to be snapped in accordance to ruler snap value,
-   *            and clamped in accordance to the ruler's domain (if set).
+   * @param[in] x value to be snapped in accordance to ruler snap value,
+   *            and clamped in accordance to the ruler's domain (if set)
    * @param[in] bias (optional) The biasing employed for snapping
    *            0 floor input (floor x) "Used for Flick Left"
    *            0.5 round input (floor x + 0.5) "Used for Release"
    *            1 ceil input (floor x + 1.0) "Used for Flick Right"
    * @param[in] length (optional) The Length of the line from (x) to (x + length)
-   *            to be clamped.
-   * @param[in] scale Scaling parameter which treats domain as scaled in calculations.
-   * @return the clamped value after snapping
+   *            to be clamped
+   * @param[in] scale Scaling parameter which treats domain as scaled in calculations
+   * @return The clamped value after snapping
    */
   float SnapAndClamp(float x, float bias = 0.5f, float length = 0.0f, float scale = 1.0f) const;
 
@@ -333,16 +333,16 @@ public:
    * @brief Snaps and Clamps (x) in accordance to ruler settings.
    *
    * @SINCE_1_0.0
-   * @param[in] x value to be snapped in accordance to ruler snap value,
-   *            and clamped in accordance to the ruler's domain (if set).
+   * @param[in] x value to be snapped in accordance to ruler snap value,
+   *            and clamped in accordance to the ruler's domain (if set)
    * @param[in] bias (optional) The biasing employed for snapping
    * 0 floor input (floor x) "Used for Flick Left"
    * 0.5 round input (floor x + 0.5) "Used for Release"
    * 1 ceil input (floor x + 1.0) "Used for Flick Right"
    * @param[in] length (optional) The Length of the line from (x) to (x + length)
-   * to be clamped.
-   * @param[in] scale Scaling parameter which treats domain as scaled in calculations.
-   * @param[out] clamped Whether clamping occured and which size (None, Min or Max)
+   * to be clamped
+   * @param[in] scale Scaling parameter which treats domain as scaled in calculations
+   * @param[out] clamped Whether clamping occurred and which size (None, Min or Max)
    * @return The clamped value after snapping
    */
   float SnapAndClamp(float x, float bias, float length, float scale, ClampState &clamped) const;
@@ -407,10 +407,10 @@ class DALI_IMPORT_API FixedRuler : public Ruler
 {
 public:
   /**
-   * @brief Constructor
+   * @brief Constructor.
    *
    * @SINCE_1_0.0
-   * @param[in] spacing The spacing between each interval on this ruler.
+   * @param[in] spacing The spacing between each interval on this ruler
    */
   FixedRuler(float spacing = 1.0f);
 
@@ -457,7 +457,7 @@ class DALI_IMPORT_API ScrollView : public Scrollable
 public:
 
   /**
-   * @brief Clamp signal event's data
+   * @brief Clamps signal event's data.
    * @SINCE_1_0.0
    */
   struct ClampEvent
@@ -468,7 +468,7 @@ public:
   };
 
   /**
-   * @brief Snap signal event's data.
+   * @brief Snaps signal event's data.
    * @SINCE_1_0.0
    */
   struct SnapEvent
@@ -479,7 +479,7 @@ public:
   };
 
   /**
-   * @brief The start and end property ranges for this control.
+   * @brief Enumeration for the start and end property ranges for this control.
    * @SINCE_1_0.0
    */
   enum PropertyRange
@@ -551,7 +551,7 @@ public:
    * Creates another handle that points to the same real object.
    *
    * @SINCE_1_0.0
-   * @param[in] handle to copy from
+   * @param[in] handle Handle to copy from
    */
   ScrollView( const ScrollView& handle );
 
@@ -566,7 +566,7 @@ public:
   ScrollView& operator=( const ScrollView& handle );
 
   /**
-   * @brief Destructor
+   * @brief Destructor.
    *
    * This is non-virtual since derived Handle types must not contain data or virtual methods.
    * @SINCE_1_0.0
@@ -574,18 +574,18 @@ public:
   ~ScrollView();
 
   /**
-   * @brief Create an initialized ScrollView.
+   * @brief Creates an initialized ScrollView.
    *
    * @SINCE_1_0.0
-   * @return A handle to a newly allocated Dali resource.
+   * @return A handle to a newly allocated Dali resource
    */
   static ScrollView New();
 
   /**
-   * @brief Downcast a handle to ScrollView handle.
+   * @brief Downcasts a handle to ScrollView handle.
    *
-   * If handle points to a ScrollView the downcast produces valid
-   * handle. If not the returned handle is left uninitialized.
+   * If handle points to a ScrollView, the downcast produces valid handle.
+   * If not, the returned handle is left uninitialized.
    *
    * @SINCE_1_0.0
    * @param[in] handle Handle to an object
@@ -596,34 +596,34 @@ public:
 public:
 
   /**
-   * @brief Get snap-animation's AlphaFunction.
+   * @brief Gets snap-animation's AlphaFunction.
    *
    * @SINCE_1_0.0
-   * @return Current easing alpha function of the snap animation.
+   * @return Current easing alpha function of the snap animation
    */
   AlphaFunction GetScrollSnapAlphaFunction() const;
 
   /**
-   * @brief Set snap-animation's AlphaFunction.
+   * @brief Sets snap-animation's AlphaFunction.
    *
    * @SINCE_1_0.0
-   * @param[in] alpha Easing alpha function of the snap animation.
+   * @param[in] alpha Easing alpha function of the snap animation
    */
   void SetScrollSnapAlphaFunction(AlphaFunction alpha);
 
   /**
-   * @brief Get flick-animation's AlphaFunction.
+   * @brief Gets flick-animation's AlphaFunction.
    *
    * @SINCE_1_0.0
-   * @return Current easing alpha function of the flick animation.
+   * @return Current easing alpha function of the flick animation
    */
   AlphaFunction GetScrollFlickAlphaFunction() const;
 
   /**
-   * @brief Set flick-animation's AlphaFunction.
+   * @brief Sets flick-animation's AlphaFunction.
    *
    * @SINCE_1_0.0
-   * @param[in] alpha Easing alpha function of the flick animation.
+   * @param[in] alpha Easing alpha function of the flick animation
    */
   void SetScrollFlickAlphaFunction(AlphaFunction alpha);
 
@@ -633,7 +633,7 @@ public:
    * This animation occurs when the user drags, and releases.
    *
    * @SINCE_1_0.0
-   * @return The time in seconds for the animation to take.
+   * @return The time in seconds for the animation to take
    */
   float GetScrollSnapDuration() const;
 
@@ -643,7 +643,7 @@ public:
    * This animation occurs when the user drags, and releases.
    *
    * @SINCE_1_0.0
-   * @param[in] time The time in seconds for the animation to take.
+   * @param[in] time The time in seconds for the animation to take
    */
   void SetScrollSnapDuration(float time);
 
@@ -653,7 +653,7 @@ public:
    * This animation occurs when the user flicks scroll view.
    *
    * @SINCE_1_0.0
-   * @return The time in seconds for the animation to take.
+   * @return The time in seconds for the animation to take
    */
   float GetScrollFlickDuration() const;
 
@@ -663,12 +663,12 @@ public:
    * This animation occurs when the user flicks scroll view.
    *
    * @SINCE_1_0.0
-   * @param[in] time The time in seconds for the animation to take.
+   * @param[in] time The time in seconds for the animation to take
    */
   void SetScrollFlickDuration(float time);
 
   /**
-   * @brief Set X axis ruler.
+   * @brief Sets X axis ruler.
    *
    * Defines how scrolling horizontally is snapped, and
    * the boundary (domain) in which the ScrollView can pan.
@@ -679,7 +679,7 @@ public:
   void SetRulerX(RulerPtr ruler);
 
   /**
-   * @brief Set Y axis ruler.
+   * @brief Sets Y axis ruler.
    *
    * Defines how scrolling vertically is snapped, and the boundary
    * (domain) in which the ScrollView can pan.
@@