Commit 065f23c98a05577a4f7052aa4ae910bd9d00c0a4
[dali_1.0.43] Merge branch 'tizen'
Change-Id: I3f5e19c1e72727115078bedd42037e66eac878e2
Showing
18 changed files
with
229 additions
and
254 deletions
com.samsung.dali-demo.xml
| @@ -86,7 +86,7 @@ | @@ -86,7 +86,7 @@ | ||
| 86 | <label>Emojis Text Label</label> | 86 | <label>Emojis Text Label</label> |
| 87 | </ui-application> | 87 | </ui-application> |
| 88 | <ui-application appid="text-field.example" exec="/usr/apps/com.samsung.dali-demo/bin/text-field.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true"> | 88 | <ui-application appid="text-field.example" exec="/usr/apps/com.samsung.dali-demo/bin/text-field.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true"> |
| 89 | - <label>Text Label</label> | 89 | + <label>Text Field</label> |
| 90 | </ui-application> | 90 | </ui-application> |
| 91 | <ui-application appid="text-message-field.example" exec="/usr/apps/com.samsung.dali-demo/bin/text-message-field.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true"> | 91 | <ui-application appid="text-message-field.example" exec="/usr/apps/com.samsung.dali-demo/bin/text-message-field.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true"> |
| 92 | <label>Text Label</label> | 92 | <label>Text Label</label> |
demo/dali-demo.cpp
| @@ -53,6 +53,7 @@ int main(int argc, char **argv) | @@ -53,6 +53,7 @@ int main(int argc, char **argv) | ||
| 53 | demo.AddExample(Example("builder.example", DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI)); | 53 | demo.AddExample(Example("builder.example", DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI)); |
| 54 | demo.AddExample(Example("image-scaling-and-filtering.example", DALI_DEMO_STR_TITLE_IMAGE_FITTING_SAMPLING)); | 54 | demo.AddExample(Example("image-scaling-and-filtering.example", DALI_DEMO_STR_TITLE_IMAGE_FITTING_SAMPLING)); |
| 55 | demo.AddExample(Example("image-scaling-irregular-grid.example", DALI_DEMO_STR_TITLE_IMAGE_SCALING)); | 55 | demo.AddExample(Example("image-scaling-irregular-grid.example", DALI_DEMO_STR_TITLE_IMAGE_SCALING)); |
| 56 | + demo.AddExample(Example("text-field.example", DALI_DEMO_STR_TITLE_TEXT_FIELD)); | ||
| 56 | demo.AddExample(Example("text-label.example", DALI_DEMO_STR_TITLE_TEXT_LABEL)); | 57 | demo.AddExample(Example("text-label.example", DALI_DEMO_STR_TITLE_TEXT_LABEL)); |
| 57 | demo.AddExample(Example("text-label-multi-language.example", DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE)); | 58 | demo.AddExample(Example("text-label-multi-language.example", DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE)); |
| 58 | demo.AddExample(Example("text-label-emojis.example", DALI_DEMO_STR_TITLE_EMOJI_TEXT)); | 59 | demo.AddExample(Example("text-label-emojis.example", DALI_DEMO_STR_TITLE_EMOJI_TEXT)); |
demo/dali-table-view.cpp
| @@ -387,12 +387,12 @@ void DaliTableView::Populate() | @@ -387,12 +387,12 @@ void DaliTableView::Populate() | ||
| 387 | const Example& example = ( *iter ); | 387 | const Example& example = ( *iter ); |
| 388 | 388 | ||
| 389 | Actor tile = CreateTile( example.name, example.title, Vector3( tileParentMultiplier, tileParentMultiplier, 1.0f ), true ); | 389 | Actor tile = CreateTile( example.name, example.title, Vector3( tileParentMultiplier, tileParentMultiplier, 1.0f ), true ); |
| 390 | - FocusManager focusManager = FocusManager::Get(); | ||
| 391 | - focusManager.SetFocusOrder( tile, ++exampleCount ); | ||
| 392 | - focusManager.SetAccessibilityAttribute( tile, Dali::Toolkit::FocusManager::ACCESSIBILITY_LABEL, | 390 | + AccessibilityFocusManager accessibilityFocusManager = AccessibilityFocusManager::Get(); |
| 391 | + accessibilityFocusManager.SetFocusOrder( tile, ++exampleCount ); | ||
| 392 | + accessibilityFocusManager.SetAccessibilityAttribute( tile, Dali::Toolkit::AccessibilityFocusManager::ACCESSIBILITY_LABEL, | ||
| 393 | example.title ); | 393 | example.title ); |
| 394 | - focusManager.SetAccessibilityAttribute( tile, Dali::Toolkit::FocusManager::ACCESSIBILITY_TRAIT, "Tile" ); | ||
| 395 | - focusManager.SetAccessibilityAttribute( tile, Dali::Toolkit::FocusManager::ACCESSIBILITY_HINT, | 394 | + accessibilityFocusManager.SetAccessibilityAttribute( tile, Dali::Toolkit::AccessibilityFocusManager::ACCESSIBILITY_TRAIT, "Tile" ); |
| 395 | + accessibilityFocusManager.SetAccessibilityAttribute( tile, Dali::Toolkit::AccessibilityFocusManager::ACCESSIBILITY_HINT, | ||
| 396 | "You can run this example" ); | 396 | "You can run this example" ); |
| 397 | 397 | ||
| 398 | tile.SetPadding( Padding( margin, margin, margin, margin ) ); | 398 | tile.SetPadding( Padding( margin, margin, margin, margin ) ); |
| @@ -551,7 +551,7 @@ bool DaliTableView::OnTilePressed( Actor actor, const TouchEvent& event ) | @@ -551,7 +551,7 @@ bool DaliTableView::OnTilePressed( Actor actor, const TouchEvent& event ) | ||
| 551 | std::string name = actor.GetName(); | 551 | std::string name = actor.GetName(); |
| 552 | ExampleMapConstIter iter = mExampleMap.find( name ); | 552 | ExampleMapConstIter iter = mExampleMap.find( name ); |
| 553 | 553 | ||
| 554 | - FocusManager focusManager = FocusManager::Get(); | 554 | + AccessibilityFocusManager accessibilityFocusManager = AccessibilityFocusManager::Get(); |
| 555 | 555 | ||
| 556 | if( iter != mExampleMap.end() ) | 556 | if( iter != mExampleMap.end() ) |
| 557 | { | 557 | { |
| @@ -594,11 +594,11 @@ void DaliTableView::OnPressedAnimationFinished( Dali::Animation& source ) | @@ -594,11 +594,11 @@ void DaliTableView::OnPressedAnimationFinished( Dali::Animation& source ) | ||
| 594 | if( name == BUTTON_QUIT ) | 594 | if( name == BUTTON_QUIT ) |
| 595 | { | 595 | { |
| 596 | // Move focus to the OK button | 596 | // Move focus to the OK button |
| 597 | - FocusManager focusManager = FocusManager::Get(); | 597 | + AccessibilityFocusManager accessibilityFocusManager = AccessibilityFocusManager::Get(); |
| 598 | 598 | ||
| 599 | // Enable the group mode and wrap mode | 599 | // Enable the group mode and wrap mode |
| 600 | - focusManager.SetGroupMode( true ); | ||
| 601 | - focusManager.SetWrapMode( true ); | 600 | + accessibilityFocusManager.SetGroupMode( true ); |
| 601 | + accessibilityFocusManager.SetWrapMode( true ); | ||
| 602 | } | 602 | } |
| 603 | } | 603 | } |
| 604 | else | 604 | else |
| @@ -630,8 +630,8 @@ void DaliTableView::OnScrollComplete( const Dali::Vector2& position ) | @@ -630,8 +630,8 @@ void DaliTableView::OnScrollComplete( const Dali::Vector2& position ) | ||
| 630 | mScrolling = false; | 630 | mScrolling = false; |
| 631 | 631 | ||
| 632 | // move focus to 1st item of new page | 632 | // move focus to 1st item of new page |
| 633 | - FocusManager focusManager = FocusManager::Get(); | ||
| 634 | - focusManager.SetCurrentFocusActor(mPages[mScrollView.GetCurrentPage()].GetChildAt(0) ); | 633 | + AccessibilityFocusManager accessibilityFocusManager = AccessibilityFocusManager::Get(); |
| 634 | + accessibilityFocusManager.SetCurrentFocusActor(mPages[mScrollView.GetCurrentPage()].GetChildAt(0) ); | ||
| 635 | } | 635 | } |
| 636 | 636 | ||
| 637 | bool DaliTableView::OnScrollTouched( Actor actor, const TouchEvent& event ) | 637 | bool DaliTableView::OnScrollTouched( Actor actor, const TouchEvent& event ) |
| @@ -890,7 +890,7 @@ void DaliTableView::PlayAnimation() | @@ -890,7 +890,7 @@ void DaliTableView::PlayAnimation() | ||
| 890 | mAnimationTimer.SetInterval( BACKGROUND_ANIMATION_DURATION ); | 890 | mAnimationTimer.SetInterval( BACKGROUND_ANIMATION_DURATION ); |
| 891 | } | 891 | } |
| 892 | 892 | ||
| 893 | -Dali::Actor DaliTableView::OnKeyboardPreFocusChange( Dali::Actor current, Dali::Actor proposed, Dali::Toolkit::Control::KeyboardFocusNavigationDirection direction ) | 893 | +Dali::Actor DaliTableView::OnKeyboardPreFocusChange( Dali::Actor current, Dali::Actor proposed, Dali::Toolkit::Control::KeyboardFocus::Direction direction ) |
| 894 | { | 894 | { |
| 895 | Actor nextFocusActor = proposed; | 895 | Actor nextFocusActor = proposed; |
| 896 | 896 | ||
| @@ -905,22 +905,22 @@ Dali::Actor DaliTableView::OnKeyboardPreFocusChange( Dali::Actor current, Dali:: | @@ -905,22 +905,22 @@ Dali::Actor DaliTableView::OnKeyboardPreFocusChange( Dali::Actor current, Dali:: | ||
| 905 | // in the given direction. We should work out which page to scroll to next. | 905 | // in the given direction. We should work out which page to scroll to next. |
| 906 | int currentPage = mScrollView.GetCurrentPage(); | 906 | int currentPage = mScrollView.GetCurrentPage(); |
| 907 | int newPage = currentPage; | 907 | int newPage = currentPage; |
| 908 | - if( direction == Dali::Toolkit::Control::Left ) | 908 | + if( direction == Dali::Toolkit::Control::KeyboardFocus::LEFT ) |
| 909 | { | 909 | { |
| 910 | newPage--; | 910 | newPage--; |
| 911 | } | 911 | } |
| 912 | - else if( direction == Dali::Toolkit::Control::Right ) | 912 | + else if( direction == Dali::Toolkit::Control::KeyboardFocus::RIGHT ) |
| 913 | { | 913 | { |
| 914 | newPage++; | 914 | newPage++; |
| 915 | } | 915 | } |
| 916 | 916 | ||
| 917 | - newPage = std::max(0, std::min(static_cast<int>(mScrollRulerX->GetTotalPages() - 1), newPage)); | 917 | + newPage = std::max(0, std::min(mTotalPages - 1, newPage)); |
| 918 | if( newPage == currentPage ) | 918 | if( newPage == currentPage ) |
| 919 | { | 919 | { |
| 920 | - if( direction == Dali::Toolkit::Control::Left ) | 920 | + if( direction == Dali::Toolkit::Control::KeyboardFocus::LEFT ) |
| 921 | { | 921 | { |
| 922 | - newPage = mScrollRulerX->GetTotalPages() - 1; | ||
| 923 | - } else if( direction == Dali::Toolkit::Control::Right ) | 922 | + newPage = mTotalPages - 1; |
| 923 | + } else if( direction == Dali::Toolkit::Control::KeyboardFocus::RIGHT ) | ||
| 924 | { | 924 | { |
| 925 | newPage = 0; | 925 | newPage = 0; |
| 926 | } | 926 | } |
| @@ -929,7 +929,7 @@ Dali::Actor DaliTableView::OnKeyboardPreFocusChange( Dali::Actor current, Dali:: | @@ -929,7 +929,7 @@ Dali::Actor DaliTableView::OnKeyboardPreFocusChange( Dali::Actor current, Dali:: | ||
| 929 | // Scroll to the page in the given direction | 929 | // Scroll to the page in the given direction |
| 930 | mScrollView.ScrollTo(newPage); | 930 | mScrollView.ScrollTo(newPage); |
| 931 | 931 | ||
| 932 | - if( direction == Dali::Toolkit::Control::Left ) | 932 | + if( direction == Dali::Toolkit::Control::KeyboardFocus::LEFT ) |
| 933 | { | 933 | { |
| 934 | // Work out the cell position for the last tile | 934 | // Work out the cell position for the last tile |
| 935 | int remainingExamples = mExampleList.size() - newPage * EXAMPLES_PER_PAGE; | 935 | int remainingExamples = mExampleList.size() - newPage * EXAMPLES_PER_PAGE; |
| @@ -937,7 +937,7 @@ Dali::Actor DaliTableView::OnKeyboardPreFocusChange( Dali::Actor current, Dali:: | @@ -937,7 +937,7 @@ Dali::Actor DaliTableView::OnKeyboardPreFocusChange( Dali::Actor current, Dali:: | ||
| 937 | int colPos = remainingExamples >= EXAMPLES_PER_PAGE ? EXAMPLES_PER_ROW - 1 : ( remainingExamples % EXAMPLES_PER_PAGE - rowPos * EXAMPLES_PER_ROW - 1 ); | 937 | int colPos = remainingExamples >= EXAMPLES_PER_PAGE ? EXAMPLES_PER_ROW - 1 : ( remainingExamples % EXAMPLES_PER_PAGE - rowPos * EXAMPLES_PER_ROW - 1 ); |
| 938 | 938 | ||
| 939 | // Move the focus to the last tile in the new page. | 939 | // Move the focus to the last tile in the new page. |
| 940 | - nextFocusActor = mPages[newPage].GetChildAt(colPos * EXAMPLES_PER_ROW + rowPos); | 940 | + nextFocusActor = mPages[newPage].GetChildAt(rowPos * EXAMPLES_PER_ROW + colPos); |
| 941 | } | 941 | } |
| 942 | else | 942 | else |
| 943 | { | 943 | { |
demo/dali-table-view.h
| @@ -345,7 +345,7 @@ private: // Application callbacks & implementation | @@ -345,7 +345,7 @@ private: // Application callbacks & implementation | ||
| 345 | * @param[in] direction The direction to move the focus | 345 | * @param[in] direction The direction to move the focus |
| 346 | * @return The actor to move the keyboard focus to. | 346 | * @return The actor to move the keyboard focus to. |
| 347 | */ | 347 | */ |
| 348 | - Dali::Actor OnKeyboardPreFocusChange( Dali::Actor current, Dali::Actor proposed, Dali::Toolkit::Control::KeyboardFocusNavigationDirection direction ); | 348 | + Dali::Actor OnKeyboardPreFocusChange( Dali::Actor current, Dali::Actor proposed, Dali::Toolkit::Control::KeyboardFocus::Direction direction ); |
| 349 | 349 | ||
| 350 | /** | 350 | /** |
| 351 | * Callback when the keyboard focused actor is activated. | 351 | * Callback when the keyboard focused actor is activated. |
examples/animated-shapes/animated-shapes-example.cpp
| @@ -55,11 +55,12 @@ public: | @@ -55,11 +55,12 @@ public: | ||
| 55 | // Get a handle to the stage | 55 | // Get a handle to the stage |
| 56 | Stage stage = Stage::GetCurrent(); | 56 | Stage stage = Stage::GetCurrent(); |
| 57 | 57 | ||
| 58 | - //Create a view | 58 | + // Create a view |
| 59 | mView = Dali::Toolkit::Control::New(); | 59 | mView = Dali::Toolkit::Control::New(); |
| 60 | mView.SetAnchorPoint( Dali::AnchorPoint::CENTER ); | 60 | mView.SetAnchorPoint( Dali::AnchorPoint::CENTER ); |
| 61 | mView.SetParentOrigin( Dali::ParentOrigin::CENTER ); | 61 | mView.SetParentOrigin( Dali::ParentOrigin::CENTER ); |
| 62 | mView.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); | 62 | mView.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); |
| 63 | + mView.SetDrawMode( DrawMode::OVERLAY ); | ||
| 63 | stage.Add( mView ); | 64 | stage.Add( mView ); |
| 64 | 65 | ||
| 65 | //Set background image for the view | 66 | //Set background image for the view |
examples/cluster/cluster-impl.cpp
| @@ -23,7 +23,9 @@ | @@ -23,7 +23,9 @@ | ||
| 23 | #include <cstring> // for strcmp | 23 | #include <cstring> // for strcmp |
| 24 | #include <dali/public-api/animation/animation.h> | 24 | #include <dali/public-api/animation/animation.h> |
| 25 | #include <dali/public-api/object/type-registry.h> | 25 | #include <dali/public-api/object/type-registry.h> |
| 26 | +#include <dali/public-api/object/property-array.h> | ||
| 26 | #include <dali/devel-api/object/type-registry-helper.h> | 27 | #include <dali/devel-api/object/type-registry-helper.h> |
| 28 | +#include <dali/devel-api/scripting/scripting.h> | ||
| 27 | #include <dali/integration-api/debug.h> | 29 | #include <dali/integration-api/debug.h> |
| 28 | 30 | ||
| 29 | // INTERNAL INCLUDES | 31 | // INTERNAL INCLUDES |
| @@ -475,17 +477,21 @@ void Cluster::UpdateTitle(float duration) | @@ -475,17 +477,21 @@ void Cluster::UpdateTitle(float duration) | ||
| 475 | } | 477 | } |
| 476 | } | 478 | } |
| 477 | 479 | ||
| 478 | -void Cluster::DoExpandAction(const PropertyValueContainer& attributes) | 480 | +void Cluster::DoExpandAction(const Property::Map& attributes) |
| 479 | { | 481 | { |
| 480 | - if(attributes.size() >= 1) | 482 | + Property::Value* value = attributes.Find( "indices" ); |
| 483 | + | ||
| 484 | + if( value ) | ||
| 481 | { | 485 | { |
| 482 | - for(PropertyValueConstIter iter = attributes.begin(); iter != attributes.end(); ++iter) | 486 | + if( value->GetType() == Property::ARRAY ) |
| 483 | { | 487 | { |
| 484 | - const Property::Value& value = *iter; | ||
| 485 | - | ||
| 486 | - DALI_ASSERT_ALWAYS(value.GetType() == Property::FLOAT); | ||
| 487 | - unsigned int index = value.Get<float>(); | ||
| 488 | - ExpandChild( index ); | 488 | + Property::Array array = value->Get<Property::Array>(); |
| 489 | + for( size_t i = 0; i < array.Size(); i++ ) | ||
| 490 | + { | ||
| 491 | + Property::Value& item = array[i]; | ||
| 492 | + DALI_ASSERT_ALWAYS(item.GetType() == Property::INTEGER); | ||
| 493 | + ExpandChild( item.Get<int>() ); | ||
| 494 | + } | ||
| 489 | } | 495 | } |
| 490 | } | 496 | } |
| 491 | else | 497 | else |
| @@ -494,17 +500,21 @@ void Cluster::DoExpandAction(const PropertyValueContainer& attributes) | @@ -494,17 +500,21 @@ void Cluster::DoExpandAction(const PropertyValueContainer& attributes) | ||
| 494 | } | 500 | } |
| 495 | } | 501 | } |
| 496 | 502 | ||
| 497 | -void Cluster::DoCollapseAction(const PropertyValueContainer& attributes) | 503 | +void Cluster::DoCollapseAction(const Property::Map& attributes) |
| 498 | { | 504 | { |
| 499 | - if(attributes.size() >= 1) | 505 | + Property::Value* value = attributes.Find( "indices" ); |
| 506 | + | ||
| 507 | + if( value ) | ||
| 500 | { | 508 | { |
| 501 | - for(PropertyValueConstIter iter = attributes.begin(); iter != attributes.end(); ++iter) | 509 | + if( value->GetType() == Property::ARRAY ) |
| 502 | { | 510 | { |
| 503 | - const Property::Value& value = *iter; | ||
| 504 | - | ||
| 505 | - DALI_ASSERT_ALWAYS(value.GetType() == Property::FLOAT); | ||
| 506 | - unsigned int index = value.Get<float>(); | ||
| 507 | - CollapseChild( index, false ); | 511 | + Property::Array array = value->Get<Property::Array>(); |
| 512 | + for( size_t i = 0; i < array.Size(); i++ ) | ||
| 513 | + { | ||
| 514 | + Property::Value& item = array[i]; | ||
| 515 | + DALI_ASSERT_ALWAYS(item.GetType() == Property::INTEGER); | ||
| 516 | + CollapseChild( item.Get<int>(), false ); | ||
| 517 | + } | ||
| 508 | } | 518 | } |
| 509 | } | 519 | } |
| 510 | else | 520 | else |
| @@ -513,27 +523,33 @@ void Cluster::DoCollapseAction(const PropertyValueContainer& attributes) | @@ -513,27 +523,33 @@ void Cluster::DoCollapseAction(const PropertyValueContainer& attributes) | ||
| 513 | } | 523 | } |
| 514 | } | 524 | } |
| 515 | 525 | ||
| 516 | -void Cluster::DoTransformAction(const PropertyValueContainer& attributes) | 526 | + |
| 527 | +void Cluster::DoTransformAction(const Property::Map& attributes) | ||
| 517 | { | 528 | { |
| 518 | - DALI_ASSERT_ALWAYS(attributes.size() >= 2); | 529 | + typedef Dali::StringValuePair StringValuePair; |
| 519 | 530 | ||
| 520 | - DALI_ASSERT_ALWAYS(attributes[0].GetType() == Property::FLOAT); | ||
| 521 | - unsigned int index = attributes[0].Get<float>(); | 531 | + int index = 0; |
| 522 | Vector3 position; | 532 | Vector3 position; |
| 523 | Vector3 scale(Vector3::ONE); | 533 | Vector3 scale(Vector3::ONE); |
| 524 | Quaternion rotation( Dali::ANGLE_0, Vector3::ZAXIS ); | 534 | Quaternion rotation( Dali::ANGLE_0, Vector3::ZAXIS ); |
| 525 | 535 | ||
| 526 | - DALI_ASSERT_ALWAYS(attributes[1].GetType() == Property::VECTOR3); | ||
| 527 | - attributes[1].Get(position); | ||
| 528 | - | ||
| 529 | - if(attributes.size()>2) | 536 | + for(size_t i = 0; i < attributes.Count(); i++) |
| 530 | { | 537 | { |
| 531 | - attributes[2].Get(scale); | ||
| 532 | - } | 538 | + StringValuePair& stringValue = attributes.GetPair(i); |
| 539 | + Property::Type type = stringValue.second.GetType(); | ||
| 533 | 540 | ||
| 534 | - if(attributes.size()>3) | ||
| 535 | - { | ||
| 536 | - attributes[3].Get(rotation); | 541 | + if( Property::VECTOR3 == type && "position" == stringValue.first ) |
| 542 | + { | ||
| 543 | + stringValue.second.Get(position); | ||
| 544 | + } | ||
| 545 | + else if( Property::VECTOR3 == type && "scale" == stringValue.first ) | ||
| 546 | + { | ||
| 547 | + stringValue.second.Get(scale); | ||
| 548 | + } | ||
| 549 | + else if( "rotation" == stringValue.first ) | ||
| 550 | + { | ||
| 551 | + (void)Scripting::SetRotation(stringValue.second, rotation); | ||
| 552 | + } | ||
| 537 | } | 553 | } |
| 538 | 554 | ||
| 539 | // wrap index around -1 => size - 1 | 555 | // wrap index around -1 => size - 1 |
| @@ -547,7 +563,7 @@ void Cluster::OnControlChildRemove(Actor& child) | @@ -547,7 +563,7 @@ void Cluster::OnControlChildRemove(Actor& child) | ||
| 547 | child.RemoveConstraints(); | 563 | child.RemoveConstraints(); |
| 548 | } | 564 | } |
| 549 | 565 | ||
| 550 | -bool Cluster::DoAction(BaseObject* object, const std::string& actionName, const PropertyValueContainer& attributes) | 566 | +bool Cluster::DoAction(BaseObject* object, const std::string& actionName, const Property::Map& attributes) |
| 551 | { | 567 | { |
| 552 | bool ret = false; | 568 | bool ret = false; |
| 553 | 569 |
examples/cluster/cluster-impl.h
| @@ -212,7 +212,7 @@ private: | @@ -212,7 +212,7 @@ private: | ||
| 212 | * @param[in] attributes list of indices of actors to expand. | 212 | * @param[in] attributes list of indices of actors to expand. |
| 213 | * (if no attributes specifies, then all actors expand) | 213 | * (if no attributes specifies, then all actors expand) |
| 214 | */ | 214 | */ |
| 215 | - void DoExpandAction(const PropertyValueContainer& attributes); | 215 | + void DoExpandAction(const Property::Map& attributes); |
| 216 | 216 | ||
| 217 | /** | 217 | /** |
| 218 | * Action: Collapse | 218 | * Action: Collapse |
| @@ -221,7 +221,7 @@ private: | @@ -221,7 +221,7 @@ private: | ||
| 221 | * @param[in] attributes list of indices of actors to collapse. | 221 | * @param[in] attributes list of indices of actors to collapse. |
| 222 | * (if no attributes specifies, then all actors collapse) | 222 | * (if no attributes specifies, then all actors collapse) |
| 223 | */ | 223 | */ |
| 224 | - void DoCollapseAction(const PropertyValueContainer& attributes); | 224 | + void DoCollapseAction(const Property::Map& attributes); |
| 225 | 225 | ||
| 226 | /** | 226 | /** |
| 227 | * Action: Transform | 227 | * Action: Transform |
| @@ -230,7 +230,7 @@ private: | @@ -230,7 +230,7 @@ private: | ||
| 230 | * | 230 | * |
| 231 | * @param[in] attributes index and transform values. | 231 | * @param[in] attributes index and transform values. |
| 232 | */ | 232 | */ |
| 233 | - void DoTransformAction(const PropertyValueContainer& attributes); | 233 | + void DoTransformAction(const Property::Map& attributes); |
| 234 | 234 | ||
| 235 | private: // From Control | 235 | private: // From Control |
| 236 | /** | 236 | /** |
| @@ -248,7 +248,7 @@ public: | @@ -248,7 +248,7 @@ public: | ||
| 248 | * @param[in] attributes The attributes with which to perfrom this action. | 248 | * @param[in] attributes The attributes with which to perfrom this action. |
| 249 | * @return true if action has been accepted by this control | 249 | * @return true if action has been accepted by this control |
| 250 | */ | 250 | */ |
| 251 | - static bool DoAction(BaseObject* object, const std::string& actionName, const PropertyValueContainer& attributes); | 251 | + static bool DoAction(BaseObject* object, const std::string& actionName, const Property::Map& attributes); |
| 252 | 252 | ||
| 253 | private: // From Control | 253 | private: // From Control |
| 254 | 254 |
examples/item-view/item-view-example.cpp
| @@ -313,7 +313,7 @@ public: | @@ -313,7 +313,7 @@ public: | ||
| 313 | mWhiteImage = BufferImage::WHITE(); | 313 | mWhiteImage = BufferImage::WHITE(); |
| 314 | } | 314 | } |
| 315 | 315 | ||
| 316 | - Actor OnKeyboardPreFocusChange( Actor current, Actor proposed, Control::KeyboardFocusNavigationDirection direction ) | 316 | + Actor OnKeyboardPreFocusChange( Actor current, Actor proposed, Control::KeyboardFocus::Direction direction ) |
| 317 | { | 317 | { |
| 318 | if ( !current && !proposed ) | 318 | if ( !current && !proposed ) |
| 319 | { | 319 | { |
examples/path-animation/path-animation.cpp
| @@ -140,8 +140,6 @@ public: | @@ -140,8 +140,6 @@ public: | ||
| 140 | */ | 140 | */ |
| 141 | void DrawPath( unsigned int resolution ) | 141 | void DrawPath( unsigned int resolution ) |
| 142 | { | 142 | { |
| 143 | - Stage stage = Dali::Stage::GetCurrent(); | ||
| 144 | - | ||
| 145 | //Create path mesh actor | 143 | //Create path mesh actor |
| 146 | Dali::MeshData meshData = MeshFactory::NewPath( mPath, resolution ); | 144 | Dali::MeshData meshData = MeshFactory::NewPath( mPath, resolution ); |
| 147 | Dali::Material material = Material::New("LineMaterial"); | 145 | Dali::Material material = Material::New("LineMaterial"); |
| @@ -150,12 +148,12 @@ public: | @@ -150,12 +148,12 @@ public: | ||
| 150 | Dali::Mesh mesh = Dali::Mesh::New( meshData ); | 148 | Dali::Mesh mesh = Dali::Mesh::New( meshData ); |
| 151 | if( mMeshPath ) | 149 | if( mMeshPath ) |
| 152 | { | 150 | { |
| 153 | - stage.Remove( mMeshPath ); | 151 | + mContentLayer.Remove( mMeshPath ); |
| 154 | } | 152 | } |
| 155 | mMeshPath = Dali::MeshActor::New( mesh ); | 153 | mMeshPath = Dali::MeshActor::New( mesh ); |
| 156 | mMeshPath.SetAnchorPoint( AnchorPoint::TOP_LEFT ); | 154 | mMeshPath.SetAnchorPoint( AnchorPoint::TOP_LEFT ); |
| 157 | mMeshPath.SetParentOrigin( ParentOrigin::TOP_LEFT ); | 155 | mMeshPath.SetParentOrigin( ParentOrigin::TOP_LEFT ); |
| 158 | - stage.Add( mMeshPath ); | 156 | + mContentLayer.Add( mMeshPath ); |
| 159 | 157 | ||
| 160 | 158 | ||
| 161 | ////Create mesh connecting interpolation points and control points | 159 | ////Create mesh connecting interpolation points and control points |
| @@ -192,12 +190,12 @@ public: | @@ -192,12 +190,12 @@ public: | ||
| 192 | mesh = Dali::Mesh::New( meshData ); | 190 | mesh = Dali::Mesh::New( meshData ); |
| 193 | if( mMeshHandlers ) | 191 | if( mMeshHandlers ) |
| 194 | { | 192 | { |
| 195 | - stage.Remove( mMeshHandlers ); | 193 | + mContentLayer.Remove( mMeshHandlers ); |
| 196 | } | 194 | } |
| 197 | mMeshHandlers = Dali::MeshActor::New( mesh ); | 195 | mMeshHandlers = Dali::MeshActor::New( mesh ); |
| 198 | mMeshHandlers.SetAnchorPoint( AnchorPoint::TOP_LEFT ); | 196 | mMeshHandlers.SetAnchorPoint( AnchorPoint::TOP_LEFT ); |
| 199 | mMeshHandlers.SetParentOrigin( ParentOrigin::TOP_LEFT ); | 197 | mMeshHandlers.SetParentOrigin( ParentOrigin::TOP_LEFT ); |
| 200 | - stage.Add( mMeshHandlers ); | 198 | + mContentLayer.Add( mMeshHandlers ); |
| 201 | 199 | ||
| 202 | 200 | ||
| 203 | //Create actors representing interpolation points | 201 | //Create actors representing interpolation points |
| @@ -456,6 +454,7 @@ public: | @@ -456,6 +454,7 @@ public: | ||
| 456 | BACKGROUND_IMAGE, | 454 | BACKGROUND_IMAGE, |
| 457 | TOOLBAR_IMAGE, | 455 | TOOLBAR_IMAGE, |
| 458 | "" ); | 456 | "" ); |
| 457 | + mContentLayer.SetDrawMode( DrawMode::OVERLAY ); | ||
| 459 | 458 | ||
| 460 | mContentLayer.TouchedSignal().Connect(this, &PathController::OnTouchLayer); | 459 | mContentLayer.TouchedSignal().Connect(this, &PathController::OnTouchLayer); |
| 461 | 460 | ||
| @@ -475,7 +474,7 @@ public: | @@ -475,7 +474,7 @@ public: | ||
| 475 | mActor = ImageActor::New( img ); | 474 | mActor = ImageActor::New( img ); |
| 476 | mActor.SetAnchorPoint( AnchorPoint::CENTER ); | 475 | mActor.SetAnchorPoint( AnchorPoint::CENTER ); |
| 477 | mActor.SetSize( 100, 50, 1 ); | 476 | mActor.SetSize( 100, 50, 1 ); |
| 478 | - stage.Add( mActor ); | 477 | + mContentLayer.Add( mActor ); |
| 479 | 478 | ||
| 480 | CreateAnimation(); | 479 | CreateAnimation(); |
| 481 | CreateControls(); | 480 | CreateControls(); |
examples/text-field/text-field-example.cpp
| @@ -22,7 +22,9 @@ | @@ -22,7 +22,9 @@ | ||
| 22 | 22 | ||
| 23 | // EXTERNAL INCLUDES | 23 | // EXTERNAL INCLUDES |
| 24 | #include <dali-toolkit/dali-toolkit.h> | 24 | #include <dali-toolkit/dali-toolkit.h> |
| 25 | +#include <dali-toolkit/devel-api/controls/popup/popup.h> | ||
| 25 | #include <iostream> | 26 | #include <iostream> |
| 27 | +#include <dali/public-api/events/touch-point.h> | ||
| 26 | 28 | ||
| 27 | // INTERNAL INCLUDES | 29 | // INTERNAL INCLUDES |
| 28 | #include "shared/multi-language-strings.h" | 30 | #include "shared/multi-language-strings.h" |
| @@ -35,38 +37,11 @@ using namespace MultiLanguageStrings; | @@ -35,38 +37,11 @@ using namespace MultiLanguageStrings; | ||
| 35 | namespace | 37 | namespace |
| 36 | { | 38 | { |
| 37 | 39 | ||
| 38 | - const char* const BACKGROUND_IMAGE = DALI_IMAGE_DIR "button-up.9.png"; | 40 | + const char* const FOLDER_ICON_IMAGE = DALI_IMAGE_DIR "folder_appicon_empty_bg.png"; |
| 39 | 41 | ||
| 40 | const float BORDER_WIDTH = 4.0f; | 42 | const float BORDER_WIDTH = 4.0f; |
| 41 | 43 | ||
| 42 | - const unsigned int KEY_ZERO = 10; | ||
| 43 | - const unsigned int KEY_ONE = 11; | ||
| 44 | - const unsigned int KEY_F = 41; | ||
| 45 | - const unsigned int KEY_H = 43; | ||
| 46 | - const unsigned int KEY_V = 55; | ||
| 47 | - const unsigned int KEY_M = 58; | ||
| 48 | - const unsigned int KEY_L = 46; | ||
| 49 | - const unsigned int KEY_S = 39; | ||
| 50 | - const unsigned int KEY_PLUS = 21; | ||
| 51 | - const unsigned int KEY_MINUS = 20; | ||
| 52 | - | ||
| 53 | - const char* H_ALIGNMENT_STRING_TABLE[] = | ||
| 54 | - { | ||
| 55 | - "BEGIN", | ||
| 56 | - "CENTER", | ||
| 57 | - "END" | ||
| 58 | - }; | ||
| 59 | - | ||
| 60 | - const unsigned int H_ALIGNMENT_STRING_COUNT = sizeof( H_ALIGNMENT_STRING_TABLE ) / sizeof( H_ALIGNMENT_STRING_TABLE[0u] ); | ||
| 61 | - | ||
| 62 | - const char* V_ALIGNMENT_STRING_TABLE[] = | ||
| 63 | - { | ||
| 64 | - "TOP", | ||
| 65 | - "CENTER", | ||
| 66 | - "BOTTOM" | ||
| 67 | - }; | ||
| 68 | - | ||
| 69 | - const unsigned int V_ALIGNMENT_STRING_COUNT = sizeof( V_ALIGNMENT_STRING_TABLE ) / sizeof( V_ALIGNMENT_STRING_TABLE[0u] ); | 44 | + const Vector3 POPUP_SIZE_FACTOR_TO_PARENT = Vector3( 0.0, 0.25, 0.0 ); |
| 70 | 45 | ||
| 71 | } // unnamed namespace | 46 | } // unnamed namespace |
| 72 | 47 | ||
| @@ -78,9 +53,7 @@ class TextFieldExample : public ConnectionTracker | @@ -78,9 +53,7 @@ class TextFieldExample : public ConnectionTracker | ||
| 78 | public: | 53 | public: |
| 79 | 54 | ||
| 80 | TextFieldExample( Application& application ) | 55 | TextFieldExample( Application& application ) |
| 81 | - : mApplication( application ), | ||
| 82 | - mLanguageId( 0u ), | ||
| 83 | - mAlignment( 0u ) | 56 | + : mApplication( application ) |
| 84 | { | 57 | { |
| 85 | // Connect to the Application's Init signal | 58 | // Connect to the Application's Init signal |
| 86 | mApplication.InitSignal().Connect( this, &TextFieldExample::Create ); | 59 | mApplication.InitSignal().Connect( this, &TextFieldExample::Create ); |
| @@ -98,40 +71,119 @@ public: | @@ -98,40 +71,119 @@ public: | ||
| 98 | { | 71 | { |
| 99 | Stage stage = Stage::GetCurrent(); | 72 | Stage stage = Stage::GetCurrent(); |
| 100 | 73 | ||
| 101 | - mTapGestureDetector = TapGestureDetector::New(); | ||
| 102 | - mTapGestureDetector.Attach( stage.GetRootLayer() ); | ||
| 103 | - mTapGestureDetector.DetectedSignal().Connect( this, &TextFieldExample::OnTap ); | ||
| 104 | - | 74 | + stage.SetBackgroundColor( Vector4( 0.04f, 0.345f, 0.392f, 1.0f ) ); |
| 105 | stage.KeyEventSignal().Connect(this, &TextFieldExample::OnKeyEvent); | 75 | stage.KeyEventSignal().Connect(this, &TextFieldExample::OnKeyEvent); |
| 106 | 76 | ||
| 77 | + mButton = CreateFolderButton(); | ||
| 78 | + mButton.ClickedSignal().Connect( this, &TextFieldExample::OnButtonClicked ); | ||
| 79 | + stage.Add( mButton ); | ||
| 80 | + } | ||
| 81 | + | ||
| 82 | + PushButton CreateFolderButton() | ||
| 83 | + { | ||
| 84 | + PushButton button = PushButton::New(); | ||
| 85 | + ResourceImage image = ResourceImage::New( FOLDER_ICON_IMAGE ); | ||
| 86 | + ImageActor folderButton = ImageActor::New( image ); | ||
| 87 | + folderButton.SetColor( Color::WHITE ); | ||
| 88 | + button.SetButtonImage( folderButton ); | ||
| 89 | + button.SetAnchorPoint( AnchorPoint::TOP_LEFT ); | ||
| 90 | + button.SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS ); | ||
| 91 | + button.SetSize( image.GetWidth(), image.GetHeight() ); | ||
| 92 | + | ||
| 93 | + return button; | ||
| 94 | + } | ||
| 95 | + | ||
| 96 | + bool OnButtonClicked( Toolkit::Button button ) | ||
| 97 | + { | ||
| 98 | + Stage stage = Stage::GetCurrent(); | ||
| 107 | Vector2 stageSize = stage.GetSize(); | 99 | Vector2 stageSize = stage.GetSize(); |
| 108 | 100 | ||
| 109 | - Control container = Control::New(); | ||
| 110 | - container.SetName( "Container" ); | ||
| 111 | - container.SetParentOrigin( ParentOrigin::CENTER ); | ||
| 112 | - container.SetSize( Vector2(stageSize.width*0.6f, stageSize.width*0.6f) ); | ||
| 113 | - container.SetBackgroundColor( Color::WHITE ); | ||
| 114 | - container.GetChildAt(0).SetZ(-1.0f); | ||
| 115 | - stage.Add( container ); | 101 | + // Launch a pop-up containing TextField |
| 102 | + mField = CreateTextField( stageSize, mButtonLabel ); | ||
| 103 | + mPopup = CreatePopup( stageSize.width * 0.8f ); | ||
| 104 | + mPopup.Add( mField ); | ||
| 105 | + mPopup.OutsideTouchedSignal().Connect( this, &TextFieldExample::OnPopupOutsideTouched ); | ||
| 106 | + mPopup.Show(); | ||
| 107 | + | ||
| 108 | + return true; | ||
| 109 | + } | ||
| 116 | 110 | ||
| 117 | - mField = TextField::New(); | ||
| 118 | - mField.SetAnchorPoint( AnchorPoint::TOP_LEFT ); | ||
| 119 | - mField.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH ); | ||
| 120 | - mField.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT ); | ||
| 121 | - mField.SetProperty( TextField::Property::PLACEHOLDER_TEXT, "Unnamed folder" ); | ||
| 122 | - mField.SetProperty( TextField::Property::PLACEHOLDER_TEXT_FOCUSED, "Enter folder name." ); | ||
| 123 | - mField.SetProperty( TextField::Property::DECORATION_BOUNDING_BOX, Rect<int>( BORDER_WIDTH, BORDER_WIDTH, stageSize.width - BORDER_WIDTH*2, stageSize.height - BORDER_WIDTH*2 ) ); | 111 | + TextField CreateTextField( const Vector2& stageSize, const std::string& text ) |
| 112 | + { | ||
| 113 | + TextField field = TextField::New(); | ||
| 114 | + field.SetAnchorPoint( AnchorPoint::TOP_LEFT ); | ||
| 115 | + field.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH ); | ||
| 116 | + field.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT ); | ||
| 117 | + field.SetProperty( TextField::Property::TEXT, text ); | ||
| 118 | + field.SetProperty( TextField::Property::TEXT_COLOR, Vector4( 0.0f, 1.0f, 1.0f, 1.0f ) ); // CYAN | ||
| 119 | + field.SetProperty( TextField::Property::PLACEHOLDER_TEXT, "Unnamed folder" ); | ||
| 120 | + field.SetProperty( TextField::Property::PLACEHOLDER_TEXT_FOCUSED, "Enter folder name." ); | ||
| 121 | + field.SetProperty( TextField::Property::DECORATION_BOUNDING_BOX, Rect<int>( BORDER_WIDTH, BORDER_WIDTH, stageSize.width - BORDER_WIDTH*2, stageSize.height - BORDER_WIDTH*2 ) ); | ||
| 122 | + | ||
| 123 | + return field; | ||
| 124 | + } | ||
| 124 | 125 | ||
| 125 | - container.Add( mField ); | 126 | + Popup CreatePopup( float width ) |
| 127 | + { | ||
| 128 | + Popup popup = Popup::New(); | ||
| 129 | + popup.SetParentOrigin( ParentOrigin::CENTER ); | ||
| 130 | + popup.SetAnchorPoint( AnchorPoint::CENTER ); | ||
| 131 | + popup.SetSize( width, 0.0f ); | ||
| 132 | + popup.HideTail(); | ||
| 133 | + popup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::HEIGHT ); | ||
| 134 | + popup.SetSizeModeFactor( POPUP_SIZE_FACTOR_TO_PARENT ); | ||
| 135 | + popup.TouchedSignal().Connect( this, &TextFieldExample::OnPopupTouched ); | ||
| 136 | + | ||
| 137 | + return popup; | ||
| 138 | + } | ||
| 126 | 139 | ||
| 127 | - Property::Value fieldText = mField.GetProperty( TextField::Property::TEXT ); | 140 | + void OnPopupOutsideTouched() |
| 141 | + { | ||
| 142 | + // Update the folder text | ||
| 143 | + if( mButton && mField ) | ||
| 144 | + { | ||
| 145 | + Property::Value text = mField.GetProperty( TextField::Property::TEXT ); | ||
| 146 | + mButtonLabel = text.Get< std::string >(); | ||
| 147 | + mButton.SetLabel( mButtonLabel ); | ||
| 148 | + } | ||
| 128 | 149 | ||
| 129 | - std::cout << "Displaying text: " << fieldText.Get< std::string >() << std::endl; | 150 | + // Hide & discard the pop-up |
| 151 | + if( mPopup ) | ||
| 152 | + { | ||
| 153 | + mPopup.Hide(); | ||
| 154 | + } | ||
| 155 | + mField.Reset(); | ||
| 156 | + mPopup.Reset(); | ||
| 130 | } | 157 | } |
| 131 | 158 | ||
| 132 | - void OnTap( Actor actor, const TapGesture& tapGesture ) | 159 | + bool OnPopupTouched( Actor actor, const TouchEvent& event ) |
| 133 | { | 160 | { |
| 134 | - mField.ClearKeyInputFocus(); | 161 | + // End edit mode for TextField if parent Popup touched. |
| 162 | + if(event.GetPointCount() > 0) | ||
| 163 | + { | ||
| 164 | + const TouchPoint& point = event.GetPoint(0); | ||
| 165 | + switch(point.state) | ||
| 166 | + { | ||
| 167 | + case TouchPoint::Down: | ||
| 168 | + { | ||
| 169 | + // Update the folder text and lose focus for Key events | ||
| 170 | + if( mButton && mField ) | ||
| 171 | + { | ||
| 172 | + Property::Value text = mField.GetProperty( TextField::Property::TEXT ); | ||
| 173 | + mButtonLabel = text.Get< std::string >(); | ||
| 174 | + mButton.SetLabel( mButtonLabel ); | ||
| 175 | + mField.ClearKeyInputFocus(); | ||
| 176 | + } | ||
| 177 | + break; | ||
| 178 | + } | ||
| 179 | + default: | ||
| 180 | + { | ||
| 181 | + break; | ||
| 182 | + } | ||
| 183 | + } // end switch | ||
| 184 | + } | ||
| 185 | + | ||
| 186 | + return true; | ||
| 135 | } | 187 | } |
| 136 | 188 | ||
| 137 | /** | 189 | /** |
| @@ -145,73 +197,6 @@ public: | @@ -145,73 +197,6 @@ public: | ||
| 145 | { | 197 | { |
| 146 | mApplication.Quit(); | 198 | mApplication.Quit(); |
| 147 | } | 199 | } |
| 148 | - else if( event.IsCtrlModifier() ) | ||
| 149 | - { | ||
| 150 | - switch( event.keyCode ) | ||
| 151 | - { | ||
| 152 | - // Select rendering back-end | ||
| 153 | - case KEY_ZERO: // fall through | ||
| 154 | - case KEY_ONE: | ||
| 155 | - { | ||
| 156 | - mField.SetProperty( TextField::Property::RENDERING_BACKEND, event.keyCode - 10 ); | ||
| 157 | - break; | ||
| 158 | - } | ||
| 159 | - case KEY_H: // Horizontal alignment | ||
| 160 | - { | ||
| 161 | - if( ++mAlignment >= H_ALIGNMENT_STRING_COUNT ) | ||
| 162 | - { | ||
| 163 | - mAlignment = 0u; | ||
| 164 | - } | ||
| 165 | - | ||
| 166 | - mField.SetProperty( TextField::Property::HORIZONTAL_ALIGNMENT, H_ALIGNMENT_STRING_TABLE[ mAlignment ] ); | ||
| 167 | - break; | ||
| 168 | - } | ||
| 169 | - case KEY_V: // Vertical alignment | ||
| 170 | - { | ||
| 171 | - if( ++mAlignment >= V_ALIGNMENT_STRING_COUNT ) | ||
| 172 | - { | ||
| 173 | - mAlignment = 0u; | ||
| 174 | - } | ||
| 175 | - | ||
| 176 | - mField.SetProperty( TextField::Property::VERTICAL_ALIGNMENT, V_ALIGNMENT_STRING_TABLE[ mAlignment ] ); | ||
| 177 | - break; | ||
| 178 | - } | ||
| 179 | - case KEY_L: // Language | ||
| 180 | - { | ||
| 181 | - const Language& language = LANGUAGES[ mLanguageId ]; | ||
| 182 | - | ||
| 183 | - mField.SetProperty( TextField::Property::TEXT, language.text ); | ||
| 184 | - | ||
| 185 | - if( ++mLanguageId >= NUMBER_OF_LANGUAGES ) | ||
| 186 | - { | ||
| 187 | - mLanguageId = 0u; | ||
| 188 | - } | ||
| 189 | - break; | ||
| 190 | - } | ||
| 191 | - case KEY_S: // Shadow color | ||
| 192 | - { | ||
| 193 | - if( Color::BLACK == mField.GetProperty<Vector4>( TextField::Property::SHADOW_COLOR ) ) | ||
| 194 | - { | ||
| 195 | - mField.SetProperty( TextField::Property::SHADOW_COLOR, Color::RED ); | ||
| 196 | - } | ||
| 197 | - else | ||
| 198 | - { | ||
| 199 | - mField.SetProperty( TextField::Property::SHADOW_COLOR, Color::BLACK ); | ||
| 200 | - } | ||
| 201 | - break; | ||
| 202 | - } | ||
| 203 | - case KEY_PLUS: // Increase shadow offset | ||
| 204 | - { | ||
| 205 | - mField.SetProperty( TextField::Property::SHADOW_OFFSET, mField.GetProperty<Vector2>( TextField::Property::SHADOW_OFFSET ) + Vector2( 1.0f, 1.0f ) ); | ||
| 206 | - break; | ||
| 207 | - } | ||
| 208 | - case KEY_MINUS: // Decrease shadow offset | ||
| 209 | - { | ||
| 210 | - mField.SetProperty( TextField::Property::SHADOW_OFFSET, mField.GetProperty<Vector2>( TextField::Property::SHADOW_OFFSET ) - Vector2( 1.0f, 1.0f ) ); | ||
| 211 | - break; | ||
| 212 | - } | ||
| 213 | - } | ||
| 214 | - } | ||
| 215 | } | 200 | } |
| 216 | } | 201 | } |
| 217 | 202 | ||
| @@ -219,12 +204,13 @@ private: | @@ -219,12 +204,13 @@ private: | ||
| 219 | 204 | ||
| 220 | Application& mApplication; | 205 | Application& mApplication; |
| 221 | 206 | ||
| 222 | - TextField mField; | ||
| 223 | - | ||
| 224 | - TapGestureDetector mTapGestureDetector; | 207 | + // This button launches a pop-up containing TextField |
| 208 | + PushButton mButton; | ||
| 209 | + std::string mButtonLabel; | ||
| 225 | 210 | ||
| 226 | - unsigned int mLanguageId; | ||
| 227 | - unsigned int mAlignment; | 211 | + // Pop-up contents |
| 212 | + TextField mField; | ||
| 213 | + Popup mPopup; | ||
| 228 | }; | 214 | }; |
| 229 | 215 | ||
| 230 | void RunTest( Application& application ) | 216 | void RunTest( Application& application ) |
examples/text-label/text-label-example.cpp
| @@ -34,7 +34,7 @@ using namespace MultiLanguageStrings; | @@ -34,7 +34,7 @@ using namespace MultiLanguageStrings; | ||
| 34 | 34 | ||
| 35 | namespace | 35 | namespace |
| 36 | { | 36 | { |
| 37 | - const char* const BACKGROUND_IMAGE = DALI_IMAGE_DIR "button-up.9.png"; | 37 | + const char* const BACKGROUND_IMAGE = DALI_IMAGE_DIR "grab-handle.png"; |
| 38 | 38 | ||
| 39 | const unsigned int KEY_ZERO = 10; | 39 | const unsigned int KEY_ZERO = 10; |
| 40 | const unsigned int KEY_ONE = 11; | 40 | const unsigned int KEY_ONE = 11; |
| @@ -107,16 +107,16 @@ public: | @@ -107,16 +107,16 @@ public: | ||
| 107 | mContainer.SetParentOrigin( ParentOrigin::CENTER ); | 107 | mContainer.SetParentOrigin( ParentOrigin::CENTER ); |
| 108 | mLayoutSize = Vector2(stageSize.width*0.6f, stageSize.width*0.6f); | 108 | mLayoutSize = Vector2(stageSize.width*0.6f, stageSize.width*0.6f); |
| 109 | mContainer.SetSize( mLayoutSize ); | 109 | mContainer.SetSize( mLayoutSize ); |
| 110 | + mContainer.SetDrawMode( DrawMode::OVERLAY ); | ||
| 110 | stage.Add( mContainer ); | 111 | stage.Add( mContainer ); |
| 111 | 112 | ||
| 112 | // Resize the center layout when the corner is grabbed | 113 | // Resize the center layout when the corner is grabbed |
| 113 | mGrabCorner = Control::New(); | 114 | mGrabCorner = Control::New(); |
| 114 | mGrabCorner.SetName( "GrabCorner" ); | 115 | mGrabCorner.SetName( "GrabCorner" ); |
| 115 | - mGrabCorner.SetAnchorPoint( AnchorPoint::BOTTOM_RIGHT ); | 116 | + mGrabCorner.SetAnchorPoint( AnchorPoint::TOP_CENTER ); |
| 116 | mGrabCorner.SetParentOrigin( ParentOrigin::BOTTOM_RIGHT ); | 117 | mGrabCorner.SetParentOrigin( ParentOrigin::BOTTOM_RIGHT ); |
| 117 | - mGrabCorner.SetSize( Vector2(stageSize.width*0.1f, stageSize.width*0.1f) ); | ||
| 118 | - mGrabCorner.SetZ(1.0f); | ||
| 119 | - mGrabCorner.SetBackgroundColor( Color::YELLOW ); | 118 | + mGrabCorner.SetBackgroundImage( ResourceImage::New( BACKGROUND_IMAGE ) ); |
| 119 | + mGrabCorner.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS ); | ||
| 120 | mContainer.Add( mGrabCorner ); | 120 | mContainer.Add( mGrabCorner ); |
| 121 | 121 | ||
| 122 | mPanGestureDetector = PanGestureDetector::New(); | 122 | mPanGestureDetector = PanGestureDetector::New(); |
packaging/com.samsung.dali-demo.spec
| @@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
| 2 | 2 | ||
| 3 | Name: com.samsung.dali-demo | 3 | Name: com.samsung.dali-demo |
| 4 | Summary: The OpenGLES Canvas Core Demo | 4 | Summary: The OpenGLES Canvas Core Demo |
| 5 | -Version: 1.0.42 | 5 | +Version: 1.0.43 |
| 6 | Release: 1 | 6 | Release: 1 |
| 7 | Group: System/Libraries | 7 | Group: System/Libraries |
| 8 | License: Apache-2.0 | 8 | License: Apache-2.0 |
resources/images/folder_appicon_empty_bg.png
0 โ 100644
6.09 KB
resources/images/grab-handle.png
0 โ 100644
5.02 KB
resources/scripts/animated-colors.json
| @@ -18,12 +18,10 @@ | @@ -18,12 +18,10 @@ | ||
| 18 | "stage": [ | 18 | "stage": [ |
| 19 | { | 19 | { |
| 20 | "type": "Control", | 20 | "type": "Control", |
| 21 | - "relayout-enabled": false, | 21 | + "draw-mode": "OVERLAY", |
| 22 | "actors": [ | 22 | "actors": [ |
| 23 | { | 23 | { |
| 24 | "type": "Control", | 24 | "type": "Control", |
| 25 | - "relayout-enabled": true, | ||
| 26 | - "actors": [], | ||
| 27 | "name": "Control 8", | 25 | "name": "Control 8", |
| 28 | "position": [ | 26 | "position": [ |
| 29 | 0, | 27 | 0, |
| @@ -62,12 +60,9 @@ | @@ -62,12 +60,9 @@ | ||
| 62 | }, | 60 | }, |
| 63 | { | 61 | { |
| 64 | "type": "Control", | 62 | "type": "Control", |
| 65 | - "relayout-enabled": false, | ||
| 66 | "actors": [ | 63 | "actors": [ |
| 67 | { | 64 | { |
| 68 | "type": "Control", | 65 | "type": "Control", |
| 69 | - "relayout-enabled": false, | ||
| 70 | - "actors": [], | ||
| 71 | "name": "Container 2", | 66 | "name": "Container 2", |
| 72 | "position": [ | 67 | "position": [ |
| 73 | 0, | 68 | 0, |
| @@ -106,12 +101,9 @@ | @@ -106,12 +101,9 @@ | ||
| 106 | }, | 101 | }, |
| 107 | { | 102 | { |
| 108 | "type": "Control", | 103 | "type": "Control", |
| 109 | - "relayout-enabled": false, | ||
| 110 | "actors": [ | 104 | "actors": [ |
| 111 | { | 105 | { |
| 112 | "type": "Control", | 106 | "type": "Control", |
| 113 | - "relayout-enabled": false, | ||
| 114 | - "actors": [], | ||
| 115 | "name": "Container 4", | 107 | "name": "Container 4", |
| 116 | "position": [ | 108 | "position": [ |
| 117 | 0, | 109 | 0, |
| @@ -187,12 +179,9 @@ | @@ -187,12 +179,9 @@ | ||
| 187 | }, | 179 | }, |
| 188 | { | 180 | { |
| 189 | "type": "Control", | 181 | "type": "Control", |
| 190 | - "relayout-enabled": false, | ||
| 191 | "actors": [ | 182 | "actors": [ |
| 192 | { | 183 | { |
| 193 | "type": "Control", | 184 | "type": "Control", |
| 194 | - "relayout-enabled": false, | ||
| 195 | - "actors": [], | ||
| 196 | "name": "Container 5", | 185 | "name": "Container 5", |
| 197 | "position": [ | 186 | "position": [ |
| 198 | 0, | 187 | 0, |
| @@ -231,12 +220,9 @@ | @@ -231,12 +220,9 @@ | ||
| 231 | }, | 220 | }, |
| 232 | { | 221 | { |
| 233 | "type": "Control", | 222 | "type": "Control", |
| 234 | - "relayout-enabled": false, | ||
| 235 | "actors": [ | 223 | "actors": [ |
| 236 | { | 224 | { |
| 237 | "type": "Control", | 225 | "type": "Control", |
| 238 | - "relayout-enabled": false, | ||
| 239 | - "actors": [], | ||
| 240 | "name": "Container 7", | 226 | "name": "Container 7", |
| 241 | "position": [ | 227 | "position": [ |
| 242 | 0, | 228 | 0, |
| @@ -312,12 +298,9 @@ | @@ -312,12 +298,9 @@ | ||
| 312 | }, | 298 | }, |
| 313 | { | 299 | { |
| 314 | "type": "Control", | 300 | "type": "Control", |
| 315 | - "relayout-enabled": false, | ||
| 316 | "actors": [ | 301 | "actors": [ |
| 317 | { | 302 | { |
| 318 | "type": "Control", | 303 | "type": "Control", |
| 319 | - "relayout-enabled": false, | ||
| 320 | - "actors": [], | ||
| 321 | "name": "Container 8", | 304 | "name": "Container 8", |
| 322 | "position": [ | 305 | "position": [ |
| 323 | 0, | 306 | 0, |
| @@ -356,12 +339,9 @@ | @@ -356,12 +339,9 @@ | ||
| 356 | }, | 339 | }, |
| 357 | { | 340 | { |
| 358 | "type": "Control", | 341 | "type": "Control", |
| 359 | - "relayout-enabled": false, | ||
| 360 | "actors": [ | 342 | "actors": [ |
| 361 | { | 343 | { |
| 362 | "type": "Control", | 344 | "type": "Control", |
| 363 | - "relayout-enabled": false, | ||
| 364 | - "actors": [], | ||
| 365 | "name": "Container 10", | 345 | "name": "Container 10", |
| 366 | "position": [ | 346 | "position": [ |
| 367 | 0, | 347 | 0, |
| @@ -548,12 +528,9 @@ | @@ -548,12 +528,9 @@ | ||
| 548 | }, | 528 | }, |
| 549 | { | 529 | { |
| 550 | "type": "Control", | 530 | "type": "Control", |
| 551 | - "relayout-enabled": false, | ||
| 552 | "actors": [ | 531 | "actors": [ |
| 553 | { | 532 | { |
| 554 | "type": "Control", | 533 | "type": "Control", |
| 555 | - "relayout-enabled": false, | ||
| 556 | - "actors": [], | ||
| 557 | "name": "Control 4", | 534 | "name": "Control 4", |
| 558 | "position": [ | 535 | "position": [ |
| 559 | 0, | 536 | 0, |
| @@ -629,15 +606,12 @@ | @@ -629,15 +606,12 @@ | ||
| 629 | }, | 606 | }, |
| 630 | { | 607 | { |
| 631 | "type": "Control", | 608 | "type": "Control", |
| 632 | - "relayout-enabled": false, | ||
| 633 | "actors": [ | 609 | "actors": [ |
| 634 | { | 610 | { |
| 635 | "type": "Control", | 611 | "type": "Control", |
| 636 | - "relayout-enabled": false, | ||
| 637 | "actors": [ | 612 | "actors": [ |
| 638 | { | 613 | { |
| 639 | "type": "Control", | 614 | "type": "Control", |
| 640 | - "actors": [], | ||
| 641 | "name": "Container 13", | 615 | "name": "Container 13", |
| 642 | "position": [ | 616 | "position": [ |
| 643 | 0, | 617 | 0, |
| @@ -713,8 +687,6 @@ | @@ -713,8 +687,6 @@ | ||
| 713 | }, | 687 | }, |
| 714 | { | 688 | { |
| 715 | "type": "Control", | 689 | "type": "Control", |
| 716 | - "relayout-enabled": false, | ||
| 717 | - "actors": [], | ||
| 718 | "name": "Container 11", | 690 | "name": "Container 11", |
| 719 | "position": [ | 691 | "position": [ |
| 720 | 0, | 692 | 0, |
| @@ -753,16 +725,12 @@ | @@ -753,16 +725,12 @@ | ||
| 753 | }, | 725 | }, |
| 754 | { | 726 | { |
| 755 | "type": "Control", | 727 | "type": "Control", |
| 756 | - "relayout-enabled": false, | ||
| 757 | "actors": [ | 728 | "actors": [ |
| 758 | { | 729 | { |
| 759 | "type": "Control", | 730 | "type": "Control", |
| 760 | - "relayout-enabled": false, | ||
| 761 | "actors": [ | 731 | "actors": [ |
| 762 | { | 732 | { |
| 763 | "type": "Control", | 733 | "type": "Control", |
| 764 | - "relayout-enabled": false, | ||
| 765 | - "actors": [], | ||
| 766 | "name": "Container 15", | 734 | "name": "Container 15", |
| 767 | "position": [ | 735 | "position": [ |
| 768 | 0, | 736 | 0, |
| @@ -838,8 +806,6 @@ | @@ -838,8 +806,6 @@ | ||
| 838 | }, | 806 | }, |
| 839 | { | 807 | { |
| 840 | "type": "Control", | 808 | "type": "Control", |
| 841 | - "relayout-enabled": false, | ||
| 842 | - "actors": [], | ||
| 843 | "name": "Container 16", | 809 | "name": "Container 16", |
| 844 | "position": [ | 810 | "position": [ |
| 845 | 0, | 811 | 0, |
| @@ -949,7 +915,27 @@ | @@ -949,7 +915,27 @@ | ||
| 949 | 0.3411764705882353, | 915 | 0.3411764705882353, |
| 950 | 1 | 916 | 1 |
| 951 | ] | 917 | ] |
| 918 | + }, | ||
| 919 | + { | ||
| 920 | + "type": "TextLabel", | ||
| 921 | + "name": "text", | ||
| 922 | + "parent-origin": "CENTER", | ||
| 923 | + "anchor-point": "CENTER", | ||
| 924 | + "text": "START", | ||
| 925 | + "point-size": 20, | ||
| 926 | + "signals": [ | ||
| 927 | + { | ||
| 928 | + "name": "tapped", | ||
| 929 | + "action": "play", | ||
| 930 | + "animation": "Animation_1" | ||
| 931 | + }, | ||
| 932 | + { | ||
| 933 | + "name": "tapped", | ||
| 934 | + "action": "play", | ||
| 935 | + "animation": "HideText" | ||
| 952 | } | 936 | } |
| 937 | + ] | ||
| 938 | + } | ||
| 953 | ], | 939 | ], |
| 954 | "name": "Container 1", | 940 | "name": "Container 1", |
| 955 | "position": [ | 941 | "position": [ |
| @@ -986,26 +972,6 @@ | @@ -986,26 +972,6 @@ | ||
| 986 | 0.32941176470588235, | 972 | 0.32941176470588235, |
| 987 | 1 | 973 | 1 |
| 988 | ] | 974 | ] |
| 989 | - }, | ||
| 990 | - { | ||
| 991 | - "type": "TextLabel", | ||
| 992 | - "name": "text", | ||
| 993 | - "parent-origin": "CENTER", | ||
| 994 | - "anchor-point": "CENTER", | ||
| 995 | - "text": "START", | ||
| 996 | - "point-size": 20, | ||
| 997 | - "signals": [ | ||
| 998 | - { | ||
| 999 | - "name": "tapped", | ||
| 1000 | - "action": "play", | ||
| 1001 | - "animation": "Animation_1" | ||
| 1002 | - }, | ||
| 1003 | - { | ||
| 1004 | - "name": "tapped", | ||
| 1005 | - "action": "play", | ||
| 1006 | - "animation": "HideText" | ||
| 1007 | - } | ||
| 1008 | - ] | ||
| 1009 | } | 975 | } |
| 1010 | ], | 976 | ], |
| 1011 | "animations": { | 977 | "animations": { |
resources/scripts/background-color.json
| 1 | /* | 1 | /* |
| 2 | - * Copyright (c) 2014 Samsung Electronics Co., Ltd. | 2 | + * Copyright (c) 2015 Samsung Electronics Co., Ltd. |
| 3 | * | 3 | * |
| 4 | * Licensed under the Apache License, Version 2.0 (the "License"); | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | * you may not use this file except in compliance with the License. | 5 | * you may not use this file except in compliance with the License. |
| @@ -19,10 +19,13 @@ | @@ -19,10 +19,13 @@ | ||
| 19 | // A TextLabel with a red background | 19 | // A TextLabel with a red background |
| 20 | { | 20 | { |
| 21 | "type": "TextLabel", | 21 | "type": "TextLabel", |
| 22 | + "draw-mode": "OVERLAY", | ||
| 22 | "text": "Hello World", | 23 | "text": "Hello World", |
| 23 | "parent-origin": "TOP_CENTER", | 24 | "parent-origin": "TOP_CENTER", |
| 24 | "anchor-point": "TOP_CENTER", | 25 | "anchor-point": "TOP_CENTER", |
| 25 | "background-color": [1, 0, 0, 1], | 26 | "background-color": [1, 0, 0, 1], |
| 27 | + "position": [0, 50, 0], | ||
| 28 | + "point-size": 40, | ||
| 26 | "size": [400, 150, 1] | 29 | "size": [400, 150, 1] |
| 27 | }, | 30 | }, |
| 28 | 31 |
resources/scripts/table-view.json
| @@ -21,6 +21,7 @@ | @@ -21,6 +21,7 @@ | ||
| 21 | "type":"TableView", | 21 | "type":"TableView", |
| 22 | "background-color": [0.5,0.5,0,1], | 22 | "background-color": [0.5,0.5,0,1], |
| 23 | "parent-origin": "CENTER", | 23 | "parent-origin": "CENTER", |
| 24 | + "draw-mode": "OVERLAY", | ||
| 24 | "size":[400,500,1], | 25 | "size":[400,500,1], |
| 25 | "cell-padding": [10, 5], | 26 | "cell-padding": [10, 5], |
| 26 | "layout-rows": { // set the height of the rows | 27 | "layout-rows": { // set the height of the rows |
shared/dali-demo-strings.h
| @@ -49,6 +49,7 @@ extern "C" | @@ -49,6 +49,7 @@ extern "C" | ||
| 49 | #define DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI") | 49 | #define DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI") |
| 50 | #define DALI_DEMO_STR_TITLE_IMAGE_FITTING_SAMPLING dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_IMAGE_FITTING_SAMPLING") | 50 | #define DALI_DEMO_STR_TITLE_IMAGE_FITTING_SAMPLING dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_IMAGE_FITTING_SAMPLING") |
| 51 | #define DALI_DEMO_STR_TITLE_IMAGE_SCALING dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_IMAGE_SCALING") | 51 | #define DALI_DEMO_STR_TITLE_IMAGE_SCALING dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_IMAGE_SCALING") |
| 52 | +#define DALI_DEMO_STR_TITLE_TEXT_FIELD dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_TEXT_FIELD") | ||
| 52 | #define DALI_DEMO_STR_TITLE_TEXT_LABEL dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_TEXT_LABEL") | 53 | #define DALI_DEMO_STR_TITLE_TEXT_LABEL dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_TEXT_LABEL") |
| 53 | #define DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE") | 54 | #define DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE") |
| 54 | #define DALI_DEMO_STR_TITLE_EMOJI_TEXT dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_EMOJI_TEXT") | 55 | #define DALI_DEMO_STR_TITLE_EMOJI_TEXT dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_EMOJI_TEXT") |
| @@ -77,6 +78,7 @@ extern "C" | @@ -77,6 +78,7 @@ extern "C" | ||
| 77 | #define DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI "Script Based UI" | 78 | #define DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI "Script Based UI" |
| 78 | #define DALI_DEMO_STR_TITLE_IMAGE_FITTING_SAMPLING "Image Fitting and Sampling" | 79 | #define DALI_DEMO_STR_TITLE_IMAGE_FITTING_SAMPLING "Image Fitting and Sampling" |
| 79 | #define DALI_DEMO_STR_TITLE_IMAGE_SCALING "Image Scaling Grid" | 80 | #define DALI_DEMO_STR_TITLE_IMAGE_SCALING "Image Scaling Grid" |
| 81 | +#define DALI_DEMO_STR_TITLE_TEXT_FIELD "Text Field" | ||
| 80 | #define DALI_DEMO_STR_TITLE_TEXT_LABEL "Text Label" | 82 | #define DALI_DEMO_STR_TITLE_TEXT_LABEL "Text Label" |
| 81 | #define DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE "Text Scripts" | 83 | #define DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE "Text Scripts" |
| 82 | #define DALI_DEMO_STR_TITLE_EMOJI_TEXT "Emoji Text" | 84 | #define DALI_DEMO_STR_TITLE_EMOJI_TEXT "Emoji Text" |