ffi-ncurses 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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