curses-extension 1.2 → 1.3

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: a7498f40bb4872284aeb236f6a5d585e57ec07f221c932170b33a07c4dd356ae
4
- data.tar.gz: b9cd6a36554a25fd3b8c2c7de39a48f74496b04700d017e90cfdc0c9833095d4
3
+ metadata.gz: 7a03325b4dbf6aa5c2cd506e50e642f62588a07cc543314d98eafce40cb7d2e3
4
+ data.tar.gz: 2862dc209031c64df476ca07c3bd7fcba8f2929620966492f53f858903f30207
5
5
  SHA512:
6
- metadata.gz: 5e6222c8fe2dd03a9746693722cafa3a3faf875c76cf1acdaaad62d7d4d7d4601e60d8c6dc134bdfbdcb52e06d074923b3243c614306b2e258aecdbd7f183221
7
- data.tar.gz: 8afba7364535e4f10b1a670908c45c5d94ae1b6ee025aa3b1ebc0c8947e23ce34343745378f7d3136b828d70b886ea87f747623e918770598a41f37447810b55
6
+ metadata.gz: be4ab27081169af7f9219df23272012e287e3f838f78407bc495d7470f522d1c1fd9c945c7b3ce99ea9dd48a81930ab2a7411e76efbe0b11d75da18a86af425d
7
+ data.tar.gz: 3eaa3fba2972af226cffa6380d55a3a3e034bc0ba8984c2893d6cec6cee7801eafdbbae023c711195217f5def9e48e34450dbf97229762d9a20d1f7b8ad4a6bd
@@ -1,6 +1,6 @@
1
1
  class Curses::Window # CLASS EXTENSION
2
2
  # General extensions (see https://github.com/isene/Ruby-Curses-Class-Extension)
3
- attr_accessor :color, :fg, :bg, :attr, :update
3
+ attr_accessor :color, :fg, :bg, :attr, :update, :index
4
4
  # Set self.color for an already defined color pair such as: init_pair(1, 255, 3)
5
5
  # The color pair is defined like this: init_pair(index, foreground, background)
6
6
  # self.fg is set for the foreground color (and is used if self.color is not set)
@@ -103,3 +103,5 @@ class Curses::Window # CLASS EXTENSION
103
103
  return "\n" + text.gsub(/(.{1,#{self.maxx}})( +|$\n?)|(.{1,#{self.maxx}})/, "\\1\\3\n")
104
104
  end
105
105
  end
106
+
107
+ # vim: set sw=2 sts=2 et fdm=syntax fdn=2 fcs=fold\:\ :
@@ -16,20 +16,23 @@
16
16
  # | @w_b |
17
17
  # +-------------------------------+
18
18
 
19
- require 'io/console'
20
- require 'curses'
21
- include Curses
19
+ begin #Basic setup
20
+ require 'io/console'
21
+ require 'io/wait'
22
+ require 'curses'
23
+ include Curses
22
24
 
23
- Curses.init_screen
24
- Curses.start_color
25
- Curses.curs_set(0)
26
- Curses.noecho
27
- Curses.cbreak
28
- Curses.stdscr.keypad = true
25
+ Curses.init_screen
26
+ Curses.start_color
27
+ Curses.curs_set(0)
28
+ Curses.noecho
29
+ Curses.cbreak
30
+ Curses.stdscr.keypad = true
31
+ end
29
32
 
30
33
  class Curses::Window # CLASS EXTENSION
31
34
  # General extensions (see https://github.com/isene/Ruby-Curses-Class-Extension)
32
- attr_accessor :color, :fg, :bg, :attr, :update
35
+ attr_accessor :color, :fg, :bg, :attr, :update, :index
33
36
  # Set self.color for an already defined color pair such as: init_pair(1, 255, 3)
34
37
  # The color pair is defined like this: init_pair(index, foreground, background)
35
38
  # self.fg is set for the foreground color (and is used if self.color is not set)
@@ -133,13 +136,14 @@ class Curses::Window # CLASS EXTENSION
133
136
  end
134
137
  end
135
138
 
136
- def getchr # PROCESS KEY PRESSES
137
- c = STDIN.getch(min: 0, time: 1)
139
+ def getchr # Process key presses
140
+ c = STDIN.getch
141
+ #c = STDIN.getch(min: 0, time: 1) # Use this if you need to poll for user keys
138
142
  case c
139
143
  when "\e" # ANSI escape sequences
140
- case $stdin.getc
144
+ case STDIN.getc
141
145
  when '[' # CSI
142
- case $stdin.getc
146
+ case STDIN.getc
143
147
  when 'A' then chr = "UP"
144
148
  when 'B' then chr = "DOWN"
145
149
  when 'C' then chr = "RIGHT"
@@ -152,8 +156,8 @@ def getchr # PROCESS KEY PRESSES
152
156
  when '7' then chr = "HOME" ; chr = "C-HOME" if STDIN.getc == "^"
153
157
  when '8' then chr = "END" ; chr = "C-END" if STDIN.getc == "^"
154
158
  end
155
- when 'O'
156
- case $stdin.getc
159
+ when 'O' # Set Ctrl+ArrowKey equal to ArrowKey; May be used for other purposes in the future
160
+ case STDIN.getc
157
161
  when 'a' then chr = "C-UP"
158
162
  when 'b' then chr = "C-DOWN"
159
163
  when 'c' then chr = "C-RIGHT"
@@ -161,12 +165,22 @@ def getchr # PROCESS KEY PRESSES
161
165
  end
162
166
  end
163
167
  when "", "" then chr = "BACK"
168
+ when "" then chr = "C-C"
169
+ when "" then chr = "C-D"
170
+ when "" then chr = "C-E"
171
+ when "" then chr = "C-G"
172
+ when " " then chr = "C-K"
173
+ when " " then chr = "C-L"
174
+ when "" then chr = "C-N"
175
+ when "" then chr = "C-O"
176
+ when "" then chr = "C-P"
177
+ when "" then chr = "C-T"
178
+ when "" then chr = "C-Y"
164
179
  when "" then chr = "WBACK"
165
180
  when "" then chr = "LDEL"
166
- when "" then chr = "C-T"
167
181
  when "\r" then chr = "ENTER"
168
182
  when "\t" then chr = "TAB"
169
- when /./ then chr = c
183
+ when /[[:print:]]/ then chr = c
170
184
  end
171
185
  return chr
172
186
  end
@@ -197,6 +211,9 @@ def main_getkey # GET KEY FROM USER
197
211
  when 'q' # Exit
198
212
  exit 0
199
213
  end
214
+ while STDIN.ready?
215
+ chr = STDIN.getc
216
+ end
200
217
  end
201
218
 
202
219
  # TOP WINDOW FUNCTIONS
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: curses-extension
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.2'
4
+ version: '1.3'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geir Isene
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-25 00:00:00.000000000 Z
11
+ date: 2023-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: curses
@@ -35,8 +35,8 @@ description: 'The Ruby curses library is sorely lacking some important features.
35
35
  terminal curses applications in Ruby. See the Github page for information on what
36
36
  properties and functions are included: https://github.com/isene/Ruby-Curses-Class-Extension.
37
37
  The curses_template.rb is also installed in the lib directory and serves as the
38
- basis for my own curses applications. New in 1.2: Added functions `print`, `puts`and
39
- `format`.'
38
+ basis for my own curses applications. New in 1.3: Included :index as Class accessor
39
+ and other improvements'
40
40
  email: g@isene.com
41
41
  executables: []
42
42
  extensions: []