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,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
|