newt 0.9.7 → 1.0.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +5 -5
  2. data/README.rdoc +24 -0
  3. data/examples/test-e.rb +108 -0
  4. data/examples/test-j.rb +50 -60
  5. data/examples/test_method/Button.rb +21 -0
  6. data/examples/test_method/Checkbox.rb +27 -0
  7. data/examples/test_method/CheckboxTree.rb +27 -0
  8. data/examples/test_method/CheckboxTreeMulti.rb +25 -0
  9. data/examples/test_method/CompactButton.rb +21 -0
  10. data/examples/test_method/Entry.rb +62 -0
  11. data/examples/test_method/Form.rb +23 -0
  12. data/examples/test_method/Form_ExitStruct.rb +35 -0
  13. data/examples/test_method/HelpCallback.rb +48 -0
  14. data/examples/test_method/Label.rb +26 -0
  15. data/examples/test_method/Listbox.rb +32 -0
  16. data/examples/test_method/Newt_FLAG_SCROLL.rb +3 -4
  17. data/examples/test_method/Newt_cursor.rb +30 -0
  18. data/examples/test_method/RadioButton.rb +23 -0
  19. data/examples/test_method/ReflowText.rb +8 -10
  20. data/examples/test_method/Scale.rb +27 -0
  21. data/examples/test_method/Screen_bell.rb +1 -1
  22. data/examples/test_method/Screen_cls.rb +1 -2
  23. data/examples/test_method/Screen_draw_roottext.rb +2 -3
  24. data/examples/test_method/Screen_init.rb +1 -2
  25. data/examples/test_method/Screen_pop_helpline.rb +2 -5
  26. data/examples/test_method/Screen_push_helpline.rb +2 -5
  27. data/examples/test_method/Screen_redraw_helpline.rb +2 -5
  28. data/examples/test_method/Screen_set_colors.rb +11 -13
  29. data/examples/test_method/Screen_size.rb +1 -1
  30. data/examples/test_method/Screen_win_menu.rb +3 -7
  31. data/examples/test_method/SuspendCallback.rb +33 -0
  32. data/examples/test_method/{Textbox_set_colors.rb → Textbox.rb} +8 -8
  33. data/examples/test_method/{TextboxReflowed_new.rb → TextboxReflowed.rb} +5 -8
  34. data/examples/test_method/Widget_callback.rb +76 -0
  35. data/examples/{memory.rb → test_method/memory.rb} +5 -5
  36. data/examples/testgrid-e.rb +80 -0
  37. data/examples/testgrid-j.rb +57 -62
  38. data/examples/testtree-e.rb +53 -0
  39. data/examples/testtree-j.rb +37 -39
  40. data/ext/ruby_newt/extconf.rb +3 -4
  41. data/ext/ruby_newt/ruby_newt.c +1001 -539
  42. data/lib/version.rb +1 -1
  43. metadata +31 -51
  44. data/examples/test.rb +0 -95
  45. data/examples/test_method/Button_new.rb +0 -22
  46. data/examples/test_method/Checkbox_get.rb +0 -25
  47. data/examples/test_method/Checkbox_new.rb +0 -22
  48. data/examples/test_method/Checkbox_set.rb +0 -28
  49. data/examples/test_method/Checkbox_set_flags.rb +0 -28
  50. data/examples/test_method/CompactButton_new.rb +0 -22
  51. data/examples/test_method/Entry_get.rb +0 -26
  52. data/examples/test_method/Entry_new.rb +0 -23
  53. data/examples/test_method/Entry_set.rb +0 -26
  54. data/examples/test_method/Entry_set_flags.rb +0 -31
  55. data/examples/test_method/Form_destroy.rb +0 -33
  56. data/examples/test_method/Form_set_background.rb +0 -23
  57. data/examples/test_method/Form_set_height.rb +0 -26
  58. data/examples/test_method/Form_set_width.rb +0 -26
  59. data/examples/test_method/Grid_new.rb +0 -26
  60. data/examples/test_method/Label_new.rb +0 -22
  61. data/examples/test_method/Label_setText.rb +0 -25
  62. data/examples/test_method/Label_set_colors.rb +0 -28
  63. data/examples/test_method/Listbox_clear.rb +0 -25
  64. data/examples/test_method/Listbox_current_bykey.rb +0 -29
  65. data/examples/test_method/Listbox_delete.rb +0 -27
  66. data/examples/test_method/Listbox_get_current.rb +0 -28
  67. data/examples/test_method/Listbox_get_current_string.rb +0 -28
  68. data/examples/test_method/Listbox_insert.rb +0 -24
  69. data/examples/test_method/Listbox_new.rb +0 -24
  70. data/examples/test_method/Listbox_select.rb +0 -27
  71. data/examples/test_method/Listbox_set.rb +0 -27
  72. data/examples/test_method/Listbox_set_current.rb +0 -26
  73. data/examples/test_method/Listbox_set_width.rb +0 -25
  74. data/examples/test_method/RadioButton_new.rb +0 -22
  75. data/examples/test_method/Scale_new.rb +0 -22
  76. data/examples/test_method/Scale_set.rb +0 -22
  77. data/examples/test_method/Textbox_get_num_lines.rb +0 -27
  78. data/examples/test_method/Textbox_new.rb +0 -22
  79. data/examples/test_method/Textbox_set_height.rb +0 -25
  80. data/examples/testgrid.rb +0 -84
  81. data/examples/testtree.rb +0 -54
@@ -0,0 +1,62 @@
1
+ #!/usr/bin/env ruby
2
+ # rubocop:disable Style/GlobalVars
3
+
4
+ require 'rubygems'
5
+ require 'newt'
6
+
7
+ $widget = nil
8
+ $data = nil
9
+ $chars = []
10
+ $cursor_positions = []
11
+
12
+ def global_callback(widget, data, char, cursor_pos)
13
+ $widget = widget
14
+ $data = data
15
+ $chars.push(char)
16
+ $cursor_positions.push(cursor_pos)
17
+ char
18
+ end
19
+
20
+ begin
21
+ ENTRY_NORMAL = Newt::COLORSET_CUSTOM 1
22
+ ENTRY_DISABLED = Newt::COLORSET_CUSTOM 2
23
+
24
+ Newt::Screen.new
25
+ Newt::Screen.set_color(ENTRY_NORMAL, 'black', 'red')
26
+ Newt::Screen.set_color(ENTRY_DISABLED, 'black', 'magenta')
27
+ Newt::Screen.centered_window(20, 10, 'Entry')
28
+
29
+
30
+ e1 = Newt::Entry.new(1, 1, 'Entry1', 10, 0)
31
+ e2 = Newt::Entry.new(1, 2, '', 10)
32
+ e3 = Newt::Entry.new(1, 3, 'disabled', 10, Newt::FLAG_DISABLED)
33
+ b = Newt::Button.new(6, 5, 'Exit')
34
+
35
+ e1.set_colors(ENTRY_NORMAL, ENTRY_DISABLED)
36
+ e2.set_filter(proc { |w, d, ch, curs|
37
+ $widget = w
38
+ $data = d
39
+ $chars.push(ch)
40
+ $cursor_positions.push(curs)
41
+ ch
42
+ }, 'Hello World!')
43
+ e2.set('new text', 0)
44
+
45
+ e3.set_flags(Newt::FLAG_DISABLED, Newt::FLAGS_TOGGLE)
46
+ e3.set_filter(:global_callback, 'Hello World!')
47
+
48
+ f = Newt::Form.new
49
+ f.add(e1, e2, e3, b)
50
+
51
+ f.run
52
+ ensure
53
+ Newt::Screen.finish
54
+ end
55
+
56
+ p e1.get, e2.get, e3.get
57
+ puts
58
+ puts "$widget = #{$widget}"
59
+ puts "$data = #{$data}"
60
+ puts "$chars = #{$chars}"
61
+ puts "$cursor_positions = #{$cursor_positions}"
62
+ # rubocop:enable Style/GlobalVars
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'newt'
5
+
6
+ begin
7
+ Newt::Screen.new
8
+
9
+ b1 = Newt::Button.new(1, 5, 'Button1')
10
+ b2 = Newt::Button.new(1, 9, 'Button2')
11
+
12
+ b = Newt::Button.new(1, 13, 'Exit')
13
+
14
+ f = Newt::Form.new
15
+ f.set_background(7)
16
+ f.set_height(20)
17
+ f.set_width(50)
18
+ f.add(b1, b2, b)
19
+
20
+ f.run
21
+ ensure
22
+ Newt::Screen.finish
23
+ end
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'socket'
5
+ require 'newt'
6
+
7
+ socket = TCPServer.new(10000)
8
+
9
+ begin
10
+ Newt::Screen.new
11
+
12
+ b1 = Newt::Button.new(1, 5, 'Button1')
13
+ b2 = Newt::Button.new(1, 9, 'Button2')
14
+
15
+ b = Newt::Button.new(1, 13, 'Exit')
16
+
17
+ f = Newt::Form.new
18
+ f.set_timer(10000)
19
+ f.watch_fd(socket, Newt::FD_READ)
20
+ f.add_hotkey(?\e.ord)
21
+ f.add(b1, b2, b)
22
+
23
+ rv = f.run
24
+ ensure
25
+ Newt::Screen.finish
26
+ end
27
+
28
+ puts rv.inspect
29
+ puts 'Button1' if rv == b1
30
+ puts 'Button2' if b2 == rv
31
+ puts 'Exit' if rv == b
32
+ puts 'Exit button is current button' if b == f.get_current
33
+ puts 'Escape' if rv.reason == Newt::EXIT_HOTKEY && rv.key == ?\e.ord
34
+ puts 'Timeout' if rv.reason == Newt::EXIT_TIMER
35
+ puts 'FD Watch' if rv.reason == Newt::EXIT_FDREADY
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/env ruby
2
+ # rubocop:disable Style/GlobalVars
3
+
4
+ require 'rubygems'
5
+ require 'newt'
6
+
7
+ $help_called = false
8
+ $help_form = nil
9
+ $help_data = nil
10
+
11
+ def global_callback(form, data)
12
+ $help_called = true
13
+ $help_form = form
14
+ $help_data = data
15
+
16
+ Newt::Screen.centered_window(41, 6, 'Help')
17
+ l1 = Newt::Label.new(1, 1, "Form = #{form}")
18
+ l2 = Newt::Label.new(1, 2, "Data = #{data}")
19
+ l3 = Newt::Label.new(15, 4, 'Hit Escape')
20
+
21
+ f = Newt::Form.new
22
+ f.add(l1, l2, l3)
23
+ f.add_hotkey("\e".ord)
24
+ f.run
25
+
26
+ Newt::Screen.pop_window
27
+ end
28
+
29
+ begin
30
+ Newt::Screen.new
31
+ Newt::Screen.help_callback(:global_callback)
32
+ Newt::Screen.centered_window(20, 8, 'Help Callback')
33
+
34
+ l = Newt::Label.new(6, 1, 'Press F1')
35
+ b = Newt::Button.new(6, 3, 'Exit')
36
+ f = Newt::Form.new(nil, 'Hello World!')
37
+ f.add(l, b)
38
+
39
+ f.run
40
+ ensure
41
+ Newt::Screen.finish
42
+ end
43
+
44
+ puts "help_called: #{$help_called}"
45
+ puts "help_form: #{$help_form}"
46
+ puts "help_data: #{$help_data}"
47
+ puts "(help_form == f) ? #{$help_form == f}"
48
+ # rubocop:enable Style/GlobalVars
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'newt'
5
+
6
+ begin
7
+ LABEL_COLOR = Newt::COLORSET_CUSTOM 1
8
+
9
+ Newt::Screen.new
10
+ Newt::Screen.set_color(LABEL_COLOR, 'green', 'cyan')
11
+ Newt::Screen.centered_window(18, 10, 'Label')
12
+
13
+ l1 = Newt::Label.new(1, 1, 'Label1')
14
+ l2 = Newt::Label.new(1, 3, 'Label2')
15
+ l2.set_text('New Label')
16
+ l2.set_colors(LABEL_COLOR)
17
+
18
+ b = Newt::Button.new(5, 5, 'Exit')
19
+
20
+ f = Newt::Form.new
21
+ f.add(l1, l2, b)
22
+
23
+ f.run
24
+ ensure
25
+ Newt::Screen.finish
26
+ end
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'newt'
5
+
6
+ begin
7
+ Newt::Screen.new
8
+
9
+ l1 = Newt::Listbox.new(1, 1, 10, Newt::FLAG_SCROLL)
10
+ 1.upto(20) do |i|
11
+ l1.append("item #{i}", i)
12
+ end
13
+ l1.delete(5)
14
+ l1.insert('**INSERTED**', 100, 3)
15
+ l1.set(5, '**CHANGED**')
16
+ l1.set_current(3)
17
+ l1.select(l1.get_current, Newt::FLAGS_SET)
18
+ l1.select(9, Newt::FLAGS_SET)
19
+ l1.set_current_by_key(11)
20
+ l1.set_width(20)
21
+
22
+ b = Newt::Button.new(1, 12, 'Exit')
23
+
24
+ f = Newt::Form.new
25
+ f.add(l1, b)
26
+
27
+ f.run
28
+ ensure
29
+ Newt::Screen.finish
30
+ end
31
+
32
+ puts "number of list items = #{l1.item_count}"
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'rubygems'
4
- require "newt"
4
+ require 'newt'
5
5
 
6
6
  begin
7
7
  Newt::Screen.new
@@ -9,13 +9,12 @@ begin
9
9
  t = Newt::Textbox.new(1, 1, 20, 10, Newt::FLAG_SCROLL)
10
10
  t.set_text("Line1\nLine2\nLine3\nLine4\nLine5\nLine6\nLine7\nLine8\nLine9\nLine10\nLine11\nLine12\nLine13\nLine14\nLine15\nLine16\nLine17")
11
11
 
12
- b = Newt::Button.new(1, 15, "Exit")
12
+ b = Newt::Button.new(1, 15, 'Exit')
13
13
 
14
14
  f = Newt::Form.new
15
15
  f.add(t, b)
16
16
 
17
- f.run()
18
-
17
+ f.run
19
18
  ensure
20
19
  Newt::Screen.finish
21
20
  end
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env ruby
2
+ require 'rubygems'
3
+ require 'newt'
4
+
5
+ begin
6
+ Newt::Screen.new
7
+ Newt::Screen.centered_window(45, 10, 'Cursor Test')
8
+
9
+ l = Newt::Listbox.new(5, 1, 5)
10
+ 1.upto(3) do |i|
11
+ l.append("item #{i}", i)
12
+ end
13
+
14
+ b1 = Newt::Button.new(2, 5, 'Cursor On')
15
+ b2 = Newt::Button.new(17, 5, 'Cursor Off')
16
+ b3 = Newt::Button.new(33, 5, 'Exit')
17
+
18
+ f = Newt::Form.new
19
+ f.add(l, b1, b2, b3)
20
+
21
+ loop do
22
+ case f.run
23
+ when b1 then Newt::Screen.cursor_on
24
+ when b2 then Newt::Screen.cursor_off
25
+ else break
26
+ end
27
+ end
28
+ ensure
29
+ Newt::Screen.finish
30
+ end
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'newt'
5
+
6
+ begin
7
+ Newt::Screen.new
8
+ Newt::Screen.centered_window(20, 8, 'RadioButton')
9
+
10
+ rb1 = Newt::RadioButton.new(1, 1, 'Button1', 1)
11
+ rb2 = Newt::RadioButton.new(1, 2, 'Button2', 0, rb1)
12
+
13
+ b = Newt::Button.new(6, 4, 'Exit')
14
+
15
+ f = Newt::Form.new
16
+ f.add(rb1, rb2, b)
17
+
18
+ f.run
19
+ ensure
20
+ Newt::Screen.finish
21
+ end
22
+
23
+ puts "selected: #{rb1.get_current}"
@@ -1,23 +1,21 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'rubygems'
4
- require "newt"
4
+ require 'newt'
5
5
 
6
- text = ""
6
+ text = ''
7
7
  width = 0
8
8
  height = 0
9
9
 
10
10
  begin
11
-
12
11
  Newt::Screen.new
13
12
 
14
- text, width, height = Newt.reflow_text("This is a quite a bit of text. It is 40 " +
15
- "columns long, so some wrapping should be " +
16
- "done. Did you know that the quick, brown " +
17
- "fox jumped over the lazy dog?\n\n" +
18
- "In other news, it's pretty important that we " +
19
- "can properly force a line break.", 40, 5, 5)
20
-
13
+ text, width, height = Newt.reflow_text('This is a quite a bit of text. It is 40 ' \
14
+ 'columns long, so some wrapping should be ' \
15
+ 'done. Did you know that the quick, brown ' \
16
+ "fox jumped over the lazy dog?\n\n" \
17
+ "In other news, it's pretty important that we " \
18
+ 'can properly force a line break.', 40, 5, 5)
21
19
  ensure
22
20
  Newt::Screen.finish
23
21
  end
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'newt'
5
+
6
+ begin
7
+ SCALE_EMPTY = Newt::COLORSET_CUSTOM 1
8
+ SCALE_FULL = Newt::COLORSET_CUSTOM 2
9
+
10
+ Newt::Screen.new
11
+ Newt::Screen.set_color(SCALE_EMPTY, 'yellow', 'cyan')
12
+ Newt::Screen.set_color(SCALE_FULL, 'black', 'red')
13
+ Newt::Screen.centered_window(20, 8, 'Scale')
14
+
15
+ s = Newt::Scale.new(1, 1, 18, 100)
16
+ s.set(50)
17
+ s.set_colors(SCALE_EMPTY, SCALE_FULL)
18
+
19
+ b = Newt::Button.new(6, 4, 'Exit')
20
+
21
+ f = Newt::Form.new
22
+ f.add(s, b)
23
+
24
+ f.run
25
+ ensure
26
+ Newt::Screen.finish
27
+ end
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'rubygems'
4
- require "newt"
4
+ require 'newt'
5
5
 
6
6
  Newt::Screen.new
7
7
 
@@ -1,12 +1,11 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'rubygems'
4
- require "newt"
4
+ require 'newt'
5
5
 
6
6
  Newt::Screen.new
7
7
 
8
8
  Newt::Screen.init
9
9
  Newt::Screen.cls
10
10
 
11
-
12
11
  Newt::Screen.finish
@@ -1,16 +1,15 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'rubygems'
4
- require "newt"
4
+ require 'newt'
5
5
 
6
6
  begin
7
7
  Newt::Screen.new
8
8
 
9
9
  Newt::Screen.init
10
10
 
11
- Newt::Screen.draw_roottext(1, 1, "Test")
11
+ Newt::Screen.draw_roottext(1, 1, 'Test')
12
12
  Newt::Screen.wait_for_key
13
-
14
13
  ensure
15
14
  Newt::Screen.finish
16
15
  end
@@ -1,11 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'rubygems'
4
- require "newt"
4
+ require 'newt'
5
5
 
6
6
  Newt::Screen.new
7
7
 
8
8
  Newt::Screen.init
9
9
 
10
-
11
10
  Newt::Screen.finish
@@ -1,18 +1,15 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'rubygems'
4
- require "newt"
4
+ require 'newt'
5
5
 
6
6
  begin
7
7
  Newt::Screen.new
8
8
 
9
- #Newt::Screen.init
10
-
11
- Newt::Screen.push_helpline("Hit Key!!")
9
+ Newt::Screen.push_helpline('Hit Key!!')
12
10
  Newt::Screen.wait_for_key
13
11
  Newt::Screen.pop_helpline
14
12
  Newt::Screen.wait_for_key
15
-
16
13
  ensure
17
14
  Newt::Screen.finish
18
15
  end