rubygoo 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
+