Class: Glimmer::LibUI::ControlProxy
- Inherits:
-
Object
- Object
- Glimmer::LibUI::ControlProxy
show all
- Includes:
- DataBindable
- Defined in:
- lib/glimmer/libui/control_proxy.rb,
lib/glimmer/libui/control_proxy/box.rb,
lib/glimmer/libui/control_proxy/column.rb,
lib/glimmer/libui/control_proxy/area_proxy.rb,
lib/glimmer/libui/control_proxy/form_proxy.rb,
lib/glimmer/libui/control_proxy/grid_proxy.rb,
lib/glimmer/libui/control_proxy/menu_proxy.rb,
lib/glimmer/libui/control_proxy/path_proxy.rb,
lib/glimmer/libui/control_proxy/text_proxy.rb,
lib/glimmer/libui/control_proxy/dual_column.rb,
lib/glimmer/libui/control_proxy/entry_proxy.rb,
lib/glimmer/libui/control_proxy/group_proxy.rb,
lib/glimmer/libui/control_proxy/image_proxy.rb,
lib/glimmer/libui/control_proxy/label_proxy.rb,
lib/glimmer/libui/control_proxy/message_box.rb,
lib/glimmer/libui/control_proxy/table_proxy.rb,
lib/glimmer/libui/control_proxy/button_proxy.rb,
lib/glimmer/libui/control_proxy/matrix_proxy.rb,
lib/glimmer/libui/control_proxy/slider_proxy.rb,
lib/glimmer/libui/control_proxy/window_proxy.rb,
lib/glimmer/libui/control_proxy/spinbox_proxy.rb,
lib/glimmer/libui/control_proxy/triple_column.rb,
lib/glimmer/libui/control_proxy/checkbox_proxy.rb,
lib/glimmer/libui/control_proxy/combobox_proxy.rb,
lib/glimmer/libui/control_proxy/tab_item_proxy.rb,
lib/glimmer/libui/control_proxy/editable_column.rb,
lib/glimmer/libui/control_proxy/menu_item_proxy.rb,
lib/glimmer/libui/control_proxy/image_part_proxy.rb,
lib/glimmer/libui/control_proxy/enableable_column.rb,
lib/glimmer/libui/control_proxy/font_button_proxy.rb,
lib/glimmer/libui/control_proxy/color_button_proxy.rb,
lib/glimmer/libui/control_proxy/open_type_tag_proxy.rb,
lib/glimmer/libui/control_proxy/radio_buttons_proxy.rb,
lib/glimmer/libui/control_proxy/multiline_entry_proxy.rb,
lib/glimmer/libui/control_proxy/box/vertical_box_proxy.rb,
lib/glimmer/libui/control_proxy/date_time_picker_proxy.rb,
lib/glimmer/libui/control_proxy/editable_combobox_proxy.rb,
lib/glimmer/libui/control_proxy/box/horizontal_box_proxy.rb,
lib/glimmer/libui/control_proxy/column/text_column_proxy.rb,
lib/glimmer/libui/control_proxy/open_type_features_proxy.rb,
lib/glimmer/libui/control_proxy/column/image_column_proxy.rb,
lib/glimmer/libui/control_proxy/message_box/msg_box_proxy.rb,
lib/glimmer/libui/control_proxy/column/button_column_proxy.rb,
lib/glimmer/libui/control_proxy/column/checkbox_column_proxy.rb,
lib/glimmer/libui/control_proxy/column/image_text_column_proxy.rb,
lib/glimmer/libui/control_proxy/column/text_color_column_proxy.rb,
lib/glimmer/libui/control_proxy/entry_proxy/search_entry_proxy.rb,
lib/glimmer/libui/control_proxy/area_proxy/scrolling_area_proxy.rb,
lib/glimmer/libui/control_proxy/message_box/msg_box_error_proxy.rb,
lib/glimmer/libui/control_proxy/column/progress_bar_column_proxy.rb,
lib/glimmer/libui/control_proxy/entry_proxy/password_entry_proxy.rb,
lib/glimmer/libui/control_proxy/column/checkbox_text_column_proxy.rb,
lib/glimmer/libui/control_proxy/column/background_color_column_proxy.rb,
lib/glimmer/libui/control_proxy/column/image_text_color_column_proxy.rb,
lib/glimmer/libui/control_proxy/menu_item_proxy/quit_menu_item_proxy.rb,
lib/glimmer/libui/control_proxy/menu_item_proxy/about_menu_item_proxy.rb,
lib/glimmer/libui/control_proxy/menu_item_proxy/check_menu_item_proxy.rb,
lib/glimmer/libui/control_proxy/menu_item_proxy/radio_menu_item_proxy.rb,
lib/glimmer/libui/control_proxy/column/checkbox_text_color_column_proxy.rb,
lib/glimmer/libui/control_proxy/date_time_picker_proxy/date_picker_proxy.rb,
lib/glimmer/libui/control_proxy/date_time_picker_proxy/time_picker_proxy.rb,
lib/glimmer/libui/control_proxy/menu_item_proxy/separator_menu_item_proxy.rb,
lib/glimmer/libui/control_proxy/menu_item_proxy/preferences_menu_item_proxy.rb,
lib/glimmer/libui/control_proxy/multiline_entry_proxy/non_wrapping_multiline_entry_proxy.rb
Overview
Proxy for LibUI control objects
Follows the Proxy Design Pattern
Direct Known Subclasses
AreaProxy, Box::HorizontalBoxProxy, Box::VerticalBoxProxy, ButtonProxy, CheckboxProxy, ColorButtonProxy, Column::BackgroundColorColumnProxy, Column::ButtonColumnProxy, Column::CheckboxColumnProxy, Column::CheckboxTextColorColumnProxy, Column::CheckboxTextColumnProxy, Column::ImageColumnProxy, Column::ImageTextColorColumnProxy, Column::ImageTextColumnProxy, Column::ProgressBarColumnProxy, Column::TextColorColumnProxy, Column::TextColumnProxy, ComboboxProxy, DateTimePickerProxy, EditableComboboxProxy, EntryProxy, FontButtonProxy, FormProxy, GridProxy, GroupProxy, ImagePartProxy, ImageProxy, LabelProxy, MatrixProxy, MenuItemProxy, MenuProxy, MessageBox::MsgBoxErrorProxy, MessageBox::MsgBoxProxy, MultilineEntryProxy, OpenTypeFeaturesProxy, OpenTypeTagProxy, PathProxy, RadioButtonsProxy, SliderProxy, SpinboxProxy, TabItemProxy, TableProxy, TextProxy, WindowProxy
Defined Under Namespace
Modules: Box, Column, DualColumn, EditableColumn, EnableableColumn, MessageBox, TripleColumn
Classes: AreaProxy, ButtonProxy, CheckboxProxy, ColorButtonProxy, ComboboxProxy, DateTimePickerProxy, EditableComboboxProxy, EntryProxy, FontButtonProxy, FormProxy, GridProxy, GroupProxy, ImagePartProxy, ImageProxy, LabelProxy, MatrixProxy, MenuItemProxy, MenuProxy, MultilineEntryProxy, NonWrappingMultilineEntryProxy, OpenTypeFeaturesProxy, OpenTypeTagProxy, PathProxy, PreferencesMenuItemProxy, RadioButtonsProxy, SliderProxy, SpinboxProxy, TabItemProxy, TableProxy, TextProxy, WindowProxy
Constant Summary
collapse
- KEYWORD_ALIASES =
{
'msg_box' => 'message_box',
'msg_box_error' => 'message_box_error',
}
- BOOLEAN_PROPERTIES =
%w[
padded
checked
enabled toplevel visible
read_only
margined
borderless fullscreen
stretchy
]
- STRING_PROPERTIES =
%w[
text
title
]
- TransformProxy =
MatrixProxy
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
-
#append_properties ⇒ Object
-
#append_property(property, value = nil) ⇒ Object
-
#can_handle_listener?(listener_name) ⇒ Boolean
-
#content(&block) ⇒ Object
-
#custom_listener_aliases ⇒ Object
-
#custom_listeners ⇒ Object
-
#default_destroy ⇒ Object
-
#destroy ⇒ Object
-
#destroy_child(child) ⇒ Object
-
#enabled(value = nil) ⇒ Object
(also: #enabled?, #set_enabled, #enabled=)
-
#handle_custom_listener(listener_name, &listener) ⇒ Object
-
#handle_listener(listener_name, &listener) ⇒ Object
-
#has_custom_listener?(listener_name) ⇒ Boolean
-
#initialize(keyword, parent, args, &block) ⇒ ControlProxy
constructor
A new instance of ControlProxy.
-
#libui_api_keyword ⇒ Object
-
#method_missing(method_name, *args, &block) ⇒ Object
-
#post_add_content ⇒ Object
Subclasses may override to perform post add_content work (normally must call super).
-
#post_initialize_child(child) ⇒ Object
Subclasses may override to perform post initialization work on an added child.
-
#respond_to?(method_name, *args, &block) ⇒ Boolean
-
#respond_to_libui?(method_name, *args, &block) ⇒ Boolean
-
#send_to_libui(method_name, *args, &block) ⇒ Object
-
#visible(value = nil) ⇒ Object
(also: #visible?, #set_visible, #visible=)
-
#window_proxy ⇒ Object
#data_bind
Constructor Details
#initialize(keyword, parent, args, &block) ⇒ ControlProxy
Returns a new instance of ControlProxy.
131
132
133
134
135
136
137
138
139
|
# File 'lib/glimmer/libui/control_proxy.rb', line 131
def initialize(keyword, parent, args, &block)
@keyword = keyword
@parent_proxy = parent
@args = args
@block = block
@enabled = true
build_control
post_add_content if @block.nil?
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args, &block) ⇒ Object
225
226
227
228
229
230
231
232
233
234
235
236
|
# File 'lib/glimmer/libui/control_proxy.rb', line 225
def method_missing(method_name, *args, &block)
if respond_to_libui?(method_name, *args, &block)
send_to_libui(method_name, *args, &block)
elsif append_properties.include?(method_name.to_s) ||
append_properties.include?(method_name.to_s.sub(/(=|\?)$/, ''))
append_property(method_name, *args)
elsif can_handle_listener?(method_name.to_s)
handle_listener(method_name.to_s, &block)
else
super
end
end
|
Instance Attribute Details
#args ⇒ Object
libui returns the contained LibUI object
129
130
131
|
# File 'lib/glimmer/libui/control_proxy.rb', line 129
def args
@args
end
|
#block ⇒ Object
libui returns the contained LibUI object
129
130
131
|
# File 'lib/glimmer/libui/control_proxy.rb', line 129
def block
@block
end
|
#keyword ⇒ Object
libui returns the contained LibUI object
129
130
131
|
# File 'lib/glimmer/libui/control_proxy.rb', line 129
def keyword
@keyword
end
|
#libui ⇒ Object
libui returns the contained LibUI object
129
130
131
|
# File 'lib/glimmer/libui/control_proxy.rb', line 129
def libui
@libui
end
|
#parent_proxy ⇒ Object
libui returns the contained LibUI object
129
130
131
|
# File 'lib/glimmer/libui/control_proxy.rb', line 129
def parent_proxy
@parent_proxy
end
|
Class Method Details
.constant_symbol(keyword) ⇒ Object
67
68
69
|
# File 'lib/glimmer/libui/control_proxy.rb', line 67
def constant_symbol(keyword)
"#{keyword.camelcase(:upper)}Proxy".to_sym
end
|
.control_proxies ⇒ Object
autosave all controls in this array to avoid garbage collection
46
47
48
49
|
# File 'lib/glimmer/libui/control_proxy.rb', line 46
def control_proxies
@@control_proxies = [] unless defined?(@@control_proxies)
@@control_proxies
end
|
.create(keyword, parent, args, &block) ⇒ Object
37
38
39
|
# File 'lib/glimmer/libui/control_proxy.rb', line 37
def create(keyword, parent, args, &block)
widget_proxy_class(keyword).new(keyword, parent, args, &block).tap {|c| control_proxies << c}
end
|
.descendant_keyword_constant_map ⇒ Object
75
76
77
|
# File 'lib/glimmer/libui/control_proxy.rb', line 75
def descendant_keyword_constant_map
@descendant_keyword_constant_map ||= add_aliases_to_keyword_constant_map(map_descendant_keyword_constants_for(self))
end
|
.exists?(keyword) ⇒ Boolean
31
32
33
34
35
|
# File 'lib/glimmer/libui/control_proxy.rb', line 31
def exists?(keyword)
::LibUI.respond_to?("new_#{keyword}") or
::LibUI.respond_to?(keyword) or
descendant_keyword_constant_map.keys.include?(keyword)
end
|
.image_proxies ⇒ Object
59
60
61
|
# File 'lib/glimmer/libui/control_proxy.rb', line 59
def image_proxies
control_proxies.select {|c| c.keyword == 'image' }
end
|
.keyword(constant_symbol) ⇒ Object
71
72
73
|
# File 'lib/glimmer/libui/control_proxy.rb', line 71
def keyword(constant_symbol)
constant_symbol.to_s.underscore.sub(/_proxy$/, '')
end
|
.main_window_proxy ⇒ Object
51
52
53
|
# File 'lib/glimmer/libui/control_proxy.rb', line 51
def main_window_proxy
control_proxies.find {|c| c.is_a?(WindowProxy)}
end
|
.map_descendant_keyword_constants_for(klass, accumulator: {}) ⇒ Object
84
85
86
87
88
89
90
91
92
93
94
|
# File 'lib/glimmer/libui/control_proxy.rb', line 84
def map_descendant_keyword_constants_for(klass, accumulator: {})
klass.constants.map do |constant_symbol|
[constant_symbol, klass.const_get(constant_symbol)]
end.select do |constant_symbol, constant|
constant.is_a?(Module) && !accumulator.values.include?(constant)
end.each do |constant_symbol, constant|
accumulator[keyword(constant_symbol)] = constant
map_descendant_keyword_constants_for(constant, accumulator: accumulator)
end
accumulator
end
|
55
56
57
|
# File 'lib/glimmer/libui/control_proxy.rb', line 55
def
control_proxies.select {|c| c.keyword == 'menu' }
end
|
.new_control(keyword, args) ⇒ Object
63
64
65
|
# File 'lib/glimmer/libui/control_proxy.rb', line 63
def new_control(keyword, args)
::LibUI.send("new_#{keyword}", *args)
end
|
.reset_descendant_keyword_constant_map ⇒ Object
79
80
81
82
|
# File 'lib/glimmer/libui/control_proxy.rb', line 79
def reset_descendant_keyword_constant_map
@descendant_keyword_constant_map = nil
descendant_keyword_constant_map
end
|
41
42
43
|
# File 'lib/glimmer/libui/control_proxy.rb', line 41
def widget_proxy_class(keyword)
descendant_keyword_constant_map[keyword] || ControlProxy
end
|
Instance Method Details
#append_properties ⇒ Object
270
271
272
|
# File 'lib/glimmer/libui/control_proxy.rb', line 270
def append_properties
@parent_proxy&.class&.constants&.include?(:APPEND_PROPERTIES) ? @parent_proxy.class::APPEND_PROPERTIES : []
end
|
#append_property(property, value = nil) ⇒ Object
274
275
276
277
278
279
280
281
282
283
284
|
# File 'lib/glimmer/libui/control_proxy.rb', line 274
def append_property(property, value = nil)
property = property.to_s.sub(/(=|\?)$/, '')
@append_property_hash ||= {}
if value.nil?
value = @append_property_hash[property]
handle_string_property(property, handle_boolean_property(property, value))
else
value = Glimmer::LibUI.boolean_to_integer(value) if BOOLEAN_PROPERTIES.include?(property) && (value.is_a?(TrueClass) || value.is_a?(FalseClass))
@append_property_hash[property] = value
end
end
|
#can_handle_listener?(listener_name) ⇒ Boolean
162
163
164
165
166
|
# File 'lib/glimmer/libui/control_proxy.rb', line 162
def can_handle_listener?(listener_name)
::LibUI.respond_to?("#{libui_api_keyword}_#{listener_name}") ||
::LibUI.respond_to?("control_#{listener_name}") ||
has_custom_listener?(listener_name)
end
|
#content(&block) ⇒ Object
339
340
341
|
# File 'lib/glimmer/libui/control_proxy.rb', line 339
def content(&block)
Glimmer::DSL::Engine.add_content(self, Glimmer::DSL::Libui::ControlExpression.new, @keyword, &block)
end
|
#custom_listener_aliases ⇒ Object
188
189
190
|
# File 'lib/glimmer/libui/control_proxy.rb', line 188
def custom_listener_aliases
self.class.constants.include?(:LISTENER_ALIASES) ? self.class::LISTENER_ALIASES : {}
end
|
#custom_listeners ⇒ Object
184
185
186
|
# File 'lib/glimmer/libui/control_proxy.rb', line 184
def custom_listeners
self.class.constants.include?(:LISTENERS) ? self.class::LISTENERS : []
end
|
#default_destroy ⇒ Object
302
303
304
305
|
# File 'lib/glimmer/libui/control_proxy.rb', line 302
def default_destroy
send_to_libui('destroy')
ControlProxy.control_proxies.delete(self)
end
|
#destroy ⇒ Object
290
291
292
293
294
295
296
|
# File 'lib/glimmer/libui/control_proxy.rb', line 290
def destroy
if parent_proxy.nil?
default_destroy
else
parent_proxy.destroy_child(self)
end
end
|
#destroy_child(child) ⇒ Object
298
299
300
|
# File 'lib/glimmer/libui/control_proxy.rb', line 298
def destroy_child(child)
child.default_destroy
end
|
#enabled(value = nil) ⇒ Object
Also known as:
enabled?, set_enabled, enabled=
307
308
309
310
311
312
313
314
315
316
317
318
|
# File 'lib/glimmer/libui/control_proxy.rb', line 307
def enabled(value = nil)
if value.nil?
@enabled
elsif value != @enabled
@enabled = value == 1 || value
if value == 1 || value
send_to_libui('enable')
else
send_to_libui('disable')
end
end
end
|
#handle_custom_listener(listener_name, &listener) ⇒ Object
192
193
194
195
196
197
198
199
200
201
202
203
|
# File 'lib/glimmer/libui/control_proxy.rb', line 192
def handle_custom_listener(listener_name, &listener)
listener_name = listener_name.to_s
listener_name = custom_listener_aliases.stringify_keys[listener_name] || listener_name
instance_variable_name = "@#{listener_name}_procs"
instance_variable_set(instance_variable_name, []) if instance_variable_get(instance_variable_name).nil?
if listener.nil?
instance_variable_get(instance_variable_name)
else
instance_variable_get(instance_variable_name) << listener
listener
end
end
|
#handle_listener(listener_name, &listener) ⇒ Object
168
169
170
171
172
173
174
175
176
177
|
# File 'lib/glimmer/libui/control_proxy.rb', line 168
def handle_listener(listener_name, &listener)
safe_listener = Proc.new { listener.call(self) }
if ::LibUI.respond_to?("#{libui_api_keyword}_#{listener_name}")
::LibUI.send("#{libui_api_keyword}_#{listener_name}", @libui, &safe_listener)
elsif ::LibUI.respond_to?("control_#{listener_name}")
::LibUI.send("control_#{listener_name}", @libui, &safe_listener)
elsif has_custom_listener?(listener_name)
handle_custom_listener(listener_name, &listener)
end
end
|
#has_custom_listener?(listener_name) ⇒ Boolean
179
180
181
182
|
# File 'lib/glimmer/libui/control_proxy.rb', line 179
def has_custom_listener?(listener_name)
listener_name = listener_name.to_s
custom_listeners.include?(listener_name) || custom_listener_aliases.stringify_keys.keys.include?(listener_name)
end
|
#libui_api_keyword ⇒ Object
286
287
288
|
# File 'lib/glimmer/libui/control_proxy.rb', line 286
def libui_api_keyword
@keyword
end
|
#post_add_content ⇒ Object
Subclasses may override to perform post add_content work (normally must call super)
142
143
144
145
146
147
|
# File 'lib/glimmer/libui/control_proxy.rb', line 142
def post_add_content
unless @content_added
@parent_proxy&.post_initialize_child(self)
@content_added = true
end
end
|
#post_initialize_child(child) ⇒ Object
Subclasses may override to perform post initialization work on an added child
150
151
152
|
# File 'lib/glimmer/libui/control_proxy.rb', line 150
def post_initialize_child(child)
end
|
#respond_to?(method_name, *args, &block) ⇒ Boolean
205
206
207
208
209
210
211
212
213
214
|
# File 'lib/glimmer/libui/control_proxy.rb', line 205
def respond_to?(method_name, *args, &block)
respond_to_libui?(method_name, *args, &block) ||
(
append_properties.include?(method_name.to_s) ||
(append_properties.include?(method_name.to_s.sub(/\?$/, '')) && BOOLEAN_PROPERTIES.include?(method_name.to_s.sub(/\?$/, ''))) ||
append_properties.include?(method_name.to_s.sub(/=$/, ''))
) ||
can_handle_listener?(method_name.to_s) ||
super(method_name, true)
end
|
#respond_to_libui?(method_name, *args, &block) ⇒ Boolean
216
217
218
219
220
221
222
223
|
# File 'lib/glimmer/libui/control_proxy.rb', line 216
def respond_to_libui?(method_name, *args, &block)
::LibUI.respond_to?("control_#{method_name}") or
(::LibUI.respond_to?("control_#{method_name.to_s.sub(/\?$/, '')}") && BOOLEAN_PROPERTIES.include?(method_name.to_s.sub(/\?$/, '')) ) or
::LibUI.respond_to?("control_set_#{method_name.to_s.sub(/=$/, '')}") or
::LibUI.respond_to?("#{libui_api_keyword}_#{method_name}") or
(::LibUI.respond_to?("#{libui_api_keyword}_#{method_name.to_s.sub(/\?$/, '')}") && BOOLEAN_PROPERTIES.include?(method_name.to_s.sub(/\?$/, '')) ) or
::LibUI.respond_to?("#{libui_api_keyword}_set_#{method_name.to_s.sub(/=$/, '')}")
end
|
#send_to_libui(method_name, *args, &block) ⇒ Object
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
|
# File 'lib/glimmer/libui/control_proxy.rb', line 238
def send_to_libui(method_name, *args, &block)
if ::LibUI.respond_to?("#{libui_api_keyword}_#{method_name.to_s.sub(/\?$/, '')}") && args.empty?
property = method_name.to_s.sub(/\?$/, '')
value = ::LibUI.send("#{libui_api_keyword}_#{property}", @libui, *args)
handle_string_property(property, handle_boolean_property(property, value))
elsif ::LibUI.respond_to?("#{libui_api_keyword}_set_#{method_name.to_s.sub(/=$/, '')}") && !args.empty?
property = method_name.to_s.sub(/=$/, '')
args[0] = Glimmer::LibUI.boolean_to_integer(args.first) if BOOLEAN_PROPERTIES.include?(property) && (args.first.is_a?(TrueClass) || args.first.is_a?(FalseClass))
args[0] = '' if STRING_PROPERTIES.include?(property) && args.first == nil
if property.to_s == 'checked'
current_value = Glimmer::LibUI.integer_to_boolean(::LibUI.send("#{libui_api_keyword}_checked", @libui), allow_nil: false)
new_value = Glimmer::LibUI.integer_to_boolean(args[0], allow_nil: false)
::LibUI.send("#{libui_api_keyword}_set_#{property}", @libui, *args) if new_value != current_value
else
::LibUI.send("#{libui_api_keyword}_set_#{property}", @libui, *args)
end
elsif ::LibUI.respond_to?("#{libui_api_keyword}_#{method_name}") && !args.empty?
::LibUI.send("#{libui_api_keyword}_#{method_name}", @libui, *args)
elsif ::LibUI.respond_to?("control_#{method_name.to_s.sub(/\?$/, '')}") && args.empty?
property = method_name.to_s.sub(/\?$/, '')
value = ::LibUI.send("control_#{property}", @libui, *args)
handle_string_property(property, handle_boolean_property(property, value))
elsif ::LibUI.respond_to?("control_set_#{method_name.to_s.sub(/=$/, '')}")
property = method_name.to_s.sub(/=$/, '')
args[0] = Glimmer::LibUI.boolean_to_integer(args.first) if BOOLEAN_PROPERTIES.include?(property) && (args.first.is_a?(TrueClass) || args.first.is_a?(FalseClass))
args[0] = '' if STRING_PROPERTIES.include?(property) && args.first == nil
::LibUI.send("control_set_#{method_name.to_s.sub(/=$/, '')}", @libui, *args)
elsif ::LibUI.respond_to?("control_#{method_name}") && !args.empty?
::LibUI.send("control_#{method_name}", @libui, *args)
end
end
|
#visible(value = nil) ⇒ Object
Also known as:
visible?, set_visible, visible=
323
324
325
326
327
328
329
330
331
332
333
334
|
# File 'lib/glimmer/libui/control_proxy.rb', line 323
def visible(value = nil)
current_value = send_to_libui('visible')
if value.nil?
current_value
elsif value != current_value
if value == 1 || value
send_to_libui('show')
else
send_to_libui('hide')
end
end
end
|
#window_proxy ⇒ Object
154
155
156
157
158
159
160
|
# File 'lib/glimmer/libui/control_proxy.rb', line 154
def window_proxy
found_proxy = self
until found_proxy.nil? || found_proxy.is_a?(WindowProxy)
found_proxy = found_proxy.parent_proxy
end
found_proxy
end
|