require "set" require "widget" class Window include Widget @windows = Set.new class << self def register(window) @windows << window end def remove(window) @windows.delete(window) end end def initialize Window.register(self) super @font = Font.new(Runtime.find(:font, "DejaVuSansMono"), 20) @buffer_widget = BufferWidget.new(Buffer.new, @font) end def close Window.remove(self) end def render @buffer_widget.draw end def resize(x, y, width, height) super @buffer_widget.resize(x, y, width, height) end end