minigl 1.2.4 → 1.2.5

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -4
  3. data/lib/minigl/forms.rb +32 -16
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 33a7e31b76d2c0a419ac03bc766d6007650129df
4
- data.tar.gz: 2fb3a8a9df9915b64e241b09363d3191494d2297
3
+ metadata.gz: 01d773ef32ca54ed13e397c386708830e7731e8e
4
+ data.tar.gz: 810ff8899be10ec787147090c539ac0d7608f603
5
5
  SHA512:
6
- metadata.gz: 676c67bd7a8475cd4f46dab03cad823d40b20b7b1e504b3b443d074d441f72473af077cf37dffb2c4830a17c2d86289ad5fa9c6d948d32fc80977cb1cbbb988f
7
- data.tar.gz: a680e44471368044703cd69557329ffc70340a9281c796d992c54a959ce4214b1c05e84f2ec74dfe126cddf9b2fdc3045b1a344d878e7e79d660ca265b836124
6
+ metadata.gz: 25128512170f5275e48a8baec43555ab0307f246703cde5eeb55a5d2d4a52ffa9dbc055d5bb7933786eac9c7f00e289c03d8acb982d1aed514482127ebe8f952
7
+ data.tar.gz: 7e0a5f25b732eaba12c1156e471ea7e1cff6a68774e09be3f3d6e29fbb43903f67420b7aabab0f08640467e34ef24a7a1226d7d05a8f26f17f0c9eaf701db7d1
data/README.md CHANGED
@@ -21,8 +21,9 @@ this [working game example](https://github.com/victords/aventura-do-saber).
21
21
  * The [documentation](https://github.com/victords/minigl/wiki) is under
22
22
  construction.
23
23
 
24
- **Version 1.2.4**
24
+ **Version 1.2.5**
25
25
 
26
- * Moved color options from `draw` to `initialize` in `Button` and `TextField`.
27
- * Added focus control to `TextField`.
28
- * Marked some methods of various classes as private.
26
+ * Added support for "invisible" buttons (for associating actions with clicks
27
+ in screen areas).
28
+ * Exposed `Button`'s `click` method and `TextField`'s `focus` and `unfocus`
29
+ methods.
@@ -2,15 +2,20 @@ require_relative 'global'
2
2
 
3
3
  module AGL
4
4
  class Button
5
- def initialize x, y, font, text, img, text_color = 0, center = true, margin_x = 0, margin_y = 0, &action
5
+ def initialize x, y, font, text, img, text_color = 0, center = true, margin_x = 0, margin_y = 0, width = nil, height = nil, &action
6
6
  @x = x
7
7
  @y = y
8
8
  @font = font
9
9
  @text = text
10
- @img = Res.imgs img, 1, 3, true
11
- @text_color = text_color
12
- @w = @img[0].width
13
- @h = @img[0].height
10
+ @img =
11
+ if img; Res.imgs img, 1, 3, true
12
+ else; nil; end
13
+ @w =
14
+ if img; @img[0].width
15
+ else; width; end
16
+ @h =
17
+ if img; @img[0].height
18
+ else; height; end
14
19
  if center
15
20
  @text_x = x + @w / 2
16
21
  @text_y = y + @h / 2
@@ -18,6 +23,7 @@ module AGL
18
23
  @text_x = x + margin_x
19
24
  @text_y = y + margin_y
20
25
  end
26
+ @text_color = text_color
21
27
  @center = center
22
28
  @action = Proc.new &action
23
29
 
@@ -50,7 +56,7 @@ module AGL
50
56
  elsif mouse_rel
51
57
  @img_index = 0
52
58
  @state = :up
53
- @action.call
59
+ click
54
60
  end
55
61
  elsif @state == :down_out
56
62
  if mouse_over
@@ -63,14 +69,20 @@ module AGL
63
69
  end
64
70
  end
65
71
 
72
+ def click
73
+ @action.call
74
+ end
75
+
66
76
  def draw alpha = 0xff
67
77
  color = (alpha << 24) | 0xffffff
68
78
  text_color = (alpha << 24) | @text_color
69
- @img[@img_index].draw @x, @y, 0, 1, 1, color
70
- if @center
71
- @font.draw_rel @text, @text_x, @text_y, 0, 0.5, 0.5, 1, 1, text_color
72
- else
73
- @font.draw @text, @text_x, @text_y, 0, 1, 1, text_color
79
+ @img[@img_index].draw @x, @y, 0, 1, 1, color if @img
80
+ if @text
81
+ if @center
82
+ @font.draw_rel @text, @text_x, @text_y, 0, 0.5, 0.5, 1, 1, text_color
83
+ else
84
+ @font.draw @text, @text_x, @text_y, 0, 1, 1, text_color
85
+ end
74
86
  end
75
87
  end
76
88
  end
@@ -144,17 +156,21 @@ module AGL
144
156
  @active = true
145
157
  end
146
158
 
159
+ def unfocus
160
+ @anchor1 = @anchor2 = nil
161
+ @cursor_visible = false
162
+ @cursor_timer = 0
163
+ @active = false
164
+ end
165
+
147
166
  def update
148
167
  ################################ Mouse ################################
149
168
  if Mouse.over? @x, @y, @w, @h
150
169
  if not @active and Mouse.button_pressed? :left
151
- @active = true
170
+ focus
152
171
  end
153
172
  elsif Mouse.button_pressed? :left
154
- @anchor1 = @anchor2 = nil
155
- @cursor_visible = false
156
- @cursor_timer = 0
157
- @active = false
173
+ unfocus
158
174
  end
159
175
 
160
176
  return unless @active
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minigl
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.4
4
+ version: 1.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor David Santos
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-02 00:00:00.000000000 Z
11
+ date: 2014-07-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gosu