white_gold 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/ext/dll/tgui.dll +0 -0
  3. data/ext/so/libtgui.so +0 -0
  4. data/lib/white_gold/abi/extern_object.rb +6 -1
  5. data/lib/white_gold/abi/unpacker.rb +4 -2
  6. data/lib/white_gold/convention/bang_nest.rb +12 -2
  7. data/lib/white_gold/convention/bang_nested_caller.rb +34 -34
  8. data/lib/white_gold/convention/container_widgets.rb +29 -24
  9. data/lib/white_gold/convention/page.rb +20 -2
  10. data/lib/white_gold/convention/theme/text_styles_attribute.rb +7 -2
  11. data/lib/white_gold/convention/theme/theme_attributed.rb +1 -1
  12. data/lib/white_gold/convention/tree_node.rb +43 -0
  13. data/lib/white_gold/convention/widget_like.rb +0 -6
  14. data/lib/white_gold/dsl/backend_gui.rb +1 -0
  15. data/lib/white_gold/dsl/canvas.rb +40 -0
  16. data/lib/white_gold/dsl/chat_box.rb +1 -1
  17. data/lib/white_gold/dsl/child_window.rb +1 -1
  18. data/lib/white_gold/dsl/color.rb +5 -2
  19. data/lib/white_gold/dsl/combo_box.rb +2 -2
  20. data/lib/white_gold/dsl/container.rb +17 -11
  21. data/lib/white_gold/dsl/font.rb +5 -1
  22. data/lib/white_gold/dsl/grid.rb +3 -3
  23. data/lib/white_gold/dsl/list_box.rb +7 -11
  24. data/lib/white_gold/dsl/list_view.rb +6 -6
  25. data/lib/white_gold/dsl/menu_bar.rb +5 -48
  26. data/lib/white_gold/dsl/message_box.rb +2 -2
  27. data/lib/white_gold/dsl/panel_list_box.rb +3 -3
  28. data/lib/white_gold/dsl/sfml/circle_shape.rb +7 -0
  29. data/lib/white_gold/dsl/sfml/convex_shape.rb +15 -0
  30. data/lib/white_gold/dsl/sfml/rectangle_shape.rb +7 -0
  31. data/lib/white_gold/dsl/sfml/shape.rb +19 -0
  32. data/lib/white_gold/dsl/sfml/text.rb +22 -0
  33. data/lib/white_gold/dsl/signal/global_signal.rb +1 -1
  34. data/lib/white_gold/dsl/signal/signal.rb +1 -1
  35. data/lib/white_gold/dsl/signal/signal_animation_type.rb +1 -1
  36. data/lib/white_gold/dsl/signal/signal_bool.rb +1 -1
  37. data/lib/white_gold/dsl/signal/signal_color.rb +1 -1
  38. data/lib/white_gold/dsl/signal/signal_float.rb +1 -1
  39. data/lib/white_gold/dsl/signal/signal_int.rb +1 -1
  40. data/lib/white_gold/dsl/signal/signal_pointer.rb +1 -1
  41. data/lib/white_gold/dsl/signal/signal_range.rb +1 -1
  42. data/lib/white_gold/dsl/signal/signal_show_effect.rb +1 -1
  43. data/lib/white_gold/dsl/signal/signal_string.rb +1 -1
  44. data/lib/white_gold/dsl/signal/signal_u_int.rb +1 -1
  45. data/lib/white_gold/dsl/signal/signal_vector2f.rb +1 -1
  46. data/lib/white_gold/dsl/tab_container.rb +2 -2
  47. data/lib/white_gold/dsl/tabs.rb +2 -2
  48. data/lib/white_gold/dsl/theme.rb +1 -1
  49. data/lib/white_gold/dsl/tree_view.rb +21 -33
  50. data/lib/white_gold/dsl/widget.rb +71 -38
  51. data/lib/white_gold/generated/tgui-abi-loader.gf.rb +197 -47
  52. data/lib/white_gold/master.rb +21 -40
  53. data/lib/white_gold/tgui-abi.rb +16 -16
  54. data/lib/white_gold/version.rb +3 -0
  55. data/lib/white_gold.rb +29 -28
  56. metadata +16 -5
@@ -1,5 +1,5 @@
1
1
  require_relative '../abi/extern_object'
2
- require_relative '../convention/bang_nested_caller'
2
+ require_relative '../convention/bang_nest'
3
3
  require_relative '../convention/unit'
4
4
  require_relative '../convention/widget_like'
5
5
  require_relative '../convention/api_child'
@@ -15,7 +15,7 @@ require_relative 'tool_tip'
15
15
 
16
16
  module Tgui
17
17
  class Widget < ExternObject
18
- include BangNestedCaller
18
+ include BangNest
19
19
  extend BangDef
20
20
 
21
21
  class Theme < ThemeComponent
@@ -29,10 +29,6 @@ module Tgui
29
29
 
30
30
  attr_accessor :page
31
31
 
32
- def window
33
- page.window
34
- end
35
-
36
32
  abi_attr :text_size, Integer
37
33
  abi_attr :enabled?
38
34
 
@@ -40,16 +36,10 @@ module Tgui
40
36
  self.enabled = !disabled
41
37
  end
42
38
 
43
- def theme_comp
44
- :widget
45
- end
46
-
47
39
  def! :renderer do |seed = VOID, **na, &b|
48
40
  seed = page.custom_renderers[self] if seed == VOID
49
41
  if !na.empty? || b
50
- upon! page.theme do
51
- seed = custom! self.class::Theme, seed, **na, &b
52
- end
42
+ seed = page.theme.custom! self.class::Theme, seed, **na, &b
53
43
  page.custom_renderers[self] = seed
54
44
  elsif !seed
55
45
  page.custom_renderers.delete self
@@ -99,6 +89,9 @@ module Tgui
99
89
  size[0]
100
90
  end
101
91
 
92
+ abi_enum "AutoLayout", :disabled, :top, :left, :right, :bottom, :leftmost, :rightmost, :fill
93
+
94
+ abi_attr :auto_layout, AutoLayout
102
95
  abi_def :can_gain_focus?, :can_gain_focus, nil => Boolean
103
96
  abi_def :container?, nil => Boolean
104
97
 
@@ -106,7 +99,7 @@ module Tgui
106
99
  if block_given?
107
100
  tooltip = ToolTip.new
108
101
  tooltip.page = page
109
- upon! tooltip, **na, &b
102
+ tooltip.send! **na, &b
110
103
  _abi_set_tool_tip tooltip.widget if tooltip.widget
111
104
  else
112
105
  widget = _abi_get_tool_tip
@@ -155,12 +148,12 @@ module Tgui
155
148
  end
156
149
  end
157
150
 
158
- def pack_animation_time o
151
+ def self_pack_animation_time o
159
152
  o ? o.to_i : 1000
160
153
  end
161
154
 
162
- abi_def :move, :move_with_animation, ["SizeLayout", :pack_animation_time] => nil
163
- abi_def :resize, :resize_with_animation, ["PositionLayout", :pack_animation_time] => nil
155
+ abi_def :move, :move_with_animation, ["SizeLayout", :self_pack_animation_time] => nil
156
+ abi_def :resize, :resize_with_animation, ["PositionLayout", :self_pack_animation_time] => nil
164
157
 
165
158
  abi_enum "AnimationType", :move, :resize, :opacity
166
159
 
@@ -168,6 +161,50 @@ module Tgui
168
161
  abi_def :front, :move_to_
169
162
  abi_def :back, :move_to_
170
163
 
164
+ class Navigation < WidgetLike
165
+
166
+ def left=(widget)
167
+ host._abi_set_navigation host.abi_pack(Widget, widget), host.abi_pack_integer(0)
168
+ end
169
+
170
+ def left
171
+ abi_unpack(Widget, host._abi_get_navigation(host.abi_pack_integer(0)))
172
+ end
173
+
174
+ def right=(widget)
175
+ host._abi_set_navigation host.abi_pack(Widget, widget), host.abi_pack_integer(1)
176
+ end
177
+
178
+ def right
179
+ host.abi_unpack(Widget, host._abi_get_navigation(host.abi_pack_integer(1)))
180
+ end
181
+
182
+ def up=(widget)
183
+ host._abi_set_navigation host.abi_pack(Widget, widget), host.abi_pack_integer(2)
184
+ end
185
+
186
+ def up
187
+ host.abi_unpack(Widget, host._abi_get_navigation(host.abi_pack_integer(2)))
188
+ end
189
+
190
+ def down=(widget)
191
+ host._abi_set_navigation host.abi_pack(Widget, widget), host.abi_pack_integer(3)
192
+ end
193
+
194
+ def down
195
+ host.abi_unpack(Widget, host._abi_get_navigation(host.abi_pack_integer(3)))
196
+ end
197
+
198
+ end
199
+
200
+ def! :navigation do |**na, &b|
201
+ navigation.send! **na, &b
202
+ end
203
+
204
+ def navigation
205
+ Navigation.new self, nil
206
+ end
207
+
171
208
  abi_enum "KeyCode", nil, :a, :b, :c, :d, :e, :f, :g, :h, :i, :j, :k,
172
209
  :l, :m, :n, :o, :p, :q, :r, :s, :t, :u, :v, :w, :x, :y, :z,
173
210
  :num0, :num1, :num2, :num3, :num4, :num5, :num6, :num7, :num8, :num9,
@@ -221,15 +258,9 @@ module Tgui
221
258
 
222
259
  def! :robot do |**na, &b|
223
260
  robot = Robot.new self
224
- upon! robot, **na, &b if block_given?
261
+ robot.send! **na, &b if block_given?
225
262
  robot
226
263
  end
227
-
228
- def flags=(flags)
229
- flags.each do |f|
230
- send("#{f}=", true)
231
- end
232
- end
233
264
 
234
265
  def self.api_attr name, &init
235
266
  define_method "#{name}=" do |value|
@@ -243,33 +274,35 @@ module Tgui
243
274
  end
244
275
  end
245
276
 
246
-
247
- def respond_to? name
248
- super || bang_respond_to?(name)
249
- end
250
-
251
- def method_missing name, *a, **na, &b
252
- if name.end_with? "!"
253
- bang_method_missing name, *a, **na, &b
254
- else super
255
- end
256
- end
257
-
258
277
  def self_cast_up widget, type = nil, equip: true
259
278
  return nil if widget.null?
260
279
  type = abi_unpack_string(Widget.get_type widget) if !type
261
280
  casted = Tgui.const_get(type).new pointer: widget
262
- equip_child_widget casted if equip
281
+ self_equip_child_widget casted if equip
263
282
  casted
264
283
  end
265
284
 
285
+ abi_packer Widget do |o|
286
+ o = o.first if o.is_a? Array
287
+ case o
288
+ when Widget
289
+ o
290
+ else
291
+ raise "Unable to make Widget from #{o}(#{o.class})"
292
+ end
293
+ end
294
+
295
+ abi_unpacker Widget do |o|
296
+ self_cast_up o
297
+ end
298
+
266
299
  abi_static :get_type
267
300
  abi_static :get_unshared
268
301
 
269
302
  class << self
270
303
  include ApiChild
271
304
 
272
- def self_renderer widget, renderer
305
+ def self_renderer widget, renderer = nil
273
306
  case renderer
274
307
  when Module
275
308
  renderer.name.split("::").last