newt 0.9.6 → 1.0.0

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