Class: Redwood::Buffer
Instance Attribute Summary collapse
-
#atime ⇒ Object
readonly
Returns the value of attribute atime.
-
#height ⇒ Object
readonly
Returns the value of attribute height.
-
#mode ⇒ Object
readonly
Returns the value of attribute mode.
-
#title ⇒ Object
readonly
Returns the value of attribute title.
-
#width ⇒ Object
readonly
Returns the value of attribute width.
-
#x ⇒ Object
readonly
Returns the value of attribute x.
-
#y ⇒ Object
readonly
Returns the value of attribute y.
Instance Method Summary collapse
- #blur ⇒ Object
- #clear ⇒ Object
- #commit ⇒ Object
- #content_height ⇒ Object
- #content_width ⇒ Object
- #draw(status) ⇒ Object
- #draw_status(status) ⇒ Object
- #focus ⇒ Object
-
#initialize(window, mode, width, height, opts = {}) ⇒ Buffer
constructor
A new instance of Buffer.
- #mark_dirty ⇒ Object
- #redraw(status) ⇒ Object
- #resize(rows, cols) ⇒ Object
-
#write(y, x, s, opts = {}) ⇒ Object
s nil means a blank line!.
Constructor Details
#initialize(window, mode, width, height, opts = {}) ⇒ Buffer
Returns a new instance of Buffer.
18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/sup/buffer.rb', line 18 def initialize window, mode, width, height, opts={} @w = window @mode = mode @dirty = true @focus = false @title = opts[:title] || "" @force_to_top = opts[:force_to_top] || false @hidden = opts[:hidden] || false @x, @y, @width, @height = 0, 0, width, height @atime = Time.at 0 @system = opts[:system] || false end |
Instance Attribute Details
#atime ⇒ Object (readonly)
Returns the value of attribute atime.
14 15 16 |
# File 'lib/sup/buffer.rb', line 14 def atime @atime end |
#height ⇒ Object (readonly)
Returns the value of attribute height.
14 15 16 |
# File 'lib/sup/buffer.rb', line 14 def height @height end |
#mode ⇒ Object (readonly)
Returns the value of attribute mode.
14 15 16 |
# File 'lib/sup/buffer.rb', line 14 def mode @mode end |
#title ⇒ Object (readonly)
Returns the value of attribute title.
14 15 16 |
# File 'lib/sup/buffer.rb', line 14 def title @title end |
#width ⇒ Object (readonly)
Returns the value of attribute width.
14 15 16 |
# File 'lib/sup/buffer.rb', line 14 def width @width end |
#x ⇒ Object (readonly)
Returns the value of attribute x.
14 15 16 |
# File 'lib/sup/buffer.rb', line 14 def x @x end |
#y ⇒ Object (readonly)
Returns the value of attribute y.
14 15 16 |
# File 'lib/sup/buffer.rb', line 14 def y @y end |
Instance Method Details
#blur ⇒ Object
94 95 96 97 98 |
# File 'lib/sup/buffer.rb', line 94 def blur @focus = false @dirty = true @mode.blur end |
#clear ⇒ Object
80 81 82 |
# File 'lib/sup/buffer.rb', line 80 def clear @w.clear end |
#commit ⇒ Object
54 55 56 57 |
# File 'lib/sup/buffer.rb', line 54 def commit @dirty = false @w.noutrefresh end |
#content_height ⇒ Object
31 |
# File 'lib/sup/buffer.rb', line 31 def content_height; @height - 1; end |
#content_width ⇒ Object
32 |
# File 'lib/sup/buffer.rb', line 32 def content_width; @width; end |
#draw(status) ⇒ Object
59 60 61 62 63 64 |
# File 'lib/sup/buffer.rb', line 59 def draw status @mode.draw draw_status status commit @atime = Time.now end |
#draw_status(status) ⇒ Object
84 85 86 |
# File 'lib/sup/buffer.rb', line 84 def draw_status status write @height - 1, 0, status, :color => :status_color end |
#focus ⇒ Object
88 89 90 91 92 |
# File 'lib/sup/buffer.rb', line 88 def focus @focus = true @dirty = true @mode.focus end |
#mark_dirty ⇒ Object
52 |
# File 'lib/sup/buffer.rb', line 52 def mark_dirty; @dirty = true; end |
#redraw(status) ⇒ Object
42 43 44 45 46 47 48 49 50 |
# File 'lib/sup/buffer.rb', line 42 def redraw status if @dirty draw status else draw_status status end commit end |
#resize(rows, cols) ⇒ Object
34 35 36 37 38 39 40 |
# File 'lib/sup/buffer.rb', line 34 def resize rows, cols return if cols == @width && rows == @height @width = cols @height = rows @dirty = true mode.resize rows, cols end |
#write(y, x, s, opts = {}) ⇒ Object
s nil means a blank line!
67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/sup/buffer.rb', line 67 def write y, x, s, opts={} return if x >= @width || y >= @height @w.attrset Colormap.color_for(opts[:color] || :none, opts[:highlight]) s ||= "" maxl = @width - x # maximum display width width # fill up the line with blanks to overwrite old screen contents @w.mvaddstr y, x, " " * maxl unless opts[:no_fill] @w.mvaddstr y, x, s.slice_by_display_length(maxl) end |