white_gold 0.0.2 → 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.
- checksums.yaml +4 -4
- data/ext/dll/tgui.dll +0 -0
- data/ext/so/libtgui.so +0 -0
- data/lib/white_gold/abi/extern_object.rb +6 -1
- data/lib/white_gold/abi/unpacker.rb +4 -2
- data/lib/white_gold/convention/bang_nest.rb +12 -2
- data/lib/white_gold/convention/bang_nested_caller.rb +34 -34
- data/lib/white_gold/convention/container_widgets.rb +29 -24
- data/lib/white_gold/convention/page.rb +20 -2
- data/lib/white_gold/convention/theme/text_styles_attribute.rb +7 -2
- data/lib/white_gold/convention/theme/theme_attributed.rb +1 -1
- data/lib/white_gold/convention/tree_node.rb +43 -0
- data/lib/white_gold/convention/widget_like.rb +0 -6
- data/lib/white_gold/dsl/backend_gui.rb +1 -0
- data/lib/white_gold/dsl/canvas.rb +40 -0
- data/lib/white_gold/dsl/chat_box.rb +1 -1
- data/lib/white_gold/dsl/child_window.rb +1 -1
- data/lib/white_gold/dsl/color.rb +5 -2
- data/lib/white_gold/dsl/combo_box.rb +2 -2
- data/lib/white_gold/dsl/container.rb +17 -11
- data/lib/white_gold/dsl/font.rb +5 -1
- data/lib/white_gold/dsl/grid.rb +3 -3
- data/lib/white_gold/dsl/list_box.rb +7 -11
- data/lib/white_gold/dsl/list_view.rb +6 -6
- data/lib/white_gold/dsl/menu_bar.rb +5 -48
- data/lib/white_gold/dsl/message_box.rb +2 -2
- data/lib/white_gold/dsl/panel_list_box.rb +3 -3
- data/lib/white_gold/dsl/sfml/circle_shape.rb +7 -0
- data/lib/white_gold/dsl/sfml/convex_shape.rb +15 -0
- data/lib/white_gold/dsl/sfml/rectangle_shape.rb +7 -0
- data/lib/white_gold/dsl/sfml/shape.rb +19 -0
- data/lib/white_gold/dsl/sfml/text.rb +22 -0
- data/lib/white_gold/dsl/signal/global_signal.rb +1 -1
- data/lib/white_gold/dsl/signal/signal.rb +1 -1
- data/lib/white_gold/dsl/signal/signal_animation_type.rb +1 -1
- data/lib/white_gold/dsl/signal/signal_bool.rb +1 -1
- data/lib/white_gold/dsl/signal/signal_color.rb +1 -1
- data/lib/white_gold/dsl/signal/signal_float.rb +1 -1
- data/lib/white_gold/dsl/signal/signal_int.rb +1 -1
- data/lib/white_gold/dsl/signal/signal_pointer.rb +1 -1
- data/lib/white_gold/dsl/signal/signal_range.rb +1 -1
- data/lib/white_gold/dsl/signal/signal_show_effect.rb +1 -1
- data/lib/white_gold/dsl/signal/signal_string.rb +1 -1
- data/lib/white_gold/dsl/signal/signal_u_int.rb +1 -1
- data/lib/white_gold/dsl/signal/signal_vector2f.rb +1 -1
- data/lib/white_gold/dsl/tab_container.rb +2 -2
- data/lib/white_gold/dsl/tabs.rb +2 -2
- data/lib/white_gold/dsl/theme.rb +1 -1
- data/lib/white_gold/dsl/tree_view.rb +21 -33
- data/lib/white_gold/dsl/widget.rb +71 -38
- data/lib/white_gold/generated/tgui-abi-loader.gf.rb +197 -47
- data/lib/white_gold/master.rb +21 -40
- data/lib/white_gold/tgui-abi.rb +16 -16
- data/lib/white_gold/version.rb +3 -0
- data/lib/white_gold.rb +29 -28
- metadata +16 -5
@@ -1,5 +1,5 @@
|
|
1
1
|
require_relative '../abi/extern_object'
|
2
|
-
require_relative '../convention/
|
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
|
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
|
-
|
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
|
-
|
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
|
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", :
|
163
|
-
abi_def :resize, :resize_with_animation, ["PositionLayout", :
|
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
|
-
|
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
|
-
|
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
|