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