opal-browser 0.1.0.beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +5 -0
- data/.yardopts +1 -0
- data/Gemfile +11 -0
- data/README.md +106 -0
- data/Rakefile +5 -0
- data/config.ru +63 -0
- data/lib/opal/browser.rb +4 -0
- data/opal-browser.gemspec +23 -0
- data/opal/browser.rb +10 -0
- data/opal/browser/animation_frame.rb +29 -0
- data/opal/browser/canvas.rb +277 -0
- data/opal/browser/canvas/data.rb +73 -0
- data/opal/browser/canvas/gradient.rb +37 -0
- data/opal/browser/canvas/style.rb +123 -0
- data/opal/browser/canvas/text.rb +55 -0
- data/opal/browser/compatibility.rb +59 -0
- data/opal/browser/compatibility/animation_frame.rb +93 -0
- data/opal/browser/compatibility/dom/document/window.rb +15 -0
- data/opal/browser/compatibility/dom/element/css.rb +15 -0
- data/opal/browser/compatibility/dom/element/matches.rb +31 -0
- data/opal/browser/compatibility/dom/element/offset.rb +20 -0
- data/opal/browser/compatibility/dom/element/scroll.rb +25 -0
- data/opal/browser/compatibility/dom/element/style.rb +15 -0
- data/opal/browser/compatibility/dom/mutation_observer.rb +47 -0
- data/opal/browser/compatibility/http/request.rb +15 -0
- data/opal/browser/compatibility/immediate.rb +107 -0
- data/opal/browser/compatibility/window/scroll.rb +27 -0
- data/opal/browser/compatibility/window/size.rb +13 -0
- data/opal/browser/compatibility/window/view.rb +13 -0
- data/opal/browser/console.rb +137 -0
- data/opal/browser/cookies.rb +79 -0
- data/opal/browser/css.rb +24 -0
- data/opal/browser/css/declaration.rb +88 -0
- data/opal/browser/css/rule.rb +48 -0
- data/opal/browser/css/rule/style.rb +16 -0
- data/opal/browser/css/style_sheet.rb +83 -0
- data/opal/browser/css/unit.rb +188 -0
- data/opal/browser/dom.rb +95 -0
- data/opal/browser/dom/attribute.rb +19 -0
- data/opal/browser/dom/builder.rb +97 -0
- data/opal/browser/dom/cdata.rb +9 -0
- data/opal/browser/dom/character_data.rb +37 -0
- data/opal/browser/dom/comment.rb +9 -0
- data/opal/browser/dom/compatibility.rb +8 -0
- data/opal/browser/dom/document.rb +83 -0
- data/opal/browser/dom/document_fragment.rb +7 -0
- data/opal/browser/dom/element.rb +290 -0
- data/opal/browser/dom/element/input.rb +17 -0
- data/opal/browser/dom/element/offset.rb +67 -0
- data/opal/browser/dom/element/position.rb +37 -0
- data/opal/browser/dom/element/scroll.rb +49 -0
- data/opal/browser/dom/event.rb +240 -0
- data/opal/browser/dom/event/animation.rb +26 -0
- data/opal/browser/dom/event/audio_processing.rb +31 -0
- data/opal/browser/dom/event/base.rb +207 -0
- data/opal/browser/dom/event/before_unload.rb +13 -0
- data/opal/browser/dom/event/clipboard.rb +26 -0
- data/opal/browser/dom/event/close.rb +35 -0
- data/opal/browser/dom/event/composition.rb +38 -0
- data/opal/browser/dom/event/custom.rb +30 -0
- data/opal/browser/dom/event/device_light.rb +21 -0
- data/opal/browser/dom/event/device_motion.rb +38 -0
- data/opal/browser/dom/event/device_orientation.rb +36 -0
- data/opal/browser/dom/event/device_proximity.rb +31 -0
- data/opal/browser/dom/event/drag.rb +113 -0
- data/opal/browser/dom/event/focus.rb +23 -0
- data/opal/browser/dom/event/gamepad.rb +47 -0
- data/opal/browser/dom/event/hash_change.rb +26 -0
- data/opal/browser/dom/event/keyboard.rb +93 -0
- data/opal/browser/dom/event/message.rb +50 -0
- data/opal/browser/dom/event/mouse.rb +253 -0
- data/opal/browser/dom/event/page_transition.rb +21 -0
- data/opal/browser/dom/event/pop_state.rb +21 -0
- data/opal/browser/dom/event/progress.rb +31 -0
- data/opal/browser/dom/event/sensor.rb +13 -0
- data/opal/browser/dom/event/storage.rb +41 -0
- data/opal/browser/dom/event/touch.rb +69 -0
- data/opal/browser/dom/event/ui.rb +22 -0
- data/opal/browser/dom/event/wheel.rb +49 -0
- data/opal/browser/dom/mutation_observer.rb +118 -0
- data/opal/browser/dom/node.rb +317 -0
- data/opal/browser/dom/node_set.rb +88 -0
- data/opal/browser/dom/text.rb +21 -0
- data/opal/browser/effects.rb +39 -0
- data/opal/browser/event_source.rb +67 -0
- data/opal/browser/history.rb +54 -0
- data/opal/browser/http.rb +129 -0
- data/opal/browser/http/binary.rb +57 -0
- data/opal/browser/http/compatibility.rb +1 -0
- data/opal/browser/http/headers.rb +90 -0
- data/opal/browser/http/parameters.rb +8 -0
- data/opal/browser/http/request.rb +331 -0
- data/opal/browser/http/response.rb +115 -0
- data/opal/browser/immediate.rb +43 -0
- data/opal/browser/interval.rb +93 -0
- data/opal/browser/location.rb +77 -0
- data/opal/browser/navigator.rb +151 -0
- data/opal/browser/screen.rb +40 -0
- data/opal/browser/socket.rb +115 -0
- data/opal/browser/storage.rb +149 -0
- data/opal/browser/timeout.rb +60 -0
- data/opal/browser/utils.rb +56 -0
- data/opal/browser/version.rb +3 -0
- data/opal/browser/window.rb +113 -0
- data/opal/browser/window/compatibility.rb +3 -0
- data/opal/browser/window/scroll.rb +49 -0
- data/opal/browser/window/size.rb +35 -0
- data/opal/browser/window/view.rb +18 -0
- data/spec/dom/builder_spec.rb +69 -0
- data/spec/dom/document_spec.rb +40 -0
- data/spec/dom/element_spec.rb +46 -0
- data/spec/dom/event_spec.rb +127 -0
- data/spec/dom/mutation_observer_spec.rb +37 -0
- data/spec/dom/node_spec.rb +154 -0
- data/spec/dom_spec.rb +13 -0
- data/spec/event_source_spec.rb +42 -0
- data/spec/history_spec.rb +48 -0
- data/spec/http_spec.rb +87 -0
- data/spec/immediate_spec.rb +12 -0
- data/spec/json2.js +486 -0
- data/spec/sizzle.js +5 -0
- data/spec/socket_spec.rb +43 -0
- data/spec/spec_helper.rb +37 -0
- data/spec/storage_spec.rb +26 -0
- data/spec/window_spec.rb +10 -0
- metadata +240 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
|
3
|
+
# Version 2, December 2004
|
|
4
|
+
#
|
|
5
|
+
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
|
6
|
+
# TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
7
|
+
#
|
|
8
|
+
# 0. You just DO WHAT THE FUCK YOU WANT TO.
|
|
9
|
+
#++
|
|
10
|
+
|
|
11
|
+
module Browser; class Canvas
|
|
12
|
+
|
|
13
|
+
class Data
|
|
14
|
+
def self.create(canvas, width, height)
|
|
15
|
+
data = allocate
|
|
16
|
+
|
|
17
|
+
data.instance_eval {
|
|
18
|
+
@canvas = canvas.to_a
|
|
19
|
+
@x = 0
|
|
20
|
+
@y = 0
|
|
21
|
+
@width = width
|
|
22
|
+
@height = height
|
|
23
|
+
|
|
24
|
+
@native = `#{canvas.to_n}.createImageData(width, height)`
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
data
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
include Native
|
|
31
|
+
|
|
32
|
+
attr_reader :x, :y, :width, :height
|
|
33
|
+
|
|
34
|
+
def initialize(canvas, x, y, width, height)
|
|
35
|
+
@canvas = canvas.to_n
|
|
36
|
+
@x = x
|
|
37
|
+
@y = y
|
|
38
|
+
@width = width
|
|
39
|
+
@height = height
|
|
40
|
+
|
|
41
|
+
super(`#@canvas.getImageData(x, y, width, height)`)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def length
|
|
45
|
+
`#@native.length`
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def [](index)
|
|
49
|
+
`#@native.data[index]`
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def []=(index, value)
|
|
53
|
+
`#@native.data[index] = value`
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def save(x = nil, y = nil)
|
|
57
|
+
x ||= 0
|
|
58
|
+
y ||= 0
|
|
59
|
+
|
|
60
|
+
`#@canvas.putImageData(#@native, x, y)`
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def save_to(canvas, x = nil, y = nil)
|
|
64
|
+
x ||= 0
|
|
65
|
+
y ||= 0
|
|
66
|
+
|
|
67
|
+
`#{canvas.to_n}.putImageData(#@native, x, y)`
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
alias size length
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
end; end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
|
3
|
+
# Version 2, December 2004
|
|
4
|
+
#
|
|
5
|
+
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
|
6
|
+
# TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
7
|
+
#
|
|
8
|
+
# 0. You just DO WHAT THE FUCK YOU WANT TO.
|
|
9
|
+
#++
|
|
10
|
+
|
|
11
|
+
module Browser; class Canvas
|
|
12
|
+
|
|
13
|
+
class Gradient
|
|
14
|
+
include Native
|
|
15
|
+
|
|
16
|
+
attr_reader :context
|
|
17
|
+
|
|
18
|
+
def initialize(context, *args, &block)
|
|
19
|
+
@context = context
|
|
20
|
+
|
|
21
|
+
super(case args.length
|
|
22
|
+
when 4 then `#{@context.to_n}.createLinearGradient.apply(self, args)`
|
|
23
|
+
when 6 then `#{@context.to_n}.createRadialGradient.apply(self, args)`
|
|
24
|
+
else raise ArgumentError, "don't know where to dispatch"
|
|
25
|
+
end)
|
|
26
|
+
|
|
27
|
+
instance_eval(&block)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def add(position, color)
|
|
31
|
+
`#{@context.to_n}.addColorStop(position, color)`
|
|
32
|
+
|
|
33
|
+
self
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
end; end
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
|
3
|
+
# Version 2, December 2004
|
|
4
|
+
#
|
|
5
|
+
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
|
6
|
+
# TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
7
|
+
#
|
|
8
|
+
# 0. You just DO WHAT THE FUCK YOU WANT TO.
|
|
9
|
+
#++
|
|
10
|
+
|
|
11
|
+
module Browser; class Canvas
|
|
12
|
+
|
|
13
|
+
class StyleObject
|
|
14
|
+
include Native
|
|
15
|
+
|
|
16
|
+
attr_reader :context
|
|
17
|
+
|
|
18
|
+
def initialize(context)
|
|
19
|
+
@context = context
|
|
20
|
+
|
|
21
|
+
super(@context.to_n)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
class Style < StyleObject
|
|
26
|
+
class Line < StyleObject
|
|
27
|
+
attr_reader :width, :cap, :join, :miter_limit
|
|
28
|
+
|
|
29
|
+
def width=(value)
|
|
30
|
+
`#@native.lineWidth = #{@width = value}`
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def cap=(value)
|
|
34
|
+
`#@native.lineCap = #{@cap = value}`
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def join=(value)
|
|
38
|
+
`#@native.lineJoin = #{@join = value}`
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def miter_limit=(value)
|
|
42
|
+
`#@native.miterLimit = #{@miter_limit = value}`
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
class Text < StyleObject
|
|
47
|
+
attr_reader :font, :align, :baseline
|
|
48
|
+
|
|
49
|
+
def font=(value)
|
|
50
|
+
`#@native.font = #{@font = value}`
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def align=(value)
|
|
54
|
+
`#@native.textAlign = #{@align = value}`
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def baseline=(value)
|
|
58
|
+
`#@native.textBaseline = #{@baseline = value}`
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
class Image < StyleObject
|
|
63
|
+
attr_reader :smooth
|
|
64
|
+
|
|
65
|
+
alias smooth? smooth
|
|
66
|
+
|
|
67
|
+
def smooth!
|
|
68
|
+
`#@native.mozImageSmoothingEnabled = #{@smooth = true}`
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def no_smooth!
|
|
72
|
+
`#@native.mozImageSmoothingEnabled = #{@smooth = false}`
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
class Shadow < StyleObject
|
|
77
|
+
attr_reader :offset, :blur, :color
|
|
78
|
+
|
|
79
|
+
def offset=(value)
|
|
80
|
+
`#@native.shadowOffsetX = #{value[:x]}`
|
|
81
|
+
`#@native.shadowOffsetY = #{value[:y]}`
|
|
82
|
+
|
|
83
|
+
@offset = value
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def blur=(value)
|
|
87
|
+
`#@native.shadowBlur = #{@blur = value}`
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def color=(value)
|
|
91
|
+
`#@native.shadowColor = #{@color = value}`
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
attr_reader :line, :text, :image, :shadow, :fill, :stroke, :alpha, :composite_operation
|
|
96
|
+
|
|
97
|
+
def initialize(context)
|
|
98
|
+
super(context)
|
|
99
|
+
|
|
100
|
+
@line = Line.new(context)
|
|
101
|
+
@text = Text.new(context)
|
|
102
|
+
@image = Image.new(context)
|
|
103
|
+
@shadow = Shadow.new(context)
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def fill=(value)
|
|
107
|
+
`#@native.fillStyle = #{(@fill = value).to_n}`
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def stroke=(value)
|
|
111
|
+
`#@native.strokeStyle = #{(@stroke = value).to_n}`
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def alpha=(value)
|
|
115
|
+
`#@native.globalAlpha = #{@alpha = value}`
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def composite_operation=(value)
|
|
119
|
+
`#@native.globalCompositeOperation = #{@composite_operation = value}`
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
end; end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
|
3
|
+
# Version 2, December 2004
|
|
4
|
+
#
|
|
5
|
+
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
|
6
|
+
# TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
7
|
+
#
|
|
8
|
+
# 0. You just DO WHAT THE FUCK YOU WANT TO.
|
|
9
|
+
#++
|
|
10
|
+
|
|
11
|
+
module Browser; class Canvas
|
|
12
|
+
|
|
13
|
+
class Text
|
|
14
|
+
include Native
|
|
15
|
+
|
|
16
|
+
attr_reader :context
|
|
17
|
+
|
|
18
|
+
def initialize(context)
|
|
19
|
+
@context = context
|
|
20
|
+
|
|
21
|
+
super(@context.to_n)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def measure(text)
|
|
25
|
+
`#@native.measureText(text)`
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def fill(text, x = nil, y = nil, max_width = nil)
|
|
29
|
+
x ||= 0
|
|
30
|
+
y ||= 0
|
|
31
|
+
|
|
32
|
+
if max_width
|
|
33
|
+
`#@native.fillText(text, x, y, max_width)`
|
|
34
|
+
else
|
|
35
|
+
`#@native.fillText(text, x, y)`
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
@context
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def stroke(text, x = nil, y = nil, max_width = nil)
|
|
42
|
+
x ||= 0
|
|
43
|
+
y ||= 0
|
|
44
|
+
|
|
45
|
+
if max_width
|
|
46
|
+
`#@native.strokeText(text, x, y, max_width)`
|
|
47
|
+
else
|
|
48
|
+
`#@native.strokeText(text, x, y)`
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
@context
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
end; end
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
BROWSER_ENGINE = `/MSIE|WebKit|Presto|Gecko/.exec(navigator.userAgent)[0]`.downcase rescue :unknown
|
|
2
|
+
|
|
3
|
+
module Browser
|
|
4
|
+
|
|
5
|
+
module Compatibility
|
|
6
|
+
def self.sizzle?
|
|
7
|
+
defined?(`window.Sizzle`)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
# FIXME: v
|
|
11
|
+
# def self.respond_to?(parent = `window`, object, method)
|
|
12
|
+
# ^
|
|
13
|
+
def self.respond_to?(*args)
|
|
14
|
+
if args.length == 2
|
|
15
|
+
parent = `window`
|
|
16
|
+
object, method = args
|
|
17
|
+
else
|
|
18
|
+
parent, object, method = args
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
%x{
|
|
22
|
+
if (!#{parent}) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
var klass = #{parent}[#{object}];
|
|
27
|
+
|
|
28
|
+
if (!klass) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return typeof(klass.prototype[#{method}]) === "function";
|
|
33
|
+
}
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# FIXME: v
|
|
37
|
+
# def self.has?(parent = `window`, name)
|
|
38
|
+
# ^
|
|
39
|
+
def self.has?(*args)
|
|
40
|
+
if args.length == 1
|
|
41
|
+
parent = `window`
|
|
42
|
+
name, = args
|
|
43
|
+
else
|
|
44
|
+
parent, name = args
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
%x{
|
|
48
|
+
if (!#{parent}) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return #{parent}[#{name}] != null;
|
|
53
|
+
}
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
C = Compatibility
|
|
58
|
+
|
|
59
|
+
end
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
module Browser
|
|
2
|
+
|
|
3
|
+
class Compatibility
|
|
4
|
+
def self.request_animation?(prefix = nil)
|
|
5
|
+
if prefix
|
|
6
|
+
has?("#{prefix}RequestAnimationFrame")
|
|
7
|
+
else
|
|
8
|
+
has?(:requestAnimationFrame)
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def self.cancel_animation?(prefix = nil)
|
|
13
|
+
if prefix
|
|
14
|
+
has?("#{prefix}CancelAnimationFrame")
|
|
15
|
+
else
|
|
16
|
+
has?(:cancelAnimationFrame)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def self.cancel_request_animation?(prefix = nil)
|
|
21
|
+
if prefix
|
|
22
|
+
has?("#{prefix}CancelRequestAnimationFrame")
|
|
23
|
+
else
|
|
24
|
+
has?(:cancelAnimationFrame)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
class AnimationFrame
|
|
30
|
+
if C.request_animation?
|
|
31
|
+
def request(block)
|
|
32
|
+
`#@native.requestAnimationFrame(#{block.to_n})`
|
|
33
|
+
end
|
|
34
|
+
elsif C.request_animation? :webkit
|
|
35
|
+
def request(block)
|
|
36
|
+
`#@native.webkitRequestAnimationFrame(#{block.to_n})`
|
|
37
|
+
end
|
|
38
|
+
elsif C.request_animation? :moz
|
|
39
|
+
def request(block)
|
|
40
|
+
`#@native.mozRequestAnimationFrame(#{block.to_n})`
|
|
41
|
+
end
|
|
42
|
+
elsif C.request_animation? :o
|
|
43
|
+
def request(block)
|
|
44
|
+
`#@native.oRequestAnimationFrame(#{block.to_n})`
|
|
45
|
+
end
|
|
46
|
+
elsif C.request_animation? :ms
|
|
47
|
+
def request(block)
|
|
48
|
+
`#@native.msRequestAnimationFrame(#{block.to_n})`
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
if C.cancel_animation?
|
|
53
|
+
def cancel
|
|
54
|
+
`#@native.cancelAnimationFrame(#@id)`
|
|
55
|
+
end
|
|
56
|
+
else
|
|
57
|
+
if C.cancel_animation? :webkit
|
|
58
|
+
def cancel
|
|
59
|
+
`#@native.webkitCancelAnimationFrame(#@id)`
|
|
60
|
+
end
|
|
61
|
+
elsif C.cancel_request_animation? :webkit
|
|
62
|
+
def cancel
|
|
63
|
+
`#@native.webkitCancelRequestAnimationFrame(#@id)`
|
|
64
|
+
end
|
|
65
|
+
elsif C.cancel_animation? :moz
|
|
66
|
+
def cancel
|
|
67
|
+
`#@native.mozCancelAnimationFrame(#@id)`
|
|
68
|
+
end
|
|
69
|
+
elsif C.cancel_request_animation? :moz
|
|
70
|
+
def cancel
|
|
71
|
+
`#@native.mozCancelRequestAnimationFrame(#@id)`
|
|
72
|
+
end
|
|
73
|
+
elsif C.cancel_animation? :o
|
|
74
|
+
def cancel
|
|
75
|
+
`#@native.oCancelAnimationFrame(#@id)`
|
|
76
|
+
end
|
|
77
|
+
elsif C.cancel_request_animation? :o
|
|
78
|
+
def cancel
|
|
79
|
+
`#@native.oCancelRequestAnimationFrame(#@id)`
|
|
80
|
+
end
|
|
81
|
+
elsif C.cancel_animation? :ms
|
|
82
|
+
def cancel
|
|
83
|
+
`#@native.msCancelAnimationFrame(#@id)`
|
|
84
|
+
end
|
|
85
|
+
elsif C.cancel_request_animation? :ms
|
|
86
|
+
def cancel
|
|
87
|
+
`#@native.msCancelRequestAnimationFrame(#@id)`
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
end
|