newt 0.9.6 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.rdoc +30 -1
- data/examples/test-e.rb +112 -0
- data/examples/test-j.rb +112 -0
- data/examples/test_method/Button.rb +21 -0
- data/examples/test_method/Checkbox.rb +33 -0
- data/examples/test_method/CheckboxTree.rb +28 -0
- data/examples/test_method/CheckboxTreeMulti.rb +26 -0
- data/examples/test_method/CompactButton.rb +21 -0
- data/examples/test_method/Entry.rb +66 -0
- data/examples/test_method/Form.rb +23 -0
- data/examples/test_method/Form_ExitStruct.rb +36 -0
- data/examples/test_method/HelpCallback.rb +48 -0
- data/examples/test_method/Label.rb +26 -0
- data/examples/test_method/Listbox.rb +33 -0
- data/examples/test_method/Newt_FLAG_SCROLL.rb +20 -0
- data/examples/test_method/Newt_cursor.rb +30 -0
- data/examples/test_method/RadioButton.rb +25 -0
- data/examples/test_method/ReflowText.rb +15 -0
- data/examples/test_method/Scale.rb +27 -0
- data/examples/test_method/Screen_bell.rb +10 -0
- data/examples/test_method/Screen_cls.rb +11 -0
- data/examples/test_method/Screen_draw_roottext.rb +15 -0
- data/examples/test_method/Screen_init.rb +10 -0
- data/examples/test_method/Screen_pop_helpline.rb +15 -0
- data/examples/test_method/Screen_push_helpline.rb +13 -0
- data/examples/test_method/Screen_redraw_helpline.rb +15 -0
- data/examples/test_method/Screen_set_colors.rb +32 -0
- data/examples/test_method/Screen_size.rb +15 -0
- data/examples/test_method/Screen_win_menu.rb +15 -0
- data/examples/test_method/SuspendCallback.rb +33 -0
- data/examples/test_method/Textbox.rb +27 -0
- data/examples/test_method/TextboxReflowed.rb +20 -0
- data/examples/test_method/Widget_callback.rb +76 -0
- data/examples/test_method/memory.rb +21 -0
- data/examples/testgrid-e.rb +78 -0
- data/examples/testgrid-j.rb +80 -0
- data/examples/testtree-e.rb +53 -0
- data/examples/testtree-j.rb +53 -0
- data/ext/ruby_newt/extconf.rb +5 -4
- data/ext/ruby_newt/ruby_newt.c +1297 -537
- data/lib/version.rb +1 -1
- metadata +49 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: cfea6e7753c0686afc0a58ad7f83c8a3e0c364ef7eeeb92e1073106d74b82286
|
4
|
+
data.tar.gz: ace1bcde9cc75ea4bd3183b671acea3a2cc2f89062d709195f99665b978e0e01
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
$
|
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
|
|
data/examples/test-e.rb
ADDED
@@ -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
|
data/examples/test-j.rb
ADDED
@@ -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
|