class Gtk::Loader

Public Instance Methods

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

Private Instance Methods

apply_methods_modules() click to toggle source
# File lib/gtk4/loader.rb, line 48
def apply_methods_modules
  apply_methods_module(@widget_methods_module,
                       @base_module::Widget)
end
apply_pending_constants() click to toggle source
# File lib/gtk4/loader.rb, line 200
def apply_pending_constants
  @pending_constants.each do |info|
    case info.name
    when /\ALEVEL_BAR_/
      level_bar_class.const_set($POSTMATCH, info.value)
    when /\ASTYLE_PROVIDER_/
      style_provider_module.const_set($POSTMATCH, info.value)
    end
  end
end
call_init_function(repository, namespace) click to toggle source
# File lib/gtk4/loader.rb, line 32
def call_init_function(repository, namespace)
  init_check = repository.find(namespace, "init_check")
  succeeded = init_check.invoke([])
  raise InitError, "failed to initialize GTK" unless succeeded
end
define_methods_modules() click to toggle source
# File lib/gtk4/loader.rb, line 43
def define_methods_modules
  @widget_methods_module =
    define_methods_module(:WidgetMethods)
end
define_version_module() click to toggle source
# File lib/gtk4/loader.rb, line 38
def define_version_module
  @version_module = Module.new
  @base_module.const_set("Version", @version_module)
end
level_bar_class() click to toggle source
# File lib/gtk4/loader.rb, line 53
def level_bar_class
  @level_bar_class ||= @base_module.const_get(:LevelBar)
end
load_constant_info(info) click to toggle source
Calls superclass method
# File lib/gtk4/loader.rb, line 183
def load_constant_info(info)
  case info.name
  when /_VERSION\z/
    @version_module.const_set($PREMATCH, info.value)
  when /\ALEVEL_BAR_/
    @pending_constants << info
  when /\ASTYLE_PROVIDER_/
    @pending_constants << info
  else
    super
  end
end
load_function_info(info) click to toggle source
Calls superclass method
# File lib/gtk4/loader.rb, line 131
def load_function_info(info)
  name = info.name
  case name
  when "init", "init_check"
    # ignore
  when /\Atest_widget_/
    name = $POSTMATCH
    define_method(info, @widget_methods_module, name)
  else
    super
  end
end
load_method_info(info, klass, method_name) click to toggle source
Calls superclass method
# File lib/gtk4/loader.rb, line 155
def load_method_info(info, klass, method_name)
  case klass.name
  when "Gtk::Builder"
    case method_name
    when "get_type_from_name"
      method_name = "get_type"
    end
  when "Gtk::Image"
    method_name = method_name.gsub(/\Agicon/, "icon")
  when "Gtk::TreePath"
    case method_name
    when "next", "prev", "up", "down"
      method_name += "!"
    end
  when "Gtk::TreeSelection"
    case method_name
    when "selected_foreach"
      method_name = "each"
    end
  when "Gtk::TreeView"
    case method_name
    when "row_expanded"
      method_name += "?"
    end
  end
  super(info, klass, method_name)
end
post_load(repository, namespace) click to toggle source
# File lib/gtk4/loader.rb, line 61
def post_load(repository, namespace)
  apply_pending_constants
  apply_methods_modules
  require_extension
  require_libraries
end
pre_load(repository, namespace) click to toggle source
# File lib/gtk4/loader.rb, line 25
def pre_load(repository, namespace)
  call_init_function(repository, namespace)
  define_version_module
  define_methods_modules
  setup_pending_constants
end
require_extension() click to toggle source
# File lib/gtk4/loader.rb, line 68
def require_extension
  require "gtk4.so"
end
require_libraries() click to toggle source
# File lib/gtk4/loader.rb, line 72
def require_libraries
  require_relative "gdk-display"

  require_relative "about-dialog"
  require_relative "application"
  require_relative "binding-set"
  require_relative "border"
  require_relative "box"
  require_relative "button"
  require_relative "builder"
  require_relative "cell-layout"
  require_relative "color-chooser-dialog"
  require_relative "combo-box"
  require_relative "combo-box-text"
  require_relative "css-provider"
  require_relative "dialog"
  require_relative "entry"
  require_relative "entry-buffer"
  require_relative "file-chooser-dialog"
  require_relative "font-chooser-dialog"
  require_relative "gesture-multi-press"
  require_relative "icon-theme"
  require_relative "icon-view"
  require_relative "image"
  require_relative "label"
  require_relative "level-bar"
  require_relative "list-store"
  require_relative "message-dialog"
  require_relative "paned"
  require_relative "response-type"
  require_relative "scale-button"
  require_relative "scrolled-window"
  require_relative "search-bar"
  require_relative "spin-button"
  require_relative "show-uri"
  require_relative "stack"
  require_relative "style-context"
  require_relative "text-buffer"
  require_relative "text-iter"
  require_relative "text-tag"
  require_relative "text-tag-table"
  require_relative "text-view"
  require_relative "toggle-button"
  require_relative "tree-iter"
  require_relative "tree-model"
  require_relative "tree-model-filter"
  require_relative "tree-model-sort"
  require_relative "tree-path"
  require_relative "tree-selection"
  require_relative "tree-sortable"
  require_relative "tree-store"
  require_relative "tree-view"
  require_relative "tree-view-column"
  require_relative "version"
  require_relative "widget"

  require_relative "deprecated"
end
rubyish_method_name(function_info, options={}) click to toggle source
Calls superclass method
# File lib/gtk4/loader.rb, line 144
def rubyish_method_name(function_info, options={})
  name = function_info.name
  case name
  when "list_toplevels"
    # To avoid conflict with gtk_window_get_toplevels()
    name
  else
    super
  end
end
setup_pending_constants() click to toggle source
# File lib/gtk4/loader.rb, line 196
def setup_pending_constants
  @pending_constants = []
end
style_provider_module() click to toggle source
# File lib/gtk4/loader.rb, line 57
def style_provider_module
  @style_provider_module ||= @base_module.const_get(:StyleProvider)
end