rubygoo 0.0.3

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.
@@ -0,0 +1,102 @@
1
+ require 'rubygems'
2
+ $: << './lib'
3
+ require 'rubygoo'
4
+
5
+ require 'gosu'
6
+ require 'rubygame'
7
+ include Gosu
8
+ include Rubygame
9
+
10
+ class GameWindow < Window
11
+ def initialize()
12
+ super(640, 480, false)
13
+ factory = AdapterFactory.new
14
+ @render_adapter = factory.renderer_for :gosu, self
15
+ app = create_gui(@render_adapter)
16
+ @app_adapter = factory.app_for :gosu, app, self
17
+ self.caption = "Gosu Tutorial Game"
18
+
19
+ end
20
+
21
+ def create_gui(renderer)
22
+ app = App.new :renderer => renderer
23
+
24
+ label = Label.new "click the button to set the time", :x=>20, :y=>30
25
+
26
+ button = Button.new "Click Me!", :x=>70, :y=>80, :x_pad=>20, :y_pad=>20
27
+ button.on :pressed do |*opts|
28
+ label.set_text(Time.now.to_s)
29
+ end
30
+
31
+ check = CheckBox.new :x=>370, :y=>70, :w=>20, :h=>20
32
+ check.on :checked do
33
+ label.set_text("CHECKED [#{check.checked?}]")
34
+ end
35
+
36
+ text_field = TextField.new "initial text", :x => 70, :y => 170
37
+
38
+ text_field.on_key K_RETURN, K_KP_ENTER do |evt|
39
+ puts "BOO-YAH"
40
+ end
41
+
42
+ modal_button = Button.new "Modal dialogs", :x=>270, :y=>280, :x_pad=>20, :y_pad=>20
43
+ modal_button.on :pressed do |*opts|
44
+ msg = "I AM MODAL"
45
+ # TODO make some of this stuff relative and/or make Dialog's
46
+ # constructor take a layout to use
47
+ modal = Dialog.new :modal => app, :x=>10, :y=>110, :w=>250, :h=>250
48
+
49
+ modal.add Label.new("Message Here", :x=>70, :y=>180, :x_pad=>20, :y_pad=>20)
50
+ ok_butt = Button.new("OK", :x=>90, :y=>280, :x_pad=>20, :y_pad=>20)
51
+ ok_butt.on :pressed do |*opts|
52
+ # TODO not sure about this yet
53
+ app.remove(modal)
54
+ end
55
+ modal.add ok_butt
56
+
57
+ modal.show
58
+ end
59
+
60
+ # implicit tab ordering based on order of addition, can
61
+ # specify if you want on widget creation
62
+
63
+ # can add many or one at a time
64
+ app.add text_field, label, button, modal_button
65
+ app.add check
66
+
67
+ # pulldown = Pulldown.new {:x=>70, :y=>80}
68
+ # pulldown.on :changed do |*opts|
69
+ # label.set_text(opts.first)
70
+ # end
71
+ #
72
+ # app.add pulldown
73
+ app
74
+ end
75
+
76
+ def update
77
+ @app_adapter.update Gosu::milliseconds
78
+ end
79
+
80
+ def draw
81
+ # possibly need to set something like GosuRenderer vs
82
+ # RubygameRenderer that each know how to draw a textbox in
83
+ # its own way?
84
+ @app_adapter.draw @render_adapter
85
+ end
86
+
87
+ # in gosu this captures mouse and keyboard events
88
+ def button_down(id)
89
+ @app_adapter.button_down id
90
+ end
91
+
92
+ def button_up(id)
93
+ @app_adapter.button_up id
94
+ end
95
+ end
96
+
97
+ if $0 == __FILE__
98
+
99
+ window = GameWindow.new
100
+ window.show
101
+
102
+ end
@@ -0,0 +1,102 @@
1
+ require 'rubygems'
2
+ $: << './lib'
3
+ require 'rubygoo'
4
+ require 'rubygame'
5
+ include Rubygame
6
+
7
+ def create_gui(renderer)
8
+ app = App.new :renderer => renderer
9
+
10
+ label = Label.new "click the button to set the time", :x=>20, :y=>30
11
+
12
+ button = Button.new "Click Me!", :x=>70, :y=>80, :x_pad=>20, :y_pad=>20
13
+ button.on :pressed do |*opts|
14
+ label.set_text(Time.now.to_s)
15
+ end
16
+
17
+ check = CheckBox.new :x=>370, :y=>70, :w=>20, :h=>20
18
+ check.on :checked do
19
+ label.set_text("CHECKED [#{check.checked?}]")
20
+ end
21
+
22
+ text_field = TextField.new "initial text", :x => 70, :y => 170
23
+
24
+ text_field.on_key K_RETURN, K_KP_ENTER do |evt|
25
+ puts "BOO-YAH"
26
+ end
27
+
28
+ modal_button = Button.new "Modal dialogs", :x=>270, :y=>280, :x_pad=>20, :y_pad=>20
29
+ modal_button.on :pressed do |*opts|
30
+ msg = "I AM MODAL"
31
+ # TODO make some of this stuff relative and/or make Dialog's
32
+ # constructor take a layout to use
33
+ modal = Dialog.new :modal => app, :x=>10, :y=>110, :w=>250, :h=>250
34
+
35
+ modal.add Label.new("Message Here", :x=>70, :y=>180, :x_pad=>20, :y_pad=>20)
36
+ ok_butt = Button.new("OK", :x=>90, :y=>280, :x_pad=>20, :y_pad=>20)
37
+ ok_butt.on :pressed do |*opts|
38
+ # TODO not sure about this yet
39
+ app.remove(modal)
40
+ end
41
+ modal.add ok_butt
42
+
43
+ modal.show
44
+ end
45
+
46
+ # implicit tab ordering based on order of addition, can
47
+ # specify if you want on widget creation
48
+
49
+ # can add many or one at a time
50
+ app.add text_field, label, button, modal_button
51
+ app.add check
52
+
53
+ # pulldown = Pulldown.new {:x=>70, :y=>80}
54
+ # pulldown.on :changed do |*opts|
55
+ # label.set_text(opts.first)
56
+ # end
57
+ #
58
+ # app.add pulldown
59
+ app
60
+ end
61
+
62
+ if $0 == __FILE__
63
+
64
+ screen = Screen.new [600,480]
65
+
66
+ factory = AdapterFactory.new
67
+ render_adapter = factory.renderer_for :rubygame, screen
68
+ app = create_gui(render_adapter)
69
+ app_adapter = factory.app_for :rubygame, app
70
+
71
+ # rubygame standard stuff below here
72
+ queue = EventQueue.new
73
+ queue.ignore = [
74
+ ActiveEvent, JoyAxisEvent, JoyBallEvent, JoyDownEvent,
75
+ JoyHatEvent, JoyUpEvent, ResizeEvent
76
+ ]
77
+ clock = Clock.new
78
+ clock.target_framerate = 20
79
+
80
+ catch(:rubygame_quit) do
81
+ loop do
82
+ queue.each do |event|
83
+ case event
84
+ when KeyDownEvent
85
+ case event.key
86
+ when K_ESCAPE
87
+ throw :rubygame_quit
88
+ end
89
+ when QuitEvent
90
+ throw :rubygame_quit
91
+ end
92
+
93
+ # pass on our events to the GUI
94
+ app_adapter.on_event event
95
+ end
96
+
97
+ app_adapter.update clock.tick
98
+ app_adapter.draw render_adapter
99
+ end
100
+ end
101
+ end
102
+
Binary file
@@ -0,0 +1,20 @@
1
+ ---
2
+ App:
3
+ :bg_color: :Black
4
+ Widget:
5
+ :font: Vera.ttf
6
+ :font_size: 20
7
+ :color: :Black
8
+ :focus_color: :FireBrick
9
+ :bg_color: :Gray
10
+ :border_color: :FireBrick
11
+ Button:
12
+ :bg_color: :DimGray
13
+ CheckBox:
14
+ :checked_color: :FireBrick
15
+ TextField:
16
+ :fg_color: :FireBrick
17
+ :bg_color: :Gray
18
+ :bg_select_color: :FireBrick
19
+ :fg_select_color: :Snow
20
+ :border_color: :Black
metadata ADDED
@@ -0,0 +1,121 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rubygoo
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ platform: ruby
6
+ authors:
7
+ - Shawn Anderson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-09-17 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: constructor
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: publisher
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: hoe
37
+ type: :development
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 1.7.0
44
+ version:
45
+ description: GUI library for use with Gosu or Rubygame
46
+ email: boss@topfunky.com
47
+ executables: []
48
+
49
+ extensions: []
50
+
51
+ extra_rdoc_files:
52
+ - History.txt
53
+ - Manifest.txt
54
+ - README.txt
55
+ files:
56
+ - History.txt
57
+ - Manifest.txt
58
+ - README.txt
59
+ - Rakefile
60
+ - TODO
61
+ - docs/.DS_Store
62
+ - docs/Picture 1.png
63
+ - docs/ui/.DS_Store
64
+ - docs/ui/UI.hpp
65
+ - docs/ui/abutton.png
66
+ - docs/ui/background.png
67
+ - docs/ui/button.png
68
+ - docs/ui/moveable.png
69
+ - docs/ui/textbutton.png
70
+ - lib/code_statistics.rb
71
+ - lib/platform.rb
72
+ - lib/rubygoo.rb
73
+ - lib/rubygoo/adapters/adapter_factory.rb
74
+ - lib/rubygoo/adapters/gosu_app_adapter.rb
75
+ - lib/rubygoo/adapters/gosu_render_adapter.rb
76
+ - lib/rubygoo/adapters/rubygame_app_adapter.rb
77
+ - lib/rubygoo/adapters/rubygame_render_adapter.rb
78
+ - lib/rubygoo/app.rb
79
+ - lib/rubygoo/button.rb
80
+ - lib/rubygoo/check_box.rb
81
+ - lib/rubygoo/container.rb
82
+ - lib/rubygoo/css_colors.rb
83
+ - lib/rubygoo/dialog.rb
84
+ - lib/rubygoo/goo_color.rb
85
+ - lib/rubygoo/goo_event.rb
86
+ - lib/rubygoo/label.rb
87
+ - lib/rubygoo/text_field.rb
88
+ - lib/rubygoo/widget.rb
89
+ - samples/gosu_app.rb
90
+ - samples/rubygame_app.rb
91
+ - themes/default/Vera.ttf
92
+ - themes/default/config.yml
93
+ has_rdoc: true
94
+ homepage: http://rubygoo.googlecode.com
95
+ post_install_message:
96
+ rdoc_options:
97
+ - --main
98
+ - README.txt
99
+ require_paths:
100
+ - lib
101
+ required_ruby_version: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: "0"
106
+ version:
107
+ required_rubygems_version: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: "0"
112
+ version:
113
+ requirements: []
114
+
115
+ rubyforge_project: rubygoo
116
+ rubygems_version: 1.2.0
117
+ signing_key:
118
+ specification_version: 2
119
+ summary: Beautiful graphs for one or multiple datasets.
120
+ test_files: []
121
+