opal 0.0.1 → 0.1.0

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.
Files changed (306) hide show
  1. data/.gitignore +10 -1
  2. data/.gitmodules +0 -0
  3. data/Opalfile +371 -0
  4. data/README.md +45 -0
  5. data/Rakefile +237 -34
  6. data/VERSION +1 -1
  7. data/bin/opal +13 -0
  8. data/demos/apps/browser_demo/index.html +11 -0
  9. data/demos/apps/browser_demo/lib/browser_demo.rb +31 -0
  10. data/demos/apps/simple_opal/Opalfile +13 -0
  11. data/demos/apps/simple_opal/index.html +11 -0
  12. data/demos/apps/simple_opal/lib/app_controller.rb +62 -0
  13. data/demos/apps/simple_opal/lib/main_window.rb +146 -0
  14. data/demos/browser/request/index.html +52 -0
  15. data/demos/browser/request/request.rb +48 -0
  16. data/gen/browser/__PROJECT_NAME__/index.html +10 -0
  17. data/gen/browser/__PROJECT_NAME__/lib/__PROJECT_NAME__.rb +1 -0
  18. data/lib/opal.rb +48 -3
  19. data/lib/opal/builders/base.rb +50 -0
  20. data/lib/opal/builders/css.rb +46 -0
  21. data/lib/opal/builders/javascript.rb +44 -0
  22. data/lib/opal/builders/opal.rb +79 -0
  23. data/lib/opal/builders/ruby.rb +50 -0
  24. data/lib/opal/builders/ruby/generate.rb +1851 -0
  25. data/lib/opal/builders/ruby/nodes.rb +210 -0
  26. data/lib/opal/builders/ruby/ruby.rb +916 -0
  27. data/lib/opal/builders/ruby/ruby_parser.rb +6008 -0
  28. data/lib/opal/builders/ruby/ruby_parser.rb.y +1451 -0
  29. data/lib/opal/models/build_item.rb +104 -0
  30. data/lib/opal/models/hash_struct.rb +40 -0
  31. data/lib/opal/models/project.rb +215 -0
  32. data/lib/opal/models/struct_accessors.rb +58 -0
  33. data/lib/opal/models/target.rb +176 -0
  34. data/lib/opal/opal/env/console.rb +66 -0
  35. data/lib/opal/opal/env/fs.rb +98 -0
  36. data/lib/opal/opal/env/object.rb +48 -0
  37. data/lib/opal/opal/environment.rb +139 -0
  38. data/lib/opal/opal/gen.rb +62 -0
  39. data/lib/opal/opal/opal.rb +68 -0
  40. data/lib/opal/opal/repl.rb +38 -0
  41. data/lib/opal/opalfile/dsl.rb +62 -0
  42. data/lib/opal/opalfile/opalfile.rb +133 -0
  43. data/lib/opal/opalfile/task.rb +96 -0
  44. data/lib/opal/opalfile/task_manager.rb +63 -0
  45. data/lib/opal/opalfile/task_scope.rb +52 -0
  46. data/lib/opal/rack/app_server.rb +119 -0
  47. data/opals/aristo/README.md +16 -0
  48. data/opals/browser/Opalfile +11 -0
  49. data/opals/browser/README.md +146 -0
  50. data/opals/browser/SIZZLE_LICESNSE.txt +148 -0
  51. data/opals/browser/lib/browser.rb +118 -0
  52. data/opals/browser/lib/browser/builder.rb +41 -0
  53. data/opals/browser/lib/browser/canvas_context.rb +115 -0
  54. data/opals/browser/lib/browser/dimensions.rb +50 -0
  55. data/opals/browser/lib/browser/document.rb +146 -0
  56. data/opals/browser/lib/browser/element.rb +487 -0
  57. data/opals/browser/lib/browser/element/attributes.rb +88 -0
  58. data/opals/browser/lib/browser/element/css.rb +290 -0
  59. data/opals/browser/lib/browser/element/form.rb +146 -0
  60. data/opals/browser/lib/browser/event/dom_events.rb +81 -0
  61. data/opals/browser/lib/browser/event/event.rb +177 -0
  62. data/opals/browser/lib/browser/event/trigger_events.rb +53 -0
  63. data/opals/browser/lib/browser/geometry.rb +97 -0
  64. data/opals/browser/lib/browser/json.rb +32 -0
  65. data/opals/browser/lib/browser/json_parse.js +321 -0
  66. data/opals/browser/lib/browser/request/request.rb +201 -0
  67. data/opals/browser/lib/browser/sizzle.js +1068 -0
  68. data/opals/browser/lib/browser/string.rb +42 -0
  69. data/opals/browser/lib/browser/touch.rb +37 -0
  70. data/{runtime/yaml.js → opals/browser/lib/browser/vml_context.js} +8 -8
  71. data/opals/browser/lib/browser/window.rb +36 -0
  72. data/opals/browser/spec/browser/browser_detection_spec.rb +7 -0
  73. data/opals/browser/spec/document/aref_spec.rb +110 -0
  74. data/opals/browser/spec/document/ready_spec.rb +16 -0
  75. data/opals/browser/spec/element/body_spec.rb +11 -0
  76. data/opals/browser/spec/element/clear_spec.rb +26 -0
  77. data/opals/browser/spec/element/empty_spec.rb +29 -0
  78. data/opals/browser/spec/element/has_class_spec.rb +40 -0
  79. data/opals/browser/spec/element/hidden_spec.rb +23 -0
  80. data/opals/browser/spec/element/hide_spec.rb +31 -0
  81. data/opals/browser/spec/element/remove_spec.rb +25 -0
  82. data/opals/browser/spec/element/show_spec.rb +31 -0
  83. data/opals/browser/spec/element/style_spec.rb +69 -0
  84. data/opals/browser/spec/element/toggle_spec.rb +31 -0
  85. data/opals/browser/spec/element/visible_spec.rb +23 -0
  86. data/opals/browser/spec/spec_helper.rb +1 -0
  87. data/opals/cherry_kit/Opalfile +6 -0
  88. data/opals/cherry_kit/bin/cherry_kit.rb +11 -0
  89. data/opals/cherry_kit/lib/cherry_kit.rb +29 -0
  90. data/opals/foundation/Opalfile +11 -0
  91. data/opals/foundation/bin/foundation.rb +12 -0
  92. data/opals/foundation/lib/foundation.rb +32 -0
  93. data/opals/foundation/lib/foundation/__table_view_desktop/outline_view.rb +57 -0
  94. data/opals/foundation/lib/foundation/__table_view_desktop/table_column.rb +59 -0
  95. data/opals/foundation/lib/foundation/__table_view_desktop/table_header_view.rb +34 -0
  96. data/opals/foundation/lib/foundation/__table_view_desktop/table_view.rb +304 -0
  97. data/opals/foundation/lib/foundation/controllers/array_controller.rb +54 -0
  98. data/opals/foundation/lib/foundation/controllers/controller.rb +74 -0
  99. data/opals/foundation/lib/foundation/controllers/controller_selection_proxy.rb +67 -0
  100. data/opals/foundation/lib/foundation/controllers/object_controller.rb +145 -0
  101. data/opals/foundation/lib/foundation/controllers/view.rb +40 -0
  102. data/opals/foundation/lib/foundation/core/application.rb +476 -0
  103. data/opals/foundation/lib/foundation/core/attributes.rb +146 -0
  104. data/opals/foundation/lib/foundation/core/bindings.rb +125 -0
  105. data/opals/foundation/lib/foundation/core/builder.rb +101 -0
  106. data/opals/foundation/lib/foundation/core/event.rb +112 -0
  107. data/opals/foundation/lib/foundation/core/index_path.rb +49 -0
  108. data/opals/foundation/lib/foundation/core/index_set.rb +97 -0
  109. data/opals/foundation/lib/foundation/core/notification.rb +113 -0
  110. data/opals/foundation/lib/foundation/core/observable.rb +275 -0
  111. data/opals/foundation/lib/foundation/core/observable_array.rb +30 -0
  112. data/opals/foundation/lib/foundation/core/responder.rb +85 -0
  113. data/opals/foundation/lib/foundation/core/run_loop.rb +89 -0
  114. data/opals/foundation/lib/foundation/core/touch.rb +95 -0
  115. data/opals/foundation/lib/foundation/gestures/gesture_recognizer.rb +35 -0
  116. data/opals/foundation/lib/foundation/rendering/render_context.rb +100 -0
  117. data/opals/foundation/lib/foundation/rendering/renderer.rb +137 -0
  118. data/opals/foundation/lib/foundation/rendering/root_theme.rb +77 -0
  119. data/opals/foundation/lib/foundation/rendering/root_theme/button.rb +62 -0
  120. data/opals/foundation/lib/foundation/rendering/root_theme/control.rb +72 -0
  121. data/opals/foundation/lib/foundation/rendering/root_theme/label.rb +54 -0
  122. data/opals/foundation/lib/foundation/rendering/root_theme/scroller.rb +58 -0
  123. data/opals/foundation/lib/foundation/rendering/root_theme/slider.rb +72 -0
  124. data/opals/foundation/lib/foundation/rendering/root_theme/table_view.rb +97 -0
  125. data/opals/foundation/lib/foundation/rendering/root_theme/text_field.rb +55 -0
  126. data/opals/foundation/lib/foundation/rendering/root_theme/view.rb +81 -0
  127. data/opals/foundation/lib/foundation/rendering/theme.rb +38 -0
  128. data/opals/foundation/lib/foundation/table_view/cell.rb +39 -0
  129. data/opals/foundation/lib/foundation/table_view/table.rb +171 -0
  130. data/opals/foundation/lib/foundation/views/button.rb +63 -0
  131. data/opals/foundation/lib/foundation/views/checkbox.rb +28 -0
  132. data/opals/foundation/lib/foundation/views/clip.rb +47 -0
  133. data/opals/foundation/lib/foundation/views/control.rb +199 -0
  134. data/opals/foundation/lib/foundation/views/label.rb +54 -0
  135. data/opals/foundation/lib/foundation/views/scroll.rb +294 -0
  136. data/opals/foundation/lib/foundation/views/scroll_view_desktop.rb +152 -0
  137. data/opals/foundation/lib/foundation/views/scroller.rb +54 -0
  138. data/opals/foundation/lib/foundation/views/slider.rb +93 -0
  139. data/opals/foundation/lib/foundation/views/text_field.rb +83 -0
  140. data/opals/foundation/lib/foundation/views/view.rb +426 -0
  141. data/opals/foundation/lib/foundation/windows/window.rb +191 -0
  142. data/opals/foundation/resources/button/button.css +23 -0
  143. data/{runtime/init.js → opals/foundation/resources/foundation.css} +27 -33
  144. data/opals/foundation/resources/scroll/scroll.css +22 -0
  145. data/opals/foundation/resources/scroll_view/scroll_view.css +3 -0
  146. data/opals/foundation/resources/scroll_view/scroller.css +3 -0
  147. data/opals/foundation/resources/slider/regular/slider.css +3 -0
  148. data/opals/foundation/resources/slider/slider.css +27 -0
  149. data/opals/foundation/resources/table_view/outline_view.css +3 -0
  150. data/opals/foundation/resources/table_view/table_view.css +15 -0
  151. data/opals/foundation/resources/text_field/text_field.css +71 -0
  152. data/opals/foundation/spec/spec_helper.rb +1 -0
  153. data/opals/foundation/spec/system/attributes/get_attribute_spec.rb +69 -0
  154. data/opals/foundation/spec/system/attributes/get_path_spec.rb +44 -0
  155. data/opals/foundation/spec/system/attributes/set_path_spec.rb +24 -0
  156. data/opals/foundation/spec/system/attributes/set_spec.rb +58 -0
  157. data/opals/foundation/spec/system/bindings/bindings.rb +85 -0
  158. data/opals/foundation/spec/system/key_value_binding/bind_spec.rb +43 -0
  159. data/opals/foundation/spec/system/observable/dependant_keys_spec.rb +74 -0
  160. data/opals/foundation/spec/system/observable/observe_spec.rb +292 -0
  161. data/opals/foundation/spec/system/observable/remove_observer_spec.rb +60 -0
  162. data/opals/opal/Opalfile +14 -0
  163. data/opals/opal/spec/core/array/append_spec.rb +30 -0
  164. data/opals/opal/spec/core/array/assoc_spec.rb +29 -0
  165. data/opals/opal/spec/core/array/at_spec.rb +37 -0
  166. data/opals/opal/spec/core/array/clear_spec.rb +22 -0
  167. data/opals/opal/spec/core/array/collect_bang_spec.rb +27 -0
  168. data/opals/opal/spec/core/array/collect_spec.rb +27 -0
  169. data/opals/opal/spec/core/array/compact_spec.rb +15 -0
  170. data/opals/opal/spec/core/array/concat_spec.rb +15 -0
  171. data/opals/opal/spec/core/array/constructor_spec.rb +14 -0
  172. data/opals/opal/spec/core/array/each_spec.rb +9 -0
  173. data/opals/opal/spec/core/array/element_reference_spec.rb +4 -0
  174. data/opals/opal/spec/core/array/first_spec.rb +35 -0
  175. data/opals/opal/spec/core/array/include_spec.rb +9 -0
  176. data/opals/opal/spec/core/array/map_spec.rb +31 -0
  177. data/opals/opal/spec/core/builtin_constants/builtin_constants_spec.rb +7 -0
  178. data/opals/opal/spec/core/false/and_spec.rb +10 -0
  179. data/opals/opal/spec/core/false/inspect_spec.rb +6 -0
  180. data/opals/opal/spec/core/false/or_spec.rb +10 -0
  181. data/opals/opal/spec/core/false/to_s_spec.rb +6 -0
  182. data/opals/opal/spec/core/false/xor_spec.rb +10 -0
  183. data/opals/opal/spec/core/file/join_spec.rb +19 -0
  184. data/opals/opal/spec/core/kernel/instance_eval_spec.rb +0 -0
  185. data/opals/opal/spec/core/kernel/loop_spec.rb +24 -0
  186. data/opals/opal/spec/core/kernel/raise_spec.rb +0 -0
  187. data/opals/opal/spec/core/module/attr_accessor_spec.rb +28 -0
  188. data/opals/opal/spec/core/number/lt_spec.rb +12 -0
  189. data/opals/opal/spec/core/true/and_spec.rb +10 -0
  190. data/opals/opal/spec/core/true/inspect_spec.rb +6 -0
  191. data/opals/opal/spec/core/true/or_spec.rb +10 -0
  192. data/opals/opal/spec/core/true/to_s_spec.rb +6 -0
  193. data/opals/opal/spec/core/true/xor_spec.rb +10 -0
  194. data/opals/opal/spec/fixtures/super.rb +70 -0
  195. data/opals/opal/spec/language/____temp_remove_this.rb +12 -0
  196. data/opals/opal/spec/language/and_spec.rb +62 -0
  197. data/opals/opal/spec/language/array_spec.rb +52 -0
  198. data/opals/opal/spec/language/block_spec.rb +18 -0
  199. data/opals/opal/spec/language/break_spec.rb +36 -0
  200. data/opals/opal/spec/language/case_spec.rb +103 -0
  201. data/opals/opal/spec/language/def_spec.rb +11 -0
  202. data/opals/opal/spec/language/eigenclass_spec.rb +60 -0
  203. data/opals/opal/spec/language/hash_spec.rb +29 -0
  204. data/opals/opal/spec/language/if_spec.rb +54 -0
  205. data/opals/opal/spec/language/loop_spec.rb +11 -0
  206. data/opals/opal/spec/language/metaclass_spec.rb +21 -0
  207. data/opals/opal/spec/language/method_spec.rb +64 -0
  208. data/opals/opal/spec/language/next_spec.rb +25 -0
  209. data/opals/opal/spec/language/or_spec.rb +34 -0
  210. data/opals/opal/spec/language/redo_spec.rb +24 -0
  211. data/opals/opal/spec/language/rescue_spec.rb +20 -0
  212. data/opals/opal/spec/language/return_spec.rb +47 -0
  213. data/opals/opal/spec/language/string_spec.rb +25 -0
  214. data/opals/opal/spec/language/super_spec.rb +26 -0
  215. data/opals/opal/spec/language/until_spec.rb +157 -0
  216. data/opals/opal/spec/language/while_spec.rb +163 -0
  217. data/opals/opal/spec/spec_helper.rb +5 -0
  218. data/opals/runtime/Opalfile +68 -0
  219. data/opals/runtime/README.md +12 -0
  220. data/opals/runtime/docs/debugging.md +51 -0
  221. data/opals/runtime/lib/array.rb +1516 -0
  222. data/opals/runtime/lib/basic_object.rb +49 -0
  223. data/opals/runtime/lib/class.rb +54 -0
  224. data/opals/runtime/lib/dir.rb +36 -0
  225. data/opals/runtime/lib/error.rb +49 -0
  226. data/opals/runtime/lib/false_class.rb +52 -0
  227. data/opals/runtime/lib/file.rb +79 -0
  228. data/opals/runtime/lib/hash.rb +791 -0
  229. data/opals/runtime/lib/io.rb +39 -0
  230. data/opals/runtime/lib/kernel.rb +288 -0
  231. data/opals/runtime/lib/match_data.rb +36 -0
  232. data/opals/runtime/lib/module.rb +109 -0
  233. data/opals/runtime/lib/nil_class.rb +69 -0
  234. data/opals/runtime/lib/number.rb +398 -0
  235. data/opals/runtime/lib/proc.rb +77 -0
  236. data/opals/runtime/lib/range.rb +63 -0
  237. data/opals/runtime/lib/regexp.rb +111 -0
  238. data/opals/runtime/lib/ruby.rb +30 -0
  239. data/opals/runtime/lib/string.rb +328 -0
  240. data/opals/runtime/lib/symbol.rb +40 -0
  241. data/opals/runtime/lib/top_self.rb +33 -0
  242. data/opals/runtime/lib/true_class.rb +45 -0
  243. data/opals/runtime/runtime/browser.js +287 -0
  244. data/opals/runtime/runtime/debug.js +182 -0
  245. data/opals/runtime/runtime/opal.js +1010 -0
  246. data/opals/runtime/runtime/post_opal.js +1 -0
  247. data/opals/runtime/runtime/pre_opal.js +2 -0
  248. data/opals/runtime/runtime/server_side.js +50 -0
  249. data/opals/spec/LICENSE.txt +26 -0
  250. data/opals/spec/Opalfile +5 -0
  251. data/opals/spec/bin/spec.rb +43 -0
  252. data/opals/spec/lib/spec.rb +33 -0
  253. data/opals/spec/lib/spec/dsl.rb +41 -0
  254. data/opals/spec/lib/spec/example.rb +35 -0
  255. data/opals/spec/lib/spec/example/before_and_after_hooks.rb +81 -0
  256. data/opals/spec/lib/spec/example/errors.rb +42 -0
  257. data/opals/spec/lib/spec/example/example_group.rb +37 -0
  258. data/opals/spec/lib/spec/example/example_group_factory.rb +43 -0
  259. data/opals/spec/lib/spec/example/example_group_hierarchy.rb +45 -0
  260. data/opals/spec/lib/spec/example/example_group_methods.rb +142 -0
  261. data/opals/spec/lib/spec/example/example_group_proxy.rb +41 -0
  262. data/opals/spec/lib/spec/example/example_methods.rb +73 -0
  263. data/opals/spec/lib/spec/example/example_proxy.rb +48 -0
  264. data/opals/spec/lib/spec/expectations.rb +46 -0
  265. data/opals/spec/lib/spec/expectations/errors.rb +35 -0
  266. data/opals/spec/lib/spec/expectations/fail_with.rb +37 -0
  267. data/opals/spec/lib/spec/expectations/handler.rb +48 -0
  268. data/opals/spec/lib/spec/matchers.rb +50 -0
  269. data/opals/spec/lib/spec/matchers/be.rb +26 -0
  270. data/opals/spec/lib/spec/matchers/generated_descriptions.rb +47 -0
  271. data/opals/spec/lib/spec/matchers/operator_matcher.rb +66 -0
  272. data/opals/spec/lib/spec/runner.rb +48 -0
  273. data/opals/spec/lib/spec/runner/example_group_runner.rb +71 -0
  274. data/opals/spec/lib/spec/runner/formatter/html_formatter.rb +100 -0
  275. data/opals/spec/lib/spec/runner/formatter/terminal_formatter.rb +82 -0
  276. data/opals/spec/lib/spec/runner/options.rb +63 -0
  277. data/opals/spec/lib/spec/runner/reporter.rb +123 -0
  278. data/opals/spec/resources/index.html +25 -0
  279. data/opals/spec/resources/spec.css +132 -0
  280. data/spec/cherry_kit/iseq_spec.rb +38 -0
  281. data/spec/spec_helper.rb +16 -0
  282. data/spec/vienna_spec.rb +7 -0
  283. data/yard/index.html +43 -0
  284. data/yard/style.css +765 -0
  285. metadata +312 -49
  286. data/docs/jarv.rdoc +0 -27
  287. data/runtime/array.js +0 -153
  288. data/runtime/class.js +0 -469
  289. data/runtime/compar.js +0 -73
  290. data/runtime/dir.js +0 -115
  291. data/runtime/enum.js +0 -74
  292. data/runtime/file.js +0 -165
  293. data/runtime/gem.js +0 -241
  294. data/runtime/hash.js +0 -181
  295. data/runtime/load.js +0 -251
  296. data/runtime/module.js +0 -98
  297. data/runtime/number.js +0 -148
  298. data/runtime/object.js +0 -522
  299. data/runtime/opal.js +0 -200
  300. data/runtime/parse.js +0 -2218
  301. data/runtime/range.js +0 -56
  302. data/runtime/re.js +0 -91
  303. data/runtime/string.js +0 -199
  304. data/runtime/variable.js +0 -184
  305. data/runtime/vm.js +0 -1150
  306. data/tasks/build.rb +0 -16
@@ -0,0 +1,191 @@
1
+ #
2
+ # window.rb
3
+ # vienna
4
+ #
5
+ # Created by Adam Beynon.
6
+ # Copyright 2010 Adam Beynon.
7
+ #
8
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
9
+ # of this software and associated documentation files (the "Software"), to deal
10
+ # in the Software without restriction, including without limitation the rights
11
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12
+ # copies of the Software, and to permit persons to whom the Software is
13
+ # furnished to do so, subject to the following conditions:
14
+ #
15
+ # The above copyright notice and this permission notice shall be included in
16
+ # all copies or substantial portions of the Software.
17
+ #
18
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
+ # THE SOFTWARE.
25
+ #
26
+
27
+ require 'foundation/views/view'
28
+
29
+ module CherryKit
30
+
31
+ # A window is used for the root window, menu or panel on screen. Unlike Cocoa
32
+ # it inherits from the View class. Essentially windows are just views, but
33
+ # they include extra methods for attaching themselves onto the DOM and for
34
+ # orchestrating event delegation and routing
35
+ #
36
+ class Window < View
37
+
38
+ def initialize(layout)
39
+ super
40
+ # an array of all the views which require displaying
41
+ @views_needing_display = []
42
+ # a window's window is always itself
43
+ @window = self
44
+ # default first responder is the window itself
45
+ @first_responder = self
46
+ # puts "normal initializer for window!"
47
+ end
48
+
49
+ def show
50
+ # mark ourself as needing display
51
+ self.needs_display = true
52
+
53
+ # append_to Browser::Element.body
54
+ end
55
+
56
+ class_names 'ck-window'
57
+
58
+ # Insert the window into the given element
59
+ #
60
+ # @param {Browser::Element} element the element to append into
61
+ # @returns {CherryKit::Window} self
62
+ #
63
+ def append_to(base_element)
64
+ # make sure our render context is already created
65
+ render_context = create_render_context
66
+
67
+ # puts "finished create_render_context:"
68
+ base_element << render_context.element
69
+
70
+ # puts "now need to make all subviews"
71
+ end
72
+
73
+ # Mark the given view as needing display. This view should be in this
74
+ # window's hierarchy. The view will be displayed at the end of the next
75
+ # event loop. If a view is marked as needing display more than once during
76
+ # an event loop, it will be only actually rendererd once.
77
+ #
78
+ # @param {CherryKit::View} view that requires display
79
+ #
80
+ def mark_view_for_display(view)
81
+ # puts "mark_view_for_display(#{view})"
82
+ # do not re-add it if we already have it as needing display
83
+ unless @views_needing_display.include? view
84
+ # puts "yeap, adding it"
85
+ @views_needing_display << view
86
+ `console.log(#{ @views_needing_display});`
87
+ end
88
+ end
89
+
90
+ # NEVER invoke this method directly
91
+ def display
92
+ # super
93
+ if @render_context
94
+ update
95
+ else
96
+ render_context = create_render_context
97
+ # first call .render(), then immediately update() it
98
+ render render_context
99
+ update
100
+ # add to super
101
+ append_to Browser::Element.body
102
+ end
103
+ # make sure we have a render context
104
+ # unless render_context
105
+ # append_to Browser::Element.body
106
+ # end
107
+
108
+ # puts "need to go through each view"
109
+ # `console.log(#{@views_needing_display});`
110
+ # now go through all our views that are marked for display (should be
111
+ # all subviews if we just had to create a render context, otherwise it is
112
+ # any view that has been updated)
113
+ # @views_needing_display.each do |view|
114
+ # puts "need to display view: #{view}"
115
+ # end
116
+
117
+ @subviews.each do |view|
118
+ view.display
119
+ end
120
+ end
121
+
122
+ # =================================
123
+ # = Event delegation and handling =
124
+ # =================================
125
+
126
+ # Send event on
127
+ #
128
+ # @param {Browser::Event} event
129
+ #
130
+ def send_event(event)
131
+
132
+ if event.type == :mouse_down
133
+ # puts "need to send on mousedown from window"
134
+ event.view.mouse_down event
135
+ elsif event.type == :mouse_up
136
+ # puts "need to "
137
+ elsif event.type == :key_down
138
+ # puts "about to send key_down"
139
+ res = event.view.key_down event
140
+ # puts "result is #{res}"
141
+ return res
142
+ elsif event.type == :key_up
143
+ event.view.key_up event
144
+ end
145
+ # case :mousedown
146
+
147
+ # event.view.mouse_down event
148
+ end
149
+
150
+ # Returns the first responder for the window
151
+ def first_responder
152
+ @first_responder
153
+ end
154
+
155
+ # Attempt to make the given responder the first responder.
156
+ #
157
+ # @param {CherryKit::Responder} responder to make first responder
158
+ # @returns {true|false}
159
+ #
160
+ def make_first_responder?(responder)
161
+ # return true if responder is already first responder
162
+ return true if responder == @first_responder
163
+ # return false if current first responder will not resign
164
+ return false unless @first_responder.resign_first_responder?
165
+ # set window as first respionder if the responder will not accept first
166
+ # responder status
167
+ if !responder.accepts_first_responder? || !responder.become_first_responder?
168
+ @first_responder = self
169
+ return false
170
+ end
171
+
172
+ # if all was ok, set first responder, and return true
173
+ @first_responder = responder
174
+ true
175
+ end
176
+
177
+ # ===============================
178
+ # = Builder methods and support =
179
+ # ===============================
180
+
181
+ register_builder :window,
182
+ :title => "Window"
183
+
184
+ # Initialize from builder
185
+ def initialize_from_builder(builder_options)
186
+ # puts "initialzing in window!! builder style"
187
+ initialize
188
+ end
189
+
190
+ end # Window
191
+ end
@@ -0,0 +1,23 @@
1
+ .ck-button {
2
+ border: 1px #545454 solid;
3
+ border-radius: 5px;
4
+ -moz-border-radius: 5px;
5
+ -webkit-border-radius: 5px;
6
+ vertical-align: middle;
7
+ background-color: rgb(230,230,230);
8
+ }
9
+
10
+ .ck-button.disabled {
11
+ background-color: rgb(190,190,190);
12
+ }
13
+
14
+ .ck-button.highlighted {
15
+ background-color: rgb(200, 200, 200);
16
+ }
17
+
18
+ .ck-button .label {
19
+ text-align: center;
20
+ position: relative;
21
+ display: block;
22
+ line-height: 22px;
23
+ }
@@ -1,6 +1,6 @@
1
1
  /*
2
- * init.js
3
- * opal
2
+ * foundation.css
3
+ * vienna
4
4
  *
5
5
  * Created by Adam Beynon.
6
6
  * Copyright 2010 Adam Beynon.
@@ -24,36 +24,30 @@
24
24
  * THE SOFTWARE.
25
25
  */
26
26
 
27
- /**
28
- Basically start opal.
29
- */
30
- function ruby_init() {
31
- rb_call_inits();
32
- };
27
+ body {
28
+ top: 0px;
29
+ right: 0px;
30
+ bottom: 0px;
31
+ left: 0px;
32
+ position: absolute;
33
+ margin: 0px;
34
+ }
33
35
 
34
- /**
35
- embed script name/type
36
- */
37
- function ruby_script(name) {
38
-
39
- };
36
+ .ck-view {
37
+ position: absolute;
38
+ font-family: Arial, Helvetica, sans-serif;
39
+ font-size: 12px;
40
+ line-height: 1.4;
41
+ cursor: default;
42
+ overflow: hidden;
43
+ /* Three methods of stopping text selection across browsers */
44
+ user-select: none;
45
+ -khtml-user-select: none;
46
+ -moz-user-select: -moz-none;
47
+ }
40
48
 
41
-
42
- /**
43
- Init core.
44
- */
45
- function rb_call_inits() {
46
- Init_Object();
47
- Init_top_self();
48
- Init_Array();
49
- Init_Number();
50
- Init_String();
51
- Init_Hash();
52
- Init_Range();
53
- Init_Regexp();
54
- Init_File();
55
- Init_Dir();
56
- Init_VM();
57
- Init_vm_eval();
58
- Init_load();
59
- };
49
+ .ck-view body,
50
+ .ck-view div {
51
+ margin: 0px;
52
+ padding: 0px;
53
+ }
@@ -0,0 +1,22 @@
1
+
2
+ .ck-scroll-view .horizontal {
3
+ left: 5px;
4
+ right: 5px;
5
+ bottom: 5px;
6
+ height: 5px;
7
+
8
+ position: absolute;
9
+ z-index: 2;
10
+
11
+ }
12
+
13
+ .ck-scroll-view .horizontal .scroller {
14
+ width: 100%;
15
+ left: 0%;
16
+ height: 100%;
17
+ background: black;
18
+ border-radius: 4px;
19
+ -webkit-border-radius: 4px;
20
+ -moz-border-radius: 4px;
21
+ position: absolute;
22
+ }
@@ -0,0 +1,3 @@
1
+ .ck-view.ck-scroll-view {
2
+ background: rgb(220, 220, 220);
3
+ }
@@ -0,0 +1,3 @@
1
+ .ck-view.ck-scroller {
2
+ background: rgb(185, 185, 185);
3
+ }
@@ -0,0 +1,3 @@
1
+ .ck-view.ck-slider.regular {
2
+
3
+ }
@@ -0,0 +1,27 @@
1
+ .ck-slider {
2
+ height: 16px;
3
+ }
4
+
5
+ .ck-slider .inner {
6
+ position: absolute;
7
+ left: 7px;
8
+ right: 7px;
9
+ height: 5px;
10
+ top: 5px;
11
+ background: rgb(160,160,160);
12
+ border-radius: 3px;
13
+ -webkit-border-radius: 3px;
14
+ -moz-border-radius: 3px;
15
+ }
16
+
17
+ .ck-slider .handle {
18
+ height: 14px;
19
+ width: 14px;
20
+ border-radius: 7px;
21
+ -webkit-border-radius: 7px;
22
+ -moz-border-radius: 7px;
23
+ background: rgb(64, 64, 64);
24
+ position: absolute;
25
+ top: -4px;
26
+ margin-left: -7px;
27
+ }
@@ -0,0 +1,3 @@
1
+ .ck-view.ck-outline-view {
2
+ background: rgb(223, 227, 234);
3
+ }
@@ -0,0 +1,15 @@
1
+ /*.ck-view.ck-table-view .ck-view.selected {*/
2
+ /* color: white;*/
3
+ /*}*/
4
+
5
+ /* Selected rows background */
6
+ .ck-view.ck-table-view .rows .row.selected {
7
+ background: rgb(127, 150, 185);
8
+ }
9
+
10
+ /* Grid lines */
11
+ /*.ck-view.ck-table-view .rows .row {
12
+ margin-top: -1px;
13
+ border-bottom: 1px solid #999;
14
+ }
15
+ */
@@ -0,0 +1,71 @@
1
+
2
+ .ck-view.ck-text-field {
3
+ border: none;
4
+ overflow: visible;
5
+ background: white;
6
+ }
7
+
8
+ .ck-text-field .border {
9
+ position: absolute;
10
+ top: 0px;
11
+ bottom: 0px;
12
+ right: 0px;
13
+ left: 0px;
14
+ }
15
+
16
+ /* safari */
17
+ .safari .ck-text-field .border {
18
+ -webkit-appearance: textfield;
19
+ }
20
+
21
+ /* internet explorer */
22
+ .msie .ck-text-field .border {
23
+ border: 1px inset;
24
+ }
25
+
26
+ .ck-text-field .padding {
27
+ position: absolute;
28
+ top: 0px;
29
+ bottom: 0px;
30
+ right: 3px;
31
+ left: 3px;
32
+ }
33
+
34
+ .ck-text-field input {
35
+ position: absolute;
36
+ top: 0px;
37
+ bottom: 0px;
38
+ right: 0px;
39
+ left: 0px;
40
+ width: 100%;
41
+ height: 100%;
42
+ display: block;
43
+ vertical-align: middle;
44
+ background: transparent;
45
+ line-height: 100%;
46
+ }
47
+
48
+ .msie .ck-text-field input {
49
+ padding-bottom: 1px;
50
+ }
51
+
52
+ /* safari */
53
+ .ck-text-field input {
54
+ border: none;
55
+ outline: none;
56
+ -webkit-appearance: none;
57
+ }
58
+
59
+
60
+ /* ========================= */
61
+ /* = Rounded look and feel = */
62
+ /* ========================= */
63
+
64
+ .safari .ck-text-field.rounded .border {
65
+ -webkit-appearance: searchfield;
66
+ }
67
+
68
+ .safari .ck-text-field.rounded .padding {
69
+ left: 10px;
70
+ right: 10px;
71
+ }