class Gdk::Loader

Public Instance Methods

load() click to toggle source
Calls superclass method
# File lib/gdk4/loader.rb, line 19
def load
  self.version = "4.0"
  super("Gdk")
end

Private Instance Methods

apply_cairo_context_methods() click to toggle source
# File lib/gdk4/loader.rb, line 62
def apply_cairo_context_methods
  apply_methods_module(@cairo_context_methods_module, Cairo::Context)
end
apply_cairo_surface_methods() click to toggle source
# File lib/gdk4/loader.rb, line 71
def apply_cairo_surface_methods
  apply_methods_module(@cairo_surface_methods_module, Cairo::Surface)
end
apply_event_methods() click to toggle source
# File lib/gdk4/loader.rb, line 52
def apply_event_methods
  apply_methods_module(@event_methods_module,
                       event_class)
end
apply_pending_constants() click to toggle source
# File lib/gdk4/loader.rb, line 92
def apply_pending_constants
  @pending_constants.each do |info|
    case info.name
    when /\AEVENT_/
      event_class.const_set($POSTMATCH, info.value)
    end
  end
end
apply_pending_rectangle_functions() click to toggle source
# File lib/gdk4/loader.rb, line 106
def apply_pending_rectangle_functions
  get_type_info = @pending_rectangle_get_type_function
  if get_type_info
    rectangle_class = load_cairo_rectangle_int
    gtype = get_type_info.invoke([])
    self.class.register_boxed_class_converter(gtype) do |rectangle|
      rectangle_class
    end
  else
    rectangle_class = @base_module.const_get(:Rectangle)
  end

  @pending_rectangle_functions.each do |info|
    name = rubyish_method_name(info, :prefix => "rectangle_")
    define_method(info, rectangle_class, name)
  end
end
define_cairo_context_methods_module() click to toggle source
# File lib/gdk4/loader.rb, line 57
def define_cairo_context_methods_module
  @cairo_context_methods_module =
    define_methods_module(:CairoContextMethods)
end
define_cairo_surface_methods_module() click to toggle source
# File lib/gdk4/loader.rb, line 66
def define_cairo_surface_methods_module
  @cairo_surface_methods_module =
    define_methods_module(:CairoSurfaceMethods)
end
define_event_methods_module() click to toggle source
# File lib/gdk4/loader.rb, line 47
def define_event_methods_module
  @event_methods_module =
    define_methods_module(:EventMethods)
end
define_keyval_module() click to toggle source
# File lib/gdk4/loader.rb, line 39
def define_keyval_module
  @keyval_module = define_methods_module(:Keyval)
end
event_class() click to toggle source
# File lib/gdk4/loader.rb, line 25
def event_class
  @event_class ||= @base_module.const_get(:Event)
end
find_cairo_rectangle_int_info() click to toggle source
# File lib/gdk4/loader.rb, line 135
def find_cairo_rectangle_int_info
  repository = GObjectIntrospection::Repository.default
  repository.each("cairo") do |info|
    if info.name == "RectangleInt"
      return info
    end
  end
  nil
end
load_cairo_rectangle_int() click to toggle source
# File lib/gdk4/loader.rb, line 124
def load_cairo_rectangle_int
  info = find_cairo_rectangle_int_info
  klass = self.class.define_class(info.gtype,
                                  "Rectangle",
                                  @base_module,
                                  :size => info.size)
  load_fields(info, klass)
  load_methods(info, klass)
  klass
end
load_constant_info(info) click to toggle source
Calls superclass method
# File lib/gdk4/loader.rb, line 213
def load_constant_info(info)
  case info.name
  when /\AEVENT_/
    @pending_constants << info
  when /\AKEY_/
    @keyval_module.const_set(info.name, info.value)
  else
    super
  end
end
load_function_info(info) click to toggle source
Calls superclass method
# File lib/gdk4/loader.rb, line 158
def load_function_info(info)
  name = info.name
  case name
  when "rectangle_get_type"
    @pending_rectangle_get_type_function = info
  when /\Arectangle_/
    @pending_rectangle_functions << info
  when "init", /_get_type\z/
    # ignore
  when /\Apixbuf_/
    target_class = nil
    case $POSTMATCH
    when "get_from_surface"
      target_class = @cairo_surface_methods_module
    end
    if target_class
      define_method(info, target_class, "to_pixbuf")
    else
      super
    end
  when /\Aevents_/
    method_name = rubyish_method_name(info, :prefix => "events_")
    define_method(info, @event_methods_module, method_name)
  when /\Acairo_/
    name = $POSTMATCH
    case name
    when "set_source_color"
      define_method(info,
                    @cairo_context_methods_module,
                    "set_source_gdk_color")
    when "set_source_rgba"
      define_method(info,
                    @cairo_context_methods_module,
                    "set_source_gdk_rgba")
    when "rectangle"
      define_method(info,
                    @cairo_context_methods_module,
                    "gdk_rectangle")
    when "region_create_from_surface"
      # TODO
    else
      define_method(info, @cairo_context_methods_module, name)
    end
  when /\Akeyval_/
    name = rubyish_method_name(info, :prefix => "keyval_")
    case name
    when "name"
      name = "to_name"
    end
    define_module_function(info, @keyval_module, name)
  else
    super
  end
end
may_be_cached?(constructor_info, klass) click to toggle source
# File lib/gdk4/loader.rb, line 224
def may_be_cached?(constructor_info, klass)
  case klass.name
  when "Gdk::Cursor"
    case constructor_info.name
    when "new_from_name", "new_for_display"
      true
      # false
    else
      false
    end
  else
    false
  end
end
post_keyval_module() click to toggle source
# File lib/gdk4/loader.rb, line 43
def post_keyval_module
  post_methods_module(@keyval_module)
end
post_load(repository, namespace) click to toggle source
# File lib/gdk4/loader.rb, line 78
def post_load(repository, namespace)
  apply_pending_constants
  apply_pending_rectangle_functions
  post_keyval_module
  apply_event_methods
  apply_cairo_context_methods
  apply_cairo_surface_methods
  require_post_libraries
end
pre_load(repository, namespace) click to toggle source
# File lib/gdk4/loader.rb, line 29
def pre_load(repository, namespace)
  setup_pending_constants
  setup_pending_rectangle_functions
  define_keyval_module
  define_event_methods_module
  define_cairo_context_methods_module
  define_cairo_surface_methods_module
  require_pre_libraries
end
require_post_libraries() click to toggle source
# File lib/gdk4/loader.rb, line 145
def require_post_libraries
  require_relative "cursor"
  require_relative "memory-texture"
  require_relative "paintable"
  require_relative "rectangle"
  require_relative "rgba"
  require_relative "texture"

  require_relative "cairo"

  require_relative "deprecated"
end
require_pre_libraries() click to toggle source
# File lib/gdk4/loader.rb, line 75
def require_pre_libraries
end
setup_pending_constants() click to toggle source
# File lib/gdk4/loader.rb, line 88
def setup_pending_constants
  @pending_constants = []
end
setup_pending_rectangle_functions() click to toggle source
# File lib/gdk4/loader.rb, line 101
def setup_pending_rectangle_functions
  @pending_rectangle_get_type_function = nil
  @pending_rectangle_functions = []
end