ffi-ncurses 0.3.2 → 0.3.3

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.
@@ -1,106 +1,108 @@
1
- module NCurses
2
- KEY_CODE_YES = 0400 # A wchar_t contains a key code
3
- KEY_MIN = 0401 # Minimum curses key
4
- KEY_BREAK = 0401 # Break key (unreliable)
5
- KEY_SRESET = 0530 # Soft (partial) reset (unreliable)
6
- KEY_RESET = 0531 # Reset or hard reset (unreliable)
1
+ module FFI
2
+ module NCurses
3
+ KEY_CODE_YES = 0400 # A wchar_t contains a key code
4
+ KEY_MIN = 0401 # Minimum curses key
5
+ KEY_BREAK = 0401 # Break key (unreliable)
6
+ KEY_SRESET = 0530 # Soft (partial) reset (unreliable)
7
+ KEY_RESET = 0531 # Reset or hard reset (unreliable)
7
8
 
8
- KEY_DOWN = 0402 # down-arrow key
9
- KEY_UP = 0403 # up-arrow key
10
- KEY_LEFT = 0404 # left-arrow key
11
- KEY_RIGHT = 0405 # right-arrow key
12
- KEY_HOME = 0406 # home key
13
- KEY_BACKSPACE = 0407 # backspace key
14
- KEY_F0 = 0410 # Function keys. Space for 64
15
-
16
- # Value of function key n
17
- def KEY_F(n)
18
- (KEY_F0+(n))
19
- end
9
+ KEY_DOWN = 0402 # down-arrow key
10
+ KEY_UP = 0403 # up-arrow key
11
+ KEY_LEFT = 0404 # left-arrow key
12
+ KEY_RIGHT = 0405 # right-arrow key
13
+ KEY_HOME = 0406 # home key
14
+ KEY_BACKSPACE = 0407 # backspace key
15
+ KEY_F0 = 0410 # Function keys. Space for 64
16
+
17
+ # Value of function key n
18
+ def KEY_F(n)
19
+ (KEY_F0+(n))
20
+ end
20
21
 
21
- KEY_DL = 0510 # delete-line key
22
- KEY_IL = 0511 # insert-line key
23
- KEY_DC = 0512 # delete-character key
24
- KEY_IC = 0513 # insert-character key
25
- KEY_EIC = 0514 # sent by rmir or smir in insert mode
26
- KEY_CLEAR = 0515 # clear-screen or erase key
27
- KEY_EOS = 0516 # clear-to-end-of-screen key
28
- KEY_EOL = 0517 # clear-to-end-of-line key
29
- KEY_SF = 0520 # scroll-forward key
30
- KEY_SR = 0521 # scroll-backward key
31
- KEY_NPAGE = 0522 # next-page key
32
- KEY_PPAGE = 0523 # previous-page key
33
- KEY_STAB = 0524 # set-tab key
34
- KEY_CTAB = 0525 # clear-tab key
35
- KEY_CATAB = 0526 # clear-all-tabs key
36
- KEY_ENTER = 0527 # enter/send key
37
- KEY_PRINT = 0532 # print key
38
- KEY_LL = 0533 # lower-left key (home down)
39
- KEY_A1 = 0534 # upper left of keypad
40
- KEY_A3 = 0535 # upper right of keypad
41
- KEY_B2 = 0536 # center of keypad
42
- KEY_C1 = 0537 # lower left of keypad
43
- KEY_C3 = 0540 # lower right of keypad
44
- KEY_BTAB = 0541 # back-tab key
45
- KEY_BEG = 0542 # begin key
46
- KEY_CANCEL = 0543 # cancel key
47
- KEY_CLOSE = 0544 # close key
48
- KEY_COMMAND = 0545 # command key
49
- KEY_COPY = 0546 # copy key
50
- KEY_CREATE = 0547 # create key
51
- KEY_END = 0550 # end key
52
- KEY_EXIT = 0551 # exit key
53
- KEY_FIND = 0552 # find key
54
- KEY_HELP = 0553 # help key
55
- KEY_MARK = 0554 # mark key
56
- KEY_MESSAGE = 0555 # message key
57
- KEY_MOVE = 0556 # move key
58
- KEY_NEXT = 0557 # next key
59
- KEY_OPEN = 0560 # open key
60
- KEY_OPTIONS = 0561 # options key
61
- KEY_PREVIOUS = 0562 # previous key
62
- KEY_REDO = 0563 # redo key
63
- KEY_REFERENCE = 0564 # reference key
64
- KEY_REFRESH = 0565 # refresh key
65
- KEY_REPLACE = 0566 # replace key
66
- KEY_RESTART = 0567 # restart key
67
- KEY_RESUME = 0570 # resume key
68
- KEY_SAVE = 0571 # save key
69
- KEY_SBEG = 0572 # shifted begin key
70
- KEY_SCANCEL = 0573 # shifted cancel key
71
- KEY_SCOMMAND = 0574 # shifted command key
72
- KEY_SCOPY = 0575 # shifted copy key
73
- KEY_SCREATE = 0576 # shifted create key
74
- KEY_SDC = 0577 # shifted delete-character key
75
- KEY_SDL = 0600 # shifted delete-line key
76
- KEY_SELECT = 0601 # select key
77
- KEY_SEND = 0602 # shifted end key
78
- KEY_SEOL = 0603 # shifted clear-to-end-of-line key
79
- KEY_SEXIT = 0604 # shifted exit key
80
- KEY_SFIND = 0605 # shifted find key
81
- KEY_SHELP = 0606 # shifted help key
82
- KEY_SHOME = 0607 # shifted home key
83
- KEY_SIC = 0610 # shifted insert-character key
84
- KEY_SLEFT = 0611 # shifted left-arrow key
85
- KEY_SMESSAGE = 0612 # shifted message key
86
- KEY_SMOVE = 0613 # shifted move key
87
- KEY_SNEXT = 0614 # shifted next key
88
- KEY_SOPTIONS = 0615 # shifted options key
89
- KEY_SPREVIOUS = 0616 # shifted previous key
90
- KEY_SPRINT = 0617 # shifted print key
91
- KEY_SREDO = 0620 # shifted redo key
92
- KEY_SREPLACE = 0621 # shifted replace key
93
- KEY_SRIGHT = 0622 # shifted right-arrow key
94
- KEY_SRSUME = 0623 # shifted resume key
95
- KEY_SSAVE = 0624 # shifted save key
96
- KEY_SSUSPEND = 0625 # shifted suspend key
97
- KEY_SUNDO = 0626 # shifted undo key
98
- KEY_SUSPEND = 0627 # suspend key
99
- KEY_UNDO = 0630 # undo key
100
- KEY_MOUSE = 0631 # Mouse event has occurred
101
- KEY_RESIZE = 0632 # Terminal resize event
102
- KEY_EVENT = 0633 # We were interrupted by an event
22
+ KEY_DL = 0510 # delete-line key
23
+ KEY_IL = 0511 # insert-line key
24
+ KEY_DC = 0512 # delete-character key
25
+ KEY_IC = 0513 # insert-character key
26
+ KEY_EIC = 0514 # sent by rmir or smir in insert mode
27
+ KEY_CLEAR = 0515 # clear-screen or erase key
28
+ KEY_EOS = 0516 # clear-to-end-of-screen key
29
+ KEY_EOL = 0517 # clear-to-end-of-line key
30
+ KEY_SF = 0520 # scroll-forward key
31
+ KEY_SR = 0521 # scroll-backward key
32
+ KEY_NPAGE = 0522 # next-page key
33
+ KEY_PPAGE = 0523 # previous-page key
34
+ KEY_STAB = 0524 # set-tab key
35
+ KEY_CTAB = 0525 # clear-tab key
36
+ KEY_CATAB = 0526 # clear-all-tabs key
37
+ KEY_ENTER = 0527 # enter/send key
38
+ KEY_PRINT = 0532 # print key
39
+ KEY_LL = 0533 # lower-left key (home down)
40
+ KEY_A1 = 0534 # upper left of keypad
41
+ KEY_A3 = 0535 # upper right of keypad
42
+ KEY_B2 = 0536 # center of keypad
43
+ KEY_C1 = 0537 # lower left of keypad
44
+ KEY_C3 = 0540 # lower right of keypad
45
+ KEY_BTAB = 0541 # back-tab key
46
+ KEY_BEG = 0542 # begin key
47
+ KEY_CANCEL = 0543 # cancel key
48
+ KEY_CLOSE = 0544 # close key
49
+ KEY_COMMAND = 0545 # command key
50
+ KEY_COPY = 0546 # copy key
51
+ KEY_CREATE = 0547 # create key
52
+ KEY_END = 0550 # end key
53
+ KEY_EXIT = 0551 # exit key
54
+ KEY_FIND = 0552 # find key
55
+ KEY_HELP = 0553 # help key
56
+ KEY_MARK = 0554 # mark key
57
+ KEY_MESSAGE = 0555 # message key
58
+ KEY_MOVE = 0556 # move key
59
+ KEY_NEXT = 0557 # next key
60
+ KEY_OPEN = 0560 # open key
61
+ KEY_OPTIONS = 0561 # options key
62
+ KEY_PREVIOUS = 0562 # previous key
63
+ KEY_REDO = 0563 # redo key
64
+ KEY_REFERENCE = 0564 # reference key
65
+ KEY_REFRESH = 0565 # refresh key
66
+ KEY_REPLACE = 0566 # replace key
67
+ KEY_RESTART = 0567 # restart key
68
+ KEY_RESUME = 0570 # resume key
69
+ KEY_SAVE = 0571 # save key
70
+ KEY_SBEG = 0572 # shifted begin key
71
+ KEY_SCANCEL = 0573 # shifted cancel key
72
+ KEY_SCOMMAND = 0574 # shifted command key
73
+ KEY_SCOPY = 0575 # shifted copy key
74
+ KEY_SCREATE = 0576 # shifted create key
75
+ KEY_SDC = 0577 # shifted delete-character key
76
+ KEY_SDL = 0600 # shifted delete-line key
77
+ KEY_SELECT = 0601 # select key
78
+ KEY_SEND = 0602 # shifted end key
79
+ KEY_SEOL = 0603 # shifted clear-to-end-of-line key
80
+ KEY_SEXIT = 0604 # shifted exit key
81
+ KEY_SFIND = 0605 # shifted find key
82
+ KEY_SHELP = 0606 # shifted help key
83
+ KEY_SHOME = 0607 # shifted home key
84
+ KEY_SIC = 0610 # shifted insert-character key
85
+ KEY_SLEFT = 0611 # shifted left-arrow key
86
+ KEY_SMESSAGE = 0612 # shifted message key
87
+ KEY_SMOVE = 0613 # shifted move key
88
+ KEY_SNEXT = 0614 # shifted next key
89
+ KEY_SOPTIONS = 0615 # shifted options key
90
+ KEY_SPREVIOUS = 0616 # shifted previous key
91
+ KEY_SPRINT = 0617 # shifted print key
92
+ KEY_SREDO = 0620 # shifted redo key
93
+ KEY_SREPLACE = 0621 # shifted replace key
94
+ KEY_SRIGHT = 0622 # shifted right-arrow key
95
+ KEY_SRSUME = 0623 # shifted resume key
96
+ KEY_SSAVE = 0624 # shifted save key
97
+ KEY_SSUSPEND = 0625 # shifted suspend key
98
+ KEY_SUNDO = 0626 # shifted undo key
99
+ KEY_SUSPEND = 0627 # suspend key
100
+ KEY_UNDO = 0630 # undo key
101
+ KEY_MOUSE = 0631 # Mouse event has occurred
102
+ KEY_RESIZE = 0632 # Terminal resize event
103
+ KEY_EVENT = 0633 # We were interrupted by an event
103
104
 
104
- KEY_MAX = 0777 # Maximum key value is 0633
105
+ KEY_MAX = 0777 # Maximum key value is 0633 [SOH: sic in ncurses.h]
105
106
 
107
+ end
106
108
  end
@@ -4,7 +4,7 @@ module FFI
4
4
 
5
5
  NCURSES_MOUSE_VERSION = 1
6
6
 
7
- # mouse interface
7
+ # mouse interface
8
8
 
9
9
  if NCURSES_MOUSE_VERSION > 1
10
10
  def self.NCURSES_MOUSE_MASK(b,m)
@@ -23,7 +23,7 @@ module FFI
23
23
  NCURSES_TRIPLE_CLICKED = 020
24
24
  NCURSES_RESERVED_EVENT = 040
25
25
 
26
- # event masks
26
+ # event masks
27
27
  BUTTON1_RELEASED = NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_RELEASED)
28
28
  BUTTON1_PRESSED = NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_PRESSED)
29
29
  BUTTON1_CLICKED = NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_CLICKED)
@@ -52,7 +52,7 @@ module FFI
52
52
  # In 32 bits the version-1 scheme does not provide enough space for a 5th
53
53
  # button, unless we choose to change the ABI by omitting the reserved-events.
54
54
  #
55
-
55
+
56
56
  if NCURSES_MOUSE_VERSION > 1
57
57
 
58
58
  BUTTON5_RELEASED = NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_RELEASED)
@@ -60,7 +60,7 @@ module FFI
60
60
  BUTTON5_CLICKED = NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_CLICKED)
61
61
  BUTTON5_DOUBLE_CLICKED = NCURSES_MOUSE_MASK(5, NCURSES_DOUBLE_CLICKED)
62
62
  BUTTON5_TRIPLE_CLICKED = NCURSES_MOUSE_MASK(5, NCURSES_TRIPLE_CLICKED)
63
-
63
+
64
64
  BUTTON_CTRL = NCURSES_MOUSE_MASK(6, 0001)
65
65
  BUTTON_SHIFT = NCURSES_MOUSE_MASK(6, 0002)
66
66
  BUTTON_ALT = NCURSES_MOUSE_MASK(6, 0004)
@@ -83,7 +83,7 @@ module FFI
83
83
  ALL_MOUSE_EVENTS = (REPORT_MOUSE_POSITION - 1)
84
84
 
85
85
  class << self
86
- # macros to extract single event-bits from masks
86
+ # macros to extract single event-bits from masks
87
87
  def BUTTON_RELEASE(e, x)
88
88
  ((e) & (001 << (6 * ((x) - 1))))
89
89
  end
@@ -116,8 +116,9 @@ module FFI
116
116
 
117
117
  # def mouse_trafo(y, x, to_screen)
118
118
  # end
119
-
120
- KEY_MOUSE = 0631 # Mouse event has occurred
119
+
120
+ # already defined in keydefs.rb
121
+ # KEY_MOUSE = 0631 # Mouse event has occurred
121
122
 
122
123
  #FFI.add_typedef :ulong, :mmask_t
123
124
  class MEVENT < FFI::Struct
@@ -134,7 +135,7 @@ module FFI
134
135
  [:getmouse, [MEVENT], :int],
135
136
  [:ungetmouse, [MEVENT], :int],
136
137
  ]
137
-
138
+
138
139
  functions.each do |function|
139
140
  begin
140
141
  attach_function(*function)
@@ -0,0 +1,9 @@
1
+ # 1.8.6 compatibility
2
+ if !1.respond_to?(:ord)
3
+ class Integer
4
+ def ord
5
+ self
6
+ end
7
+ end
8
+ end
9
+
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffi-ncurses
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 3
8
+ - 3
9
+ version: 0.3.3
5
10
  platform: ruby
6
11
  authors:
7
12
  - Sean O'Halpin
@@ -9,20 +14,34 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2009-02-22 00:00:00 +00:00
17
+ date: 2009-02-24 00:00:00 +00:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
- name: bones
17
- type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
21
+ name: ffi
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
20
25
  requirements:
21
26
  - - ">="
22
27
  - !ruby/object:Gem::Version
23
- version: 2.4.0
24
- version:
25
- description: A wrapper for ncurses 5.x. Tested on Mac OS X 10.4 (Tiger) and Ubuntu 8.04 with ruby 1.8.6 using ruby-ffi (>= 0.2.0) and JRuby 1.1.6. The API is very much a transliteration of the C API rather than an attempt to provide an idiomatic Ruby object-oriented API. The intent is to provide a 'close to the metal' wrapper around the ncurses library upon which you can build your own abstractions. See the examples directory for real working examples.
28
+ segments:
29
+ - 0
30
+ - 6
31
+ - 3
32
+ version: 0.6.3
33
+ type: :runtime
34
+ version_requirements: *id001
35
+ description: |
36
+ A wrapper for ncurses 5.x. Tested on Ubuntu 8.04 to 10.04 and Mac OS X
37
+ 10.4 (Tiger) with ruby 1.8.6, 1.8.7 and 1.9.x using ffi (>= 0.6.3) and
38
+ JRuby 1.5.1.
39
+
40
+ The API is a transliteration of the C API rather than an attempt to
41
+ provide an idiomatic Ruby object-oriented API.
42
+
43
+ See the examples directory for real working examples.
44
+
26
45
  email: sean.ohalpin@gmail.com
27
46
  executables: []
28
47
 
@@ -34,7 +53,6 @@ extra_rdoc_files:
34
53
  files:
35
54
  - History.txt
36
55
  - README.rdoc
37
- - Rakefile
38
56
  - examples/doc-eg1.rb
39
57
  - examples/doc-eg2.rb
40
58
  - examples/doc-eg3.rb
@@ -57,21 +75,12 @@ files:
57
75
  - lib/ffi-ncurses/darwin.rb
58
76
  - lib/ffi-ncurses/keydefs.rb
59
77
  - lib/ffi-ncurses/mouse.rb
78
+ - lib/ffi-ncurses/ord-shim.rb
60
79
  - lib/ffi-ncurses/winstruct.rb
61
- - tasks/ann.rake
62
- - tasks/bones.rake
63
- - tasks/gem.rake
64
- - tasks/git.rake
65
- - tasks/notes.rake
66
- - tasks/post_load.rake
67
- - tasks/rdoc.rake
68
- - tasks/rubyforge.rake
69
- - tasks/setup.rb
70
- - tasks/spec.rake
71
- - tasks/svn.rake
72
- - tasks/test.rake
73
80
  has_rdoc: true
74
81
  homepage: http://github.com/seanohalpin/ffi-ncurses
82
+ licenses: []
83
+
75
84
  post_install_message:
76
85
  rdoc_options:
77
86
  - --main
@@ -79,23 +88,27 @@ rdoc_options:
79
88
  require_paths:
80
89
  - lib
81
90
  required_ruby_version: !ruby/object:Gem::Requirement
91
+ none: false
82
92
  requirements:
83
93
  - - ">="
84
94
  - !ruby/object:Gem::Version
95
+ segments:
96
+ - 0
85
97
  version: "0"
86
- version:
87
98
  required_rubygems_version: !ruby/object:Gem::Requirement
99
+ none: false
88
100
  requirements:
89
101
  - - ">="
90
102
  - !ruby/object:Gem::Version
103
+ segments:
104
+ - 0
91
105
  version: "0"
92
- version:
93
106
  requirements: []
94
107
 
95
108
  rubyforge_project: ffi-ncurses
96
- rubygems_version: 1.3.1
109
+ rubygems_version: 1.3.7
97
110
  signing_key:
98
- specification_version: 2
111
+ specification_version: 3
99
112
  summary: FFI wrapper for ncurses
100
113
  test_files: []
101
114
 
data/Rakefile DELETED
@@ -1,66 +0,0 @@
1
- # Look in the tasks/setup.rb file for the various options that can be
2
- # configured in this Rakefile. The .rake files in the tasks directory
3
- # are where the options are used.
4
-
5
- begin
6
- require 'bones'
7
- Bones.setup
8
- rescue LoadError
9
- begin
10
- load 'tasks/setup.rb'
11
- rescue LoadError
12
- raise RuntimeError, '### please install the "bones" gem ###'
13
- end
14
- end
15
-
16
- if File.exist?('local/config.rb')
17
- load 'local/config.rb'
18
- end
19
-
20
- ensure_in_path 'lib'
21
- require 'ffi-ncurses'
22
-
23
- task :default => 'spec:run'
24
-
25
- # see tasks/setup.rb for full list of options
26
-
27
- PROJ.name = 'ffi-ncurses'
28
- PROJ.authors = ["Sean O'Halpin"]
29
- PROJ.email = 'sean.ohalpin@gmail.com'
30
- PROJ.url = 'http://github.com/seanohalpin/ffi-ncurses'
31
- PROJ.summary = "FFI wrapper for ncurses"
32
- PROJ.version = FFI::NCurses::VERSION
33
- PROJ.rubyforge.name = 'ffi-ncurses'
34
-
35
- PROJ.description = <<EOT
36
- A wrapper for ncurses 5.x. Tested on Mac OS X 10.4 (Tiger) and Ubuntu
37
- 8.04 with ruby 1.8.6 using ruby-ffi (>= 0.2.0) and JRuby 1.1.6.
38
-
39
- The API is very much a transliteration of the C API rather than an
40
- attempt to provide an idiomatic Ruby object-oriented API. The intent
41
- is to provide a 'close to the metal' wrapper around the ncurses
42
- library upon which you can build your own abstractions.
43
-
44
- See the examples directory for real working examples.
45
- EOT
46
-
47
- # gem
48
- # PROJ.gem.dependencies << ["ffi", ">= 0.2.0"]
49
-
50
- # rdoc
51
- PROJ.rdoc.exclude << "^notes"
52
- PROJ.readme_file = 'README.rdoc'
53
-
54
- # spec
55
- PROJ.spec.opts << '--color'
56
-
57
- # files
58
- PROJ.exclude = %w(tmp$ bak$ ~$ CVS \.svn ^pkg ^doc \.git local notes)
59
- PROJ.exclude << '^tags$' << "^bug" << "^tools"
60
- PROJ.exclude << File.read('.gitignore').split(/\n/)
61
-
62
- # notes
63
- #PROJ.notes.exclude = %w(^README\.txt$ ^data/)
64
- PROJ.notes.extensions << '.org'
65
-
66
- # EOF