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,344 @@
|
|
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/java_util'
|
5
|
+
require 'limelight/optionable'
|
6
|
+
require 'limelight/pen'
|
7
|
+
require 'limelight/paint_action'
|
8
|
+
require 'limelight/animation'
|
9
|
+
require 'limelight/util/hashes'
|
10
|
+
|
11
|
+
module Limelight
|
12
|
+
|
13
|
+
# Prop is the fundamental building block of a scene. A prop represents a rectangular area in the scene, of almost any dimension.
|
14
|
+
# It may have borders, backgrounds, margin, padding, and it may contain other props or text. However it is the props'
|
15
|
+
# Styles that determine their size and appearance.
|
16
|
+
#
|
17
|
+
# A Prop may have one parent and many children. Hence, when put together, they form a tree structure. The Scene is
|
18
|
+
# the root Prop of a tree.
|
19
|
+
#
|
20
|
+
class Prop
|
21
|
+
|
22
|
+
include Optionable
|
23
|
+
|
24
|
+
include Java::limelight.model.api.PropProxy
|
25
|
+
|
26
|
+
attr_reader :peer #:nodoc:
|
27
|
+
getters :loader #:nodoc:
|
28
|
+
|
29
|
+
alias :getPeer :peer
|
30
|
+
|
31
|
+
|
32
|
+
# When creating a Prop, an optional Hash is accepted. These are called initialization options.
|
33
|
+
# The key/value pairs in the initialization options will be used to
|
34
|
+
# set properties on the Prop, it Style, or included Player properties. These properties are not set
|
35
|
+
# until the prop is added to a Prop tree with a Scene.
|
36
|
+
#
|
37
|
+
def initialize(options={})
|
38
|
+
@peer = Java::limelight.ui.model.PropPanel.new(self)
|
39
|
+
@peer.add_options(Util::Hashes.for_java(options))
|
40
|
+
end
|
41
|
+
|
42
|
+
def id
|
43
|
+
@peer.id
|
44
|
+
end
|
45
|
+
|
46
|
+
def name
|
47
|
+
@peer.name
|
48
|
+
end
|
49
|
+
|
50
|
+
def players
|
51
|
+
@peer.players
|
52
|
+
end
|
53
|
+
|
54
|
+
def backstage
|
55
|
+
if @backstage == nil
|
56
|
+
@backstage = Util::Hashes.for_ruby(@peer.backstage)
|
57
|
+
end
|
58
|
+
@backstage
|
59
|
+
end
|
60
|
+
|
61
|
+
def style
|
62
|
+
@peer.style
|
63
|
+
end
|
64
|
+
|
65
|
+
def hover_style
|
66
|
+
@peer.hover_style
|
67
|
+
end
|
68
|
+
|
69
|
+
# Add a Prop as a child of this Prop.
|
70
|
+
#
|
71
|
+
def add(child)
|
72
|
+
# child.set_parent(self)
|
73
|
+
# @children << child
|
74
|
+
@peer.add(child.peer)
|
75
|
+
end
|
76
|
+
|
77
|
+
# Same as add. Returns self so adding may be chained.
|
78
|
+
#
|
79
|
+
# prop << child1 << child2 << child3
|
80
|
+
#
|
81
|
+
def <<(child)
|
82
|
+
add(child)
|
83
|
+
self
|
84
|
+
end
|
85
|
+
|
86
|
+
# Allows the adding of child Props using the PropBuilder DSL.
|
87
|
+
#
|
88
|
+
# prop.build do
|
89
|
+
# child1 do
|
90
|
+
# grand_child
|
91
|
+
# end
|
92
|
+
# child2
|
93
|
+
# end
|
94
|
+
#
|
95
|
+
def build(options = {}, & block)
|
96
|
+
require 'limelight/dsl/prop_builder'
|
97
|
+
builder = Limelight::DSL::PropBuilder.new(self)
|
98
|
+
builder.__install_instance_variables(options)
|
99
|
+
builder.__root_path__ = scene.path
|
100
|
+
builder.instance_eval(& block)
|
101
|
+
end
|
102
|
+
|
103
|
+
# Removes a child Prop. The child Prop will be parent-less after removal.
|
104
|
+
#
|
105
|
+
def remove(child)
|
106
|
+
# if children.delete(child)
|
107
|
+
# scene.unindex_prop(child) if scene
|
108
|
+
@peer.remove(child.peer)
|
109
|
+
# end
|
110
|
+
end
|
111
|
+
|
112
|
+
# Removes all child Props.
|
113
|
+
#
|
114
|
+
def remove_all
|
115
|
+
@peer.remove_all
|
116
|
+
# @children.each { |child| scene.unindex_prop(child) } if scene
|
117
|
+
# @children = []
|
118
|
+
end
|
119
|
+
|
120
|
+
# A hook to invoke behavior after a Prop is painted.
|
121
|
+
#
|
122
|
+
def after_painting(flag = true, & block)
|
123
|
+
if flag
|
124
|
+
@peer.after_paint_action = PaintAction.new(& block)
|
125
|
+
else
|
126
|
+
@peer.after_paint_action = nil
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
# Searches all descendant of the Prop (including itself) for Props with the specified name.
|
131
|
+
# Returns an Array of matching Props. Returns an empty Array if none are found.
|
132
|
+
#
|
133
|
+
def find_by_name(name)
|
134
|
+
@peer.find_by_name(name).map { |descendant| descendant.proxy }
|
135
|
+
end
|
136
|
+
|
137
|
+
# Sets the text of this Prop. If a prop is given text, it will become sterilized (it may not have any more children).
|
138
|
+
# Some Players such as text_box, will cause the text to appear in the text_box.
|
139
|
+
#
|
140
|
+
def text=(value)
|
141
|
+
@peer.text = value.to_s
|
142
|
+
end
|
143
|
+
|
144
|
+
# Returns the text of the Prop.
|
145
|
+
#
|
146
|
+
def text
|
147
|
+
@peer.text
|
148
|
+
end
|
149
|
+
|
150
|
+
def parent
|
151
|
+
@peer.parent.proxy if @peer.parent
|
152
|
+
end
|
153
|
+
|
154
|
+
def children
|
155
|
+
@peer.child_prop_panels.map { |child| child.proxy }
|
156
|
+
end
|
157
|
+
|
158
|
+
# Returns the scene to which this prop belongs to.
|
159
|
+
#
|
160
|
+
def scene
|
161
|
+
# return nil if @parent.nil?
|
162
|
+
# @scene = @parent.scene if @scene.nil?
|
163
|
+
@peer.root.proxy
|
164
|
+
end
|
165
|
+
|
166
|
+
# Returns the current Production this Prop lives in.
|
167
|
+
#
|
168
|
+
def production
|
169
|
+
scene.production
|
170
|
+
end
|
171
|
+
|
172
|
+
def to_s #:nodoc:
|
173
|
+
"#{self.class.name}[id: #{id}, name: #{name}]"
|
174
|
+
end
|
175
|
+
|
176
|
+
def inspect #:nodoc:
|
177
|
+
self.to_s
|
178
|
+
end
|
179
|
+
|
180
|
+
# Returns a Point representing the location of the Prop's top-left corner within its parent.
|
181
|
+
#
|
182
|
+
# location = prop.location
|
183
|
+
# location.x # the Prop's distance from the left of its parent's bounds
|
184
|
+
# location.y # the Prop's distance from the top of its parent's bounds
|
185
|
+
#
|
186
|
+
def location
|
187
|
+
peer.get_location
|
188
|
+
end
|
189
|
+
|
190
|
+
# Returns a Point representing the location of the Prop's top-left corner within its Stage (Window).
|
191
|
+
#
|
192
|
+
# location = prop.absolute_location
|
193
|
+
# location.x # the Prop's distance from the left edge of the stage
|
194
|
+
# location.y # the Prop's distance from the top edge of the stage
|
195
|
+
#
|
196
|
+
def absolute_location
|
197
|
+
peer.get_absolute_location.clone
|
198
|
+
end
|
199
|
+
|
200
|
+
# Returns a Box representing the relative bounds of the Prop. Is useful with using the Pen.
|
201
|
+
#
|
202
|
+
# bounds = prop.bounds
|
203
|
+
# bounds.x, box.y # represents the Prop's location within its parent Prop
|
204
|
+
# bounds.width, box.height # represents the Prop's dimensions
|
205
|
+
#
|
206
|
+
def bounds
|
207
|
+
peer.get_bounds.clone
|
208
|
+
end
|
209
|
+
|
210
|
+
# Returns a Box representing the bounds inside the borders of the prop.
|
211
|
+
#
|
212
|
+
# bounds = prop.bordered_bounds
|
213
|
+
# bounds.x # the distance between the left edge of the Prop and the inside edge of its left border
|
214
|
+
# bounds.y # the distance between the top edge of the Prop and the inside edge of its top border
|
215
|
+
# bounds.width # the distance between the inside edges of the left and right border
|
216
|
+
# bounds.height # the distance between the inside edges of the top and bottom borders
|
217
|
+
#
|
218
|
+
def bordered_bounds
|
219
|
+
peer.get_bordered_bounds.clone
|
220
|
+
end
|
221
|
+
|
222
|
+
# Returns a Box representing the bounds inside the padding of the prop.
|
223
|
+
#
|
224
|
+
# bounds = prop.padded_bounds
|
225
|
+
# bounds.x # the distance between the left edge of the Prop and the inside edge of its left padding
|
226
|
+
# bounds.y # the distance between the top edge of the Prop and the inside edge of its top padding
|
227
|
+
# bounds.width # the distance between the inside edges of the left and right padding
|
228
|
+
# bounds.height # the distance between the inside edges of the top and bottom padding
|
229
|
+
#
|
230
|
+
def padded_bounds
|
231
|
+
peer.get_padded_bounds.clone
|
232
|
+
end
|
233
|
+
|
234
|
+
# Returns a Pen object. Pen objects allow to you to draw directly on the screen, withing to bounds of this Prop.
|
235
|
+
#
|
236
|
+
def pen
|
237
|
+
Pen.new(peer.getGraphics)
|
238
|
+
end
|
239
|
+
|
240
|
+
# Initiate an animation loop. Options may include :name (string), :updates_per_second (int: defaults to 60)
|
241
|
+
# An Animation object is returned.
|
242
|
+
# The provided block will be invoked :updates_per_second times per second until the Animation is stopped.
|
243
|
+
#
|
244
|
+
# @animation = prop.animate(:updates_per_second => 20) do
|
245
|
+
# prop.style.border_width = (prop.style.top_border_width.to_i + 1).to_s
|
246
|
+
# @animation.stop if prop.style.top_border_width.to_i > 60
|
247
|
+
# end
|
248
|
+
#
|
249
|
+
# This above example will cause the Prop's border to grow until it is 60 pixels wide.
|
250
|
+
#
|
251
|
+
def animate(options={}, & block)
|
252
|
+
animation = Animation.new(self, block, options)
|
253
|
+
animation.start
|
254
|
+
animation
|
255
|
+
end
|
256
|
+
|
257
|
+
# Plays a sound on the computers audio output. The parameter is the filename of a .au sound file.
|
258
|
+
# This filename should relative to the root directory of the current Production, or an absolute path.
|
259
|
+
#
|
260
|
+
def play_sound(filename)
|
261
|
+
path = Java::limelight.Context.fs.path_to(scene.path, filename)
|
262
|
+
@peer.play_sound(path)
|
263
|
+
end
|
264
|
+
|
265
|
+
# Luanches the spcified URL using the OS's default handlers. For example, opening a URL in a browser:
|
266
|
+
#
|
267
|
+
# launch('http://www.google.com')
|
268
|
+
#
|
269
|
+
# To create a link prop add an accessor on the player (say url) and use that in the prop definition
|
270
|
+
# Ex:
|
271
|
+
#
|
272
|
+
# link :text => "I am a link", :url => "http://www.8thlight.com"
|
273
|
+
def launch(url)
|
274
|
+
Context.instance.os.launch(url)
|
275
|
+
end
|
276
|
+
|
277
|
+
# GUI Events ##########################################
|
278
|
+
|
279
|
+
def on_mouse_pressed(& action)
|
280
|
+
@peer.event_handler.add(Java::limelight.ui.events.panel.MousePressedEvent, action)
|
281
|
+
end
|
282
|
+
|
283
|
+
def on_mouse_released(& action)
|
284
|
+
@peer.event_handler.add(Java::limelight.ui.events.panel.MouseReleasedEvent, action)
|
285
|
+
end
|
286
|
+
|
287
|
+
def on_mouse_clicked(& action)
|
288
|
+
@peer.event_handler.add(Java::limelight.ui.events.panel.MouseClickedEvent, action)
|
289
|
+
end
|
290
|
+
|
291
|
+
def on_mouse_moved(& action)
|
292
|
+
@peer.event_handler.add(Java::limelight.ui.events.panel.MouseMovedEvent, action)
|
293
|
+
end
|
294
|
+
|
295
|
+
def on_mouse_dragged(& action)
|
296
|
+
@peer.event_handler.add(Java::limelight.ui.events.panel.MouseDraggedEvent, action)
|
297
|
+
end
|
298
|
+
|
299
|
+
def on_mouse_entered(& action)
|
300
|
+
@peer.event_handler.add(Java::limelight.ui.events.panel.MouseEnteredEvent, action)
|
301
|
+
end
|
302
|
+
|
303
|
+
def on_mouse_exited(& action)
|
304
|
+
@peer.event_handler.add(Java::limelight.ui.events.panel.MouseExitedEvent, action)
|
305
|
+
end
|
306
|
+
|
307
|
+
def on_mouse_wheel(& action)
|
308
|
+
@peer.event_handler.add(Java::limelight.ui.events.panel.MouseWheelEvent, action)
|
309
|
+
end
|
310
|
+
|
311
|
+
def on_key_pressed(& action)
|
312
|
+
@peer.event_handler.add(Java::limelight.ui.events.panel.KeyPressedEvent, action)
|
313
|
+
end
|
314
|
+
|
315
|
+
def on_key_released(& action)
|
316
|
+
@peer.event_handler.add(Java::limelight.ui.events.panel.KeyReleasedEvent, action)
|
317
|
+
end
|
318
|
+
|
319
|
+
def on_char_typed(& action)
|
320
|
+
@peer.event_handler.add(Java::limelight.ui.events.panel.CharTypedEvent, action)
|
321
|
+
end
|
322
|
+
|
323
|
+
def on_focus_gained(& action)
|
324
|
+
@peer.event_handler.add(Java::limelight.ui.events.panel.FocusGainedEvent, action)
|
325
|
+
end
|
326
|
+
|
327
|
+
def on_focus_lost(& action)
|
328
|
+
@peer.event_handler.add(Java::limelight.ui.events.panel.FocusLostEvent, action)
|
329
|
+
end
|
330
|
+
|
331
|
+
def on_button_pushed(& action)
|
332
|
+
@peer.event_handler.add(Java::limelight.ui.events.panel.ButtonPushedEvent, action)
|
333
|
+
end
|
334
|
+
|
335
|
+
def on_value_changed(& action)
|
336
|
+
@peer.event_handler.add(Java::limelight.ui.events.panel.ValueChangedEvent, action)
|
337
|
+
end
|
338
|
+
|
339
|
+
def on_illuminated(& action)
|
340
|
+
@peer.event_handler.add(Java::limelight.ui.events.panel.IlluminatedEvent, action)
|
341
|
+
end
|
342
|
+
|
343
|
+
end
|
344
|
+
end
|
@@ -0,0 +1,120 @@
|
|
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/java_util'
|
5
|
+
require 'limelight/prop'
|
6
|
+
require 'limelight/limelight_exception'
|
7
|
+
require 'limelight/player_recruiter'
|
8
|
+
|
9
|
+
module Limelight
|
10
|
+
|
11
|
+
# A Scene is a root Prop. Scenes may be loaded onto a Stage. In addition to being a Prop object, Scenes have a
|
12
|
+
# few extra attributes and behaviors.
|
13
|
+
#
|
14
|
+
class Scene < Prop
|
15
|
+
|
16
|
+
include Java::limelight.model.api.SceneProxy
|
17
|
+
|
18
|
+
attr_reader :player_recruiter
|
19
|
+
|
20
|
+
def initialize(options={})
|
21
|
+
@player_recruiter = options.delete(:player_recruiter) || PlayerRecruiter.new
|
22
|
+
@peer = Java::limelight.ui.model.ScenePanel.new(self, @player_recruiter)
|
23
|
+
@peer.add_options(Util::Hashes.for_java(options))
|
24
|
+
@fs = Java::limelight.Context.fs
|
25
|
+
end
|
26
|
+
|
27
|
+
def production=(value)
|
28
|
+
@peer.production = value.peer
|
29
|
+
end
|
30
|
+
|
31
|
+
def production
|
32
|
+
@peer.production.proxy
|
33
|
+
end
|
34
|
+
|
35
|
+
def button_groups
|
36
|
+
@peer.button_groups
|
37
|
+
end
|
38
|
+
|
39
|
+
def on_scene_opened(& action)
|
40
|
+
@peer.event_handler.add(Java::limelight.ui.events.panel.SceneOpenedEvent, action)
|
41
|
+
end
|
42
|
+
|
43
|
+
# Returns a hash of all the styles belonging to this scene
|
44
|
+
#
|
45
|
+
def styles
|
46
|
+
if @styles == nil
|
47
|
+
styles = @peer.styles
|
48
|
+
@styles = Util::Hashes.for_ruby(styles)
|
49
|
+
end
|
50
|
+
@styles
|
51
|
+
end
|
52
|
+
|
53
|
+
# Returns self. A Scene is it's own scene.
|
54
|
+
#
|
55
|
+
def scene
|
56
|
+
self
|
57
|
+
end
|
58
|
+
|
59
|
+
# Returns the stage that contains the scene
|
60
|
+
#
|
61
|
+
def stage
|
62
|
+
@peer.stage.proxy
|
63
|
+
end
|
64
|
+
|
65
|
+
# Returns the path to the root directory of the Scene
|
66
|
+
#
|
67
|
+
def path
|
68
|
+
@peer.path
|
69
|
+
end
|
70
|
+
|
71
|
+
# Returns the path to the Scene's props file
|
72
|
+
#
|
73
|
+
def props_file
|
74
|
+
@fs.path_to(path, "props.rb")
|
75
|
+
end
|
76
|
+
|
77
|
+
# Returns the path to the Scene's props file
|
78
|
+
#
|
79
|
+
def styles_file
|
80
|
+
@fs.path_to(path, "styles.rb")
|
81
|
+
end
|
82
|
+
|
83
|
+
# Creates the menu bar for the Scene
|
84
|
+
#
|
85
|
+
def menu_bar
|
86
|
+
DSL::MenuBar.build(self) do
|
87
|
+
menu("File") do
|
88
|
+
item("Open", :open_chosen_production)
|
89
|
+
item("Refresh", :reload)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
# Creates a new Producer to open the specified Production.
|
95
|
+
#
|
96
|
+
def open_production(production_path)
|
97
|
+
Thread.new { Context.instance.studio.open(production_path) }
|
98
|
+
end
|
99
|
+
|
100
|
+
# Opens the specified Scene on the Stage currently occupied by this Scene.
|
101
|
+
# TODO It doesn't quite make sense that a scene loads other scene. It has to replace itself?
|
102
|
+
#
|
103
|
+
def load(scene_name)
|
104
|
+
production.open_scene(scene_name)
|
105
|
+
end
|
106
|
+
|
107
|
+
# Returns a Prop with the specified id. Returns nil id the Prop doesn't exist in the Scene.
|
108
|
+
#
|
109
|
+
def find_by_id(id)
|
110
|
+
peer_result = @peer.find(id.to_s)
|
111
|
+
peer_result.nil? ? nil : peer_result.proxy
|
112
|
+
end
|
113
|
+
alias :find :find_by_id
|
114
|
+
|
115
|
+
def visible?
|
116
|
+
@peer.visible?
|
117
|
+
end
|
118
|
+
|
119
|
+
end
|
120
|
+
end
|