newt 0.9.6 → 1.0.0

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.
Files changed (43) hide show
  1. checksums.yaml +5 -5
  2. data/README.rdoc +30 -1
  3. data/examples/test-e.rb +112 -0
  4. data/examples/test-j.rb +112 -0
  5. data/examples/test_method/Button.rb +21 -0
  6. data/examples/test_method/Checkbox.rb +33 -0
  7. data/examples/test_method/CheckboxTree.rb +28 -0
  8. data/examples/test_method/CheckboxTreeMulti.rb +26 -0
  9. data/examples/test_method/CompactButton.rb +21 -0
  10. data/examples/test_method/Entry.rb +66 -0
  11. data/examples/test_method/Form.rb +23 -0
  12. data/examples/test_method/Form_ExitStruct.rb +36 -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 +33 -0
  16. data/examples/test_method/Newt_FLAG_SCROLL.rb +20 -0
  17. data/examples/test_method/Newt_cursor.rb +30 -0
  18. data/examples/test_method/RadioButton.rb +25 -0
  19. data/examples/test_method/ReflowText.rb +15 -0
  20. data/examples/test_method/Scale.rb +27 -0
  21. data/examples/test_method/Screen_bell.rb +10 -0
  22. data/examples/test_method/Screen_cls.rb +11 -0
  23. data/examples/test_method/Screen_draw_roottext.rb +15 -0
  24. data/examples/test_method/Screen_init.rb +10 -0
  25. data/examples/test_method/Screen_pop_helpline.rb +15 -0
  26. data/examples/test_method/Screen_push_helpline.rb +13 -0
  27. data/examples/test_method/Screen_redraw_helpline.rb +15 -0
  28. data/examples/test_method/Screen_set_colors.rb +32 -0
  29. data/examples/test_method/Screen_size.rb +15 -0
  30. data/examples/test_method/Screen_win_menu.rb +15 -0
  31. data/examples/test_method/SuspendCallback.rb +33 -0
  32. data/examples/test_method/Textbox.rb +27 -0
  33. data/examples/test_method/TextboxReflowed.rb +20 -0
  34. data/examples/test_method/Widget_callback.rb +76 -0
  35. data/examples/test_method/memory.rb +21 -0
  36. data/examples/testgrid-e.rb +78 -0
  37. data/examples/testgrid-j.rb +80 -0
  38. data/examples/testtree-e.rb +53 -0
  39. data/examples/testtree-j.rb +53 -0
  40. data/ext/ruby_newt/extconf.rb +5 -4
  41. data/ext/ruby_newt/ruby_newt.c +1297 -537
  42. data/lib/version.rb +1 -1
  43. metadata +49 -13
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: af73f995787c5ed78b1cebe81c074efd838bc5c8
4
- data.tar.gz: be34df3a2717cc2900c291e09600274f9a68a028
2
+ SHA256:
3
+ metadata.gz: cfea6e7753c0686afc0a58ad7f83c8a3e0c364ef7eeeb92e1073106d74b82286
4
+ data.tar.gz: ace1bcde9cc75ea4bd3183b671acea3a2cc2f89062d709195f99665b978e0e01
5
5
  SHA512:
6
- metadata.gz: a2e514577b88355cd3b13c3a55375e2d782acce4526baac7e711e00a5fa9bf0d34da79d44b238d12f5616f2aa10b0c3a4c10ef5f8251e59bbd417bd51cf63ffa
7
- data.tar.gz: 0caffbd2bf77eae8394d6e363de3392931fd1ec3a5e58acf3cde8db8d446ee0711d25b289264d65e9fab22be933abc8dbd3d758034e207b6451938cb95dbde50
6
+ metadata.gz: 29641680f8695cc982d04735eeb7b02ebbdeca99e1c54972868ac5f6bcd5b328ffba84478611459b99e38f2677f71a0254185a89f0326e6692fbecd148b4d359
7
+ data.tar.gz: 7e3436704b5649ca1c67f8e81077c51c08760f46cd8fc196e3f412a48bbf68c38bf6e7c9e67582282a6670a1fc466d3a74b39d8f76d806899c830fc765bbcb73
data/README.rdoc CHANGED
@@ -21,6 +21,7 @@ See http://github.com/theforeman/ruby-newt/tree/master/examples for usage exampl
21
21
 
22
22
  === From source
23
23
 
24
+ $ gem install rake rake-compiler
24
25
  $ git clone git://github.com/theforeman/ruby-newt
25
26
  $ cd ruby-newt
26
27
  $ gem build newt.gemspec
@@ -28,7 +29,9 @@ See http://github.com/theforeman/ruby-newt/tree/master/examples for usage exampl
28
29
 
29
30
  === Development
30
31
 
31
- $ rake compile
32
+ $ bundle install
33
+ $ bundle exec rake compile
34
+ $ bundle exec rake test
32
35
 
33
36
  == REQUIREMENTS
34
37
 
@@ -55,12 +58,38 @@ For some reason, it does not always find the header so symlink it:
55
58
 
56
59
  $ sudo ln -s /opt/local/include/newt.h /usr/include/
57
60
 
61
+ == Migrating from 0.9 to 1.0
62
+
63
+ The following changes break compatibility with version 0.9 and existing
64
+ programs using the ruby-newt library may need to be changed.
65
+
66
+ * The following method names have been renamed to create a more consistent
67
+ interface.
68
+ * +takesFocus+ has been renamed to +takes_focus+
69
+ * +setCurrentByKey+ has been renamed to +set_current_by_key+
70
+ * +setData+ has been renamed to +set_data+
71
+ * +clearSelection+ has been renamed to +clear_selection+
72
+ * The +get+/+set+ methods have been removed from the +Radiobutton+
73
+ component.
74
+ * The +get_current+ method for +Listbox+ has been generalized and the
75
+ +get_current_as_number+ and +get_current_as_string+ methods have been
76
+ removed.
77
+ * Garbage collection of components and forms has been implemented. This will
78
+ break applications that reuse components on multiple forms.
79
+ * The publicly global +CALLBACK_HASH+ has been removed. Applications that
80
+ modify this hash directly will break.
81
+ * The various _add_callback_ methods no longer return the previously set
82
+ callback when called with no parameters.
83
+ * Use +get_current+ instead of +get+ for radiobuttons.
84
+ * Use +set_current+ instead of +set+ for radiobuttons.
85
+
58
86
  == AUTHORS
59
87
 
60
88
  * Noritsugu Nakamura
61
89
  * Eric Sperano
62
90
  * Kosuke Asami
63
91
  * Lukas Zapletal
92
+ * Robert Gill
64
93
 
65
94
  == LICENSE
66
95
 
@@ -0,0 +1,112 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'newt'
5
+
6
+ def disable_callback(cs, en)
7
+ if cs.get == ' '
8
+ en.set_flags(Newt::FLAG_DISABLED, Newt::FLAGS_RESET)
9
+ else
10
+ en.set_flags(Newt::FLAG_DISABLED, Newt::FLAGS_SET)
11
+ end
12
+ Newt::Screen.refresh
13
+ end
14
+
15
+ Newt::Screen.new
16
+
17
+ Newt::Screen.draw_roottext(0, 0, 'Newt test program')
18
+ Newt::Screen.push_helpline('')
19
+ Newt::Screen.draw_roottext(-50, 0, 'More root text')
20
+
21
+ Newt::Screen.open_window(2, 2, 30, 10, 'first window')
22
+ Newt::Screen.open_window(10, 5, 65, 16, 'window 2')
23
+
24
+ f = Newt::Form.new
25
+ chklist = Newt::Form.new
26
+
27
+ b1 = Newt::Button.new(3, 1, 'Exit')
28
+ b2 = Newt::Button.new(18, 1, 'Update')
29
+ r1 = Newt::RadioButton.new(20, 10, 'Choice 1', 0, nil)
30
+ r2 = Newt::RadioButton.new(20, 11, 'Chc 2', 1, r1)
31
+ r3 = Newt::RadioButton.new(20, 12, 'Choice 3', 0, r2)
32
+ rsf = Newt::Form.new
33
+ rsf.add(r1, r2, r3)
34
+ rsf.set_background(Newt::COLORSET_CHECKBOX)
35
+
36
+ Newt::Screen.refresh
37
+
38
+ cs = []
39
+ (0...10).each do |i|
40
+ buf = format('Check %d', i)
41
+ cs[i] = Newt::Checkbox.new(3, 10 + i, buf)
42
+ chklist.add(cs[i])
43
+ end
44
+
45
+ l1 = Newt::Label.new(3, 6, 'Scale:')
46
+ l2 = Newt::Label.new(3, 7, 'Scrolls:')
47
+ l3 = Newt::Label.new(3, 8, 'Hidden:')
48
+ e1 = Newt::Entry.new(12, 6, '', 20, 0)
49
+ e2 = Newt::Entry.new(12, 7, 'Default', 20, Newt::FLAG_SCROLL)
50
+ e3 = Newt::Entry.new(12, 8, '', 20, Newt::FLAG_HIDDEN)
51
+
52
+ cs[0].callback( proc { disable_callback(cs[0], e1) } )
53
+ scale = Newt::Scale.new(3, 14, 32, 100)
54
+
55
+ chklist.set_height(3)
56
+
57
+ f.add(b1, b2, l1, l2, l3, e1, e2, e3, chklist)
58
+ f.add(rsf, scale)
59
+
60
+ lb = Newt::Listbox.new(45, 1, 6, Newt::FLAG_MULTIPLE | Newt::FLAG_BORDER |
61
+ Newt::FLAG_SCROLL)
62
+ lb.append('First', 1)
63
+ lb.append('Second', 2)
64
+ lb.append('Third', 3)
65
+ lb.append('Fourth', 4)
66
+ lb.append('Sixth', 6)
67
+ lb.append('Seventh', 7)
68
+ lb.append('Eighth', 8)
69
+ lb.append('Ninth', 9)
70
+ lb.append('Tenth', 10)
71
+
72
+ lb.insert('Fifth', 5, 4)
73
+ lb.insert('Eleventh', 11, 10)
74
+ lb.delete(11)
75
+
76
+ t = Newt::Textbox.new(45, 10, 17, 5, Newt::FLAG_WRAP)
77
+ t.set_text("This is some text does it look okay?\nThis should be alone.\nThis shouldn't be printed")
78
+
79
+ f.add(lb, t)
80
+
81
+ Newt::Screen.refresh
82
+
83
+ loop do
84
+ answer = f.run
85
+ if answer == b2
86
+ scale.set(e1.get.to_i)
87
+ Newt::Screen.refresh
88
+ answer = nil
89
+ end
90
+ break unless answer.nil?
91
+ end
92
+
93
+ Newt::Screen.pop_window
94
+ Newt::Screen.pop_window
95
+
96
+ e1 = e1.get
97
+ e2 = e2.get
98
+ e3 = e3.get
99
+ selected_list = lb.get_selection
100
+
101
+ Newt::Screen.finish
102
+
103
+ printf "got string 1: %s\n", e1
104
+ printf "got string 2: %s\n", e2
105
+ printf "got string 3: %s\n", e3
106
+
107
+ if selected_list.count > 0
108
+ print "\nSelected listbox items:\n"
109
+ selected_list.each do |item|
110
+ puts item
111
+ end
112
+ end
@@ -0,0 +1,112 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'newt'
5
+
6
+ def disable_callback(cs, en)
7
+ if cs.get == ' '
8
+ en.set_flags(Newt::FLAG_DISABLED, Newt::FLAGS_RESET)
9
+ else
10
+ en.set_flags(Newt::FLAG_DISABLED, Newt::FLAGS_SET)
11
+ end
12
+ Newt::Screen.refresh
13
+ end
14
+
15
+ Newt::Screen.new
16
+
17
+ Newt::Screen.draw_roottext(0, 0, 'Newt ¥Æ¥¹¥È¥×¥í¥°¥é¥à')
18
+ Newt::Screen.push_helpline('')
19
+ Newt::Screen.draw_roottext(-50, 0, '¥ë¡¼¥È¥Æ¥­¥¹¥È')
20
+
21
+ Newt::Screen.open_window(2, 2, 30, 10, '£±ÈÖÌܤΥ¦¥£¥ó¥É¥¦')
22
+ Newt::Screen.open_window(10, 5, 65, 16, '¥¦¥£¥ó¥É¥¦£²')
23
+
24
+ f = Newt::Form.new
25
+ chklist = Newt::Form.new
26
+
27
+ b1 = Newt::Button.new(3, 1, '½ªÎ»')
28
+ b2 = Newt::Button.new(18, 1, '¹¹¿·')
29
+ r1 = Newt::RadioButton.new(20, 10, 'ÁªÂò»è£±', 0, nil)
30
+ r2 = Newt::RadioButton.new(20, 11, 'ÁªÂò»è£²', 1, r1)
31
+ r3 = Newt::RadioButton.new(20, 12, 'ÁªÂò»è£³', 0, r2)
32
+ rsf = Newt::Form.new
33
+ rsf.add(r1, r2, r3)
34
+ rsf.set_background(Newt::COLORSET_CHECKBOX)
35
+
36
+ Newt::Screen.refresh
37
+
38
+ cs = []
39
+ (0...10).each do |i|
40
+ buf = format('¥Á¥§¥Ã¥¯ %d', i)
41
+ cs[i] = Newt::Checkbox.new(3, 10 + i, buf, ' ', nil)
42
+ chklist.add(cs[i])
43
+ end
44
+
45
+ l1 = Newt::Label.new(3, 6, '¥¹¥±¡¼¥ë:')
46
+ l2 = Newt::Label.new(3, 7, '¥¹¥¯¥í¡¼¥ë:')
47
+ l3 = Newt::Label.new(3, 8, '¥Ò¥É¥¥¥ó:')
48
+ e1 = Newt::Entry.new(12, 6, '', 20, 0)
49
+ e2 = Newt::Entry.new(12, 7, 'ɸ½à', 20, Newt::FLAG_SCROLL)
50
+ e3 = Newt::Entry.new(12, 8, '', 20, Newt::FLAG_HIDDEN)
51
+
52
+ cs[0].callback( proc { disable_callback(cs[0], e1) } )
53
+ scale = Newt::Scale.new(3, 14, 32, 100)
54
+
55
+ chklist.set_height(3)
56
+
57
+ f.add(b1, b2, l1, l2, l3, e1, e2, e3, chklist)
58
+ f.add(rsf, scale)
59
+
60
+ lb = Newt::Listbox.new(45, 1, 6, Newt::FLAG_MULTIPLE | Newt::FLAG_BORDER |
61
+ Newt::FLAG_SCROLL)
62
+ lb.append('£±ÈÖÌÜ', 1)
63
+ lb.append('£²ÈÖÌÜ', 2)
64
+ lb.append('£³ÈÖÌÜ', 3)
65
+ lb.append('£´ÈÖÌÜ', 4)
66
+ lb.append('£¶ÈÖÌÜ', 6)
67
+ lb.append('£·ÈÖÌÜ', 7)
68
+ lb.append('£¸ÈÖÌÜ', 8)
69
+ lb.append('£¹ÈÖÌÜ', 9)
70
+ lb.append('£±£°ÈÖÌÜ', 10)
71
+
72
+ lb.insert('£µÈÖÌÜ', 5, 4)
73
+ lb.insert('£±£±ÈÖÌÜ', 11, 10)
74
+ lb.delete(11)
75
+
76
+ t = Newt::Textbox.new(45, 10, 17, 5, Newt::FLAG_WRAP)
77
+ t.set_text('¤³¤ì¤Ï¥Æ¥­¥¹¥È¤Î¥µ¥ó¥×¥ë¤Ç¤¹¡£\nÀµ¾ï¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¤«¡©\n¤³¤ì¤ÏñÆÈ¹Ô¤Ç¤¹¡£\n¤³¤ì¤Ïɽ¼¨¤µ¤ì¤Æ¤Ï¤¤¤±¤Þ¤»¤ó')
78
+
79
+ f.add(lb, t)
80
+
81
+ Newt::Screen.refresh
82
+
83
+ loop do
84
+ answer = f.run
85
+ if answer == b2
86
+ scale.set(e1.get.to_i)
87
+ Newt::Screen.refresh
88
+ answer = nil
89
+ end
90
+ break unless answer.nil?
91
+ end
92
+
93
+ Newt::Screen.pop_window
94
+ Newt::Screen.pop_window
95
+
96
+ e1 = e1.get
97
+ e2 = e2.get
98
+ e3 = e3.get
99
+ selected_list = lb.get_selection
100
+
101
+ Newt::Screen.finish
102
+
103
+ printf "got string 1: %s\n", e1
104
+ printf "got string 2: %s\n", e2
105
+ printf "got string 3: %s\n", e3
106
+
107
+ if selected_list.count > 0
108
+ print "\nSelected listbox items:\n"
109
+ selected_list.each do |item|
110
+ puts item
111
+ end
112
+ end
@@ -0,0 +1,21 @@
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, 15, 'Button')
9
+
10
+ b1 = Newt::Button.new(1, 1, 'Button1')
11
+ b2 = Newt::Button.new(1, 6, 'Button2')
12
+
13
+ b = Newt::Button.new(1, 11, 'Exit')
14
+
15
+ f = Newt::Form.new
16
+ f.add(b1, b2, b)
17
+
18
+ f.run
19
+ ensure
20
+ Newt::Screen.finish
21
+ end
@@ -0,0 +1,33 @@
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, 11, 'Checkbox')
9
+
10
+ cb1 = Newt::Checkbox.new(1, 1, 'Checkbox1', 'A', nil)
11
+ cb2 = Newt::Checkbox.new(1, 2, 'Checkbox2', '', '+')
12
+ cb3 = Newt::Checkbox.new(1, 3, 'Checkbox3')
13
+ cb4 = Newt::Checkbox.new(1, 4, 'Checkbox4', nil, '')
14
+ cb5 = Newt::Checkbox.new(1, 5, 'Checkbox5')
15
+ b = Newt::Button.new(6, 7, 'Exit')
16
+
17
+ cb3.set('@')
18
+ cb5.set_flags(Newt::FLAG_DISABLED, Newt::FLAGS_SET)
19
+ f = Newt::Form.new
20
+ f.add(cb1, cb2, cb3, cb4, cb5, b)
21
+
22
+ f.run
23
+
24
+ cb1 = cb1.get
25
+ cb2 = cb2.get
26
+ cb3 = cb3.get
27
+ cb4 = cb4.get
28
+ cb5 = cb5.get
29
+ ensure
30
+ Newt::Screen.finish
31
+ end
32
+
33
+ p cb1, cb2, cb3, cb4, cb5
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'newt'
5
+
6
+ begin
7
+ Newt::Screen.new
8
+
9
+ ct = Newt::CheckboxTree.new(1, 10, 4, Newt::FLAG_SCROLL)
10
+ ct.add('Checkbox1', 1, 0, Newt::ARG_APPEND)
11
+ ct.add('Checkbox2', 2, 0, Newt::ARG_APPEND)
12
+ ct.add('Checkbox3', 3, 0, Newt::ARG_APPEND)
13
+ ct.add('Checkbox4', 4, 0, 2, Newt::ARG_APPEND)
14
+ ct.add('Checkbox5', 5, 0, 2, Newt::ARG_APPEND)
15
+ b = Newt::Button.new(1, 15, 'Exit')
16
+
17
+ ct.set_width(30)
18
+ ct.set_entry(2, 'ITEM2')
19
+ f = Newt::Form.new
20
+ f.add(ct, b)
21
+
22
+ f.run
23
+ selection = ct.get_selection
24
+ ensure
25
+ Newt::Screen.finish
26
+ end
27
+
28
+ p selection
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'newt'
5
+
6
+ begin
7
+ Newt::Screen.new
8
+
9
+ ct = Newt::CheckboxTreeMulti.new(1, 10, 4, ' ab', Newt::FLAG_SCROLL)
10
+ ct.add('Checkbox1', 1, 0, Newt::ARG_APPEND)
11
+ ct.add('Checkbox2', 2, 0, Newt::ARG_APPEND)
12
+ ct.add('Checkbox3', 3, 0, Newt::ARG_APPEND)
13
+ ct.add('Checkbox4', 4, 0, 2, Newt::ARG_APPEND)
14
+ ct.add('Checkbox5', 5, 0, 2, Newt::ARG_APPEND)
15
+ b = Newt::Button.new(1, 15, 'Exit')
16
+
17
+ f = Newt::Form.new
18
+ f.add(ct, b)
19
+
20
+ f.run
21
+ selection = ct.get_selection('a')
22
+ ensure
23
+ Newt::Screen.finish
24
+ end
25
+
26
+ p selection
@@ -0,0 +1,21 @@
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, 10, 'CompactButton')
9
+
10
+ b1 = Newt::CompactButton.new(1, 1, 'Button1')
11
+ b2 = Newt::CompactButton.new(1, 3, 'Button2')
12
+
13
+ b = Newt::Button.new(5, 5, 'Exit')
14
+
15
+ f = Newt::Form.new
16
+ f.add(b1, b2, b)
17
+
18
+ f.run
19
+ ensure
20
+ Newt::Screen.finish
21
+ end
@@ -0,0 +1,66 @@
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
+
53
+ e1 = e1.get
54
+ e2 = e2.get
55
+ e3 = e3.get
56
+ ensure
57
+ Newt::Screen.finish
58
+ end
59
+
60
+ p e1, e2, e3
61
+ puts
62
+ puts "$widget = #{$widget}"
63
+ puts "$data = #{$data}"
64
+ puts "$chars = #{$chars}"
65
+ puts "$cursor_positions = #{$cursor_positions}"
66
+ # 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,36 @@
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
+ current = f.get_current
25
+ ensure
26
+ Newt::Screen.finish
27
+ end
28
+
29
+ puts rv.inspect
30
+ puts 'Button1' if rv == b1
31
+ puts 'Button2' if b2 == rv
32
+ puts 'Exit' if rv == b
33
+ puts 'Exit button is current button' if b == current
34
+ puts 'Escape' if rv.reason == Newt::EXIT_HOTKEY && rv.key == ?\e.ord
35
+ puts 'Timeout' if rv.reason == Newt::EXIT_TIMER
36
+ 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,33 @@
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
+ item_count = l1.item_count
29
+ ensure
30
+ Newt::Screen.finish
31
+ end
32
+
33
+ puts "number of list items = #{item_count}"
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'newt'
5
+
6
+ begin
7
+ Newt::Screen.new
8
+
9
+ t = Newt::Textbox.new(1, 1, 20, 10, Newt::FLAG_SCROLL)
10
+ t.set_text("Line1\nLine2\nLine3\nLine4\nLine5\nLine6\nLine7\nLine8\nLine9\nLine10\nLine11\nLine12\nLine13\nLine14\nLine15\nLine16\nLine17")
11
+
12
+ b = Newt::Button.new(1, 15, 'Exit')
13
+
14
+ f = Newt::Form.new
15
+ f.add(t, b)
16
+
17
+ f.run
18
+ ensure
19
+ Newt::Screen.finish
20
+ end