Sha256: fed54ef569c90c47b714ffb42032aae82971cb3fe37625057e2ce03959743901

Contents?: true

Size: 953 Bytes

Versions: 2

Compression:

Stored size: 953 Bytes

Contents

# frozen_string_literal: true

Gtk.load_class :Container
module Gtk
  # Overrides for GtkContainer
  class Container
    def add_with_properties(widget, properties)
      add widget
      properties.each do |property_name, value|
        child_set_property widget, property_name.to_s, value
      end
    end

    setup_instance_method :child_get_property

    def child_get_property_with_override(widget, property_name)
      param_spec = object_class.find_child_property property_name
      unless param_spec
        raise ArgumentError,
          "child property named '#{property_name}' not found in #{self.class}"
      end
      gtype = param_spec.value_type
      gvalue = GObject::Value.for_gtype gtype

      child_get_property_without_override widget, property_name, gvalue
      gvalue.get_value
    end

    alias child_get_property_without_override child_get_property
    alias child_get_property child_get_property_with_override
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
gir_ffi-gtk-0.12.1 lib/gir_ffi-gtk/container.rb
gir_ffi-gtk-0.12.0 lib/gir_ffi-gtk/container.rb