limelight 0.5.5-java → 0.6.14-java

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 (315) hide show
  1. data/LICENSE +19 -0
  2. data/bin/limelight +7 -3
  3. data/ruby/lib/limelight-rb.jar +0 -0
  4. data/ruby/lib/limelight.jar +0 -0
  5. data/ruby/lib/limelight.rb +48 -0
  6. data/{lib → ruby/lib}/limelight/animation.rb +3 -3
  7. data/ruby/lib/limelight/builtin/players.rb +21 -0
  8. data/ruby/lib/limelight/builtin/players/button.rb +7 -0
  9. data/ruby/lib/limelight/builtin/players/check_box.rb +24 -0
  10. data/ruby/lib/limelight/builtin/players/combo_box.rb +50 -0
  11. data/ruby/lib/limelight/builtin/players/curtains.rb +12 -0
  12. data/ruby/lib/limelight/builtin/players/image.rb +38 -0
  13. data/ruby/lib/limelight/builtin/players/radio_button.rb +36 -0
  14. data/ruby/lib/limelight/builtin/players/stage_mover.rb +19 -0
  15. data/ruby/lib/limelight/builtin/players/stage_sizer.rb +23 -0
  16. data/ruby/lib/limelight/builtin/players/text_area.rb +10 -0
  17. data/ruby/lib/limelight/builtin/players/text_box.rb +10 -0
  18. data/{lib → ruby/lib}/limelight/dsl/build_exception.rb +2 -2
  19. data/{lib → ruby/lib}/limelight/dsl/menu_bar.rb +3 -3
  20. data/{lib → ruby/lib}/limelight/dsl/prop_builder.rb +25 -16
  21. data/{lib → ruby/lib}/limelight/dsl/stage_builder.rb +4 -4
  22. data/{lib → ruby/lib}/limelight/dsl/styles_builder.rb +14 -18
  23. data/{lib → ruby/lib}/limelight/file_chooser.rb +10 -10
  24. data/{lib → ruby/lib}/limelight/file_filter.rb +6 -6
  25. data/ruby/lib/limelight/java_couplings.rb +70 -0
  26. data/{lib → ruby/lib}/limelight/java_util.rb +6 -6
  27. data/{lib → ruby/lib}/limelight/limelight_exception.rb +3 -3
  28. data/ruby/lib/limelight/limelight_init.rb +24 -0
  29. data/ruby/lib/limelight/main.rb +15 -0
  30. data/ruby/lib/limelight/mouse.rb +76 -0
  31. data/ruby/lib/limelight/optionable.rb +42 -0
  32. data/{lib → ruby/lib}/limelight/paint_action.rb +8 -8
  33. data/{lib → ruby/lib}/limelight/pen.rb +7 -7
  34. data/ruby/lib/limelight/player.rb +148 -0
  35. data/ruby/lib/limelight/player_recruiter.rb +54 -0
  36. data/ruby/lib/limelight/production.rb +257 -0
  37. data/ruby/lib/limelight/prop.rb +344 -0
  38. data/ruby/lib/limelight/scene.rb +120 -0
  39. data/ruby/lib/limelight/specs/spec_helper.rb +191 -0
  40. data/ruby/lib/limelight/stage.rb +268 -0
  41. data/ruby/lib/limelight/string.rb +32 -0
  42. data/{lib → ruby/lib}/limelight/studio.rb +4 -3
  43. data/ruby/lib/limelight/style.rb +294 -0
  44. data/ruby/lib/limelight/templates/sources/features/step_definitions/limelight_steps.rb.template +47 -0
  45. data/ruby/lib/limelight/templates/sources/features/support/env.rb.template +35 -0
  46. data/{lib → ruby/lib}/limelight/templates/sources/freezing/limelight_init.rb.template +0 -0
  47. data/{lib → ruby/lib}/limelight/templates/sources/production/production.rb.template +2 -2
  48. data/{lib → ruby/lib}/limelight/templates/sources/production/spec/spec_helper.rb.template +0 -0
  49. data/{lib → ruby/lib}/limelight/templates/sources/production/stages.rb.template +0 -0
  50. data/{lib → ruby/lib}/limelight/templates/sources/production/styles.rb.template +0 -0
  51. data/ruby/lib/limelight/templates/sources/project/Rakefile.template +15 -0
  52. data/ruby/lib/limelight/templates/sources/project/spec_helper.rb.template +12 -0
  53. data/{lib → ruby/lib}/limelight/templates/sources/scene/props.rb.template +0 -0
  54. data/{lib → ruby/lib}/limelight/templates/sources/scene/styles.rb.template +0 -0
  55. data/{lib → ruby/lib}/limelight/templates/sources/scene_spec/scene_spec.rb.template +0 -0
  56. data/ruby/lib/limelight/theater.rb +76 -0
  57. data/{lib → ruby/lib}/limelight/util.rb +6 -25
  58. data/ruby/lib/limelight/util/hashes.rb +39 -0
  59. data/ruby/lib/limelight/util/map_hash.rb +191 -0
  60. data/ruby/lib/limelight/util/string_hash.rb +64 -0
  61. metadata +97 -390
  62. data/bin/icons/icon.ico +0 -0
  63. data/bin/icons/icon_48.gif +0 -0
  64. data/bin/icons/limelight.icns +0 -0
  65. data/bin/ll +0 -10
  66. data/bin/ll.bat +0 -5
  67. data/lib/init.rb +0 -12
  68. data/lib/limelight.jar +0 -0
  69. data/lib/limelight/builtin/players.rb +0 -16
  70. data/lib/limelight/builtin/players/button.rb +0 -39
  71. data/lib/limelight/builtin/players/check_box.rb +0 -50
  72. data/lib/limelight/builtin/players/combo_box.rb +0 -89
  73. data/lib/limelight/builtin/players/combo_box_popup_list.rb +0 -19
  74. data/lib/limelight/builtin/players/combo_box_popup_list_item.rb +0 -21
  75. data/lib/limelight/builtin/players/curtains.rb +0 -23
  76. data/lib/limelight/builtin/players/image.rb +0 -54
  77. data/lib/limelight/builtin/players/password_box.rb +0 -34
  78. data/lib/limelight/builtin/players/radio_button.rb +0 -65
  79. data/lib/limelight/builtin/players/stage_mover.rb +0 -31
  80. data/lib/limelight/builtin/players/stage_sizer.rb +0 -34
  81. data/lib/limelight/builtin/players/text_area.rb +0 -34
  82. data/lib/limelight/builtin/players/text_box.rb +0 -34
  83. data/lib/limelight/builtin/styles.rb +0 -35
  84. data/lib/limelight/builtin/utilities_production/alert/players/alert.rb +0 -14
  85. data/lib/limelight/builtin/utilities_production/alert/props.rb +0 -8
  86. data/lib/limelight/builtin/utilities_production/alert/styles.rb +0 -14
  87. data/lib/limelight/builtin/utilities_production/incompatible_version/props.rb +0 -20
  88. data/lib/limelight/builtin/utilities_production/incompatible_version/styles.rb +0 -12
  89. data/lib/limelight/builtin/utilities_production/production.rb +0 -66
  90. data/lib/limelight/builtin/utilities_production/stages.rb +0 -12
  91. data/lib/limelight/builtin/utilities_production/styles.rb +0 -53
  92. data/lib/limelight/button_group_cache.rb +0 -11
  93. data/lib/limelight/casting_director.rb +0 -112
  94. data/lib/limelight/commands/command.rb +0 -168
  95. data/lib/limelight/commands/create_command.rb +0 -98
  96. data/lib/limelight/commands/freeze_command.rb +0 -131
  97. data/lib/limelight/commands/help_command.rb +0 -61
  98. data/lib/limelight/commands/open_command.rb +0 -60
  99. data/lib/limelight/commands/pack_command.rb +0 -53
  100. data/lib/limelight/commands/unpack_command.rb +0 -44
  101. data/lib/limelight/commands/version_command.rb +0 -31
  102. data/lib/limelight/data.rb +0 -37
  103. data/lib/limelight/file_loader.rb +0 -46
  104. data/lib/limelight/gems.rb +0 -51
  105. data/lib/limelight/java_couplings.rb +0 -67
  106. data/lib/limelight/limelight_init.rb +0 -12
  107. data/lib/limelight/main.rb +0 -105
  108. data/lib/limelight/producer.rb +0 -233
  109. data/lib/limelight/production.rb +0 -203
  110. data/lib/limelight/prop.rb +0 -367
  111. data/lib/limelight/scene.rb +0 -151
  112. data/lib/limelight/specs/spec_helper.rb +0 -136
  113. data/lib/limelight/specs/test_scene_opener.rb +0 -63
  114. data/lib/limelight/stage.rb +0 -353
  115. data/lib/limelight/string.rb +0 -38
  116. data/lib/limelight/styles/style.rb +0 -288
  117. data/lib/limelight/templates/production_templater.rb +0 -49
  118. data/lib/limelight/templates/scene_templater.rb +0 -47
  119. data/lib/limelight/templates/sources/production/init.rb.template +0 -15
  120. data/lib/limelight/templates/templater.rb +0 -131
  121. data/lib/limelight/templates/templater_logger.rb +0 -39
  122. data/lib/limelight/theater.rb +0 -109
  123. data/lib/limelight/util/downloader.rb +0 -115
  124. data/lib/limelight/version.rb +0 -20
  125. data/productions/examples/8thlight.com/about/about.txt +0 -24
  126. data/productions/examples/8thlight.com/about/props.rb +0 -11
  127. data/productions/examples/8thlight.com/about/styles.rb +0 -2
  128. data/productions/examples/8thlight.com/footer.rb +0 -6
  129. data/productions/examples/8thlight.com/home/props.rb +0 -28
  130. data/productions/examples/8thlight.com/home/styles.rb +0 -2
  131. data/productions/examples/8thlight.com/images/anvil.jpg +0 -0
  132. data/productions/examples/8thlight.com/images/bg.jpg +0 -0
  133. data/productions/examples/8thlight.com/images/botticelli.jpg +0 -0
  134. data/productions/examples/8thlight.com/images/button_bg.jpg +0 -0
  135. data/productions/examples/8thlight.com/images/canvas_bg.jpg +0 -0
  136. data/productions/examples/8thlight.com/images/footer_bg.jpg +0 -0
  137. data/productions/examples/8thlight.com/images/header.jpg +0 -0
  138. data/productions/examples/8thlight.com/images/moses.jpg +0 -0
  139. data/productions/examples/8thlight.com/images/statemachine_thumbnail.png +0 -0
  140. data/productions/examples/8thlight.com/images/thumbnail_book.jpg +0 -0
  141. data/productions/examples/8thlight.com/menu.rb +0 -11
  142. data/productions/examples/8thlight.com/services/props.rb +0 -11
  143. data/productions/examples/8thlight.com/services/services.txt +0 -8
  144. data/productions/examples/8thlight.com/services/styles.rb +0 -2
  145. data/productions/examples/8thlight.com/stages.rb +0 -8
  146. data/productions/examples/8thlight.com/styles.rb +0 -210
  147. data/productions/examples/calculator/players/button.rb +0 -24
  148. data/productions/examples/calculator/players/calculator.rb +0 -15
  149. data/productions/examples/calculator/players/calculator_model.rb +0 -13
  150. data/productions/examples/calculator/props.rb +0 -23
  151. data/productions/examples/calculator/styles.rb +0 -36
  152. data/productions/examples/langstons_ant/html_javascript/ant.css +0 -39
  153. data/productions/examples/langstons_ant/html_javascript/ant.html +0 -22
  154. data/productions/examples/langstons_ant/html_javascript/ant.js +0 -23
  155. data/productions/examples/langstons_ant/init.rb +0 -4
  156. data/productions/examples/langstons_ant/players/ant.rb +0 -103
  157. data/productions/examples/langstons_ant/players/log.rb +0 -29
  158. data/productions/examples/langstons_ant/players/start_stop_button.rb +0 -37
  159. data/productions/examples/langstons_ant/players/world.rb +0 -35
  160. data/productions/examples/langstons_ant/props.rb +0 -22
  161. data/productions/examples/langstons_ant/styles.rb +0 -104
  162. data/productions/examples/sandbox/alerts/incompatible_production/default_scene/props.rb +0 -10
  163. data/productions/examples/sandbox/alerts/incompatible_production/default_scene/styles.rb +0 -32
  164. data/productions/examples/sandbox/alerts/incompatible_production/production.rb +0 -52
  165. data/productions/examples/sandbox/alerts/incompatible_production/spec/default_scene/default_scene_spec.rb +0 -16
  166. data/productions/examples/sandbox/alerts/incompatible_production/spec/spec_helper.rb +0 -8
  167. data/productions/examples/sandbox/alerts/incompatible_production/stages.rb +0 -20
  168. data/productions/examples/sandbox/alerts/incompatible_production/styles.rb +0 -15
  169. data/productions/examples/sandbox/alerts/players/alerts.rb +0 -17
  170. data/productions/examples/sandbox/alerts/props.rb +0 -10
  171. data/productions/examples/sandbox/alerts/styles.rb +0 -46
  172. data/productions/examples/sandbox/background_images/props.rb +0 -22
  173. data/productions/examples/sandbox/background_images/styles.rb +0 -40
  174. data/productions/examples/sandbox/click_me/players/chromaton.rb +0 -52
  175. data/productions/examples/sandbox/click_me/props.rb +0 -8
  176. data/productions/examples/sandbox/click_me/styles.rb +0 -11
  177. data/productions/examples/sandbox/floaters/players/floater.rb +0 -108
  178. data/productions/examples/sandbox/floaters/players/surface.rb +0 -21
  179. data/productions/examples/sandbox/floaters/props.rb +0 -10
  180. data/productions/examples/sandbox/floaters/styles.rb +0 -24
  181. data/productions/examples/sandbox/frameing/players/sandbox.rb +0 -17
  182. data/productions/examples/sandbox/frameing/props.rb +0 -35
  183. data/productions/examples/sandbox/frameing/styles.rb +0 -45
  184. data/productions/examples/sandbox/gradients/players/spinner.rb +0 -20
  185. data/productions/examples/sandbox/gradients/players/teaser.rb +0 -19
  186. data/productions/examples/sandbox/gradients/players/wave.rb +0 -19
  187. data/productions/examples/sandbox/gradients/players/waves.rb +0 -19
  188. data/productions/examples/sandbox/gradients/props.rb +0 -13
  189. data/productions/examples/sandbox/gradients/styles.rb +0 -47
  190. data/productions/examples/sandbox/header.rb +0 -22
  191. data/productions/examples/sandbox/homer/players/homer.rb +0 -24
  192. data/productions/examples/sandbox/homer/props.rb +0 -10
  193. data/productions/examples/sandbox/homer/styles.rb +0 -16
  194. data/productions/examples/sandbox/images/arch.jpg +0 -0
  195. data/productions/examples/sandbox/images/beach.jpg +0 -0
  196. data/productions/examples/sandbox/images/homer.jpg +0 -0
  197. data/productions/examples/sandbox/images/limelight_spotlight.jpg +0 -0
  198. data/productions/examples/sandbox/images/logo.png +0 -0
  199. data/productions/examples/sandbox/images/marilyn.jpg +0 -0
  200. data/productions/examples/sandbox/images/space.png +0 -0
  201. data/productions/examples/sandbox/images_scene/props.rb +0 -36
  202. data/productions/examples/sandbox/images_scene/styles.rb +0 -34
  203. data/productions/examples/sandbox/inputs/players/button_input.rb +0 -48
  204. data/productions/examples/sandbox/inputs/players/check_box_input.rb +0 -40
  205. data/productions/examples/sandbox/inputs/players/combo_box_input.rb +0 -41
  206. data/productions/examples/sandbox/inputs/players/radio_button_input.rb +0 -43
  207. data/productions/examples/sandbox/inputs/players/text_area_input.rb +0 -36
  208. data/productions/examples/sandbox/inputs/players/text_box_input.rb +0 -36
  209. data/productions/examples/sandbox/inputs/props.rb +0 -40
  210. data/productions/examples/sandbox/inputs/styles.rb +0 -39
  211. data/productions/examples/sandbox/kiosk/players/kiosk.rb +0 -39
  212. data/productions/examples/sandbox/kiosk/props.rb +0 -9
  213. data/productions/examples/sandbox/kiosk/styles.rb +0 -37
  214. data/productions/examples/sandbox/players/sandbox.rb +0 -11
  215. data/productions/examples/sandbox/rounded_corners/players/box.rb +0 -11
  216. data/productions/examples/sandbox/rounded_corners/props.rb +0 -22
  217. data/productions/examples/sandbox/rounded_corners/styles.rb +0 -17
  218. data/productions/examples/sandbox/scrolling/players/add_button.rb +0 -19
  219. data/productions/examples/sandbox/scrolling/players/cell.rb +0 -15
  220. data/productions/examples/sandbox/scrolling/props.rb +0 -45
  221. data/productions/examples/sandbox/scrolling/styles.rb +0 -33
  222. data/productions/examples/sandbox/sketching/players/sketchpad.rb +0 -46
  223. data/productions/examples/sandbox/sketching/props.rb +0 -25
  224. data/productions/examples/sandbox/sketching/styles.rb +0 -35
  225. data/productions/examples/sandbox/sounds/bird.au +0 -0
  226. data/productions/examples/sandbox/sounds/cat.au +0 -0
  227. data/productions/examples/sandbox/sounds/cow.au +0 -0
  228. data/productions/examples/sandbox/sounds/dog.au +0 -0
  229. data/productions/examples/sandbox/sounds/donkey.au +0 -0
  230. data/productions/examples/sandbox/sounds/duck.au +0 -0
  231. data/productions/examples/sandbox/sounds/players/clip.rb +0 -10
  232. data/productions/examples/sandbox/sounds/props.rb +0 -10
  233. data/productions/examples/sandbox/sounds/styles.rb +0 -17
  234. data/productions/examples/sandbox/spec/alerts/alerts_spec.rb +0 -16
  235. data/productions/examples/sandbox/stage_handles/players/sizer.rb +0 -38
  236. data/productions/examples/sandbox/stage_handles/props.rb +0 -17
  237. data/productions/examples/sandbox/stage_handles/styles.rb +0 -58
  238. data/productions/examples/sandbox/stages.rb +0 -8
  239. data/productions/examples/sandbox/styles.rb +0 -35
  240. data/productions/examples/sandbox/teaser/players/fader.rb +0 -58
  241. data/productions/examples/sandbox/teaser/props.rb +0 -14
  242. data/productions/examples/sandbox/teaser/styles.rb +0 -21
  243. data/productions/examples/tutorials/tutorial_1/players/sample.rb +0 -11
  244. data/productions/examples/tutorials/tutorial_1/props.rb +0 -9
  245. data/productions/examples/tutorials/tutorial_1/styles.rb +0 -25
  246. data/productions/stage_composer/init.rb +0 -10
  247. data/productions/stage_composer/inspector/players/inspector.rb +0 -80
  248. data/productions/stage_composer/inspector/players/prop_row.rb +0 -12
  249. data/productions/stage_composer/inspector/players/prop_tree.rb +0 -33
  250. data/productions/stage_composer/inspector/players/style_table.rb +0 -12
  251. data/productions/stage_composer/inspector/players/style_value.rb +0 -16
  252. data/productions/stage_composer/inspector/props.rb +0 -19
  253. data/productions/stage_composer/inspector/styles.rb +0 -71
  254. data/productions/stage_composer/lib/init.rb +0 -5
  255. data/productions/stage_composer/lib/limelight/composer/controller.rb +0 -51
  256. data/productions/stage_composer/lib/limelight/composer/lethargy.rb +0 -24
  257. data/productions/stage_composer/production.rb +0 -6
  258. data/productions/stage_composer/stages.rb +0 -15
  259. data/productions/startup/images/logo.png +0 -0
  260. data/productions/startup/images/splash.png +0 -0
  261. data/productions/startup/production.rb +0 -52
  262. data/productions/startup/spec/default_scene/default_scene_spec.rb +0 -16
  263. data/productions/startup/spec/spec_helper.rb +0 -8
  264. data/productions/startup/stages.rb +0 -9
  265. data/productions/startup/styles.rb +0 -15
  266. data/productions/startup/welcome/players/browse_button.rb +0 -10
  267. data/productions/startup/welcome/players/download_button.rb +0 -17
  268. data/productions/startup/welcome/players/sandbox_button.rb +0 -11
  269. data/productions/startup/welcome/props.rb +0 -23
  270. data/productions/startup/welcome/styles.rb +0 -103
  271. data/spec/limelight/builtin/players/button_spec.rb +0 -20
  272. data/spec/limelight/builtin/players/check_box_spec.rb +0 -29
  273. data/spec/limelight/builtin/players/combo_box_spec.rb +0 -29
  274. data/spec/limelight/builtin/players/image_spec.rb +0 -43
  275. data/spec/limelight/builtin/players/password_box_spec.rb +0 -27
  276. data/spec/limelight/builtin/players/radio_button_spec.rb +0 -64
  277. data/spec/limelight/builtin/players/stage_mover_spec.rb +0 -36
  278. data/spec/limelight/builtin/players/stage_sizer_spec.rb +0 -40
  279. data/spec/limelight/builtin/players/text_area_spec.rb +0 -27
  280. data/spec/limelight/builtin/players/text_box_spec.rb +0 -27
  281. data/spec/limelight/builtin/utilities_production/spec_helper.rb +0 -7
  282. data/spec/limelight/builtin/utilities_production/utilities_production_spec.rb +0 -147
  283. data/spec/limelight/casting_director_spec.rb +0 -164
  284. data/spec/limelight/commands/command_spec.rb +0 -26
  285. data/spec/limelight/commands/create_command_spec.rb +0 -108
  286. data/spec/limelight/commands/freeze_command_spec.rb +0 -143
  287. data/spec/limelight/commands/help_command_spec.rb +0 -42
  288. data/spec/limelight/commands/open_command_spec.rb +0 -53
  289. data/spec/limelight/commands/pack_command_spec.rb +0 -43
  290. data/spec/limelight/commands/unpack_command_spec.rb +0 -47
  291. data/spec/limelight/data_spec.rb +0 -36
  292. data/spec/limelight/dsl/prop_builder_spec.rb +0 -245
  293. data/spec/limelight/dsl/stage_builder_spec.rb +0 -90
  294. data/spec/limelight/dsl/styles_builder_spec.rb +0 -194
  295. data/spec/limelight/file_chooser_spec.rb +0 -64
  296. data/spec/limelight/file_filter_spec.rb +0 -29
  297. data/spec/limelight/file_loader_spec.rb +0 -28
  298. data/spec/limelight/gems_spec.rb +0 -92
  299. data/spec/limelight/java_util_spec.rb +0 -37
  300. data/spec/limelight/main_spec.rb +0 -40
  301. data/spec/limelight/paint_action_spec.rb +0 -30
  302. data/spec/limelight/pen_spec.rb +0 -62
  303. data/spec/limelight/producer_spec.rb +0 -246
  304. data/spec/limelight/production_spec.rb +0 -97
  305. data/spec/limelight/prop_spec.rb +0 -431
  306. data/spec/limelight/scene_spec.rb +0 -173
  307. data/spec/limelight/stage_spec.rb +0 -247
  308. data/spec/limelight/string_spec.rb +0 -38
  309. data/spec/limelight/templates/production_templater_spec.rb +0 -66
  310. data/spec/limelight/templates/scene_templater_spec.rb +0 -51
  311. data/spec/limelight/templates/templater_logger_spec.rb +0 -41
  312. data/spec/limelight/templates/templater_spec.rb +0 -107
  313. data/spec/limelight/theater_spec.rb +0 -120
  314. data/spec/limelight/util/downloader_spec.rb +0 -92
  315. data/spec/spec_helper.rb +0 -64
@@ -1,5 +1,5 @@
1
- #- Copyright 2008-2009 8th Light, Inc. All Rights Reserved.
2
- #- Limelight and all included source files are distributed under terms of the GNU LGPL.
1
+ #- Copyright © 2008-2011 8th Light, Inc. All Rights Reserved.
2
+ #- Limelight and all included source files are distributed under terms of the MIT License.
3
3
 
4
4
  require 'limelight/pen'
5
5
 
@@ -8,20 +8,20 @@ module Limelight
8
8
  # A PaintAction is created by Prop.after_painting.
9
9
  #
10
10
  class PaintAction #:nodoc:
11
-
11
+
12
12
  include UI::Painting::PaintAction
13
-
13
+
14
14
  attr_reader :block
15
-
15
+
16
16
  def initialize(&block)
17
17
  @block = block
18
18
  end
19
-
19
+
20
20
  def invoke(graphics)
21
21
  pen = Pen.new(graphics)
22
22
  @block.call(pen)
23
23
  end
24
-
24
+
25
25
  end
26
-
26
+
27
27
  end
@@ -1,5 +1,5 @@
1
- #- Copyright 2008-2009 8th Light, Inc. All Rights Reserved.
2
- #- Limelight and all included source files are distributed under terms of the GNU LGPL.
1
+ #- Copyright © 2008-2011 8th Light, Inc. All Rights Reserved.
2
+ #- Limelight and all included source files are distributed under terms of the MIT License.
3
3
 
4
4
  module Limelight
5
5
 
@@ -7,10 +7,10 @@ module Limelight
7
7
  # from which the Pen was acquired.
8
8
  #
9
9
  # All points used by the Pen are relative to the bounds of the Prop. The top left corner of the Prop is represented
10
- # by the point (0, 0). If a Prop has margin, border, or padding, the point (0, 0) may appear to be outside the Prop.
10
+ # by the point (0, 0). If a Prop has margin, border, or padding, the point (0, 0) may appear to be outside the Prop.
11
11
  #
12
12
  class Pen
13
-
13
+
14
14
  attr_accessor :context
15
15
 
16
16
  # It is constructed with a context which is essentially a java.awt.Graphic2D object. Defaults are set:
@@ -72,12 +72,12 @@ module Limelight
72
72
  @context.drawOval(x, y, width, height)
73
73
  end
74
74
 
75
- # Fills an oval specified by the bounding rectangle. See draw_oval.
75
+ # Fills an oval specified by the bounding rectangle. See draw_oval.
76
76
  #
77
77
  def fill_oval(x, y, width, height)
78
78
  @context.fillOval(x, y, width, height)
79
79
  end
80
-
80
+
81
81
  end
82
-
82
+
83
83
  end
@@ -0,0 +1,148 @@
1
+ #- Copyright © 2008-2011 8th Light, Inc. All Rights Reserved.
2
+ #- Limelight and all included source files are distributed under terms of the MIT License.
3
+
4
+ module Limelight
5
+ class Player < Module
6
+
7
+ include Java::limelight.model.api.Player
8
+
9
+ def initialize(player_name, player_path)
10
+ @name = player_name
11
+ @path = player_path
12
+ @__event_cache = {}
13
+ end
14
+
15
+ def cast(prop)
16
+ prop = prop.is_a?(Limelight::Prop) ? prop : prop.proxy
17
+ unless prop.is_a?(self)
18
+ prop.extend(self)
19
+ end
20
+ end
21
+
22
+ def path
23
+ @path
24
+ end
25
+ alias getPath path
26
+
27
+ def name
28
+ @name
29
+ end
30
+ alias getName name
31
+
32
+ def applyOptions(prop, options)
33
+ # nothing to do here because options are already applied to mixed in methods
34
+ options
35
+ end
36
+
37
+ def __add_action(type, action)
38
+ actions = @__event_cache[type]
39
+ if actions == nil
40
+ actions = @__event_cache[type] = []
41
+ end
42
+ actions << action
43
+ end
44
+
45
+ def extended(prop)
46
+ on_cast_actions = @__event_cache[:on_cast]
47
+ if on_cast_actions
48
+ on_cast_actions.each do |action|
49
+ prop.instance_exec(&action)
50
+ end
51
+ end
52
+
53
+ @__event_cache.each do |event, actions|
54
+ if actions && event != :on_cast
55
+ actions.each do |action|
56
+ prop.peer.event_handler.add(event, Proc.new { |e| prop.instance_exec(e, &action) })
57
+ end
58
+ end
59
+ end
60
+ end
61
+
62
+ def on_cast(& action)
63
+ __add_action(:on_cast, action)
64
+ end
65
+
66
+ def on_mouse_pressed(& action)
67
+ __add_action(Java::limelight.ui.events.panel.MousePressedEvent, action)
68
+ end
69
+
70
+ def on_mouse_released(& action)
71
+ __add_action(Java::limelight.ui.events.panel.MouseReleasedEvent, action)
72
+ end
73
+
74
+ def on_mouse_clicked(& action)
75
+ __add_action(Java::limelight.ui.events.panel.MouseClickedEvent, action)
76
+ end
77
+
78
+ def on_mouse_entered(& action)
79
+ __add_action(Java::limelight.ui.events.panel.MouseEnteredEvent, action)
80
+ end
81
+
82
+ def on_mouse_exited(& action)
83
+ __add_action(Java::limelight.ui.events.panel.MouseExitedEvent, action)
84
+ end
85
+
86
+ def on_mouse_moved(& action)
87
+ __add_action(Java::limelight.ui.events.panel.MouseMovedEvent, action)
88
+ end
89
+
90
+ def on_mouse_wheel(& action)
91
+ __add_action(Java::limelight.ui.events.panel.MouseWheelEvent, action)
92
+ end
93
+
94
+ def on_mouse_dragged(& action)
95
+ __add_action(Java::limelight.ui.events.panel.MouseDraggedEvent, action)
96
+ end
97
+
98
+ def on_key_pressed(& action)
99
+ __add_action(Java::limelight.ui.events.panel.KeyPressedEvent, action)
100
+ end
101
+
102
+ def on_key_released(& action)
103
+ __add_action(Java::limelight.ui.events.panel.KeyReleasedEvent, action)
104
+ end
105
+
106
+ def on_char_typed(& action)
107
+ __add_action(Java::limelight.ui.events.panel.CharTypedEvent, action)
108
+ end
109
+
110
+ def on_focus_gained(& action)
111
+ __add_action(Java::limelight.ui.events.panel.FocusGainedEvent, action)
112
+ end
113
+
114
+ def on_focus_lost(& action)
115
+ __add_action(Java::limelight.ui.events.panel.FocusLostEvent, action)
116
+ end
117
+
118
+ def on_button_pushed(& action)
119
+ __add_action(Java::limelight.ui.events.panel.ButtonPushedEvent, action)
120
+ end
121
+
122
+ def on_value_changed(& action)
123
+ __add_action(Java::limelight.ui.events.panel.ValueChangedEvent, action)
124
+ end
125
+
126
+ def on_scene_opened(& action)
127
+ __add_action(Java::limelight.ui.events.panel.SceneOpenedEvent, action)
128
+ end
129
+
130
+ def on_illuminated(& action)
131
+ __add_action(Java::limelight.ui.events.panel.IlluminatedEvent, action)
132
+ end
133
+
134
+ def prop_reader(*symbols)
135
+ symbols.each do |sym|
136
+ module_eval("def #{sym}; return scene.find('#{sym}'); end")
137
+ end
138
+ end
139
+
140
+ def backstage_reader(*symbols)
141
+ symbols.each do |sym|
142
+ name = Java::limelight.util.StringUtil.spearCase(sym.to_s)
143
+ module_eval("def #{sym}; return backstage['#{name}']; end")
144
+ end
145
+ end
146
+
147
+ end
148
+ end
@@ -0,0 +1,54 @@
1
+ #- Copyright © 2008-2011 8th Light, Inc. All Rights Reserved.
2
+ #- Limelight and all included source files are distributed under terms of the MIT License.
3
+
4
+ require 'limelight/player'
5
+ require 'limelight/builtin/players'
6
+
7
+ module Limelight
8
+
9
+ # The PlayerRecruiter is responsible for finding Players for Props within a Production.
10
+ # Each scene has a unique instance of a PlayerRecruiter
11
+ #
12
+ # Users of Limelight need not be concerned with this class.
13
+ #
14
+ class PlayerRecruiter
15
+
16
+ attr_reader :cast
17
+
18
+ def initialize()
19
+ @cast = Module.new
20
+ @fs = Java::limelight.Context.fs
21
+ end
22
+
23
+ def can_recruit?(player_name, players_path)
24
+ @cast.const_defined?(player_name.camelized) || @fs.exists(player_filename(player_name, players_path))
25
+ end
26
+
27
+ alias :canRecruit :can_recruit?
28
+
29
+ def recruit_player(player_name, players_path)
30
+ module_name = player_name.camelized
31
+ if @cast.const_defined?(module_name)
32
+ @cast.const_get(module_name)
33
+ else
34
+ player_filename = player_filename(player_name, players_path)
35
+ src = @fs.read_text_file(player_filename)
36
+
37
+ player = Player.new(player_name, player_filename)
38
+ player.module_eval(src, player_filename)
39
+ @cast.const_set(module_name, player)
40
+ player
41
+ end
42
+ end
43
+
44
+ alias :recruitPlayer :recruit_player
45
+
46
+ private ###############################################
47
+
48
+ def player_filename(player_name, players_path)
49
+ "#{@fs.join(players_path, player_name.underscored)}.rb"
50
+ end
51
+
52
+ end
53
+
54
+ end
@@ -0,0 +1,257 @@
1
+ #- Copyright © 2008-2011 8th Light, Inc. All Rights Reserved.
2
+ #- Limelight and all included source files are distributed under terms of the MIT License.
3
+
4
+ require 'limelight/limelight_exception'
5
+ require 'limelight/dsl/styles_builder'
6
+ require 'limelight/theater'
7
+ require 'limelight/dsl/stage_builder'
8
+ require 'limelight/dsl/prop_builder'
9
+ require 'limelight/dsl/styles_builder'
10
+ require 'limelight/util/hashes'
11
+ require 'limelight/scene'
12
+ require 'drb'
13
+
14
+
15
+ module Limelight
16
+
17
+ # The root object of Limelight Production. Every Prop in a production has access to its Production object.
18
+ # Therefore it is typical to store reasources in the Production.
19
+ #
20
+ # Productions are configured, and attributes are added, by the ProductionBuilder.
21
+ #
22
+ class Production
23
+
24
+ include Java::limelight.model.api.ProductionProxy
25
+
26
+ attr_reader :peer
27
+ attr_accessor :theater
28
+
29
+ alias :getTheater :theater
30
+ alias :getPeer :peer
31
+
32
+ # Users typically need not create Production objects.
33
+ #
34
+ def initialize(production)
35
+ @peer = production
36
+ @theater = Theater.new(self, @peer.theater)
37
+
38
+ @peer.proxy = self
39
+ @fs = Java::limelight.Context.fs
40
+ end
41
+
42
+ # returns the productions "backstage" storage. (A map of map to store stuff)
43
+ #
44
+ def backstage
45
+ if @backstage == nil
46
+ value = @peer.backstage
47
+ @backstage = Util::Hashes.for_ruby(value)
48
+ end
49
+ @backstage
50
+ end
51
+
52
+ # returns true if the production has been opened, and not yet closed.
53
+ #
54
+ def open?
55
+ @peer.open?
56
+ end
57
+
58
+ # Returns the name of the Production
59
+ #
60
+ def name
61
+ @peer.name
62
+ end
63
+
64
+ # Sets the name of the Production. The name must be unique amongst all Productions in memory.
65
+ #
66
+ def name=(value)
67
+ @peer.name = value
68
+ end
69
+
70
+ # Return the path to the root directory of the production
71
+ #
72
+ def path
73
+ @peer.path
74
+ end
75
+
76
+ # Returns the path to the production's production.rb file
77
+ #
78
+ def production_file
79
+ @fs.path_to(path, "production.rb")
80
+ end
81
+
82
+ # Returns the path to the production's stages file
83
+ #
84
+ def stages_file
85
+ @fs.path_to(path, "stages.rb")
86
+ end
87
+
88
+ # Returns the path to the production's styles file
89
+ #
90
+ def styles_file
91
+ @fs.path_to(path, "styles.rb")
92
+ end
93
+
94
+ # Returns the path to the production's gems directory
95
+ #
96
+ def gems_directory
97
+ @fs.path_to(path, "__resources/gems/gems")
98
+ end
99
+
100
+ # Returns the path to the productions gems root
101
+ #
102
+ def gems_root
103
+ @fs.path_to(path, "__resources/gems")
104
+ end
105
+
106
+ # Returns the path to the named Scene's directory within the Production
107
+ #
108
+ def scene_directory(name)
109
+ name == nil ? path : @fs.path_to(path, name)
110
+ end
111
+
112
+ # Returns true if the production allows itself to be closed. The system will call this methods when
113
+ # it wishes to close the production, perhaps when the user quits the application. By default the production
114
+ # will always return true.
115
+ #
116
+ def allow_close?
117
+ @peer.allow_close?
118
+ end
119
+
120
+ # Specifies whether this production will allow itself to be closed. It should be noted that permanently setting
121
+ # this to false could keep the entire Limelight runtime from shutting down.
122
+ #
123
+ def allow_close=(value)
124
+ @peer.allow_close = value
125
+ end
126
+
127
+ # Specifies the minimum required version of Limelight that should be used to open this production.
128
+ # Defaults to zero, meaning any version of Limelight may open the production.
129
+ #
130
+ def minimum_limelight_version=(value)
131
+ @peer.minimum_limelight_version = value
132
+ end
133
+
134
+ # Closes the production. If there are no more productions open, the Limelight runtime will shutdown.
135
+ # The production will actually delegate to it's producer and the producer will close the production down.
136
+ #
137
+ def close
138
+ @peer.close
139
+ end
140
+
141
+ # Publish this production using DRb on the specified port. The production will delegate to its producer to
142
+ # actually do the publishing.
143
+ #
144
+ def publish_on_drb(port)
145
+ @producer.publish_production_on_drb(port)
146
+ end
147
+
148
+ def on_production_created(&action)
149
+ @peer.event_handler.add(Java::limelight.model.events.ProductionCreatedEvent, action)
150
+ end
151
+
152
+ def on_production_loaded(&action)
153
+ @peer.event_handler.add(Java::limelight.model.events.ProductionLoadedEvent, action)
154
+ end
155
+
156
+ def on_production_opened(&action)
157
+ @peer.event_handler.add(Java::limelight.model.events.ProductionOpenedEvent, action)
158
+ end
159
+
160
+ def on_production_closing(&action)
161
+ @peer.event_handler.add(Java::limelight.model.events.ProductionClosingEvent, action)
162
+ end
163
+
164
+ def on_production_closed(&action)
165
+ @peer.event_handler.add(Java::limelight.model.events.ProductionClosedEvent, action)
166
+ end
167
+
168
+ def backstage_pass(name)
169
+ instance_eval "def #{name}=(value); backstage[:#{name}] = value; end;"
170
+ instance_eval "def #{name}; backstage[:#{name}]; end;"
171
+ end
172
+
173
+ def callMethod(name, java_obj_array) #:nodoc:
174
+ args = []
175
+ java_obj_array.length.times { |i| args << java_obj_array[i] }
176
+ send(name.to_sym, * args)
177
+ end
178
+
179
+ def open_scene(scene_path, options={})
180
+ stage_name = options[:stage]
181
+ if(stage_name)
182
+ scene_peer = @peer.open_scene(scene_path, stage_name, Util::Hashes.for_java(options))
183
+ else
184
+ scene_peer = @peer.open_scene(scene_path, Util::Hashes.for_java(options))
185
+ end
186
+ scene_peer.proxy
187
+ end
188
+
189
+ def illuminate
190
+ path = production_file
191
+ return unless @fs.exists?(path)
192
+ content = @fs.read_text_file(path)
193
+ path = path[5..-1] if path[0...5] == "file:"
194
+ self.instance_eval(content, path)
195
+ end
196
+
197
+ def load_libraries
198
+ # use bundler here
199
+ end
200
+
201
+ alias :loadLibraries :load_libraries
202
+
203
+ def load_stages
204
+ return unless @fs.exists?(stages_file)
205
+ content = @fs.read_text_file(stages_file)
206
+ prod = self
207
+ Limelight.build_stages(theater) do
208
+ begin
209
+ eval content
210
+ rescue Exception => e
211
+ puts e.backtrace
212
+ raise DSL::BuildException.new(prod.stages_file, content, e)
213
+ end
214
+ end
215
+ end
216
+
217
+ alias :loadStages :load_stages
218
+
219
+ def load_scene(scene_path, options={})
220
+ options = Util::Hashes.for_ruby(options)
221
+ instance_variables = options.delete(:instance_variables)
222
+ log.debug "production.rb - scene options: #{options.inspect}"
223
+ scene = Scene.new(options)
224
+ scene.production = self
225
+ if @fs.exists?(scene.props_file)
226
+ log.debug "production.rb - loading props: #{scene.props_file}"
227
+ content = @fs.read_text_file(scene.props_file)
228
+ options[:root_path] = self.path
229
+ Limelight.build_props(scene, options.merge(:instance_variables => instance_variables)) do
230
+ begin
231
+ eval content
232
+ rescue Exception => e
233
+ raise DSL::BuildException.new(scene.props_file, content, e)
234
+ end
235
+ end
236
+ else
237
+ log.debug "production.rb - props file doesn't exist': #{scene.props_file}"
238
+ end
239
+ scene
240
+ end
241
+
242
+ alias :loadScene :load_scene
243
+
244
+ def load_styles(source, extendable_styles)
245
+ result = {}
246
+ styles_path = @fs.join(source.path, "styles.rb")
247
+ if @fs.exists?(styles_path)
248
+ Limelight.build_styles_from_file(styles_path, :styles => result, :extendable_styles => extendable_styles)
249
+ end
250
+ result
251
+ end
252
+
253
+ alias :loadStyles :load_styles
254
+
255
+ end
256
+
257
+ end