1 |
Namespace: |
2 |
@DOMCore: |
3 |
http://suika.fam.cx/~wakaba/archive/2004/8/18/dom-core# |
4 |
@DOMEvents: |
5 |
http://suika.fam.cx/~wakaba/archive/2004/dom/events# |
6 |
@DOMViews: |
7 |
http://suika.fam.cx/~wakaba/archive/2004/dom/views# |
8 |
@ev: |
9 |
http://www.w3.org/2001/xml-events |
10 |
@lang: |
11 |
http://suika.fam.cx/~wakaba/archive/2004/8/18/lang# |
12 |
@license: |
13 |
http://suika.fam.cx/~wakaba/archive/2004/8/18/license# |
14 |
@ManakaiDOMEvents: |
15 |
http://suika.fam.cx/~wakaba/archive/2004/mdom-ev# |
16 |
@TreeCore:\ |
17 |
Module: |
18 |
@Name: DOMKeyboardEvents |
19 |
@Namespace: |
20 |
http://suika.fam.cx/~wakaba/archive/2004/dom/events# |
21 |
@BindingName: |
22 |
@@@: events |
23 |
@@Type: |
24 |
lang:IDL-DOM |
25 |
@@prefix: dom.w3c.org |
26 |
@FullName: |
27 |
@@lang:en |
28 |
@@@: DOM Keyboard Events Module |
29 |
@Description: |
30 |
@@lang:en |
31 |
@@@: |
32 |
Keyboard events are device dependent, i.e. they rely on |
33 |
the capabilities of the input devices and how they are |
34 |
mapped in the operating systems. Depending on the character |
35 |
generation device, keyboard events may or may not be generated. |
36 |
\ |
37 |
{NOTE:: It is highly recommended to rely on <Module:DOMTextEvents> |
38 |
when dealing with character input. |
39 |
\ |
40 |
} |
41 |
|
42 |
@Author: |
43 |
@@FullName: Wakaba |
44 |
@@Mail: w@suika.fam.cx |
45 |
@License: |
46 |
license:Perl+MPL |
47 |
@Date.RCS: |
48 |
$Date: 2004/10/11 12:02:00 $ |
49 |
|
50 |
@ConditionDef: |
51 |
@@Name:DOM3 |
52 |
@NormalCondition:DOM3 |
53 |
|
54 |
@Feature: |
55 |
@@Name:KeyboardEvents |
56 |
@@Version:3.0 |
57 |
@@FullName: DOM Level 3 Keyboard Events |
58 |
@@ImplNote: |
59 |
@@@lang:en |
60 |
@@@@: |
61 |
The support for <Feature:UIEvents>/<FeatureVer:3.0> is required. |
62 |
@@Condition[list]: |
63 |
DOM3 |
64 |
@@Contrib: |
65 |
DOMCore:DOMImplementation:: |
66 |
|
67 |
@Require: |
68 |
@@Module: |
69 |
@@@Name: DOMUIEvents |
70 |
@@@FileName: |
71 |
@@@@@: events.idl |
72 |
@@@@For: |
73 |
lang:IDL-DOM |
74 |
@@@Namespace: |
75 |
http://suika.fam.cx/~wakaba/archive/2004/dom/events# |
76 |
|
77 |
EventSet: |
78 |
@Event: |
79 |
@@QName: |
80 |
ev:keydown |
81 |
@@Description: |
82 |
@@@lang:en |
83 |
@@@@: |
84 |
A key is pressed down. |
85 |
\ |
86 |
This event type is device dependent and relies on the |
87 |
capabilities of the input devices and how they are mapped |
88 |
in the operating system. |
89 |
\ |
90 |
This event type is generated after the keyboard mapping |
91 |
but before the processing of an input method editor. |
92 |
\ |
93 |
This event should logically happen before the event |
94 |
<EV:ev:keyup> is produced. Whether a keydown |
95 |
contributes to the generation of a text event is |
96 |
implementation dependent. |
97 |
@@Type:KeyboardEvent |
98 |
@@IsBubbling:1 |
99 |
@@IsCancelable:1 |
100 |
@@EventTarget: |
101 |
@@@Type: |
102 |
DOMCore:Element |
103 |
@@SpecLevel:3 |
104 |
@@ContextInfo: |
105 |
@@@Attr: |
106 |
@@@@IF:UIEvent |
107 |
@@@@Name:view |
108 |
@@@@Type: |
109 |
DOMViews:AbstractView |
110 |
@@@Attr: |
111 |
@@@@IF:KeyboardEvent |
112 |
@@@@Name:keyIdentifier |
113 |
@@@@Type: |
114 |
ManakaiDOM:ManakaiDOMKeyIdentifier |
115 |
@@@Attr: |
116 |
@@@@IF:KeyboardEvent |
117 |
@@@@Name:keyLocation |
118 |
@@@@Type:KeyLocationCode |
119 |
@@@@ImplNote: |
120 |
@@@@@lang:en |
121 |
@@@@@@: |
122 |
<A:KeyboardEvent.location> in the DOM Level 3 Events Specification |
123 |
is maybe an error. |
124 |
@@@Attr: |
125 |
@@@@IF:KeyboardEvent |
126 |
@@@@Name:altKey |
127 |
@@@@Type: |
128 |
DOMMain:boolean |
129 |
@@@ImplNote: |
130 |
@@@@lang:en |
131 |
@@@@@: |
132 |
<A:KeyboardEvent.altGraphKey>: Maybe error of the DOM Level 3 Events |
133 |
specification. |
134 |
@@@Attr: |
135 |
@@@@IF:KeyboardEvent |
136 |
@@@@Name:shiftKey |
137 |
@@@@Type: |
138 |
DOMMain:boolean |
139 |
@@@Attr: |
140 |
@@@@IF:KeyboardEvent |
141 |
@@@@Name:ctrlKey |
142 |
@@@@Type: |
143 |
DOMMain:boolean |
144 |
@@@Attr: |
145 |
@@@@IF:KeyboardEvent |
146 |
@@@@Name:metaKey |
147 |
@@@@Type: |
148 |
DOMMain:boolean |
149 |
@Event: |
150 |
@@QName: |
151 |
ev:keyup |
152 |
@@Description: |
153 |
@@@lang:en |
154 |
@@@@: |
155 |
A key is released. |
156 |
\ |
157 |
This event type is device dependent and relies on the |
158 |
capabilities of the input devices and how they are mapped in |
159 |
the operating system. |
160 |
\ |
161 |
This event type is generated after the keyboard mapping but |
162 |
before the process of an input method editor. |
163 |
\ |
164 |
This event should logically happen after the event |
165 |
<EV:ev:keydown> is produced. |
166 |
\ |
167 |
Whether a keyup contributes to the generation of a text |
168 |
event is implementation dependent. |
169 |
@@Type:KeyboardEvent |
170 |
@@IsBubbling:1 |
171 |
@@IsCancelable:1 |
172 |
@@EventTarget: |
173 |
@@@Type: |
174 |
DOMCore:Element |
175 |
@@SpecLevel:3 |
176 |
@@ContextInfo: |
177 |
@@@Attr: |
178 |
@@@@IF: |
179 |
DOMUIEvents:UIEvent |
180 |
@@@@Name:view |
181 |
@@@@Type: |
182 |
DOMViews:AbstractView |
183 |
@@@Attr: |
184 |
@@@@IF: |
185 |
KeyboardEvent |
186 |
@@@@Name:keyIdentifier |
187 |
@@@@Type: |
188 |
ManakaiDOM:ManakaiDOMKeyIdentifier |
189 |
@@@Attr: |
190 |
@@@@IF:KeyboardEvent |
191 |
@@@@Name:keyLocation |
192 |
@@@@Type:KeyLocationCode |
193 |
@@@@ImplNote: |
194 |
@@@@@lang:en |
195 |
@@@@@@: |
196 |
<A:KeyboardEvent.location> in the DOM Level 3 Events Specification |
197 |
is maybe an error. |
198 |
@@@Attr: |
199 |
@@@@IF:KeyboardEvent |
200 |
@@@@Name:altKey |
201 |
@@@@Type: |
202 |
DOMMain:boolean |
203 |
@@@@Description: |
204 |
@@@@@lang:en |
205 |
@@@@@@: |
206 |
Set unless the <A:KeyboardEvent.keyIdentifier> corresponding |
207 |
to the key modifier itself. |
208 |
@@@ImplNote: |
209 |
@@@@lang:en |
210 |
@@@@@: |
211 |
<A:KeyboardEvent.altGraphKey>: Maybe error of the DOM Level 3 Events |
212 |
specification. |
213 |
\ |
214 |
Set unless the <A:KeyboardEvent.keyIdentifier> corresponding |
215 |
to the key modifier itself. |
216 |
@@@Attr: |
217 |
@@@@IF:KeyboardEvent |
218 |
@@@@Name:shiftKey |
219 |
@@@@Type: |
220 |
DOMMain:boolean |
221 |
@@@@Description: |
222 |
@@@@@lang:en |
223 |
@@@@@@: |
224 |
Set unless the <A:KeyboardEvent.keyIdentifier> corresponding |
225 |
to the key modifier itself. |
226 |
@@@Attr: |
227 |
@@@@IF:KeyboardEvent |
228 |
@@@@Name:ctrlKey |
229 |
@@@@Type: |
230 |
DOMMain:boolean |
231 |
@@@@Description: |
232 |
@@@@@lang:en |
233 |
@@@@@@: |
234 |
Set unless the <A:KeyboardEvent.keyIdentifier> corresponding |
235 |
to the key modifier itself. |
236 |
@@@Attr: |
237 |
@@@@IF:KeyboardEvent |
238 |
@@@@Name:metaKey |
239 |
@@@@Type: |
240 |
DOMMain:boolean |
241 |
@@@@Description: |
242 |
@@@@@lang:en |
243 |
@@@@@@: |
244 |
Set unless the <A:KeyboardEvent.keyIdentifier> corresponding |
245 |
to the key modifier itself. |
246 |
##ErrorSet |
247 |
|
248 |
IF: |
249 |
@Name: KeyboardEvent |
250 |
@Description: |
251 |
@@lang:en |
252 |
@@@: |
253 |
Provide specific contextual information associated with |
254 |
keyboard devices. Each keyboard event refers a key using |
255 |
an identifier. |
256 |
\ |
257 |
{NOTE:: Keyboard events are commonly directed at |
258 |
the element that has the focus. |
259 |
\ |
260 |
} |
261 |
@Example: |
262 |
@@For: |
263 |
lang:Perl |
264 |
@@FullName: |
265 |
@@@lang:en |
266 |
@@@@: |
267 |
Create an instance of the <IF:KeyboardEvent> interface |
268 |
@@Code: |
269 |
@@@Type: |
270 |
lang:Perl |
271 |
@@@@: |
272 |
my $keyev = $DocumentEvent->createEvent ('KeyboardEvent'); |
273 |
|
274 |
@ISA: |
275 |
DOMUIEvents:UIEvent |
276 |
@Role: |
277 |
@@@: |
278 |
DOMEvents:Event |
279 |
@@compat: |
280 |
ManakaiDOMEvents:Events |
281 |
|
282 |
@Level[list]: 3 |
283 |
@SpecLevel[list]: 3 |
284 |
|
285 |
@ConstGroup: |
286 |
@@Name: KeyLocationCode |
287 |
@@Type: |
288 |
DOMMain:unsigned-long |
289 |
@@Description: |
290 |
@@@lang:en |
291 |
@@@@: |
292 |
The location of a key on the device. |
293 |
@@Const: |
294 |
@@@Name: DOM_KEY_LOCATION_STANDARD |
295 |
@@@Type: |
296 |
DOMMain:unsigned-long |
297 |
@@@Value: 0x00 |
298 |
@@@Description: |
299 |
@@@@lang:en |
300 |
@@@@@: |
301 |
The key is not distinguished as the left or right version and |
302 |
did not originate from the numeric keyboard. |
303 |
@@Const: |
304 |
@@@Name: DOM_KEY_LOCATION_LEFT |
305 |
@@@Type: |
306 |
DOMMain:unsigned-long |
307 |
@@@Value: 0x01 |
308 |
@@@Description: |
309 |
@@@@lang:en |
310 |
@@@@@: |
311 |
In the left location. |
312 |
\ |
313 |
{eg:: |
314 |
\ |
315 |
- The left <KEY:Shift> key on a PC 101 Key US keyboard. |
316 |
\ |
317 |
} |
318 |
@@Const: |
319 |
@@@Name: DOM_KEY_LOCATION_RIGHT |
320 |
@@@Type: |
321 |
DOMMain:unsigned-long |
322 |
@@@Value: 0x02 |
323 |
@@@Description: |
324 |
@@@@lang:en |
325 |
@@@@@: |
326 |
In the right location. |
327 |
\ |
328 |
{eg:: |
329 |
\ |
330 |
- The right <KEY:Shift> key on a PC 101 Key US keyboard. |
331 |
\ |
332 |
} |
333 |
@@Const: |
334 |
@@@Name: DOM_KEY_LOCATION_NUMPAD |
335 |
@@@Type: |
336 |
DOMMain:unsigned-long |
337 |
@@@Value: 0x03 |
338 |
@@@Description: |
339 |
@@@@lang:en |
340 |
@@@@@: |
341 |
On the numeric keypad or with a virtual key corresponding |
342 |
to the numeric keyboard. |
343 |
@@ImplNote: |
344 |
@@@lang:en |
345 |
@@@@: |
346 |
If the DOM implementation wishes to provide a new location |
347 |
information, a value different from the constant values |
348 |
defined in the specification must be used. |
349 |
|
350 |
@Attr: |
351 |
@@Name: keyIdentifier |
352 |
@@Description: |
353 |
@@@lang:en |
354 |
@@@@: |
355 |
The identifier of the key. |
356 |
@@Get: |
357 |
@@@Type: |
358 |
ManakaiDOM:ManakaiDOMKeyIdentifier |
359 |
@@@InCase: |
360 |
@@@@Value:Unidentified |
361 |
@@@@Description: |
362 |
@@@@@lang:en |
363 |
@@@@@@: |
364 |
The DOM implementation is unable to identify the key. |
365 |
@@@Def: |
366 |
@@@@Type: |
367 |
lang:dis |
368 |
@@@@GetProp: |
369 |
DOMKeyboardEvents:keyIdentifier |
370 |
@Attr: |
371 |
@@Name: keyLocation |
372 |
@@Description: |
373 |
@@@lang:en |
374 |
@@@@: |
375 |
The location of the key on the device. |
376 |
@@Get: |
377 |
@@@Type:KeyLocationCode |
378 |
@@@Def: |
379 |
@@@@Type: |
380 |
lang:dis |
381 |
@@@@GetProp: |
382 |
DOMKeyboardEvents:keyLocation |
383 |
@Attr: |
384 |
@@Name: ctrlKey |
385 |
@@Description: |
386 |
@@@lang:en |
387 |
@@@@: |
388 |
Whether the <KEY:Control> (<CODE:Ctrl>) key modifier is activated |
389 |
or not. |
390 |
@@Get: |
391 |
@@@Type: |
392 |
DOMMain:boolean |
393 |
@@@InCase: |
394 |
@@@@Value: true |
395 |
@@@InCase: |
396 |
@@@@Value: false |
397 |
@Attr: |
398 |
@@Name: shiftKey |
399 |
@@Description: |
400 |
@@@lang:en |
401 |
@@@@: |
402 |
Whether the shift (<KEY:Shift>) key modifier is activated or not. |
403 |
@@Get: |
404 |
@@@Type: |
405 |
DOMMain:boolean |
406 |
@@@InCase: |
407 |
@@@@Value: true |
408 |
@@@InCase: |
409 |
@@@@Value: false |
410 |
@Attr: |
411 |
@@Name: altKey |
412 |
@@Description: |
413 |
@@@lang:en |
414 |
@@@@: |
415 |
Whether the alternative (<KEY:Alt>) key modifier is activated. |
416 |
\ |
417 |
{eg:: |
418 |
\ |
419 |
{P:: Examples of the alternative key include: |
420 |
\ |
421 |
- The <KEY:Alt> key. |
422 |
\ |
423 |
- The <CODE:Option> key on Macinrosh systems. |
424 |
\ |
425 |
- The <CODE:Menu> key. |
426 |
\ |
427 |
} |
428 |
\ |
429 |
} |
430 |
@@Get: |
431 |
@@@Type: |
432 |
DOMMain:boolean |
433 |
@@@InCase: |
434 |
@@@@Value: true |
435 |
@@@InCase: |
436 |
@@@@Value: false |
437 |
@Attr: |
438 |
@@Name: metaKey |
439 |
@@Description: |
440 |
@@@lang:en |
441 |
@@@@: |
442 |
Whether the <KEY:Meta> key modifier is activated or not. |
443 |
\ |
444 |
{eg:: |
445 |
\ |
446 |
{P:: Examples of the <KEY:Meta> key include: |
447 |
\ |
448 |
- The <KEY:Meta> key. |
449 |
\ |
450 |
- The <CODE:Command> key on Macintosh systems. |
451 |
\ |
452 |
} |
453 |
\ |
454 |
} |
455 |
@@Get: |
456 |
@@@Type: |
457 |
DOMMain:boolean |
458 |
@@@InCase: |
459 |
@@@@Value: true |
460 |
@@@InCase: |
461 |
@@@@Value: false |
462 |
@Method: |
463 |
@@Name: getModifierState |
464 |
@@Description: |
465 |
@@@lang:en |
466 |
@@@@: |
467 |
Return the state of a modifier using a key identifier. |
468 |
\ |
469 |
{NOTE:: To distinguish between right and left modifiers, |
470 |
use the <A:KeyboardEvent.KeyLocation> attribute. |
471 |
\ |
472 |
} |
473 |
@@ImplNote: |
474 |
@@@lang:en |
475 |
@@@@: |
476 |
Can DOM applications know left <KEY:Control> and right <KEY:Shift> |
477 |
are activated in the same time? |
478 |
@@Param: |
479 |
@@@Name: keyIdentifierArg |
480 |
@@@Type: |
481 |
ManakaiDOM:ManakaiDOMKeyIdentifier |
482 |
@@@Description: |
483 |
@@@@lang:en |
484 |
@@@@@: |
485 |
An modifier key identifier. |
486 |
\ |
487 |
{NOTE:: |
488 |
\ |
489 |
{P:: Common modifier keys include: |
490 |
\ |
491 |
- <KEY:Alt> |
492 |
\ |
493 |
- <KEY:AltGraph> |
494 |
\ |
495 |
- <KEY:CapsLock> |
496 |
\ |
497 |
- <KEY:Control> |
498 |
\ |
499 |
- <KEY:Meta> |
500 |
\ |
501 |
- <KEY:NumLock> |
502 |
\ |
503 |
- <KEY:Shift> |
504 |
\ |
505 |
} |
506 |
\ |
507 |
} |
508 |
@@Return: |
509 |
@@@Type: |
510 |
DOMMain:boolean |
511 |
@@@InCase: |
512 |
@@@@Value: true |
513 |
@@@@Description: |
514 |
@@@@@lang:en |
515 |
@@@@@@: |
516 |
The <P:keyIdentifierArg> key is a modifier key and |
517 |
the modifier is activated. |
518 |
@@@InCase: |
519 |
@@@@Value: false |
520 |
@Method: |
521 |
@@Name: initKeyboardEvent |
522 |
@@Description: |
523 |
@@@lang:en |
524 |
@@@@: |
525 |
Initialize the value of <IF:KeyboardEvent> object. It has |
526 |
the same behavior as <M:UIEvent.initUIEvent>. |
527 |
@@NSVersion:initKeyboardEvent |
528 |
@@Param: |
529 |
@@@Name: typeArg |
530 |
@@@Type: |
531 |
DOMMain:DOMString |
532 |
@@Param: |
533 |
@@@Name: canBubbleArg |
534 |
@@@Type: |
535 |
DOMMain:boolean |
536 |
@@@InCase: |
537 |
@@@@Value: true |
538 |
@@@InCase: |
539 |
@@@@Value: false |
540 |
@@Param: |
541 |
@@@Name: cancelableArg |
542 |
@@@Type: |
543 |
DOMMain:boolean |
544 |
@@@InCase: |
545 |
@@@@Value: true |
546 |
@@@InCase: |
547 |
@@@@Value: false |
548 |
@@Param: |
549 |
@@@Name: viewArg |
550 |
@@@Type: |
551 |
DOMViews:AbstractView |
552 |
@@Param: |
553 |
@@@Name: keyIdentifierArg |
554 |
@@@Type: |
555 |
ManakaiDOM:ManakaiDOMKeyIdentifier |
556 |
@@Param: |
557 |
@@@Name: keyLocationArg |
558 |
@@@Type: |
559 |
DOMMain:unsigned-long |
560 |
@@Param: |
561 |
@@@Name: modifiersList |
562 |
@@@Type: |
563 |
ManakaiDOM:ManakaiDOMKeyIdentifiers |
564 |
@@@Description: |
565 |
@@@@lang:en |
566 |
@@@@@: |
567 |
A white space (XML 1.0 <CODE:S>) separated list |
568 |
of modifier key identifiers to be activated. |
569 |
@@Return: |
570 |
@@@Def: |
571 |
@@@@Type: |
572 |
lang:Perl |
573 |
@@@@@: |
574 |
__DEEP{ |
575 |
## Conditional |
576 |
$self->__SUPER{UIEvent}__::initUIEvent |
577 |
($typeArg, $canBubbleArg, $cancelableArg, |
578 |
$viewArg, null); |
579 |
}__; ## NOTE: $detailArg not used |
580 |
for ($self->{<Q:TreeCore:node>}) { |
581 |
$_->{<Q:DOMKeyboardEvents:keyIdentifier>} = $keyIdentifierArg; |
582 |
$_->{<Q:DOMKeyboardEvents:keyLocation>} = $keyLocationArg; |
583 |
$_->{<Q:DOMKeyboardEvents:modifiersList>} = $modifiersList; |
584 |
} |
585 |
@@SpecLevel:3 |
586 |
@@Level[list]: |
587 |
3 |
588 |
|
589 |
@Method: |
590 |
@@Name: initKeyboardEventNS |
591 |
@@Description: |
592 |
@@@lang:en |
593 |
@@@@: |
594 |
Initialize the value of a <IF:KeyboardEvent> object. It has |
595 |
the same behavior as <M:UIEvent.initUIEventNS>. |
596 |
@@Param: |
597 |
@@@Name: namespaceURI |
598 |
@@@Type: |
599 |
ManakaiDOM:ManakaiDOMNamespaceURI |
600 |
@@Param: |
601 |
@@@Name: typeArg |
602 |
@@@Type: |
603 |
DOMMain:DOMString |
604 |
@@Param: |
605 |
@@@Name: canBubbleArg |
606 |
@@@Type: |
607 |
DOMMain:boolean |
608 |
@@@InCase: |
609 |
@@@@Value: true |
610 |
@@@InCase: |
611 |
@@@@Value: false |
612 |
@@Param: |
613 |
@@@Name: cancelableArg |
614 |
@@@Type: |
615 |
DOMMain:boolean |
616 |
@@@InCase: |
617 |
@@@@Value: true |
618 |
@@@InCase: |
619 |
@@@@Value: false |
620 |
@@Param: |
621 |
@@@Name: viewArg |
622 |
@@@Type: |
623 |
DOMViews:AbstractView |
624 |
@@Param: |
625 |
@@@Name: keyIdentifierArg |
626 |
@@@Type: |
627 |
ManakaiDOM:ManakaiDOMKeyIdentifier |
628 |
@@Param: |
629 |
@@@Name: keyLocationArg |
630 |
@@@Type: |
631 |
DOMMain:unsigned-long |
632 |
@@Param: |
633 |
@@@Name: modifiersList |
634 |
@@@Type: |
635 |
ManakaiDOM:ManakaiDOMKeyIdentifiers |
636 |
@@Return: |
637 |
@@@Def: |
638 |
@@@@Type: |
639 |
lang:Perl |
640 |
@@@@@: |
641 |
__DEEP{ |
642 |
## Conditional |
643 |
$self->__SUPER{UIEvent}__::initUIEventNS |
644 |
($namespaceURI, $typeArg, $canBubbleArg, $cancelableArg, |
645 |
$viewArg, null); |
646 |
}__; ## NOTE: $detailArg not used |
647 |
for ($self->{<Q:TreeCore:node>}) { |
648 |
$_->{<Q:DOMKeyboardEvents:keyIdentifier>} = $keyIdentifierArg; |
649 |
$_->{<Q:DOMKeyboardEvents:keyLocation>} = $keyLocationArg; |
650 |
$_->{<Q:DOMKeyboardEvents:modifiersList>} = $modifiersList; |
651 |
} |
652 |
##IF:KeyboardEvent |
653 |
|
654 |
|
655 |
## DOMUIEvents.dis ends here |