Class: NeedForType::Window

Inherits:
Curses::Window
  • Object
show all
Defined in:
lib/need_for_type/window.rb

Direct Known Subclasses

DisplayWindow

Constant Summary collapse

CURSOR_VISIBLE =

Cursor visibility

1
CURSOR_INVISIBLE =
0
WHITE =

Colors

1
GREEN =
2
YELLOW =
3
RED =
4
NORMAL =

Modes

Curses::A_NORMAL
STANDOUT =
Curses::A_STANDOUT
LINE_PADDING =

Padding

2
COL_PADDING =
4

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(lines, cols, top, left) ⇒ Window

Returns a new instance of Window.



23
24
25
26
27
28
29
30
31
32
# File 'lib/need_for_type/window.rb', line 23

def initialize(lines, cols, top, left)
  super(lines, cols, top, left)

  @current_line = LINE_PADDING
  @current_col = COL_PADDING

  self.box('|', '-')
  self.keypad = true
  self.refresh
end

Class Method Details

.init_colorsObject

Class methods



48
49
50
51
52
53
54
# File 'lib/need_for_type/window.rb', line 48

def self.init_colors
  Curses.start_color
  Curses.init_pair(WHITE,  Curses::COLOR_WHITE,  Curses::COLOR_BLACK)
  Curses.init_pair(GREEN,  Curses::COLOR_GREEN,  Curses::COLOR_BLACK)
  Curses.init_pair(YELLOW, Curses::COLOR_YELLOW, Curses::COLOR_BLACK)
  Curses.init_pair(RED,    Curses::COLOR_RED,    Curses::COLOR_BLACK)
end

Instance Method Details

#addstr(str) ⇒ Object

Overrides



35
36
37
38
39
40
41
42
43
44
45
# File 'lib/need_for_type/window.rb', line 35

def addstr(str)
  str.split('').each do |c|
    if @current_col == (Curses.cols - COL_PADDING)
      @current_line += 1
      @current_col = COL_PADDING
    end
    self.setpos(@current_line, @current_col)
    @current_col += 1
    super(c)
  end
end

#get_inputObject

Instance methods



57
58
59
# File 'lib/need_for_type/window.rb', line 57

def get_input
  self.getch
end

#render_box(color = WHITE, mode = NORMAL) ⇒ Object



66
67
68
69
70
71
72
73
74
75
# File 'lib/need_for_type/window.rb', line 66

def render_box(color = WHITE, mode = NORMAL)
  self.attrset(Curses.color_pair(color) | mode)

  self.clear
  self.box('|', '-')

  yield if block_given?

  self.refresh
end

#render_text(text, color = WHITE, mode = NORMAL) ⇒ Object



77
78
79
80
81
# File 'lib/need_for_type/window.rb', line 77

def render_text(text, color = WHITE, mode = NORMAL)
  self.attron(Curses.color_pair(color) | mode)
  self.addstr(text)
  self.attroff(Curses.color_pair(color) | mode)
end

#render_with_color(color = WHITE, mode = NORMAL) ⇒ Object



83
84
85
86
87
# File 'lib/need_for_type/window.rb', line 83

def render_with_color(color = WHITE, mode = NORMAL)
  self.attron(Curses.color_pair(color) | mode)
  yield
  self.attroff(Curses.color_pair(color) | mode)
end

#set_render_pos(y, x) ⇒ Object



61
62
63
64
# File 'lib/need_for_type/window.rb', line 61

def set_render_pos(y, x)
  @current_line = y
  @current_col = x
end