class Gtk::Widget

Public Class Methods

bind_template_child(name, options={}) click to toggle source
# File lib/gtk4/widget.rb, line 43
def bind_template_child(name, options={})
  internal_child = options[:internal_child]
  internal_child = false if internal_child.nil?
  bind_template_child_full(name, internal_child, 0)
  template_children << name
  attr_reader(name)
end
have_template?() click to toggle source
# File lib/gtk4/widget.rb, line 20
def have_template?
  @have_template ||= false
end
set_template(template) click to toggle source
# File lib/gtk4/widget.rb, line 30
def set_template(template)
  resource = template[:resource]
  data = template[:data]
  if resource
    set_template_from_resource(resource)
  else
    set_template_raw(data)
  end
  @scope = Gtk::RubyBuilderScope.new
  set_template_scope(@scope)
  @have_template = true
end
template_children() click to toggle source
# File lib/gtk4/widget.rb, line 24
def template_children
  @template_children ||= []
end

Public Instance Methods

children() click to toggle source
# File lib/gtk4/widget.rb, line 97
def children
  _children = []
  child = first_child
  while child
    _children << child
    child = child.next_sibling
  end
  _children
end
insert_action_group(name, group) click to toggle source
# File lib/gtk4/widget.rb, line 87
def insert_action_group(name, group)
  insert_action_group_raw(name, group)
  @action_groups ||= {}
  if group.nil?
    @action_groups.delete(name)
  else
    @action_groups[name] = group
  end
end
Also aliased as: insert_action_group_raw
insert_action_group_raw(name, group)
Alias for: insert_action_group
set_size_request(*args) click to toggle source
# File lib/gtk4/widget.rb, line 54
def set_size_request(*args)
  case args.size
  when 1
    options = args[0]
    raise ArgumentError, ":width is missing" unless options.key?(:width)
    width = options[:width]
    raise ArgumentError, ":height is missing" unless options.key?(:height)
    height = options[:height]
  when 2
    width, height = args
  else
    message = "wrong number of arguments (given #{args.size}, expected 1..2)"
    raise ArgumentError, message
  end
  set_size_request_raw(width, height)
end
Also aliased as: set_size_request_raw
set_size_request_raw(*args)
Alias for: set_size_request
style_context() click to toggle source
# File lib/gtk4/widget.rb, line 82
def style_context
  @style_context ||= style_context_raw
end
Also aliased as: style_context_raw
style_context_raw()
Alias for: style_context
translate_coordinates(widget, x, y) click to toggle source
# File lib/gtk4/widget.rb, line 72
def translate_coordinates(widget, x, y)
  translated, x, y = translate_coordinates_raw(widget, x, y)
  if translated
    [x, y]
  else
    nil
  end
end
Also aliased as: translate_coordinates_raw
translate_coordinates_raw(widget, x, y)

Private Instance Methods

initialize_post() click to toggle source
# File lib/gtk4/widget.rb, line 108
def initialize_post
  klass = self.class
  return unless klass.have_template?
  return unless respond_to?(:init_template)

  init_template
  gtype = klass.gtype
  klass.template_children.each do |name|
    instance_variable_set("@#{name}", get_template_child(gtype, name))
  end
end