rubytext 0.0.15 → 0.0.16
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/lib/rubytext.rb +31 -16
- data/lib/version.rb +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 4536ed9e2ce1dbd28d40a9e19adf2a5aa4a0e8c5bf6bc13666d3ea00708bece1
|
4
|
+
data.tar.gz: 996510b10225a5dd569ebcbb7f022308b10f4d8f050870b686bba5c30ecff64e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c97fef25f08072ea4eeb038e749e825bff73b50db6e904bffb5b838b62840bcd7913be177726c2ae29059a589d4a73d65f571ef9b80da0d9ed8f6967c79a07da
|
7
|
+
data.tar.gz: 55fb8641d81332daccfbdc484ffa9e328593d84a0b36ee9c9da72004ae56055ca2508ce06df711725c1bf0f0c54048a2c3e566f84f7fcc5a5d2e3807acf97328
|
data/lib/rubytext.rb
CHANGED
@@ -13,6 +13,18 @@ end
|
|
13
13
|
|
14
14
|
module RubyText
|
15
15
|
|
16
|
+
Colors = %w[black blue cyan green magenta red white yellow]
|
17
|
+
ColorPairs = {}
|
18
|
+
num = 0
|
19
|
+
Colors.each do |fc|
|
20
|
+
Colors.each do |bc|
|
21
|
+
fg = X.const_get("COLOR_#{fc.upcase}")
|
22
|
+
bg = X.const_get("COLOR_#{bc.upcase}")
|
23
|
+
pair = X.init_pair(num+=1, fg, bg) # FIXME backwards?
|
24
|
+
ColorPairs[[fg, bg]] = pair
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
16
28
|
module Keys
|
17
29
|
Down = 258
|
18
30
|
Up = 259
|
@@ -33,9 +45,6 @@ module RubyText
|
|
33
45
|
F12 = 276
|
34
46
|
end
|
35
47
|
|
36
|
-
Colors = %w[black blue cyan green
|
37
|
-
magenta red white yellow]
|
38
|
-
|
39
48
|
class Window
|
40
49
|
def self.main
|
41
50
|
debug "Entering Window.main"
|
@@ -45,12 +54,12 @@ module RubyText
|
|
45
54
|
X.stdscr.bkgd(X.color_pair(1)|X::A_NORMAL)
|
46
55
|
rows, cols = @main_win.maxy, @main_win.maxx
|
47
56
|
debug "About to call .make"
|
48
|
-
@screen = self.make(@main_win, rows, cols, 0, 0, false)
|
57
|
+
@screen = self.make(@main_win, rows, cols, 0, 0, false, "white", "black")
|
49
58
|
@screen
|
50
59
|
end
|
51
60
|
|
52
|
-
def self.make(cwin, high, wide, r0, c0, border)
|
53
|
-
debug "make: #{[cwin, high, wide, r0, c0, border]}"
|
61
|
+
def self.make(cwin, high, wide, r0, c0, border, fg, bg)
|
62
|
+
debug "make: #{[cwin, high, wide, r0, c0, border, fg, bg]}"
|
54
63
|
obj = self.allocate
|
55
64
|
debug "Allocate returned a #{obj.class}"
|
56
65
|
obj.instance_eval do
|
@@ -87,8 +96,8 @@ module RubyText
|
|
87
96
|
end
|
88
97
|
end
|
89
98
|
|
90
|
-
def RubyText.window(high, wide, r0, c0, border=false)
|
91
|
-
RubyText::Window.new(high, wide, r0, c0, border)
|
99
|
+
def RubyText.window(high, wide, r0, c0, border=false, fg="white", bg="black")
|
100
|
+
RubyText::Window.new(high, wide, r0, c0, border, fg, bg)
|
92
101
|
end
|
93
102
|
|
94
103
|
def self.start(*args, log: nil, fg: nil, bg: nil)
|
@@ -136,21 +145,22 @@ end
|
|
136
145
|
class RubyText::Window
|
137
146
|
Vert, Horiz = X::A_VERTICAL, X::A_HORIZONTAL # ?|, ?- # "\u2502", "\u2500"
|
138
147
|
|
139
|
-
attr_reader :win, :rows, :cols, :width, :height
|
148
|
+
attr_reader :win, :rows, :cols, :width, :height, :fg, :bg
|
140
149
|
|
141
|
-
def initialize(high=nil, wide=nil, r0=1, c0=1, border=false)
|
150
|
+
def initialize(high=nil, wide=nil, r0=1, c0=1, border=false, fg=:white, bg=:black)
|
142
151
|
debug "RT::Win.init: #{[high, wide, r0, c0, border]}"
|
143
152
|
@wide, @high, @r0, @c0 = wide, high, r0, c0
|
144
153
|
@border = border
|
154
|
+
@fg, @bg = fg, bg
|
145
155
|
@win = X::Window.new(high, wide, r0, c0)
|
146
|
-
debug "outer = #{@win.inspect}"
|
147
|
-
debug "@border = #@border"
|
156
|
+
debug "outer = #{@win.inspect}"
|
157
|
+
debug "@border = #@border"
|
148
158
|
if @border
|
149
159
|
@win.box(Vert, Horiz)
|
150
160
|
@outer = @win
|
151
161
|
@outer.refresh
|
152
|
-
debug "About to call again: params = #{[high-2, wide-2, r0+1, c0+1]}"
|
153
|
-
@win = X::Window.new(high-2, wide-2, r0+1, c0+1) # relative now??
|
162
|
+
debug "About to call again: params = #{[high-2, wide-2, r0+1, c0+1]}"
|
163
|
+
@win = X::Window.new(high-2, wide-2, r0+1, c0+1, false, fg, bg) # relative now??
|
154
164
|
else
|
155
165
|
@outer = @win
|
156
166
|
end
|
@@ -162,9 +172,14 @@ debug "About to call again: params = #{[high-2, wide-2, r0+1, c0+1]}"
|
|
162
172
|
def delegate_output(sym, *args)
|
163
173
|
args = [""] if args.empty?
|
164
174
|
debug "#{sym}: args = #{args.inspect}"
|
165
|
-
|
175
|
+
if sym == :p
|
176
|
+
args.map!(&:inspect)
|
177
|
+
else
|
178
|
+
args.map!(&:to_s)
|
179
|
+
end
|
166
180
|
str = sprintf(*args)
|
167
181
|
str << "\n" if sym != :print && str[-1] != "\n"
|
182
|
+
# color-handling code here
|
168
183
|
@win.addstr(str)
|
169
184
|
@win.refresh
|
170
185
|
end
|
@@ -243,7 +258,7 @@ end
|
|
243
258
|
### Stick stuff into Kernel for top level
|
244
259
|
|
245
260
|
module Kernel
|
246
|
-
private
|
261
|
+
# private
|
247
262
|
def puts(*args) # Doesn't affect STDOUT.puts, etc.
|
248
263
|
$stdscr.puts(*args)
|
249
264
|
end
|
data/lib/version.rb
CHANGED
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.16
|
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-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: curses
|
@@ -54,7 +54,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
54
54
|
version: '0'
|
55
55
|
requirements: []
|
56
56
|
rubyforge_project:
|
57
|
-
rubygems_version: 2.
|
57
|
+
rubygems_version: 2.7.7
|
58
58
|
signing_key:
|
59
59
|
specification_version: 4
|
60
60
|
summary: A thick wrapper for Curses
|