Module: LessCurse
- Defined in:
- lib/less_curse.rb,
lib/less_curse/grid.rb,
lib/less_curse/screen.rb,
lib/less_curse/actions.rb,
lib/less_curse/version.rb,
lib/less_curse/geometry.rb,
lib/less_curse/renderer.rb,
lib/less_curse/null_logger.rb,
lib/less_curse/widgets/base.rb,
lib/less_curse/widgets/list.rb,
lib/less_curse/widgets/text_area.rb,
lib/less_curse/widgets/text_view.rb
Overview
The LessCurse module which gives you static access to your “Screen” and all the UI glory within it.
Defined Under Namespace
Modules: Actions, Geometry, Renderer, Widgets
Classes: Grid, NullLogger, Screen
Constant Summary
collapse
- VERSION =
"0.6.0"
- @@actions =
{
FFI::NCurses::KEY_TAB => lambda { screen.focus_next },
FFI::NCurses::KEY_BTAB => lambda { screen.focus_previous }
}
Class Method Summary
collapse
Class Method Details
.close_screen ⇒ Object
31
32
33
34
|
# File 'lib/less_curse.rb', line 31
def self.close_screen
FFI::NCurses.endwin
end
|
.debug_msg(msg) ⇒ Object
65
66
67
|
# File 'lib/less_curse.rb', line 65
def self.debug_msg msg
logger.debug msg
end
|
.enter_loop! ⇒ Object
41
42
43
44
45
46
|
# File 'lib/less_curse.rb', line 41
def self.enter_loop!
loop do
break if !handle_input
screen.repaint
end
end
|
Read from keyboard, handle keypress oneself or dispatch to focused widget.
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
# File 'lib/less_curse.rb', line 50
def self.handle_input
key = FFI::NCurses.wgetch FFI::NCurses::stdscr
debug_msg "key press: #{key} / keyname: #{FFI::NCurses::keyname key} / #{FFI::NCurses::KEY_CTRL_Q}"
return false if key == FFI::NCurses::KEY_CTRL_Q
if @@actions[key]
@@actions[key].call
else
screen.focused_widget.handle_input key
end
end
|
.log_to!(file) ⇒ Object
73
74
75
|
# File 'lib/less_curse.rb', line 73
def self.log_to! file
@@logger = Logger.new(file)
end
|
.screen ⇒ Object
23
24
25
|
# File 'lib/less_curse.rb', line 23
def self.screen
@@screen ||= Screen.new
end
|
.show_screen ⇒ Object
27
28
29
|
# File 'lib/less_curse.rb', line 27
def self.show_screen
@@screen.show
end
|
.window(rectangle) ⇒ Object
36
37
38
39
|
# File 'lib/less_curse.rb', line 36
def self.window rectangle
FFI::NCurses.newwin rectangle.size.height, rectangle.size.width,
rectangle.position.y, rectangle.position.x
end
|