rubytext 0.0.45 → 0.0.46

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 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