You.i Engine
YiEvent.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_EVENT_H_
3 #define _YI_EVENT_H_
4 
6 #include "framework/YiPredef.h"
7 #include "utility/YiString.h"
8 
9 class CYIEventTarget;
10 class CYIKeyEvent;
11 class CYITrackpadEvent;
12 class CYIFocusEvent;
13 class CYIActionEvent;
14 
19 
23 typedef enum
24 {
58 
59  // Leave this marker as last event.
60 
62 
64 
68 typedef enum
69 {
77 
81 typedef enum
82 {
319  // New TV Remotes
322 
323  // WebOS2 Magic Remote (and other magic remotes)
326 
327  // Leave this marker as last key code
328 
330 
331 } YI_KEY_CODE;
332 
336 typedef enum
337 {
348  YI_ASCII_LF, // 10
368  YI_ASCII_RS, // 30
467 
468 } YI_ASCII_CODE;
469 
473 typedef enum
474 {
480 
483 
490 {
491 public:
492 
493  CYIEvent(YI_EVENT_TYPE eventType);
494  CYIEvent(const CYIEvent &rOther);
495  virtual ~CYIEvent();
496  virtual std::unique_ptr<CYIEvent> Clone() const;
497 
501  const CYIString &GetName() const;
502 
506  YI_EVENT_TYPE GetType() const;
507 
511  void SetType(YI_EVENT_TYPE eventType);
512 
518  bool IsActionEvent() const;
519 
525  std::unique_ptr<CYIActionEvent> CloneAsActionEvent() const;
526 
532  bool IsKeyEvent() const;
533 
539  std::unique_ptr<CYIKeyEvent> CloneAsKeyEvent() const;
540 
546  bool IsFocusEvent() const;
547 
553  std::unique_ptr<CYIFocusEvent> CloneAsFocusEvent() const;
554 
560  bool IsTrackpadEvent() const;
561 
567  std::unique_ptr<CYITrackpadEvent> CloneAsTrackpadEvent() const;
568 
576  bool m_bHandled;
578  uint64_t m_uEventTimeMs;
580 private:
581 
582  YI_EVENT_TYPE m_Type;
584 };
589 {
590  return m_Type;
591 }
592 
593 inline bool CYIEvent::IsActionEvent() const
594 {
595  return m_Type==YI_ACTION_PICK || m_Type==YI_ACTION_MOVE || m_Type==YI_ACTION_DOWN || m_Type==YI_ACTION_DELAYED_DOWN || m_Type==YI_ACTION_UP || m_Type==YI_ACTION_CLICK || m_Type==YI_ACTION_OUT || m_Type==YI_ACTION_IN || m_Type==YI_ACTION_WHEEL || m_Type==YI_ACTION_ENTER || m_Type==YI_ACTION_LEAVE || m_Type==YI_ACTION_LONG_PRESS || m_Type==YI_ACTION_SUPPRESSED_MOVE;
596 }
597 
598 inline bool CYIEvent::IsKeyEvent() const
599 {
600  return m_Type==YI_KEY_DOWN || m_Type==YI_KEY_UP || m_Type==YI_KEY_INPUT;
601 }
602 
603 inline bool CYIEvent::IsFocusEvent() const
604 {
605  return m_Type==YI_FOCUS_IN || m_Type==YI_FOCUS_OUT;
606 }
607 
608 inline bool CYIEvent::IsTrackpadEvent() const
609 {
610  return m_Type == YI_TRACKPAD_DOWN || m_Type == YI_TRACKPAD_MOVE || m_Type == YI_TRACKPAD_UP;
611 }
612 
613 #endif // _YI_EVENT_H_
Definition: YiEvent.h:219
Definition: YiEvent.h:143
Definition: YiEvent.h:317
Definition: YiEvent.h:437
Definition: YiEvent.h:132
Definition: YiEvent.h:98
Definition: YiEvent.h:296
YI_EVENT_TYPE GetType() const
Definition: YiEvent.h:588
Definition: YiEvent.h:465
Definition: YiEvent.h:117
Definition: YiEvent.h:241
Definition: YiEvent.h:37
Definition: YiEvent.h:224
Definition: YiEvent.h:125
Definition: YiEvent.h:354
Voice search key on remotes. */.
Definition: YiEvent.h:321
YI_EVENT_PHASE
The current processing phase of the event.
Definition: YiEvent.h:68
Definition: YiEvent.h:476
Definition: YiEvent.h:228
Definition: YiEvent.h:119
Definition: YiEvent.h:231
Definition: YiEvent.h:230
Definition: YiEvent.h:124
Definition: YiEvent.h:304
Definition: YiEvent.h:375
Definition: YiEvent.h:73
Stores data related to trackpad input.
Definition: YiTrackpadEvent.h:22
Definition: YiEvent.h:185
Definition: YiEvent.h:299
Definition: YiEvent.h:455
Definition: YiEvent.h:359
Definition: YiEvent.h:286
bool IsFocusEvent() const
Definition: YiEvent.h:603
Definition: YiEvent.h:61
Definition: YiEvent.h:206
Class for key events.
Definition: YiKeyEvent.h:15
Definition: YiEvent.h:440
Definition: YiEvent.h:451
Definition: YiEvent.h:314
Definition: YiEvent.h:209
Magic Remote input key. */.
Definition: YiEvent.h:325
Definition: YiEvent.h:270
Definition: YiEvent.h:167
Definition: YiEvent.h:415
Definition: YiEvent.h:102
Definition: YiEvent.h:338
Definition: YiEvent.h:423
Definition: YiEvent.h:52
Definition: YiEvent.h:349
std::unique_ptr< CYIKeyEvent > CloneAsKeyEvent() const
Definition: YiEvent.h:94
Definition: YiEvent.h:260
Base class for events.
Definition: YiEvent.h:489
Definition: YiEvent.h:111
Definition: YiEvent.h:89
Definition: YiEvent.h:285
Definition: YiEvent.h:403
Definition: YiEvent.h:30
Container class for Unicode strings. Conceptually, a CYIString object is a sequence of Unicode charac...
Definition: YiString.h:35
Definition: YiEvent.h:278
const CYIString & GetName() const
Definition: YiEvent.h:280
Definition: YiEvent.h:258
Definition: YiEvent.h:385
Definition: YiEvent.h:87
Definition: YiEvent.h:99
Definition: YiEvent.h:435
Definition: YiEvent.h:409
Definition: YiEvent.h:275
Definition: YiEvent.h:396
Definition: YiEvent.h:226
Definition: YiEvent.h:466
Definition: YiEvent.h:365
Definition: YiEvent.h:256
std::unique_ptr< CYIActionEvent > CloneAsActionEvent() const
Definition: YiEvent.h:416
Definition: YiEvent.h:271
Definition: YiEvent.h:346
Definition: YiEvent.h:104
Definition: YiEvent.h:131
YI_EVENT_TYPE
The event type of the CYIEvent class instance.
Definition: YiEvent.h:23
Definition: YiEvent.h:394
Definition: YiEvent.h:364
Definition: YiEvent.h:481
Definition: YiEvent.h:400
Definition: YiEvent.h:389
virtual std::unique_ptr< CYIEvent > Clone() const
Definition: YiEvent.h:431
Definition: YiEvent.h:408
CYIEventTarget * m_pTarget
Definition: YiEvent.h:569
Definition: YiEvent.h:398
void SetType(YI_EVENT_TYPE eventType)
Definition: YiEvent.h:329
Definition: YiEvent.h:311
Definition: YiEvent.h:179
Definition: YiEvent.h:53
Definition: YiEvent.h:367
Definition: YiEvent.h:372
Definition: YiEvent.h:274
bool IsKeyEvent() const
Definition: YiEvent.h:598
Definition: YiEvent.h:88
Definition: YiEvent.h:255
Definition: YiEvent.h:93
Definition: YiEvent.h:288
Definition: YiEvent.h:95
Definition: YiEvent.h:107
Definition: YiEvent.h:436
Definition: YiEvent.h:225
bool m_bCanCapture
Definition: YiEvent.h:574
Definition: YiEvent.h:420
Definition: YiEvent.h:341
Definition: YiEvent.h:236
Definition: YiEvent.h:445
Definition: YiEvent.h:242
Definition: YiEvent.h:290
The base class for an object accessible from script source code.
Definition: YiScriptableObject.h:28
Definition: YiEvent.h:128
Definition: YiEvent.h:301
Definition: YiEvent.h:390
Definition: YiEvent.h:411
Definition: YiEvent.h:97
Definition: YiEvent.h:129
Definition: YiEvent.h:49
Definition: YiEvent.h:189
Definition: YiEvent.h:355
Definition: YiEvent.h:70
Definition: YiEvent.h:306
Definition: YiEvent.h:127
Definition: YiEvent.h:232
virtual ~CYIEvent()
Definition: YiEvent.h:384
Definition: YiEvent.h:47
Definition: YiEvent.h:295
Definition: YiEvent.h:205
Definition: YiEvent.h:192
Definition: YiEvent.h:387
Definition: YiEvent.h:233
Definition: YiEvent.h:294
Definition: YiEvent.h:142
Definition: YiEvent.h:273
Definition: YiEvent.h:235
Definition: YiEvent.h:213
Definition: YiEvent.h:159
Definition: YiEvent.h:253
Definition: YiEvent.h:148
Definition: YiEvent.h:175
Definition: YiEvent.h:55
Definition: YiEvent.h:371
Definition: YiEvent.h:57
Definition: YiEvent.h:138
Definition: YiEvent.h:44
Definition: YiEvent.h:218
Definition: YiEvent.h:176
Definition: YiEvent.h:90
Definition: YiEvent.h:211
Definition: YiEvent.h:178
Definition: YiEvent.h:381
Definition: YiEvent.h:446
Definition: YiEvent.h:262
Definition: YiEvent.h:38
Definition: YiEvent.h:428
Definition: YiEvent.h:106
Definition: YiEvent.h:168
Definition: YiEvent.h:461
Definition: YiEvent.h:297
Definition: YiEvent.h:439
Definition: YiEvent.h:362
Definition: YiEvent.h:345
Definition: YiEvent.h:223
Definition: YiEvent.h:370
std::unique_ptr< CYIFocusEvent > CloneAsFocusEvent() const
Definition: YiEvent.h:184
Definition: YiEvent.h:340
Definition: YiEvent.h:388
YI_KEY_CODE
Key code for CYIKeyEvent events.
Definition: YiEvent.h:81
Definition: YiEvent.h:86
YI_EVENT_PRIORITY
Priority of the event in the event queue.
Definition: YiEvent.h:473
Definition: YiEvent.h:144
Definition: YiEvent.h:276
Definition: YiEvent.h:161
YI_ASCII_CODE
Ascii codes for key characters.
Definition: YiEvent.h:336
Definition: YiEvent.h:25
Definition: YiEvent.h:51
Definition: YiEvent.h:374
Definition: YiEvent.h:202
Definition: YiEvent.h:449
Definition: YiEvent.h:392
Definition: YiEvent.h:172
Definition: YiEvent.h:281
Definition: YiEvent.h:378
Definition: YiEvent.h:101
Definition: YiEvent.h:158
Definition: YiEvent.h:103
Definition: YiEvent.h:204
Definition: YiEvent.h:182
Definition: YiEvent.h:269
YI_EVENT_PHASE m_ePhase
Definition: YiEvent.h:571
Definition: YiEvent.h:222
Definition: YiEvent.h:302
Definition: YiEvent.h:116
Definition: YiEvent.h:152
Definition: YiEvent.h:351
Definition: YiEvent.h:240
Definition: YiEvent.h:369
Definition: YiEvent.h:453
Definition: YiEvent.h:118
Definition: YiEvent.h:368
Definition: YiEvent.h:412
Definition: YiEvent.h:34
Definition: YiEvent.h:139
Definition: YiEvent.h:169
Definition: YiEvent.h:173
Definition: YiEvent.h:380
Definition: YiEvent.h:366
Definition: YiEvent.h:361
Represents an event target of type YI_SPECIAL_EVENT_TARGET_TYPE.
Definition: YiEventTarget.h:37
Definition: YiEvent.h:50
Definition: YiEvent.h:201
Definition: YiEvent.h:261
Definition: YiEvent.h:160
Definition: YiEvent.h:452
Definition: YiEvent.h:239
Definition: YiEvent.h:166
Definition: YiEvent.h:39
Definition: YiEvent.h:265
Definition: YiEvent.h:418
Definition: YiEvent.h:96
Definition: YiEvent.h:284
Definition: YiEvent.h:344
Definition: YiEvent.h:141
Definition: YiEvent.h:243
Definition: YiEvent.h:479
Definition: YiEvent.h:190
Definition: YiEvent.h:147
Definition: YiEvent.h:442
Definition: YiEvent.h:386
Definition: YiEvent.h:305
Definition: YiEvent.h:200
Definition: YiEvent.h:208
Definition: YiEvent.h:29
Definition: YiEvent.h:376
Definition: YiEvent.h:363
Definition: YiEvent.h:251
Definition: YiEvent.h:350
Definition: YiEvent.h:254
Definition: YiEvent.h:377
Definition: YiEvent.h:263
Definition: YiEvent.h:32
Search key on remotes. */.
Definition: YiEvent.h:320
Definition: YiEvent.h:456
Definition: YiEvent.h:413
Definition: YiEvent.h:348
Definition: YiEvent.h:121
Definition: YiEvent.h:308
Definition: YiEvent.h:426
Definition: YiEvent.h:42
Definition: YiEvent.h:382
Definition: YiEvent.h:109
Focus events represent when a view receives or loses focus.
Definition: YiFocusEvent.h:27
Definition: YiEvent.h:155
Definition: YiEvent.h:46
Definition: YiEvent.h:316
Definition: YiEvent.h:112
Definition: YiEvent.h:252
Definition: YiEvent.h:427
Definition: YiEvent.h:220
Definition: YiEvent.h:84
Definition: YiEvent.h:212
Definition: YiEvent.h:31
Definition: YiEvent.h:110
Definition: YiEvent.h:358
Definition: YiEvent.h:108
Definition: YiEvent.h:41
Definition: YiEvent.h:83
Definition: YiEvent.h:246
Definition: YiEvent.h:215
Definition: YiEvent.h:339
Definition: YiEvent.h:293
Definition: YiEvent.h:342
Definition: YiEvent.h:259
Definition: YiEvent.h:477
Definition: YiEvent.h:438
Definition: YiEvent.h:399
uint64_t m_uEventTimeMs
Definition: YiEvent.h:578
Definition: YiEvent.h:397
Definition: YiEvent.h:56
Definition: YiEvent.h:40
Definition: YiEvent.h:196
Definition: YiEvent.h:134
Definition: YiEvent.h:379
Definition: YiEvent.h:248
Definition: YiEvent.h:245
Definition: YiEvent.h:352
Definition: YiEvent.h:430
Definition: YiEvent.h:300
Definition: YiEvent.h:156
Definition: YiEvent.h:217
Definition: YiEvent.h:383
Definition: YiEvent.h:85
Definition: YiEvent.h:353
Definition: YiEvent.h:291
Definition: YiEvent.h:425
Definition: YiEvent.h:310
Definition: YiEvent.h:28
Definition: YiEvent.h:287
Definition: YiEvent.h:272
Definition: YiEvent.h:417
Definition: YiEvent.h:443
Definition: YiEvent.h:312
Definition: YiEvent.h:163
Definition: YiEvent.h:221
Definition: YiEvent.h:43
Definition: YiEvent.h:393
Definition: YiEvent.h:266
Definition: YiEvent.h:283
bool m_bCanBubble
Definition: YiEvent.h:573
Definition: YiEvent.h:421
Definition: YiEvent.h:137
Definition: YiEvent.h:433
Definition: YiEvent.h:193
Definition: YiEvent.h:424
Definition: YiEvent.h:395
Magic Remote 3D TV mode key. */.
Definition: YiEvent.h:324
Definition: YiEvent.h:249
Definition: YiEvent.h:457
Definition: YiEvent.h:197
Definition: YiEvent.h:122
Definition: YiEvent.h:264
Definition: YiEvent.h:214
bool m_bStopPropagation
Definition: YiEvent.h:575
Definition: YiEvent.h:458
Definition: YiEvent.h:407
Definition: YiEvent.h:460
Definition: YiEvent.h:462
bool m_bCanCancel
Definition: YiEvent.h:572
Definition: YiEvent.h:105
Definition: YiEvent.h:154
Definition: YiEvent.h:402
Definition: YiEvent.h:313
Definition: YiEvent.h:267
Definition: YiEvent.h:448
Definition: YiEvent.h:356
Definition: YiEvent.h:257
Definition: YiEvent.h:373
Definition: YiEvent.h:151
Definition: YiEvent.h:198
Definition: YiEvent.h:174
Definition: YiEvent.h:444
Definition: YiEvent.h:459
Definition: YiEvent.h:391
Definition: YiEvent.h:419
Definition: YiEvent.h:115
Definition: YiEvent.h:282
Definition: YiEvent.h:237
Definition: YiEvent.h:279
CYIEventTarget * m_pCurrentTarget
Definition: YiEvent.h:570
Definition: YiEvent.h:126
Definition: YiEvent.h:277
Definition: YiEvent.h:229
Definition: YiEvent.h:404
Definition: YiEvent.h:123
Definition: YiEvent.h:171
bool IsTrackpadEvent() const
Definition: YiEvent.h:608
Definition: YiEvent.h:292
Definition: YiEvent.h:422
Definition: YiEvent.h:268
Definition: YiEvent.h:343
Definition: YiEvent.h:35
std::unique_ptr< CYITrackpadEvent > CloneAsTrackpadEvent() const
Definition: YiEvent.h:157
Definition: YiEvent.h:410
Definition: YiEvent.h:54
Definition: YiEvent.h:464
Definition: YiEvent.h:405
Definition: YiEvent.h:177
Definition: YiEvent.h:36
Definition: YiEvent.h:71
Definition: YiEvent.h:401
Definition: YiEvent.h:347
Definition: YiEvent.h:210
Definition: YiEvent.h:153
Definition: YiEvent.h:244
Definition: YiEvent.h:447
Definition: YiEvent.h:162
Definition: YiEvent.h:303
Definition: YiEvent.h:133
Definition: YiEvent.h:432
Definition: YiEvent.h:238
Definition: YiEvent.h:441
Definition: YiEvent.h:216
Definition: YiEvent.h:92
Definition: YiEvent.h:72
Definition: YiEvent.h:203
Definition: YiEvent.h:113
bool IsActionEvent() const
Definition: YiEvent.h:593
Definition: YiEvent.h:406
Definition: YiEvent.h:194
Definition: YiEvent.h:360
Definition: YiEvent.h:146
CYIEvent(YI_EVENT_TYPE eventType)
Definition: YiEvent.h:250
Definition: YiEvent.h:309
Definition: YiEvent.h:434
Definition: YiEvent.h:140
Definition: YiEvent.h:74
Definition: YiEvent.h:114
Definition: YiEvent.h:145
Definition: YiEvent.h:183
Definition: YiEvent.h:234
Definition: YiEvent.h:247
Definition: YiEvent.h:463
Definition: YiEvent.h:100
bool m_bHandled
Definition: YiEvent.h:576
Definition: YiEvent.h:135
Definition: YiEvent.h:180
Definition: YiEvent.h:307
Definition: YiEvent.h:120
Definition: YiEvent.h:27
Definition: YiEvent.h:227
Definition: YiEvent.h:187
Definition: YiEvent.h:33
Definition: YiEvent.h:165
Definition: YiEvent.h:186
Definition: YiEvent.h:164
Stores data related to a user Action event.
Definition: YiActionEvent.h:18
Definition: YiEvent.h:199
Definition: YiEvent.h:26
Definition: YiEvent.h:478
Definition: YiEvent.h:149
Definition: YiEvent.h:357
Definition: YiEvent.h:298
Definition: YiEvent.h:289
Definition: YiEvent.h:191
Definition: YiEvent.h:207
Definition: YiEvent.h:170
Definition: YiEvent.h:91
Definition: YiEvent.h:188
Definition: YiEvent.h:45
Definition: YiEvent.h:195
Definition: YiEvent.h:181
Definition: YiEvent.h:150
Definition: YiEvent.h:136
Definition: YiEvent.h:48
Definition: YiEvent.h:450
Definition: YiEvent.h:429
Definition: YiEvent.h:315
Definition: YiEvent.h:414
Definition: YiEvent.h:475
Definition: YiEvent.h:130
Definition: YiEvent.h:454