Commit 607f2a528c425deb2348a84fafadbb55dc3315c2

Authored by Adeel Kazmi
1 parent d9af2b9f

Added an example which shows the automatic clipping feature of controls

Change-Id: I777970b091ded350612e421d147b7b4d3cca0b76
com.samsung.dali-demo.xml
... ... @@ -184,4 +184,7 @@
184 184 <ui-application appid="tooltip.example" exec="/usr/apps/com.samsung.dali-demo/bin/tooltip.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
185 185 <label>Tooltip</label>
186 186 </ui-application>
  187 + <ui-application appid="clipping.example" exec="/usr/apps/com.samsung.dali-demo/bin/clipping.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
  188 + <label>Clipping</label>
  189 + </ui-application>
187 190 </manifest>
... ...
demo/dali-demo.cpp
1 1 /*
2   - * Copyright (c) 2016 Samsung Electronics Co., Ltd.
  2 + * Copyright (c) 2017 Samsung Electronics Co., Ltd.
3 3 *
4 4 * Licensed under the Apache License, Version 2.0 (the "License");
5 5 * you may not use this file except in compliance with the License.
... ... @@ -89,6 +89,7 @@ int DALI_EXPORT_API main(int argc, char **argv)
89 89 demo.AddExample(Example("flex-container.example", DALI_DEMO_STR_TITLE_FLEXBOX_PLAYGROUND));
90 90 demo.AddExample(Example("fpp-game.example", DALI_DEMO_STR_TITLE_FPP_GAME));
91 91 demo.AddExample(Example("tooltip.example", DALI_DEMO_STR_TITLE_TOOLTIP));
  92 + demo.AddExample(Example("clipping.example", DALI_DEMO_STR_TITLE_CLIPPING));
92 93  
93 94 demo.SortAlphabetically( true );
94 95  
... ...
examples/clipping/clipping-example.cpp 0 → 100644
  1 +/*
  2 + * Copyright (c) 2017 Samsung Electronics Co., Ltd.
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + *
  16 + */
  17 +
  18 +// EXTERNAL INCLUDES
  19 +#include <dali/dali.h>
  20 +#include <dali-toolkit/dali-toolkit.h>
  21 +#include <dali/devel-api/actors/actor-devel.h>
  22 +#include <dali-toolkit/devel-api/visuals/visual-properties-devel.h>
  23 +#include <dali-toolkit/devel-api/visuals/text-visual-properties.h>
  24 +
  25 +// INTERNAL INCLUDES
  26 +#include "clipping-item-factory.h"
  27 +
  28 +using namespace Dali;
  29 +using namespace Dali::Toolkit;
  30 +
  31 +namespace
  32 +{
  33 +const char * const APPLICATION_TITLE( "Clipping Controls" );
  34 +const Vector3 APPLICATION_TITLE_PARENT_ORIGIN( 0.5f, 0.03f, 0.5f ); // Set the parent origin to a small percentage below the top (so the demo will scale for different resolutions).
  35 +const Vector3 ITEM_VIEW_LAYOUT_SIZE_SCALE( 0.75f, 0.5f, 0.75f );
  36 +const float ITEM_VIEW_BORDER_SIZE = 2.0f;
  37 +const char * const BUTTON_LABEL( "Toggle Clipping Mode" );
  38 +} // unnamed namespace
  39 +
  40 +/**
  41 + * @brief Demonstrates the control clipping of a UI Control.
  42 + *
  43 + * When an Actor is set to clip its children, the renderers have to be added manually in order to specify what its children
  44 + * need to clip to. UI Controls automate the creation of the renderers/visuals when they are set to clip their children.
  45 + *
  46 + * This example displays an item-view whose clipping mode is toggled without the need for adding any renderers to it.
  47 + */
  48 +class ClippingExample : public ConnectionTracker
  49 +{
  50 +public:
  51 +
  52 + /**
  53 + * @brief Constructor.
  54 + * @param[in] application A reference to the Application class.
  55 + */
  56 + ClippingExample( Application& application )
  57 + : mApplication( application )
  58 + {
  59 + // Connect to the Application's Init signal
  60 + mApplication.InitSignal().Connect( this, &ClippingExample::Create );
  61 + }
  62 +
  63 +private:
  64 +
  65 + /**
  66 + * @brief Called to initialise the application content.
  67 + * @param[in] application A reference to the Application class.
  68 + */
  69 + void Create( Application& application )
  70 + {
  71 + // Hide the indicator bar
  72 + application.GetWindow().ShowIndicator( Dali::Window::INVISIBLE );
  73 +
  74 + // Connect to the stage's key signal to allow Back and Escape to exit.
  75 + Stage stage = Dali::Stage::GetCurrent();
  76 + stage.KeyEventSignal().Connect( this, &ClippingExample::OnKeyEvent );
  77 +
  78 + // Create a TextLabel for the application title.
  79 + Toolkit::TextLabel label = Toolkit::TextLabel::New( APPLICATION_TITLE );
  80 + label.SetAnchorPoint( AnchorPoint::TOP_CENTER );
  81 + label.SetParentOrigin( APPLICATION_TITLE_PARENT_ORIGIN );
  82 + label.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
  83 + label.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
  84 + label.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
  85 + stage.Add( label );
  86 +
  87 + // Create an item-view which clips its children.
  88 + mItemView = ItemView::New( mClippingItemFactory );
  89 + mItemView.SetParentOrigin( ParentOrigin::CENTER );
  90 + mItemView.SetAnchorPoint( AnchorPoint::CENTER );
  91 + mItemView.SetProperty( Actor::Property::CLIPPING_MODE, ClippingMode::CLIP_CHILDREN ); // Enable clipping. No need to create any renderers.
  92 + stage.Add( mItemView );
  93 +
  94 + // Create a Spiral Layout and add it to the Item View.
  95 + mItemView.AddLayout( * DefaultItemLayout::New( DefaultItemLayout::SPIRAL ) );
  96 + stage.GetRootLayer().SetBehavior( Layer::LAYER_3D ); // The item-view spiral layout requires Layer 3D behaviour.
  97 +
  98 + // Calculate the size we would like our item-view layout to be, and then activate the layout.
  99 + const Vector2 stageSize = stage.GetSize();
  100 + const Vector3 itemViewLayoutSize( ITEM_VIEW_LAYOUT_SIZE_SCALE.x * stageSize.x, ITEM_VIEW_LAYOUT_SIZE_SCALE.y * stageSize.y, ITEM_VIEW_LAYOUT_SIZE_SCALE.z * stageSize.x );
  101 + mItemView.ActivateLayout( 0, itemViewLayoutSize, 0.0f );
  102 +
  103 + // Create a border around item-view (as item-view is clipping its children, we should NOT add this as a child of item-view).
  104 + Control border = Control::New();
  105 + border.SetParentOrigin( ParentOrigin::CENTER );
  106 + border.SetAnchorPoint( AnchorPoint::CENTER );
  107 + border.SetProperty( Control::Property::BACKGROUND,
  108 + Property::Map().Add( Visual::Property::TYPE, Visual::BORDER )
  109 + .Add( BorderVisual::Property::COLOR, Color::WHITE )
  110 + .Add( BorderVisual::Property::SIZE, 2.0f ) );
  111 + border.SetSize( Vector3( itemViewLayoutSize.x + ITEM_VIEW_BORDER_SIZE * 2.0f, itemViewLayoutSize.y + ITEM_VIEW_BORDER_SIZE * 2.0f, itemViewLayoutSize.z + ITEM_VIEW_BORDER_SIZE * 2.0f ) );
  112 + stage.Add( border );
  113 +
  114 + // Create a button to toggle the clipping mode
  115 + PushButton button = Toolkit::PushButton::New();
  116 + button.SetParentOrigin( ParentOrigin::BOTTOM_CENTER );
  117 + button.SetAnchorPoint( AnchorPoint::BOTTOM_CENTER );
  118 + button.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
  119 + button.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
  120 + button.SetProperty( Actor::Property::DRAW_MODE, DrawMode::OVERLAY_2D );
  121 + button.SetProperty( Button::Property::LABEL,
  122 + Property::Map().Add( Toolkit::Visual::Property::TYPE, Toolkit::DevelVisual::TEXT )
  123 + .Add( Toolkit::TextVisual::Property::TEXT, BUTTON_LABEL ) );
  124 + button.ClickedSignal().Connect( this, &ClippingExample::OnButtonClicked );
  125 + stage.Add( button );
  126 + }
  127 +
  128 + /**
  129 + * @brief Called when any key event is received
  130 + *
  131 + * Will use this to quit the application if Back or the Escape key is received
  132 + * @param[in] event The key event information
  133 + */
  134 + void OnKeyEvent( const KeyEvent& event )
  135 + {
  136 + if( event.state == KeyEvent::Down )
  137 + {
  138 + if( IsKey( event, DALI_KEY_ESCAPE) || IsKey( event, DALI_KEY_BACK ) )
  139 + {
  140 + mApplication.Quit();
  141 + }
  142 + }
  143 + }
  144 +
  145 + /**
  146 + * @brief Called when the button is clicked.
  147 + *
  148 + * Will use this to toggle between the clipping modes.
  149 + * @param[in] button The button that has been clicked.
  150 + */
  151 + bool OnButtonClicked( Toolkit::Button button )
  152 + {
  153 + if( mItemView )
  154 + {
  155 + ClippingMode::Type currentMode = static_cast< ClippingMode::Type >( mItemView.GetProperty( Actor::Property::CLIPPING_MODE ).Get< int >() );
  156 + mItemView.SetProperty( Actor::Property::CLIPPING_MODE, ( currentMode == ClippingMode::CLIP_CHILDREN ) ? ClippingMode::DISABLED : ClippingMode::CLIP_CHILDREN );
  157 + }
  158 + return true;
  159 + }
  160 +
  161 + // Data
  162 +
  163 + Application& mApplication; ///< Reference to the application class.
  164 + ItemView mItemView; ///< The item view which whose children we would like to clip.
  165 + ClippingItemFactory mClippingItemFactory; ///< The ItemFactory used to create our items.
  166 +};
  167 +
  168 +int DALI_EXPORT_API main( int argc, char **argv )
  169 +{
  170 + Application app = Application::New(&argc, &argv, DEMO_THEME_PATH);
  171 + ClippingExample test(app);
  172 + app.MainLoop();
  173 + return 0;
  174 +}
... ...
examples/clipping/clipping-item-factory.cpp 0 → 100644
  1 +/*
  2 + * Copyright (c) 2017 Samsung Electronics Co., Ltd.
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + *
  16 + */
  17 +
  18 +// CLASS HEADER
  19 +#include "clipping-item-factory.h"
  20 +
  21 +// EXTERNAL INCLUDES
  22 +#include <dali/public-api/object/property-map.h>
  23 +#include <dali-toolkit/public-api/controls/image-view/image-view.h>
  24 +#include <dali-toolkit/public-api/visuals/border-visual-properties.h>
  25 +#include <dali-toolkit/public-api/visuals/visual-properties.h>
  26 +
  27 +using namespace Dali;
  28 +using namespace Dali::Toolkit;
  29 +
  30 +namespace
  31 +{
  32 +const char * IMAGE_PATHS[] = {
  33 + DEMO_IMAGE_DIR "gallery-medium-1.jpg",
  34 + DEMO_IMAGE_DIR "gallery-medium-2.jpg",
  35 + DEMO_IMAGE_DIR "gallery-medium-3.jpg",
  36 + DEMO_IMAGE_DIR "gallery-medium-4.jpg",
  37 + DEMO_IMAGE_DIR "gallery-medium-5.jpg",
  38 + DEMO_IMAGE_DIR "gallery-medium-6.jpg",
  39 + DEMO_IMAGE_DIR "gallery-medium-7.jpg",
  40 + DEMO_IMAGE_DIR "gallery-medium-8.jpg",
  41 + DEMO_IMAGE_DIR "gallery-medium-9.jpg",
  42 + DEMO_IMAGE_DIR "gallery-medium-10.jpg",
  43 + DEMO_IMAGE_DIR "gallery-medium-11.jpg",
  44 + DEMO_IMAGE_DIR "gallery-medium-12.jpg",
  45 + DEMO_IMAGE_DIR "gallery-medium-13.jpg",
  46 + DEMO_IMAGE_DIR "gallery-medium-14.jpg",
  47 + DEMO_IMAGE_DIR "gallery-medium-15.jpg",
  48 + DEMO_IMAGE_DIR "gallery-medium-16.jpg",
  49 + DEMO_IMAGE_DIR "gallery-medium-17.jpg",
  50 + DEMO_IMAGE_DIR "gallery-medium-18.jpg",
  51 + DEMO_IMAGE_DIR "gallery-medium-19.jpg",
  52 + DEMO_IMAGE_DIR "gallery-medium-20.jpg",
  53 + DEMO_IMAGE_DIR "gallery-medium-21.jpg",
  54 + DEMO_IMAGE_DIR "gallery-medium-22.jpg",
  55 + DEMO_IMAGE_DIR "gallery-medium-23.jpg",
  56 + DEMO_IMAGE_DIR "gallery-medium-24.jpg",
  57 + DEMO_IMAGE_DIR "gallery-medium-25.jpg",
  58 + DEMO_IMAGE_DIR "gallery-medium-26.jpg",
  59 + DEMO_IMAGE_DIR "gallery-medium-27.jpg",
  60 + DEMO_IMAGE_DIR "gallery-medium-28.jpg",
  61 + DEMO_IMAGE_DIR "gallery-medium-29.jpg",
  62 + DEMO_IMAGE_DIR "gallery-medium-30.jpg",
  63 + DEMO_IMAGE_DIR "gallery-medium-31.jpg",
  64 + DEMO_IMAGE_DIR "gallery-medium-32.jpg",
  65 + DEMO_IMAGE_DIR "gallery-medium-33.jpg",
  66 + DEMO_IMAGE_DIR "gallery-medium-34.jpg",
  67 + DEMO_IMAGE_DIR "gallery-medium-35.jpg",
  68 + DEMO_IMAGE_DIR "gallery-medium-36.jpg",
  69 + DEMO_IMAGE_DIR "gallery-medium-37.jpg",
  70 + DEMO_IMAGE_DIR "gallery-medium-38.jpg",
  71 + DEMO_IMAGE_DIR "gallery-medium-39.jpg",
  72 + DEMO_IMAGE_DIR "gallery-medium-40.jpg",
  73 + DEMO_IMAGE_DIR "gallery-medium-41.jpg",
  74 + DEMO_IMAGE_DIR "gallery-medium-42.jpg",
  75 + DEMO_IMAGE_DIR "gallery-medium-43.jpg",
  76 + DEMO_IMAGE_DIR "gallery-medium-44.jpg",
  77 + DEMO_IMAGE_DIR "gallery-medium-45.jpg",
  78 + DEMO_IMAGE_DIR "gallery-medium-46.jpg",
  79 + DEMO_IMAGE_DIR "gallery-medium-47.jpg",
  80 + DEMO_IMAGE_DIR "gallery-medium-48.jpg",
  81 + DEMO_IMAGE_DIR "gallery-medium-49.jpg",
  82 + DEMO_IMAGE_DIR "gallery-medium-50.jpg",
  83 + DEMO_IMAGE_DIR "gallery-medium-51.jpg",
  84 + DEMO_IMAGE_DIR "gallery-medium-52.jpg",
  85 + DEMO_IMAGE_DIR "gallery-medium-53.jpg",
  86 +};
  87 +const unsigned int NUM_IMAGES = sizeof( IMAGE_PATHS ) / sizeof( char * );
  88 +const unsigned int NUM_IMAGES_MULTIPLIER = 10;
  89 +
  90 +const float ITEM_BORDER_SIZE = 2.0f;
  91 +} // unnamed namespace
  92 +
  93 +ClippingItemFactory::ClippingItemFactory()
  94 +{
  95 +}
  96 +
  97 +unsigned int ClippingItemFactory::GetNumberOfItems()
  98 +{
  99 + return NUM_IMAGES * NUM_IMAGES_MULTIPLIER;
  100 +}
  101 +
  102 +Actor ClippingItemFactory::NewItem( unsigned int itemId )
  103 +{
  104 + // Create an image view for this item
  105 + ImageView actor = ImageView::New( IMAGE_PATHS[ itemId % NUM_IMAGES ] );
  106 +
  107 + // Add a border image child actor
  108 + ImageView borderActor = ImageView::New();
  109 + borderActor.SetParentOrigin( ParentOrigin::CENTER );
  110 + borderActor.SetAnchorPoint( AnchorPoint::CENTER );
  111 + borderActor.SetResizePolicy( ResizePolicy::SIZE_FIXED_OFFSET_FROM_PARENT, Dimension::ALL_DIMENSIONS );
  112 + borderActor.SetSizeModeFactor( Vector3( 2.0f * ITEM_BORDER_SIZE, 2.0f * ITEM_BORDER_SIZE, 0.0f ) );
  113 + borderActor.SetColorMode( USE_PARENT_COLOR );
  114 + borderActor.SetProperty( ImageView::Property::IMAGE,
  115 + Property::Map().Add( Visual::Property::TYPE, Visual::BORDER )
  116 + .Add( BorderVisual::Property::COLOR, Color::WHITE )
  117 + .Add( BorderVisual::Property::SIZE, ITEM_BORDER_SIZE )
  118 + .Add( BorderVisual::Property::ANTI_ALIASING, true ) );
  119 + actor.Add(borderActor);
  120 +
  121 + return actor;
  122 +}
... ...
examples/clipping/clipping-item-factory.h 0 → 100644
  1 +#ifndef CLIPPING_ITEM_FACTORY_H
  2 +#define CLIPPING_ITEM_FACTORY_H
  3 +
  4 +/*
  5 + * Copyright (c) 2017 Samsung Electronics Co., Ltd.
  6 + *
  7 + * Licensed under the Apache License, Version 2.0 (the "License");
  8 + * you may not use this file except in compliance with the License.
  9 + * You may obtain a copy of the License at
  10 + *
  11 + * http://www.apache.org/licenses/LICENSE-2.0
  12 + *
  13 + * Unless required by applicable law or agreed to in writing, software
  14 + * distributed under the License is distributed on an "AS IS" BASIS,
  15 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  16 + * See the License for the specific language governing permissions and
  17 + * limitations under the License.
  18 + *
  19 + */
  20 +
  21 +#include <dali-toolkit/public-api/controls/scrollable/item-view/item-factory.h>
  22 +
  23 +/**
  24 + * @brief Factory used to create the items required in the item-view used by this example.
  25 + */
  26 +class ClippingItemFactory : public Dali::Toolkit::ItemFactory
  27 +{
  28 +public:
  29 +
  30 + /**
  31 + * @brief Constructor
  32 + */
  33 + ClippingItemFactory();
  34 +
  35 +private: // From ItemFactory
  36 +
  37 + /**
  38 + * Query the number of items available from the factory.
  39 + * The maximum available item has an ID of GetNumberOfItems() - 1.
  40 + */
  41 + virtual unsigned int GetNumberOfItems();
  42 +
  43 + /**
  44 + * Create an Actor to represent a visible item.
  45 + * @param itemId
  46 + * @return the created actor.
  47 + */
  48 + virtual Dali::Actor NewItem( unsigned int itemId );
  49 +
  50 +private:
  51 +
  52 + ClippingItemFactory( const ClippingItemFactory& ); ///< Undefined
  53 + ClippingItemFactory& operator=( const ClippingItemFactory& ); ///< Undefined
  54 +};
  55 +
  56 +#endif // CLIPPING_ITEM_FACTORY_H
... ...
resources/po/as.po
... ... @@ -13,6 +13,9 @@ msgstr &quot;বেলুন&quot;
13 13 msgid "DALI_DEMO_STR_TITLE_BUTTONS"
14 14 msgstr "ক্লিক্"
15 15  
  16 +msgid "DALI_DEMO_STR_TITLE_CLIPPING"
  17 +msgstr "Clipping"
  18 +
16 19 msgid "DALI_DEMO_STR_TITLE_COLOR_GRADIENT"
17 20 msgstr "ঝুৰ্"
18 21  
... ...
resources/po/de.po
... ... @@ -13,6 +13,9 @@ msgstr &quot;Schaumbildung&quot;
13 13 msgid "DALI_DEMO_STR_TITLE_BUTTONS"
14 14 msgstr "Tasten"
15 15  
  16 +msgid "DALI_DEMO_STR_TITLE_CLIPPING"
  17 +msgstr "Clipping"
  18 +
16 19 msgid "DALI_DEMO_STR_TITLE_COLOR_GRADIENT"
17 20 msgstr "Farbverlauf"
18 21  
... ...
resources/po/en_GB.po
... ... @@ -13,6 +13,9 @@ msgstr &quot;Bubbles&quot;
13 13 msgid "DALI_DEMO_STR_TITLE_BUTTONS"
14 14 msgstr "Buttons"
15 15  
  16 +msgid "DALI_DEMO_STR_TITLE_CLIPPING"
  17 +msgstr "Clipping"
  18 +
16 19 msgid "DALI_DEMO_STR_TITLE_COLOR_GRADIENT"
17 20 msgstr "Colour Gradient"
18 21  
... ...
resources/po/en_US.po
... ... @@ -13,6 +13,9 @@ msgstr &quot;Bubbles&quot;
13 13 msgid "DALI_DEMO_STR_TITLE_BUTTONS"
14 14 msgstr "Buttons"
15 15  
  16 +msgid "DALI_DEMO_STR_TITLE_CLIPPING"
  17 +msgstr "Clipping"
  18 +
16 19 msgid "DALI_DEMO_STR_TITLE_COLOR_GRADIENT"
17 20 msgstr "Color Gradient"
18 21  
... ...
resources/po/es.po
... ... @@ -13,6 +13,9 @@ msgstr &quot;Burbujas&quot;
13 13 msgid "DALI_DEMO_STR_TITLE_BUTTONS"
14 14 msgstr "Botones"
15 15  
  16 +msgid "DALI_DEMO_STR_TITLE_CLIPPING"
  17 +msgstr "Recorte"
  18 +
16 19 msgid "DALI_DEMO_STR_TITLE_COLOR_GRADIENT"
17 20 msgstr "Gradiente de color"
18 21  
... ...
resources/po/fi.po
... ... @@ -13,6 +13,9 @@ msgstr &quot;Kuplat&quot;
13 13 msgid "DALI_DEMO_STR_TITLE_BUTTONS"
14 14 msgstr "Painikkeet"
15 15  
  16 +msgid "DALI_DEMO_STR_TITLE_CLIPPING"
  17 +msgstr "Leikkaaminen"
  18 +
16 19 msgid "DALI_DEMO_STR_TITLE_COLOR_GRADIENT"
17 20 msgstr "Liukuväri"
18 21  
... ...
resources/po/ko.po
1 1 msgid "DALI_DEMO_STR_TITLE_ANIMATED_IMAGES"
2 2 msgstr "애니메이션 이미지"
3 3  
4   -
5 4 msgid "DALI_DEMO_STR_TITLE_ANIMATED_SHAPES"
6 5 msgstr "애니메이션 모양"
7 6  
... ... @@ -14,6 +13,9 @@ msgstr &quot;방울&quot;
14 13 msgid "DALI_DEMO_STR_TITLE_BUTTONS"
15 14 msgstr "버튼"
16 15  
  16 +msgid "DALI_DEMO_STR_TITLE_CLIPPING"
  17 +msgstr "깎는"
  18 +
17 19 msgid "DALI_DEMO_STR_TITLE_COLOR_GRADIENT"
18 20 msgstr "색상 그라디언트"
19 21  
... ...
resources/po/ml.po
... ... @@ -13,6 +13,9 @@ msgstr &quot;കുമിള&quot;
13 13 msgid "DALI_DEMO_STR_TITLE_BUTTONS"
14 14 msgstr "ബട്ടണുകൾ"
15 15  
  16 +msgid "DALI_DEMO_STR_TITLE_CLIPPING"
  17 +msgstr "ക്ലിപ്പിംഗ്"
  18 +
16 19 msgid "DALI_DEMO_STR_TITLE_COLOR_GRADIENT"
17 20 msgstr "വർണ്ണ ഗ്രേഡിയന്റ്"
18 21  
... ...
resources/po/ur.po
... ... @@ -13,6 +13,9 @@ msgstr &quot;بلبلے&quot;
13 13 msgid "DALI_DEMO_STR_TITLE_BUTTONS"
14 14 msgstr "بٹنوں"
15 15  
  16 +msgid "DALI_DEMO_STR_TITLE_CLIPPING"
  17 +msgstr "کاٹنا"
  18 +
16 19 msgid "DALI_DEMO_STR_TITLE_COLOR_GRADIENT"
17 20 msgstr "رنگ میلان"
18 21  
... ...
resources/po/zn_CH.po
... ... @@ -13,6 +13,9 @@ msgstr &quot;气泡&quot;
13 13 msgid "DALI_DEMO_STR_TITLE_BUTTONS"
14 14 msgstr "按钮"
15 15  
  16 +msgid "DALI_DEMO_STR_TITLE_CLIPPING"
  17 +msgstr "剪裁"
  18 +
16 19 msgid "DALI_DEMO_STR_TITLE_COLOR_GRADIENT"
17 20 msgstr "颜色梯度"
18 21  
... ...
shared/dali-demo-strings.h
1 1 /*
2   - * Copyright (c) 2016 Samsung Electronics Co., Ltd.
  2 + * Copyright (c) 2017 Samsung Electronics Co., Ltd.
3 3 *
4 4 * Licensed under the Apache License, Version 2.0 (the "License");
5 5 * you may not use this file except in compliance with the License.
... ... @@ -37,6 +37,7 @@ extern &quot;C&quot;
37 37 #define DALI_DEMO_STR_TITLE_BLOCKS dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_BLOCKS")
38 38 #define DALI_DEMO_STR_TITLE_BUBBLES dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_BUBBLES")
39 39 #define DALI_DEMO_STR_TITLE_BUTTONS dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_BUTTONS")
  40 +#define DALI_DEMO_STR_TITLE_CLIPPING dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_CLIPPING")
40 41 #define DALI_DEMO_STR_TITLE_COLOR_GRADIENT dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_COLOR_GRADIENT")
41 42 #define DALI_DEMO_STR_TITLE_CONTACT_CARDS dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_CONTACT_CARDS")
42 43 #define DALI_DEMO_STR_TITLE_CUBE_TRANSITION dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_CUBE_TRANSITION")
... ... @@ -93,6 +94,7 @@ extern &quot;C&quot;
93 94 #define DALI_DEMO_STR_TITLE_BLOCKS "Blocks"
94 95 #define DALI_DEMO_STR_TITLE_BUBBLES "Bubbles"
95 96 #define DALI_DEMO_STR_TITLE_BUTTONS "Buttons"
  97 +#define DALI_DEMO_STR_TITLE_CLIPPING "Clipping"
96 98 #define DALI_DEMO_STR_TITLE_COLOR_GRADIENT "Color Gradient"
97 99 #define DALI_DEMO_STR_TITLE_CONTACT_CARDS "Contact Cards"
98 100 #define DALI_DEMO_STR_TITLE_CUBE_TRANSITION "Cube Effect"
... ...