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
-
#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
218
219
220
221
222
223
224
225
226
227
228
229
|
# File 'lib/glimmer/libui/control_proxy.rb', line 218
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
263
264
265
|
# File 'lib/glimmer/libui/control_proxy.rb', line 263
def append_properties
@parent_proxy&.class&.constants&.include?(:APPEND_PROPERTIES) ? @parent_proxy.class::APPEND_PROPERTIES : []
end
|
#append_property(property, value = nil) ⇒ Object
267
268
269
270
271
272
273
274
275
276
277
|
# File 'lib/glimmer/libui/control_proxy.rb', line 267
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
155
156
157
158
159
|
# File 'lib/glimmer/libui/control_proxy.rb', line 155
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
332
333
334
|
# File 'lib/glimmer/libui/control_proxy.rb', line 332
def content(&block)
Glimmer::DSL::Engine.add_content(self, Glimmer::DSL::Libui::ControlExpression.new, @keyword, &block)
end
|
#custom_listener_aliases ⇒ Object
181
182
183
|
# File 'lib/glimmer/libui/control_proxy.rb', line 181
def custom_listener_aliases
self.class.constants.include?(:LISTENER_ALIASES) ? self.class::LISTENER_ALIASES : {}
end
|
#custom_listeners ⇒ Object
177
178
179
|
# File 'lib/glimmer/libui/control_proxy.rb', line 177
def custom_listeners
self.class.constants.include?(:LISTENERS) ? self.class::LISTENERS : []
end
|
#default_destroy ⇒ Object
295
296
297
298
|
# File 'lib/glimmer/libui/control_proxy.rb', line 295
def default_destroy
send_to_libui('destroy')
ControlProxy.control_proxies.delete(self)
end
|
#destroy ⇒ Object
283
284
285
286
287
288
289
|
# File 'lib/glimmer/libui/control_proxy.rb', line 283
def destroy
if parent_proxy.nil?
default_destroy
else
parent_proxy.destroy_child(self)
end
end
|
#destroy_child(child) ⇒ Object
291
292
293
|
# File 'lib/glimmer/libui/control_proxy.rb', line 291
def destroy_child(child)
child.default_destroy
end
|
#enabled(value = nil) ⇒ Object
Also known as:
enabled?, set_enabled, enabled=
300
301
302
303
304
305
306
307
308
309
310
311
|
# File 'lib/glimmer/libui/control_proxy.rb', line 300
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
185
186
187
188
189
190
191
192
193
194
195
196
|
# File 'lib/glimmer/libui/control_proxy.rb', line 185
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
161
162
163
164
165
166
167
168
169
170
|
# File 'lib/glimmer/libui/control_proxy.rb', line 161
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
172
173
174
175
|
# File 'lib/glimmer/libui/control_proxy.rb', line 172
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
279
280
281
|
# File 'lib/glimmer/libui/control_proxy.rb', line 279
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
|
# File 'lib/glimmer/libui/control_proxy.rb', line 138
def post_add_content
@parent_proxy&.post_initialize_child(self)
end
|
#post_initialize_child(child) ⇒ Object
Subclasses may override to perform post initialization work on an added child
143
144
145
|
# File 'lib/glimmer/libui/control_proxy.rb', line 143
def post_initialize_child(child)
end
|
#respond_to?(method_name, *args, &block) ⇒ Boolean
198
199
200
201
202
203
204
205
206
207
|
# File 'lib/glimmer/libui/control_proxy.rb', line 198
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
209
210
211
212
213
214
215
216
|
# File 'lib/glimmer/libui/control_proxy.rb', line 209
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
231
232
233
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
|
# File 'lib/glimmer/libui/control_proxy.rb', line 231
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=
316
317
318
319
320
321
322
323
324
325
326
327
|
# File 'lib/glimmer/libui/control_proxy.rb', line 316
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
147
148
149
150
151
152
153
|
# File 'lib/glimmer/libui/control_proxy.rb', line 147
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
|