class Module

Public Class Methods

extended(obj) click to toggle source
# File lib/vizkit/plugin_extensions.rb, line 31
def self.extended(obj)
    if respond_to?(:setup)
        setup(obj)
    end
end
new() click to toggle source
# File lib/vizkit/plugin_extensions.rb, line 26
def self.new
    widget = Vizkit.default_loader.send(class_name)
    widget.extend self
    widget
end

Public Instance Methods

vizkit_subclass_of(class_name) click to toggle source

Shortcut to define the necessary methods so that a module can be used to “subclass” a Qt widget

This is done with

require 'vizkit'
module MapView
  vizkit_subclass_of 'ImageView'
end
Vizkit::UILoader.register_ruby_widget 'MapView', MapView.method(:new)

If some initial configuration is needed, one should define the 'setup' singleton method:

module MapView
  vizkit_subclass_of 'ImageView'
  def self.setup(obj)
    obj.setAspectRatio(true)
  end
end
# File lib/vizkit/plugin_extensions.rb, line 24
def vizkit_subclass_of(class_name)
    class_eval do
        def self.new
            widget = Vizkit.default_loader.send(class_name)
            widget.extend self
            widget
        end
        def self.extended(obj)
            if respond_to?(:setup)
                setup(obj)
            end
        end
    end
end