Commit 058b80f9e333611f3bb70517e18710c9c7eb3c75

Authored by Paul Wisbey
1 parent 3054c598

Minor text demo tweaks

     - Respond to back key
     - Start multi-language text at the top
     - Scroll to integer positions only

Change-Id: I7595e86ea31f6531683fb4589db009637222ab85
examples/text/text-label-example.cpp
... ... @@ -53,6 +53,8 @@ public:
53 53 {
54 54 Stage stage = Stage::GetCurrent();
55 55  
  56 + stage.KeyEventSignal().Connect(this, &TextLabelExample::OnKeyEvent);
  57 +
56 58 TextLabel label = TextLabel::New();
57 59 label.SetParentOrigin( ParentOrigin::CENTER );
58 60 stage.Add( label );
... ... @@ -66,6 +68,20 @@ public:
66 68 //std::cout << "Got text from label: " << labelText.Get< std::string >() << std::endl;
67 69 }
68 70  
  71 + /**
  72 + * Main key event handler
  73 + */
  74 + void OnKeyEvent(const KeyEvent& event)
  75 + {
  76 + if(event.state == KeyEvent::Down)
  77 + {
  78 + if( IsKey( event, DALI_KEY_ESCAPE) || IsKey( event, DALI_KEY_BACK ) )
  79 + {
  80 + mApplication.Quit();
  81 + }
  82 + }
  83 + }
  84 +
69 85 private:
70 86  
71 87 Application& mApplication;
... ...
examples/text/text-label-multi-language-example.cpp
... ... @@ -227,8 +227,11 @@ public:
227 227 {
228 228 Stage stage = Stage::GetCurrent();
229 229  
  230 + stage.KeyEventSignal().Connect(this, &TextLabelMultiLanguageExample::OnKeyEvent);
  231 +
230 232 mLayout = VerticalLayout::New();
231   - mLayout.SetParentOrigin( ParentOrigin::CENTER );
  233 + mLayout.SetParentOrigin( ParentOrigin::TOP_LEFT );
  234 + mLayout.SetAnchorPoint( AnchorPoint::TOP_LEFT );
232 235  
233 236 stage.Add( mLayout );
234 237  
... ... @@ -259,17 +262,19 @@ public:
259 262 if( 1u == event.GetPointCount() )
260 263 {
261 264 const TouchPoint::State state = event.GetPoint(0u).state;
  265 +
  266 + // Clamp to integer values; this is to reduce flicking due to pixel misalignment
  267 + const float localPoint = static_cast<float>( static_cast<int>( event.GetPoint( 0 ).local.y ) );
  268 +
262 269 if( TouchPoint::Down == state )
263 270 {
264   - mLastPoint = event.GetPoint( 0 ).local.y;
  271 + mLastPoint = localPoint;
265 272 mAnimation = Animation::New( 0.25f );
266   - mAnimation.FinishedSignal().Connect( this, &TextLabelMultiLanguageExample::AnimationCompleted );
267 273 }
268 274 else if( TouchPoint::Motion == state )
269 275 {
270 276 if( mAnimation )
271 277 {
272   - const float localPoint = event.GetPoint( 0 ).local.y;
273 278 mAnimation.MoveBy( mLayout, Vector3( 0.f, localPoint - mLastPoint, 0.f ), AlphaFunctions::Linear );
274 279 mAnimation.Play();
275 280 mLastPoint = localPoint;
... ... @@ -280,9 +285,18 @@ public:
280 285 return true;
281 286 }
282 287  
283   - void AnimationCompleted(Animation& source)
  288 + /**
  289 + * Main key event handler
  290 + */
  291 + void OnKeyEvent(const KeyEvent& event)
284 292 {
285   - //mAnimation.Reset();
  293 + if(event.state == KeyEvent::Down)
  294 + {
  295 + if( IsKey( event, DALI_KEY_ESCAPE) || IsKey( event, DALI_KEY_BACK ) )
  296 + {
  297 + mApplication.Quit();
  298 + }
  299 + }
286 300 }
287 301  
288 302 private:
... ...