summary refs log tree commit diff stats
path: root/interface/ncurses.rb
diff options
context:
space:
mode:
authorhut <hut@lavabit.com>2009-04-10 00:00:00 +0200
committerhut <hut@lavabit.com>2009-04-10 00:00:00 +0200
commit34bfb32ecf2cea5e5de95980beedb681139d9c01 (patch)
tree68acd3339f575782b5ebccbb70d8c1efd0dffc62 /interface/ncurses.rb
parentadfea091f816cc2f4007e99b6b2be35a821857da (diff)
downloadranger-34bfb32ecf2cea5e5de95980beedb681139d9c01.tar.gz
new minor version v0.2.0
Diffstat (limited to 'interface/ncurses.rb')
-rw-r--r--interface/ncurses.rb68
1 files changed, 55 insertions, 13 deletions
diff --git a/interface/ncurses.rb b/interface/ncurses.rb
index 0d2659e4..a383a570 100644
--- a/interface/ncurses.rb
+++ b/interface/ncurses.rb
@@ -9,8 +9,18 @@ module Interface
 			'<cr>'
 		when ?\b, Ncurses::KEY_BACKSPACE
 			'<bs>'
+		when Ncurses::KEY_RIGHT
+			'<right>'
+		when Ncurses::KEY_LEFT
+			'<left>'
+		when Ncurses::KEY_UP
+			'<up>'
+		when Ncurses::KEY_DOWN
+			'<down>'
 		when ?\e
 			'<esc>'
+#		when ?\s
+#			'<space>'
 		when ?\t
 			'<tab>'
 		when 32
@@ -18,6 +28,7 @@ module Interface
 		when 0..127
 			key.chr
 		else
+			log(key)
 			''
 		end
 	end
@@ -83,10 +94,9 @@ module Interface
 		Ncurses.start_color
 		Ncurses.use_default_colors
 
-#		Ncurses.cbreak
 		Ncurses.noecho
 		Ncurses.curs_set 0
-		Ncurses.halfdelay(1000)
+		Ncurses.halfdelay(10000)
 		@@colortable = []
 	end
 
@@ -97,15 +107,16 @@ module Interface
 		Ncurses.endwin
 	end
 
+	def cleari
+		Ncurses.mvaddstr(0, 0, ' ' * (lines * cols))
+	end
+
 	def geti
 		Interface::keytable(Ncurses.getch)
 	end
 
 	def set_title(x)
-#		closei
-		print "\e]2;#{x}\007"
-#		system('echo', '-n', '-e', '"\e2;' + x + '\007"')
-#		starti
+		print "\e]2;#{x}\b"
 	end
 
 	def lines
@@ -135,22 +146,53 @@ module Interface
 	end
 
 	def color(fg = -1, bg = -1)
-		Ncurses.color_set(get_color(fg,bg), nil)
+		if OPTIONS['color']
+			Ncurses.color_set(get_color(fg,bg), nil)
+		end
 	end
 
 	def color_at y, x=0, len=-1, fg=-1, bg=-1
-		if y < 0 then y += Ncurses.LINES end
-		Ncurses.mvchgat(y, x, len, 0, get_color(fg, bg), nil)
+		if OPTIONS['color']
+			if y < 0 then y += Ncurses.LINES end
+			Ncurses.mvchgat(y, x, len, 0, get_color(fg, bg), nil)
+		end
 	end
 
 	def color_bold_at y, x=0, len=-1, fg=-1, bg=-1
-		if y < 0 then y += Ncurses.LINES end
-		Ncurses.mvchgat(y, x, len, Ncurses::A_BOLD, get_color(fg, bg), nil)
+		if OPTIONS['color']
+			if y < 0 then y += Ncurses.LINES end
+			Ncurses.mvchgat(y, x, len, Ncurses::A_BOLD, get_color(fg, bg), nil)
+		end
 	end
 
 	def color_reverse_at y, x=0, len=-1, fg=-1, bg=-1
-		if y < 0 then y += Ncurses.LINES end
-		Ncurses.mvchgat(y, x, len, Ncurses::A_REVERSE, get_color(fg, bg), nil)
+		if OPTIONS['color']
+			if y < 0 then y += Ncurses.LINES end
+			Ncurses.mvchgat(y, x, len, Ncurses::A_REVERSE, get_color(fg, bg), nil)
+		else
+			Ncurses.mvchgat(y, x, len, Ncurses::A_REVERSE, 0, nil)
+		end
+	end
+
+#	runi(:command => String/Array, :wait=>false)
+#	runi('ä́', 'b', 'c')
+	def runi(hash, *args)
+		wait = false
+		if Array === hash
+			command = hash
+		elsif String === hash
+			command = [hash, *args]
+		else
+			command = hash[:command] or return false
+			wait = hash[:wait] if hash.has_key? :wait
+		end
+
+		closei
+
+		system(*command)
+		gets if wait
+
+		starti
 	end
 
 	def get_color(fg, bg)
0400 updated deps' href='/gbmor/getwtxt/commit/go.sum?h=v0.4.12&id=84f9cfe07dafecadd1dcb64ed2e1729d7557da4d'>84f9cfe ^
fac4329 ^























84f9cfe ^
fac4329 ^
84f9cfe ^
fac4329 ^

84f9cfe ^
fac4329 ^





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165