limelight 0.5.5-java → 0.6.14-java
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
|