+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "text-overlap-example.h"
#include <dali-toolkit/dali-toolkit.h>
#include <dali/devel-api/actors/actor-devel.h>
-#include "text-overlap-example.h"
#include <iostream>
static const int NUMBER_OF_LABELS(2);
-
-
namespace Demo
{
-
-TextOverlapController::TextOverlapController( Application& app )
-: mApplication( app ),
- mTopmostLabel( 1 )
+TextOverlapController::TextOverlapController(Application& app)
+: mApplication(app),
+ mTopmostLabel(1)
{
- app.InitSignal().Connect( this, &TextOverlapController::Create );
- app.TerminateSignal().Connect( this, &TextOverlapController::Destroy );
+ app.InitSignal().Connect(this, &TextOverlapController::Create);
+ app.TerminateSignal().Connect(this, &TextOverlapController::Destroy);
}
-void TextOverlapController::Create( Application& app )
+void TextOverlapController::Create(Application& app)
{
- Stage stage = Stage::GetCurrent();
- stage.KeyEventSignal().Connect( this, &TextOverlapController::OnKeyEvent );
+ Window window = app.GetWindow();
+ window.KeyEventSignal().Connect(this, &TextOverlapController::OnKeyEvent);
- Vector2 stageSize = stage.GetSize();
+ Vector2 windowSize = window.GetSize();
mLabels[0] = TextLabel::New("Text Label 1");
mLabels[1] = TextLabel::New("Text Label 2");
- mLabels[0].SetName("Label1");
- mLabels[1].SetName("Label2");
+ mLabels[0].SetProperty(Dali::Actor::Property::NAME, "Label1");
+ mLabels[1].SetProperty(Dali::Actor::Property::NAME, "Label2");
- mLabels[0].SetProperty( DevelActor::Property::SIBLING_ORDER, 1 );
- mLabels[1].SetProperty( DevelActor::Property::SIBLING_ORDER, 2 );
+ mLabels[0].SetProperty(Dali::DevelActor::Property::SIBLING_ORDER, 1);
+ mLabels[1].SetProperty(Dali::DevelActor::Property::SIBLING_ORDER, 2);
- mLabels[0].SetProperty( Control::Property::BACKGROUND, Color::RED );
- mLabels[1].SetProperty( Control::Property::BACKGROUND, Color::YELLOW );
+ mLabels[0].SetProperty(Control::Property::BACKGROUND, Color::RED);
+ mLabels[1].SetProperty(Control::Property::BACKGROUND, Color::YELLOW);
- for(int i=0; i<NUMBER_OF_LABELS; ++i )
+ for(int i = 0; i < NUMBER_OF_LABELS; ++i)
{
- mLabels[i].SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
- mLabels[i].SetAnchorPoint( AnchorPoint::TOP_LEFT );
- mLabels[i].SetParentOrigin( ParentOrigin::TOP_LEFT );
- mLabels[i].SetPosition( 0, (i*2+1) * stageSize.height * 0.25f );
+ mLabels[i].SetProperty(TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER");
+ mLabels[i].SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+ mLabels[i].SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+ mLabels[i].SetProperty(Actor::Property::POSITION, Vector2(0, (i * 2 + 1) * windowSize.height * 0.25f));
}
- stage.Add( mLabels[0] );
- stage.Add( mLabels[1] );
+ window.Add(mLabels[0]);
+ window.Add(mLabels[1]);
mSwapButton = PushButton::New();
- mSwapButton.SetProperty( Button::Property::LABEL, "Swap depth order");
- mSwapButton.SetParentOrigin( ParentOrigin::BOTTOM_CENTER );
- mSwapButton.SetAnchorPoint( AnchorPoint::BOTTOM_CENTER );
- mSwapButton.ClickedSignal().Connect( this, &TextOverlapController::OnClicked );
- mSwapButton.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
- mSwapButton.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
- stage.Add( mSwapButton );
-
+ mSwapButton.SetProperty(Button::Property::LABEL, "Swap depth order");
+ mSwapButton.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::BOTTOM_CENTER);
+ mSwapButton.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::BOTTOM_CENTER);
+ mSwapButton.ClickedSignal().Connect(this, &TextOverlapController::OnClicked);
+ mSwapButton.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH);
+ mSwapButton.SetResizePolicy(ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT);
+ window.Add(mSwapButton);
- Layer rootLayer = stage.GetRootLayer();
- rootLayer.SetName("RootLayer");
+ Layer rootLayer = window.GetRootLayer();
+ rootLayer.SetProperty(Dali::Actor::Property::NAME, "RootLayer");
mPanDetector = PanGestureDetector::New();
- mPanDetector.Attach( rootLayer );
- mPanDetector.AddAngle( Radian(-0.5f * Math::PI ));
- mPanDetector.AddAngle( Radian( 0.5f * Math::PI ));
- mPanDetector.DetectedSignal().Connect( this, &TextOverlapController::OnPan );
+ mPanDetector.Attach(rootLayer);
+ mPanDetector.AddAngle(Radian(-0.5f * Math::PI));
+ mPanDetector.AddAngle(Radian(0.5f * Math::PI));
+ mPanDetector.DetectedSignal().Connect(this, &TextOverlapController::OnPan);
}
-void TextOverlapController::OnPan( Actor actor, const PanGesture& gesture )
+void TextOverlapController::OnPan(Actor actor, const PanGesture& gesture)
{
- if( ! mGrabbedActor || gesture.state == PanGesture::Started )
+ const GestureState state = gesture.GetState();
+ if(!mGrabbedActor || state == GestureState::STARTED)
{
- for( int i=0; i<NUMBER_OF_LABELS; ++i )
+ const Vector2& gesturePosition = gesture.GetPosition();
+ for(int i = 0; i < NUMBER_OF_LABELS; ++i)
{
- Vector3 position = mLabels[i].GetCurrentPosition();
- Vector3 size = mLabels[i].GetCurrentSize();
- if( gesture.position.y > position.y - size.y * 0.5f &&
- gesture.position.y <= position.y + size.y * 0.5f )
+ Vector3 position = mLabels[i].GetCurrentProperty<Vector3>(Actor::Property::POSITION);
+ Vector3 size = mLabels[i].GetCurrentProperty<Vector3>(Actor::Property::SIZE);
+ if(gesturePosition.y > position.y - size.y * 0.5f &&
+ gesturePosition.y <= position.y + size.y * 0.5f)
{
mGrabbedActor = mLabels[i];
break;
}
}
}
- else if( mGrabbedActor && gesture.state == PanGesture::Continuing )
+ else if(mGrabbedActor && state == GestureState::CONTINUING)
{
- Vector2 stageSize = Stage::GetCurrent().GetSize();
- Vector3 size = mGrabbedActor.GetCurrentSize();
- float y = Clamp( gesture.position.y, size.y * 0.5f, stageSize.y - size.y*0.5f );
- mGrabbedActor.SetPosition( 0, y );
+ Vector2 windowSize = mApplication.GetWindow().GetSize();
+ Vector3 size = mGrabbedActor.GetCurrentProperty<Vector3>(Actor::Property::SIZE);
+ const Vector2& gesturePosition = gesture.GetPosition();
+
+ float y = Clamp(gesturePosition.y, size.y * 0.5f, windowSize.y - size.y * 0.5f);
+ mGrabbedActor.SetProperty(Actor::Property::POSITION, Vector2(0, y));
}
else
{
}
}
-void TextOverlapController::Destroy( Application& app )
+void TextOverlapController::Destroy(Application& app)
{
mPanDetector.DetachAll();
UnparentAndReset(mLabels[0]);
mGrabbedActor.Reset();
}
-bool TextOverlapController::OnClicked( Button button )
+bool TextOverlapController::OnClicked(Button button)
{
- mTopmostLabel = 1-mTopmostLabel; // toggles between 0 and 1
+ mTopmostLabel = 1 - mTopmostLabel; // toggles between 0 and 1
mLabels[mTopmostLabel].RaiseToTop();
return false;
}
-
-void TextOverlapController::OnKeyEvent( const KeyEvent& keyEvent )
+void TextOverlapController::OnKeyEvent(const KeyEvent& keyEvent)
{
- if( keyEvent.state == KeyEvent::Down &&
- ( IsKey( keyEvent, DALI_KEY_BACK ) ||
- IsKey( keyEvent, DALI_KEY_ESCAPE ) ) )
+ if(keyEvent.GetState() == KeyEvent::DOWN &&
+ (IsKey(keyEvent, DALI_KEY_BACK) ||
+ IsKey(keyEvent, DALI_KEY_ESCAPE)))
{
mApplication.Quit();
}
else
{
- Dali::Layer l = Dali::Stage::GetCurrent().GetRootLayer();
- int so = l.GetProperty<int>(Dali::DevelActor::Property::SIBLING_ORDER);
- l.SetProperty(Dali::DevelActor::Property::SIBLING_ORDER, so+1);
+ Dali::Layer l = mApplication.GetWindow().GetRootLayer();
+ int so = l.GetProperty<int>(Dali::DevelActor::Property::SIBLING_ORDER);
+ l.SetProperty(Dali::DevelActor::Property::SIBLING_ORDER, so + 1);
}
}
-
} // namespace Demo
-int DALI_EXPORT_API main( int argc, char** argv )
+int DALI_EXPORT_API main(int argc, char** argv)
{
{
- Application app = Application::New( &argc, &argv );
- Demo::TextOverlapController controller( app );
+ Application app = Application::New(&argc, &argv);
+ Demo::TextOverlapController controller(app);
app.MainLoop();
}
- exit( 0 );
+ exit(0);
}