Class: Browser::Event
- Inherits:
-
Object
show all
- Includes:
- Native::Wrapper
- Defined in:
- opal/browser/event.rb,
opal/browser/event/ui.rb,
opal/browser/event/base.rb,
opal/browser/event/drag.rb,
opal/browser/event/close.rb,
opal/browser/event/focus.rb,
opal/browser/event/mouse.rb,
opal/browser/event/touch.rb,
opal/browser/event/wheel.rb,
opal/browser/event/custom.rb,
opal/browser/event/sensor.rb,
opal/browser/event/gamepad.rb,
opal/browser/event/message.rb,
opal/browser/event/storage.rb,
opal/browser/event/keyboard.rb,
opal/browser/event/progress.rb,
opal/browser/event/animation.rb,
opal/browser/event/clipboard.rb,
opal/browser/event/pop_state.rb,
opal/browser/event/composition.rb,
opal/browser/event/hash_change.rb,
opal/browser/event/device_light.rb,
opal/browser/event/before_unload.rb,
opal/browser/event/data_transfer.rb,
opal/browser/event/device_motion.rb,
opal/browser/event/page_transition.rb,
opal/browser/event/audio_processing.rb,
opal/browser/event/device_proximity.rb,
opal/browser/event/device_orientation.rb
Direct Known Subclasses
Animation, AudioProcessing, BeforeUnload, Clipboard, Close, Custom, DeviceLight, DeviceMotion, DeviceOrientation, DeviceProximity, Drag, Gamepad, HashChange, Message, PageTransition, PopState, Progress, Sensor, Storage, Touch, UI
Defined Under Namespace
Modules: Target
Classes: Animation, AudioProcessing, BeforeUnload, Clipboard, Close, Composition, Custom, DataTransfer, Definition, DeviceLight, DeviceMotion, DeviceOrientation, DeviceProximity, Drag, Focus, Gamepad, HashChange, Keyboard, Message, Mouse, PageTransition, PopState, Progress, Sensor, Storage, Touch, UI, Wheel
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(event, callback = nil) ⇒ Event
Returns a new instance of Event.
99
100
101
102
103
|
# File 'opal/browser/event.rb', line 99
def initialize(event, callback = nil)
super(event)
@callback = callback
end
|
Instance Attribute Details
Returns the value of attribute callback.
96
97
98
|
# File 'opal/browser/event.rb', line 96
def callback
@callback
end
|
109
110
111
|
# File 'opal/browser/event.rb', line 109
def on
@on || Target.convert(`#@native.currentTarget`)
end
|
Class Method Details
7
8
9
10
11
12
|
# File 'opal/browser/event.rb', line 7
def self.aliases
@aliases ||= {
'dom:load' => 'DOMContentLoaded',
'hover' => 'mouse:over'
}
end
|
.class_for(name) ⇒ Object
40
41
42
|
# File 'opal/browser/event.rb', line 40
def self.class_for(name)
@handlers[name_for(name)] || Custom
end
|
.construct(name, desc) ⇒ Object
59
60
61
|
# File 'opal/browser/event.rb', line 59
def self.construct(name, desc)
`new Event(#{name}, #{desc})`
end
|
.create(name, *args, &block) ⇒ Object
48
49
50
51
52
53
54
55
56
|
# File 'opal/browser/event.rb', line 48
def self.create(name, *args, &block)
name = name_for(name)
klass = class_for(name)
event = klass.new(klass.construct(name, klass.const_get(:Definition).new(&block)))
event.arguments = args
event
end
|
18
19
20
|
# File 'opal/browser/event.rb', line 18
def self.handlers
@handlers ||= {}
end
|
.handles(*events) ⇒ Object
22
23
24
|
# File 'opal/browser/event.rb', line 22
def self.handles(*events)
events.each { |event| Event.handlers[event] = self }
end
|
.name_for(name) ⇒ Object
14
15
16
|
# File 'opal/browser/event.rb', line 14
def self.name_for(name)
(aliases[name] || name).gsub(?:, '')
end
|
.new(value, callback = nil) ⇒ Object
84
85
86
87
88
89
90
91
92
93
94
|
# File 'opal/browser/event.rb', line 84
def self.new(value, callback = nil)
return super unless self == Event
klass = class_for(callback ? callback.name : `value.type`)
if klass == Event
super
else
klass.new(value, callback)
end
end
|
.supported? ⇒ Boolean
44
45
46
|
# File 'opal/browser/event.rb', line 44
def self.supported?
true
end
|
Instance Method Details
#arguments ⇒ Object
117
118
119
|
# File 'opal/browser/event.rb', line 117
def arguments
`#@native.arguments || []`
end
|
#arguments=(args) ⇒ Object
121
122
123
|
# File 'opal/browser/event.rb', line 121
def arguments=(args)
`#@native.arguments = #{args}`
end
|
105
106
107
|
# File 'opal/browser/event.rb', line 105
def name
`#@native.type`
end
|
131
132
133
|
# File 'opal/browser/event.rb', line 131
def off
@callback.off if @callback
end
|
144
145
146
147
|
# File 'opal/browser/event.rb', line 144
def prevent
`#@native.preventDefault()` if defined?(`#@native.preventDefault`)
`#@native.prevented = true`
end
|
#prevented? ⇒ Boolean
149
150
151
|
# File 'opal/browser/event.rb', line 149
def prevented?
`!!#@native.prevented`
end
|
139
140
141
142
|
# File 'opal/browser/event.rb', line 139
def stop
`#@native.stopPropagation()` if defined?(`#@native.stopPropagation`)
`#@native.stopped = true`
end
|
153
154
155
156
|
# File 'opal/browser/event.rb', line 153
def stop!
prevent
stop
end
|
#stopped? ⇒ Boolean
135
136
137
|
# File 'opal/browser/event.rb', line 135
def stopped?
`!!#@native.stopped`
end
|
113
114
115
|
# File 'opal/browser/event.rb', line 113
def target
Target.convert(`#@native.srcElement || #@native.target`)
end
|