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

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

#callbackObject (readonly)

Returns the value of attribute callback.



96
97
98
# File 'opal/browser/event.rb', line 96

def callback
  @callback
end

#onObject



109
110
111
# File 'opal/browser/event.rb', line 109

def on
  @on || Target.convert(`#@native.currentTarget`)
end

Class Method Details

.aliasesObject



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

.handlersObject



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

Returns:

  • (Boolean)


44
45
46
# File 'opal/browser/event.rb', line 44

def self.supported?
  true
end

Instance Method Details

#argumentsObject



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

#nameObject



105
106
107
# File 'opal/browser/event.rb', line 105

def name
  `#@native.type`
end

#offObject



131
132
133
# File 'opal/browser/event.rb', line 131

def off
  @callback.off if @callback
end

#preventObject



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

Returns:

  • (Boolean)


149
150
151
# File 'opal/browser/event.rb', line 149

def prevented?
  `!!#@native.prevented`
end

#stopObject



139
140
141
142
# File 'opal/browser/event.rb', line 139

def stop
  `#@native.stopPropagation()` if defined?(`#@native.stopPropagation`)
  `#@native.stopped = true`
end

#stop!Object



153
154
155
156
# File 'opal/browser/event.rb', line 153

def stop!
  prevent
  stop
end

#stopped?Boolean

Returns:

  • (Boolean)


135
136
137
# File 'opal/browser/event.rb', line 135

def stopped?
  `!!#@native.stopped`
end

#targetObject



113
114
115
# File 'opal/browser/event.rb', line 113

def target
  Target.convert(`#@native.srcElement || #@native.target`)
end