Merge branch 'devel/master' into tizen 07/133607/1 accepted/tizen/unified/20170614.141239 submit/tizen/20170613.061944 submit/tizen/20170614.120205
authorSeoyeon Kim <seoyeon2.kim@samsung.com>
Tue, 13 Jun 2017 02:12:56 +0000 (11:12 +0900)
committerSeoyeon Kim <seoyeon2.kim@samsung.com>
Tue, 13 Jun 2017 02:13:30 +0000 (11:13 +0900)
Change-Id: I12c4d05cce521dcd28fa17e25f4fa540262564ea

23 files changed:
build/tizen/CMakeLists.txt
com.samsung.dali-demo.xml
examples-reel/dali-examples-reel.cpp
examples/alpha-blending-cpu/alpha-blending-cpu-example.cpp [new file with mode: 0644]
examples/image-view-svg/image-view-svg-example.cpp
examples/text-editor/text-editor-example.cpp
examples/text-overlap/text-overlap-example.cpp [new file with mode: 0644]
examples/text-overlap/text-overlap-example.h [new file with mode: 0644]
packaging/com.samsung.dali-demo.spec
resources/images/application-icon-7-RGB565.png [new file with mode: 0644]
resources/images/mask-large.png [new file with mode: 0644]
resources/images/mask.png [new file with mode: 0644]
resources/images/mask.xcf [new file with mode: 0644]
resources/images/people-medium-7-masked.png [new file with mode: 0644]
resources/images/people-medium-7-rgb565.png [new file with mode: 0644]
resources/images/people-small-7b.jpg [new file with mode: 0644]
resources/po/en_GB.po
resources/po/en_US.po
resources/style/.gitignore
resources/style/mobile/text-editor-example-theme.json.in [new file with mode: 0644]
resources/style/text-editor-example-theme.json.in [new file with mode: 0644]
shared/dali-demo-strings.h
shared/multi-language-strings.h

index 90b1349..509afef 100644 (file)
@@ -117,6 +117,7 @@ CONFIGURE_FILE( ${LOCAL_STYLE_DIR}/style-example-theme-two.json.in ${LOCAL_STYLE
 CONFIGURE_FILE( ${LOCAL_STYLE_DIR}/style-example-theme-three.json.in ${LOCAL_STYLE_DIR}/style-example-theme-three.json )
 CONFIGURE_FILE( ${LOCAL_STYLE_DIR}/tooltip-example-theme.json.in ${LOCAL_STYLE_DIR}/tooltip-example-theme.json )
 CONFIGURE_FILE( ${LOCAL_STYLE_DIR}/basic-light-theme.json.in ${LOCAL_STYLE_DIR}/basic-light-theme.json )
+CONFIGURE_FILE( ${LOCAL_STYLE_DIR}/text-editor-example-theme.json.in ${LOCAL_STYLE_DIR}/text-editor-example-theme.json )
 MESSAGE("Configured ${LOCAL_STYLE_DIR}/style-example-theme<>.json files")
 
 FILE(GLOB LOCAL_STYLES_LIST "${LOCAL_STYLE_DIR}/*.json")
index a71c9a3..b0887b8 100644 (file)
        <ui-application appid="rendering-skybox.example" exec="/usr/apps/com.samsung.dali-demo/bin/rendering-skybox.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
                <label>Skybox</label>
        </ui-application>
+       <ui-application appid="text-overlap.example" exec="/usr/apps/com.samsung.dali-demo/bin/text-overlap.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
+               <label>Text Overlap</label>
+       </ui-application>
 </manifest>
index cdd64a0..0c3f7cf 100644 (file)
@@ -38,6 +38,7 @@ int DALI_EXPORT_API main(int argc, char **argv)
 
   demo.AddExample(Example("animated-images.example", DALI_DEMO_STR_TITLE_ANIMATED_IMAGES));
   demo.AddExample(Example("animated-shapes.example", DALI_DEMO_STR_TITLE_ANIMATED_SHAPES));
+  demo.AddExample(Example("alpha-blending-cpu.example", DALI_DEMO_STR_TITLE_ALPHA_BLENDING_CPU));
   demo.AddExample(Example("builder.example", DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI));
   demo.AddExample(Example("buttons.example", DALI_DEMO_STR_TITLE_BUTTONS));
   demo.AddExample(Example("clipping.example", DALI_DEMO_STR_TITLE_CLIPPING));
@@ -78,6 +79,7 @@ int DALI_EXPORT_API main(int argc, char **argv)
   demo.AddExample(Example("text-label.example", DALI_DEMO_STR_TITLE_TEXT_LABEL));
   demo.AddExample(Example("text-label-multi-language.example", DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE));
   demo.AddExample(Example("text-label-emojis.example", DALI_DEMO_STR_TITLE_EMOJI_TEXT));
+  demo.AddExample(Example("text-overlap.example", DALI_DEMO_STR_TITLE_TEXT_OVERLAP));
   demo.AddExample(Example("text-scrolling.example", DALI_DEMO_STR_TITLE_TEXT_SCROLLING));
   demo.AddExample(Example("textured-mesh.example", DALI_DEMO_STR_TITLE_TEXTURED_MESH));
   demo.AddExample(Example("tilt.example", DALI_DEMO_STR_TITLE_TILT_SENSOR));
diff --git a/examples/alpha-blending-cpu/alpha-blending-cpu-example.cpp b/examples/alpha-blending-cpu/alpha-blending-cpu-example.cpp
new file mode 100644 (file)
index 0000000..8b8cd98
--- /dev/null
@@ -0,0 +1,158 @@
+/*
+ * Copyright (c) 2015 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/dali-toolkit.h>
+#include <dali-toolkit/devel-api/visuals/visual-properties-devel.h>
+#include <dali-toolkit/devel-api/visuals/image-visual-properties-devel.h>
+#include <cstring>
+
+using namespace Dali;
+
+namespace
+{
+const char* const IMAGE_PATH_1 ( DEMO_IMAGE_DIR "people-small-7b.jpg" ); // 100x100
+const char* const IMAGE_PATH_2 ( DEMO_IMAGE_DIR "people-medium-7.jpg" );
+const char* const IMAGE_PATH_3 ( DEMO_IMAGE_DIR "people-medium-7-rgb565.png" ); // is compressed
+const char* const IMAGE_PATH_4 ( DEMO_IMAGE_DIR "people-medium-7-masked.png" ); // has alpha channel
+const char* const MASK_IMAGE_PATH_1 ( DEMO_IMAGE_DIR "mask.png" );
+const char* const MASK_IMAGE_PATH_2 ( DEMO_IMAGE_DIR "mask-large.png" ); // 300x300
+}
+
+class ImageViewAlphaBlendApp : public ConnectionTracker
+{
+public:
+  ImageViewAlphaBlendApp( Application& application )
+  : mApplication( application ),
+    mImageCombinationIndex( 0 )
+  {
+    // Connect to the Application's Init signal
+    mApplication.InitSignal().Connect( this, &ImageViewAlphaBlendApp::Create );
+  }
+
+  ~ImageViewAlphaBlendApp()
+  {
+    // Nothing to do here;
+  }
+
+private:
+  // The Init signal is received once (only) during the Application lifetime
+  void Create( Application& application )
+  {
+    // This creates an image view with one of 3 images, and one of 2 masks.
+    // Clicking the screen will cycle through each combination of mask and image.
+
+    // Get a handle to the stage
+    Stage stage = Stage::GetCurrent();
+    stage.KeyEventSignal().Connect(this, &ImageViewAlphaBlendApp::OnKeyEvent);
+    stage.SetBackgroundColor( Color::WHITE );
+
+    mImageView = Toolkit::ImageView::New();
+
+    mImageView.SetSize(200, 200);
+    mImageView.SetParentOrigin( ParentOrigin::CENTER );
+    stage.Add(mImageView);
+
+    mImageLabel = Toolkit::TextLabel::New();
+    mImageLabel.SetParentOrigin( ParentOrigin::BOTTOM_CENTER );
+    mImageLabel.SetAnchorPoint( ParentOrigin::BOTTOM_CENTER );
+    mImageLabel.SetPosition( Vector3( 0.0f, -50.0f, 0.0f ) );
+    mImageLabel.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::GREEN );
+    stage.Add(mImageLabel);
+
+    mMaskLabel = Toolkit::TextLabel::New();
+    mMaskLabel.SetParentOrigin( ParentOrigin::BOTTOM_CENTER );
+    mMaskLabel.SetAnchorPoint( ParentOrigin::BOTTOM_CENTER );
+    mMaskLabel.SetPosition( Vector3( 0.0f, 0.0f, 0.0f ) );
+    mMaskLabel.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::GREEN );
+    stage.Add(mMaskLabel);
+
+    LoadImages();
+
+    stage.TouchSignal().Connect( this, &ImageViewAlphaBlendApp::OnTouched );
+  }
+
+  void OnTouched( const TouchData& touchData )
+  {
+    static bool touched = false;
+    if( touchData.GetState( 0 ) == PointState::DOWN )
+    {
+      touched = true;
+    }
+
+    if( touchData.GetState( 0 ) == PointState::UP && touched)
+    {
+      mImageCombinationIndex++;
+      touched = false;
+      LoadImages();
+    }
+  }
+
+  void LoadImages()
+  {
+    const char* images[4] = { IMAGE_PATH_1, IMAGE_PATH_2, IMAGE_PATH_3, IMAGE_PATH_4 };
+    const char*  masks[2] = { MASK_IMAGE_PATH_1, MASK_IMAGE_PATH_2 };
+
+    const char* mask  = masks[mImageCombinationIndex%2 ]; // Cycle through masks
+    const char* image = images[(mImageCombinationIndex/2)%4]; // then images
+    Property::Map map;
+    map.Add( Toolkit::Visual::Property::TYPE, Toolkit::Visual::Type::IMAGE );
+    map.Add( Toolkit::ImageVisual::Property::URL, image );
+    map.Add( Toolkit::DevelImageVisual::Property::ALPHA_MASK_URL, mask );
+    mImageView.SetProperty( Toolkit::ImageView::Property::IMAGE, map );
+
+    mImageLabel.SetProperty( Toolkit::TextLabel::Property::TEXT, strrchr(image, '/') );
+    mMaskLabel.SetProperty( Toolkit::TextLabel::Property::TEXT, strrchr(mask, '/') );
+  }
+
+  void OnKeyEvent(const KeyEvent& event)
+  {
+    if(event.state == KeyEvent::Down)
+    {
+      if( IsKey( event, Dali::DALI_KEY_ESCAPE) || IsKey( event, Dali::DALI_KEY_BACK) )
+      {
+        mApplication.Quit();
+      }
+    }
+  }
+
+
+private:
+  Application&  mApplication;
+  Toolkit::ImageView mImageView;
+  Toolkit::TextLabel mImageLabel;
+  Toolkit::TextLabel mMaskLabel;
+
+  int mImageCombinationIndex;
+};
+
+void RunTest( Application& application )
+{
+  ImageViewAlphaBlendApp test( application );
+
+  application.MainLoop();
+}
+
+// Entry point for Linux & Tizen applications
+//
+int DALI_EXPORT_API main( int argc, char **argv )
+{
+  Application application = Application::New( &argc, &argv );
+
+  RunTest( application );
+
+  return 0;
+}
index 613ecb7..a264ca5 100644 (file)
@@ -87,7 +87,6 @@ public:
     changeButton.SetParentOrigin( ParentOrigin::TOP_RIGHT );
     stage.Add( changeButton );
     changeButton.ClickedSignal().Connect( this, &ImageSvgController::OnChangeButtonClicked );
-    changeButton.SetProperty( DevelActor::Property::SIBLING_ORDER, 1 );
 
     // Push button, for resetting the actor size and position
     Toolkit::PushButton resetButton = Toolkit::PushButton::New();
@@ -96,7 +95,6 @@ public:
     resetButton.SetParentOrigin( ParentOrigin::TOP_LEFT );
     stage.Add( resetButton );
     resetButton.ClickedSignal().Connect( this, &ImageSvgController::OnResetButtonClicked );
-    resetButton.SetProperty( DevelActor::Property::SIBLING_ORDER, 1 );
 
     // Create and put imageViews to stage
     for( unsigned int i=0; i<4u; i++)
@@ -124,6 +122,9 @@ public:
     mPinchGestureDetector = PinchGestureDetector::New();
     mPinchGestureDetector.Attach( mStageBackground);
     mPinchGestureDetector.DetectedSignal().Connect(this, &ImageSvgController::OnPinch);
+
+    DevelActor::RaiseToTop(changeButton);
+    DevelActor::RaiseToTop(resetButton);
   }
 
   // Callback of push button, for changing image set
index 23d9dbb..44b08c8 100644 (file)
@@ -34,6 +34,7 @@ using namespace Dali::Toolkit;
 namespace
 {
 
+const char * const THEME_PATH( DEMO_STYLE_DIR "text-editor-example-theme.json" ); ///< The theme used for this example
 const Vector4 BACKGROUND_COLOR( 0.04f, 0.345f, 0.392f, 1.0f );      ///< The background color.
 const char*   TOOLBAR_IMAGE = DEMO_IMAGE_DIR "top-bar.png";         ///< The tool-bar image.
 const float   TOOLBAR_BUTTON_PERCENTAGE = 0.1f;                     ///< The button's space width as a percentage of the toolbar's width.
@@ -182,6 +183,8 @@ public:
     mEditor.InputStyleChangedSignal().Connect( this, &TextEditorExample::OnTextInputStyleChanged );
 
     contents.Add( mEditor );
+    StyleManager styleManager = StyleManager::Get();
+    styleManager.ApplyTheme( THEME_PATH );
   }
 
   void CreateButtonContainer()
diff --git a/examples/text-overlap/text-overlap-example.cpp b/examples/text-overlap/text-overlap-example.cpp
new file mode 100644 (file)
index 0000000..560ebe0
--- /dev/null
@@ -0,0 +1,149 @@
+
+#include <dali-toolkit/dali-toolkit.h>
+#include <dali/devel-api/actors/actor-devel.h>
+#include "text-overlap-example.h"
+
+#include <iostream>
+
+using namespace Dali;
+using namespace Dali::Toolkit;
+
+static const int NUMBER_OF_LABELS(2);
+
+
+
+namespace Demo
+{
+
+TextOverlapController::TextOverlapController( Application& app )
+: mApplication( app ),
+  mTopmostLabel( 1 )
+{
+  app.InitSignal().Connect( this, &TextOverlapController::Create );
+  app.TerminateSignal().Connect( this, &TextOverlapController::Destroy );
+}
+
+void TextOverlapController::Create( Application& app )
+{
+  Stage stage = Stage::GetCurrent();
+  stage.KeyEventSignal().Connect( this, &TextOverlapController::OnKeyEvent );
+
+  Vector2 stageSize = stage.GetSize();
+
+  mLabels[0] = TextLabel::New("Text Label 1");
+  mLabels[1] = TextLabel::New("Text Label 2");
+
+  mLabels[0].SetName("Label1");
+  mLabels[1].SetName("Label2");
+
+  mLabels[0].SetProperty( DevelActor::Property::SIBLING_ORDER, 1 );
+  mLabels[1].SetProperty( DevelActor::Property::SIBLING_ORDER, 2 );
+
+  mLabels[0].SetProperty( Control::Property::BACKGROUND, Color::RED );
+  mLabels[1].SetProperty( Control::Property::BACKGROUND, Color::YELLOW );
+
+  for(int i=0; i<NUMBER_OF_LABELS; ++i )
+  {
+    mLabels[i].SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
+    mLabels[i].SetAnchorPoint( AnchorPoint::TOP_LEFT );
+    mLabels[i].SetParentOrigin( ParentOrigin::TOP_LEFT );
+    mLabels[i].SetPosition( 0, (i*2+1) * stageSize.height * 0.25f );
+  }
+
+  stage.Add( mLabels[0] );
+  stage.Add( mLabels[1] );
+
+  mSwapButton = PushButton::New();
+  mSwapButton.SetProperty( Button::Property::LABEL, "Swap depth order");
+  mSwapButton.SetParentOrigin( ParentOrigin::BOTTOM_CENTER );
+  mSwapButton.SetAnchorPoint( AnchorPoint::BOTTOM_CENTER );
+  mSwapButton.ClickedSignal().Connect( this, &TextOverlapController::OnClicked );
+  mSwapButton.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
+  mSwapButton.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
+  stage.Add( mSwapButton );
+
+
+  Layer rootLayer = stage.GetRootLayer();
+  rootLayer.SetName("RootLayer");
+
+  mPanDetector = PanGestureDetector::New();
+  mPanDetector.Attach( rootLayer );
+  mPanDetector.AddAngle( Radian(-0.5f * Math::PI ));
+  mPanDetector.AddAngle( Radian( 0.5f * Math::PI ));
+  mPanDetector.DetectedSignal().Connect( this, &TextOverlapController::OnPan );
+}
+
+void TextOverlapController::OnPan( Actor actor, const PanGesture& gesture )
+{
+  if( ! mGrabbedActor || gesture.state == PanGesture::Started )
+  {
+    for( int i=0; i<NUMBER_OF_LABELS; ++i )
+    {
+      Vector3 position = mLabels[i].GetCurrentPosition();
+      Vector3 size = mLabels[i].GetCurrentSize();
+      if( gesture.position.y > position.y - size.y * 0.5f &&
+          gesture.position.y <= position.y + size.y * 0.5f )
+      {
+        mGrabbedActor = mLabels[i];
+        break;
+      }
+    }
+  }
+  else if( mGrabbedActor && gesture.state == PanGesture::Continuing )
+  {
+    Vector2 stageSize = Stage::GetCurrent().GetSize();
+    Vector3 size = mGrabbedActor.GetCurrentSize();
+    float y = Clamp( gesture.position.y, size.y * 0.5f, stageSize.y - size.y*0.5f );
+    mGrabbedActor.SetPosition( 0, y );
+  }
+  else
+  {
+    mGrabbedActor.Reset();
+  }
+}
+
+void TextOverlapController::Destroy( Application& app )
+{
+  mPanDetector.DetachAll();
+  UnparentAndReset(mLabels[0]);
+  UnparentAndReset(mLabels[1]);
+  mGrabbedActor.Reset();
+}
+
+bool TextOverlapController::OnClicked( Button button )
+{
+  mTopmostLabel = 1-mTopmostLabel; // toggles between 0 and 1
+  DevelActor::RaiseToTop(mLabels[mTopmostLabel]);
+  return false;
+}
+
+
+void TextOverlapController::OnKeyEvent( const KeyEvent& keyEvent )
+{
+  if( keyEvent.state == KeyEvent::Down &&
+      ( IsKey( keyEvent, DALI_KEY_BACK ) ||
+        IsKey( keyEvent, DALI_KEY_ESCAPE ) ) )
+  {
+    mApplication.Quit();
+  }
+  else
+  {
+    Dali::Layer l = Dali::Stage::GetCurrent().GetRootLayer();
+    int so = l.GetProperty<int>(Dali::DevelActor::Property::SIBLING_ORDER);
+    l.SetProperty(Dali::DevelActor::Property::SIBLING_ORDER, so+1);
+  }
+}
+
+
+} // namespace Demo
+
+
+int main( int argc, char** argv )
+{
+  {
+    Application app = Application::New( &argc, &argv );
+    Demo::TextOverlapController controller( app );
+    app.MainLoop();
+  }
+  exit( 0 );
+}
diff --git a/examples/text-overlap/text-overlap-example.h b/examples/text-overlap/text-overlap-example.h
new file mode 100644 (file)
index 0000000..b15f67d
--- /dev/null
@@ -0,0 +1,28 @@
+#pragma once
+
+namespace Demo
+{
+
+class TextOverlapController : public Dali::ConnectionTracker
+{
+public:
+  TextOverlapController( Dali::Application& app );
+
+private:
+  void Create( Dali::Application& app );
+  void Create2();
+  void Destroy( Dali::Application& app );
+  void OnPan( Dali::Actor actor, const Dali::PanGesture& gesture );
+  void OnKeyEvent( const Dali::KeyEvent& keyEvent );
+  bool OnClicked( Dali::Toolkit::Button button );
+
+private:
+  Dali::Application& mApplication;
+  Dali::Toolkit::TextLabel mLabels[2];
+  Dali::PanGestureDetector mPanDetector;
+  Dali::Actor mGrabbedActor;
+  Dali::Toolkit::Button mSwapButton;
+  int mTopmostLabel;
+};
+
+}
index e9f5d79..6c30709 100755 (executable)
@@ -2,7 +2,7 @@
 
 Name:       com.samsung.dali-demo
 Summary:    The OpenGLES Canvas Core Demo
-Version:    1.2.42
+Version:    1.2.43
 Release:    1
 Group:      System/Libraries
 License:    Apache-2.0
diff --git a/resources/images/application-icon-7-RGB565.png b/resources/images/application-icon-7-RGB565.png
new file mode 100644 (file)
index 0000000..bdbc28b
Binary files /dev/null and b/resources/images/application-icon-7-RGB565.png differ
diff --git a/resources/images/mask-large.png b/resources/images/mask-large.png
new file mode 100644 (file)
index 0000000..e280f35
Binary files /dev/null and b/resources/images/mask-large.png differ
diff --git a/resources/images/mask.png b/resources/images/mask.png
new file mode 100644 (file)
index 0000000..b3e423c
Binary files /dev/null and b/resources/images/mask.png differ
diff --git a/resources/images/mask.xcf b/resources/images/mask.xcf
new file mode 100644 (file)
index 0000000..b9628d0
Binary files /dev/null and b/resources/images/mask.xcf differ
diff --git a/resources/images/people-medium-7-masked.png b/resources/images/people-medium-7-masked.png
new file mode 100644 (file)
index 0000000..d94b586
Binary files /dev/null and b/resources/images/people-medium-7-masked.png differ
diff --git a/resources/images/people-medium-7-rgb565.png b/resources/images/people-medium-7-rgb565.png
new file mode 100644 (file)
index 0000000..07fa790
Binary files /dev/null and b/resources/images/people-medium-7-rgb565.png differ
diff --git a/resources/images/people-small-7b.jpg b/resources/images/people-small-7b.jpg
new file mode 100644 (file)
index 0000000..dd62dab
Binary files /dev/null and b/resources/images/people-small-7b.jpg differ
index 4c9c8f1..d3110d9 100755 (executable)
@@ -4,6 +4,9 @@ msgstr "Animated Images"
 msgid "DALI_DEMO_STR_TITLE_ANIMATED_SHAPES"
 msgstr "Animated Shapes"
 
+msgid "DALI_DEMO_STR_TITLE_ALPHA_BLENDING_CPU"
+msgstr "CPU Alpha Blending"
+
 msgid "DALI_DEMO_STR_TITLE_BASIC_LIGHT"
 msgstr "Basic Light"
 
@@ -142,6 +145,9 @@ msgstr "Text Field"
 msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL"
 msgstr "Text Label"
 
+msgid "DALI_DEMO_STR_TITLE_TEXT_OVERLAP"
+msgstr "Text Overlap"
+
 msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE"
 msgstr "Text Scripts"
 
index ee9e456..2fe350f 100755 (executable)
@@ -4,6 +4,9 @@ msgstr "Animated Images"
 msgid "DALI_DEMO_STR_TITLE_ANIMATED_SHAPES"
 msgstr "Animated Shapes"
 
+msgid "DALI_DEMO_STR_TITLE_ALPHA_BLENDING_CPU"
+msgstr "CPU Alpha Blending"
+
 msgid "DALI_DEMO_STR_TITLE_BASIC_LIGHT"
 msgstr "Basic Light"
 
@@ -142,6 +145,9 @@ msgstr "Text Field"
 msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL"
 msgstr "Text Label"
 
+msgid "DALI_DEMO_STR_TITLE_TEXT_OVERLAP"
+msgstr "Text Overlap"
+
 msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE"
 msgstr "Text Scripts"
 
index fe1c128..dd5d467 100644 (file)
@@ -7,3 +7,4 @@ style-example-theme-two.json
 style-example-theme-one.json
 tooltip-example-theme.json
 basic-light-theme.json
+text-editor-example-theme.json
diff --git a/resources/style/mobile/text-editor-example-theme.json.in b/resources/style/mobile/text-editor-example-theme.json.in
new file mode 100644 (file)
index 0000000..48470b4
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2000-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.
+ *
+ */
+
+{
+  "styles":
+  {
+    "ScrollBar":
+    {
+      "indicatorShowDuration":1.0,
+      "indicatorHideDuration":1.0,
+      "background": {
+        "rendererType": "image",
+        "url": "{APPLICATION_RESOURCE_PATH}/images/button-disabled.9.png"
+        }
+    },
+    "ScrollBarIndicator":
+    {
+      "resourceUrl":"{APPLICATION_RESOURCE_PATH}/images/button-white-up.9.png"
+    }
+  }
+}
diff --git a/resources/style/text-editor-example-theme.json.in b/resources/style/text-editor-example-theme.json.in
new file mode 100644 (file)
index 0000000..48470b4
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2000-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.
+ *
+ */
+
+{
+  "styles":
+  {
+    "ScrollBar":
+    {
+      "indicatorShowDuration":1.0,
+      "indicatorHideDuration":1.0,
+      "background": {
+        "rendererType": "image",
+        "url": "{APPLICATION_RESOURCE_PATH}/images/button-disabled.9.png"
+        }
+    },
+    "ScrollBarIndicator":
+    {
+      "resourceUrl":"{APPLICATION_RESOURCE_PATH}/images/button-white-up.9.png"
+    }
+  }
+}
index adc0bca..4f6bac6 100644 (file)
@@ -34,6 +34,7 @@ extern "C"
 
 #define DALI_DEMO_STR_TITLE_ANIMATED_IMAGES             dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_ANIMATED_IMAGES")
 #define DALI_DEMO_STR_TITLE_ANIMATED_SHAPES             dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_ANIMATED_SHAPES")
+#define DALI_DEMO_STR_TITLE_ALPHA_BLENDING_CPU          dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_ALPHA_BLENDING_CPU")
 #define DALI_DEMO_STR_TITLE_BASIC_LIGHT                 dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_BASIC_LIGHT")
 #define DALI_DEMO_STR_TITLE_BLOCKS                      dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_BLOCKS")
 #define DALI_DEMO_STR_TITLE_BUBBLES                     dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_BUBBLES")
@@ -88,6 +89,7 @@ extern "C"
 #define DALI_DEMO_STR_TITLE_TEXT_EDITOR                 dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_TEXT_EDITOR")
 #define DALI_DEMO_STR_TITLE_TEXT_FIELD                  dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_TEXT_FIELD")
 #define DALI_DEMO_STR_TITLE_TEXT_LABEL                  dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_TEXT_LABEL")
+#define DALI_DEMO_STR_TITLE_TEXT_OVERLAP                dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_TEXT_OVERLAP")
 #define DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE   dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE")
 #define DALI_DEMO_STR_TITLE_TEXT_SCROLLING              dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_TEXT_SCROLLING")
 #define DALI_DEMO_STR_TITLE_TILT_SENSOR                 dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_TILT_SENSOR")
@@ -98,6 +100,7 @@ extern "C"
 
 #define DALI_DEMO_STR_TITLE_ANIMATED_IMAGES             "Animated Images"
 #define DALI_DEMO_STR_TITLE_ANIMATED_SHAPES             "Animated Shapes"
+#define DALI_DEMO_STR_TITLE_ALPHA_BLENDING_CPU          "CPU Alpha Blending"
 #define DALI_DEMO_STR_TITLE_BASIC_LIGHT                 "Basic Light"
 #define DALI_DEMO_STR_TITLE_BLOCKS                      "Blocks"
 #define DALI_DEMO_STR_TITLE_BUBBLES                     "Bubbles"
@@ -152,6 +155,7 @@ extern "C"
 #define DALI_DEMO_STR_TITLE_TEXT_EDITOR                 "Text Editor"
 #define DALI_DEMO_STR_TITLE_TEXT_FIELD                  "Text Field"
 #define DALI_DEMO_STR_TITLE_TEXT_LABEL                  "Text Label"
+#define DALI_DEMO_STR_TITLE_TEXT_OVERLAP                "Text Overlap"
 #define DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE   "Text Scripts"
 #define DALI_DEMO_STR_TITLE_TEXT_SCROLLING              "Text Scrolling"
 #define DALI_DEMO_STR_TITLE_TILT_SENSOR                 "Tilt Sensor"
index d19fb66..e9ab491 100644 (file)
@@ -206,9 +206,14 @@ namespace MultiLanguageStrings
       "(Xhosa)",
       "Molo Lizwe"
     },
+    {
+      "Amharic",
+      "(አማርኛ)",
+      "ያስገቡት PIN ትክክለኛ አይደለም። እባክዎ እንደገና ይሞክሩ።"
+    }
   };
 
-  const unsigned int NUMBER_OF_LANGUAGES = 35u;
+  const unsigned int NUMBER_OF_LANGUAGES = 36u;
 
 } // MultiLanguageStrings