rubytext 0.0.43 → 0.0.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|