rubytext 0.0.43 → 0.0.44
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/examples/prog21.rb +3 -3
- data/lib/color.rb +45 -0
- data/lib/menu.rb +7 -10
- data/lib/output.rb +0 -27
- data/lib/rubytext.rb +1 -0
- data/lib/version.rb +1 -1
- data/lib/window.rb +0 -24
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8da5161f346670f599c83421e2afce02a97086876fbdf503128b0028e277ff0a
|
4
|
+
data.tar.gz: f32bbf5a7e09479a2b06f02bc85c2918da76f44503ee827722c4d77687874efc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3d1a385ecafbb8647617c71ae220221ad6c6f7245063d5cd81b5ca72c7a0524ee0fc909e854d082f31e5532c35bf2b2c49b532adeb1214283d9d0e4550529946
|
7
|
+
data.tar.gz: b695005b05ac1f2a32f5b349c78ea65582aa8d538adf974dd594e29323ad56a64508f5aee21b8ce2c3cb63c085d31997b575a3dbcb4357eb8fd87773c6975c46
|
data/examples/prog21.rb
CHANGED
@@ -5,11 +5,11 @@ puts "Press any key to display the menu..."
|
|
5
5
|
getch
|
6
6
|
|
7
7
|
days = %w[Monday Tuesday Wednesday Thursday Friday]
|
8
|
-
|
8
|
+
num, day = RubyText.menu(c: 30, items: days)
|
9
9
|
|
10
10
|
puts
|
11
|
-
if
|
11
|
+
if day.nil?
|
12
12
|
puts "You picked nothing!"
|
13
13
|
else
|
14
|
-
puts "You picked item #{
|
14
|
+
puts "You picked item #{num} which is #{day.inspect}"
|
15
15
|
end
|
data/lib/color.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
|
2
|
+
def fb2cp(fg, bg)
|
3
|
+
fg ||= :blue
|
4
|
+
bg ||= :white
|
5
|
+
f2 = X.const_get("COLOR_#{fg.upcase}")
|
6
|
+
b2 = X.const_get("COLOR_#{bg.upcase}")
|
7
|
+
cp = $ColorPairs[[fg, bg]]
|
8
|
+
[f2, b2, cp]
|
9
|
+
end
|
10
|
+
|
11
|
+
module RubyText
|
12
|
+
Colors = [:black, :blue, :cyan, :green, :magenta,
|
13
|
+
:red, :white, :yellow]
|
14
|
+
$ColorPairs = {}
|
15
|
+
num = 0
|
16
|
+
Colors.each do |fsym|
|
17
|
+
Colors.each do |bsym|
|
18
|
+
fg = X.const_get("COLOR_#{fsym.upcase}")
|
19
|
+
bg = X.const_get("COLOR_#{bsym.upcase}")
|
20
|
+
X.init_pair(num+=1, fg, bg) # FIXME backwards?
|
21
|
+
$ColorPairs[[fsym, bsym]] = num
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class RubyText::Window
|
27
|
+
def self.colors(win, fg, bg)
|
28
|
+
cfg, cbg, cp = fb2cp(fg, bg)
|
29
|
+
X.init_pair(cp, cfg, cbg)
|
30
|
+
win.color_set(cp|X::A_NORMAL)
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.colors!(win, fg, bg)
|
34
|
+
colors(win, fg, bg)
|
35
|
+
num = win.maxx * win.maxy
|
36
|
+
win.setpos(0, 0)
|
37
|
+
win.addstr(' '*num)
|
38
|
+
win.setpos(0, 0)
|
39
|
+
win.refresh
|
40
|
+
end
|
41
|
+
|
42
|
+
def fg=(sym)
|
43
|
+
self.colors(@win, fg, @bg)
|
44
|
+
end
|
45
|
+
end
|
data/lib/menu.rb
CHANGED
@@ -20,21 +20,21 @@ module RubyText
|
|
20
20
|
STDSCR.refresh
|
21
21
|
end
|
22
22
|
|
23
|
-
def self.menu(r: 0, c: 0, items:)
|
23
|
+
def self.menu(r: 0, c: 0, items:, curr: 0)
|
24
24
|
high = items.size + 2
|
25
25
|
wide = items.map(&:length).max + 4
|
26
26
|
saveback(high, wide, r, c)
|
27
|
-
|
27
|
+
win = RubyText.window(high, wide, r, c, true, fg: :white, bg: :blue)
|
28
28
|
RubyText.set(:raw)
|
29
29
|
X.stdscr.keypad(true)
|
30
30
|
RubyText.hide_cursor
|
31
|
-
sel =
|
31
|
+
sel = curr
|
32
32
|
max = items.size - 1
|
33
33
|
loop do
|
34
34
|
items.each.with_index do |item, row|
|
35
|
-
|
35
|
+
win.go row, 0
|
36
36
|
color = sel == row ? :yellow : :white
|
37
|
-
|
37
|
+
win.puts color, " #{item} "
|
38
38
|
end
|
39
39
|
ch = getch
|
40
40
|
case ch
|
@@ -44,10 +44,10 @@ module RubyText
|
|
44
44
|
sel += 1 if sel < max
|
45
45
|
when 27
|
46
46
|
restback(high, wide, r, c)
|
47
|
-
return nil
|
47
|
+
return [nil, nil]
|
48
48
|
when 10
|
49
49
|
restback(high, wide, r, c)
|
50
|
-
return sel
|
50
|
+
return [sel, items[sel]]
|
51
51
|
end
|
52
52
|
end
|
53
53
|
end
|
@@ -85,9 +85,6 @@ module RubyText
|
|
85
85
|
handler.call(sel, items[sel])
|
86
86
|
end
|
87
87
|
when quit # parameter
|
88
|
-
win2.clear
|
89
|
-
win2.puts "About to quit..."
|
90
|
-
sleep 1
|
91
88
|
exit
|
92
89
|
end
|
93
90
|
end
|
data/lib/output.rb
CHANGED
@@ -5,34 +5,7 @@ def debug(*args)
|
|
5
5
|
$debug.puts *args
|
6
6
|
end
|
7
7
|
|
8
|
-
def fb2cp(fg, bg)
|
9
|
-
fg ||= :blue
|
10
|
-
bg ||= :white
|
11
|
-
f2 = X.const_get("COLOR_#{fg.upcase}")
|
12
|
-
b2 = X.const_get("COLOR_#{bg.upcase}")
|
13
|
-
cp = $ColorPairs[[fg, bg]]
|
14
|
-
[f2, b2, cp]
|
15
|
-
end
|
16
|
-
|
17
|
-
module RubyText
|
18
|
-
|
19
|
-
Colors = [:black, :blue, :cyan, :green, :magenta, :red, :white, :yellow]
|
20
|
-
$ColorPairs = {}
|
21
|
-
num = 0
|
22
|
-
Colors.each do |fsym|
|
23
|
-
Colors.each do |bsym|
|
24
|
-
fg = X.const_get("COLOR_#{fsym.upcase}")
|
25
|
-
bg = X.const_get("COLOR_#{bsym.upcase}")
|
26
|
-
X.init_pair(num+=1, fg, bg) # FIXME backwards?
|
27
|
-
$ColorPairs[[fsym, bsym]] = num
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
end
|
32
|
-
|
33
|
-
|
34
8
|
class RubyText::Window
|
35
|
-
|
36
9
|
def center(str)
|
37
10
|
r, c = self.rc
|
38
11
|
n = @win.maxx - str.length
|
data/lib/rubytext.rb
CHANGED
@@ -10,6 +10,7 @@ require 'output' # RubyText, RubyText::Window, Kernel
|
|
10
10
|
require 'keys' # RubyText::Keys
|
11
11
|
require 'menu' # RubyText
|
12
12
|
require 'window' # RubyText::Window
|
13
|
+
require 'colors' # RubyText, RubyText::Window
|
13
14
|
require 'navigation' # RubyText::Window
|
14
15
|
require 'settings' # RubyText
|
15
16
|
|
data/lib/version.rb
CHANGED
data/lib/window.rb
CHANGED
@@ -27,20 +27,6 @@ class RubyText::Window
|
|
27
27
|
@width, @height = @cols + 2, @rows + 2 if @border
|
28
28
|
@win.refresh
|
29
29
|
end
|
30
|
-
def self.colors(win, fg, bg)
|
31
|
-
cfg, cbg, cp = fb2cp(fg, bg)
|
32
|
-
X.init_pair(cp, cfg, cbg)
|
33
|
-
win.color_set(cp|X::A_NORMAL)
|
34
|
-
end
|
35
|
-
|
36
|
-
def self.colors!(win, fg, bg)
|
37
|
-
colors(win, fg, bg)
|
38
|
-
num = win.maxx * win.maxy
|
39
|
-
win.setpos(0, 0)
|
40
|
-
win.addstr(' '*num)
|
41
|
-
win.setpos(0, 0)
|
42
|
-
win.refresh
|
43
|
-
end
|
44
30
|
|
45
31
|
def self.main(fg: nil, bg: nil)
|
46
32
|
@main_win = X.init_screen
|
@@ -78,14 +64,4 @@ class RubyText::Window
|
|
78
64
|
end
|
79
65
|
obj
|
80
66
|
end
|
81
|
-
|
82
|
-
def fg=(sym)
|
83
|
-
self.colors(@win, fg, @bg)
|
84
|
-
end
|
85
|
-
|
86
|
-
def self.wocka
|
87
|
-
STDSCR.puts "HELLO!!!!!!"
|
88
|
-
sleep 5
|
89
|
-
end
|
90
67
|
end
|
91
|
-
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubytext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.44
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hal Fulton
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-11-
|
11
|
+
date: 2018-11-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: curses
|
@@ -67,6 +67,7 @@ files:
|
|
67
67
|
- examples/prog21.rb
|
68
68
|
- examples/showme.rb
|
69
69
|
- examples/slides
|
70
|
+
- lib/color.rb
|
70
71
|
- lib/keys.rb
|
71
72
|
- lib/menu.rb
|
72
73
|
- lib/navigation.rb
|