rubytext 0.0.45 → 0.0.46

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 300a9466ed6acf8da10a0f5d941eb37bfa9c9e5d288c9941f8bc29fb5fc698b6
4
- data.tar.gz: 970639b6571c00d7726a20b72a12f5b6223400c134a530f578f463c96f5e1325
3
+ metadata.gz: e5bdd350f25e6f839cc14ed02094834b04500fc4d19d0820528c4f7926e6ad06
4
+ data.tar.gz: 7b692875289645bfcd7549b55802d3ae71c107d495946577174b3ca90d53cbb2
5
5
  SHA512:
6
- metadata.gz: d5444630bd193e328eb0be786de4a1f0348b5450e65c36e1f731a89ecccaf4cd8cfcbd263c8b7edf56214371ed1e8df734bcff703d553efca91cbd0340e60f5c
7
- data.tar.gz: d8b420ce4fcc40c92d718969efe58f20010b85791efe648d4b570932b74cd81d9b3443a67d5e0fab25925de5c0f12d9ffdaf0ab42397966029197e5fc9f5c9ea
6
+ metadata.gz: 9c3ed73c4221ead1bfbb6fce563e4b6946e35e5eccda27f3895f24e2c56cd18b49d13987c073b68ddc71b732e054a7423ff3d7cc0a68844091ac912657fb18e3
7
+ data.tar.gz: cdd9791ff4789cd234fc8ef7c364913f79ab5fa8b73b81d00dd86b9751b477d3aa8aa5af57a29d16f7984a27b7f6bf0061b75995e6b2cc4a8026dbbd8fb3ef03
data/examples/prog01.rb CHANGED
@@ -1,4 +1,4 @@
1
- win = RubyText.window(6, 25, 2, 4,
1
+ win = RubyText.window(6, 25, 2, 34,
2
2
  # 6 rows, 25 cols; upper left at 2,4
3
3
  true, # has a border
4
4
  fg: :blue, bg: :white) # foreground, background
data/lib/color.rb CHANGED
@@ -27,7 +27,7 @@ class RubyText::Window
27
27
  def self.colors(win, fg, bg)
28
28
  cfg, cbg, cp = fb2cp(fg, bg)
29
29
  X.init_pair(cp, cfg, cbg)
30
- win.color_set(cp|X::A_NORMAL)
30
+ win.color_set(cp) # |X::A_NORMAL)
31
31
  end
32
32
 
33
33
  def self.colors!(win, fg, bg)
data/lib/effects.rb ADDED
@@ -0,0 +1,21 @@
1
+ class RubyText::Effects # dumb name?
2
+ Modes = %w[A_BOLD A_NORMAL A_PROTECT A_REVERSE A_STANDOUT A_UNDERLINE]
3
+
4
+ attr_reader :value
5
+
6
+ def initialize(bg, *args)
7
+ bits = 0
8
+ args.each do |arg|
9
+ if Modes.include?(arg)
10
+ val = eval("X::A_#{arg.to_s.upcase}")
11
+ bits ||= val
12
+ elsif RubyText::Colors.include?(arg)
13
+ val = eval("X::COLOR_#{arg.to_s.upcase}")
14
+ bits ||= val
15
+ end
16
+ end
17
+ @value = bits
18
+ X.attrset(bits)
19
+ end
20
+ end
21
+
data/lib/output.rb CHANGED
@@ -30,7 +30,7 @@ class RubyText::Window
30
30
  args.map!(&:inspect)
31
31
  else
32
32
  args.map! do |x|
33
- if RubyText::Colors.include? x
33
+ if RubyText::Colors.include?(x) || x.is_a?(RubyText::Effects)
34
34
  x
35
35
  else
36
36
  x.to_s
@@ -43,6 +43,8 @@ class RubyText::Window
43
43
  args.each do |arg|
44
44
  if arg.is_a? Symbol # must be a color
45
45
  RubyText::Window.colors(@win, arg, @bg) # FIXME?
46
+ elsif arg.is_a? RubyText::Effects
47
+ X.attrset(arg.value)
46
48
  else
47
49
  arg.each_char {|ch| ch == "\n" ? crlf : @win.addch(ch) }
48
50
  end
data/lib/rubytext.rb CHANGED
@@ -11,9 +11,11 @@ require 'keys' # RubyText::Keys
11
11
  require 'menu' # RubyText
12
12
  require 'window' # RubyText::Window
13
13
  require 'color' # RubyText, RubyText::Window
14
+ require 'effects'
14
15
  require 'navigation' # RubyText::Window
15
16
  require 'settings' # RubyText
16
17
 
18
+
17
19
  # Skeleton... Can't put at top because of #initalize
18
20
 
19
21
  module RubyText
data/lib/settings.rb CHANGED
@@ -1,33 +1,46 @@
1
1
  module RubyText
2
- def self.set(*args)
3
- # Allow a block?
2
+ def self.set(*args) # Allow a block?
4
3
  standard = [:cbreak, :raw, :echo, :keypad]
5
- @flags = [] # FIXME can set/reset individually. hmmm
4
+ @defaults = [:cbreak, :echo, :keypad, :cursor]
5
+ @flags = @defaults.dup
6
+ save_flags
6
7
  args.each do |arg|
7
- if standard.include? arg
8
- flag = arg.to_s
9
- @flags << arg
10
- flag.sub!(/_/, "no")
8
+ @flags << arg
9
+ flag = arg.to_s
10
+ if standard.include? flag.to_sym
11
+ X.send(flag)
12
+ elsif flag[0] == "_" && standard.include?(flag[1..-1].to_sym)
13
+ flag.sub!(/^_/, "no")
11
14
  X.send(flag)
12
15
  else
13
- @flags << arg
14
16
  case arg
15
17
  when :cursor
16
18
  X.show_cursor
17
19
  when :_cursor, :nocursor
18
20
  X.hide_cursor
21
+ else puts "wtf is #{arg}?"
19
22
  end
20
23
  end
21
24
  end
25
+ if block_given?
26
+ yield
27
+ rest_flags
28
+ end
29
+ end
30
+
31
+ def self.reset
32
+ restflags
22
33
  end
23
34
 
24
- def save_flags
35
+ def self.save_flags
25
36
  @fstack ||= []
26
37
  @fstack.push @flags
27
38
  end
28
39
 
29
- def rest_flags
40
+ def self.rest_flags
30
41
  @flags = @fstack.pop
42
+ rescue
43
+ @flags = @defaults
31
44
  end
32
45
 
33
46
  def self.start(*args, log: nil, fg: nil, bg: nil)
data/lib/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
 
2
2
  module RubyText
3
- VERSION = "0.0.45"
3
+ VERSION = "0.0.46"
4
4
 
5
5
  Path = File.expand_path(File.join(File.dirname(__FILE__)))
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubytext
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.45
4
+ version: 0.0.46
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hal Fulton
@@ -68,6 +68,7 @@ files:
68
68
  - examples/showme.rb
69
69
  - examples/slides
70
70
  - lib/color.rb
71
+ - lib/effects.rb
71
72
  - lib/keys.rb
72
73
  - lib/menu.rb
73
74
  - lib/navigation.rb