Class: Glimmer::LibUI::ControlProxy
- Inherits:
-
Object
- Object
- Glimmer::LibUI::ControlProxy
show all
- 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/window_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, 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, 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
-
#data_bind(property, model_binding) ⇒ Object
Data-binds model to update view.
-
#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
Constructor Details
#initialize(keyword, parent, args, &block) ⇒ ControlProxy
Returns a new instance of ControlProxy.
127
128
129
130
131
132
133
134
135
|
# File 'lib/glimmer/libui/control_proxy.rb', line 127
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
221
222
223
224
225
226
227
228
229
230
231
232
|
# File 'lib/glimmer/libui/control_proxy.rb', line 221
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
125
126
127
|
# File 'lib/glimmer/libui/control_proxy.rb', line 125
def args
@args
end
|
#block ⇒ Object
libui returns the contained LibUI object
125
126
127
|
# File 'lib/glimmer/libui/control_proxy.rb', line 125
def block
@block
end
|
#keyword ⇒ Object
libui returns the contained LibUI object
125
126
127
|
# File 'lib/glimmer/libui/control_proxy.rb', line 125
def keyword
@keyword
end
|
#libui ⇒ Object
libui returns the contained LibUI object
125
126
127
|
# File 'lib/glimmer/libui/control_proxy.rb', line 125
def libui
@libui
end
|
#parent_proxy ⇒ Object
libui returns the contained LibUI object
125
126
127
|
# File 'lib/glimmer/libui/control_proxy.rb', line 125
def parent_proxy
@parent_proxy
end
|
Class Method Details
.constant_symbol(keyword) ⇒ Object
65
66
67
|
# File 'lib/glimmer/libui/control_proxy.rb', line 65
def constant_symbol(keyword)
"#{keyword.camelcase(:upper)}Proxy".to_sym
end
|
.control_proxies ⇒ Object
autosave all controls in this array to avoid garbage collection
44
45
46
47
|
# File 'lib/glimmer/libui/control_proxy.rb', line 44
def control_proxies
@@control_proxies = [] unless defined?(@@control_proxies)
@@control_proxies
end
|
.create(keyword, parent, args, &block) ⇒ Object
35
36
37
|
# File 'lib/glimmer/libui/control_proxy.rb', line 35
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
73
74
75
|
# File 'lib/glimmer/libui/control_proxy.rb', line 73
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
29
30
31
32
33
|
# File 'lib/glimmer/libui/control_proxy.rb', line 29
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
57
58
59
|
# File 'lib/glimmer/libui/control_proxy.rb', line 57
def image_proxies
control_proxies.select {|c| c.keyword == 'image' }
end
|
.keyword(constant_symbol) ⇒ Object
69
70
71
|
# File 'lib/glimmer/libui/control_proxy.rb', line 69
def keyword(constant_symbol)
constant_symbol.to_s.underscore.sub(/_proxy$/, '')
end
|
.main_window_proxy ⇒ Object
49
50
51
|
# File 'lib/glimmer/libui/control_proxy.rb', line 49
def main_window_proxy
control_proxies.find {|c| c.is_a?(WindowProxy)}
end
|
.map_descendant_keyword_constants_for(klass, accumulator: {}) ⇒ Object
82
83
84
85
86
87
88
89
90
91
92
|
# File 'lib/glimmer/libui/control_proxy.rb', line 82
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
|
53
54
55
|
# File 'lib/glimmer/libui/control_proxy.rb', line 53
def
control_proxies.select {|c| c.keyword == 'menu' }
end
|
.new_control(keyword, args) ⇒ Object
61
62
63
|
# File 'lib/glimmer/libui/control_proxy.rb', line 61
def new_control(keyword, args)
::LibUI.send("new_#{keyword}", *args)
end
|
.reset_descendant_keyword_constant_map ⇒ Object
77
78
79
80
|
# File 'lib/glimmer/libui/control_proxy.rb', line 77
def reset_descendant_keyword_constant_map
@descendant_keyword_constant_map = nil
descendant_keyword_constant_map
end
|
39
40
41
|
# File 'lib/glimmer/libui/control_proxy.rb', line 39
def widget_proxy_class(keyword)
descendant_keyword_constant_map[keyword] || ControlProxy
end
|
Instance Method Details
#append_properties ⇒ Object
266
267
268
|
# File 'lib/glimmer/libui/control_proxy.rb', line 266
def append_properties
@parent_proxy&.class&.constants&.include?(:APPEND_PROPERTIES) ? @parent_proxy.class::APPEND_PROPERTIES : []
end
|
#append_property(property, value = nil) ⇒ Object
270
271
272
273
274
275
276
277
278
279
280
|
# File 'lib/glimmer/libui/control_proxy.rb', line 270
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
158
159
160
161
162
|
# File 'lib/glimmer/libui/control_proxy.rb', line 158
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
#custom_listener_aliases ⇒ Object
184
185
186
|
# File 'lib/glimmer/libui/control_proxy.rb', line 184
def custom_listener_aliases
self.class.constants.include?(:LISTENER_ALIASES) ? self.class::LISTENER_ALIASES : {}
end
|
#custom_listeners ⇒ Object
180
181
182
|
# File 'lib/glimmer/libui/control_proxy.rb', line 180
def custom_listeners
self.class.constants.include?(:LISTENERS) ? self.class::LISTENERS : []
end
|
#data_bind(property, model_binding) ⇒ Object
Data-binds model to update view. Subclasses can override to do inverse data-binding by observing view control for property changes and updating model binding accordingly
337
338
339
340
341
342
343
344
345
|
# File 'lib/glimmer/libui/control_proxy.rb', line 337
def data_bind(property, model_binding)
model_attribute_observer = Glimmer::DataBinding::Observer.proc do
new_value = model_binding.evaluate_property
send("#{property}=", new_value) unless send(property) == new_value
end
model_attribute_observer.observe(model_binding)
model_attribute_observer.call model_attribute_observer
end
|
#default_destroy ⇒ Object
298
299
300
301
|
# File 'lib/glimmer/libui/control_proxy.rb', line 298
def default_destroy
send_to_libui('destroy')
ControlProxy.control_proxies.delete(self)
end
|
#destroy ⇒ Object
286
287
288
289
290
291
292
|
# File 'lib/glimmer/libui/control_proxy.rb', line 286
def destroy
if parent_proxy.nil?
default_destroy
else
parent_proxy.destroy_child(self)
end
end
|
#destroy_child(child) ⇒ Object
294
295
296
|
# File 'lib/glimmer/libui/control_proxy.rb', line 294
def destroy_child(child)
child.default_destroy
end
|
#enabled(value = nil) ⇒ Object
Also known as:
enabled?, set_enabled, enabled=
303
304
305
306
307
308
309
310
311
312
313
314
|
# File 'lib/glimmer/libui/control_proxy.rb', line 303
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
188
189
190
191
192
193
194
195
196
197
198
199
|
# File 'lib/glimmer/libui/control_proxy.rb', line 188
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
164
165
166
167
168
169
170
171
172
173
|
# File 'lib/glimmer/libui/control_proxy.rb', line 164
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
175
176
177
178
|
# File 'lib/glimmer/libui/control_proxy.rb', line 175
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
282
283
284
|
# File 'lib/glimmer/libui/control_proxy.rb', line 282
def libui_api_keyword
@keyword
end
|
#post_add_content ⇒ Object
Subclasses may override to perform post add_content work (normally must call super)
138
139
140
141
142
143
|
# File 'lib/glimmer/libui/control_proxy.rb', line 138
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
146
147
148
|
# File 'lib/glimmer/libui/control_proxy.rb', line 146
def post_initialize_child(child)
end
|
#respond_to?(method_name, *args, &block) ⇒ Boolean
201
202
203
204
205
206
207
208
209
210
|
# File 'lib/glimmer/libui/control_proxy.rb', line 201
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
212
213
214
215
216
217
218
219
|
# File 'lib/glimmer/libui/control_proxy.rb', line 212
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
234
235
236
237
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
|
# File 'lib/glimmer/libui/control_proxy.rb', line 234
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))
new_value = Glimmer::LibUI.integer_to_boolean(args[0])
::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=
319
320
321
322
323
324
325
326
327
328
329
330
|
# File 'lib/glimmer/libui/control_proxy.rb', line 319
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
150
151
152
153
154
155
156
|
# File 'lib/glimmer/libui/control_proxy.rb', line 150
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
|