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.
- data/LICENSE +19 -0
- data/bin/limelight +7 -3
- data/ruby/lib/limelight-rb.jar +0 -0
- data/ruby/lib/limelight.jar +0 -0
- data/ruby/lib/limelight.rb +48 -0
- data/{lib → ruby/lib}/limelight/animation.rb +3 -3
- data/ruby/lib/limelight/builtin/players.rb +21 -0
- data/ruby/lib/limelight/builtin/players/button.rb +7 -0
- data/ruby/lib/limelight/builtin/players/check_box.rb +24 -0
- data/ruby/lib/limelight/builtin/players/combo_box.rb +50 -0
- data/ruby/lib/limelight/builtin/players/curtains.rb +12 -0
- data/ruby/lib/limelight/builtin/players/image.rb +38 -0
- data/ruby/lib/limelight/builtin/players/radio_button.rb +36 -0
- data/ruby/lib/limelight/builtin/players/stage_mover.rb +19 -0
- data/ruby/lib/limelight/builtin/players/stage_sizer.rb +23 -0
- data/ruby/lib/limelight/builtin/players/text_area.rb +10 -0
- data/ruby/lib/limelight/builtin/players/text_box.rb +10 -0
- data/{lib → ruby/lib}/limelight/dsl/build_exception.rb +2 -2
- data/{lib → ruby/lib}/limelight/dsl/menu_bar.rb +3 -3
- data/{lib → ruby/lib}/limelight/dsl/prop_builder.rb +25 -16
- data/{lib → ruby/lib}/limelight/dsl/stage_builder.rb +4 -4
- data/{lib → ruby/lib}/limelight/dsl/styles_builder.rb +14 -18
- data/{lib → ruby/lib}/limelight/file_chooser.rb +10 -10
- data/{lib → ruby/lib}/limelight/file_filter.rb +6 -6
- data/ruby/lib/limelight/java_couplings.rb +70 -0
- data/{lib → ruby/lib}/limelight/java_util.rb +6 -6
- data/{lib → ruby/lib}/limelight/limelight_exception.rb +3 -3
- data/ruby/lib/limelight/limelight_init.rb +24 -0
- data/ruby/lib/limelight/main.rb +15 -0
- data/ruby/lib/limelight/mouse.rb +76 -0
- data/ruby/lib/limelight/optionable.rb +42 -0
- data/{lib → ruby/lib}/limelight/paint_action.rb +8 -8
- data/{lib → ruby/lib}/limelight/pen.rb +7 -7
- data/ruby/lib/limelight/player.rb +148 -0
- data/ruby/lib/limelight/player_recruiter.rb +54 -0
- data/ruby/lib/limelight/production.rb +257 -0
- data/ruby/lib/limelight/prop.rb +344 -0
- data/ruby/lib/limelight/scene.rb +120 -0
- data/ruby/lib/limelight/specs/spec_helper.rb +191 -0
- data/ruby/lib/limelight/stage.rb +268 -0
- data/ruby/lib/limelight/string.rb +32 -0
- data/{lib → ruby/lib}/limelight/studio.rb +4 -3
- data/ruby/lib/limelight/style.rb +294 -0
- data/ruby/lib/limelight/templates/sources/features/step_definitions/limelight_steps.rb.template +47 -0
- data/ruby/lib/limelight/templates/sources/features/support/env.rb.template +35 -0
- data/{lib → ruby/lib}/limelight/templates/sources/freezing/limelight_init.rb.template +0 -0
- data/{lib → ruby/lib}/limelight/templates/sources/production/production.rb.template +2 -2
- data/{lib → ruby/lib}/limelight/templates/sources/production/spec/spec_helper.rb.template +0 -0
- data/{lib → ruby/lib}/limelight/templates/sources/production/stages.rb.template +0 -0
- data/{lib → ruby/lib}/limelight/templates/sources/production/styles.rb.template +0 -0
- data/ruby/lib/limelight/templates/sources/project/Rakefile.template +15 -0
- data/ruby/lib/limelight/templates/sources/project/spec_helper.rb.template +12 -0
- data/{lib → ruby/lib}/limelight/templates/sources/scene/props.rb.template +0 -0
- data/{lib → ruby/lib}/limelight/templates/sources/scene/styles.rb.template +0 -0
- data/{lib → ruby/lib}/limelight/templates/sources/scene_spec/scene_spec.rb.template +0 -0
- data/ruby/lib/limelight/theater.rb +76 -0
- data/{lib → ruby/lib}/limelight/util.rb +6 -25
- data/ruby/lib/limelight/util/hashes.rb +39 -0
- data/ruby/lib/limelight/util/map_hash.rb +191 -0
- data/ruby/lib/limelight/util/string_hash.rb +64 -0
- metadata +97 -390
- data/bin/icons/icon.ico +0 -0
- data/bin/icons/icon_48.gif +0 -0
- data/bin/icons/limelight.icns +0 -0
- data/bin/ll +0 -10
- data/bin/ll.bat +0 -5
- data/lib/init.rb +0 -12
- data/lib/limelight.jar +0 -0
- data/lib/limelight/builtin/players.rb +0 -16
- data/lib/limelight/builtin/players/button.rb +0 -39
- data/lib/limelight/builtin/players/check_box.rb +0 -50
- data/lib/limelight/builtin/players/combo_box.rb +0 -89
- data/lib/limelight/builtin/players/combo_box_popup_list.rb +0 -19
- data/lib/limelight/builtin/players/combo_box_popup_list_item.rb +0 -21
- data/lib/limelight/builtin/players/curtains.rb +0 -23
- data/lib/limelight/builtin/players/image.rb +0 -54
- data/lib/limelight/builtin/players/password_box.rb +0 -34
- data/lib/limelight/builtin/players/radio_button.rb +0 -65
- data/lib/limelight/builtin/players/stage_mover.rb +0 -31
- data/lib/limelight/builtin/players/stage_sizer.rb +0 -34
- data/lib/limelight/builtin/players/text_area.rb +0 -34
- data/lib/limelight/builtin/players/text_box.rb +0 -34
- data/lib/limelight/builtin/styles.rb +0 -35
- data/lib/limelight/builtin/utilities_production/alert/players/alert.rb +0 -14
- data/lib/limelight/builtin/utilities_production/alert/props.rb +0 -8
- data/lib/limelight/builtin/utilities_production/alert/styles.rb +0 -14
- data/lib/limelight/builtin/utilities_production/incompatible_version/props.rb +0 -20
- data/lib/limelight/builtin/utilities_production/incompatible_version/styles.rb +0 -12
- data/lib/limelight/builtin/utilities_production/production.rb +0 -66
- data/lib/limelight/builtin/utilities_production/stages.rb +0 -12
- data/lib/limelight/builtin/utilities_production/styles.rb +0 -53
- data/lib/limelight/button_group_cache.rb +0 -11
- data/lib/limelight/casting_director.rb +0 -112
- data/lib/limelight/commands/command.rb +0 -168
- data/lib/limelight/commands/create_command.rb +0 -98
- data/lib/limelight/commands/freeze_command.rb +0 -131
- data/lib/limelight/commands/help_command.rb +0 -61
- data/lib/limelight/commands/open_command.rb +0 -60
- data/lib/limelight/commands/pack_command.rb +0 -53
- data/lib/limelight/commands/unpack_command.rb +0 -44
- data/lib/limelight/commands/version_command.rb +0 -31
- data/lib/limelight/data.rb +0 -37
- data/lib/limelight/file_loader.rb +0 -46
- data/lib/limelight/gems.rb +0 -51
- data/lib/limelight/java_couplings.rb +0 -67
- data/lib/limelight/limelight_init.rb +0 -12
- data/lib/limelight/main.rb +0 -105
- data/lib/limelight/producer.rb +0 -233
- data/lib/limelight/production.rb +0 -203
- data/lib/limelight/prop.rb +0 -367
- data/lib/limelight/scene.rb +0 -151
- data/lib/limelight/specs/spec_helper.rb +0 -136
- data/lib/limelight/specs/test_scene_opener.rb +0 -63
- data/lib/limelight/stage.rb +0 -353
- data/lib/limelight/string.rb +0 -38
- data/lib/limelight/styles/style.rb +0 -288
- data/lib/limelight/templates/production_templater.rb +0 -49
- data/lib/limelight/templates/scene_templater.rb +0 -47
- data/lib/limelight/templates/sources/production/init.rb.template +0 -15
- data/lib/limelight/templates/templater.rb +0 -131
- data/lib/limelight/templates/templater_logger.rb +0 -39
- data/lib/limelight/theater.rb +0 -109
- data/lib/limelight/util/downloader.rb +0 -115
- data/lib/limelight/version.rb +0 -20
- data/productions/examples/8thlight.com/about/about.txt +0 -24
- data/productions/examples/8thlight.com/about/props.rb +0 -11
- data/productions/examples/8thlight.com/about/styles.rb +0 -2
- data/productions/examples/8thlight.com/footer.rb +0 -6
- data/productions/examples/8thlight.com/home/props.rb +0 -28
- data/productions/examples/8thlight.com/home/styles.rb +0 -2
- data/productions/examples/8thlight.com/images/anvil.jpg +0 -0
- data/productions/examples/8thlight.com/images/bg.jpg +0 -0
- data/productions/examples/8thlight.com/images/botticelli.jpg +0 -0
- data/productions/examples/8thlight.com/images/button_bg.jpg +0 -0
- data/productions/examples/8thlight.com/images/canvas_bg.jpg +0 -0
- data/productions/examples/8thlight.com/images/footer_bg.jpg +0 -0
- data/productions/examples/8thlight.com/images/header.jpg +0 -0
- data/productions/examples/8thlight.com/images/moses.jpg +0 -0
- data/productions/examples/8thlight.com/images/statemachine_thumbnail.png +0 -0
- data/productions/examples/8thlight.com/images/thumbnail_book.jpg +0 -0
- data/productions/examples/8thlight.com/menu.rb +0 -11
- data/productions/examples/8thlight.com/services/props.rb +0 -11
- data/productions/examples/8thlight.com/services/services.txt +0 -8
- data/productions/examples/8thlight.com/services/styles.rb +0 -2
- data/productions/examples/8thlight.com/stages.rb +0 -8
- data/productions/examples/8thlight.com/styles.rb +0 -210
- data/productions/examples/calculator/players/button.rb +0 -24
- data/productions/examples/calculator/players/calculator.rb +0 -15
- data/productions/examples/calculator/players/calculator_model.rb +0 -13
- data/productions/examples/calculator/props.rb +0 -23
- data/productions/examples/calculator/styles.rb +0 -36
- data/productions/examples/langstons_ant/html_javascript/ant.css +0 -39
- data/productions/examples/langstons_ant/html_javascript/ant.html +0 -22
- data/productions/examples/langstons_ant/html_javascript/ant.js +0 -23
- data/productions/examples/langstons_ant/init.rb +0 -4
- data/productions/examples/langstons_ant/players/ant.rb +0 -103
- data/productions/examples/langstons_ant/players/log.rb +0 -29
- data/productions/examples/langstons_ant/players/start_stop_button.rb +0 -37
- data/productions/examples/langstons_ant/players/world.rb +0 -35
- data/productions/examples/langstons_ant/props.rb +0 -22
- data/productions/examples/langstons_ant/styles.rb +0 -104
- data/productions/examples/sandbox/alerts/incompatible_production/default_scene/props.rb +0 -10
- data/productions/examples/sandbox/alerts/incompatible_production/default_scene/styles.rb +0 -32
- data/productions/examples/sandbox/alerts/incompatible_production/production.rb +0 -52
- data/productions/examples/sandbox/alerts/incompatible_production/spec/default_scene/default_scene_spec.rb +0 -16
- data/productions/examples/sandbox/alerts/incompatible_production/spec/spec_helper.rb +0 -8
- data/productions/examples/sandbox/alerts/incompatible_production/stages.rb +0 -20
- data/productions/examples/sandbox/alerts/incompatible_production/styles.rb +0 -15
- data/productions/examples/sandbox/alerts/players/alerts.rb +0 -17
- data/productions/examples/sandbox/alerts/props.rb +0 -10
- data/productions/examples/sandbox/alerts/styles.rb +0 -46
- data/productions/examples/sandbox/background_images/props.rb +0 -22
- data/productions/examples/sandbox/background_images/styles.rb +0 -40
- data/productions/examples/sandbox/click_me/players/chromaton.rb +0 -52
- data/productions/examples/sandbox/click_me/props.rb +0 -8
- data/productions/examples/sandbox/click_me/styles.rb +0 -11
- data/productions/examples/sandbox/floaters/players/floater.rb +0 -108
- data/productions/examples/sandbox/floaters/players/surface.rb +0 -21
- data/productions/examples/sandbox/floaters/props.rb +0 -10
- data/productions/examples/sandbox/floaters/styles.rb +0 -24
- data/productions/examples/sandbox/frameing/players/sandbox.rb +0 -17
- data/productions/examples/sandbox/frameing/props.rb +0 -35
- data/productions/examples/sandbox/frameing/styles.rb +0 -45
- data/productions/examples/sandbox/gradients/players/spinner.rb +0 -20
- data/productions/examples/sandbox/gradients/players/teaser.rb +0 -19
- data/productions/examples/sandbox/gradients/players/wave.rb +0 -19
- data/productions/examples/sandbox/gradients/players/waves.rb +0 -19
- data/productions/examples/sandbox/gradients/props.rb +0 -13
- data/productions/examples/sandbox/gradients/styles.rb +0 -47
- data/productions/examples/sandbox/header.rb +0 -22
- data/productions/examples/sandbox/homer/players/homer.rb +0 -24
- data/productions/examples/sandbox/homer/props.rb +0 -10
- data/productions/examples/sandbox/homer/styles.rb +0 -16
- data/productions/examples/sandbox/images/arch.jpg +0 -0
- data/productions/examples/sandbox/images/beach.jpg +0 -0
- data/productions/examples/sandbox/images/homer.jpg +0 -0
- data/productions/examples/sandbox/images/limelight_spotlight.jpg +0 -0
- data/productions/examples/sandbox/images/logo.png +0 -0
- data/productions/examples/sandbox/images/marilyn.jpg +0 -0
- data/productions/examples/sandbox/images/space.png +0 -0
- data/productions/examples/sandbox/images_scene/props.rb +0 -36
- data/productions/examples/sandbox/images_scene/styles.rb +0 -34
- data/productions/examples/sandbox/inputs/players/button_input.rb +0 -48
- data/productions/examples/sandbox/inputs/players/check_box_input.rb +0 -40
- data/productions/examples/sandbox/inputs/players/combo_box_input.rb +0 -41
- data/productions/examples/sandbox/inputs/players/radio_button_input.rb +0 -43
- data/productions/examples/sandbox/inputs/players/text_area_input.rb +0 -36
- data/productions/examples/sandbox/inputs/players/text_box_input.rb +0 -36
- data/productions/examples/sandbox/inputs/props.rb +0 -40
- data/productions/examples/sandbox/inputs/styles.rb +0 -39
- data/productions/examples/sandbox/kiosk/players/kiosk.rb +0 -39
- data/productions/examples/sandbox/kiosk/props.rb +0 -9
- data/productions/examples/sandbox/kiosk/styles.rb +0 -37
- data/productions/examples/sandbox/players/sandbox.rb +0 -11
- data/productions/examples/sandbox/rounded_corners/players/box.rb +0 -11
- data/productions/examples/sandbox/rounded_corners/props.rb +0 -22
- data/productions/examples/sandbox/rounded_corners/styles.rb +0 -17
- data/productions/examples/sandbox/scrolling/players/add_button.rb +0 -19
- data/productions/examples/sandbox/scrolling/players/cell.rb +0 -15
- data/productions/examples/sandbox/scrolling/props.rb +0 -45
- data/productions/examples/sandbox/scrolling/styles.rb +0 -33
- data/productions/examples/sandbox/sketching/players/sketchpad.rb +0 -46
- data/productions/examples/sandbox/sketching/props.rb +0 -25
- data/productions/examples/sandbox/sketching/styles.rb +0 -35
- data/productions/examples/sandbox/sounds/bird.au +0 -0
- data/productions/examples/sandbox/sounds/cat.au +0 -0
- data/productions/examples/sandbox/sounds/cow.au +0 -0
- data/productions/examples/sandbox/sounds/dog.au +0 -0
- data/productions/examples/sandbox/sounds/donkey.au +0 -0
- data/productions/examples/sandbox/sounds/duck.au +0 -0
- data/productions/examples/sandbox/sounds/players/clip.rb +0 -10
- data/productions/examples/sandbox/sounds/props.rb +0 -10
- data/productions/examples/sandbox/sounds/styles.rb +0 -17
- data/productions/examples/sandbox/spec/alerts/alerts_spec.rb +0 -16
- data/productions/examples/sandbox/stage_handles/players/sizer.rb +0 -38
- data/productions/examples/sandbox/stage_handles/props.rb +0 -17
- data/productions/examples/sandbox/stage_handles/styles.rb +0 -58
- data/productions/examples/sandbox/stages.rb +0 -8
- data/productions/examples/sandbox/styles.rb +0 -35
- data/productions/examples/sandbox/teaser/players/fader.rb +0 -58
- data/productions/examples/sandbox/teaser/props.rb +0 -14
- data/productions/examples/sandbox/teaser/styles.rb +0 -21
- data/productions/examples/tutorials/tutorial_1/players/sample.rb +0 -11
- data/productions/examples/tutorials/tutorial_1/props.rb +0 -9
- data/productions/examples/tutorials/tutorial_1/styles.rb +0 -25
- data/productions/stage_composer/init.rb +0 -10
- data/productions/stage_composer/inspector/players/inspector.rb +0 -80
- data/productions/stage_composer/inspector/players/prop_row.rb +0 -12
- data/productions/stage_composer/inspector/players/prop_tree.rb +0 -33
- data/productions/stage_composer/inspector/players/style_table.rb +0 -12
- data/productions/stage_composer/inspector/players/style_value.rb +0 -16
- data/productions/stage_composer/inspector/props.rb +0 -19
- data/productions/stage_composer/inspector/styles.rb +0 -71
- data/productions/stage_composer/lib/init.rb +0 -5
- data/productions/stage_composer/lib/limelight/composer/controller.rb +0 -51
- data/productions/stage_composer/lib/limelight/composer/lethargy.rb +0 -24
- data/productions/stage_composer/production.rb +0 -6
- data/productions/stage_composer/stages.rb +0 -15
- data/productions/startup/images/logo.png +0 -0
- data/productions/startup/images/splash.png +0 -0
- data/productions/startup/production.rb +0 -52
- data/productions/startup/spec/default_scene/default_scene_spec.rb +0 -16
- data/productions/startup/spec/spec_helper.rb +0 -8
- data/productions/startup/stages.rb +0 -9
- data/productions/startup/styles.rb +0 -15
- data/productions/startup/welcome/players/browse_button.rb +0 -10
- data/productions/startup/welcome/players/download_button.rb +0 -17
- data/productions/startup/welcome/players/sandbox_button.rb +0 -11
- data/productions/startup/welcome/props.rb +0 -23
- data/productions/startup/welcome/styles.rb +0 -103
- data/spec/limelight/builtin/players/button_spec.rb +0 -20
- data/spec/limelight/builtin/players/check_box_spec.rb +0 -29
- data/spec/limelight/builtin/players/combo_box_spec.rb +0 -29
- data/spec/limelight/builtin/players/image_spec.rb +0 -43
- data/spec/limelight/builtin/players/password_box_spec.rb +0 -27
- data/spec/limelight/builtin/players/radio_button_spec.rb +0 -64
- data/spec/limelight/builtin/players/stage_mover_spec.rb +0 -36
- data/spec/limelight/builtin/players/stage_sizer_spec.rb +0 -40
- data/spec/limelight/builtin/players/text_area_spec.rb +0 -27
- data/spec/limelight/builtin/players/text_box_spec.rb +0 -27
- data/spec/limelight/builtin/utilities_production/spec_helper.rb +0 -7
- data/spec/limelight/builtin/utilities_production/utilities_production_spec.rb +0 -147
- data/spec/limelight/casting_director_spec.rb +0 -164
- data/spec/limelight/commands/command_spec.rb +0 -26
- data/spec/limelight/commands/create_command_spec.rb +0 -108
- data/spec/limelight/commands/freeze_command_spec.rb +0 -143
- data/spec/limelight/commands/help_command_spec.rb +0 -42
- data/spec/limelight/commands/open_command_spec.rb +0 -53
- data/spec/limelight/commands/pack_command_spec.rb +0 -43
- data/spec/limelight/commands/unpack_command_spec.rb +0 -47
- data/spec/limelight/data_spec.rb +0 -36
- data/spec/limelight/dsl/prop_builder_spec.rb +0 -245
- data/spec/limelight/dsl/stage_builder_spec.rb +0 -90
- data/spec/limelight/dsl/styles_builder_spec.rb +0 -194
- data/spec/limelight/file_chooser_spec.rb +0 -64
- data/spec/limelight/file_filter_spec.rb +0 -29
- data/spec/limelight/file_loader_spec.rb +0 -28
- data/spec/limelight/gems_spec.rb +0 -92
- data/spec/limelight/java_util_spec.rb +0 -37
- data/spec/limelight/main_spec.rb +0 -40
- data/spec/limelight/paint_action_spec.rb +0 -30
- data/spec/limelight/pen_spec.rb +0 -62
- data/spec/limelight/producer_spec.rb +0 -246
- data/spec/limelight/production_spec.rb +0 -97
- data/spec/limelight/prop_spec.rb +0 -431
- data/spec/limelight/scene_spec.rb +0 -173
- data/spec/limelight/stage_spec.rb +0 -247
- data/spec/limelight/string_spec.rb +0 -38
- data/spec/limelight/templates/production_templater_spec.rb +0 -66
- data/spec/limelight/templates/scene_templater_spec.rb +0 -51
- data/spec/limelight/templates/templater_logger_spec.rb +0 -41
- data/spec/limelight/templates/templater_spec.rb +0 -107
- data/spec/limelight/theater_spec.rb +0 -120
- data/spec/limelight/util/downloader_spec.rb +0 -92
- data/spec/spec_helper.rb +0 -64
@@ -0,0 +1,191 @@
|
|
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 'rspec'
|
5
|
+
require File.expand_path(File.dirname(__FILE__) + "/../limelight_init")
|
6
|
+
require 'limelight/production'
|
7
|
+
require 'limelight/scene'
|
8
|
+
require 'limelight/string'
|
9
|
+
require 'limelight/mouse'
|
10
|
+
|
11
|
+
module Limelight
|
12
|
+
|
13
|
+
# Limelight comes with builtin assistance for testing your productions with rspec.
|
14
|
+
# See Limelight::Specs::SpecHelper
|
15
|
+
#
|
16
|
+
module Specs
|
17
|
+
|
18
|
+
class << self
|
19
|
+
attr_accessor :production
|
20
|
+
end
|
21
|
+
|
22
|
+
# Limelight comes with builtin assistance for testing your productions using RSpec. To get started, add the following
|
23
|
+
# to your describe block...
|
24
|
+
#
|
25
|
+
# uses_limelight :scene => "my_scene"
|
26
|
+
#
|
27
|
+
# This will add before(:each) blocks that will setup your production and load your scene before each test.
|
28
|
+
# It also provides some accessors to common objects like the scene and production. Afterwards, you can
|
29
|
+
# write tests that look like this.
|
30
|
+
#
|
31
|
+
# it "does something with the scene" do
|
32
|
+
# scene.name.should == "my_scene"
|
33
|
+
# scene.find("title").text.should == "This is the Title"
|
34
|
+
# production.theater["default_stage"].current_scene.should be(scene)
|
35
|
+
# end
|
36
|
+
#
|
37
|
+
# There are several other options you can supply with 'uses_limelight':
|
38
|
+
#
|
39
|
+
# :hidden - (true or false) Defaults to true, but if you turn it off, the scene will pop open on your screen. This
|
40
|
+
# can be really nifty at times and really annoying at other time.
|
41
|
+
#
|
42
|
+
# :stage - The name of the stage you want the scene to be loaded on. The theater's default stage will be used by
|
43
|
+
# default.
|
44
|
+
#
|
45
|
+
# :scene_name - To be used instead of the :scene option. This will create an empty scene in your production with
|
46
|
+
# the specified name.
|
47
|
+
#
|
48
|
+
# :scene_path - To be used in conjunction with :scene_name. This will cause the empty scene to be loaded with
|
49
|
+
# the specified path. Styles and Players associated with the path will be applied to the created scene.
|
50
|
+
#
|
51
|
+
# The 'uses_limelight' methods also accepts block using the Limelight::DSL::PropBuilder DSL. This is convenient for building a
|
52
|
+
# simple prop structure sufficient to test the desired behavior. Here's an example:
|
53
|
+
#
|
54
|
+
# describe "my scene" do
|
55
|
+
# uses_limelight :scene_name => "some_name", :scene_path => "my_scene_path" do
|
56
|
+
# clicky :id => "clicky", :text => "click me", :on_mouse_clicked => "self.text = 'Hey! You clicked me!'"
|
57
|
+
# end
|
58
|
+
#
|
59
|
+
# it "should change text on clicky when clicked" do
|
60
|
+
# scene.find("clicky").mouse_clicked(nil)
|
61
|
+
# clicky.text.should == "Hey! You clicked me!"
|
62
|
+
# end
|
63
|
+
# end
|
64
|
+
#
|
65
|
+
module SpecHelper
|
66
|
+
|
67
|
+
def production
|
68
|
+
if Limelight::Specs.production.nil?
|
69
|
+
# if $with_ui
|
70
|
+
Java::limelight.Boot.boot
|
71
|
+
# else
|
72
|
+
# Limelight::Main.initializeTestContext
|
73
|
+
# end
|
74
|
+
raise "$PRODUCTION_PATH undefined. Make sure you specify the location of the production in $PRODUCTION_PATH." unless defined?($PRODUCTION_PATH)
|
75
|
+
raise "Could not find production: '#{$PRODUCTION_PATH}'. Check $PRODUCTION_PATH." unless File.exists?($PRODUCTION_PATH)
|
76
|
+
Limelight::Specs.production = Limelight::Production.new(Java::limelight.ruby.RubyProduction.new($PRODUCTION_PATH))
|
77
|
+
Limelight::Specs.production.peer.illuminateProduction
|
78
|
+
Limelight::Specs.production.peer.loadProduction
|
79
|
+
end
|
80
|
+
Limelight::Specs.production
|
81
|
+
end
|
82
|
+
|
83
|
+
def mouse
|
84
|
+
@mouse ||= Limelight::Mouse.new
|
85
|
+
@mouse
|
86
|
+
end
|
87
|
+
|
88
|
+
def scene
|
89
|
+
if @scene.nil?
|
90
|
+
_setup_stage
|
91
|
+
if @ll_scene_id
|
92
|
+
@scene = production.open_scene(@ll_scene_id.to_s, :stage => @stage.name)
|
93
|
+
elsif @ll_scene_path
|
94
|
+
_setup_scene
|
95
|
+
end
|
96
|
+
end
|
97
|
+
@scene
|
98
|
+
end
|
99
|
+
|
100
|
+
private #############################################
|
101
|
+
|
102
|
+
def _init_ll_options(options)
|
103
|
+
@ll_scene_id = options[:scene]
|
104
|
+
@ll_scene_name = options[:scene_name]
|
105
|
+
@ll_scene_path = options[:scene_path]
|
106
|
+
@ll_stage_id = options[:stage]
|
107
|
+
@ll_hidden = options[:hidden]
|
108
|
+
@ll_player_names = options[:with_players]
|
109
|
+
_configure_player_helpers()
|
110
|
+
end
|
111
|
+
|
112
|
+
def _configure_player_helpers
|
113
|
+
if @ll_player_names
|
114
|
+
@ll_player_names = @ll_player_names.is_a?(Array) ? @ll_player_names : [@ll_player_names]
|
115
|
+
@ll_player_names = @ll_player_names.map { |n| n.to_s }
|
116
|
+
@ll_player_names.each do |player_name|
|
117
|
+
eval "def #{player_name}; scene.find('#{player_name}'); end;"
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
def _create_player_helpers
|
123
|
+
player_names = @ll_player_names
|
124
|
+
Limelight.build_props(@scene, :build_loader => production.root) do
|
125
|
+
player_names.each do |player_name|
|
126
|
+
__test_prop :name =>player_name, :players => "#{player_name}", :id => "#{player_name}"
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
def _setup_scene
|
132
|
+
path = production.scene_directory(@ll_scene_path)
|
133
|
+
@scene = Scene.new(:production => production, :path => path, :name => @ll_scene_name)
|
134
|
+
_create_player_helpers
|
135
|
+
Limelight.build_props(@scene, :build_loader => production.root, &@prop_block) if @prop_block
|
136
|
+
|
137
|
+
production.load_styles(@scene, @production.styles)
|
138
|
+
@stage.scene = @scene
|
139
|
+
@stage.open
|
140
|
+
end
|
141
|
+
|
142
|
+
def _setup_stage
|
143
|
+
if @ll_stage_id
|
144
|
+
@stage = production.theater[@ll_stage_id]
|
145
|
+
raise "No such stage: '#{@ll_stage_id}'" unless @stage
|
146
|
+
else
|
147
|
+
@stage = production.theater.default_stage
|
148
|
+
end
|
149
|
+
|
150
|
+
Java::limelight.ui.model.StageFrame.hiddenMode = @ll_hidden || true
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
RSpec.configure do |config|
|
157
|
+
config.after(:suite) do
|
158
|
+
Java::limelight.Context.instance.killThreads
|
159
|
+
#if Limelight::Specs.production
|
160
|
+
# Limelight::Specs.production.theater.stages.each do |stage|
|
161
|
+
# # MDM - We do this in a round-about way to reduce the chance of using stubbed or mocked methods.
|
162
|
+
# frame = stage.instance_variable_get("@frame")
|
163
|
+
# frame.close if frame
|
164
|
+
# end
|
165
|
+
#end
|
166
|
+
Java::java.awt.Window.getWindows.each do |window|
|
167
|
+
window.dispose
|
168
|
+
end
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
module RSpec
|
173
|
+
module Core
|
174
|
+
class ExampleGroup
|
175
|
+
|
176
|
+
def self.uses_limelight(options = {}, &prop_block)
|
177
|
+
include Limelight::Specs::SpecHelper
|
178
|
+
|
179
|
+
before(:all) do
|
180
|
+
_init_ll_options(options)
|
181
|
+
@prop_block = prop_block
|
182
|
+
end
|
183
|
+
|
184
|
+
before(:each) do
|
185
|
+
@player = @scene = nil
|
186
|
+
end
|
187
|
+
end
|
188
|
+
|
189
|
+
end
|
190
|
+
end
|
191
|
+
end
|
@@ -0,0 +1,268 @@
|
|
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/dsl/menu_bar'
|
5
|
+
require 'limelight/optionable'
|
6
|
+
require 'limelight/file_chooser'
|
7
|
+
require 'limelight/util'
|
8
|
+
require 'limelight/util/hashes'
|
9
|
+
|
10
|
+
module Limelight
|
11
|
+
|
12
|
+
# In the metephorical sense, a Stage is a platform which may hold a scene. In a more, to-the-point sence, a Stage
|
13
|
+
# represents a window on the computer screen. The Stage objects within a Production are configured by the StagesBuilder.
|
14
|
+
# By default a Production will have one Stage. A Stage may open any number of Scenes but it may only have one current
|
15
|
+
# scene loaded at a time.
|
16
|
+
#
|
17
|
+
class Stage
|
18
|
+
|
19
|
+
include Java::limelight.model.api.StageProxy
|
20
|
+
include Optionable
|
21
|
+
|
22
|
+
attr_reader :peer
|
23
|
+
|
24
|
+
# To create a new Stage, it be given a Theater to which it belongs, and the name is optional. If no name is provided
|
25
|
+
# it will default to 'default'. A stage name must be unique, so it is recommended you provide a name.
|
26
|
+
#
|
27
|
+
def initialize(theater, name, options = {})
|
28
|
+
@theater = theater
|
29
|
+
@peer = Java::limelight.ui.model.FramedStage.new(name, self)
|
30
|
+
@peer.apply_options(Util::Hashes.for_java(options))
|
31
|
+
end
|
32
|
+
|
33
|
+
# Returns the name of the scene that will be loaded on this stage by default
|
34
|
+
#
|
35
|
+
def default_scene_name
|
36
|
+
return @peer.default_scene_name
|
37
|
+
end
|
38
|
+
|
39
|
+
# Specifies the name of the scene that will be loaded on this stage by default
|
40
|
+
#
|
41
|
+
def default_scene_name=(value)
|
42
|
+
@peer.default_scene_name = value
|
43
|
+
end
|
44
|
+
|
45
|
+
# Returns the name of the stage
|
46
|
+
#
|
47
|
+
def name
|
48
|
+
return @peer.name
|
49
|
+
end
|
50
|
+
|
51
|
+
# Returns the title that is displayed at the top of the window that this stage represents.
|
52
|
+
#
|
53
|
+
def title
|
54
|
+
return @peer.title
|
55
|
+
end
|
56
|
+
|
57
|
+
# Sets the title that is displayed at the top of the window that this stage represents.
|
58
|
+
#
|
59
|
+
def title=(value)
|
60
|
+
@peer.title = value
|
61
|
+
end
|
62
|
+
|
63
|
+
# Returns the width and height styles of the Stage.
|
64
|
+
#
|
65
|
+
# width, height = stage.size
|
66
|
+
#
|
67
|
+
def size
|
68
|
+
return @peer.width_style.to_s, @peer.height_style.to_s
|
69
|
+
end
|
70
|
+
|
71
|
+
# Sets the width and height styles of the Stage.
|
72
|
+
#
|
73
|
+
# state.size = [100, 200]
|
74
|
+
# state.size = ["50%", "100%"] # consuming 50% of the width and 100% of the height of the screen
|
75
|
+
#
|
76
|
+
def size=(*values)
|
77
|
+
values = values[0] if values.size == 1 && values[0].is_a?(Array)
|
78
|
+
@peer.set_size_styles(values[0], values[1])
|
79
|
+
end
|
80
|
+
|
81
|
+
# The location styles of the Stage.
|
82
|
+
#
|
83
|
+
# x, y = stage.location
|
84
|
+
#
|
85
|
+
def location
|
86
|
+
return @peer.getXLocationStyle.to_s, @peer.getYLocationStyle.to_s
|
87
|
+
end
|
88
|
+
|
89
|
+
# Sets the location styles of the Stage.
|
90
|
+
#
|
91
|
+
# stage.location = [500, 200]
|
92
|
+
#
|
93
|
+
def location=(*values)
|
94
|
+
values = values[0] if values.size == 1 && values[0].is_a?(Array)
|
95
|
+
@peer.set_location_styles(values[0], values[1])
|
96
|
+
end
|
97
|
+
|
98
|
+
# Turns fullscreen mode on and off. In fullscreen mode, the stage will fill the entire screen and appear on top
|
99
|
+
# of all other windows.
|
100
|
+
#
|
101
|
+
# stage.fullscreen = true
|
102
|
+
#
|
103
|
+
def fullscreen=(on)
|
104
|
+
@peer.setFullScreen(on)
|
105
|
+
end
|
106
|
+
|
107
|
+
# Returns true if the stage is in fullscreen mode.
|
108
|
+
#
|
109
|
+
def fullscreen?
|
110
|
+
return @peer.isFullScreen()
|
111
|
+
end
|
112
|
+
|
113
|
+
# Turns kiosk mode for this stage on and off. When on, the stage will:
|
114
|
+
# * be fullscreen
|
115
|
+
# * not be frames
|
116
|
+
# * disable OS key commands
|
117
|
+
# * OS X: Cmd-Tab, Cmd-Alt-Esc, etc...
|
118
|
+
# * Windows: Alt-Tab, Ctrl-Esc, etc... (Ctrl-Alt-Del must be disabled through a registry entry)
|
119
|
+
#
|
120
|
+
# stage.kiosk = true
|
121
|
+
#
|
122
|
+
def kiosk=(on)
|
123
|
+
@peer.setKiosk(on)
|
124
|
+
end
|
125
|
+
|
126
|
+
# Return true if the stage is in kiosk mode.
|
127
|
+
#
|
128
|
+
def kiosk?
|
129
|
+
return @peer.isKiosk()
|
130
|
+
end
|
131
|
+
|
132
|
+
|
133
|
+
# Hides the stage so that it is not visible on the screen without destroying it.
|
134
|
+
#
|
135
|
+
def hide
|
136
|
+
@peer.hide
|
137
|
+
end
|
138
|
+
|
139
|
+
# Shows the stage after having hiding it.
|
140
|
+
#
|
141
|
+
def show
|
142
|
+
@peer.show
|
143
|
+
end
|
144
|
+
|
145
|
+
# Returns true if the stage is visible on the screen.
|
146
|
+
#
|
147
|
+
def visible?
|
148
|
+
return @peer.visible
|
149
|
+
end
|
150
|
+
|
151
|
+
# Sets the background color of the stage
|
152
|
+
#
|
153
|
+
def background_color=(value)
|
154
|
+
@peer.background_color = value.to_s
|
155
|
+
end
|
156
|
+
|
157
|
+
# Returns the background color of the stage in the format #RRGGBB(AA)
|
158
|
+
#
|
159
|
+
def background_color
|
160
|
+
return @peer.background_color
|
161
|
+
end
|
162
|
+
|
163
|
+
# When true, the stage will be frame with the operating system's standard window frame including close, minimize,
|
164
|
+
# and maximize buttons
|
165
|
+
#
|
166
|
+
def framed=(value)
|
167
|
+
@peer.framed = value
|
168
|
+
end
|
169
|
+
|
170
|
+
# Return true if the stage is framed.
|
171
|
+
#
|
172
|
+
def framed?
|
173
|
+
return @peer.framed?
|
174
|
+
end
|
175
|
+
|
176
|
+
# When true, the stage will remain on top of all other windows.
|
177
|
+
#
|
178
|
+
def always_on_top=(value)
|
179
|
+
@peer.always_on_top = value
|
180
|
+
end
|
181
|
+
|
182
|
+
# Return true if the stage has been set to always be on top.
|
183
|
+
#
|
184
|
+
def always_on_top?
|
185
|
+
return @peer.always_on_top
|
186
|
+
end
|
187
|
+
|
188
|
+
# Sets the vitality of the stage. Limelight will not exit while vital frames remain visible.
|
189
|
+
#
|
190
|
+
def vital=(value)
|
191
|
+
@peer.vital = value
|
192
|
+
end
|
193
|
+
|
194
|
+
# Returns true if this is a vital stage. Limelight will not exit while vital frames remain visible.
|
195
|
+
#
|
196
|
+
def vital?
|
197
|
+
return @peer.vital?
|
198
|
+
end
|
199
|
+
|
200
|
+
# Loads the provided Scene.
|
201
|
+
#
|
202
|
+
# See load_scene
|
203
|
+
#
|
204
|
+
def scene=(scene)
|
205
|
+
@peer.scene = scene.peer
|
206
|
+
end
|
207
|
+
|
208
|
+
# Returns the scene currently open on the stage
|
209
|
+
#
|
210
|
+
def scene
|
211
|
+
return @peer.scene.proxy if @peer.scene
|
212
|
+
end
|
213
|
+
|
214
|
+
# Returns the theater that the stage belongs to.
|
215
|
+
#
|
216
|
+
def theater
|
217
|
+
return @peer.theater.proxy
|
218
|
+
end
|
219
|
+
|
220
|
+
# Opens the stage. Opened stages are visible on the screen.
|
221
|
+
#
|
222
|
+
def open
|
223
|
+
@peer.open
|
224
|
+
end
|
225
|
+
|
226
|
+
# Closes the Stage. It's window will no longer be displayed on the screen.
|
227
|
+
#
|
228
|
+
def close
|
229
|
+
@peer.close
|
230
|
+
end
|
231
|
+
|
232
|
+
# Pops up a simple modal dialog with the provided message.
|
233
|
+
#
|
234
|
+
def alert(message)
|
235
|
+
Thread.new do
|
236
|
+
begin
|
237
|
+
Context.instance.studio.utilities_production.alert(message)
|
238
|
+
rescue StandardError => e
|
239
|
+
puts "Error on alert: #{e}"
|
240
|
+
end
|
241
|
+
end
|
242
|
+
end
|
243
|
+
|
244
|
+
# Called when the user or system would like to close the stage. The stage will return true, allowing it to be
|
245
|
+
# closed, unless the current_scene defines the allow_close? method in which case the decision it left up to the
|
246
|
+
# current_scene.
|
247
|
+
#
|
248
|
+
def should_allow_close
|
249
|
+
return @peer.should_all_close
|
250
|
+
end
|
251
|
+
|
252
|
+
# returns true if the stage has been closed. Closed stages may not be reopened.
|
253
|
+
#
|
254
|
+
def closed?
|
255
|
+
return @peer.closed?
|
256
|
+
end
|
257
|
+
|
258
|
+
def should_remain_hidden #:nodoc:
|
259
|
+
return @peer.should_remain_hidden
|
260
|
+
end
|
261
|
+
|
262
|
+
def should_remain_hidden=(value) #:nodoc:
|
263
|
+
@peer.should_remain_hidden = value
|
264
|
+
end
|
265
|
+
end
|
266
|
+
|
267
|
+
end
|
268
|
+
|