line-em-up 2.0.0 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/vendors/lib/luit.rb +481 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ab8a2b6f72c019ac45a4df38b4e56c2239646c04
|
4
|
+
data.tar.gz: cae5d31fd414ddb83898588a948c4e520a14ff0b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 581b26a09ed7bac975a290f70bde5612240c90d58f30ede916b1506899d7bb65464a26a7c04a136962a0eb3e07d1969de615266a7be8e0bd9b4957c115c6190e
|
7
|
+
data.tar.gz: f61f5666766ef66fee57304beb1dbc1d3366707909e6af33b8aa7aad1d1c029e6c3b21c02a5b266b1e276d9a36b2c9ded9a4ab542072191d25b961a20cc946ba
|
data/vendors/lib/luit.rb
ADDED
@@ -0,0 +1,481 @@
|
|
1
|
+
# # # Leddys UI Toolkit, LUIT
|
2
|
+
# # # Copyrigth 2017 Martin Larsson
|
3
|
+
# # # martin.99.larsson@telia.com
|
4
|
+
# # #
|
5
|
+
# # # a holder is the object wich will recieve a callback when something happens to an element
|
6
|
+
# # # this could be button presse, or other similar events
|
7
|
+
# # # the id is assigned by the holder to know wich element called the callback method
|
8
|
+
|
9
|
+
# require 'gosu'
|
10
|
+
|
11
|
+
# module LUIT
|
12
|
+
# class << self
|
13
|
+
# attr_accessor :uiColor, :uiColorLight, :touchDown
|
14
|
+
# attr_reader :window, :z
|
15
|
+
# end
|
16
|
+
|
17
|
+
# def self.config(window:, uiColor: 0xff_555555, uiColorLight: 0xff_888888, z: 100)
|
18
|
+
# @window = window
|
19
|
+
# @uiColor = uiColor
|
20
|
+
# @uiColorLight = uiColorLight
|
21
|
+
# @z = z
|
22
|
+
# @touchDown = false
|
23
|
+
# end
|
24
|
+
|
25
|
+
# def self.mX
|
26
|
+
# @window.mouse_x
|
27
|
+
# end
|
28
|
+
|
29
|
+
# def self.mY
|
30
|
+
# @window.mouse_y
|
31
|
+
# end
|
32
|
+
|
33
|
+
# #Raspberry pi touchscreen hack
|
34
|
+
# def self.updateTouch()
|
35
|
+
# if @touchDown
|
36
|
+
# @window.mouse_x = 0
|
37
|
+
# @window.mouse_y = 0
|
38
|
+
# @touchDown = false
|
39
|
+
# else
|
40
|
+
# if @window.mouse_x != 0 or @window.mouse_y != 0
|
41
|
+
# @touchDown = true
|
42
|
+
# end
|
43
|
+
# end
|
44
|
+
# end
|
45
|
+
|
46
|
+
# class LUITElement
|
47
|
+
# attr_reader :id, :x, :y, :w, :h, :hover
|
48
|
+
# def initialize(holder, id, x, y, w, h)
|
49
|
+
# @holder = holder
|
50
|
+
# @id = id
|
51
|
+
# @x = x
|
52
|
+
# @y = y
|
53
|
+
# @w = w
|
54
|
+
# @h = h
|
55
|
+
# @msDown = false
|
56
|
+
# @hover = true
|
57
|
+
# end
|
58
|
+
|
59
|
+
# def draw(x = 0, y = 0)
|
60
|
+
# end
|
61
|
+
|
62
|
+
# def draw_rel(x = 0, y = 0)
|
63
|
+
# draw(x - (@w/2), y - (@h/2))
|
64
|
+
# end
|
65
|
+
|
66
|
+
# def updateHover(x, y)
|
67
|
+
# @hover = LUIT.mX.between?(x, x + @w) && LUIT.mY.between?(y, y + @h)
|
68
|
+
# end
|
69
|
+
|
70
|
+
# def update(x = 0, y = 0)
|
71
|
+
# if Gosu::button_down?(Gosu::MsLeft) or LUIT.touchDown
|
72
|
+
# if !@msDown
|
73
|
+
# button_down(Gosu::MsLeft)
|
74
|
+
# end
|
75
|
+
# @msDown = true
|
76
|
+
# else
|
77
|
+
# @msDown = false
|
78
|
+
# end
|
79
|
+
# end
|
80
|
+
|
81
|
+
# def update_rel(x = 0, y = 0)
|
82
|
+
# update(x - (@w/2), y - (@h/2))
|
83
|
+
# end
|
84
|
+
|
85
|
+
# def button_down(id)
|
86
|
+
# if id == Gosu::MsLeft && @hover
|
87
|
+
# @holder.onClick(@id)
|
88
|
+
# end
|
89
|
+
# end
|
90
|
+
# end
|
91
|
+
|
92
|
+
# class ClickArea < LUITElement
|
93
|
+
# def initialize(holder, id, x, y, w = 0, h = 0)
|
94
|
+
# h = [1, h].max
|
95
|
+
# w = [1, w].max
|
96
|
+
# super(holder, id, x, y, w, h)
|
97
|
+
# end
|
98
|
+
|
99
|
+
# def draw(x = 0, y = 0)
|
100
|
+
# Gosu::draw_rect(@x + x, @y + y, @w, @h, @hover ? LUIT.uiColorLight : LUIT.uiColor)
|
101
|
+
# end
|
102
|
+
|
103
|
+
# def update(x = 0, y = 0)
|
104
|
+
# x += @x
|
105
|
+
# y += @y
|
106
|
+
# updateHover(x, y)
|
107
|
+
# super(x, y)
|
108
|
+
# end
|
109
|
+
# end
|
110
|
+
|
111
|
+
# class TextArea < LUITElement
|
112
|
+
# attr_reader :field
|
113
|
+
# def initialize(holder, id, x, y, maxChar, h)
|
114
|
+
# h = [10, h].max
|
115
|
+
# @font = Gosu::Font.new(h)
|
116
|
+
# w = @font.text_width("W" * maxChar) + 20
|
117
|
+
# @maxChar = maxChar
|
118
|
+
# super(holder, id, x, y, w, h + 20)
|
119
|
+
# @typing = false
|
120
|
+
# @field = Gosu::TextInput.new
|
121
|
+
# puts "WINDOW HERE: "
|
122
|
+
# @window = LUIT.window
|
123
|
+
# puts @window
|
124
|
+
# end
|
125
|
+
|
126
|
+
# def text
|
127
|
+
# return @field.text
|
128
|
+
# end
|
129
|
+
|
130
|
+
# def button_down(id)
|
131
|
+
# if @hover
|
132
|
+
# @typing = true
|
133
|
+
# else
|
134
|
+
# if @typing
|
135
|
+
# @typing = false
|
136
|
+
# @holder.onClick(@id)
|
137
|
+
# end
|
138
|
+
# end
|
139
|
+
# end
|
140
|
+
|
141
|
+
# def draw(x = 0, y = 0)
|
142
|
+
# x = x + @x
|
143
|
+
# y = y + @y
|
144
|
+
# Gosu::draw_rect(x, y, @w, @h, @typing ? 0xffffffff : LUIT.uiColor, LUIT.z)
|
145
|
+
# @font.draw(@field.text, x + 10, y + 10, LUIT.z + 1, 1, 1, 0xff000000)
|
146
|
+
# end
|
147
|
+
|
148
|
+
# def update(x = 0, y = 0)
|
149
|
+
# super
|
150
|
+
# x += @x
|
151
|
+
# y += @y
|
152
|
+
# updateHover(x, y)
|
153
|
+
# if @field.text.size > @maxChar
|
154
|
+
# @field.text = @field.text[0..@maxChar]
|
155
|
+
# end
|
156
|
+
# if @typing
|
157
|
+
# @window.text_input = @field
|
158
|
+
# elsif @window.text_input == @field
|
159
|
+
# @window.text_input = nil
|
160
|
+
# end
|
161
|
+
# if Gosu::button_down?(Gosu::KbReturn) && @typing
|
162
|
+
# @typing = false
|
163
|
+
# @window.text_input = nil
|
164
|
+
# @holder.onClick(@id)
|
165
|
+
# end
|
166
|
+
# end
|
167
|
+
# end
|
168
|
+
|
169
|
+
# class ScannerInput
|
170
|
+
# attr_reader :scanning, :field
|
171
|
+
# def initialize(holder, id)
|
172
|
+
# @field = Gosu::TextInput.new
|
173
|
+
# @window = LUIT.window
|
174
|
+
# @holder = holder
|
175
|
+
# @id = id
|
176
|
+
# end
|
177
|
+
|
178
|
+
# def stop
|
179
|
+
# @scaning = false
|
180
|
+
# @window.text_input = nil if @window.text_input == @field
|
181
|
+
# end
|
182
|
+
|
183
|
+
# def scan
|
184
|
+
# @scaning = true
|
185
|
+
# @window.text_input = @field
|
186
|
+
# end
|
187
|
+
# end
|
188
|
+
|
189
|
+
# class ClickPoint < LUITElement
|
190
|
+
# def initialize(holder, id, x, y, r)
|
191
|
+
# @r = [1, r].max
|
192
|
+
# super(holder, id, x - @r, y - @r, @r * 2, @r * 2)
|
193
|
+
# end
|
194
|
+
|
195
|
+
# def update(x = 0, y = 0)
|
196
|
+
# if Gosu::distance($mx, $my, x, y) <= @r
|
197
|
+
# @hover = true
|
198
|
+
# else
|
199
|
+
# @hover = false
|
200
|
+
# end
|
201
|
+
# end
|
202
|
+
# end
|
203
|
+
|
204
|
+
# class Button < LUITElement
|
205
|
+
# #w and h will auto adjust to the text size + 10px padding if its not set (or set lower than acceptable)
|
206
|
+
# def initialize(holder, id, x, y, text, w = 0, h = 0)
|
207
|
+
# h = [50, h].max
|
208
|
+
# @text = text
|
209
|
+
# @buttonColor = LUIT.uiColor
|
210
|
+
# @font = Gosu::Font.new(h - 20)
|
211
|
+
# @textW = @font.text_width(@text)
|
212
|
+
# w = @textW + 20 if w < @textW + 20
|
213
|
+
# super(holder, id, x, y, w, h)
|
214
|
+
# end
|
215
|
+
|
216
|
+
# def draw(x = 0, y = 0)
|
217
|
+
# Gosu::draw_rect(x + @x, y + @y, @w, @h, @hover ? LUIT.uiColorLight : LUIT.uiColor, LUIT.z)
|
218
|
+
# @font.draw_rel(@text, @x + x + @w / 2, @y + y + @h / 2, LUIT.z + 1, 0.5, 0.5)
|
219
|
+
# end
|
220
|
+
|
221
|
+
# def update(x = 0, y = 0)
|
222
|
+
# x += @x
|
223
|
+
# y += @y
|
224
|
+
# updateHover(x, y)
|
225
|
+
# super(x, y)
|
226
|
+
# end
|
227
|
+
# end
|
228
|
+
|
229
|
+
# class Slider < LUITElement
|
230
|
+
# attr_accessor :value
|
231
|
+
# def initialize(holder, id, x, y, range)
|
232
|
+
# super(holder, id, x, y, range + 10, 30)
|
233
|
+
# @range = range
|
234
|
+
# @value = 0
|
235
|
+
# @buttonColor = LUIT.uiColor
|
236
|
+
# end
|
237
|
+
|
238
|
+
# def draw(x = 0, y = 0)
|
239
|
+
# Gosu::draw_rect(@x + x, @y + y + 10, @w, 10, @buttonColor, LUIT.z)
|
240
|
+
# Gosu::draw_rect(@x + x + @value, @y + y, 10, @h, @buttonColor, LUIT.z + 1)
|
241
|
+
# end
|
242
|
+
|
243
|
+
# def updateHover(x, y)
|
244
|
+
# @hover = LUIT.mX.between?(x - 10, x + @w + 20) && LUIT.mY.between?(y - 10, y + @h + 20)
|
245
|
+
# end
|
246
|
+
|
247
|
+
# def update(x = 0, y = 0)
|
248
|
+
# x += @x
|
249
|
+
# y += @y
|
250
|
+
# updateHover(x, y)
|
251
|
+
# if @hover && (Gosu::button_down?(Gosu::MsLeft) or LUIT.touchDown)
|
252
|
+
# @value = LUIT.mX - (x + 5)
|
253
|
+
# @value = 0 if @value < 0
|
254
|
+
# @value = @range if @value > @range
|
255
|
+
# end
|
256
|
+
# @buttonColor = @hover ? LUIT.uiColorLight : LUIT.uiColor
|
257
|
+
# end
|
258
|
+
|
259
|
+
# def button_down(id)
|
260
|
+
# end
|
261
|
+
# end
|
262
|
+
|
263
|
+
# class VerticalSlider < LUITElement
|
264
|
+
# attr_accessor :value
|
265
|
+
# def initialize(holder, id, x, y, range)
|
266
|
+
# super(holder, id, x, y, 30, range + 10)
|
267
|
+
# @range = range
|
268
|
+
# @value = 0
|
269
|
+
# @buttonColor = LUIT.uiColor
|
270
|
+
# end
|
271
|
+
|
272
|
+
# def draw(x = 0, y = 0)
|
273
|
+
# Gosu::draw_rect(@x + x + 10, @y + y, 10, @h, @buttonColor, LUIT.z)
|
274
|
+
# Gosu::draw_rect(@x + x, @y + y + @value, @w, 10, @buttonColor, LUIT.z + 1)
|
275
|
+
# end
|
276
|
+
|
277
|
+
# def updateHover(x, y)
|
278
|
+
# @hover = LUIT.mX.between?(x - 10, x + @w + 20) && LUIT.mY.between?(y - 10, y + @h + 20)
|
279
|
+
# end
|
280
|
+
|
281
|
+
# def update(x = 0, y = 0)
|
282
|
+
# x += @x
|
283
|
+
# y += @y
|
284
|
+
# updateHover(x, y)
|
285
|
+
# if @hover && (Gosu::button_down?(Gosu::MsLeft) or LUIT.touchDown)
|
286
|
+
# @value = LUIT.mY - (y + 5)
|
287
|
+
# @value = 0 if @value < 0
|
288
|
+
# @value = @range if @value > @range
|
289
|
+
# end
|
290
|
+
# @buttonColor = @hover ? LUIT.uiColorLight : LUIT.uiColor
|
291
|
+
# end
|
292
|
+
|
293
|
+
# def button_down(id)
|
294
|
+
# end
|
295
|
+
# end
|
296
|
+
|
297
|
+
# class Toggle < LUITElement
|
298
|
+
# attr_accessor :value
|
299
|
+
# def initialize(holder, id, x, y, size = 30)
|
300
|
+
# h = [30, size].max
|
301
|
+
# w = h * 2
|
302
|
+
# super(holder, id, x, y, w, h)
|
303
|
+
# @buttonColor = LUIT.uiColor
|
304
|
+
# @value = false
|
305
|
+
# end
|
306
|
+
|
307
|
+
# def draw(x = 0, y = 0)
|
308
|
+
# x += @x
|
309
|
+
# y += @y
|
310
|
+
# Gosu::draw_rect(x, y, @w, @h, @buttonColor, LUIT.z)
|
311
|
+
# @value ? v = 1 : v = 0
|
312
|
+
# Gosu::draw_rect(x + 4 + (@h * v), y + 4, @h - 8, @h - 8, @value ? 0xff_ffffff : 0xff_000000, LUIT.z + 1)
|
313
|
+
# end
|
314
|
+
|
315
|
+
# def update(x = 0, y = 0)
|
316
|
+
# x += @x
|
317
|
+
# y += @y
|
318
|
+
# updateHover(x, y)
|
319
|
+
# @buttonColor = @hover ? LUIT.uiColorLight : LUIT.uiColor
|
320
|
+
# super
|
321
|
+
# end
|
322
|
+
|
323
|
+
# def button_down(id)
|
324
|
+
# if id == Gosu::MsLeft && @hover
|
325
|
+
# @value = !@value
|
326
|
+
# @holder.onClick(@id)
|
327
|
+
# end
|
328
|
+
# end
|
329
|
+
# end
|
330
|
+
|
331
|
+
# class List < LUITElement
|
332
|
+
# attr_reader :contents
|
333
|
+
# def initialize(holder, id, x, y, h, s = 10)
|
334
|
+
# super(holder, id, x, y, 50, h)
|
335
|
+
# @spaceing = s
|
336
|
+
# @contents = []
|
337
|
+
# @totalh = 0
|
338
|
+
# @focus = 0
|
339
|
+
# @scrollbar = VerticalSlider.new(self, "scroll", 0, 0, @h - 10)
|
340
|
+
# end
|
341
|
+
|
342
|
+
# def <<(item)
|
343
|
+
# @contents << item
|
344
|
+
# @totalh += item.h + @spaceing
|
345
|
+
# @w = @contents.max_by{|x| x.w}.w
|
346
|
+
# end
|
347
|
+
|
348
|
+
# def draw(x = 0, y = 0)
|
349
|
+
# x += @x
|
350
|
+
# y += @y
|
351
|
+
# prevh = 0
|
352
|
+
# @contents.each do |item|
|
353
|
+
# if !((prevh - @focus + item.h) <= 0 || (prevh - @focus) >= @h)
|
354
|
+
# item.draw(x + 30, y + prevh - @focus)
|
355
|
+
# end
|
356
|
+
# prevh += item.h + @spaceing
|
357
|
+
# end
|
358
|
+
# @scrollbar.draw(x, y)
|
359
|
+
# end
|
360
|
+
|
361
|
+
# def update(x = 0, y = 0)
|
362
|
+
# x += @x
|
363
|
+
# y += @y
|
364
|
+
# prevh = 0
|
365
|
+
# @contents.each do |item|
|
366
|
+
# if !((prevh - @focus + item.h) < 0 || (prevh - @focus) > @h)
|
367
|
+
# item.update(x + 30, y + prevh - @focus)
|
368
|
+
# end
|
369
|
+
# prevh += item.h + @spaceing
|
370
|
+
# end
|
371
|
+
# @scrollbar.update(x, y)
|
372
|
+
# if @totalh > @h
|
373
|
+
# v = @scrollbar.value / (@h - 10)
|
374
|
+
# @focus = (@totalh - @h) * v
|
375
|
+
# else
|
376
|
+
# @focus = 0
|
377
|
+
# end
|
378
|
+
# end
|
379
|
+
# end
|
380
|
+
|
381
|
+
# class Icon
|
382
|
+
# attr_reader :x, :y, :w, :h
|
383
|
+
# def initialize(path, x, y, w, h)
|
384
|
+
# @icon = Gosu::Image.new(path)
|
385
|
+
# @scalex = (w / @icon.width)
|
386
|
+
# @scaley = (h / @icon.height)
|
387
|
+
# @x = x
|
388
|
+
# @y = y
|
389
|
+
# @w = w
|
390
|
+
# @h = h
|
391
|
+
# end
|
392
|
+
|
393
|
+
# def draw(x = 0, y = 0)
|
394
|
+
# @icon.draw(@x + x, @y + y, 1, @scalex, @scaley)
|
395
|
+
# end
|
396
|
+
|
397
|
+
# def update(x = 0, y = 0)
|
398
|
+
# end
|
399
|
+
# end
|
400
|
+
|
401
|
+
# @decimalValue = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]
|
402
|
+
# @romanNumeral = ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']
|
403
|
+
# def self.to_roman(number)
|
404
|
+
# return '0' if number == 0
|
405
|
+
# romanized = ''
|
406
|
+
# for index in 0...@decimalValue.length do
|
407
|
+
# while @decimalValue[index] <= number do
|
408
|
+
# romanized += @romanNumeral[index]
|
409
|
+
# number -= @decimalValue[index]
|
410
|
+
# end
|
411
|
+
# end
|
412
|
+
# return romanized
|
413
|
+
# end
|
414
|
+
# end
|
415
|
+
|
416
|
+
# #run file directly to run test window
|
417
|
+
# if __FILE__ == $0
|
418
|
+
# class Test < Gosu::Window
|
419
|
+
# def initialize
|
420
|
+
# super(1000, 1000, false)
|
421
|
+
|
422
|
+
# LUIT.config(window: self)
|
423
|
+
|
424
|
+
# @LUITElements = []
|
425
|
+
# @LUITElements << LUIT::Button.new(self, 1, 0, 0, "Test")
|
426
|
+
# @LUITElements << LUIT::Button.new(self, 2, 111, 111, "Big button", 200, 70)
|
427
|
+
# @LUITElements << LUIT::Slider.new(self, 3, 300, 300, 300)
|
428
|
+
# @vslider = LUIT::VerticalSlider.new(self, 3, 250, 250, 300)
|
429
|
+
# @LUITElements << @vslider
|
430
|
+
# @LUITElements << LUIT::Toggle.new(self, 4, 500, 500)
|
431
|
+
# @LUITElements << LUIT::ClickArea.new(self, "click", 900, 900, 100, 100)
|
432
|
+
# @texter = LUIT::TextArea.new(self, "text", 300, 100, 32, 20)
|
433
|
+
# @LUITElements << @texter
|
434
|
+
# @LUITElements << LUIT::TextArea.new(self, "text2", 300, 200, 32, 20)
|
435
|
+
# @list = LUIT::List.new(self, "list", 0, 200, 300, 0)
|
436
|
+
# @LUITElements << @list
|
437
|
+
# 20.times do
|
438
|
+
# @list << LUIT::Button.new(self, 1, 0, 0, "Test", 0, 50)
|
439
|
+
# end
|
440
|
+
# @font = Gosu::Font.new(30)
|
441
|
+
# @scanner = LUIT::ScannerInput.new(self, "dik")
|
442
|
+
# end
|
443
|
+
|
444
|
+
# def draw
|
445
|
+
# @LUITElements.each {|e| e.draw}
|
446
|
+
# @font.draw(LUIT::to_roman(@vslider.value), 600, 250, 2)
|
447
|
+
# end
|
448
|
+
|
449
|
+
# def update
|
450
|
+
# @LUITElements.each {|e| e.update}
|
451
|
+
# @scanner.scan
|
452
|
+
# end
|
453
|
+
|
454
|
+
# def button_down(id)
|
455
|
+
# case id
|
456
|
+
# when Gosu::KbSpace
|
457
|
+
# @list << LUIT::Button.new(self, 1, 0, 0, "Test", 0, 50)
|
458
|
+
# when Gosu::KbReturn
|
459
|
+
# puts @scanner.field.text
|
460
|
+
# @scanner.field.text = ""
|
461
|
+
# end
|
462
|
+
# end
|
463
|
+
|
464
|
+
# def onScan(text)
|
465
|
+
# puts text
|
466
|
+
# @scanner.scan
|
467
|
+
# end
|
468
|
+
|
469
|
+
# def onClick(id)
|
470
|
+
# puts id
|
471
|
+
# if id == "text"
|
472
|
+
# puts @texter.text
|
473
|
+
# end
|
474
|
+
# end
|
475
|
+
|
476
|
+
# def needs_cursor?
|
477
|
+
# return true
|
478
|
+
# end
|
479
|
+
# end
|
480
|
+
# Test.new.show
|
481
|
+
# end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: line-em-up
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Dana
|
@@ -356,6 +356,7 @@ files:
|
|
356
356
|
- line-em-up/models/small_explosion.rb
|
357
357
|
- line-em-up/models/star.rb
|
358
358
|
- menu_launcher.rb
|
359
|
+
- vendors/lib/luit.rb
|
359
360
|
homepage: https://github.com/danabr75/line-em-up
|
360
361
|
licenses:
|
361
362
|
- MIT
|