rubytext 0.0.23 → 0.0.24
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rubytext.rb +35 -31
- data/lib/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b67f09e356a4a6791fd17ad598b3dbabbf2d2bcb4e22c3aa3d7a44394255e183
|
4
|
+
data.tar.gz: e121b61f5b8e29942bd9a807a3fea1a42c9324cce9a743a76576e3f59084f5dd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5fdee3ed7ccd0a5113c58f7d7f512ca7aee795b9484c8496c940e250ad8b57e5f645e9c7d59dcb5708c6b57c59a3817e7fce857d8002453697be57f204d637fa
|
7
|
+
data.tar.gz: bea38489db79ac0f1d5a6333c3965acd99f23b63c905050db894e9bd0043d02bef34517c863f86056b6515341e75046189b567685f6dc2ec8cc68e263ca00fe0
|
data/lib/rubytext.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
$LOAD_PATH << "lib"
|
2
2
|
|
3
3
|
require 'curses'
|
4
|
-
|
5
4
|
require 'version' # skeleton + version
|
6
5
|
|
7
6
|
X = Curses # shorthand
|
@@ -58,6 +57,7 @@ module RubyText
|
|
58
57
|
end
|
59
58
|
|
60
59
|
class Window
|
60
|
+
attr_reader :fg, :bg
|
61
61
|
|
62
62
|
def self.colors(win, fg, bg)
|
63
63
|
cfg, cbg, cp = fb2cp(fg, bg)
|
@@ -65,26 +65,36 @@ module RubyText
|
|
65
65
|
win.color_set(cp|X::A_NORMAL)
|
66
66
|
end
|
67
67
|
|
68
|
+
def self.colors!(win, fg, bg)
|
69
|
+
colors(win, fg, bg)
|
70
|
+
num = win.maxx * win.maxy
|
71
|
+
win.setpos(0, 0)
|
72
|
+
win.addstr(' '*num)
|
73
|
+
win.setpos(0, 0)
|
74
|
+
win.refresh
|
75
|
+
end
|
76
|
+
|
68
77
|
def self.main(fg: nil, bg: nil)
|
69
78
|
debug "Entering Window.main (#{fg}, #{bg}) => "
|
70
79
|
@main_win = X.init_screen
|
71
80
|
X.start_color
|
72
|
-
colors(@main_win, fg, bg)
|
73
|
-
# FIXME clear??
|
81
|
+
colors!(@main_win, fg, bg)
|
74
82
|
debug "About to call .make"
|
75
83
|
rows, cols = @main_win.maxy, @main_win.maxx
|
76
|
-
@screen = self.make(@main_win, rows, cols, 0, 0, false
|
84
|
+
@screen = self.make(@main_win, rows, cols, 0, 0, false,
|
85
|
+
fg: fg, bg: bg)
|
77
86
|
@screen
|
78
87
|
end
|
79
88
|
|
80
|
-
def self.make(cwin, high, wide, r0, c0, border)
|
81
|
-
debug "make: #{[cwin, high, wide, r0, c0, border]}"
|
89
|
+
def self.make(cwin, high, wide, r0, c0, border, fg: :white, bg: :black)
|
90
|
+
debug "make: #{[cwin, high, wide, r0, c0, border, fg, bg]}"
|
82
91
|
obj = self.allocate
|
83
92
|
debug "Allocate returned a #{obj.class}"
|
84
93
|
obj.instance_eval do
|
85
94
|
debug " Inside instance_eval..."
|
86
95
|
@outer = @win = cwin
|
87
96
|
@wide, @high, @r0, @c0 = wide, high, r0, c0
|
97
|
+
@fg, @bg = fg, bg
|
88
98
|
@border = border
|
89
99
|
@rows, @cols = high, wide
|
90
100
|
@width, @height = @cols + 2, @rows + 2 if @border
|
@@ -92,28 +102,9 @@ module RubyText
|
|
92
102
|
obj
|
93
103
|
end
|
94
104
|
end
|
95
|
-
|
96
105
|
end
|
97
106
|
|
98
107
|
|
99
|
-
# debug "Setting STDSCR to Window.main"
|
100
|
-
|
101
|
-
# STDSCR = RubyText::Window.main
|
102
|
-
# $stdscr = STDSCR
|
103
|
-
|
104
|
-
=begin
|
105
|
-
Logic flow -
|
106
|
-
main
|
107
|
-
initscreen
|
108
|
-
start_color
|
109
|
-
make
|
110
|
-
STDSCR = RubyText::Window.main
|
111
|
-
$stdscr = STDSCR
|
112
|
-
|
113
|
-
=end
|
114
|
-
|
115
|
-
###
|
116
|
-
|
117
108
|
module RubyText
|
118
109
|
|
119
110
|
def self.start(*args, log: nil, fg: nil, bg: nil)
|
@@ -121,6 +112,7 @@ module RubyText
|
|
121
112
|
Object.const_set(:STDSCR, RubyText::Window.main(fg: fg, bg: bg))
|
122
113
|
$stdscr = STDSCR
|
123
114
|
|
115
|
+
debug "STDSCR has #{STDSCR.fg} on #{STDSCR.bg}"
|
124
116
|
debug "fg = #{fg} is not a valid color" unless Colors.include?(fg.to_s)
|
125
117
|
debug "bg = #{bg} is not a valid color" unless Colors.include?(bg.to_s)
|
126
118
|
fg, bg, cp = fb2cp(fg, bg)
|
@@ -136,8 +128,6 @@ module RubyText
|
|
136
128
|
X.echo
|
137
129
|
when :noecho
|
138
130
|
X.noecho
|
139
|
-
when :color
|
140
|
-
X.start_color
|
141
131
|
end
|
142
132
|
end
|
143
133
|
end
|
@@ -185,15 +175,15 @@ class RubyText::Window
|
|
185
175
|
debug "outer = #{@win.inspect}"
|
186
176
|
debug "@border = #@border"
|
187
177
|
debug "Calling 'colors': #{[@win, fg, bg]}"
|
188
|
-
RubyText::Window.colors(@win, fg, bg)
|
189
|
-
|
178
|
+
RubyText::Window.colors!(@win, fg, bg)
|
179
|
+
# self.clear(@main_win)
|
190
180
|
if @border
|
191
181
|
@win.box(Vert, Horiz)
|
192
182
|
@outer = @win
|
193
183
|
@outer.refresh
|
194
184
|
debug "About to call again: params = #{[high-2, wide-2, r0+1, c0+1]}"
|
195
185
|
@win = X::Window.new(high-2, wide-2, r0+1, c0+1) # , false, fg, bg) # relative now??
|
196
|
-
RubyText::Window.colors(@win, fg, bg)
|
186
|
+
RubyText::Window.colors!(@win, fg, bg)
|
197
187
|
else
|
198
188
|
@outer = @win
|
199
189
|
end
|
@@ -202,9 +192,15 @@ class RubyText::Window
|
|
202
192
|
@win.refresh
|
203
193
|
end
|
204
194
|
|
195
|
+
def center(row, str)
|
196
|
+
n = @win.maxx - str.length
|
197
|
+
rcprint row, n/2, str
|
198
|
+
end
|
199
|
+
|
205
200
|
def delegate_output(sym, *args)
|
206
201
|
args = [""] if args.empty?
|
207
|
-
|
202
|
+
debug "delegate: colors are #@fg, #@bg"
|
203
|
+
RubyText::Window.colors(@win, @fg, @bg) # FIXME?
|
208
204
|
# debug "#{sym}: args = #{args.inspect}"
|
209
205
|
if sym == :p
|
210
206
|
args.map!(&:inspect)
|
@@ -266,6 +262,14 @@ class RubyText::Window
|
|
266
262
|
[@win.cury, @win.curx]
|
267
263
|
end
|
268
264
|
|
265
|
+
def self.clear(win)
|
266
|
+
num = win.maxx * win.maxy
|
267
|
+
win.setpos(0, 0)
|
268
|
+
win.addstr(' '*num)
|
269
|
+
win.setpos(0, 0)
|
270
|
+
win.refresh
|
271
|
+
end
|
272
|
+
|
269
273
|
def clear
|
270
274
|
win = @win
|
271
275
|
num = win.maxx * win.maxy
|
data/lib/version.rb
CHANGED