diff --git a/demo/dali-table-view.cpp b/demo/dali-table-view.cpp index b0c67ac..f9e2540 100644 --- a/demo/dali-table-view.cpp +++ b/demo/dali-table-view.cpp @@ -63,7 +63,7 @@ const float EFFECT_SNAP_DURATION = 0.66f; ///< Scroll Snap const float EFFECT_FLICK_DURATION = 0.5f; ///< Scroll Flick Duration for Effects const Vector3 ANGLE_CUBE_PAGE_ROTATE(Math::PI * 0.5f, Math::PI * 0.5f, 0.0f); -const int NUM_BACKGROUND_IMAGES = 20; +const int NUM_BACKGROUND_IMAGES = 18; const float BACKGROUND_SWIPE_SCALE = 0.025f; const float BACKGROUND_SPREAD_SCALE = 1.5f; const float SCALE_MOD = 1000.0f * Math::PI * 2.0f; @@ -107,7 +107,7 @@ Vector3 ScalePointSize(const Vector3& vec) */ ImageActor CreateBackground( std::string imagePath ) { - Image image = Image::New( imagePath ); + Image image = ResourceImage::New( imagePath ); ImageActor background = ImageActor::New( image ); background.SetAnchorPoint( AnchorPoint::CENTER ); @@ -124,90 +124,40 @@ const float IMAGE_BORDER_TOP = IMAGE_BORDER_LEFT; const float IMAGE_BORDER_BOTTOM = IMAGE_BORDER_LEFT; /** - * TableViewVisibilityConstraint + * Constraint to return a position for a bubble based on the scroll value and vertical wrapping. */ -struct TableViewVisibilityConstraint -{ - bool operator()( const bool& current, - const PropertyInput& pagePositionProperty, - const PropertyInput& pageSizeProperty ) - { - // Only the tableview in the current page should be visible. - const Vector3& pagePosition = pagePositionProperty.GetVector3(); - const Vector3& pageSize = pageSizeProperty.GetVector3(); - return fabsf( pagePosition.x ) < pageSize.x; - } -}; - -/** - * Constraint to wrap an actor in y that is moving vertically - */ -Vector3 ShapeMovementConstraint( const Vector3& current, - const PropertyInput& shapeSizeProperty, - const PropertyInput& parentSizeProperty ) -{ - const Vector3& shapeSize = shapeSizeProperty.GetVector3(); - const Vector3& parentSize = parentSizeProperty.GetVector3(); - - Vector3 pos( current ); - if( pos.y + shapeSize.y * 0.5f < -parentSize.y * 0.5f ) - { - pos.y += parentSize.y + shapeSize.y; - } - - return pos; -} - -/** - * Constraint to return a position for the background based on the scroll value - */ -struct AnimScrollConstraint +struct AnimateBubbleConstraint { public: - - AnimScrollConstraint( const Vector3& initialPos, float scale ) - : mInitialPos( initialPos ), - mScale( scale ) + AnimateBubbleConstraint( const Vector3& initialPos, float scale, float size ) + : mInitialX( initialPos.x ), + mScale( scale ), + mShapeSize( size ) { - } - Vector3 operator()( const Vector3& current, const PropertyInput& scrollProperty ) - { - float scrollPos = scrollProperty.GetVector3().x; - - return mInitialPos + Vector3( -scrollPos * mScale, 0.0f, 0.0f ); - } - -private: - Vector3 mInitialPos; - float mScale; -}; - -/** - * Constraint to return a tracked world position added to the constant local position - */ -struct TranslateLocalConstraint -{ -public: - - TranslateLocalConstraint( const Vector3& localPos ) - : mLocalPos( localPos ) + Vector3 operator()( const Vector3& current, const PropertyInput& scrollProperty, const PropertyInput& parentSize ) { - } + Vector3 pos( current ); - Vector3 operator()( const Vector3& current, const PropertyInput& pagePosProperty ) - { - Vector3 worldPos = pagePosProperty.GetVector3(); + // Wrap bubbles verically. + if( pos.y + mShapeSize * 0.5f < -parentSize.GetVector3().y * 0.5f ) + { + pos.y += parentSize.GetVector3().y + mShapeSize; + } - return ( worldPos + mLocalPos ); + // Bubbles X position moves parallax to horizontal + // panning by a scale factor unique to each bubble. + pos.x = mInitialX + ( scrollProperty.GetVector3().x * mScale ); + return pos; } private: - Vector3 mLocalPos; + float mInitialX; + float mScale; + float mShapeSize; }; - bool CompareByTitle( const Example& lhs, const Example& rhs ) { return lhs.title < rhs.title; @@ -297,8 +247,9 @@ void DaliTableView::Initialize( Application& application ) mScrollView.SetAnchorPoint( AnchorPoint::CENTER ); mScrollView.SetParentOrigin( ParentOrigin::CENTER ); - mScrollView.ApplyConstraint( Dali::Constraint::New( Dali::Actor::SIZE, Dali::ParentSource( Dali::Actor::SIZE ), - Dali::RelativeToConstraint( SCROLLVIEW_RELATIVE_SIZE ) ) ); + // Note: Currently, changing mScrollView to use SizeMode RELATIVE_TO_PARENT + // will cause scroll ends to appear in the wrong position. + mScrollView.ApplyConstraint( Dali::Constraint::New( Dali::Actor::SIZE, Dali::ParentSource( Dali::Actor::SIZE ), Dali::RelativeToConstraint( SCROLLVIEW_RELATIVE_SIZE ) ) ); mScrollView.SetAxisAutoLock( true ); mScrollView.ScrollCompletedSignal().Connect( this, &DaliTableView::OnScrollComplete ); mScrollView.ScrollStartedSignal().Connect( this, &DaliTableView::OnScrollStart ); @@ -395,7 +346,7 @@ void DaliTableView::Populate() page.SetAnchorPoint( AnchorPoint::CENTER ); page.SetParentOrigin( ParentOrigin::CENTER ); - page.ApplyConstraint( Constraint::New( Actor::SIZE, ParentSource( Actor::SIZE ), EqualToConstraint() ) ); + page.SetSizeMode( SIZE_EQUAL_TO_PARENT ); // add cells to table const float margin = 4.0f; @@ -496,31 +447,24 @@ Actor DaliTableView::CreateTile( const std::string& name, const std::string& tit tile.SetAnchorPoint( AnchorPoint::CENTER ); tile.SetParentOrigin( ParentOrigin::CENTER ); - Actor content = Actor::New(); - content.SetAnchorPoint( AnchorPoint::CENTER ); - content.SetParentOrigin( ParentOrigin::CENTER ); - content.ApplyConstraint( Constraint::New( Actor::SIZE, ParentSource( Actor::SIZE ), EqualToConstraint() ) ); - tile.Add(content); - // create background image if( addBackground ) { - Image bg = Image::New( TILE_BACKGROUND ); + Image bg = ResourceImage::New( TILE_BACKGROUND ); ImageActor image = ImageActor::New( bg ); image.SetAnchorPoint( AnchorPoint::CENTER ); image.SetParentOrigin( ParentOrigin::CENTER ); // make the image 100% of tile - image.ApplyConstraint( Constraint::New( Actor::SIZE, ParentSource( Actor::SIZE ), EqualToConstraint() ) ); + image.SetSizeMode( SIZE_EQUAL_TO_PARENT ); // move image back to get text appear in front image.SetZ( -1 ); image.SetStyle( ImageActor::STYLE_NINE_PATCH ); image.SetNinePatchBorder( Vector4( IMAGE_BORDER_LEFT, IMAGE_BORDER_TOP, IMAGE_BORDER_RIGHT, IMAGE_BORDER_BOTTOM ) ); - - content.Add( image ); + tile.Add( image ); // Add stencil ImageActor stencil = NewStencilImage(); - stencil.ApplyConstraint( Constraint::New( Actor::SIZE, ParentSource( Actor::SIZE ), EqualToConstraint() ) ); + stencil.SetSizeMode( SIZE_EQUAL_TO_PARENT ); image.Add( stencil ); } @@ -530,7 +474,7 @@ Actor DaliTableView::CreateTile( const std::string& name, const std::string& tit label.SetProperty( TextLabel::PROPERTY_MULTI_LINE, true ); label.SetProperty( TextLabel::PROPERTY_TEXT, title ); label.SetColor( Color::BLACK ); - content.Add( label ); + tile.Add( label ); // FIXME - This is a kludge because size negotiation is not finished label.SetSize( parentSize ); @@ -547,7 +491,7 @@ Actor DaliTableView::CreateTile( const std::string& name, const std::string& tit ImageActor DaliTableView::NewStencilImage() { - Image alpha = Image::New( TILE_BACKGROUND_ALPHA ); + Image alpha = ResourceImage::New( TILE_BACKGROUND_ALPHA ); ImageActor stencilActor = ImageActor::New( alpha ); stencilActor.SetStyle( ImageActor::STYLE_NINE_PATCH ); @@ -723,61 +667,25 @@ void DaliTableView::OnKeyEvent( const KeyEvent& event ) } } -Actor CreateBackgroundActor( const Vector2& size ) +void DaliTableView::SetupBackground( Actor bubbleContainer, Actor backgroundLayer, const Vector2& size ) { - Actor layer = Actor::New(); - layer.SetAnchorPoint( AnchorPoint::CENTER ); - layer.SetParentOrigin( ParentOrigin::CENTER ); - layer.SetSize( size ); - return layer; -} - -void DaliTableView::SetupBackground( Actor bubbleLayer, Actor backgroundLayer, const Vector2& size ) -{ - // Create distance field shape + // Create distance field shape. BitmapImage distanceField; Size imageSize( 512, 512 ); CreateShapeImage( CIRCLE, imageSize, distanceField ); - // Create layers - Actor backgroundAnimLayer0 = CreateBackgroundActor( size ); - Actor backgroundAnimLayer1 = CreateBackgroundActor( size ); - Actor backgroundAnimLayer2 = CreateBackgroundActor( size ); - - // Add constraints - Constraint animConstraint0 = Constraint::New < Vector3 > ( Actor::POSITION, - Source( mScrollView, mScrollView.GetPropertyIndex( ScrollView::SCROLL_POSITION_PROPERTY_NAME ) ), - AnimScrollConstraint( backgroundAnimLayer0.GetCurrentPosition(), 0.75f ) ); - backgroundAnimLayer0.ApplyConstraint( animConstraint0 ); - - Constraint animConstraint1 = Constraint::New < Vector3 > ( Actor::POSITION, - Source( mScrollView, mScrollView.GetPropertyIndex( ScrollView::SCROLL_POSITION_PROPERTY_NAME ) ), - AnimScrollConstraint( backgroundAnimLayer1.GetCurrentPosition(), 0.5f ) ); - backgroundAnimLayer1.ApplyConstraint( animConstraint1 ); + // Create solid background colour. + ImageActor backgroundColourActor = Dali::Toolkit::CreateSolidColorActor( BACKGROUND_COLOR ); + backgroundColourActor.SetAnchorPoint( AnchorPoint::CENTER ); + backgroundColourActor.SetParentOrigin( ParentOrigin::CENTER ); + backgroundColourActor.SetSize( size * BACKGROUND_SIZE_SCALE ); + backgroundColourActor.SetZ( BACKGROUND_Z ); + backgroundColourActor.SetPositionInheritanceMode( DONT_INHERIT_POSITION ); + backgroundLayer.Add( backgroundColourActor ); - Constraint animConstraint2 = Constraint::New < Vector3 > ( Actor::POSITION, - Source( mScrollView, mScrollView.GetPropertyIndex( ScrollView::SCROLL_POSITION_PROPERTY_NAME ) ), - AnimScrollConstraint( backgroundAnimLayer2.GetCurrentPosition(), 0.25f ) ); - backgroundAnimLayer2.ApplyConstraint( animConstraint2 ); - - // Background - ImageActor layer = Dali::Toolkit::CreateSolidColorActor( BACKGROUND_COLOR ); - layer.SetAnchorPoint( AnchorPoint::CENTER ); - layer.SetParentOrigin( ParentOrigin::CENTER ); - layer.SetSize( size * BACKGROUND_SIZE_SCALE ); - layer.SetZ( BACKGROUND_Z ); - layer.SetPositionInheritanceMode( DONT_INHERIT_POSITION ); - backgroundLayer.Add( layer ); - - // Parent the layers - bubbleLayer.Add( backgroundAnimLayer0 ); - bubbleLayer.Add( backgroundAnimLayer1 ); - bubbleLayer.Add( backgroundAnimLayer2 ); - - // Add all the children - AddBackgroundActors( backgroundAnimLayer0, NUM_BACKGROUND_IMAGES / 3, distanceField, size ); - AddBackgroundActors( backgroundAnimLayer1, NUM_BACKGROUND_IMAGES / 3, distanceField, size ); - AddBackgroundActors( backgroundAnimLayer2, NUM_BACKGROUND_IMAGES / 3, distanceField, size ); + // Add bubbles to the bubbleContainer. + // Note: The bubbleContainer is parented externally to this function. + AddBackgroundActors( bubbleContainer, NUM_BACKGROUND_IMAGES, distanceField, size ); } void DaliTableView::AddBackgroundActors( Actor layer, int count, BitmapImage distanceField, const Dali::Vector2& size ) @@ -807,11 +715,12 @@ void DaliTableView::AddBackgroundActors( Actor layer, int count, BitmapImage dis Random::Range( BUBBLE_MIN_Z, BUBBLE_MAX_Z ) ); dfActor.SetPosition( actorPos ); - Constraint movementConstraint = Constraint::New < Vector3 > ( Actor::POSITION, - LocalSource( Actor::SIZE ), - ParentSource( Actor::SIZE ), - ShapeMovementConstraint ); - dfActor.ApplyConstraint( movementConstraint ); + // Define bubble horizontal parallax and vertical wrapping + Constraint animConstraint = Constraint::New < Vector3 > ( Actor::POSITION, + Source( mScrollView, mScrollView.GetPropertyIndex( ScrollView::SCROLL_POSITION_PROPERTY_NAME ) ), + Dali::ParentSource( Dali::Actor::SIZE ), + AnimateBubbleConstraint( actorPos, Random::Range( -0.85f, 0.25f ), randSize ) ); + dfActor.ApplyConstraint( animConstraint ); // Kickoff animation Animation animation = Animation::New( Random::Range( 40.0f, 200.0f ) ); @@ -893,7 +802,7 @@ void DaliTableView::GenerateCircle( const Size& size, std::vector< unsigned char ImageActor DaliTableView::CreateLogo( std::string imagePath ) { - Image image = Image::New( imagePath ); + Image image = ResourceImage::New( imagePath ); ImageActor logo = ImageActor::New( image ); logo.SetAnchorPoint( AnchorPoint::CENTER ); diff --git a/demo/images/checkbox-checked.png b/demo/images/checkbox-selected.png index e3a8c43..e3a8c43 100644 --- a/demo/images/checkbox-checked.png +++ b/demo/images/checkbox-selected.png diff --git a/demo/images/checkbox-unchecked.png b/demo/images/checkbox-unselected.png index 58e9390..58e9390 100644 --- a/demo/images/checkbox-unchecked.png +++ b/demo/images/checkbox-unselected.png diff --git a/demo/scripts/button.json b/demo/scripts/button.json index 4a010cd..392f97d 100644 --- a/demo/scripts/button.json +++ b/demo/scripts/button.json @@ -32,7 +32,7 @@ "filename": "{DALI_IMAGE_DIR}blocks-brick-1.png" } }, - "pressed-state-actor": { + "selected-state-actor": { "type": "ImageActor", "image": { "filename": "{DALI_IMAGE_DIR}blocks-brick-2.png" @@ -53,22 +53,22 @@ "size": [0, 200, 0], "label-actor": { "type": "TextView", - "text": "Dimmed" + "text": "Disabled" }, - "dimmed": true, + "disabled": true, "normal-state-actor": { "type": "ImageActor", "image": { "filename": "{DALI_IMAGE_DIR}blocks-brick-1.png" } }, - "pressed-state-actor": { + "selected-state-actor": { "type": "ImageActor", "image": { "filename": "{DALI_IMAGE_DIR}blocks-brick-2.png" } }, - "dimmed-state-actor": { + "disabled-state-actor": { "type": "ImageActor", "image": { "filename": "{DALI_IMAGE_DIR}blocks-brick-3.png" @@ -97,7 +97,7 @@ "filename": "{DALI_IMAGE_DIR}blocks-brick-1.png" } }, - "pressed-state-actor": { + "selected-state-actor": { "type": "ImageActor", "style": "STYLE_NINE_PATCH", "border": [26, 24, 26, 23], @@ -106,7 +106,7 @@ } }, "signals": [{ - "name": "toggled", + "name": "selected", "action": "set", "actor": "toggle-button", "property": "label-actor", diff --git a/demo/scripts/super-blur-view.json b/demo/scripts/super-blur-view.json index 873af00..dd31564 100644 --- a/demo/scripts/super-blur-view.json +++ b/demo/scripts/super-blur-view.json @@ -78,7 +78,7 @@ "filename": "{DALI_IMAGE_DIR}button-background.png" } }, - "pressed-state-actor": { + "selected-state-actor": { "type": "ImageActor", "style": "STYLE_NINE_PATCH", "border": [26, 24, 26, 23], diff --git a/demo/scripts/table-view.json b/demo/scripts/table-view.json index 1be3c9d..85940fa 100644 --- a/demo/scripts/table-view.json +++ b/demo/scripts/table-view.json @@ -25,7 +25,6 @@ "rows": 4, "columns":4, "cell-padding": [10, 5], - "layout-animation-duration": 0.5, "layout-rows": { // set the height of the rows "0": { "policy": "fixed", "value": 40 }, "1": { "policy": "relative", "value": 0.33 }, diff --git a/examples/blocks/blocks-example.cpp b/examples/blocks/blocks-example.cpp index 18ed966..e984286 100644 --- a/examples/blocks/blocks-example.cpp +++ b/examples/blocks/blocks-example.cpp @@ -423,7 +423,7 @@ private: mLevelContainer = Actor::New(); mLevelContainer.SetAnchorPoint( AnchorPoint::CENTER ); mLevelContainer.SetParentOrigin( ParentOrigin::CENTER ); - mLevelContainer.ApplyConstraint( Constraint::New( Actor::SIZE, ParentSource( Actor::SIZE ), EqualToConstraint() ) ); + mLevelContainer.SetSizeMode( SIZE_EQUAL_TO_PARENT ); mContentLayer.Add( mLevelContainer ); mBrickCount = 0; @@ -591,7 +591,7 @@ private: ImageAttributes attr; attr.SetSize( 128, 64 ); attr.SetScalingMode( ImageAttributes::ScaleToFill ); - Image img = Image::New(BRICK_IMAGE_PATH[type], attr); + Image img = ResourceImage::New(BRICK_IMAGE_PATH[type], attr); ImageActor brick = ImageActor::New(img); brick.SetParentOrigin(ParentOrigin::TOP_LEFT); brick.SetAnchorPoint(AnchorPoint::CENTER); @@ -623,7 +623,7 @@ private: */ ImageActor CreateImage(const std::string& filename) { - Image img = Image::New(filename); + Image img = ResourceImage::New(filename); ImageActor actor = ImageActor::New(img); actor.SetParentOrigin(ParentOrigin::TOP_LEFT); actor.SetAnchorPoint(AnchorPoint::CENTER); diff --git a/examples/builder/dali-builder.cpp b/examples/builder/dali-builder.cpp index 9c97fec..9f70d71 100644 --- a/examples/builder/dali-builder.cpp +++ b/examples/builder/dali-builder.cpp @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include diff --git a/examples/builder/examples.cpp b/examples/builder/examples.cpp index 15ba8e9..90bb1b6 100644 --- a/examples/builder/examples.cpp +++ b/examples/builder/examples.cpp @@ -33,6 +33,7 @@ #include #include #include +#include //#include #include "sys/stat.h" @@ -507,7 +508,7 @@ public: // Create an edit mode button. (left of toolbar) Toolkit::PushButton editButton = Toolkit::PushButton::New(); - editButton.SetBackgroundImage( Image::New( EDIT_IMAGE ) ); + editButton.SetBackgroundImage( ResourceImage::New( EDIT_IMAGE ) ); editButton.ClickedSignal().Connect( this, &ExampleApp::OnToolSelectLayout); editButton.SetLeaveRequired( true ); mToolBar.AddControl( editButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, Toolkit::Alignment::HorizontalLeft, DemoHelper::DEFAULT_MODE_SWITCH_PADDING ); diff --git a/examples/buttons/buttons-example.cpp b/examples/buttons/buttons-example.cpp index af075b5..936fd37 100644 --- a/examples/buttons/buttons-example.cpp +++ b/examples/buttons/buttons-example.cpp @@ -61,8 +61,8 @@ const char* const PUSHBUTTON_PRESS_IMAGE = DALI_IMAGE_DIR "button-down.9.png"; const char* const PUSHBUTTON_DISABLED_IMAGE = DALI_IMAGE_DIR "button-disabled.9.png"; const char* const PUSHBUTTON_BUTTON_IMAGE = DALI_IMAGE_DIR "button-up.9.png"; -const char* const CHECKBOX_UNCHECKED_IMAGE = DALI_IMAGE_DIR "checkbox-unchecked.png"; -const char* const CHECKBOX_CHECKED_IMAGE = DALI_IMAGE_DIR "checkbox-checked.png"; +const char* const CHECKBOX_UNSELECTED_IMAGE = DALI_IMAGE_DIR "checkbox-unselected.png"; +const char* const CHECKBOX_SELECTED_IMAGE = DALI_IMAGE_DIR "checkbox-selected.png"; const Vector4 BACKGROUND_COLOUR( 1.0f, 1.0f, 1.0f, 0.15f ); @@ -142,7 +142,7 @@ class ButtonsController: public ConnectionTracker // Radio 1 { - ImageActor imageActor = ImageActor::New( Image::New( SMALL_IMAGE_1 ) ); + ImageActor imageActor = ImageActor::New( ResourceImage::New( SMALL_IMAGE_1 ) ); imageActor.SetSize( DP(RADIO_LABEL_THUMBNAIL_SIZE), DP(RADIO_LABEL_THUMBNAIL_SIZE) ); mRadioButtonImage1 = Dali::Toolkit::RadioButton::New( imageActor ); mRadioButtonImage1.SetParentOrigin( ParentOrigin::TOP_LEFT ); @@ -157,7 +157,7 @@ class ButtonsController: public ConnectionTracker { radioY += RADIO_LABEL_THUMBNAIL_SIZE + RADIO_IMAGE_SPACING; - ImageActor imageActor = ImageActor::New( Image::New( SMALL_IMAGE_2 ) ); + ImageActor imageActor = ImageActor::New( ResourceImage::New( SMALL_IMAGE_2 ) ); imageActor.SetSize( DP(RADIO_LABEL_THUMBNAIL_SIZE), DP(RADIO_LABEL_THUMBNAIL_SIZE) ); mRadioButtonImage2 = Dali::Toolkit::RadioButton::New( imageActor ); @@ -172,7 +172,7 @@ class ButtonsController: public ConnectionTracker { radioY += RADIO_LABEL_THUMBNAIL_SIZE + RADIO_IMAGE_SPACING; - ImageActor imageActor = ImageActor::New( Image::New( SMALL_IMAGE_3 ) ); + ImageActor imageActor = ImageActor::New( ResourceImage::New( SMALL_IMAGE_3 ) ); imageActor.SetSize( DP(RADIO_LABEL_THUMBNAIL_SIZE), DP(RADIO_LABEL_THUMBNAIL_SIZE) ); mRadioButtonImage3 = Dali::Toolkit::RadioButton::New( imageActor ); @@ -191,18 +191,18 @@ class ButtonsController: public ConnectionTracker mUpdateButton.SetLabel("Select"); mUpdateButton.SetSize( DP(100), DP(BUTTON_HEIGHT) ); - mUpdateButton.SetSelectedImage( Dali::Image::New( PUSHBUTTON_PRESS_IMAGE ) ); - mUpdateButton.SetDisabledImage( Dali::Image::New( PUSHBUTTON_DISABLED_IMAGE ) ); - mUpdateButton.SetButtonImage( Dali::Image::New( PUSHBUTTON_BUTTON_IMAGE ) ); + mUpdateButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) ); + mUpdateButton.SetDisabledImage( Dali::ResourceImage::New( PUSHBUTTON_DISABLED_IMAGE ) ); + mUpdateButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) ); mUpdateButton.ClickedSignal().Connect( this, &ButtonsController::OnButtonClicked ); radioButtonsGroup2.Add(mUpdateButton); // ImageActor to display selected image - mBigImage1 = Image::New( BIG_IMAGE_1 ); - mBigImage2 = Image::New( BIG_IMAGE_2 ); - mBigImage3 = Image::New( BIG_IMAGE_3 ); + mBigImage1 = ResourceImage::New( BIG_IMAGE_1 ); + mBigImage2 = ResourceImage::New( BIG_IMAGE_2 ); + mBigImage3 = ResourceImage::New( BIG_IMAGE_3 ); mImage = ImageActor::New( mBigImage1 ); mImage.SetParentOrigin( ParentOrigin::TOP_RIGHT ); @@ -234,7 +234,7 @@ class ButtonsController: public ConnectionTracker Toolkit::TableView tableView = Toolkit::TableView::New( 1, 2 ); tableView.SetSize( DP(260), DP(RADIO_LABEL_THUMBNAIL_SIZE) ); - ImageActor imageActor = ImageActor::New( Image::New( ENABLED_IMAGE ) ); + ImageActor imageActor = ImageActor::New( ResourceImage::New( ENABLED_IMAGE ) ); imageActor.SetSize( DP(RADIO_LABEL_THUMBNAIL_SIZE), DP(RADIO_LABEL_THUMBNAIL_SIZE) ); tableView.AddChild( imageActor, Toolkit::TableView::CellPosition( 0, 1 ) ); tableView.SetFixedWidth( 1, DP(RADIO_LABEL_THUMBNAIL_SIZE) ); @@ -246,7 +246,7 @@ class ButtonsController: public ConnectionTracker radioButton.SetPosition( 0, 0 ); radioButton.SetSelected( true ); - radioButton.StateChangedSignal().Connect( this, &ButtonsController::EnableSelectButtonToggle ); + radioButton.StateChangedSignal().Connect( this, &ButtonsController::EnableSelectButton ); radioButtonsGroup1.Add( radioButton ); } @@ -259,7 +259,7 @@ class ButtonsController: public ConnectionTracker radioButton.SetAnchorPoint( AnchorPoint::TOP_LEFT ); radioButton.SetPosition( 0, DP(50) ); - radioButton.StateChangedSignal().Connect( this, &ButtonsController::EnableSelectButtonToggle ); + radioButton.StateChangedSignal().Connect( this, &ButtonsController::EnableSelectButton ); radioButtonsGroup1.Add( radioButton ); } @@ -274,8 +274,8 @@ class ButtonsController: public ConnectionTracker checkBoxBackground.SetSize( DP(430), DP(GROUP3_HEIGHT) ); mContentLayer.Add( checkBoxBackground ); - Dali::Image unchecked = Dali::Image::New( CHECKBOX_UNCHECKED_IMAGE ); - Dali::Image checked = Dali::Image::New( CHECKBOX_CHECKED_IMAGE ); + Dali::Image unselected = Dali::ResourceImage::New( CHECKBOX_UNSELECTED_IMAGE ); + Dali::Image selected = Dali::ResourceImage::New( CHECKBOX_SELECTED_IMAGE ); int checkYPos = MARGIN_SIZE; @@ -285,10 +285,10 @@ class ButtonsController: public ConnectionTracker checkBox.SetPosition( DP(MARGIN_SIZE), DP(checkYPos) ); checkBox.SetParentOrigin( ParentOrigin::TOP_LEFT ); checkBox.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - checkBox.SetBackgroundImage( unchecked ); - checkBox.SetCheckedImage( checked ); + checkBox.SetBackgroundImage( unselected ); + checkBox.SetSelectedImage( selected ); checkBox.SetSize( DP(48), DP(48) ); - checkBox.StateChangedSignal().Connect( this, &ButtonsController::OnCheckBoxesToggled ); + checkBox.StateChangedSignal().Connect( this, &ButtonsController::OnCheckBoxesSelected ); checkBoxBackground.Add( checkBox ); } @@ -300,11 +300,11 @@ class ButtonsController: public ConnectionTracker checkBox.SetName( "checkbox2" ); checkBox.SetPosition( DP(MARGIN_SIZE), DP(checkYPos) ); checkBox.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - checkBox.SetBackgroundImage( unchecked ); - checkBox.SetCheckedImage( checked ); + checkBox.SetBackgroundImage( unselected ); + checkBox.SetSelectedImage( selected ); checkBox.SetSize( DP(48), DP(48) ); - checkBox.SetChecked( true ); - checkBox.StateChangedSignal().Connect( this, &ButtonsController::OnCheckBoxesToggled ); + checkBox.SetSelected( true ); + checkBox.StateChangedSignal().Connect( this, &ButtonsController::OnCheckBoxesSelected ); checkBoxBackground.Add( checkBox ); } @@ -316,15 +316,14 @@ class ButtonsController: public ConnectionTracker checkBox.SetName( "checkbox3" ); checkBox.SetPosition( DP(MARGIN_SIZE), DP(checkYPos) ); checkBox.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - checkBox.SetBackgroundImage( unchecked ); - checkBox.SetCheckedImage( checked ); + checkBox.SetBackgroundImage( unselected ); + checkBox.SetSelectedImage( selected ); checkBox.SetSize( DP(48), DP(48) ); - checkBox.StateChangedSignal().Connect( this, &ButtonsController::OnCheckBoxesToggled ); + checkBox.StateChangedSignal().Connect( this, &ButtonsController::OnCheckBoxesSelected ); checkBoxBackground.Add( checkBox ); } - // Create toggle button yPos += GROUP3_HEIGHT + MARGIN_SIZE; Actor toggleBackground = Toolkit::CreateSolidColorActor( BACKGROUND_COLOUR ); @@ -335,18 +334,18 @@ class ButtonsController: public ConnectionTracker mContentLayer.Add( toggleBackground ); Toolkit::PushButton toggleButton = Toolkit::PushButton::New(); - toggleButton.SetToggleButton( true ); + toggleButton.SetTogglableButton( true ); toggleButton.SetParentOrigin( ParentOrigin::TOP_LEFT ); toggleButton.SetAnchorPoint( AnchorPoint::TOP_LEFT ); toggleButton.SetPosition( DP(MARGIN_SIZE), DP(MARGIN_SIZE) ); - toggleButton.SetLabel( "Toggle OFF" ); + toggleButton.SetLabel( "Unselected" ); toggleButton.SetSize( DP(150), DP(BUTTON_HEIGHT) ); - toggleButton.SetSelectedImage( Dali::Image::New( PUSHBUTTON_PRESS_IMAGE ) ); - toggleButton.SetDisabledImage( Dali::Image::New( PUSHBUTTON_DISABLED_IMAGE ) ); - toggleButton.SetButtonImage( Dali::Image::New( PUSHBUTTON_BUTTON_IMAGE ) ); + toggleButton.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) ); + toggleButton.SetDisabledImage( Dali::ResourceImage::New( PUSHBUTTON_DISABLED_IMAGE ) ); + toggleButton.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) ); - toggleButton.StateChangedSignal().Connect( this, &ButtonsController::OnButtonToggled ); + toggleButton.StateChangedSignal().Connect( this, &ButtonsController::OnButtonSelected ); toggleBackground.Add( toggleButton ); } @@ -363,31 +362,31 @@ class ButtonsController: public ConnectionTracker } } - bool OnButtonToggled( Toolkit::Button button, bool state ) + bool OnButtonSelected( Toolkit::Button button ) { Toolkit::PushButton pushButton = Toolkit::PushButton::DownCast( button ); if( pushButton ) { - if( state ) + if( button.IsSelected() ) { - pushButton.SetLabel( "Toggle ON" ); + pushButton.SetLabel( "Selected" ); } else { - pushButton.SetLabel( "Toggle OFF" ); + pushButton.SetLabel( "Unselected" ); } } return true; } - bool EnableSelectButtonToggle( Toolkit::Button button, bool state ) + bool EnableSelectButton( Toolkit::Button button ) { - if( button.GetName() == "radio-select-enable" && state == true ) + if( button.GetName() == "radio-select-enable" && button.IsSelected() == true ) { mUpdateButton.SetDisabled( false ); } - else if( button.GetName() == "radio-select-disable" && state == true ) + else if( button.GetName() == "radio-select-disable" && button.IsSelected() == true ) { mUpdateButton.SetDisabled( true ); } @@ -412,7 +411,7 @@ class ButtonsController: public ConnectionTracker return true; } - bool OnCheckBoxesToggled( Toolkit::Button button, bool state ) + bool OnCheckBoxesSelected( Toolkit::Button button ) { return true; } diff --git a/examples/cluster/cluster-example.cpp b/examples/cluster/cluster-example.cpp index 26d179d..85d29f9 100644 --- a/examples/cluster/cluster-example.cpp +++ b/examples/cluster/cluster-example.cpp @@ -199,33 +199,6 @@ struct CarouselEffectOrientationConstraint }; /** - * RescaleConstraint - * Rescales the inputer scale by the ratio of the height:width of it's parent. - */ -struct RescaleConstraint -{ - /** - * Constructor - * @param[in] value0 Constant multiplication operand (K). - */ - RescaleConstraint() - { - } - - /** - * @param[in] current The object's current property value - * @param[in] property0 The first property to multiplication operand - * @return The object's new property value - */ - Vector3 operator()(const Vector3& current, - const PropertyInput& property0) - { - return current * Vector3( property0.GetVector3().y / property0.GetVector3().x, 1.0f, 1.0f ); - } - -}; - -/** * ShearEffectConstraint * * Constrains ShearEffect's tilt to be a function of scrollview's @@ -493,10 +466,10 @@ public: "" ); // Create a effect toggle button. (right of toolbar) - mLayoutButtonImages[ NO_EFFECT ] = Image::New( LAYOUT_NONE_IMAGE ); - mLayoutButtonImages[ WOBBLE_EFFECT ] = Image::New( LAYOUT_WOBBLE_IMAGE ); - mLayoutButtonImages[ CAROUSEL_EFFECT ] = Image::New( LAYOUT_CAROUSEL_IMAGE ); - mLayoutButtonImages[ SPHERE_EFFECT ] = Image::New( LAYOUT_SPHERE_IMAGE ); + mLayoutButtonImages[ NO_EFFECT ] = ResourceImage::New( LAYOUT_NONE_IMAGE ); + mLayoutButtonImages[ WOBBLE_EFFECT ] = ResourceImage::New( LAYOUT_WOBBLE_IMAGE ); + mLayoutButtonImages[ CAROUSEL_EFFECT ] = ResourceImage::New( LAYOUT_CAROUSEL_IMAGE ); + mLayoutButtonImages[ SPHERE_EFFECT ] = ResourceImage::New( LAYOUT_SPHERE_IMAGE ); mLayoutButton = Toolkit::PushButton::New(); mLayoutButton.ClickedSignal().Connect( this, &ClusterController::OnEffectTouched ); @@ -514,18 +487,14 @@ public: mScrollView.SetAnchorPoint(AnchorPoint::CENTER); mScrollView.SetParentOrigin(ParentOrigin::CENTER); - // Scale ScrollView to fit within parent (mContentLayer) - Constraint constraint = Constraint::New( Actor::SCALE, - LocalSource( Actor::SIZE ), - ParentSource( Actor::SIZE ), - ScaleToFitConstraint() ); - mScrollView.ApplyConstraint(constraint); + // Scale ScrollView to fit parent (mContentLayer) + mScrollView.SetSizeMode( SIZE_EQUAL_TO_PARENT ); // Add the scroll view to the content layer mContentLayer.Add(mScrollView); // Create the image border shared by all the cluster image actors - mClusterBorderImage = Image::New(CLUSTER_BORDER_IMAGE_PATH); + mClusterBorderImage = ResourceImage::New(CLUSTER_BORDER_IMAGE_PATH); AddCluster( PEOPLE, ClusterStyleStandard::New(ClusterStyleStandard::ClusterStyle1) ); AddCluster( TODAY, ClusterStyleStandard::New(ClusterStyleStandard::ClusterStyle2) ); @@ -556,7 +525,7 @@ public: DALI_ASSERT_ALWAYS(paths); // Add a background image to the cluster - Image bg = Image::New( CLUSTER_BACKGROUND_IMAGE_PATH ); + Image bg = ResourceImage::New( CLUSTER_BACKGROUND_IMAGE_PATH ); ImageActor image = ImageActor::New(bg); clusterActor.SetBackgroundImage(image); @@ -587,10 +556,9 @@ public: ImageAttributes attribs = ImageAttributes::New(); attribs.SetSize(CLUSTER_IMAGE_THUMBNAIL_WIDTH, CLUSTER_IMAGE_THUMBNAIL_HEIGHT); attribs.SetScalingMode(Dali::ImageAttributes::ShrinkToFit); - attribs.SetPixelFormat( Pixel::RGB888 ); // Add a shadow image child actor - Image shadowImage = Image::New( CLUSTER_SHADOW_IMAGE_PATH, attribs ); + Image shadowImage = ResourceImage::New( CLUSTER_SHADOW_IMAGE_PATH, attribs ); ImageActor shadowActor = ImageActor::New(shadowImage); // Shadow is not exactly located on the center of the image, so it is moved to a little @@ -605,7 +573,7 @@ public: actor.Add( shadowActor ); // Add a picture image actor to actor (with equal size to the parent). - Image image = Image::New( imagePath, attribs ); + Image image = ResourceImage::New( imagePath, attribs ); ImageActor imageActor = ImageActor::New( image ); imageActor.SetParentOrigin( ParentOrigin::CENTER ); imageActor.SetAnchorPoint( AnchorPoint::CENTER ); @@ -649,14 +617,7 @@ public: mScrollView.Add(pageView); pageView.SetParentOrigin(ParentOrigin::CENTER); pageView.SetPosition(Vector3(stageSize.width * column, 0.0f, 0.0f)); - pageView.SetSize(stageSize); - - // Resize pageView (which contains a Cluster) - Constraint constraintScale = Constraint::New( Actor::SCALE, - ParentSource( Actor::SCALE ), - RescaleConstraint() ); - constraintScale.SetRemoveAction(Constraint::Discard); - pageView.ApplyConstraint(constraintScale); + pageView.SetSizeMode( SIZE_EQUAL_TO_PARENT ); // Create cluster actors, add them to scroll view, and set the shear effect with the given center point. Cluster cluster = CreateClusterActor(clusterType, style); diff --git a/examples/hello-world/hello-world-example.cpp b/examples/hello-world/hello-world-example.cpp index 1994698..c2f263c 100644 --- a/examples/hello-world/hello-world-example.cpp +++ b/examples/hello-world/hello-world-example.cpp @@ -16,6 +16,7 @@ */ #include +#include using namespace Dali; diff --git a/examples/image/image-scaling-irregular-grid/image-scaling-irregular-grid-example.cpp b/examples/image/image-scaling-irregular-grid/image-scaling-irregular-grid-example.cpp index c653bcc..8343ec4 100644 --- a/examples/image/image-scaling-irregular-grid/image-scaling-irregular-grid-example.cpp +++ b/examples/image/image-scaling-irregular-grid/image-scaling-irregular-grid-example.cpp @@ -45,6 +45,7 @@ #include #include #include +#include // INTERNAL INCLUDES #include "grid-flags.h" @@ -182,7 +183,7 @@ Image CreateImage(const std::string& filename, unsigned int width, unsigned int attributes.SetSize( width, height ); attributes.SetScalingMode( scalingMode ); - Image image = Image::New( filename, attributes ); + Image image = ResourceImage::New( filename, attributes ); return image; } @@ -307,7 +308,7 @@ public: "" ); // Create an image scaling toggle button. (right of toolbar) - Image toggleScalingImage = Image::New( TOGGLE_SCALING_IMAGE ); + Image toggleScalingImage = ResourceImage::New( TOGGLE_SCALING_IMAGE ); Toolkit::PushButton toggleScalingButton = Toolkit::PushButton::New(); toggleScalingButton.SetBackgroundImage( toggleScalingImage ); toggleScalingButton.ClickedSignal().Connect( this, &ImageScalingIrregularGridController::OnToggleScalingTouched ); @@ -416,7 +417,7 @@ public: // coordinates in a frame defined by a parent actor: Actor gridActor = Actor::New(); - gridActor.ApplyConstraint( Constraint::New( Actor::SIZE, ParentSource( Actor::SIZE ), EqualToConstraint() ) ); + gridActor.SetSizeMode( SIZE_EQUAL_TO_PARENT ); gridActor.SetParentOrigin( ParentOrigin::CENTER ); gridActor.SetAnchorPoint( AnchorPoint::CENTER ); @@ -472,7 +473,7 @@ public: ImageActor imageActor = ImageActor::DownCast( actor ); Image oldImage = imageActor.GetImage(); - Image newImage = CreateImage( oldImage.GetFilename(), imageSize.width + 0.5f, imageSize.height + 0.5f, newMode ); + Image newImage = CreateImage( ResourceImage::DownCast(oldImage).GetUrl(), imageSize.width + 0.5f, imageSize.height + 0.5f, newMode ); imageActor.SetImage( newImage ); mScalingModes[id] = newMode; } @@ -514,7 +515,7 @@ public: const Vector2 imageSize = mSizes[gridImageActor.GetId()]; ImageAttributes::ScalingMode newMode = NextMode( mScalingModes[gridImageActor.GetId()] ); Image oldImage = gridImageActor.GetImage(); - Image newImage = CreateImage( oldImage.GetFilename(), imageSize.width, imageSize.height, newMode ); + Image newImage = CreateImage(ResourceImage::DownCast(oldImage).GetUrl(), imageSize.width, imageSize.height, newMode ); gridImageActor.SetImage( newImage ); mScalingModes[gridImageActor.GetId()] = newMode; diff --git a/examples/item-view/item-view-example.cpp b/examples/item-view/item-view-example.cpp index 6e1b4c2..1be6a05 100644 --- a/examples/item-view/item-view-example.cpp +++ b/examples/item-view/item-view-example.cpp @@ -162,15 +162,6 @@ const float LABEL_TEXT_SIZE_Y = 20.0f; const Vector3 INITIAL_OFFSCREEN_POSITION( 1000.0f, 0, -1000.0f ); -struct BorderSizeConstraintFunction -{ - Vector3 operator()(const Vector3& current, - const PropertyInput& parentSize) - { - return parentSize.GetVector3() + ITEM_BORDER_MARGIN_SIZE; - } -}; - static Vector3 DepthLayoutItemSizeFunctionPortrait(unsigned int numberOfColumns, float layoutWidth) { float width = (layoutWidth / static_cast(numberOfColumns + 1)) * DEPTH_LAYOUT_ITEM_SIZE_FACTOR_PORTRAIT; @@ -249,7 +240,7 @@ public: Vector2 stageSize = Stage::GetCurrent().GetSize(); // Create a border image shared by all the item actors - mBorderImage = Image::New(ITEM_BORDER_IMAGE_PATH); + mBorderImage = ResourceImage::New(ITEM_BORDER_IMAGE_PATH); // Creates a default view with a default tool bar. // The view is added to the stage. @@ -264,14 +255,14 @@ public: // Create an edit mode button. (left of toolbar) Toolkit::PushButton editButton = Toolkit::PushButton::New(); - editButton.SetBackgroundImage( Image::New( EDIT_IMAGE ) ); + editButton.SetBackgroundImage( ResourceImage::New( EDIT_IMAGE ) ); editButton.ClickedSignal().Connect( this, &ItemViewExample::OnModeButtonClicked); editButton.SetLeaveRequired( true ); mToolBar.AddControl( editButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, Toolkit::Alignment::HorizontalLeft, DemoHelper::DEFAULT_MODE_SWITCH_PADDING ); // Create a layout toggle button. (right of toolbar) mLayoutButton = Toolkit::PushButton::New(); - mLayoutButton.SetBackgroundImage( Image::New( SPIRAL_LAYOUT_IMAGE ) ); + mLayoutButton.SetBackgroundImage( ResourceImage::New( SPIRAL_LAYOUT_IMAGE ) ); mLayoutButton.ClickedSignal().Connect( this, &ItemViewExample::OnLayoutButtonClicked); mLayoutButton.SetLeaveRequired( true ); mToolBar.AddControl( mLayoutButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, Toolkit::Alignment::HorizontalRight, DemoHelper::DEFAULT_MODE_SWITCH_PADDING ); @@ -282,8 +273,8 @@ public: mDeleteButton.SetAnchorPoint(AnchorPoint::BOTTOM_RIGHT); mDeleteButton.SetPosition( BUTTON_BORDER, BUTTON_BORDER ); mDeleteButton.SetDrawMode( DrawMode::OVERLAY ); - mDeleteButton.SetBackgroundImage( Image::New( TOOLBAR_IMAGE ) ); - mDeleteButton.SetButtonImage( Image::New( DELETE_IMAGE ) ); + mDeleteButton.SetBackgroundImage( ResourceImage::New( TOOLBAR_IMAGE ) ); + mDeleteButton.SetButtonImage( ResourceImage::New( DELETE_IMAGE ) ); mDeleteButton.SetSize( stageSize.width * 0.15f, stageSize.width * 0.15f ); mDeleteButton.ClickedSignal().Connect( this, &ItemViewExample::OnDeleteButtonClicked); mDeleteButton.SetLeaveRequired( true ); @@ -296,8 +287,8 @@ public: mInsertButton.SetAnchorPoint(AnchorPoint::BOTTOM_RIGHT); mInsertButton.SetPosition( BUTTON_BORDER, BUTTON_BORDER ); mInsertButton.SetDrawMode( DrawMode::OVERLAY ); - mInsertButton.SetBackgroundImage( Image::New( TOOLBAR_IMAGE ) ); - mInsertButton.SetButtonImage( Image::New( INSERT_IMAGE ) ); + mInsertButton.SetBackgroundImage( ResourceImage::New( TOOLBAR_IMAGE ) ); + mInsertButton.SetButtonImage( ResourceImage::New( INSERT_IMAGE ) ); mInsertButton.SetSize( stageSize.width * 0.15f, stageSize.width * 0.15f ); mInsertButton.ClickedSignal().Connect( this, &ItemViewExample::OnInsertButtonClicked); mInsertButton.SetLeaveRequired( true ); @@ -310,8 +301,8 @@ public: mReplaceButton.SetAnchorPoint(AnchorPoint::BOTTOM_RIGHT); mReplaceButton.SetPosition( BUTTON_BORDER, BUTTON_BORDER ); mReplaceButton.SetDrawMode( DrawMode::OVERLAY ); - mReplaceButton.SetBackgroundImage( Image::New( TOOLBAR_IMAGE ) ); - mReplaceButton.SetButtonImage( Image::New( REPLACE_IMAGE ) ); + mReplaceButton.SetBackgroundImage( ResourceImage::New( TOOLBAR_IMAGE ) ); + mReplaceButton.SetButtonImage( ResourceImage::New( REPLACE_IMAGE ) ); mReplaceButton.SetSize( stageSize.width * 0.15f, stageSize.width * 0.15f ); mReplaceButton.ClickedSignal().Connect( this, &ItemViewExample::OnReplaceButtonClicked); mReplaceButton.SetLeaveRequired( true ); @@ -842,19 +833,19 @@ public: { case SPIRAL_LAYOUT: { - mLayoutButton.SetBackgroundImage( Image::New( SPIRAL_LAYOUT_IMAGE ) ); + mLayoutButton.SetBackgroundImage( ResourceImage::New( SPIRAL_LAYOUT_IMAGE ) ); break; } case GRID_LAYOUT: { - mLayoutButton.SetBackgroundImage( Image::New( GRID_LAYOUT_IMAGE ) ); + mLayoutButton.SetBackgroundImage( ResourceImage::New( GRID_LAYOUT_IMAGE ) ); break; } case DEPTH_LAYOUT: { - mLayoutButton.SetBackgroundImage( Image::New( DEPTH_LAYOUT_IMAGE ) ); + mLayoutButton.SetBackgroundImage( ResourceImage::New( DEPTH_LAYOUT_IMAGE ) ); break; } @@ -883,7 +874,7 @@ public: // From ItemFactory virtual Actor NewItem(unsigned int itemId) { // Create an image actor for this item - Image image = Image::New( IMAGE_PATHS[itemId % NUM_IMAGES] ); + Image image = ResourceImage::New( IMAGE_PATHS[itemId % NUM_IMAGES] ); Actor actor = ImageActor::New(image); actor.SetPosition( INITIAL_OFFSCREEN_POSITION ); @@ -895,9 +886,8 @@ public: // From ItemFactory borderActor.SetStyle( ImageActor::STYLE_NINE_PATCH ); borderActor.SetNinePatchBorder( Vector4( ITEM_IMAGE_BORDER_LEFT, ITEM_IMAGE_BORDER_TOP, ITEM_IMAGE_BORDER_RIGHT, ITEM_IMAGE_BORDER_BOTTOM ) ); borderActor.SetColorMode( USE_OWN_MULTIPLY_PARENT_COLOR ); // darken with parent image-actor - - Constraint constraint = Constraint::New( Actor::SIZE, ParentSource( Actor::SIZE ), BorderSizeConstraintFunction() ); - borderActor.ApplyConstraint(constraint); + borderActor.SetSizeMode( SIZE_FIXED_OFFSET_FROM_PARENT ); + borderActor.SetSizeModeFactor( ITEM_BORDER_MARGIN_SIZE ); actor.Add(borderActor); actor.SetKeyboardFocusable( true ); @@ -922,7 +912,7 @@ public: // From ItemFactory } actor.Add( checkbox ); - ImageActor tick = ImageActor::New( Image::New(SELECTED_IMAGE) ); + ImageActor tick = ImageActor::New( ResourceImage::New(SELECTED_IMAGE) ); tick.SetColorMode( USE_OWN_COLOR ); tick.SetName( "Tick" ); tick.SetParentOrigin( ParentOrigin::TOP_RIGHT ); diff --git a/examples/logging/logging-example.cpp b/examples/logging/logging-example.cpp index c6fc20c..5de3dc6 100644 --- a/examples/logging/logging-example.cpp +++ b/examples/logging/logging-example.cpp @@ -276,9 +276,9 @@ class LoggingController: public ConnectionTracker button.SetPosition( buttonXDP, 0 ); button.SetSize( buttonWidthDP, DP(BUTTON_HEIGHT) ); - button.SetSelectedImage( Dali::Image::New( PUSHBUTTON_PRESS_IMAGE ) ); - button.SetButtonImage( Dali::Image::New( PUSHBUTTON_BUTTON_IMAGE ) ); - button.SetDisabledImage( Dali::Image::New( PUSHBUTTON_DISABLED_IMAGE ) ); + button.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) ); + button.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) ); + button.SetDisabledImage( Dali::ResourceImage::New( PUSHBUTTON_DISABLED_IMAGE ) ); button.ClickedSignal().Connect( this, &LoggingController::OnButtonClicked ); @@ -296,9 +296,9 @@ class LoggingController: public ConnectionTracker button.SetPosition( buttonXDP, 0 ); button.SetSize( buttonWidthDP, DP(BUTTON_HEIGHT) ); - button.SetSelectedImage( Dali::Image::New( PUSHBUTTON_PRESS_IMAGE ) ); - button.SetButtonImage( Dali::Image::New( PUSHBUTTON_BUTTON_IMAGE ) ); - button.SetDisabledImage( Dali::Image::New( PUSHBUTTON_DISABLED_IMAGE ) ); + button.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) ); + button.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) ); + button.SetDisabledImage( Dali::ResourceImage::New( PUSHBUTTON_DISABLED_IMAGE ) ); button.ClickedSignal().Connect( this, &LoggingController::OnButtonClicked ); @@ -327,9 +327,9 @@ class LoggingController: public ConnectionTracker button.SetPosition( buttonXDP, 0 ); button.SetSize( buttonWidthDP, DP(BUTTON_HEIGHT) ); - button.SetSelectedImage( Dali::Image::New( PUSHBUTTON_PRESS_IMAGE ) ); - button.SetButtonImage( Dali::Image::New( PUSHBUTTON_BUTTON_IMAGE ) ); - button.SetDisabledImage( Dali::Image::New( PUSHBUTTON_DISABLED_IMAGE ) ); + button.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) ); + button.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) ); + button.SetDisabledImage( Dali::ResourceImage::New( PUSHBUTTON_DISABLED_IMAGE ) ); button.ClickedSignal().Connect( this, &LoggingController::OnButtonClicked ); @@ -347,9 +347,9 @@ class LoggingController: public ConnectionTracker button.SetPosition( buttonXDP, 0 ); button.SetSize( buttonWidthDP, DP(BUTTON_HEIGHT) ); - button.SetSelectedImage( Dali::Image::New( PUSHBUTTON_PRESS_IMAGE ) ); - button.SetButtonImage( Dali::Image::New( PUSHBUTTON_BUTTON_IMAGE ) ); - button.SetDisabledImage( Dali::Image::New( PUSHBUTTON_DISABLED_IMAGE ) ); + button.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) ); + button.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) ); + button.SetDisabledImage( Dali::ResourceImage::New( PUSHBUTTON_DISABLED_IMAGE ) ); button.ClickedSignal().Connect( this, &LoggingController::OnButtonClicked ); @@ -378,9 +378,9 @@ class LoggingController: public ConnectionTracker button.SetPosition( buttonXDP, 0 ); button.SetSize( buttonWidthDP, DP(BUTTON_HEIGHT) ); - button.SetSelectedImage( Dali::Image::New( PUSHBUTTON_PRESS_IMAGE ) ); - button.SetButtonImage( Dali::Image::New( PUSHBUTTON_BUTTON_IMAGE ) ); - button.SetDisabledImage( Dali::Image::New( PUSHBUTTON_DISABLED_IMAGE ) ); + button.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) ); + button.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) ); + button.SetDisabledImage( Dali::ResourceImage::New( PUSHBUTTON_DISABLED_IMAGE ) ); button.ClickedSignal().Connect( this, &LoggingController::OnButtonClicked ); @@ -398,9 +398,9 @@ class LoggingController: public ConnectionTracker button.SetPosition( buttonXDP, 0 ); button.SetSize( buttonWidthDP, DP(BUTTON_HEIGHT) ); - button.SetSelectedImage( Dali::Image::New( PUSHBUTTON_PRESS_IMAGE ) ); - button.SetButtonImage( Dali::Image::New( PUSHBUTTON_BUTTON_IMAGE ) ); - button.SetDisabledImage( Dali::Image::New( PUSHBUTTON_DISABLED_IMAGE ) ); + button.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) ); + button.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) ); + button.SetDisabledImage( Dali::ResourceImage::New( PUSHBUTTON_DISABLED_IMAGE ) ); button.ClickedSignal().Connect( this, &LoggingController::OnButtonClicked ); @@ -500,9 +500,9 @@ class LoggingController: public ConnectionTracker button.SetPosition( buttonXDP, 0 ); button.SetSize( buttonWidthDP, DP(BUTTON_HEIGHT) ); - button.SetSelectedImage( Dali::Image::New( PUSHBUTTON_PRESS_IMAGE ) ); - button.SetButtonImage( Dali::Image::New( PUSHBUTTON_BUTTON_IMAGE ) ); - button.SetDisabledImage( Dali::Image::New( PUSHBUTTON_DISABLED_IMAGE ) ); + button.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) ); + button.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) ); + button.SetDisabledImage( Dali::ResourceImage::New( PUSHBUTTON_DISABLED_IMAGE ) ); button.ClickedSignal().Connect( this, &LoggingController::OnButtonClicked ); @@ -517,17 +517,17 @@ class LoggingController: public ConnectionTracker // TODO } - bool LoggingRadioSelect( Toolkit::Button button, bool state ) + bool LoggingRadioSelect( Toolkit::Button button ) { - if( button.GetName() == LOGGER_1_RADIO_ID && state == true ) + if( button.GetName() == LOGGER_1_RADIO_ID && button.IsSelected() == true ) { mCurrentLogger = 0; } - else if( button.GetName() == LOGGER_2_RADIO_ID && state == true ) + else if( button.GetName() == LOGGER_2_RADIO_ID && button.IsSelected() == true ) { mCurrentLogger = 1; } - else if( button.GetName() == LOGGER_3_RADIO_ID && state == true ) + else if( button.GetName() == LOGGER_3_RADIO_ID && button.IsSelected() == true ) { mCurrentLogger = 2; } @@ -555,9 +555,9 @@ class LoggingController: public ConnectionTracker } } - bool FrequencyRadioSelect( Toolkit::Button button, bool state ) + bool FrequencyRadioSelect( Toolkit::Button button ) { - if( button.GetName() == FREQUENCY_1_RADIO_ID && state == true ) + if( button.GetName() == FREQUENCY_1_RADIO_ID && button.IsSelected() == true ) { if( mPerformanceLoggers[mCurrentLogger] ) { @@ -568,7 +568,7 @@ class LoggingController: public ConnectionTracker mLoggerStates[mCurrentLogger].frequency = HIGH_FREQUENCY; } } - else if( button.GetName() == FREQUENCY_2_RADIO_ID && state == true ) + else if( button.GetName() == FREQUENCY_2_RADIO_ID && button.IsSelected() == true ) { if( mPerformanceLoggers[mCurrentLogger] ) { @@ -579,7 +579,7 @@ class LoggingController: public ConnectionTracker mLoggerStates[mCurrentLogger].frequency = MEDIUM_FREQUENCY; } } - else if( button.GetName() == FREQUENCY_3_RADIO_ID && state == true ) + else if( button.GetName() == FREQUENCY_3_RADIO_ID && button.IsSelected() == true ) { if( mPerformanceLoggers[mCurrentLogger] ) { diff --git a/examples/motion/motion-blur-example.cpp b/examples/motion/motion-blur-example.cpp index 6cfec92..29d77b1 100644 --- a/examples/motion/motion-blur-example.cpp +++ b/examples/motion/motion-blur-example.cpp @@ -149,8 +149,8 @@ public: APPLICATION_TITLE ); //Add an effects icon on the right of the title - mIconEffectsOff = Image::New( EFFECTS_OFF_ICON ); - mIconEffectsOn = Image::New( EFFECTS_ON_ICON ); + mIconEffectsOff = ResourceImage::New( EFFECTS_OFF_ICON ); + mIconEffectsOn = ResourceImage::New( EFFECTS_ON_ICON ); mActorEffectsButton = Toolkit::PushButton::New(); mActorEffectsButton.SetBackgroundImage( mIconEffectsOff ); mActorEffectsButton.ClickedSignal().Connect( this, &MotionBlurExampleApp::OnEffectButtonClicked ); @@ -158,7 +158,7 @@ public: // Creates a mode button. // Create a effect toggle button. (right of toolbar) - Image imageLayout = Image::New( LAYOUT_IMAGE ); + Image imageLayout = ResourceImage::New( LAYOUT_IMAGE ); Toolkit::PushButton layoutButton = Toolkit::PushButton::New(); layoutButton.SetBackgroundImage(imageLayout); layoutButton.ClickedSignal().Connect( this, &MotionBlurExampleApp::OnLayoutButtonClicked); @@ -187,7 +187,7 @@ public: // Motion blurred actor // - Image image = Image::New( MOTION_BLUR_ACTOR_IMAGE1 ); + Image image = ResourceImage::New( MOTION_BLUR_ACTOR_IMAGE1 ); mMotionBlurImageActor = ImageActor::New(image); mMotionBlurImageActor.SetParentOrigin( ParentOrigin::CENTER ); mMotionBlurImageActor.SetSize(MOTION_BLUR_ACTOR_WIDTH, MOTION_BLUR_ACTOR_HEIGHT); @@ -478,7 +478,7 @@ public: mCurrentImage = 0; } - Image blurImage = Image::New( MOTION_BLUR_ACTOR_IMAGES[mCurrentImage] ); + Image blurImage = ResourceImage::New( MOTION_BLUR_ACTOR_IMAGES[mCurrentImage] ); mMotionBlurImageActor.SetImage(blurImage); } diff --git a/examples/motion/motion-stretch-example.cpp b/examples/motion/motion-stretch-example.cpp index bd88490..50ea284 100644 --- a/examples/motion/motion-stretch-example.cpp +++ b/examples/motion/motion-stretch-example.cpp @@ -136,8 +136,8 @@ public: APPLICATION_TITLE ); //Add an slideshow icon on the right of the title - mIconEffectsOff = Image::New( EFFECTS_OFF_ICON ); - mIconEffectsOn = Image::New( EFFECTS_ON_ICON ); + mIconEffectsOff = ResourceImage::New( EFFECTS_OFF_ICON ); + mIconEffectsOn = ResourceImage::New( EFFECTS_ON_ICON ); mActorEffectsButton = Toolkit::PushButton::New(); mActorEffectsButton.SetBackgroundImage( mIconEffectsOff ); mActorEffectsButton.ClickedSignal().Connect( this, &MotionStretchExampleApp::OnEffectButtonClicked ); @@ -145,7 +145,7 @@ public: // Creates a mode button. // Create a effect toggle button. (right of toolbar) - Image imageLayout = Image::New( LAYOUT_IMAGE ); + Image imageLayout = ResourceImage::New( LAYOUT_IMAGE ); Toolkit::PushButton layoutButton = Toolkit::PushButton::New(); layoutButton.SetBackgroundImage(imageLayout); layoutButton.ClickedSignal().Connect( this, &MotionStretchExampleApp::OnLayoutButtonClicked); @@ -174,7 +174,7 @@ public: // Motion stretched actor // - Image image = Image::New( MOTION_STRETCH_ACTOR_IMAGE1 ); + Image image = ResourceImage::New( MOTION_STRETCH_ACTOR_IMAGE1 ); mMotionStretchImageActor = ImageActor::New(image); mMotionStretchImageActor.SetParentOrigin( ParentOrigin::CENTER ); mMotionStretchImageActor.SetAnchorPoint( AnchorPoint::CENTER ); @@ -390,7 +390,7 @@ public: mCurrentImage = 0; } - Image stretchImage = Image::New( MOTION_STRETCH_ACTOR_IMAGES[mCurrentImage] ); + Image stretchImage = ResourceImage::New( MOTION_STRETCH_ACTOR_IMAGES[mCurrentImage] ); mMotionStretchImageActor.SetImage(stretchImage); } diff --git a/examples/new-window/new-window-example.cpp b/examples/new-window/new-window-example.cpp index 230dc21..3a1f989 100644 --- a/examples/new-window/new-window-example.cpp +++ b/examples/new-window/new-window-example.cpp @@ -16,6 +16,8 @@ #include #include "../shared/view.h" +#include +#include using namespace Dali; using namespace Dali::Toolkit; @@ -145,7 +147,7 @@ void NewWindowController::Create( Application& app ) } mLoseContextButton = Toolkit::PushButton::New(); - mLoseContextButton.SetBackgroundImage( Image::New( LOSE_CONTEXT_IMAGE ) ); + mLoseContextButton.SetBackgroundImage( ResourceImage::New( LOSE_CONTEXT_IMAGE ) ); mLoseContextButton.ClickedSignal().Connect( this, &NewWindowController::OnLoseContextButtonClicked ); mToolBar.AddControl( mLoseContextButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, Toolkit::Alignment::HorizontalRight, DemoHelper::DEFAULT_MODE_SWITCH_PADDING ); @@ -156,7 +158,7 @@ void NewWindowController::Create( Application& app ) logoLayoutActor.SetScale(0.5f); mContentLayer.Add(logoLayoutActor); - Image image = Image::New(DALI_IMAGE_DIR "dali-logo.png"); + Image image = ResourceImage::New(DALI_IMAGE_DIR "dali-logo.png"); mImageActor = ImageActor::New(image); mImageActor.SetName("dali-logo"); mImageActor.SetParentOrigin(ParentOrigin::CENTER); @@ -191,7 +193,7 @@ bool NewWindowController::OnLoseContextButtonClicked( Toolkit::Button button ) void NewWindowController::CreateMeshActor() { - mEffectImage = Image::New(EFFECT_IMAGE); + mEffectImage = ResourceImage::New(EFFECT_IMAGE); Material baseMaterial = Material::New( "Material1" ); Dali::MeshActor meshActor = MeshActor::New( CreateMesh(true, baseMaterial) ); @@ -217,7 +219,7 @@ void NewWindowController::CreateMeshActor() FrameBufferImage NewWindowController::CreateMirrorImage(const char* imageName) { FrameBufferImage fbo; - Image image = Image::New(imageName); + Image image = ResourceImage::New(imageName); fbo = CreateFrameBufferForImage(imageName, image, ShaderEffect()); return fbo; } @@ -225,8 +227,8 @@ FrameBufferImage NewWindowController::CreateMirrorImage(const char* imageName) ImageActor NewWindowController::CreateBlurredMirrorImage(const char* imageName) { FrameBufferImage fbo; - Image image = Image::New( imageName ); - Vector2 FBOSize = Image::GetImageSize(imageName); + Image image = ResourceImage::New( imageName ); + Vector2 FBOSize = ResourceImage::GetImageSize(imageName); fbo = FrameBufferImage::New( FBOSize.width, FBOSize.height, Pixel::RGBA8888); GaussianBlurView gbv = GaussianBlurView::New(5, 2.0f, Pixel::RGBA8888, 0.5f, 0.5f, true); gbv.SetBackgroundColor(Color::TRANSPARENT); @@ -244,7 +246,7 @@ ImageActor NewWindowController::CreateBlurredMirrorImage(const char* imageName) FrameBufferImage NewWindowController::CreateFrameBufferForImage(const char* imageName, Image image, ShaderEffect shaderEffect) { Stage stage = Stage::GetCurrent(); - Vector2 FBOSize = Image::GetImageSize(imageName); + Vector2 FBOSize = ResourceImage::GetImageSize(imageName); FrameBufferImage framebuffer = FrameBufferImage::New(FBOSize.x, FBOSize.y ); @@ -285,10 +287,10 @@ FrameBufferImage NewWindowController::CreateFrameBufferForImage(const char* imag void NewWindowController::CreateBubbles(Vector2 stageSize) { mEmitter = Toolkit::BubbleEmitter::New( stageSize, - Image::New( DALI_IMAGE_DIR "bubble-ball.png" ), + ResourceImage::New( DALI_IMAGE_DIR "bubble-ball.png" ), 1000, Vector2( 5.0f, 5.0f ) ); - Image background = Image::New(BACKGROUND_IMAGE); + Image background = ResourceImage::New(BACKGROUND_IMAGE); mEmitter.SetBackground( background, mHSVDelta ); Actor bubbleRoot = mEmitter.GetRootActor(); mContentLayer.Add( bubbleRoot ); @@ -373,7 +375,7 @@ void NewWindowController::CreateBlending() blendShader.SetEffectImage( fb2 ); blendShader.SetUniform("alpha", 0.5f); - mBaseImage = Image::New(BASE_IMAGE); + mBaseImage = ResourceImage::New(BASE_IMAGE); mBlendActor = ImageActor::New( mBaseImage ); mBlendActor.SetParentOrigin(ParentOrigin::CENTER); mBlendActor.SetPosition(Vector3(150.0f, 200.0f, 0.0f)); diff --git a/examples/page-turn-view/page-turn-view-example.cpp b/examples/page-turn-view/page-turn-view-example.cpp index e08bf34..fa412ad 100644 --- a/examples/page-turn-view/page-turn-view-example.cpp +++ b/examples/page-turn-view/page-turn-view-example.cpp @@ -15,11 +15,12 @@ * */ +#include +#include #include #include #include -#include -#include +#include using namespace Dali; using namespace Dali::Toolkit; @@ -79,11 +80,11 @@ class PortraitPageFactory : public PageFactory { if( pageId == 0 ) { - return ImageActor::New( Image::New( BOOK_COVER_PORTRAIT ) ); + return ImageActor::New( ResourceImage::New( BOOK_COVER_PORTRAIT ) ); } else { - return ImageActor::New( Image::New( PAGE_IMAGES_PORTRAIT[ (pageId-1) % NUMBER_OF_PORTRAIT_IMAGE ] ) ); + return ImageActor::New( ResourceImage::New( PAGE_IMAGES_PORTRAIT[ (pageId-1) % NUMBER_OF_PORTRAIT_IMAGE ] ) ); } } }; @@ -109,14 +110,14 @@ class LandscapePageFactory : public PageFactory ImageActor pageBack; if( pageId == 0 ) { - pageFront = ImageActor::New( Image::New( BOOK_COVER_LANDSCAPE ) ); - pageBack = ImageActor::New( Image::New( BOOK_COVER_BACK_LANDSCAPE ) ); + pageFront = ImageActor::New( ResourceImage::New( BOOK_COVER_LANDSCAPE ) ); + pageBack = ImageActor::New( ResourceImage::New( BOOK_COVER_BACK_LANDSCAPE ) ); } else { unsigned int imageId = (pageId-1)*2; - pageFront = ImageActor::New( Image::New( PAGE_IMAGES_LANDSCAPE[ imageId % NUMBER_OF_LANDSCAPE_IMAGE ] ) ); - pageBack = ImageActor::New( Image::New( PAGE_IMAGES_LANDSCAPE[ (imageId+1) % NUMBER_OF_LANDSCAPE_IMAGE ] ) ); + pageFront = ImageActor::New( ResourceImage::New( PAGE_IMAGES_LANDSCAPE[ imageId % NUMBER_OF_LANDSCAPE_IMAGE ] ) ); + pageBack = ImageActor::New( ResourceImage::New( PAGE_IMAGES_LANDSCAPE[ (imageId+1) % NUMBER_OF_LANDSCAPE_IMAGE ] ) ); } pageFront.Add(pageBack); return pageFront; diff --git a/examples/radial-menu/radial-menu-example.cpp b/examples/radial-menu/radial-menu-example.cpp index 50ac16b..bce680f 100644 --- a/examples/radial-menu/radial-menu-example.cpp +++ b/examples/radial-menu/radial-menu-example.cpp @@ -135,8 +135,8 @@ void RadialMenuExample::OnInit(Application& app) TOOLBAR_IMAGE, APPLICATION_TITLE ); - mIconPlay = Image::New( PLAY_ICON ); - mIconStop = Image::New( STOP_ICON ); + mIconPlay = ResourceImage::New( PLAY_ICON ); + mIconStop = ResourceImage::New( STOP_ICON ); mPlayStopButton = Toolkit::PushButton::New(); mPlayStopButton.SetBackgroundImage( mIconStop ); @@ -147,7 +147,7 @@ void RadialMenuExample::OnInit(Application& app) Toolkit::Alignment::HorizontalRight, DemoHelper::DEFAULT_PLAY_PADDING ); - Vector2 imgSize = Image::GetImageSize(TEST_OUTER_RING_FILENAME); + Vector2 imgSize = ResourceImage::GetImageSize(TEST_OUTER_RING_FILENAME); Vector2 stageSize = stage.GetSize(); float minStageDimension = std::min(stageSize.width, stageSize.height); @@ -163,7 +163,7 @@ void RadialMenuExample::OnInit(Application& app) mRadialSweepView3.SetInitialActorAngle(Degree(-110)); mRadialSweepView3.SetFinalActorAngle(Degree(0)); - Image dial = Image::New( TEST_DIAL_FILENAME ); + Image dial = ResourceImage::New( TEST_DIAL_FILENAME ); mDialActor = ImageActor::New( dial ); mDialActor.SetPositionInheritanceMode(USE_PARENT_POSITION); mDialActor.SetScale(scale); @@ -238,13 +238,13 @@ RadialSweepView RadialMenuExample::CreateSweepView( std::string imageName, Degree finalAngle) { // Create the image - Image image = Image::New(imageName); + Image image = ResourceImage::New(imageName); mImageActor = ImageActor::New(image); mImageActor.SetParentOrigin(ParentOrigin::CENTER); mImageActor.SetAnchorPoint(AnchorPoint::CENTER); // Create the stencil - Vector2 imageSize = Image::GetImageSize(imageName); + Vector2 imageSize = ResourceImage::GetImageSize(imageName); float diameter = std::max(imageSize.width, imageSize.height); RadialSweepView radialSweepView = RadialSweepView::New(); radialSweepView.SetDiameter( diameter ); diff --git a/examples/scroll-view/scroll-view-example.cpp b/examples/scroll-view/scroll-view-example.cpp index 0c45cc9..f42d806 100644 --- a/examples/scroll-view/scroll-view-example.cpp +++ b/examples/scroll-view/scroll-view-example.cpp @@ -194,11 +194,11 @@ public: TOOLBAR_IMAGE, "" ); - mEffectIcon[ DepthEffect ] = Image::New( EFFECT_DEPTH_IMAGE ); - mEffectIcon[ CubeEffect ] = Image::New( EFFECT_INNER_CUBE_IMAGE ); - mEffectIcon[ PageCarouselEffect ] = Image::New( EFFECT_CAROUSEL_IMAGE ); - mEffectIcon[ PageCubeEffect ] = Image::New( EFFECT_CAROUSEL_IMAGE ); - mEffectIcon[ PageSpiralEffect ] = Image::New( EFFECT_CAROUSEL_IMAGE ); + mEffectIcon[ DepthEffect ] = ResourceImage::New( EFFECT_DEPTH_IMAGE ); + mEffectIcon[ CubeEffect ] = ResourceImage::New( EFFECT_INNER_CUBE_IMAGE ); + mEffectIcon[ PageCarouselEffect ] = ResourceImage::New( EFFECT_CAROUSEL_IMAGE ); + mEffectIcon[ PageCubeEffect ] = ResourceImage::New( EFFECT_CAROUSEL_IMAGE ); + mEffectIcon[ PageSpiralEffect ] = ResourceImage::New( EFFECT_CAROUSEL_IMAGE ); // Create a effect change button. (right of toolbar) mEffectChangeButton = Toolkit::PushButton::New(); @@ -298,7 +298,7 @@ private: Actor CreatePage() { Actor page = Actor::New(); - page.ApplyConstraint( Constraint::New( Actor::SIZE, ParentSource( Actor::SIZE ), EqualToConstraint() ) ); + page.SetSizeMode( SIZE_EQUAL_TO_PARENT ); page.SetParentOrigin( ParentOrigin::CENTER ); page.SetAnchorPoint( AnchorPoint::CENTER ); @@ -450,7 +450,7 @@ private: void ApplyEffectToPage(Actor page) { page.RemoveConstraints(); - page.ApplyConstraint( Constraint::New( Actor::SIZE, ParentSource( Actor::SIZE ), EqualToConstraint() ) ); + page.SetSizeMode( SIZE_EQUAL_TO_PARENT ); switch( mEffectMode ) { @@ -563,7 +563,7 @@ private: attributes.SetSize(width, height); attributes.SetScalingMode(ImageAttributes::ShrinkToFit); - Image img = Image::New(filename, attributes); + Image img = ResourceImage::New(filename, attributes); ImageActor actor = ImageActor::New(img); actor.SetName( filename ); actor.SetParentOrigin(ParentOrigin::CENTER); diff --git a/examples/shader-effect/bubble-effect-example.cpp b/examples/shader-effect/bubble-effect-example.cpp index 6768ae2..f5b9d64 100644 --- a/examples/shader-effect/bubble-effect-example.cpp +++ b/examples/shader-effect/bubble-effect-example.cpp @@ -94,7 +94,7 @@ private: // Add a button to change background. (right of toolbar) mChangeBackgroundButton = Toolkit::PushButton::New(); - mChangeBackgroundButton.SetBackgroundImage( Image::New( CHANGE_BACKGROUND_ICON ) ); + mChangeBackgroundButton.SetBackgroundImage( ResourceImage::New( CHANGE_BACKGROUND_ICON ) ); mChangeBackgroundButton.ClickedSignal().Connect( this, &BubbleEffectExample::OnChangeIconClicked ); toolBar.AddControl( mChangeBackgroundButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, @@ -102,7 +102,7 @@ private: DemoHelper::DEFAULT_MODE_SWITCH_PADDING ); // Add a button to change bubble shape. ( left of bar ) mChangeBubbleShapeButton = Toolkit::PushButton::New(); - mChangeBubbleShapeButton.SetBackgroundImage( Image::New( CHANGE_BUBBLE_SHAPE_ICON ) ); + mChangeBubbleShapeButton.SetBackgroundImage( ResourceImage::New( CHANGE_BUBBLE_SHAPE_ICON ) ); mChangeBubbleShapeButton.ClickedSignal().Connect( this, &BubbleEffectExample::OnChangeIconClicked ); toolBar.AddControl( mChangeBubbleShapeButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, @@ -111,10 +111,10 @@ private: // Create and initialize the BubbleEmitter object mBubbleEmitter = Toolkit::BubbleEmitter::New( stageSize, - Image::New( BUBBLE_SHAPE_IMAGES[mCurrentBubbleShapeImageId] ), + ResourceImage::New( BUBBLE_SHAPE_IMAGES[mCurrentBubbleShapeImageId] ), DEFAULT_NUMBER_OF_BUBBLES, DEFAULT_BUBBLE_SIZE); - mBackgroundImage = Image::New( BACKGROUND_IMAGES[mCurrentBackgroundImageId] ); + mBackgroundImage = ResourceImage::New( BACKGROUND_IMAGES[mCurrentBackgroundImageId] ); mBubbleEmitter.SetBackground( mBackgroundImage, mHSVDelta ); // Get the root actor of all bubbles, and add it to stage. @@ -235,7 +235,7 @@ private: { if(button == mChangeBackgroundButton) { - mBackgroundImage = Image::New( BACKGROUND_IMAGES[ ++mCurrentBackgroundImageId % NUM_BACKGROUND_IMAGES ] ); + mBackgroundImage = ResourceImage::New( BACKGROUND_IMAGES[ ++mCurrentBackgroundImageId % NUM_BACKGROUND_IMAGES ] ); mBubbleEmitter.SetBackground( mBackgroundImage, mHSVDelta ); @@ -243,7 +243,7 @@ private: } else if( button == mChangeBubbleShapeButton ) { - mBubbleEmitter.SetShapeImage( Image::New( BUBBLE_SHAPE_IMAGES[ ++mCurrentBubbleShapeImageId % NUM_BUBBLE_SHAPE_IMAGES ] ) ); + mBubbleEmitter.SetShapeImage( ResourceImage::New( BUBBLE_SHAPE_IMAGES[ ++mCurrentBubbleShapeImageId % NUM_BUBBLE_SHAPE_IMAGES ] ) ); } return true; } diff --git a/examples/shader-effect/dissolve-effect-example.cpp b/examples/shader-effect/dissolve-effect-example.cpp index 7373a6f..25f5205 100644 --- a/examples/shader-effect/dissolve-effect-example.cpp +++ b/examples/shader-effect/dissolve-effect-example.cpp @@ -138,6 +138,7 @@ private: Toolkit::View mView; Toolkit::ToolBar mToolBar; Layer mContent; + Actor mParent; ImageActor mCurrentImage; ImageActor mNextImage; @@ -191,8 +192,8 @@ void DissolveEffectApp::OnInit( Application& application ) mContent = DemoHelper::CreateView( application, mView,mToolBar, "", TOOLBAR_IMAGE, "" ); // Add an effect-changing button on the right of the tool bar. - mIconHighP = Image::New( EFFECT_HIGHP_IMAGE ); - mIconMediumP = Image::New( EFFECT_MEDIUMP_IMAGE ); + mIconHighP = ResourceImage::New( EFFECT_HIGHP_IMAGE ); + mIconMediumP = ResourceImage::New( EFFECT_MEDIUMP_IMAGE ); mEffectChangeButton = Toolkit::PushButton::New(); mEffectChangeButton.SetBackgroundImage(mIconHighP); mEffectChangeButton.ClickedSignal().Connect( this, &DissolveEffectApp::OnEffectButtonClicked ); @@ -202,8 +203,8 @@ void DissolveEffectApp::OnInit( Application& application ) // TODO // Add an slide-show button on the right of the title - mIconPlay = Image::New( PLAY_ICON ); - mIconStop = Image::New( STOP_ICON ); + mIconPlay = ResourceImage::New( PLAY_ICON ); + mIconStop = ResourceImage::New( STOP_ICON ); mPlayStopButton = Toolkit::PushButton::New(); mPlayStopButton.SetBackgroundImage( mIconPlay ); mPlayStopButton.ClickedSignal().Connect( this, &DissolveEffectApp::OnSildeshowButtonClicked ); @@ -217,18 +218,24 @@ void DissolveEffectApp::OnInit( Application& application ) mCurrentImageEffect = Toolkit::DissolveEffect::New(mUseHighPrecision); mNextImageEffect = Toolkit::DissolveEffect::New(mUseHighPrecision); - mViewTimer = Timer::New( VIEWINGTIME ); mViewTimer.TickSignal().Connect( this, &DissolveEffectApp::OnTimerTick ); mTimerReady = true; + // Set size to stage size to avoid seeing a black border on transition + mParent = Actor::New(); + mParent.SetSize( Stage::GetCurrent().GetSize() ); + mParent.SetPositionInheritanceMode( USE_PARENT_POSITION ); + mContent.Add( mParent ); + mSizeConstraint= Constraint::New( Actor::SCALE, LocalSource( Actor::SIZE ), ParentSource( Actor::SIZE ), ScaleToFitKeepAspectRatioConstraint() ); // show the first image - mCurrentImage = ImageActor::New( Image::New( IMAGES[mIndex] ) ); + mCurrentImage = ImageActor::New( ResourceImage::New( IMAGES[mIndex] ) ); mCurrentImage.SetPositionInheritanceMode(USE_PARENT_POSITION_PLUS_LOCAL_POSITION); mCurrentImage.ApplyConstraint( mSizeConstraint ); - mContent.Add(mCurrentImage); + mParent.Add( mCurrentImage ); + mPanGestureDetector.Attach( mCurrentImage ); } @@ -252,12 +259,12 @@ void DissolveEffectApp::OnPanGesture( Actor actor, const PanGesture& gesture ) mIndex = (mIndex + NUM_IMAGES -1)%NUM_IMAGES; } - Image image = Image::New( IMAGES[ mIndex ] ); + Image image = ResourceImage::New( IMAGES[ mIndex ] ); mNextImage = ImageActor::New( image ); mNextImage.SetPositionInheritanceMode(USE_PARENT_POSITION_PLUS_LOCAL_POSITION); mNextImage.ApplyConstraint( mSizeConstraint ); mNextImage.SetZ(INITIAL_DEPTH); - mContent.Add(mNextImage); + mParent.Add( mNextImage ); Vector2 size = Vector2( mCurrentImage.GetCurrentSize() ); StartTransition( gesture.position / size, gesture.displacement * Vector2(1.0, size.x/size.y)); } @@ -325,7 +332,7 @@ bool DissolveEffectApp::OnSildeshowButtonClicked( Toolkit::Button button ) if( mSlideshow ) { mPlayStopButton.SetBackgroundImage( mIconStop ); - mPanGestureDetector.Detach( mContent ); + mPanGestureDetector.Detach( mParent ); mViewTimer.Start(); mTimerReady = false; } @@ -333,7 +340,7 @@ bool DissolveEffectApp::OnSildeshowButtonClicked( Toolkit::Button button ) { mPlayStopButton.SetBackgroundImage( mIconPlay ); mTimerReady = true; - mPanGestureDetector.Attach( mContent ); + mPanGestureDetector.Attach( mParent ); } return true; } @@ -342,7 +349,7 @@ void DissolveEffectApp::OnTransitionCompleted( Animation& source ) { mCurrentImage.RemoveShaderEffect(); mNextImage.RemoveShaderEffect(); - mContent.Remove(mCurrentImage); + mParent.Remove( mCurrentImage ); mPanGestureDetector.Detach( mCurrentImage ); mCurrentImage = mNextImage; mPanGestureDetector.Attach( mCurrentImage ); @@ -361,13 +368,13 @@ bool DissolveEffectApp::OnTimerTick() if(mSlideshow) { mIndex = (mIndex + 1)%NUM_IMAGES; - Image image = Image::New( IMAGES[ mIndex ] ); + Image image = ResourceImage::New( IMAGES[ mIndex ] ); mNextImage = ImageActor::New( image ); mNextImage.SetPositionInheritanceMode(USE_PARENT_POSITION_PLUS_LOCAL_POSITION); mNextImage.ApplyConstraint( mSizeConstraint ); mNextImage.SetZ(INITIAL_DEPTH); - mContent.Add(mNextImage); - switch(mCentralLineIndex%4) + mParent.Add( mNextImage ); + switch( mCentralLineIndex%4 ) { case 0: { diff --git a/examples/shader-effect/refraction-effect-example.cpp b/examples/shader-effect/refraction-effect-example.cpp index f1325cc..0b3914e 100644 --- a/examples/shader-effect/refraction-effect-example.cpp +++ b/examples/shader-effect/refraction-effect-example.cpp @@ -318,7 +318,7 @@ private: // Add a button to change background. (right of toolbar) mChangeTextureButton = Toolkit::PushButton::New(); - mChangeTextureButton.SetBackgroundImage( Image::New( CHANGE_TEXTURE_ICON ) ); + mChangeTextureButton.SetBackgroundImage( ResourceImage::New( CHANGE_TEXTURE_ICON ) ); mChangeTextureButton.ClickedSignal().Connect( this, &RefractionEffectExample::OnChangeTexture ); toolBar.AddControl( mChangeTextureButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, @@ -326,7 +326,7 @@ private: DemoHelper::DEFAULT_MODE_SWITCH_PADDING ); // Add a button to change mesh pattern. ( left of bar ) mChangeMeshButton = Toolkit::PushButton::New(); - mChangeMeshButton.SetBackgroundImage( Image::New( CHANGE_MESH_ICON ) ); + mChangeMeshButton.SetBackgroundImage( ResourceImage::New( CHANGE_MESH_ICON ) ); mChangeMeshButton.ClickedSignal().Connect( this, &RefractionEffectExample::OnChangeMesh ); toolBar.AddControl( mChangeMeshButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, @@ -338,7 +338,7 @@ private: mNoEffect = NoEffect::New(); // used in the other situations, basic render shader // Create the mesh from the obj file and add to stage mMaterial = Material::New( "Material" ) ; - mMaterial.SetDiffuseTexture(Image::New(TEXTURE_IMAGES[mCurrentTextureId])); + mMaterial.SetDiffuseTexture(ResourceImage::New(TEXTURE_IMAGES[mCurrentTextureId])); CreateSurface( MESH_FILES[mCurrentMeshId] ); // Connect the callback to the touch signal on the mesh actor @@ -371,7 +371,7 @@ private: bool OnChangeTexture( Toolkit::Button button ) { mCurrentTextureId = ( mCurrentTextureId + 1 ) % NUM_TEXTURE_IMAGES; - mMaterial.SetDiffuseTexture(Image::New(TEXTURE_IMAGES[mCurrentTextureId])); + mMaterial.SetDiffuseTexture(ResourceImage::New(TEXTURE_IMAGES[mCurrentTextureId])); return true; } diff --git a/examples/shadows/shadow-bone-lighting-example.cpp b/examples/shadows/shadow-bone-lighting-example.cpp index 094821f..3a17597 100644 --- a/examples/shadows/shadow-bone-lighting-example.cpp +++ b/examples/shadows/shadow-bone-lighting-example.cpp @@ -20,6 +20,7 @@ #include #include +#include using namespace Dali; using namespace Dali::Toolkit; @@ -28,9 +29,6 @@ using namespace DemoHelper; namespace { -const char* gModelFile = DALI_MODEL_DIR "AlbumCute.dae"; -const char* gBinaryModelFile = DALI_MODEL_DIR "AlbumCute.dali-bin"; - const char* BACKGROUND_IMAGE( DALI_IMAGE_DIR "background-default.png" ); const char* TOOLBAR_IMAGE( DALI_IMAGE_DIR "top-bar.png" ); @@ -41,6 +39,10 @@ const char* TOOLBAR_IMAGE( DALI_IMAGE_DIR "top-bar.png" ); const char* CHANGE_EFFECT_IMAGE( DALI_IMAGE_DIR "icon-change.png" ); const char* RESET_ICON( DALI_IMAGE_DIR "icon-reset.png" ); +const char* SCENE_IMAGE_1( DALI_IMAGE_DIR "gallery-small-10.jpg"); +const char* SCENE_IMAGE_2( DALI_IMAGE_DIR "gallery-small-42.jpg"); +const char* SCENE_IMAGE_3( DALI_IMAGE_DIR "gallery-small-48.jpg"); + const Quaternion JAUNTY_ROTATION(Math::PI/5.0f, Math::PI/5.0f, 0.0f); // Euler angles const float MIN_PINCH_SCALE( 0.3f ); const float MAX_PINCH_SCALE( 2.05f ); @@ -56,7 +58,7 @@ const Vector2 DEFAULT_STAGE_SIZE( 480.0f, 800.0f ); } /** - * This example shows a fixed point light onto an animating model + * This example shows a fixed point light onto an animating set of images * casting a shadow onto a wall. The whole scene can be rotated. */ @@ -118,6 +120,21 @@ public: } }; + struct RotationConstraint + { + RotationConstraint(float sign) + : mSign(sign) + { + } + + Quaternion operator()( const Quaternion& current, const PropertyInput& property ) + { + Degree angle(property.GetFloat()); + return Quaternion( Radian(angle) * mSign, Vector3::YAXIS ); + } + + float mSign; + }; /** * This method gets called once the main loop of application is up and running @@ -128,11 +145,9 @@ public: Stage::GetCurrent().KeyEventSignal().Connect(this, &TestApp::OnKeyEvent); - mModel = Model::New(gBinaryModelFile); // trigger model load - mModel.LoadingFinishedSignal().Connect(this, &TestApp::BinaryModelLoaded); - CreateToolbarAndView(app); CreateShadowViewAndLights(); + CreateScene(); } void CreateToolbarAndView(Application& app) @@ -148,7 +163,7 @@ public: "" ); // Add an effect-changing button on the right of the tool bar. - Image imageChangeEffect = Image::New( CHANGE_EFFECT_IMAGE ); + Image imageChangeEffect = ResourceImage::New( CHANGE_EFFECT_IMAGE ); Toolkit::PushButton effectChangeButton = Toolkit::PushButton::New(); effectChangeButton.SetBackgroundImage(imageChangeEffect); effectChangeButton.ClickedSignal().Connect( this, &TestApp::OnEffectButtonClicked ); @@ -158,7 +173,7 @@ public: // TODO //Add a reset button - Image resetImage = Image::New( RESET_ICON ); + Image resetImage = ResourceImage::New( RESET_ICON ); Toolkit::PushButton resetButton = Toolkit::PushButton::New(); resetButton.SetBackgroundImage( resetImage ); resetButton.ClickedSignal().Connect( this, &TestApp::OnResetPressed ); @@ -184,42 +199,7 @@ public: mTapGestureDetector.DetectedSignal().Connect(this, &TestApp::OnTap); } - /** - * This method gets called once the model is loaded by the resource manager - */ - void BinaryModelLoaded(Model model) - { - if( model.GetLoadingState() == ResourceLoadingSucceeded ) - { - std::cout << "Succeeded loading binary model" << std::endl; - - ModelReady(); - } - else - { - std::cout << "Failed loading binary model" << std::endl; - - mModel = Model::New(gModelFile); - mModel.LoadingFinishedSignal().Connect(this, &TestApp::ModelLoaded); - } - } - - void ModelLoaded(Model model) - { - if( model.GetLoadingState() == ResourceLoadingSucceeded ) - { - std::cout << "Succeeded loading collada model" << std::endl; - - model.Save(gBinaryModelFile); - ModelReady(); - } - else - { - std::cout << "Failed loading collada model" << std::endl; - mApp.Quit(); - } - } void CreateShadowViewAndLights() { @@ -227,11 +207,11 @@ public: mShadowView.SetName("Container"); mShadowView.SetParentOrigin(ParentOrigin::CENTER); mShadowView.SetAnchorPoint(AnchorPoint::CENTER); - mShadowView.ApplyConstraint( Constraint::New( Actor::SIZE, ParentSource( Actor::SIZE ), EqualToConstraint() ) ); + mShadowView.SetSizeMode( SIZE_EQUAL_TO_PARENT ); mShadowView.SetPointLightFieldOfView( Math::PI / 2.0f); mContents.Add(mShadowView); - Image brickWall = Image::New(DALI_IMAGE_DIR "brick-wall.jpg"); + Image brickWall = ResourceImage::New(DALI_IMAGE_DIR "brick-wall.jpg"); mShadowPlaneBg = ImageActor::New(brickWall); mShadowPlaneBg.SetParentOrigin(ParentOrigin::CENTER); mShadowPlaneBg.SetAnchorPoint(AnchorPoint::CENTER); @@ -249,7 +229,7 @@ public: mLightAnchor.SetRotation(CalculateWorldRotation(Radian(mLightLongitudinal), Radian(mLightAxisTilt))); // Work out a scaling factor as the initial light position was calculated for desktop - // Need to scale light position as model size is based on stage size (i.e. much bigger on device) + // Need to scale light position as scene actor size is based on stage size (i.e. much bigger on device) Vector2 stageSize( Stage::GetCurrent().GetSize() ); float scaleFactor = stageSize.x / DEFAULT_STAGE_SIZE.x; @@ -264,44 +244,51 @@ public: mShadowView.SetPointLight(mCastingLight); } - void ModelReady() + void CreateScene() { - mModelActor = ModelActorFactory::BuildActorTree(mModel, ""); // Gets root actor + mSceneActor = Actor::New(); + mSceneActor.SetParentOrigin(ParentOrigin::CENTER); - if (mModelActor) - { - Vector2 stageSize(Stage::GetCurrent().GetSize()); + // Create and add images to the scene actor: + mImageActor1 = ImageActor::New( ResourceImage::New(SCENE_IMAGE_1) ); + mImageActor2 = ImageActor::New( ResourceImage::New(SCENE_IMAGE_2) ); + mImageActor3 = ImageActor::New( ResourceImage::New(SCENE_IMAGE_3) ); - mModelActor.SetSize(250.0f, 250.0f); - mModelActor.SetPosition(0.0f, 0.0f, 130.0f); - //Create a Key light - Light keylight = Light::New("KeyLight"); - keylight.SetFallOff(Vector2(10000.0f, 10000.0f)); - //keylight.SetSpecularColor(Vector3::ZERO); - mKeyLightActor = LightActor::New(); - mKeyLightActor.SetParentOrigin(ParentOrigin::CENTER); - mKeyLightActor.SetName(keylight.GetName()); + mImageActor2.SetParentOrigin(ParentOrigin::CENTER); - //Add all the actors to the stage - mCastingLight.Add(mKeyLightActor); - mKeyLightActor.SetLight(keylight); + mImageActor1.SetParentOrigin(ParentOrigin::CENTER_LEFT); + mImageActor1.SetAnchorPoint(AnchorPoint::CENTER_RIGHT); - mShadowView.Add(mModelActor); + mImageActor3.SetParentOrigin(ParentOrigin::CENTER_RIGHT); + mImageActor3.SetAnchorPoint(AnchorPoint::CENTER_LEFT); + mSceneActor.Add(mImageActor2); + mImageActor2.Add(mImageActor1); + mImageActor2.Add(mImageActor3); - if (mModel.NumberOfAnimations()) - { - mModelAnimation = ModelActorFactory::BuildAnimation(mModel, mModelActor, 0); - mModelAnimation.SetDuration(4.0f); - mModelAnimation.SetLooping(true); - mModelAnimation.Play(); - } + Property::Index angleIndex = mImageActor2.RegisterProperty("angle", Property::Value(30.0f)); + Source angleSrc( mImageActor2, angleIndex ); + mImageActor1.ApplyConstraint(Constraint::New( Actor::ROTATION, angleSrc, + RotationConstraint(-1.0f))); + mImageActor3.ApplyConstraint(Constraint::New( Actor::ROTATION, angleSrc, + RotationConstraint(+1.0f))); - //StartAnimation(); - } + mSceneAnimation = Animation::New(2.5f); + + // Want to animate angle from 30 => -30 and back again smoothly. + + mSceneAnimation.AnimateTo( Property( mImageActor2, angleIndex ), Property::Value(-30.0f), AlphaFunctions::Sin ); + + mSceneAnimation.SetLooping(true); + mSceneAnimation.Play(); + + mSceneActor.SetSize(250.0f, 250.0f); + mSceneActor.SetPosition(0.0f, 0.0f, 130.0f); + mShadowView.Add(mSceneActor); } + Quaternion CalculateWorldRotation(Radian longitude, Radian axisTilt ) { Quaternion q(longitude, Vector3::YAXIS); @@ -311,17 +298,18 @@ public: void OnTap(Dali::Actor actor, const TapGesture& gesture) { - if( ! mPaused ) - { - //mAnimation.Pause(); - mModelAnimation.Pause(); - mPaused = true; - } - else + if( mSceneAnimation ) { - //mAnimation.Play(); - mModelAnimation.Play(); - mPaused = false; + if( ! mPaused ) + { + mSceneAnimation.Pause(); + mPaused = true; + } + else + { + mSceneAnimation.Play(); + mPaused = false; + } } } @@ -363,7 +351,7 @@ public: mObjectLongitudinal += gesture.displacement.x/4.0f; mObjectAxisTilt -= gesture.displacement.y/6.0f; mObjectAxisTilt = Clamp(mObjectAxisTilt, -90.0f, 90.0f); - mModelActor.SetRotation(CalculateWorldRotation(Radian(mObjectLongitudinal), Radian(mObjectAxisTilt))); + mSceneActor.SetRotation(CalculateWorldRotation(Radian(mObjectLongitudinal), Radian(mObjectAxisTilt))); break; } } @@ -392,13 +380,9 @@ public: void Terminate(Application& app) { - if( mModelActor ) - { - Stage::GetCurrent().Remove(mModelActor); - } - if( mKeyLightActor ) + if( mSceneActor ) { - Stage::GetCurrent().Remove(mKeyLightActor); + Stage::GetCurrent().Remove(mSceneActor); } if( mView ) { @@ -427,6 +411,7 @@ public: // Reset translation mTranslation = Vector3::ZERO; mContents.SetPosition(mTranslation); + // Align scene so that light anchor orientation is Z Axis mAxisTilt = -mLightAxisTilt; mLongitudinal = -mLightLongitudinal; @@ -439,18 +424,18 @@ private: Application& mApp; Toolkit::View mView; Layer mContents; - Model mModel; - Actor mModelActor; - LightActor mKeyLightActor; + Actor mSceneActor; Animation mAnimation; - Animation mModelAnimation; + Animation mSceneAnimation; bool mPaused; Toolkit::ShadowView mShadowView; ImageActor mShadowPlaneBg; ImageActor mShadowPlane; Actor mCastingLight; Actor mLightAnchor; - + ImageActor mImageActor1; + ImageActor mImageActor2; + ImageActor mImageActor3; PanGestureDetector mPanGestureDetector; PinchGestureDetector mPinchGestureDetector; TapGestureDetector mTapGestureDetector; @@ -464,6 +449,9 @@ private: float mPinchScale; float mScaleAtPinchStart; + Property::Index mAngle1Index; + Property::Index mAngle3Index; + enum PanState { PAN_SCENE, diff --git a/examples/shared/view.h b/examples/shared/view.h index 7bf7076..059240d 100644 --- a/examples/shared/view.h +++ b/examples/shared/view.h @@ -72,14 +72,14 @@ Dali::Layer CreateToolbar( Dali::Toolkit::ToolBar& toolBar, toolBarLayer.RaiseToTop(); // Tool bar - Dali::Image image = Dali::Image::New( toolbarImagePath ); + Dali::Image image = Dali::ResourceImage::New( toolbarImagePath ); Dali::ImageActor toolBarBackground = Dali::ImageActor::New( image ); toolBar = Dali::Toolkit::ToolBar::New(); toolBar.SetBackground( toolBarBackground ); toolBar.SetParentOrigin( Dali::ParentOrigin::TOP_CENTER ); toolBar.SetAnchorPoint( Dali::AnchorPoint::TOP_CENTER ); - toolBar.ApplyConstraint( Dali::Constraint::New( Dali::Actor::SIZE, Dali::ParentSource( Dali::Actor::SIZE ), Dali::EqualToConstraint() ) ); toolBar.SetSize( 0.0f, style.mToolBarHeight ); + toolBar.SetSizeMode( Dali::SIZE_EQUAL_TO_PARENT ); toolBarBackground.SetSortModifier(1.0f); // Add the tool bar to the too bar layer. @@ -113,7 +113,7 @@ Dali::Layer CreateView( Dali::Application& application, // Set background image. if ( ! backgroundImagePath.empty() ) { - Dali::Image backgroundImage = Dali::Image::New( backgroundImagePath ); + Dali::Image backgroundImage = Dali::ResourceImage::New( backgroundImagePath ); Dali::ImageActor backgroundImageActor = Dali::ImageActor::New( backgroundImage ); view.SetBackground( backgroundImageActor ); } @@ -134,7 +134,7 @@ Dali::Layer CreateView( Dali::Application& application, Dali::Layer contentLayer = Dali::Layer::New(); contentLayer.SetAnchorPoint( Dali::AnchorPoint::CENTER ); contentLayer.SetParentOrigin( Dali::ParentOrigin::CENTER ); - contentLayer.ApplyConstraint( Dali::Constraint::New( Dali::Actor::SIZE, Dali::ParentSource( Dali::Actor::SIZE ), Dali::EqualToConstraint() ) ); + contentLayer.SetSizeMode( Dali::SIZE_EQUAL_TO_PARENT ); view.AddContentLayer( contentLayer ); contentLayer.LowerBelow( toolBarLayer ); diff --git a/examples/transition/cube-transition-effect-example.cpp b/examples/transition/cube-transition-effect-example.cpp index abcb394..f38d36e 100644 --- a/examples/transition/cube-transition-effect-example.cpp +++ b/examples/transition/cube-transition-effect-example.cpp @@ -120,7 +120,7 @@ private: * Start the transition * @param[in] image The image content of the imageActor for transition */ - void OnImageLoaded(Image image); + void OnImageLoaded(ResourceImage image); /** * Main key event handler */ @@ -208,17 +208,17 @@ void CubeTransitionApp::OnInit( Application& application ) mContent = DemoHelper::CreateView( application, mView, mToolBar, "", TOOLBAR_IMAGE, "" ); // Add an effect-changing button on the right of the tool bar. - mImageWave = Image::New( EFFECT_WAVE_IMAGE ); - mImageCross = Image::New( EFFECT_CROSS_IMAGE ); - mImageFold = Image::New( EFFECT_FOLD_IMAGE ); + mImageWave = ResourceImage::New( EFFECT_WAVE_IMAGE ); + mImageCross = ResourceImage::New( EFFECT_CROSS_IMAGE ); + mImageFold = ResourceImage::New( EFFECT_FOLD_IMAGE ); mEffectChangeButton = Toolkit::PushButton::New(); mEffectChangeButton.SetBackgroundImage(mImageWave); mEffectChangeButton.ClickedSignal().Connect( this, &CubeTransitionApp::OnEffectButtonClicked ); mToolBar.AddControl( mEffectChangeButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, Toolkit::Alignment::HorizontalRight, DemoHelper::DEFAULT_MODE_SWITCH_PADDING ); //Add an slideshow icon on the right of the title - mIconSlideshowStart = Image::New( SLIDE_SHOW_START_ICON ); - mIconSlideshowStop = Image::New( SLIDE_SHOW_STOP_ICON ); + mIconSlideshowStart = ResourceImage::New( SLIDE_SHOW_START_ICON ); + mIconSlideshowStop = ResourceImage::New( SLIDE_SHOW_STOP_ICON ); mSlideshowButton = Toolkit::PushButton::New(); mSlideshowButton.SetBackgroundImage( mIconSlideshowStart ); mSlideshowButton.ClickedSignal().Connect( this, &CubeTransitionApp::OnSildeshowButtonClicked ); @@ -261,7 +261,7 @@ void CubeTransitionApp::OnInit( Application& application ) // show the first image mImageConstraint = Constraint::New( Actor::SCALE, LocalSource( Actor::SIZE ), ParentSource( Actor::SIZE ), ScaleToFitKeepAspectRatioConstraint() ); - mCurrentImage = ImageActor::New( Image::New( IMAGES[mIndex] ) ); + mCurrentImage = ImageActor::New( ResourceImage::New( IMAGES[mIndex] ) ); mCurrentImage.SetPositionInheritanceMode( USE_PARENT_POSITION ); mCurrentImage.ApplyConstraint( mImageConstraint ); mParent.Add( mCurrentImage ); @@ -298,23 +298,24 @@ void CubeTransitionApp::OnPanGesture( Actor actor, const PanGesture& gesture ) void CubeTransitionApp::GoToNextImage() { - Image image = Image::New( IMAGES[ mIndex ] ); + ResourceImage image = ResourceImage::New( IMAGES[ mIndex ] ); mNextImage = ImageActor::New( image ); mNextImage.SetPositionInheritanceMode(USE_PARENT_POSITION); mNextImage.ApplyConstraint( mImageConstraint ); mCurrentEffect.SetTargetImage(mNextImage); - mIsImageLoading = true; if( image.GetLoadingState() == ResourceLoadingSucceeded ) { - OnImageLoaded( image ); + mIsImageLoading = false; + OnImageLoaded( image ); } else { + mIsImageLoading = true; image.LoadingFinishedSignal().Connect( this, &CubeTransitionApp::OnImageLoaded ); } } -void CubeTransitionApp::OnImageLoaded(Image image) +void CubeTransitionApp::OnImageLoaded(ResourceImage image) { mIsImageLoading = false; mCurrentEffect.StartTransition( mPanPosition, mPanDisplacement ); diff --git a/packaging/com.samsung.dali-demo.spec b/packaging/com.samsung.dali-demo.spec index 0334fa8..6f08cb9 100755 --- a/packaging/com.samsung.dali-demo.spec +++ b/packaging/com.samsung.dali-demo.spec @@ -2,7 +2,7 @@ Name: com.samsung.dali-demo Summary: The OpenGLES Canvas Core Demo -Version: 1.0.29 +Version: 1.0.30 Release: 1 Group: System/Libraries License: Apache-2.0 @@ -52,7 +52,7 @@ LDFLAGS+=" -Wl,--rpath=$PREFIX/lib -Wl,--as-needed -fPIC" CXXFLAGS+=" -D_ARCH_ARM_" %endif -cd %{_builddir}/%{name}-%{version}/build/tizen-cmake && cmake -DDALI_APP_DIR=%{dali_app_ro_dir} . +cd %{_builddir}/%{name}-%{version}/build/tizen && cmake -DDALI_APP_DIR=%{dali_app_ro_dir} . make %{?jobs:-j%jobs} @@ -64,9 +64,6 @@ rm -rf %{buildroot} cd build/tizen %make_install DALI_APP_DIR=%{dali_app_ro_dir} -mkdir -p %{buildroot}/%{dali_app_exe_dir} -mv %{buildroot}/%{_bindir}/* %{buildroot}/%{dali_app_exe_dir} - mkdir -p %{buildroot}%{dali_xml_file_dir} cp -f %{_builddir}/%{name}-%{version}/%{name}.xml %{buildroot}%{dali_xml_file_dir}