Class: Glimmer::LibUI::ControlProxy::FontButtonProxy

Inherits:
Glimmer::LibUI::ControlProxy show all
Defined in:
lib/glimmer/libui/control_proxy/font_button_proxy.rb

Overview

Proxy for LibUI font button objects

Follows the Proxy Design Pattern

Constant Summary

Constants inherited from Glimmer::LibUI::ControlProxy

BOOLEAN_PROPERTIES, KEYWORD_ALIASES, STRING_PROPERTIES, TransformProxy

Instance Attribute Summary

Attributes inherited from Glimmer::LibUI::ControlProxy

#args, #block, #content_added, #custom_control, #keyword, #libui, #options, #parent_custom_control, #parent_proxy, #slot

Instance Method Summary collapse

Methods inherited from Glimmer::LibUI::ControlProxy

#append_properties, #append_property, #bind_content, #can_handle_listener?, constant_symbol, #content, control_proxies, control_proxy_class, create, #custom_listener_name_aliases, #custom_listener_names, #default_destroy, #deregister_all_custom_listeners, #deregister_custom_listeners, descendant_keyword_constant_map, #destroy_child, #enabled, exists?, #handle_custom_listener, #handle_listener, #has_custom_listener?, image_proxies, #initialize, keyword, #libui_api_keyword, #listeners, #listeners_for, main_window_proxy, map_descendant_keyword_constants_for, menu_proxies, #method_missing, new_control, #notify_custom_listeners, #post_add_content, #post_initialize_child, reset_descendant_keyword_constant_map, #respond_to?, #respond_to_libui?, #send_to_libui, #visible, #window_proxy

Methods included from DataBindable

#data_bind, #data_binding_model_attribute_observer_registrations

Methods included from Parent

#children, #post_initialize_child

Constructor Details

This class inherits a constructor from Glimmer::LibUI::ControlProxy

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Glimmer::LibUI::ControlProxy

Instance Method Details

#data_bind_read(property, model_binding) ⇒ Object



68
69
70
# File 'lib/glimmer/libui/control_proxy/font_button_proxy.rb', line 68

def data_bind_read(property, model_binding)
  # No Op
end

#data_bind_write(property, model_binding) ⇒ Object



72
73
74
# File 'lib/glimmer/libui/control_proxy/font_button_proxy.rb', line 72

def data_bind_write(property, model_binding)
  handle_listener('on_changed') { model_binding.call(font) } if property == 'font'
end

#destroyObject



63
64
65
66
# File 'lib/glimmer/libui/control_proxy/font_button_proxy.rb', line 63

def destroy
  ::LibUI.free_font_button_font(@font_descriptor) unless @font_descriptor.nil?
  super
end

#familyObject



43
44
45
# File 'lib/glimmer/libui/control_proxy/font_button_proxy.rb', line 43

def family
  font[:family]
end

#fontObject



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/glimmer/libui/control_proxy/font_button_proxy.rb', line 31

def font
  @font_descriptor ||= ::LibUI::FFI::FontDescriptor.malloc
  ::LibUI.font_button_font(@libui, @font_descriptor)
  {
    family: @font_descriptor.Family.to_s,
    size: @font_descriptor.Size,
    weight: Glimmer::LibUI.enum_value_to_symbol(:text_weight, @font_descriptor.Weight),
    italic: Glimmer::LibUI.enum_value_to_symbol(:text_italic, @font_descriptor.Italic),
    stretch: Glimmer::LibUI.enum_value_to_symbol(:text_stretch, @font_descriptor.Stretch),
  }
end

#italicObject



55
56
57
# File 'lib/glimmer/libui/control_proxy/font_button_proxy.rb', line 55

def italic
  font[:italic]
end

#sizeObject



47
48
49
# File 'lib/glimmer/libui/control_proxy/font_button_proxy.rb', line 47

def size
  font[:size]
end

#stretchObject



59
60
61
# File 'lib/glimmer/libui/control_proxy/font_button_proxy.rb', line 59

def stretch
  font[:stretch]
end

#weightObject



51
52
53
# File 'lib/glimmer/libui/control_proxy/font_button_proxy.rb', line 51

def weight
  font[:weight]
end