epall-limelight 0.5.0-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 (282) hide show
  1. data/bin/icons/icon.ico +0 -0
  2. data/bin/icons/icon_48.gif +0 -0
  3. data/bin/icons/limelight.icns +0 -0
  4. data/bin/limelight +5 -0
  5. data/bin/ll +10 -0
  6. data/bin/ll.bat +5 -0
  7. data/lib/init.rb +16 -0
  8. data/lib/limelight.jar +0 -0
  9. data/lib/limelight/animation.rb +41 -0
  10. data/lib/limelight/builtin/players.rb +16 -0
  11. data/lib/limelight/builtin/players/button.rb +39 -0
  12. data/lib/limelight/builtin/players/check_box.rb +50 -0
  13. data/lib/limelight/builtin/players/combo_box.rb +89 -0
  14. data/lib/limelight/builtin/players/combo_box_popup_list.rb +19 -0
  15. data/lib/limelight/builtin/players/combo_box_popup_list_item.rb +21 -0
  16. data/lib/limelight/builtin/players/curtains.rb +23 -0
  17. data/lib/limelight/builtin/players/image.rb +54 -0
  18. data/lib/limelight/builtin/players/password_box.rb +34 -0
  19. data/lib/limelight/builtin/players/radio_button.rb +65 -0
  20. data/lib/limelight/builtin/players/stage_mover.rb +31 -0
  21. data/lib/limelight/builtin/players/stage_sizer.rb +34 -0
  22. data/lib/limelight/builtin/players/text_area.rb +34 -0
  23. data/lib/limelight/builtin/players/text_box.rb +34 -0
  24. data/lib/limelight/builtin/styles.rb +35 -0
  25. data/lib/limelight/builtin/utilities_production/alert/players/alert.rb +11 -0
  26. data/lib/limelight/builtin/utilities_production/alert/props.rb +8 -0
  27. data/lib/limelight/builtin/utilities_production/alert/styles.rb +14 -0
  28. data/lib/limelight/builtin/utilities_production/incompatible_version/props.rb +20 -0
  29. data/lib/limelight/builtin/utilities_production/incompatible_version/styles.rb +12 -0
  30. data/lib/limelight/builtin/utilities_production/production.rb +62 -0
  31. data/lib/limelight/builtin/utilities_production/stages.rb +12 -0
  32. data/lib/limelight/builtin/utilities_production/styles.rb +53 -0
  33. data/lib/limelight/button_group_cache.rb +11 -0
  34. data/lib/limelight/casting_director.rb +112 -0
  35. data/lib/limelight/client/playbills.rb +86 -0
  36. data/lib/limelight/commands/command.rb +168 -0
  37. data/lib/limelight/commands/create_command.rb +98 -0
  38. data/lib/limelight/commands/freeze_command.rb +131 -0
  39. data/lib/limelight/commands/help_command.rb +61 -0
  40. data/lib/limelight/commands/open_command.rb +60 -0
  41. data/lib/limelight/commands/pack_command.rb +45 -0
  42. data/lib/limelight/commands/unpack_command.rb +44 -0
  43. data/lib/limelight/commands/version_command.rb +31 -0
  44. data/lib/limelight/data.rb +37 -0
  45. data/lib/limelight/dsl/build_exception.rb +55 -0
  46. data/lib/limelight/dsl/menu_bar.rb +71 -0
  47. data/lib/limelight/dsl/prop_builder.rb +155 -0
  48. data/lib/limelight/dsl/stage_builder.rb +105 -0
  49. data/lib/limelight/dsl/styles_builder.rb +157 -0
  50. data/lib/limelight/file_chooser.rb +68 -0
  51. data/lib/limelight/file_filter.rb +33 -0
  52. data/lib/limelight/file_loader.rb +46 -0
  53. data/lib/limelight/gems.rb +51 -0
  54. data/lib/limelight/java_couplings.rb +66 -0
  55. data/lib/limelight/java_util.rb +49 -0
  56. data/lib/limelight/limelight_exception.rb +24 -0
  57. data/lib/limelight/main.rb +108 -0
  58. data/lib/limelight/paint_action.rb +27 -0
  59. data/lib/limelight/pen.rb +83 -0
  60. data/lib/limelight/producer.rb +179 -0
  61. data/lib/limelight/production.rb +169 -0
  62. data/lib/limelight/prop.rb +367 -0
  63. data/lib/limelight/scene.rb +151 -0
  64. data/lib/limelight/specs/spec_helper.rb +87 -0
  65. data/lib/limelight/specs/test_scene_opener.rb +60 -0
  66. data/lib/limelight/stage.rb +292 -0
  67. data/lib/limelight/string.rb +38 -0
  68. data/lib/limelight/studio.rb +185 -0
  69. data/lib/limelight/styles.rb +347 -0
  70. data/lib/limelight/templates/production_templater.rb +49 -0
  71. data/lib/limelight/templates/scene_templater.rb +47 -0
  72. data/lib/limelight/templates/sources/freezing/limelight_init.rb.template +5 -0
  73. data/lib/limelight/templates/sources/production/init.rb.template +15 -0
  74. data/lib/limelight/templates/sources/production/production.rb.template +49 -0
  75. data/lib/limelight/templates/sources/production/spec/spec_helper.rb.template +12 -0
  76. data/lib/limelight/templates/sources/production/stages.rb.template +17 -0
  77. data/lib/limelight/templates/sources/production/styles.rb.template +12 -0
  78. data/lib/limelight/templates/sources/scene/props.rb.template +6 -0
  79. data/lib/limelight/templates/sources/scene/styles.rb.template +18 -0
  80. data/lib/limelight/templates/sources/scene_spec/scene_spec.rb.template +13 -0
  81. data/lib/limelight/templates/templater.rb +131 -0
  82. data/lib/limelight/templates/templater_logger.rb +39 -0
  83. data/lib/limelight/theater.rb +77 -0
  84. data/lib/limelight/util.rb +65 -0
  85. data/lib/limelight/util/downloader.rb +115 -0
  86. data/lib/limelight/version.rb +20 -0
  87. data/productions/examples/8thlight.com/about/about.txt +24 -0
  88. data/productions/examples/8thlight.com/about/props.rb +11 -0
  89. data/productions/examples/8thlight.com/about/styles.rb +2 -0
  90. data/productions/examples/8thlight.com/footer.rb +6 -0
  91. data/productions/examples/8thlight.com/home/props.rb +28 -0
  92. data/productions/examples/8thlight.com/home/styles.rb +2 -0
  93. data/productions/examples/8thlight.com/images/anvil.jpg +0 -0
  94. data/productions/examples/8thlight.com/images/bg.jpg +0 -0
  95. data/productions/examples/8thlight.com/images/botticelli.jpg +0 -0
  96. data/productions/examples/8thlight.com/images/button_bg.jpg +0 -0
  97. data/productions/examples/8thlight.com/images/canvas_bg.jpg +0 -0
  98. data/productions/examples/8thlight.com/images/footer_bg.jpg +0 -0
  99. data/productions/examples/8thlight.com/images/header.jpg +0 -0
  100. data/productions/examples/8thlight.com/images/moses.jpg +0 -0
  101. data/productions/examples/8thlight.com/images/statemachine_thumbnail.png +0 -0
  102. data/productions/examples/8thlight.com/images/thumbnail_book.jpg +0 -0
  103. data/productions/examples/8thlight.com/menu.rb +11 -0
  104. data/productions/examples/8thlight.com/services/props.rb +11 -0
  105. data/productions/examples/8thlight.com/services/services.txt +8 -0
  106. data/productions/examples/8thlight.com/services/styles.rb +2 -0
  107. data/productions/examples/8thlight.com/stages.rb +8 -0
  108. data/productions/examples/8thlight.com/styles.rb +210 -0
  109. data/productions/examples/calculator/players/button.rb +24 -0
  110. data/productions/examples/calculator/players/calculator.rb +15 -0
  111. data/productions/examples/calculator/players/calculator_model.rb +13 -0
  112. data/productions/examples/calculator/props.rb +23 -0
  113. data/productions/examples/calculator/styles.rb +36 -0
  114. data/productions/examples/langstons_ant/html_javascript/ant.css +39 -0
  115. data/productions/examples/langstons_ant/html_javascript/ant.html +22 -0
  116. data/productions/examples/langstons_ant/html_javascript/ant.js +23 -0
  117. data/productions/examples/langstons_ant/init.rb +4 -0
  118. data/productions/examples/langstons_ant/players/ant.rb +103 -0
  119. data/productions/examples/langstons_ant/players/log.rb +29 -0
  120. data/productions/examples/langstons_ant/players/start_stop_button.rb +37 -0
  121. data/productions/examples/langstons_ant/players/world.rb +35 -0
  122. data/productions/examples/langstons_ant/props.rb +22 -0
  123. data/productions/examples/langstons_ant/styles.rb +104 -0
  124. data/productions/examples/sandbox/alerts/incompatible_production/default_scene/props.rb +10 -0
  125. data/productions/examples/sandbox/alerts/incompatible_production/default_scene/styles.rb +32 -0
  126. data/productions/examples/sandbox/alerts/incompatible_production/production.rb +52 -0
  127. data/productions/examples/sandbox/alerts/incompatible_production/spec/default_scene/default_scene_spec.rb +16 -0
  128. data/productions/examples/sandbox/alerts/incompatible_production/spec/spec_helper.rb +8 -0
  129. data/productions/examples/sandbox/alerts/incompatible_production/stages.rb +20 -0
  130. data/productions/examples/sandbox/alerts/incompatible_production/styles.rb +15 -0
  131. data/productions/examples/sandbox/alerts/players/alerts.rb +17 -0
  132. data/productions/examples/sandbox/alerts/props.rb +10 -0
  133. data/productions/examples/sandbox/alerts/styles.rb +46 -0
  134. data/productions/examples/sandbox/background_images/props.rb +22 -0
  135. data/productions/examples/sandbox/background_images/styles.rb +40 -0
  136. data/productions/examples/sandbox/click_me/players/chromaton.rb +52 -0
  137. data/productions/examples/sandbox/click_me/props.rb +8 -0
  138. data/productions/examples/sandbox/click_me/styles.rb +11 -0
  139. data/productions/examples/sandbox/floaters/players/floater.rb +108 -0
  140. data/productions/examples/sandbox/floaters/players/surface.rb +21 -0
  141. data/productions/examples/sandbox/floaters/props.rb +10 -0
  142. data/productions/examples/sandbox/floaters/styles.rb +24 -0
  143. data/productions/examples/sandbox/frameing/players/sandbox.rb +17 -0
  144. data/productions/examples/sandbox/frameing/props.rb +35 -0
  145. data/productions/examples/sandbox/frameing/styles.rb +45 -0
  146. data/productions/examples/sandbox/gradients/players/spinner.rb +20 -0
  147. data/productions/examples/sandbox/gradients/players/teaser.rb +19 -0
  148. data/productions/examples/sandbox/gradients/players/wave.rb +19 -0
  149. data/productions/examples/sandbox/gradients/players/waves.rb +19 -0
  150. data/productions/examples/sandbox/gradients/props.rb +13 -0
  151. data/productions/examples/sandbox/gradients/styles.rb +47 -0
  152. data/productions/examples/sandbox/header.rb +22 -0
  153. data/productions/examples/sandbox/homer/players/homer.rb +24 -0
  154. data/productions/examples/sandbox/homer/props.rb +10 -0
  155. data/productions/examples/sandbox/homer/styles.rb +16 -0
  156. data/productions/examples/sandbox/images/arch.jpg +0 -0
  157. data/productions/examples/sandbox/images/beach.jpg +0 -0
  158. data/productions/examples/sandbox/images/homer.jpg +0 -0
  159. data/productions/examples/sandbox/images/limelight_spotlight.jpg +0 -0
  160. data/productions/examples/sandbox/images/logo.png +0 -0
  161. data/productions/examples/sandbox/images/marilyn.jpg +0 -0
  162. data/productions/examples/sandbox/images/space.png +0 -0
  163. data/productions/examples/sandbox/images_scene/props.rb +36 -0
  164. data/productions/examples/sandbox/images_scene/styles.rb +34 -0
  165. data/productions/examples/sandbox/inputs/players/button_input.rb +48 -0
  166. data/productions/examples/sandbox/inputs/players/check_box_input.rb +40 -0
  167. data/productions/examples/sandbox/inputs/players/combo_box_input.rb +41 -0
  168. data/productions/examples/sandbox/inputs/players/radio_button_input.rb +43 -0
  169. data/productions/examples/sandbox/inputs/players/text_area_input.rb +36 -0
  170. data/productions/examples/sandbox/inputs/players/text_box_input.rb +36 -0
  171. data/productions/examples/sandbox/inputs/props.rb +40 -0
  172. data/productions/examples/sandbox/inputs/styles.rb +39 -0
  173. data/productions/examples/sandbox/kiosk/players/kiosk.rb +39 -0
  174. data/productions/examples/sandbox/kiosk/props.rb +9 -0
  175. data/productions/examples/sandbox/kiosk/styles.rb +37 -0
  176. data/productions/examples/sandbox/players/sandbox.rb +11 -0
  177. data/productions/examples/sandbox/rounded_corners/players/box.rb +11 -0
  178. data/productions/examples/sandbox/rounded_corners/props.rb +22 -0
  179. data/productions/examples/sandbox/rounded_corners/styles.rb +17 -0
  180. data/productions/examples/sandbox/scrolling/players/add_button.rb +19 -0
  181. data/productions/examples/sandbox/scrolling/players/cell.rb +15 -0
  182. data/productions/examples/sandbox/scrolling/props.rb +45 -0
  183. data/productions/examples/sandbox/scrolling/styles.rb +33 -0
  184. data/productions/examples/sandbox/sketching/players/sketchpad.rb +46 -0
  185. data/productions/examples/sandbox/sketching/props.rb +25 -0
  186. data/productions/examples/sandbox/sketching/styles.rb +35 -0
  187. data/productions/examples/sandbox/sounds/bird.au +0 -0
  188. data/productions/examples/sandbox/sounds/cat.au +0 -0
  189. data/productions/examples/sandbox/sounds/cow.au +0 -0
  190. data/productions/examples/sandbox/sounds/dog.au +0 -0
  191. data/productions/examples/sandbox/sounds/donkey.au +0 -0
  192. data/productions/examples/sandbox/sounds/duck.au +0 -0
  193. data/productions/examples/sandbox/sounds/players/clip.rb +10 -0
  194. data/productions/examples/sandbox/sounds/props.rb +10 -0
  195. data/productions/examples/sandbox/sounds/styles.rb +17 -0
  196. data/productions/examples/sandbox/spec/alerts/alerts_spec.rb +16 -0
  197. data/productions/examples/sandbox/stage_handles/players/sizer.rb +35 -0
  198. data/productions/examples/sandbox/stage_handles/props.rb +17 -0
  199. data/productions/examples/sandbox/stage_handles/styles.rb +58 -0
  200. data/productions/examples/sandbox/stages.rb +8 -0
  201. data/productions/examples/sandbox/styles.rb +35 -0
  202. data/productions/examples/sandbox/teaser/players/fader.rb +58 -0
  203. data/productions/examples/sandbox/teaser/props.rb +14 -0
  204. data/productions/examples/sandbox/teaser/styles.rb +21 -0
  205. data/productions/examples/tutorials/tutorial_1/players/sample.rb +11 -0
  206. data/productions/examples/tutorials/tutorial_1/props.rb +9 -0
  207. data/productions/examples/tutorials/tutorial_1/styles.rb +25 -0
  208. data/productions/playbills.lll +1 -0
  209. data/productions/stage_composer/init.rb +10 -0
  210. data/productions/stage_composer/inspector/players/inspector.rb +80 -0
  211. data/productions/stage_composer/inspector/players/prop_row.rb +12 -0
  212. data/productions/stage_composer/inspector/players/prop_tree.rb +33 -0
  213. data/productions/stage_composer/inspector/players/style_table.rb +12 -0
  214. data/productions/stage_composer/inspector/players/style_value.rb +16 -0
  215. data/productions/stage_composer/inspector/props.rb +19 -0
  216. data/productions/stage_composer/inspector/styles.rb +71 -0
  217. data/productions/stage_composer/lib/init.rb +5 -0
  218. data/productions/stage_composer/lib/limelight/composer/controller.rb +51 -0
  219. data/productions/stage_composer/lib/limelight/composer/lethargy.rb +24 -0
  220. data/productions/stage_composer/production.rb +6 -0
  221. data/productions/stage_composer/stages.rb +15 -0
  222. data/productions/startup/images/logo.png +0 -0
  223. data/productions/startup/images/splash.png +0 -0
  224. data/productions/startup/production.rb +52 -0
  225. data/productions/startup/spec/default_scene/default_scene_spec.rb +16 -0
  226. data/productions/startup/spec/spec_helper.rb +8 -0
  227. data/productions/startup/stages.rb +9 -0
  228. data/productions/startup/styles.rb +15 -0
  229. data/productions/startup/welcome/players/browse_button.rb +10 -0
  230. data/productions/startup/welcome/players/download_button.rb +17 -0
  231. data/productions/startup/welcome/players/sandbox_button.rb +11 -0
  232. data/productions/startup/welcome/props.rb +23 -0
  233. data/productions/startup/welcome/styles.rb +103 -0
  234. data/spec/limelight/builtin/players/button_spec.rb +20 -0
  235. data/spec/limelight/builtin/players/check_box_spec.rb +29 -0
  236. data/spec/limelight/builtin/players/combo_box_spec.rb +29 -0
  237. data/spec/limelight/builtin/players/image_spec.rb +43 -0
  238. data/spec/limelight/builtin/players/password_box_spec.rb +27 -0
  239. data/spec/limelight/builtin/players/radio_button_spec.rb +64 -0
  240. data/spec/limelight/builtin/players/stage_mover_spec.rb +36 -0
  241. data/spec/limelight/builtin/players/stage_sizer_spec.rb +40 -0
  242. data/spec/limelight/builtin/players/text_area_spec.rb +27 -0
  243. data/spec/limelight/builtin/players/text_box_spec.rb +27 -0
  244. data/spec/limelight/builtin/utilities_production/spec_helper.rb +7 -0
  245. data/spec/limelight/builtin/utilities_production/utilities_production_spec.rb +146 -0
  246. data/spec/limelight/casting_director_spec.rb +164 -0
  247. data/spec/limelight/client/playbills_spec.rb +79 -0
  248. data/spec/limelight/commands/command_spec.rb +26 -0
  249. data/spec/limelight/commands/create_command_spec.rb +108 -0
  250. data/spec/limelight/commands/freeze_command_spec.rb +143 -0
  251. data/spec/limelight/commands/help_command_spec.rb +42 -0
  252. data/spec/limelight/commands/open_command_spec.rb +52 -0
  253. data/spec/limelight/commands/pack_command_spec.rb +26 -0
  254. data/spec/limelight/commands/unpack_command_spec.rb +47 -0
  255. data/spec/limelight/data_spec.rb +36 -0
  256. data/spec/limelight/dsl/prop_builder_spec.rb +245 -0
  257. data/spec/limelight/dsl/stage_builder_spec.rb +90 -0
  258. data/spec/limelight/dsl/styles_builder_spec.rb +194 -0
  259. data/spec/limelight/file_chooser_spec.rb +64 -0
  260. data/spec/limelight/file_filter_spec.rb +29 -0
  261. data/spec/limelight/file_loader_spec.rb +28 -0
  262. data/spec/limelight/gems_spec.rb +92 -0
  263. data/spec/limelight/java_util_spec.rb +37 -0
  264. data/spec/limelight/main_spec.rb +40 -0
  265. data/spec/limelight/paint_action_spec.rb +30 -0
  266. data/spec/limelight/pen_spec.rb +62 -0
  267. data/spec/limelight/producer_spec.rb +210 -0
  268. data/spec/limelight/production_spec.rb +100 -0
  269. data/spec/limelight/prop_spec.rb +431 -0
  270. data/spec/limelight/scene_spec.rb +173 -0
  271. data/spec/limelight/stage_spec.rb +202 -0
  272. data/spec/limelight/string_spec.rb +38 -0
  273. data/spec/limelight/studio_spec.rb +157 -0
  274. data/spec/limelight/styles_spec.rb +53 -0
  275. data/spec/limelight/templates/production_templater_spec.rb +66 -0
  276. data/spec/limelight/templates/scene_templater_spec.rb +51 -0
  277. data/spec/limelight/templates/templater_logger_spec.rb +41 -0
  278. data/spec/limelight/templates/templater_spec.rb +107 -0
  279. data/spec/limelight/theater_spec.rb +72 -0
  280. data/spec/limelight/util/downloader_spec.rb +92 -0
  281. data/spec/spec_helper.rb +70 -0
  282. metadata +335 -0
@@ -0,0 +1,10 @@
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.
3
+
4
+ # This file (props.rb) defines all the props that appear in a scene when loaded. It makes use of the
5
+ # PropBuilder DSL.
6
+ #
7
+ # For more information see: http://limelightwiki.8thlight.com/index.php/A_Cook%27s_Tour_of_Limelight#PropBuilder_DSL
8
+
9
+ root :text => "This production is forever incompatible with the current version of Limelight (for testing purposes)."
10
+ close_button :id => "close_button", :text => "Close this Scene", :on_mouse_clicked => "scene.stage.close"
@@ -0,0 +1,32 @@
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.
3
+
4
+ # This file, (styles.rb) inside a scene, should define any styles specific to the containing scene.
5
+ # It makes use of the StyleBuilder DSL.
6
+ #
7
+ # For more information see: http://limelightwiki.8thlight.com/index.php/A_Cook%27s_Tour_of_Limelight#Styling_with_styles.rb
8
+ # For a complete listing of style attributes see: http://limelightwiki.8thlight.com/index.php/Style_Attributes
9
+
10
+ default_scene {
11
+ background_color :black
12
+ horizontal_alignment :center
13
+ vertical_alignment :center
14
+ width "100%"
15
+ height "100%"
16
+ }
17
+
18
+ root {
19
+ text_color :white
20
+ font_size 18
21
+ }
22
+
23
+ close_button {
24
+ text_color :blue
25
+ border_color :blue
26
+ padding 5
27
+ border_width 1
28
+ hover {
29
+ text_color :white
30
+ border_color :white
31
+ }
32
+ }
@@ -0,0 +1,52 @@
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.
3
+
4
+ # This file (production.rb) is the first file loaded opening a production. It must define a module named 'Production'.
5
+ # The containing production will acquire all the behavior defined in this module.
6
+ # You may define serveral hooks and initialization steps here.
7
+
8
+ module Production
9
+
10
+ # # Define this method if you want the production name to be different from the default, directory name.
11
+ # def name
12
+ # return Incompatible Production
13
+ # end
14
+ #
15
+ # # Returns the minimum version of limelight required to run this production. Default: "0.0.0"
16
+ # # If the version of limelight used to open this production is less than the minimum,
17
+ # # an error will be displayed (starting with version 0.4.0).
18
+ # #
19
+ def minimum_limelight_version
20
+ return "99.99.99"
21
+ end
22
+ #
23
+ # # Hook #1. Called when the production is newly created, before any loading has been done.
24
+ # # This is a good place to require needed files and instantiate objects in the busines layer.
25
+ # def production_opening
26
+ # end
27
+ #
28
+ # # Hook #2. Called after internal gems have been loaded and stages have been instantiated, yet before
29
+ # # any scenes have been opened.
30
+ # def production_loaded
31
+ # end
32
+ #
33
+ # # Hook #3. Called when the production, and all the scenes, have fully opened.
34
+ # def production_opened
35
+ # end
36
+ #
37
+ # # The system will call this methods when it wishes to close the production, perhaps when the user quits the
38
+ # # application. By default the production will always return true. You may override this behavior by re-implenting
39
+ # # the methods here.
40
+ # def allow_close?
41
+ # return true
42
+ # end
43
+ #
44
+ # # Called when the production is about to be closed.
45
+ # def production_closing
46
+ # end
47
+ #
48
+ # # Called when the production is fully closed.
49
+ # def production_closed
50
+ # end
51
+
52
+ end
@@ -0,0 +1,16 @@
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.
3
+
4
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
5
+
6
+ describe "Default Scene" do
7
+
8
+ uses_scene "default_scene", :hidden => true
9
+
10
+ it "should have default text" do
11
+ scene.children.size.should == 1
12
+ root = scene.children[0]
13
+ root.text.should == "This is the Default Scene scene."
14
+ end
15
+
16
+ end
@@ -0,0 +1,8 @@
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.
3
+
4
+ require 'rubygems'
5
+ require 'spec'
6
+ require 'limelight/specs/spec_helper'
7
+
8
+ $PRODUCTION_PATH = File.expand_path(File.dirname(__FILE__) + "/../")
@@ -0,0 +1,20 @@
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.
3
+
4
+ # This file (stages.rb) is used to define the stages within your production.
5
+ #
6
+ # Below is an example statge configuration.
7
+ #
8
+ # stage "center_stage" do
9
+ # default_scene "main"
10
+ # title "Limelight Center Stage"
11
+ # location [0, 0]
12
+ # size [300, 800]
13
+ # end
14
+
15
+ stage "default" do
16
+ default_scene "default_scene"
17
+ title "Limelight"
18
+ location [200, 25]
19
+ size [800, 800]
20
+ end
@@ -0,0 +1,15 @@
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.
3
+
4
+ # This file, (styles.rb) in the root directory of the production, should define any styles that are used in multiple
5
+ # scenes. It makes use of the StyleBuilder DSL.
6
+ #
7
+ # For more information see: http://limelightwiki.8thlight.com/index.php/A_Cook%27s_Tour_of_Limelight#Styling_with_styles.rb
8
+ # For a complete listing of style attributes see: http://limelightwiki.8thlight.com/index.php/Style_Attributes
9
+
10
+ # An example style definition
11
+ #foo {
12
+ # width 100
13
+ # height 100
14
+ # background_color :blue
15
+ #}
@@ -0,0 +1,17 @@
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.
3
+
4
+ module Alerts
5
+
6
+ prop_reader :message_input
7
+
8
+ def open_alert
9
+ stage.alert(message_input.text)
10
+ end
11
+
12
+ def open_incompatible_production
13
+ production_path = File.join(path, "incompatible_production")
14
+ Thread.new { Limelight::Studio.open(production_path) }
15
+ end
16
+
17
+ end
@@ -0,0 +1,10 @@
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.
3
+
4
+ __install "header.rb"
5
+ arena do
6
+ label :text => "Alert Message:"
7
+ message_input :id => "message_input", :text => "Sample Message", :players => "text_area"
8
+ action :id => "alert_action", :text => "Open Alert", :on_mouse_clicked => "scene.open_alert"
9
+ action :id => "incompatible_version_action", :text => "Open Incompatible Production", :on_mouse_clicked => "scene.open_incompatible_production"
10
+ end
@@ -0,0 +1,46 @@
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.
3
+
4
+ # This file, (styles.rb) inside a scene, should define any styles specific to the containing scene.
5
+ # It makes use of the StyleBuilder DSL.
6
+ #
7
+ # For more information see: http://limelightwiki.8thlight.com/index.php/A_Cook%27s_Tour_of_Limelight#Styling_with_styles.rb
8
+ # For a complete listing of style attributes see: http://limelightwiki.8thlight.com/index.php/Style_Attributes
9
+
10
+ alerts {
11
+ background_color :black
12
+ horizontal_alignment :center
13
+ vertical_alignment :top
14
+ width "100%"
15
+ height "100%"
16
+ }
17
+
18
+ action {
19
+ width "100%"
20
+ height 100
21
+ margin 25
22
+ left_margin "30%"
23
+ right_margin "30%"
24
+ background_color :white
25
+ border_color :gray
26
+ border_width 2
27
+ rounded_corner_radius 10
28
+ horizontal_alignment :center
29
+ vertical_alignment :center
30
+ text_color :gray
31
+ font_size 20
32
+ hover {
33
+ secondary_background_color :blue
34
+ gradient :on
35
+ }
36
+
37
+ }
38
+
39
+ label {
40
+ text_color :white
41
+ right_padding 10
42
+ }
43
+
44
+ message_input {
45
+ width 300
46
+ }
@@ -0,0 +1,22 @@
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.
3
+
4
+ __ :name => "sandbox"
5
+ __install "header.rb"
6
+ arena :vertical_alignment => :center do
7
+ control_panel do
8
+ setting do
9
+ label :text => "Background Image Fill Strategy:"
10
+ input :players => "combo_box", :choices => %w{repeat repeat_x repeat_y static scale scale_x scale_y}, :on_value_changed => "scene.find('area').style.background_image_fill_strategy = text"
11
+ end
12
+ setting do
13
+ label :text => "Background Image X"
14
+ input :players => "combo_box", :choices => %w{0 5 25 125 625 left center right 10% 20% 50% 80% 90%}, :on_value_changed => "scene.find('area').style.background_image_x = text"
15
+ end
16
+ setting do
17
+ label :text => "Background Image Y"
18
+ input :players => "combo_box", :choices => %w{0 5 25 125 625 top center bottom 10% 20% 50% 80% 90%}, :on_value_changed => "scene.find('area').style.background_image_y = text"
19
+ end
20
+ end
21
+ image_area :id => "area", :text => "Area with Background Image"
22
+ end
@@ -0,0 +1,40 @@
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.
3
+
4
+ control_panel {
5
+ width "100%"
6
+ background_color :gray
7
+ secondary_background_color :dark_green
8
+ gradient_angle 270
9
+ gradient :on
10
+ horizontal_alignment :center
11
+ padding 10
12
+ bottom_margin 30
13
+ }
14
+
15
+ setting {
16
+ width 140
17
+ left_margin 20
18
+ }
19
+
20
+ label {
21
+ text_color :white
22
+ font_style "bold"
23
+ }
24
+
25
+ image_area {
26
+ width "80%"
27
+ height "80%"
28
+ alignment :center
29
+ border_width 1
30
+ border_color :black
31
+ background_image "images/space.png"
32
+ text_color :light_grey
33
+ font_size 30
34
+ }
35
+
36
+ logo {
37
+ border_width 1
38
+ }
39
+
40
+
@@ -0,0 +1,52 @@
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.
3
+
4
+ puts "Chromaton required"
5
+
6
+ module Chromaton
7
+
8
+ attr_accessor :clicks
9
+
10
+ def self.extended(extended_block)
11
+ puts "Chromaton extended"
12
+ extended_block.clicks = 0
13
+ extended_block.text = "Click Me!"
14
+ end
15
+
16
+ def mouse_clicked(e)
17
+ @clicks += 1
18
+ new_random_color
19
+ new_random_size
20
+ update_text
21
+ end
22
+
23
+ private
24
+
25
+ def new_random_color
26
+ r = rand(255)
27
+ g = rand(255)
28
+ b = rand(255)
29
+ @new_color = "##{as_2_digit_hex(r)}#{as_2_digit_hex(g)}#{as_2_digit_hex(b)}"
30
+ style.background_color = @new_color
31
+ end
32
+
33
+ def as_2_digit_hex(number)
34
+ value = sprintf("%x", number)
35
+ value << "0" if value.length == 1
36
+ return value;
37
+ end
38
+
39
+ def new_random_size
40
+ @size = rand(500) + 50
41
+ style.width = @size
42
+ style.height = @size
43
+ end
44
+
45
+ def update_text
46
+ new_text = "Clicks: #{@clicks}"
47
+ new_text << "\nColor: #{@new_color}"
48
+ new_text << "\nSize: #{@size}"
49
+ self.text = new_text
50
+ end
51
+
52
+ end
@@ -0,0 +1,8 @@
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.
3
+
4
+ __ :name => "sandbox"
5
+ __install "header.rb"
6
+ arena do
7
+ chromaton
8
+ end
@@ -0,0 +1,11 @@
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.
3
+
4
+ chromaton {
5
+ width 100
6
+ height 100
7
+ background_color :red
8
+ text_color :white
9
+ font_size 12
10
+ alignment :center
11
+ }
@@ -0,0 +1,108 @@
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.
3
+
4
+ module Floater
5
+
6
+ FRICTION = 0.1
7
+ MAX_DISTANCE = 85
8
+
9
+ attr_reader :sliding
10
+
11
+ def mouse_clicked(e)
12
+ puts "You caught " + text
13
+ end
14
+
15
+ def width
16
+ @width = style.width.to_i if @width.nil?
17
+ return @width
18
+ end
19
+
20
+ def x
21
+ @x = (style.x.to_i + width/2) if @x.nil?
22
+ return @x
23
+ end
24
+
25
+ def new_x=(value)
26
+ @x = value
27
+ @x = @min_x if @x < @min_x
28
+ @x = @max_x if @x > @max_x
29
+ style.x = (@x.to_i - width/2)
30
+ end
31
+
32
+ def y
33
+ @y = (style.y.to_i + width/2) if @y.nil?
34
+ return @y
35
+ end
36
+
37
+ def new_y=(value)
38
+ @y = value
39
+ @y = @min_y if @y < @min_y
40
+ @y = @max_y if @y > @max_y
41
+ style.y = (@y.to_i - width/2)
42
+ end
43
+
44
+ def center
45
+ return x, y
46
+ end
47
+
48
+ def get_away_from(source_x, source_y)
49
+ return if @sliding
50
+ d = distance(x, y, source_x, source_y)
51
+ return if d > MAX_DISTANCE
52
+ calculate_vector(source_x, source_y)
53
+
54
+ @sliding = true
55
+ @animation = animate(:updates_per_second => 30) do
56
+ begin
57
+ slide
58
+ rescue Exception => e
59
+ puts e
60
+ puts e.backtrace
61
+ @animation.stop
62
+ end
63
+ end
64
+ end
65
+
66
+ def calculate_vector(sx, sy)
67
+ dx = (x - sx)
68
+ dy = (y - sy)
69
+ abs_delta = (dx.abs + dy.abs).to_f
70
+ @x_coefficient = dx / abs_delta
71
+ @y_coefficient = dy / abs_delta
72
+ @velocity = 20
73
+ find_bounds if @max_x.nil?
74
+ end
75
+
76
+ def slide
77
+ if @velocity > 1
78
+ @x_coefficient *= -1 if(x <= @min_x || x >= @max_x)
79
+ @y_coefficient *= -1 if(y <= @min_y || y >= @max_y)
80
+ x2 = x + (@x_coefficient * @velocity)
81
+ y2 = y + (@y_coefficient * @velocity)
82
+ self.new_x = x2
83
+ self.new_y = y2
84
+ @velocity -= @velocity * FRICTION
85
+ else
86
+ @sliding = false
87
+
88
+ @animation.stop
89
+ end
90
+ end
91
+
92
+ def find_bounds
93
+ @min_x = width/2
94
+ @min_y = width/2
95
+ parent_width = parent.panel.width
96
+ parent_height = parent.panel.height
97
+ @max_x = parent_width - width/2
98
+ @max_y = parent_height - width/2
99
+ end
100
+
101
+ def distance(x1, y1, x2, y2)
102
+ dx = x1 - x2
103
+ dy = y1 - y2
104
+ d = Math.sqrt(dx*dx + dy*dy)
105
+ return d
106
+ end
107
+
108
+ end