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
data/lib/limelight/scene.rb
DELETED
@@ -1,151 +0,0 @@
|
|
1
|
-
#- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
|
2
|
-
#- Limelight and all included source files are distributed under terms of the GNU LGPL.
|
3
|
-
|
4
|
-
require 'limelight/java_util'
|
5
|
-
require 'limelight/prop'
|
6
|
-
require 'limelight/button_group_cache'
|
7
|
-
require 'limelight/limelight_exception'
|
8
|
-
require 'limelight/file_loader'
|
9
|
-
|
10
|
-
|
11
|
-
module Limelight
|
12
|
-
|
13
|
-
# A Scene is a root Prop. Scenes may be loaded onto a Stage. In addition to being a Prop object, Scenes have a
|
14
|
-
# few extra attributes and behaviors.
|
15
|
-
#
|
16
|
-
class Scene < Prop
|
17
|
-
include UI::Api::Scene
|
18
|
-
|
19
|
-
attr_reader :button_groups, :casting_director, :cast
|
20
|
-
attr_accessor :stage, :visible, :production, :styles
|
21
|
-
getters :stage, :loader, :styles
|
22
|
-
setters :stage
|
23
|
-
event :scene_opened
|
24
|
-
|
25
|
-
alias :visible? :visible
|
26
|
-
|
27
|
-
def initialize(options={})
|
28
|
-
path = options.delete(:path) || ""
|
29
|
-
@root = FileLoader.for_root(path)
|
30
|
-
super(options)
|
31
|
-
@button_groups = ButtonGroupCache.new
|
32
|
-
@prop_index = {}
|
33
|
-
@cast = Module.new
|
34
|
-
# illuminate
|
35
|
-
end
|
36
|
-
|
37
|
-
# Returns self. A Scene is it's own scene.
|
38
|
-
#
|
39
|
-
def scene
|
40
|
-
return self
|
41
|
-
end
|
42
|
-
|
43
|
-
# Returns the path to the root directory of the Scene
|
44
|
-
#
|
45
|
-
def path
|
46
|
-
return @root.root
|
47
|
-
end
|
48
|
-
|
49
|
-
# Returns the path to the Scene's props file
|
50
|
-
#
|
51
|
-
def props_file
|
52
|
-
return @root.path_to("props.rb")
|
53
|
-
end
|
54
|
-
|
55
|
-
# Returns the path to the Scene's props file
|
56
|
-
#
|
57
|
-
def styles_file
|
58
|
-
return @root.path_to("styles.rb")
|
59
|
-
end
|
60
|
-
|
61
|
-
# def add_options(options) #:nodoc:
|
62
|
-
# @options = options
|
63
|
-
# illuminate
|
64
|
-
# end
|
65
|
-
|
66
|
-
# Creates the menu bar for the Scene
|
67
|
-
#
|
68
|
-
def menu_bar
|
69
|
-
return DSL::MenuBar.build(self) do
|
70
|
-
menu("File") do
|
71
|
-
item("Open", :open_chosen_production)
|
72
|
-
item("Refresh", :reload)
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
# Opens a FileChooser for a new Production. Loads the chosen Production.
|
78
|
-
#
|
79
|
-
def open_chosen_production
|
80
|
-
options = { :title => "Open New Limelight Production", :description => "Limelight Production", :directory => @directory }
|
81
|
-
chosen_file = stage.choose_file(options) { |file| Util.is_limelight_scene?(file) || Util.is_limelight_production?(file) }
|
82
|
-
if chosen_file
|
83
|
-
@directory = File.dirname(chosen_file)
|
84
|
-
open_production(chosen_file)
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
# Creates a new Producer to open the specified Production.
|
89
|
-
#
|
90
|
-
def open_production(production_path)
|
91
|
-
Thread.new { Context.instance.studio.open(production_path) }
|
92
|
-
end
|
93
|
-
|
94
|
-
# Opens the specified Scene on the Stage currently occupied by this Scene.
|
95
|
-
# TODO It doesn't quite make sense that a scene loads other scene. It has to replace itself?
|
96
|
-
#
|
97
|
-
def load(scene_name)
|
98
|
-
@production.producer.open_scene(scene_name, @stage)
|
99
|
-
end
|
100
|
-
|
101
|
-
# Add the Prop to the index. Provides fast lookup by id.
|
102
|
-
#
|
103
|
-
def index_prop(prop)
|
104
|
-
return if prop.id.nil? || prop.id.empty?
|
105
|
-
indexee = @prop_index[prop.id]
|
106
|
-
if indexee.nil?
|
107
|
-
@prop_index[prop.id] = prop
|
108
|
-
else
|
109
|
-
raise LimelightException.new("Duplicate id: #{prop.id}") if indexee != prop
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
|
-
# Removed the Prop from the index.
|
114
|
-
#
|
115
|
-
def unindex_prop(prop)
|
116
|
-
unindex_child_props(prop)
|
117
|
-
@prop_index.delete(prop.id) if prop.id
|
118
|
-
end
|
119
|
-
|
120
|
-
# Returns a Prop with the specified id. Returns nil id the Prop doesn't exist in the Scene.
|
121
|
-
#
|
122
|
-
def find(id)
|
123
|
-
return @prop_index[id.to_s]
|
124
|
-
end
|
125
|
-
|
126
|
-
def illuminate #:nodoc:
|
127
|
-
@styles = @options.delete(:styles_hash) || @styles || {}
|
128
|
-
@casting_director = @options.delete(:casting_director) if @options.has_key?(:casting_director)
|
129
|
-
@path = @options.delete(:path) if @options.has_key?(:path)
|
130
|
-
@production = @options.delete(:production) if @options.has_key?(:production)
|
131
|
-
super
|
132
|
-
end
|
133
|
-
|
134
|
-
private ###############################################
|
135
|
-
|
136
|
-
def unindex_child_props(prop)
|
137
|
-
prop.children.each do |child|
|
138
|
-
if child.children.empty?
|
139
|
-
@prop_index.delete(child.id)
|
140
|
-
else
|
141
|
-
unindex_prop(child)
|
142
|
-
end
|
143
|
-
end
|
144
|
-
end
|
145
|
-
|
146
|
-
def reload
|
147
|
-
load(File.basename(path))
|
148
|
-
end
|
149
|
-
|
150
|
-
end
|
151
|
-
end
|
@@ -1,136 +0,0 @@
|
|
1
|
-
#- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
|
2
|
-
#- Limelight and all included source files are distributed under terms of the GNU LGPL.
|
3
|
-
|
4
|
-
require 'spec'
|
5
|
-
require File.expand_path(File.dirname(__FILE__) + "/../../init")
|
6
|
-
require 'limelight/scene'
|
7
|
-
require 'limelight/producer'
|
8
|
-
require 'limelight/string'
|
9
|
-
require 'limelight/specs/test_scene_opener'
|
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 :producer
|
20
|
-
end
|
21
|
-
|
22
|
-
# Limelight comes with builtin assistance for testing your productions with 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 "should do 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
|
-
def scene
|
67
|
-
if !@scene
|
68
|
-
@scene = TestSceneOpener.new(producer, @ll_spec_options, @prop_block).open_scene
|
69
|
-
end
|
70
|
-
return @scene
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
module Spec #:nodoc:
|
77
|
-
module Example
|
78
|
-
class ExampleGroup
|
79
|
-
|
80
|
-
# Deprecated
|
81
|
-
#
|
82
|
-
def self.uses_scene(scene_name, options = {})
|
83
|
-
uses_limelight({:scene => scene_name}.merge(options))
|
84
|
-
end
|
85
|
-
|
86
|
-
def self.uses_limelight(options = {}, &prop_block)
|
87
|
-
include Limelight::Specs::SpecHelper
|
88
|
-
|
89
|
-
before(:each) do
|
90
|
-
@ll_spec_options = options
|
91
|
-
@prop_block = prop_block
|
92
|
-
@player = @scene = nil
|
93
|
-
create_accessor_for(@ll_spec_options[:with_player]) if @ll_spec_options[:with_player]
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
after(:suite) do
|
98
|
-
unless Limelight::Specs.producer.nil?
|
99
|
-
Limelight::Specs.producer.theater.stages.each do |stage|
|
100
|
-
# MDM - We do this in a round-about way to reduce the chance of using stubbed or mocked methods.
|
101
|
-
frame = stage.instance_variable_get("@frame")
|
102
|
-
frame.close if frame
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
def producer
|
108
|
-
if Limelight::Specs.producer.nil?
|
109
|
-
if $with_ui
|
110
|
-
Limelight::Main.initializeContext
|
111
|
-
else
|
112
|
-
Limelight::Main.initializeTestContext
|
113
|
-
end
|
114
|
-
raise "$PRODUCTION_PATH undefined. Make sure you specify the location of the production in $PRODUCTION_PATH." unless defined?($PRODUCTION_PATH)
|
115
|
-
raise "Could not find production: '#{$PRODUCTION_PATH}'. Check $PRODUCTION_PATH." unless File.exists?($PRODUCTION_PATH)
|
116
|
-
Limelight::Specs.producer = Limelight::Producer.new($PRODUCTION_PATH)
|
117
|
-
Limelight::Specs.producer.load
|
118
|
-
end
|
119
|
-
return Limelight::Specs.producer
|
120
|
-
end
|
121
|
-
|
122
|
-
def production
|
123
|
-
return producer.production
|
124
|
-
end
|
125
|
-
|
126
|
-
def create_accessor_for(player_name)
|
127
|
-
accessor = <<-EOF
|
128
|
-
def #{player_name}
|
129
|
-
return scene.find('#{player_name}')
|
130
|
-
end
|
131
|
-
EOF
|
132
|
-
eval(accessor)
|
133
|
-
end
|
134
|
-
end
|
135
|
-
end
|
136
|
-
end
|
@@ -1,63 +0,0 @@
|
|
1
|
-
#- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
|
2
|
-
#- Limelight and all included source files are distributed under terms of the GNU LGPL.
|
3
|
-
|
4
|
-
module Limelight
|
5
|
-
module Specs
|
6
|
-
module SpecHelper
|
7
|
-
|
8
|
-
class TestSceneOpener #:nodoc:
|
9
|
-
def initialize(producer, ll_spec_options, prop_block)
|
10
|
-
@producer = producer
|
11
|
-
@prop_block = prop_block
|
12
|
-
@production = producer.production
|
13
|
-
@ll_spec_options = ll_spec_options
|
14
|
-
end
|
15
|
-
|
16
|
-
def create_player_helper
|
17
|
-
player_name = @ll_spec_options[:with_player]
|
18
|
-
Limelight.build_props(@scene, :build_loader => @production.root) do
|
19
|
-
__test_prop({:name =>player_name, :players => "#{player_name}", :id => "#{player_name}"})
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def setup_player_spec
|
24
|
-
path = @production.scene_directory(@ll_spec_options[:scene_path])
|
25
|
-
@scene = Scene.new(:production => @production, :casting_director => @producer.casting_director, :path => path, :name => @ll_spec_options[:scene_name])
|
26
|
-
|
27
|
-
if @prop_block
|
28
|
-
Limelight.build_props(@scene, :build_loader => @production.root, &@prop_block)
|
29
|
-
elsif @ll_spec_options[:with_player]
|
30
|
-
create_player_helper
|
31
|
-
end
|
32
|
-
|
33
|
-
styles = @producer.load_styles(@scene)
|
34
|
-
@scene.styles = @producer.load_styles(@scene)
|
35
|
-
@stage.open(@scene)
|
36
|
-
end
|
37
|
-
|
38
|
-
def setup_stage
|
39
|
-
if @ll_spec_options[:stage]
|
40
|
-
@stage = @producer.theater[@ll_spec_options[:stage]]
|
41
|
-
raise "No such stage: '#{@ll_spec_options[:stage]}'" unless @stage
|
42
|
-
else
|
43
|
-
@stage = @producer.theater.default_stage
|
44
|
-
end
|
45
|
-
|
46
|
-
@stage.should_remain_hidden = @ll_spec_options[:hidden] || true
|
47
|
-
end
|
48
|
-
|
49
|
-
def open_scene
|
50
|
-
setup_stage
|
51
|
-
|
52
|
-
if @ll_spec_options[:scene]
|
53
|
-
@scene = @producer.open_scene(@ll_spec_options[:scene].to_s, @stage)
|
54
|
-
elsif @ll_spec_options[:scene_path]
|
55
|
-
setup_player_spec
|
56
|
-
end
|
57
|
-
|
58
|
-
return @scene
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
data/lib/limelight/stage.rb
DELETED
@@ -1,353 +0,0 @@
|
|
1
|
-
#- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
|
2
|
-
#- Limelight and all included source files are distributed under terms of the GNU LGPL.
|
3
|
-
|
4
|
-
#require 'limelight/dsl/menu_bar'
|
5
|
-
require 'limelight/file_chooser'
|
6
|
-
require 'limelight/util'
|
7
|
-
|
8
|
-
module Limelight
|
9
|
-
|
10
|
-
# In the metephorical sense, a Stage is a platform which may hold a scene. In a more, to-the-point sence, a Stage
|
11
|
-
# represents a window on the computer screen. The Stage objects within a Production are configured by the StagesBuilder.
|
12
|
-
# By default a Production will have one Stage. A Stage may open any number of Scenes but it may only have one current
|
13
|
-
# scene loaded at a time.
|
14
|
-
#
|
15
|
-
class Stage
|
16
|
-
attr_accessor :default_scene
|
17
|
-
attr_reader :frame, :current_scene, :name, :theater
|
18
|
-
|
19
|
-
attr_accessor :should_remain_hidden #:nodoc:
|
20
|
-
|
21
|
-
include UI::Api::Stage
|
22
|
-
|
23
|
-
# To create a new Stage, it be given a Theater to which it belongs, and the name is optional. If no name is provided
|
24
|
-
# it will default to 'default'. A stage name must be unique, so it is recommended you provide a name.
|
25
|
-
#
|
26
|
-
def initialize(theater, name, options = {})
|
27
|
-
@theater = theater
|
28
|
-
@name = name
|
29
|
-
build_frame
|
30
|
-
self.title = @name
|
31
|
-
apply_options(options)
|
32
|
-
end
|
33
|
-
|
34
|
-
# Returns the title that is displayed at the top of the window that this stage represents.
|
35
|
-
#
|
36
|
-
def title
|
37
|
-
return @frame.title
|
38
|
-
end
|
39
|
-
|
40
|
-
# Sets the title that is displayed at the top of the window that this stage represents.
|
41
|
-
#
|
42
|
-
def title=(value)
|
43
|
-
@frame.title = value
|
44
|
-
end
|
45
|
-
|
46
|
-
# Returns the width and height styles of the Stage.
|
47
|
-
#
|
48
|
-
# width, height = stage.size
|
49
|
-
#
|
50
|
-
def size
|
51
|
-
return @frame.width_style.to_s, @frame.height_style.to_s
|
52
|
-
end
|
53
|
-
|
54
|
-
# Sets the width and height styles of the Stage.
|
55
|
-
#
|
56
|
-
# state.size = [100, 200]
|
57
|
-
# state.size = ["50%", "100%"] # consuming 50% of the width and 100% of the height of the screen
|
58
|
-
#
|
59
|
-
def size=(*values)
|
60
|
-
values = values[0] if values.size == 1 && values[0].is_a?(Array)
|
61
|
-
@frame.set_size_styles(values[0], values[1])
|
62
|
-
end
|
63
|
-
|
64
|
-
# The location styles of the Stage.
|
65
|
-
#
|
66
|
-
# x, y = stage.location
|
67
|
-
#
|
68
|
-
def location
|
69
|
-
return @frame.getXLocationStyle.to_s, @frame.getYLocationStyle.to_s
|
70
|
-
end
|
71
|
-
|
72
|
-
# Sets the location styles of the Stage.
|
73
|
-
#
|
74
|
-
# stage.location = [500, 200]
|
75
|
-
#
|
76
|
-
def location=(*values)
|
77
|
-
values = values[0] if values.size == 1 && values[0].is_a?(Array)
|
78
|
-
@frame.set_location_styles(values[0], values[1])
|
79
|
-
end
|
80
|
-
|
81
|
-
# Turns fullscreen mode on and off. In fullscreen mode, the stage will fill the entire screen and appear on top
|
82
|
-
# of all other windows.
|
83
|
-
#
|
84
|
-
# stage.fullscreen = true
|
85
|
-
#
|
86
|
-
|
87
|
-
def fullscreen=(on)
|
88
|
-
@frame.setFullScreen(on)
|
89
|
-
end
|
90
|
-
|
91
|
-
# Returns true if the stage is in fullscreen mode.
|
92
|
-
#
|
93
|
-
def fullscreen?
|
94
|
-
return @frame.isFullScreen()
|
95
|
-
end
|
96
|
-
|
97
|
-
# Turns kiosk mode for this stage on and off. When on, the stage will:
|
98
|
-
# * be fullscreen
|
99
|
-
# * not be frames
|
100
|
-
# * disable OS key commands
|
101
|
-
# * OS X: Cmd-Tab, Cmd-Alt-Esc, etc...
|
102
|
-
# * Windows: Alt-Tab, Ctrl-Esc, etc... (Ctrl-Alt-Del must be disabled through a registry entry)
|
103
|
-
#
|
104
|
-
# stage.kiosk = true
|
105
|
-
#
|
106
|
-
def kiosk=(on)
|
107
|
-
@frame.setKiosk(on)
|
108
|
-
end
|
109
|
-
|
110
|
-
# Return true if the stage is in kiosk mode.
|
111
|
-
#
|
112
|
-
def kiosk?
|
113
|
-
return @frame.isKiosk()
|
114
|
-
end
|
115
|
-
|
116
|
-
|
117
|
-
# Hides the stage so that it is not visible on the screen without destroying it.
|
118
|
-
#
|
119
|
-
def hide
|
120
|
-
@frame.visible = false
|
121
|
-
end
|
122
|
-
|
123
|
-
# Shows the stage after having hiding it.
|
124
|
-
#
|
125
|
-
def show
|
126
|
-
@frame.visible = true unless @should_remain_hidden
|
127
|
-
end
|
128
|
-
|
129
|
-
# Returns true if the stage is visible on the screen.
|
130
|
-
#
|
131
|
-
def visible?
|
132
|
-
return @frame.visible
|
133
|
-
end
|
134
|
-
|
135
|
-
# Sets the background color of the stage
|
136
|
-
#
|
137
|
-
def background_color=(value)
|
138
|
-
@frame.background_color = value.to_s
|
139
|
-
end
|
140
|
-
|
141
|
-
# Returns the background color of the stage in the format #RRGGBB(AA)
|
142
|
-
#
|
143
|
-
def background_color
|
144
|
-
return @frame.background_color
|
145
|
-
end
|
146
|
-
|
147
|
-
# When true, the stage will be frame with the operating system's standard window frame including close, minimize,
|
148
|
-
# and maximize buttons
|
149
|
-
#
|
150
|
-
def framed=(value)
|
151
|
-
@frame.setUndecorated(!value)
|
152
|
-
end
|
153
|
-
|
154
|
-
# Return true if the stage is framed.
|
155
|
-
#
|
156
|
-
def framed?
|
157
|
-
return !@frame.isUndecorated()
|
158
|
-
end
|
159
|
-
|
160
|
-
# When true, the stage will remain on top of all other windows.
|
161
|
-
#
|
162
|
-
def always_on_top=(value)
|
163
|
-
@frame.always_on_top = value
|
164
|
-
end
|
165
|
-
|
166
|
-
# Return true if the stage has been set to always be on top.
|
167
|
-
#
|
168
|
-
def always_on_top?
|
169
|
-
return @frame.always_on_top
|
170
|
-
end
|
171
|
-
|
172
|
-
# Sets the vitality of the stage. Limelight will not exit while vital frames remain visible.
|
173
|
-
#
|
174
|
-
def vital=(value)
|
175
|
-
@frame.vital = value
|
176
|
-
end
|
177
|
-
|
178
|
-
# Returns true if this is a vital stage. Limelight will not exit while vital frames remain visible.
|
179
|
-
#
|
180
|
-
def vital?
|
181
|
-
return @frame.vital?
|
182
|
-
end
|
183
|
-
|
184
|
-
# Opens the Stage and loads the provided Scene.
|
185
|
-
#
|
186
|
-
# See load_scene
|
187
|
-
#
|
188
|
-
def open(scene)
|
189
|
-
@current_scene.visible = false if @current_scene
|
190
|
-
scene.stage = self
|
191
|
-
scene.illuminate
|
192
|
-
load_scene(scene)
|
193
|
-
@frame.open unless @should_remain_hidden
|
194
|
-
scene.visible = true
|
195
|
-
scene.scene_opened(self)
|
196
|
-
end
|
197
|
-
|
198
|
-
# Closes the Stage. It's window will no longer be displayed on the screen.
|
199
|
-
#
|
200
|
-
def close
|
201
|
-
@frame.close
|
202
|
-
end
|
203
|
-
|
204
|
-
# Loads a scene on the Stage. If the Stage is currently hosting a Scene, the original Scene will be removed and
|
205
|
-
# the new Scene will replace it.
|
206
|
-
#
|
207
|
-
def load_scene(scene)
|
208
|
-
# @frame.setJMenuBar(scene.menu_bar)
|
209
|
-
@frame.load(scene.panel)
|
210
|
-
if (has_static_size?(scene.style))
|
211
|
-
@frame.set_size(scene.style.compiled_width.value + @frame.getHorizontalInsetWidth, scene.style.compiled_height.value + @frame.getVerticalInsetWidth)
|
212
|
-
end
|
213
|
-
@current_scene = scene
|
214
|
-
end
|
215
|
-
|
216
|
-
# Opens a file chooser window to select a file on the file system. Options may include:
|
217
|
-
# * :description => a string describing the desired file
|
218
|
-
# * :directory => starting directory
|
219
|
-
# * :title => title of the window
|
220
|
-
# * :directories_only => boolean, true if the user must select a directory
|
221
|
-
# * :files_only => boolean, true if the user must select a file
|
222
|
-
#
|
223
|
-
def choose_file(options={}, &block)
|
224
|
-
options[:parent] = @frame
|
225
|
-
chooser = FileChooser.new(options, &block)
|
226
|
-
return chooser.choose_file
|
227
|
-
end
|
228
|
-
|
229
|
-
# Pops up a simple modal dialog with the provided message.
|
230
|
-
#
|
231
|
-
def alert(message)
|
232
|
-
Thread.new do
|
233
|
-
begin
|
234
|
-
Context.instance.studio.utilities_production.alert(message)
|
235
|
-
rescue StandardError => e
|
236
|
-
puts "Error on alert: #{e}"
|
237
|
-
end
|
238
|
-
end
|
239
|
-
end
|
240
|
-
|
241
|
-
# Called when the user or system would like to close the stage. The stage will return true, allowing it to be
|
242
|
-
# closed, unless the current_scene defines the allow_close? method in which case the decision it left up to the
|
243
|
-
# current_scene.
|
244
|
-
#
|
245
|
-
def should_allow_close
|
246
|
-
return true if @current_scene.nil?
|
247
|
-
return true if !@current_scene.respond_to?(:allow_close?)
|
248
|
-
return @current_scene.allow_close?
|
249
|
-
end
|
250
|
-
|
251
|
-
def stub_current_scene(scene) #:nodoc:
|
252
|
-
@current_scene = scene
|
253
|
-
end
|
254
|
-
|
255
|
-
# returns true if the stage has been closed. Closed stages may not be reopened.
|
256
|
-
#
|
257
|
-
def closed?
|
258
|
-
return @frame.closed?
|
259
|
-
end
|
260
|
-
|
261
|
-
# Invoked when the stage is being closed.
|
262
|
-
# System hook that should NOT be called by you.
|
263
|
-
#
|
264
|
-
def closing(e)
|
265
|
-
end
|
266
|
-
|
267
|
-
# Invoked when the stage has been closed.
|
268
|
-
# System hook that should NOT be called by you.
|
269
|
-
# It's not garunteed that this hook will be called when Limelight is shutting down.
|
270
|
-
#
|
271
|
-
def closed(e)
|
272
|
-
@current_scene.visible = false if @current_scene
|
273
|
-
@current_scene = nil
|
274
|
-
@theater.stage_closed(self)
|
275
|
-
end
|
276
|
-
|
277
|
-
# Invoked when the stage has gained focus on the desktop. Only 1 stage my have focus at a time.
|
278
|
-
# System hook that should NOT be called by you.
|
279
|
-
#
|
280
|
-
def focus_gained(e)
|
281
|
-
@theater.stage_activated(self)
|
282
|
-
end
|
283
|
-
|
284
|
-
# Invoked when the stage has lost focus on the desktop. Only 1 stage my have focus at a time.
|
285
|
-
# System hook that should NOT be called by you.
|
286
|
-
#
|
287
|
-
def focus_lost(e)
|
288
|
-
end
|
289
|
-
|
290
|
-
# Invoked when the stage has been iconified. This occurs when the stage is no longer visible on the desktop
|
291
|
-
# and an icon for the stage has been added to the OS's taskbar or dock.
|
292
|
-
# System hook that should NOT be called by you.
|
293
|
-
#
|
294
|
-
def iconified(e)
|
295
|
-
end
|
296
|
-
|
297
|
-
# Invoked when the stage has been deiconified. This occurs when the icon for the stage has been removed from the
|
298
|
-
# taskbar or dock, and the stage is again visible on the desktop.
|
299
|
-
# System hook that should NOT be called by you.
|
300
|
-
#
|
301
|
-
def deiconified(e)
|
302
|
-
end
|
303
|
-
|
304
|
-
# Invoked when the stage has become the active stage on the desktop. Only 1 stage my be active at a time.
|
305
|
-
# System hook that should NOT be called by you.
|
306
|
-
#
|
307
|
-
def activated(e)
|
308
|
-
@theater.stage_activated(self)
|
309
|
-
end
|
310
|
-
|
311
|
-
# Invoked when the stage has lost status as the active stage. Only 1 stage my have focus at a time.
|
312
|
-
# System hook that should NOT be called by you.
|
313
|
-
#
|
314
|
-
def deactivated(e)
|
315
|
-
@theater.stage_deactivated(self)
|
316
|
-
end
|
317
|
-
|
318
|
-
protected #############################################
|
319
|
-
|
320
|
-
def new_frame
|
321
|
-
return UI::Model::Frame.new(self)
|
322
|
-
end
|
323
|
-
|
324
|
-
private ###############################################
|
325
|
-
|
326
|
-
def build_frame
|
327
|
-
@frame = new_frame
|
328
|
-
@frame.set_size(800, 800)
|
329
|
-
@frame.set_location(200, 25)
|
330
|
-
@frame.title = title
|
331
|
-
end
|
332
|
-
|
333
|
-
def has_static_size?(style)
|
334
|
-
return is_static?(style.get_width) && is_static?(style.get_height)
|
335
|
-
end
|
336
|
-
|
337
|
-
def is_static?(value)
|
338
|
-
return !(value.to_s.include?("%")) && !(value.to_s == "auto")
|
339
|
-
end
|
340
|
-
|
341
|
-
def apply_options(options)
|
342
|
-
options.each_pair do |key, value|
|
343
|
-
setter_sym = "#{key.to_s}=".to_sym
|
344
|
-
if self.respond_to?(setter_sym)
|
345
|
-
self.send(setter_sym, value)
|
346
|
-
end
|
347
|
-
end
|
348
|
-
end
|
349
|
-
|
350
|
-
end
|
351
|
-
|
352
|
-
end
|
353
|
-
|