From 0244338e94f508bc38dbc6d3d1c5d767b25b450e Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Thu, 14 Aug 2014 21:51:19 -0400 Subject: [PATCH] add BufferWidget#initialize, #render, add a BufferWidget to Window --- runtime/lib/buffer_widget.rb | 13 +++++++++++++ runtime/lib/window.rb | 8 ++++++++ 2 files changed, 21 insertions(+) diff --git a/runtime/lib/buffer_widget.rb b/runtime/lib/buffer_widget.rb index 6e96326..c60503e 100644 --- a/runtime/lib/buffer_widget.rb +++ b/runtime/lib/buffer_widget.rb @@ -1,5 +1,18 @@ require "widget" class BufferWidget + include Widget + + def initialize(buffer, font) + @buffer = buffer + @font = font + end + + def render + (0...@buffer.size).each do |i| + draw_text(@font, 0, @height - @font.line_height * (i + 1), @buffer[i], 1, 1, 1, 1) + end + end + end diff --git a/runtime/lib/window.rb b/runtime/lib/window.rb index ae584ae..ada2116 100644 --- a/runtime/lib/window.rb +++ b/runtime/lib/window.rb @@ -20,6 +20,8 @@ class Window def initialize Window.register(self) super + @font = Font.new(Runtime.find(:font, "DejaVuSansMono"), 20) + @buffer_widget = BufferWidget.new(Buffer.new, @font) end def close @@ -27,6 +29,12 @@ class Window end def render + @buffer_widget.draw + end + + def resize(x, y, width, height) + super + @buffer_widget.resize(x, y, width, height) end end