// EXTERNAL INCLUDES
#include <cstring> // for strcmp
#include <dali/devel-api/adaptor-framework/physical-keyboard.h>
+#include <dali/devel-api/actors/actor-devel.h>
#include <dali/public-api/object/type-registry-helper.h>
#include <dali/integration-api/debug.h>
#include <dali/public-api/adaptor-framework/key.h>
Toolkit::Popup popup = Toolkit::Popup::New();
// Setup for Toast Popup type.
- popup.SetSizeModeFactor( DEFAULT_TOAST_WIDTH_OF_STAGE_RATIO );
+ popup.SetProperty( Actor::Property::SIZE_MODE_FACTOR, DEFAULT_TOAST_WIDTH_OF_STAGE_RATIO );
popup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::WIDTH );
popup.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
popup.SetProperty( Toolkit::Popup::Property::CONTEXTUAL_MODE, Toolkit::Popup::NON_CONTEXTUAL );
popup.SetProperty( Toolkit::Popup::Property::AUTO_HIDE_DELAY, DEFAULT_TOAST_AUTO_HIDE_DELAY );
// Align to the bottom of the screen.
- popup.SetParentOrigin( DEFAULT_TOAST_BOTTOM_PARENT_ORIGIN );
- popup.SetAnchorPoint( AnchorPoint::BOTTOM_CENTER );
+ popup.SetProperty( Actor::Property::PARENT_ORIGIN, DEFAULT_TOAST_BOTTOM_PARENT_ORIGIN );
+ popup.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::BOTTOM_CENTER );
// Let events pass through the toast popup.
popup.SetProperty( Toolkit::Popup::Property::TOUCH_TRANSPARENT, true );
void Popup::OnInitialize()
{
Actor self = Self();
- self.SetName( "popup" );
+ self.SetProperty( Dali::Actor::Property::NAME, "popup" );
// Apply some default resizing rules.
- self.SetParentOrigin( ParentOrigin::CENTER );
- self.SetAnchorPoint( AnchorPoint::CENTER );
+ self.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
+ self.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
- self.SetSizeModeFactor( DEFAULT_POPUP_PARENT_RELATIVE_SIZE );
+ self.SetProperty( Actor::Property::SIZE_MODE_FACTOR, DEFAULT_POPUP_PARENT_RELATIVE_SIZE );
self.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::WIDTH );
self.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
// Create a new layer so all Popup components can appear above all other actors.
mLayer = Layer::New();
- mLayer.SetName( "popupLayer" );
+ mLayer.SetProperty( Dali::Actor::Property::NAME, "popupLayer" );
- mLayer.SetParentOrigin( ParentOrigin::CENTER );
- mLayer.SetAnchorPoint( AnchorPoint::CENTER );
+ mLayer.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
+ mLayer.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
mLayer.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
// Important to set as invisible as otherwise, if the popup is parented,
// but not shown yet it will appear statically on the screen.
- mLayer.SetVisible( false );
+ mLayer.SetProperty( Actor::Property::VISIBLE, false );
// Add the layer to the hierarchy.
self.Add( mLayer );
mLayer.Add( mBacking );
mPopupContainer = Actor::New();
- mPopupContainer.SetName( "popupContainer" );
- mPopupContainer.SetParentOrigin( ParentOrigin::CENTER );
- mPopupContainer.SetAnchorPoint( AnchorPoint::CENTER );
+ mPopupContainer.SetProperty( Dali::Actor::Property::NAME, "popupContainer" );
+ mPopupContainer.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
+ mPopupContainer.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
mPopupContainer.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::ALL_DIMENSIONS );
mLayer.Add( mPopupContainer );
const std::string imageDirPath = AssetManager::GetDaliImagePath();
SetPopupBackgroundImage( Toolkit::ImageView::New( imageDirPath + DEFAULT_BACKGROUND_IMAGE_FILE_NAME ) );
- mPopupLayout.SetName( "popupLayoutTable" );
- mPopupLayout.SetParentOrigin( ParentOrigin::CENTER );
- mPopupLayout.SetAnchorPoint( AnchorPoint::CENTER );
+ mPopupLayout.SetProperty( Dali::Actor::Property::NAME, "popupLayoutTable" );
+ mPopupLayout.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
+ mPopupLayout.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
mPopupLayout.SetResizePolicy( ResizePolicy::USE_ASSIGNED_SIZE, Dimension::WIDTH );
mPopupLayout.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
- mPopupLayout.SetSize( Stage::GetCurrent().GetSize().x * DEFAULT_RELATIVE_PARENT_WIDTH, 0.0f );
+ mPopupLayout.SetProperty( Actor::Property::SIZE, Vector2( Stage::GetCurrent().GetSize().x * DEFAULT_RELATIVE_PARENT_WIDTH, 0.0f ) );
mPopupLayout.SetFitHeight( 0 ); // Set row to fit.
mPopupLayout.SetFitHeight( 1 ); // Set row to fit.
case Toolkit::Popup::ZOOM:
{
// Zoom animations start fully zoomed out.
- mPopupContainer.SetScale( Vector3::ZERO );
+ mPopupContainer.SetProperty( Actor::Property::SCALE, Vector3::ZERO );
break;
}
case Toolkit::Popup::FADE:
{
// Fade animations start transparent.
- mPopupContainer.SetOpacity( 0.0f );
+ mPopupContainer.SetProperty( DevelActor::Property::OPACITY, 0.0f );
break;
}
}
else
{
- mPopupContainer.SetScale( transitionIn ? Vector3::ONE : Vector3::ZERO );
+ mPopupContainer.SetProperty( Actor::Property::SCALE, transitionIn ? Vector3::ONE : Vector3::ZERO );
}
break;
}
}
else
{
- mPopupContainer.SetOpacity( transitionIn ? 1.0f : 0.0f );
+ mPopupContainer.SetProperty( DevelActor::Property::OPACITY, transitionIn ? 1.0f : 0.0f );
}
break;
}
{
mDisplayState = Toolkit::Popup::HIDDEN;
- mLayer.SetVisible( false );
- mPopupLayout.SetSensitive( false );
+ mLayer.SetProperty( Actor::Property::VISIBLE, false );
+ mPopupLayout.SetProperty( Actor::Property::SENSITIVE, false );
// Guard against destruction during signal emission.
Toolkit::Popup handle( GetOwner() );
// Adds new background to the dialog.
mPopupBackgroundImage = image;
- mPopupBackgroundImage.SetName( "popupBackgroundImage" );
- mPopupBackgroundImage.SetAnchorPoint( AnchorPoint::CENTER );
- mPopupBackgroundImage.SetParentOrigin( ParentOrigin::CENTER );
+ mPopupBackgroundImage.SetProperty( Dali::Actor::Property::NAME, "popupBackgroundImage" );
+ mPopupBackgroundImage.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
+ mPopupBackgroundImage.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
// OnDialogTouched only consumes the event. It prevents the touch event to be caught by the backing.
mPopupBackgroundImage.TouchSignal().Connect( this, &Popup::OnDialogTouched );
{
// Set up padding to give sensible default behaviour
// (an application developer can later override this if they wish).
- mTitle.SetPadding( DEFAULT_TITLE_PADDING );
+ mTitle.SetProperty( Actor::Property::PADDING, DEFAULT_TITLE_PADDING );
mPopupLayout.AddChild( mTitle, Toolkit::TableView::CellPosition( 0, 0 ) );
}
if( mContent )
{
- mContent.SetName( "popupContent" );
+ mContent.SetProperty( Dali::Actor::Property::NAME, "popupContent" );
mPopupLayout.AddChild( mContent, Toolkit::TableView::CellPosition( 1, 0 ) );
}
// We are displaying so bring the popup layer to the front, and set it visible so it is rendered.
mLayer.RaiseToTop();
- mLayer.SetVisible( true );
+ mLayer.SetProperty( Actor::Property::VISIBLE, true );
// Set up the layout if this is the first display or the layout has become dirty.
if( mLayoutDirty )
}
// Allow the popup to catch events.
- mPopupLayout.SetSensitive( true );
+ mPopupLayout.SetProperty( Actor::Property::SENSITIVE, true );
// Handle the keyboard focus when popup is shown.
Dali::Toolkit::KeyboardFocusManager keyboardFocusManager = Dali::Toolkit::KeyboardFocusManager::Get();
* | |````
* | |
*/
- mPopupContainer.SetParentOrigin( Self().GetCurrentParentOrigin() );
- mPopupContainer.SetAnchorPoint( Self().GetCurrentAnchorPoint() );
+ mPopupContainer.SetProperty( Actor::Property::PARENT_ORIGIN, Self().GetCurrentProperty< Vector3 >( Actor::Property::PARENT_ORIGIN ) );
+ mPopupContainer.SetProperty( Actor::Property::ANCHOR_POINT, Self().GetCurrentProperty< Vector3 >( Actor::Property::ANCHOR_POINT ) );
// If there is only a title, use less padding.
if( mTitle )
{
if( !mContent && !mFooter )
{
- mTitle.SetPadding( DEFAULT_TITLE_ONLY_PADDING );
+ mTitle.SetProperty( Actor::Property::PADDING, DEFAULT_TITLE_ONLY_PADDING );
}
else
{
- mTitle.SetPadding( DEFAULT_TITLE_PADDING );
+ mTitle.SetProperty( Actor::Property::PADDING, DEFAULT_TITLE_PADDING );
}
}
OnLayoutSetup();
// Update background visibility.
- mPopupContainer.SetVisible( !( !mFooter && mPopupLayout.GetChildCount() == 0 ) );
+ mPopupContainer.SetProperty( Actor::Property::VISIBLE, !( !mFooter && mPopupLayout.GetChildCount() == 0 ) );
// Create / destroy / position the tail as needed.
LayoutTail();
{
// Adds the tail actor.
mTailImage = Toolkit::ImageView::New( image );
- mTailImage.SetName( "tailImage" );
- mTailImage.SetParentOrigin( parentOrigin );
- mTailImage.SetAnchorPoint( anchorPoint );
- mTailImage.SetPosition( position );
+ mTailImage.SetProperty( Dali::Actor::Property::NAME, "tailImage" );
+ mTailImage.SetProperty( Actor::Property::PARENT_ORIGIN, parentOrigin );
+ mTailImage.SetProperty( Actor::Property::ANCHOR_POINT, anchorPoint );
+ mTailImage.SetProperty( Actor::Property::POSITION, position );
if( mPopupBackgroundImage )
{
backing.SetProperty( Toolkit::Control::Property::BACKGROUND,
Property::Map().Add( Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR )
.Add( Toolkit::ColorVisual::Property::MIX_COLOR, Vector4( mBackingColor.r, mBackingColor.g, mBackingColor.b, 1.0f ) ) );
- backing.SetName( "popupBacking" );
+ backing.SetProperty( Dali::Actor::Property::NAME, "popupBacking" );
// Must always be positioned top-left of stage, regardless of parent.
- backing.SetInheritPosition(false);
+ backing.SetProperty( Actor::Property::INHERIT_POSITION, false );
// Always the full size of the stage.
backing.SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS );
- backing.SetSize( Stage::GetCurrent().GetSize() );
+ backing.SetProperty( Actor::Property::SIZE, Stage::GetCurrent().GetSize() );
// Catch events.
- backing.SetSensitive( true );
+ backing.SetProperty( Actor::Property::SENSITIVE, true );
// Default to being transparent.
backing.SetProperty( Actor::Property::COLOR_ALPHA, 0.0f );
if( mPopupBackgroundImage )
{
mPopupBackgroundImage.SetResizePolicy( ResizePolicy::SIZE_FIXED_OFFSET_FROM_PARENT, Dimension::ALL_DIMENSIONS );
- mPopupBackgroundImage.SetSizeModeFactor( Vector3( mBackgroundBorder.left + mBackgroundBorder.right, mBackgroundBorder.top + mBackgroundBorder.bottom, 0.0f ) );
+ mPopupBackgroundImage.SetProperty( Actor::Property::SIZE_MODE_FACTOR, Vector3( mBackgroundBorder.left + mBackgroundBorder.right, mBackgroundBorder.top + mBackgroundBorder.bottom, 0.0f ) );
// Adjust the position of the background so the transparent areas are set appropriately
- mPopupBackgroundImage.SetPosition( ( mBackgroundBorder.right - mBackgroundBorder.left ) * 0.5f, ( mBackgroundBorder.bottom - mBackgroundBorder.top ) * 0.5f );
+ mPopupBackgroundImage.SetProperty( Actor::Property::POSITION, Vector2( ( mBackgroundBorder.right - mBackgroundBorder.left ) * 0.5f, ( mBackgroundBorder.bottom - mBackgroundBorder.top ) * 0.5f ));
}
}
}
// Block anything behind backing becoming touched.
- mLayer.SetTouchConsumed( true );
+ mLayer.SetProperty( Layer::Property::CONSUMES_TOUCH, true );
return true;
}
}
// Consume wheel event in dimmed backing actor.
- mLayer.SetTouchConsumed( true );
+ mLayer.SetProperty( Layer::Property::CONSUMES_TOUCH, true );
return true;
}
}
// Consume event (stops backing actor receiving touch events)
- mLayer.SetTouchConsumed( true );
+ mLayer.SetProperty( Layer::Property::CONSUMES_TOUCH, true );
return true;
}
return;
}
- mPopupContainer.SetParentOrigin( ParentOrigin::CENTER );
+ mPopupContainer.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
// We always anchor to the CENTER, rather than a different anchor point for each contextual
// mode to allow code-reuse of the bound checking code (for maintainability).
- mPopupContainer.SetAnchorPoint( AnchorPoint::CENTER );
+ mPopupContainer.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
// Setup with some pre-calculations for speed.
Vector3 halfStageSize( Stage().GetCurrent().GetSize() / 2.0f );
- Vector3 parentPosition( parent.GetCurrentPosition() );
+ Vector3 parentPosition( parent.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ) );
Vector2 halfSize( size / 2.0f );
Vector2 halfParentSize( parent.GetRelayoutSize( Dimension::WIDTH ) / 2.0f, parent.GetRelayoutSize( Dimension::HEIGHT ) / 2.0f );
Vector3 newPosition( Vector3::ZERO );
}
// Set the final position.
- mPopupContainer.SetPosition( newPosition );
+ mPopupContainer.SetProperty( Actor::Property::POSITION, newPosition );
}
void Popup::OnRelayout( const Vector2& size, RelayoutContainer& container )
std::string currentStr;
if( currentFocusedActor )
{
- currentStr = currentFocusedActor.GetName();
+ currentStr = currentFocusedActor.GetProperty< std::string >( Dali::Actor::Property::NAME );
}
Actor nextFocusableActor( currentFocusedActor );