int UtcDaliPropertyNotificationVectorComponentOutside(void) { TestApplication application; tet_infoline(" UtcDaliPropertyNotificationOutside"); Actor actor = Actor::New(); Stage::GetCurrent().Add(actor); PropertyNotification notification = actor.AddPropertyNotification( Actor::Property::POSITION, 0, OutsideCondition(-100.0f, 100.0f) ); notification.NotifySignal().Connect( &TestCallback ); notification = actor.AddPropertyNotification( Actor::Property::POSITION, 1, OutsideCondition(-100.0f, 100.0f) ); notification.NotifySignal().Connect( &TestCallback ); notification = actor.AddPropertyNotification( Actor::Property::POSITION, 2, OutsideCondition(-100.0f, 100.0f) ); notification.NotifySignal().Connect( &TestCallback ); notification = actor.AddPropertyNotification( Actor::Property::COLOR, 3, OutsideCondition(0.25f, 0.75f) ); notification.NotifySignal().Connect( &TestCallback ); // set inside all conditions actor.SetPosition(Vector3(0.0f, 0.0f, 0.0f)); actor.SetColor(Vector4(0.0f, 0.0f, 0.0f, 0.5f)); Wait(application, DEFAULT_WAIT_PERIOD); // Move x to outside condition gCallBackCalled = false; actor.SetPosition(Vector3(200.0f, 0.0f, 0.0f)); Wait(application, DEFAULT_WAIT_PERIOD); DALI_TEST_CHECK( gCallBackCalled ); // Move y to outside condition gCallBackCalled = false; actor.SetPosition(Vector3(200.0f, 200.0f, 0.0f)); Wait(application, DEFAULT_WAIT_PERIOD); DALI_TEST_CHECK( gCallBackCalled ); // Move z to outside condition gCallBackCalled = false; Wait(application, DEFAULT_WAIT_PERIOD); actor.SetPosition(Vector3(200.0f, 200.0f, 200.0f)); Wait(application, DEFAULT_WAIT_PERIOD); DALI_TEST_CHECK( gCallBackCalled ); // change alpha to outside condition gCallBackCalled = false; Wait(application, DEFAULT_WAIT_PERIOD); actor.SetColor(Vector4(0.0f, 0.0f, 0.0f, 1.0f)); Wait(application, DEFAULT_WAIT_PERIOD); DALI_TEST_CHECK( gCallBackCalled ); END_TEST; }
int UtcDaliPropertyNotificationVectorComponentLessThan(void) { TestApplication application; tet_infoline(" UtcDaliPropertyNotificationLessThan"); Actor actor = Actor::New(); Stage::GetCurrent().Add(actor); PropertyNotification notification = actor.AddPropertyNotification( Actor::Property::POSITION, 0, LessThanCondition(-100.0f) ); notification.NotifySignal().Connect( &TestCallback ); notification = actor.AddPropertyNotification( Actor::Property::POSITION, 1, LessThanCondition(-100.0f) ); notification.NotifySignal().Connect( &TestCallback ); notification = actor.AddPropertyNotification( Actor::Property::POSITION, 2, LessThanCondition(-100.0f) ); notification.NotifySignal().Connect( &TestCallback ); notification = actor.AddPropertyNotification( Actor::Property::COLOR, 3, LessThanCondition(0.5f) ); notification.NotifySignal().Connect( &TestCallback ); actor.SetPosition(Vector3(0.0f, 0.0f, 0.0f)); actor.SetColor(Vector4(0.0f, 0.0f, 0.0f, 1.0f)); Wait(application, DEFAULT_WAIT_PERIOD); // Move left to satisfy XAxis condition gCallBackCalled = false; actor.SetPosition(Vector3(-200.0f, 0.0f, 0.0f)); Wait(application, DEFAULT_WAIT_PERIOD); DALI_TEST_CHECK( gCallBackCalled ); // Move up to satisfy YAxis condition gCallBackCalled = false; actor.SetPosition(Vector3(-200.0f, -200.0f, 0.0f)); Wait(application, DEFAULT_WAIT_PERIOD); DALI_TEST_CHECK( gCallBackCalled ); // Move back to satisfy ZAxis gCallBackCalled = false; Wait(application, DEFAULT_WAIT_PERIOD); actor.SetPosition(Vector3(-200.0f, -200.0f, -200.0f)); Wait(application, DEFAULT_WAIT_PERIOD); DALI_TEST_CHECK( gCallBackCalled ); // Change alpha Colour to satisfy w/alpha component condition gCallBackCalled = false; Wait(application, DEFAULT_WAIT_PERIOD); actor.SetColor(Vector4(0.0f, 0.0f, 0.0f, 0.0f)); Wait(application, DEFAULT_WAIT_PERIOD); DALI_TEST_CHECK( gCallBackCalled ); END_TEST; }
int UtcDaliPropertyNotificationVariableStep(void) { TestApplication application; tet_infoline(" UtcDaliPropertyNotificationStep"); Actor actor = Actor::New(); Stage::GetCurrent().Add(actor); Dali::Vector<float> values; const float averageStep = 100.0f; for( int i = 1 ; i < 10 ; i++ ) { values.PushBack(i * averageStep + (i % 2 == 0 ? -(averageStep * 0.2f) : (averageStep * 0.2f))); } // float PropertyNotification notification = actor.AddPropertyNotification( Actor::Property::POSITION, 0, VariableStepCondition(values) ); notification.NotifySignal().Connect( &TestCallback ); // set initial position lower than first position in list actor.SetPosition(Vector3(values[0] - averageStep, 0.0f, 0.0f)); Wait(application, DEFAULT_WAIT_PERIOD); for( unsigned int i = 0 ; i < values.Count() - 1 ; ++i ) { gCallBackCalled = false; // set position half way between the current values float position = values[i] + (0.5f * (values[i + 1] - values[i])); actor.SetPosition(Vector3(position, 0.0f, 0.0f)); Wait(application, DEFAULT_WAIT_PERIOD); DALI_TEST_CHECK( gCallBackCalled ); } END_TEST; }
int UtcDaliPropertyNotificationOutside(void) { TestApplication application; tet_infoline(" UtcDaliPropertyNotificationOutside"); Actor actor = Actor::New(); Stage::GetCurrent().Add(actor); PropertyNotification notification = actor.AddPropertyNotification( Actor::Property::POSITION_X, OutsideCondition(100.0f, 200.0f) ); notification.NotifySignal().Connect( &TestCallback ); actor.SetPosition(Vector3(150.0f, 0.0f, 0.0f)); Wait(application, DEFAULT_WAIT_PERIOD); // Move outside (left) to satisfy condition gCallBackCalled = false; actor.SetPosition(Vector3(0.0f, 0.0f, 0.0f)); Wait(application, DEFAULT_WAIT_PERIOD); DALI_TEST_CHECK( gCallBackCalled ); // Move inside to un-satisfy condition gCallBackCalled = false; actor.SetPosition(Vector3(150.0f, 0.0f, 0.0f)); Wait(application, DEFAULT_WAIT_PERIOD); DALI_TEST_CHECK( !gCallBackCalled ); // Move outside (right) to satisfy condition again. gCallBackCalled = false; Wait(application, DEFAULT_WAIT_PERIOD); actor.SetPosition(Vector3(300.0f, 0.0f, 0.0f)); Wait(application, DEFAULT_WAIT_PERIOD); DALI_TEST_CHECK( gCallBackCalled ); END_TEST; }
int UtcDaliPropertyNotificationGetNotifyResultP(void) { TestApplication application; tet_infoline(" UtcDaliPropertyNotificationGetNotifyMode"); Actor actor = Actor::New(); PropertyNotification notification = actor.AddPropertyNotification(Actor::Property::POSITION_X, GreaterThanCondition(100.0f)); notification.SetNotifyMode(PropertyNotification::NotifyOnChanged); gCallBackCalled = false; notification.NotifySignal().Connect( &TestCallback ); actor.SetPosition(Vector3(0.0f, 0.0f, 0.0f)); application.Render(RENDER_FRAME_INTERVAL); application.SendNotification(); application.Render(RENDER_FRAME_INTERVAL); application.SendNotification(); bool notifyResult = notification.GetNotifyResult(); DALI_TEST_EQUALS( notifyResult, false, TEST_LOCATION ); END_TEST; }
void ImageView::AddImage(ImageRequest& req, PropertyCondition condition) { Actor self = Self(); PropertyNotification notification = self.AddPropertyNotification( mPropertyDetail, condition ); notification.NotifySignal().Connect( this, &ImageView::OnDetailChange ); mNotifications[notification] = req; }
int UtcDaliPropertyNotificationStep(void) { TestApplication application; tet_infoline(" UtcDaliPropertyNotificationStep"); Actor actor = Actor::New(); Stage::GetCurrent().Add(actor); const float step = 100.0f; // float PropertyNotification notification = actor.AddPropertyNotification( Actor::Property::POSITION, 0, StepCondition(step, 50.0f) ); notification.NotifySignal().Connect( &TestCallback ); // set initial position actor.SetPosition(Vector3(0.0f, 0.0f, 0.0f)); Wait(application, DEFAULT_WAIT_PERIOD); // test both directions for( int i = 1 ; i < 10 ; ++i ) { // Move x to negative position gCallBackCalled = false; actor.SetPosition(Vector3((i * step), 0.0f, 0.0f)); Wait(application, DEFAULT_WAIT_PERIOD); DALI_TEST_CHECK( gCallBackCalled ); } for( int i = 1 ; i < 10 ; ++i ) { // Move x to negative position gCallBackCalled = false; actor.SetPosition(Vector3(-(i * step), 0.0f, 0.0f)); Wait(application, DEFAULT_WAIT_PERIOD); DALI_TEST_CHECK( gCallBackCalled ); } END_TEST; }