newt 0.9.6 → 0.9.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/examples/memory.rb +21 -0
- data/examples/test-j.rb +118 -0
- data/examples/test.rb +95 -0
- data/examples/test_method/Button_new.rb +22 -0
- data/examples/test_method/Checkbox_get.rb +25 -0
- data/examples/test_method/Checkbox_new.rb +22 -0
- data/examples/test_method/Checkbox_set.rb +28 -0
- data/examples/test_method/Checkbox_set_flags.rb +28 -0
- data/examples/test_method/CompactButton_new.rb +22 -0
- data/examples/test_method/Entry_get.rb +26 -0
- data/examples/test_method/Entry_new.rb +23 -0
- data/examples/test_method/Entry_set.rb +26 -0
- data/examples/test_method/Entry_set_flags.rb +31 -0
- data/examples/test_method/Form_destroy.rb +33 -0
- data/examples/test_method/Form_set_background.rb +23 -0
- data/examples/test_method/Form_set_height.rb +26 -0
- data/examples/test_method/Form_set_width.rb +26 -0
- data/examples/test_method/Grid_new.rb +26 -0
- data/examples/test_method/Label_new.rb +22 -0
- data/examples/test_method/Label_setText.rb +25 -0
- data/examples/test_method/Label_set_colors.rb +28 -0
- data/examples/test_method/Listbox_clear.rb +25 -0
- data/examples/test_method/Listbox_current_bykey.rb +29 -0
- data/examples/test_method/Listbox_delete.rb +27 -0
- data/examples/test_method/Listbox_get_current.rb +28 -0
- data/examples/test_method/Listbox_get_current_string.rb +28 -0
- data/examples/test_method/Listbox_insert.rb +24 -0
- data/examples/test_method/Listbox_new.rb +24 -0
- data/examples/test_method/Listbox_select.rb +27 -0
- data/examples/test_method/Listbox_set.rb +27 -0
- data/examples/test_method/Listbox_set_current.rb +26 -0
- data/examples/test_method/Listbox_set_width.rb +25 -0
- data/examples/test_method/Newt_FLAG_SCROLL.rb +21 -0
- data/examples/test_method/RadioButton_new.rb +22 -0
- data/examples/test_method/ReflowText.rb +27 -0
- data/examples/test_method/Scale_new.rb +22 -0
- data/examples/test_method/Scale_set.rb +22 -0
- data/examples/test_method/Screen_bell.rb +10 -0
- data/examples/test_method/Screen_cls.rb +12 -0
- data/examples/test_method/Screen_draw_roottext.rb +16 -0
- data/examples/test_method/Screen_init.rb +11 -0
- data/examples/test_method/Screen_pop_helpline.rb +18 -0
- data/examples/test_method/Screen_push_helpline.rb +16 -0
- data/examples/test_method/Screen_redraw_helpline.rb +18 -0
- data/examples/test_method/Screen_set_colors.rb +34 -0
- data/examples/test_method/Screen_size.rb +15 -0
- data/examples/test_method/Screen_win_menu.rb +19 -0
- data/examples/test_method/TextboxReflowed_new.rb +23 -0
- data/examples/test_method/Textbox_get_num_lines.rb +27 -0
- data/examples/test_method/Textbox_new.rb +22 -0
- data/examples/test_method/Textbox_set_colors.rb +27 -0
- data/examples/test_method/Textbox_set_height.rb +25 -0
- data/examples/testgrid-j.rb +85 -0
- data/examples/testgrid.rb +84 -0
- data/examples/testtree-j.rb +55 -0
- data/examples/testtree.rb +54 -0
- data/ext/ruby_newt/ruby_newt.c +185 -0
- data/lib/version.rb +1 -1
- metadata +60 -4
@@ -0,0 +1,27 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# ?
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require "newt"
|
7
|
+
|
8
|
+
begin
|
9
|
+
|
10
|
+
Newt::Screen.new
|
11
|
+
|
12
|
+
t = Newt::Textbox.new(1, 1, 20, 10, Newt::FLAG_WRAP)
|
13
|
+
t.set_text("Line1\nLine2\nLine3")
|
14
|
+
line = t.get_num_lines
|
15
|
+
|
16
|
+
b = Newt::Button.new(1, 13, "Exit")
|
17
|
+
|
18
|
+
f = Newt::Form.new
|
19
|
+
f.add(t, b)
|
20
|
+
|
21
|
+
f.run()
|
22
|
+
|
23
|
+
ensure
|
24
|
+
Newt::Screen.finish
|
25
|
+
end
|
26
|
+
|
27
|
+
p line
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require "newt"
|
5
|
+
|
6
|
+
begin
|
7
|
+
|
8
|
+
Newt::Screen.new
|
9
|
+
|
10
|
+
t = Newt::Textbox.new(1, 1, 20, 10, Newt::FLAG_WRAP)
|
11
|
+
t.set_text("Line1\nLine2\nLine3")
|
12
|
+
|
13
|
+
b = Newt::Button.new(1, 13, "Exit")
|
14
|
+
|
15
|
+
f = Newt::Form.new
|
16
|
+
f.add(t, b)
|
17
|
+
|
18
|
+
f.run()
|
19
|
+
|
20
|
+
ensure
|
21
|
+
Newt::Screen.finish
|
22
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require "newt"
|
5
|
+
|
6
|
+
begin
|
7
|
+
TEXTBOX_NORMAL = Newt::COLORSET_CUSTOM 1
|
8
|
+
TEXTBOX_ACTIVE = Newt::COLORSET_CUSTOM 2
|
9
|
+
|
10
|
+
Newt::Screen.new
|
11
|
+
Newt::Screen.set_color(TEXTBOX_NORMAL, "black", "red")
|
12
|
+
Newt::Screen.set_color(TEXTBOX_ACTIVE, "white", "red")
|
13
|
+
|
14
|
+
t = Newt::Textbox.new(1, 1, 20, 10, Newt::FLAG_WRAP)
|
15
|
+
t.set_colors(TEXTBOX_NORMAL, TEXTBOX_ACTIVE)
|
16
|
+
t.set_text("Line1\nLine2\nLine3")
|
17
|
+
|
18
|
+
b = Newt::Button.new(1, 13, "Exit")
|
19
|
+
|
20
|
+
f = Newt::Form.new
|
21
|
+
f.add(t, b)
|
22
|
+
|
23
|
+
f.run()
|
24
|
+
|
25
|
+
ensure
|
26
|
+
Newt::Screen.finish
|
27
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# ?
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require "newt"
|
7
|
+
|
8
|
+
begin
|
9
|
+
|
10
|
+
Newt::Screen.new
|
11
|
+
|
12
|
+
t = Newt::Textbox.new(1, 1, 20, 10, Newt::FLAG_WRAP)
|
13
|
+
t.set_text("Line1\nLine2\nLine3")
|
14
|
+
t.set_height(5)
|
15
|
+
|
16
|
+
b = Newt::Button.new(1, 13, "Exit")
|
17
|
+
|
18
|
+
f = Newt::Form.new
|
19
|
+
f.add(t, b)
|
20
|
+
|
21
|
+
f.run()
|
22
|
+
|
23
|
+
ensure
|
24
|
+
Newt::Screen.finish
|
25
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require "newt"
|
5
|
+
|
6
|
+
menuContents = ["°ì", "Æó", "»°", "»Í", "¸Þ"]
|
7
|
+
autoEntries = ["¥¨¥ó¥È¥ê", "Ê̤Υ¨¥ó¥È¥ê",
|
8
|
+
"»°ÈÖÌܤΥ¨¥ó¥È¥ê", "»ÍÈÖÌܤΥ¨¥ó¥È¥ê",]
|
9
|
+
|
10
|
+
begin
|
11
|
+
Newt::Screen.new
|
12
|
+
|
13
|
+
b1 = Newt::Checkbox.new(-1, -1, "¥Æ¥¹¥È¤Î¤¿¤á¤Î¤«¤Ê¤êŤ¤¥Á¥§¥Ã¥¯¥Ü¥Ã¥¯¥¹", ' ', nil)
|
14
|
+
b2 = Newt::Button.new(-1, -1, "Ê̤Υܥ¿¥ó")
|
15
|
+
b3 = Newt::Button.new(-1, -1, "¤·¤«¤·¡¢¤·¤«¤·")
|
16
|
+
b4 = Newt::Button.new(-1, -1, "¤·¤«¤·²¿¤À¤í¤¦¡©")
|
17
|
+
|
18
|
+
f = Newt::Form.new
|
19
|
+
|
20
|
+
grid = Newt::Grid.new(2, 2)
|
21
|
+
grid.set_field(0, 0, Newt::GRID_COMPONENT, b1, 0, 0, 0, 0,
|
22
|
+
Newt::ANCHOR_RIGHT, 0)
|
23
|
+
grid.set_field(0, 1, Newt::GRID_COMPONENT, b2, 0, 0, 0, 0, 0, 0)
|
24
|
+
grid.set_field(1, 0, Newt::GRID_COMPONENT, b3, 0, 0, 0, 0, 0, 0)
|
25
|
+
grid.set_field(1, 1, Newt::GRID_COMPONENT, b4, 0, 0, 0, 0, 0, 0)
|
26
|
+
|
27
|
+
f.add(b1, b2, b3, b4)
|
28
|
+
|
29
|
+
grid.wrapped_window("°ìÈÖÌܤΥ¦¥£¥ó¥É¥¦")
|
30
|
+
|
31
|
+
answer = f.run()
|
32
|
+
|
33
|
+
#f.destroy()
|
34
|
+
Newt::Screen.pop_window()
|
35
|
+
|
36
|
+
flowedText, textWidth, textHeight = Newt.reflow_text("¤³¤ì¤Ï¤«¤Ê¤ê¥Æ¥¥¹¥È¤é¤·¤¤¤â¤Î¤Ç¤¹¡£40¥«¥é¥à" +
|
37
|
+
"¤ÎŤµ¤Ç¡¢¥é¥Ã¥Ô¥ó¥°¤¬¹Ô¤ï¤ì¤Þ¤¹¡£" +
|
38
|
+
"ÁÇÁᤤ¡¢Ã㿧¤Î¸Ñ¤¬¤Î¤í¤Þ¤Ê¸¤¤òÈô¤Ó" +
|
39
|
+
"±Û¤¨¤¿¤Î¤òÃΤäƤ뤫¤¤?\n\n" +
|
40
|
+
"¾¤Ë¤ªÃΤ餻¤¹¤ë¤³¤È¤È¤·¤Æ¡¢Å¬Åö¤Ë²þ¹Ô¤ò¤¹¤ë" +
|
41
|
+
"¤³¤È¤¬½ÅÍפǤ¹¡£",
|
42
|
+
40, 5, 5)
|
43
|
+
t = Newt::Textbox.new(-1, -1, textWidth, textHeight, Newt::FLAG_WRAP)
|
44
|
+
t.set_text(flowedText)
|
45
|
+
|
46
|
+
b1 = Newt::Button.new(-1, -1, "λ²ò")
|
47
|
+
b2 = Newt::Button.new(-1, -1, "¥¥ã¥ó¥»¥ë")
|
48
|
+
|
49
|
+
grid = Newt::Grid.new(1, 2)
|
50
|
+
subgrid = Newt::Grid.new(2, 1)
|
51
|
+
|
52
|
+
subgrid.set_field(0, 0, Newt::GRID_COMPONENT, b1, 0, 0, 0, 0, 0, 0)
|
53
|
+
subgrid.set_field(1, 0, Newt::GRID_COMPONENT, b2, 0, 0, 0, 0, 0, 0)
|
54
|
+
|
55
|
+
grid.set_field(0, 0, Newt::GRID_COMPONENT, t, 0, 0, 0, 1, 0, 0)
|
56
|
+
grid.set_field(0, 1, Newt::GRID_SUBGRID, subgrid, 0, 0, 0, 0, 0,
|
57
|
+
Newt::GRID_FLAG_GROWX)
|
58
|
+
grid.wrapped_window("Ê̤ÎÎã")
|
59
|
+
|
60
|
+
f = Newt::Form.new
|
61
|
+
f.add(b1, t, b2)
|
62
|
+
#f.add(b1, b2)
|
63
|
+
answer = f.run()
|
64
|
+
|
65
|
+
Newt::Screen.pop_window()
|
66
|
+
#f.destroy()
|
67
|
+
|
68
|
+
Newt::Screen.win_message("¥·¥ó¥×¥ë", "λ²ò", "¤³¤ì¤Ï¥·¥ó¥×¥ë¤Ê¥á¥Ã¥»¡¼¥¸¥¦¥£¥ó¥É¥¦¤Ç¤¹")
|
69
|
+
Newt::Screen.win_choice("¥·¥ó¥×¥ë", "λ²ò", "¥¥ã¥ó¥»¥ë", "¤³¤ì¤Ï¥·¥ó¥×¥ë¤ÊÁªÂò¥¦¥£¥ó¥É¥¦¤Ç¤¹")
|
70
|
+
|
71
|
+
textWidth = Newt::Screen.win_menu("¥Æ¥¹¥È¥á¥Ë¥å¡¼", "¤³¤ì¤Ï newtWinMenu() ¥³¡¼¥ë¤Î¥µ¥ó¥×¥ë" +
|
72
|
+
"¤Ç¤¹¡£ ¥¹¥¯¥í¡¼¥ë¥Ð¡¼¤ÏɬÍפ˱þ¤¸¤Æ¤Ä¤¤¤¿¤ê¡¢ " +
|
73
|
+
"¤Ä¤«¤Ê¤«¤Ã¤¿¤ê¤·¤Þ¤¹¡£", 50, 5, 5, 3,
|
74
|
+
menuContents, "λ²ò", "¥¥ã¥ó¥»¥ë")
|
75
|
+
|
76
|
+
v = Newt::Screen.win_entries("¥Æ¥¥¹¥È newtWinEntries()", "¤³¤ì¤Ï newtWinEntries()" +
|
77
|
+
"¥³¡¼¥ë¤Î¥µ¥ó¥×¥ë¤Ç¤¹¡£¤¿¤¤¤Ø¤ó´Êñ¤Ë¤¿¤¯¤µ¤ó¤ÎÆþÎϤò" +
|
78
|
+
"°·¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£", 50, 5, 5, 20, autoEntries, "λ²ò", "¥¥ã¥ó¥»¥ë")
|
79
|
+
|
80
|
+
ensure
|
81
|
+
Newt::Screen.finish
|
82
|
+
|
83
|
+
printf "item = %d\n", textWidth
|
84
|
+
p v
|
85
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require "newt"
|
5
|
+
|
6
|
+
menuContents = ["One", "Two", "Three", "Four", "Five"]
|
7
|
+
autoEntries = ["An entry", "Another entry",
|
8
|
+
"Third entry", "Fourth entry"]
|
9
|
+
|
10
|
+
Newt::Screen.new
|
11
|
+
|
12
|
+
b1 = Newt::Checkbox.new(-1, -1, "An pretty long checkbox for testing", ' ', nil)
|
13
|
+
b2 = Newt::Button.new(-1, -1, "Another Button")
|
14
|
+
b3 = Newt::Button.new(-1, -1, "But, but")
|
15
|
+
b4 = Newt::Button.new(-1, -1, "But what?")
|
16
|
+
|
17
|
+
f = Newt::Form.new
|
18
|
+
|
19
|
+
grid = Newt::Grid.new(2, 2)
|
20
|
+
grid.set_field(0, 0, Newt::GRID_COMPONENT, b1, 0, 0, 0, 0,
|
21
|
+
Newt::ANCHOR_RIGHT, 0)
|
22
|
+
grid.set_field(0, 1, Newt::GRID_COMPONENT, b2, 0, 0, 0, 0, 0, 0)
|
23
|
+
grid.set_field(1, 0, Newt::GRID_COMPONENT, b3, 0, 0, 0, 0, 0, 0)
|
24
|
+
grid.set_field(1, 1, Newt::GRID_COMPONENT, b4, 0, 0, 0, 0, 0, 0)
|
25
|
+
|
26
|
+
f.add(b1, b2, b3, b4)
|
27
|
+
|
28
|
+
grid.wrapped_window("first window")
|
29
|
+
|
30
|
+
answer = f.run()
|
31
|
+
|
32
|
+
#f.destroy()
|
33
|
+
Newt::Screen.pop_window()
|
34
|
+
|
35
|
+
flowedText, textWidth, textHeight = Newt.reflow_text("This is a quite a bit of text. It is 40 " +
|
36
|
+
"columns long, so some wrapping should be " +
|
37
|
+
"done. Did you know that the quick, brown " +
|
38
|
+
"fox jumped over the lazy dog?\n\n" +
|
39
|
+
"In other news, it's pretty important that we " +
|
40
|
+
"can properly force a line break.",
|
41
|
+
40, 5, 5)
|
42
|
+
t = Newt::Textbox.new(-1, -1, textWidth, textHeight, Newt::FLAG_WRAP)
|
43
|
+
t.set_text(flowedText)
|
44
|
+
|
45
|
+
|
46
|
+
b1 = Newt::Button.new(-1, -1, "Okay")
|
47
|
+
b2 = Newt::Button.new(-1, -1, "Cancel")
|
48
|
+
|
49
|
+
grid = Newt::Grid.new(1, 2)
|
50
|
+
subgrid = Newt::Grid.new(2, 1)
|
51
|
+
|
52
|
+
subgrid.set_field(0, 0, Newt::GRID_COMPONENT, b1, 0, 0, 0, 0, 0, 0)
|
53
|
+
subgrid.set_field(1, 0, Newt::GRID_COMPONENT, b2, 0, 0, 0, 0, 0, 0)
|
54
|
+
|
55
|
+
grid.set_field(0, 0, Newt::GRID_COMPONENT, t, 0, 0, 0, 1, 0, 0)
|
56
|
+
grid.set_field(0, 1, Newt::GRID_SUBGRID, subgrid, 0, 0, 0, 0, 0,
|
57
|
+
Newt::GRID_FLAG_GROWX)
|
58
|
+
grid.wrapped_window("another example")
|
59
|
+
|
60
|
+
f = Newt::Form.new
|
61
|
+
f.add(b1, t, b2)
|
62
|
+
#f.add(b1, b2)
|
63
|
+
answer = f.run()
|
64
|
+
|
65
|
+
Newt::Screen.pop_window()
|
66
|
+
#f.destroy()
|
67
|
+
|
68
|
+
Newt::Screen.win_message("Simple", "Ok", "This is a simple message window")
|
69
|
+
result = Newt::Screen.win_choice("Simple", "Ok", "Cancel", "This is a simple choice window")
|
70
|
+
|
71
|
+
textWidth = Newt::Screen.win_menu("Test Menu", "This is a sample invovation of the " +
|
72
|
+
"newtWinMenu() call. It may or may not have a scrollbar, " +
|
73
|
+
"depending on the need for one.", 50, 5, 5, 3,
|
74
|
+
menuContents, "Ok", "Cancel")
|
75
|
+
|
76
|
+
v = Newt::Screen.win_entries("Text newtWinEntries()", "This is a sample invovation of " +
|
77
|
+
"newtWinEntries() call. It lets you get a lot of input " +
|
78
|
+
"quite easily.", 50, 5, 5, 20, autoEntries, "Ok", "Cancel")
|
79
|
+
|
80
|
+
Newt::Screen.finish
|
81
|
+
|
82
|
+
printf "item = %d\n", textWidth
|
83
|
+
p v
|
84
|
+
p result
|
@@ -0,0 +1,55 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require "newt"
|
5
|
+
|
6
|
+
Newt::Screen.new
|
7
|
+
|
8
|
+
checktree = Newt::CheckboxTreeMulti.new(-1, -1, 10, " ab", Newt::FLAG_SCROLL)
|
9
|
+
checktree.add("¥Ê¥ó¥Ð¡¼", 2, 0, Newt::ARG_APPEND)
|
10
|
+
checktree.add("ËÜÅö¤ËËÜÅö¤ËŤ¤¥â¥Î", 3, 0, Newt::ARG_APPEND)
|
11
|
+
checktree.add("¥Ê¥ó¥Ð¡¼£µ", 5, Newt::FLAG_SELECTED, Newt::ARG_APPEND)
|
12
|
+
checktree.add("¥Ê¥ó¥Ð¡¼£¶", 6, 0, Newt::ARG_APPEND)
|
13
|
+
checktree.add("¥Ê¥ó¥Ð¡¼£·", 7, Newt::FLAG_SELECTED, Newt::ARG_APPEND)
|
14
|
+
checktree.add("¥Ê¥ó¥Ð¡¼£¸", 8, 0, Newt::ARG_APPEND)
|
15
|
+
checktree.add("¥Ê¥ó¥Ð¡¼£¹", 9, 0, Newt::ARG_APPEND)
|
16
|
+
checktree.add("¥Ê¥ó¥Ð¡¼£±£°", 10, Newt::FLAG_SELECTED, Newt::ARG_APPEND)
|
17
|
+
checktree.add("¥Ê¥ó¥Ð¡¼£±£±", 11, 0, Newt::ARG_APPEND)
|
18
|
+
checktree.add("¥Ê¥ó¥Ð¡¼£±£²", 12, Newt::FLAG_SELECTED, Newt::ARG_APPEND)
|
19
|
+
|
20
|
+
checktree.add("¥«¥é¡¼", 1, 0, 0)
|
21
|
+
checktree.add("ÀÖ¿§", 100, 0, 0, Newt::ARG_APPEND)
|
22
|
+
checktree.add("Çò¿§", 101, 0, 0, Newt::ARG_APPEND)
|
23
|
+
checktree.add("ÀÄ¿§", 102, 0, 0, Newt::ARG_APPEND)
|
24
|
+
|
25
|
+
checktree.add("¥Ê¥ó¥Ð¡¼£´", 4, 0, 3)
|
26
|
+
|
27
|
+
checktree.add("°ì·å¤Î¿ô»ú", 200, 0, 1, Newt::ARG_APPEND)
|
28
|
+
checktree.add("°ì", 201, 0, 1, 0, Newt::ARG_APPEND)
|
29
|
+
checktree.add("Æó", 202, 0, 1, 0, Newt::ARG_APPEND)
|
30
|
+
checktree.add("»°", 203, 0, 1, 0, Newt::ARG_APPEND)
|
31
|
+
checktree.add("»Í", 204, 0, 1, 0, Newt::ARG_APPEND)
|
32
|
+
|
33
|
+
checktree.add("Æó·å¤Î¿ô»ú", 300, 0, 1, Newt::ARG_APPEND)
|
34
|
+
checktree.add("½½", 210, 0, 1, 1, Newt::ARG_APPEND)
|
35
|
+
checktree.add("½½°ì", 211, 0, 1, 1, Newt::ARG_APPEND)
|
36
|
+
checktree.add("½½Æó", 212, 0, 1, 1, Newt::ARG_APPEND)
|
37
|
+
checktree.add("½½»°", 213, 0, 1, 1, Newt::ARG_APPEND)
|
38
|
+
|
39
|
+
button = Newt::Button.new(-1, -1, "½ªÎ»")
|
40
|
+
|
41
|
+
grid = Newt::Grid.new(1, 2)
|
42
|
+
grid.set_field(0, 0, Newt::GRID_COMPONENT, checktree, 0, 0, 0, 1,
|
43
|
+
Newt::ANCHOR_RIGHT, 0)
|
44
|
+
grid.set_field(0, 1, Newt::GRID_COMPONENT, button, 0, 0, 0, 0,
|
45
|
+
0, 0)
|
46
|
+
|
47
|
+
grid.wrapped_window("¥Á¥§¥Ã¥¯¥Ü¥Ã¥¯¥¹¥Ä¥ê¡¼¥Æ¥¹¥È")
|
48
|
+
|
49
|
+
form = Newt::Form.new
|
50
|
+
form.add(checktree, button)
|
51
|
+
|
52
|
+
answer = form.run()
|
53
|
+
|
54
|
+
Newt::Screen.finish
|
55
|
+
|
@@ -0,0 +1,54 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require "newt"
|
5
|
+
|
6
|
+
Newt::Screen.new
|
7
|
+
|
8
|
+
checktree = Newt::CheckboxTreeMulti.new(-1, -1, 10, " ab", Newt::FLAG_SCROLL)
|
9
|
+
checktree.add("Numbers", 2, 0, Newt::ARG_APPEND)
|
10
|
+
checktree.add("Really really long thing", 3, 0, Newt::ARG_APPEND)
|
11
|
+
checktree.add("number 5", 5, Newt::FLAG_SELECTED, Newt::ARG_APPEND)
|
12
|
+
checktree.add("number 6", 6, 0, Newt::ARG_APPEND)
|
13
|
+
checktree.add("number 7", 7, Newt::FLAG_SELECTED, Newt::ARG_APPEND)
|
14
|
+
checktree.add("number 8", 8, 0, Newt::ARG_APPEND)
|
15
|
+
checktree.add("number 9", 9, 0, Newt::ARG_APPEND)
|
16
|
+
checktree.add("number 10", 10, Newt::FLAG_SELECTED, Newt::ARG_APPEND)
|
17
|
+
checktree.add("number 11", 11, 0, Newt::ARG_APPEND)
|
18
|
+
checktree.add("number 12", 12, Newt::FLAG_SELECTED, Newt::ARG_APPEND)
|
19
|
+
|
20
|
+
checktree.add("Colors", 1, 0, 0)
|
21
|
+
checktree.add("Red", 100, 0, 0, Newt::ARG_APPEND)
|
22
|
+
checktree.add("White", 101, 0, 0, Newt::ARG_APPEND)
|
23
|
+
checktree.add("Blue", 102, 0, 0, Newt::ARG_APPEND)
|
24
|
+
|
25
|
+
checktree.add("number 4", 4, 0, 3)
|
26
|
+
|
27
|
+
checktree.add("Single digit", 200, 0, 1, Newt::ARG_APPEND)
|
28
|
+
checktree.add("One", 201, 0, 1, 0, Newt::ARG_APPEND)
|
29
|
+
checktree.add("Two", 202, 0, 1, 0, Newt::ARG_APPEND)
|
30
|
+
checktree.add("Three", 203, 0, 1, 0, Newt::ARG_APPEND)
|
31
|
+
checktree.add("Four", 204, 0, 1, 0, Newt::ARG_APPEND)
|
32
|
+
|
33
|
+
checktree.add("Double digit", 300, 0, 1, Newt::ARG_APPEND)
|
34
|
+
checktree.add("Ten", 210, 0, 1, 1, Newt::ARG_APPEND)
|
35
|
+
checktree.add("Eleven", 211, 0, 1, 1, Newt::ARG_APPEND)
|
36
|
+
checktree.add("Twelve", 212, 0, 1, 1, Newt::ARG_APPEND)
|
37
|
+
checktree.add("Thirteen", 213, 0, 1, 1, Newt::ARG_APPEND)
|
38
|
+
|
39
|
+
button = Newt::Button.new(-1, -1, "Exit")
|
40
|
+
|
41
|
+
grid = Newt::Grid.new(1, 2)
|
42
|
+
grid.set_field(0, 0, Newt::GRID_COMPONENT, checktree, 0, 0, 0, 1,
|
43
|
+
Newt::ANCHOR_RIGHT, 0)
|
44
|
+
grid.set_field(0, 1, Newt::GRID_COMPONENT, button, 0, 0, 0, 0,
|
45
|
+
0, 0)
|
46
|
+
|
47
|
+
grid.wrapped_window("Checkbox Tree Test")
|
48
|
+
|
49
|
+
form = Newt::Form.new
|
50
|
+
form.add(checktree, button)
|
51
|
+
|
52
|
+
answer = form.run()
|
53
|
+
|
54
|
+
Newt::Screen.finish
|
data/ext/ruby_newt/ruby_newt.c
CHANGED
@@ -6,6 +6,8 @@
|
|
6
6
|
#include <rubyio.h>
|
7
7
|
#include <newt.h>
|
8
8
|
|
9
|
+
#define SYMBOL(str) (ID2SYM(rb_intern(str)))
|
10
|
+
|
9
11
|
static VALUE mNewt;
|
10
12
|
static VALUE mScreen;
|
11
13
|
static VALUE cWidget;
|
@@ -27,6 +29,7 @@ static VALUE cGrid;
|
|
27
29
|
|
28
30
|
static ID rb_call_id;
|
29
31
|
static VALUE rb_ext_Widget_CALLBACK_HASH;
|
32
|
+
static struct newtColors newtColors;
|
30
33
|
|
31
34
|
typedef struct snackWidget_s snackWidget;
|
32
35
|
|
@@ -58,10 +61,16 @@ static VALUE rb_ext_ReflowText(VALUE self, VALUE text, VALUE width, VALUE flexDo
|
|
58
61
|
return ary;
|
59
62
|
}
|
60
63
|
|
64
|
+
static VALUE rb_ext_ColorSetCustom(VALUE self, VALUE id)
|
65
|
+
{
|
66
|
+
return INT2NUM(NEWT_COLORSET_CUSTOM(NUM2INT(id)));
|
67
|
+
}
|
68
|
+
|
61
69
|
static VALUE rb_ext_Screen_new()
|
62
70
|
{
|
63
71
|
newtInit();
|
64
72
|
newtCls();
|
73
|
+
memcpy(&newtColors, &newtDefaultColorPalette, sizeof(struct newtColors));
|
65
74
|
|
66
75
|
return Qnil;
|
67
76
|
}
|
@@ -69,6 +78,7 @@ static VALUE rb_ext_Screen_new()
|
|
69
78
|
static VALUE rb_ext_Screen_Init()
|
70
79
|
{
|
71
80
|
newtInit();
|
81
|
+
memcpy(&newtColors, &newtDefaultColorPalette, sizeof(struct newtColors));
|
72
82
|
return Qnil;
|
73
83
|
}
|
74
84
|
|
@@ -117,6 +127,158 @@ static VALUE rb_ext_Screen_PopWindow(VALUE self)
|
|
117
127
|
return Qnil;
|
118
128
|
}
|
119
129
|
|
130
|
+
int rb_ext_Colors_callback_function(VALUE key, VALUE val, VALUE in)
|
131
|
+
{
|
132
|
+
struct newtColors *colors;
|
133
|
+
|
134
|
+
colors = (struct newtColors *) in;
|
135
|
+
Check_Type(key, T_SYMBOL);
|
136
|
+
|
137
|
+
if (key == SYMBOL("rootFg"))
|
138
|
+
colors->rootFg = StringValuePtr(val);
|
139
|
+
|
140
|
+
else if (key == SYMBOL("rootBg"))
|
141
|
+
colors->rootBg = StringValuePtr(val);
|
142
|
+
|
143
|
+
else if (key == SYMBOL("borderFg"))
|
144
|
+
colors->borderFg = StringValuePtr(val);
|
145
|
+
|
146
|
+
else if (key == SYMBOL("borderBg"))
|
147
|
+
colors->borderBg = StringValuePtr(val);
|
148
|
+
|
149
|
+
else if (key == SYMBOL("windowFg"))
|
150
|
+
colors->windowFg = StringValuePtr(val);
|
151
|
+
|
152
|
+
else if (key == SYMBOL("windowBg"))
|
153
|
+
colors->windowBg = StringValuePtr(val);
|
154
|
+
|
155
|
+
else if (key == SYMBOL("shadowFg"))
|
156
|
+
colors->shadowFg = StringValuePtr(val);
|
157
|
+
|
158
|
+
else if (key == SYMBOL("shadowBg"))
|
159
|
+
colors->shadowBg = StringValuePtr(val);
|
160
|
+
|
161
|
+
else if (key == SYMBOL("titleFg"))
|
162
|
+
colors->titleFg = StringValuePtr(val);
|
163
|
+
|
164
|
+
else if (key == SYMBOL("titleBg"))
|
165
|
+
colors->titleBg = StringValuePtr(val);
|
166
|
+
|
167
|
+
else if (key == SYMBOL("buttonFg"))
|
168
|
+
colors->buttonFg = StringValuePtr(val);
|
169
|
+
|
170
|
+
else if (key == SYMBOL("buttonBg"))
|
171
|
+
colors->buttonBg = StringValuePtr(val);
|
172
|
+
|
173
|
+
else if (key == SYMBOL("actButtonFg"))
|
174
|
+
colors->actButtonFg = StringValuePtr(val);
|
175
|
+
|
176
|
+
else if (key == SYMBOL("actButtonBg"))
|
177
|
+
colors->actButtonBg = StringValuePtr(val);
|
178
|
+
|
179
|
+
else if (key == SYMBOL("checkboxFg"))
|
180
|
+
colors->checkboxFg = StringValuePtr(val);
|
181
|
+
|
182
|
+
else if (key == SYMBOL("checkboxBg"))
|
183
|
+
colors->checkboxBg = StringValuePtr(val);
|
184
|
+
|
185
|
+
else if (key == SYMBOL("actCheckboxFg"))
|
186
|
+
colors->actCheckboxFg = StringValuePtr(val);
|
187
|
+
|
188
|
+
else if (key == SYMBOL("actCheckboxBg"))
|
189
|
+
colors->actCheckboxBg = StringValuePtr(val);
|
190
|
+
|
191
|
+
else if (key == SYMBOL("entryFg"))
|
192
|
+
colors->entryFg = StringValuePtr(val);
|
193
|
+
|
194
|
+
else if (key == SYMBOL("entryBg"))
|
195
|
+
colors->entryBg = StringValuePtr(val);
|
196
|
+
|
197
|
+
else if (key == SYMBOL("labelFg"))
|
198
|
+
colors->labelFg = StringValuePtr(val);
|
199
|
+
|
200
|
+
else if (key == SYMBOL("labelBg"))
|
201
|
+
colors->labelBg = StringValuePtr(val);
|
202
|
+
|
203
|
+
else if (key == SYMBOL("listboxFg"))
|
204
|
+
colors->listboxFg = StringValuePtr(val);
|
205
|
+
|
206
|
+
else if (key == SYMBOL("listboxBg"))
|
207
|
+
colors->listboxBg = StringValuePtr(val);
|
208
|
+
|
209
|
+
else if (key == SYMBOL("actListboxFg"))
|
210
|
+
colors->actListboxFg = StringValuePtr(val);
|
211
|
+
|
212
|
+
else if (key == SYMBOL("actListboxBg"))
|
213
|
+
colors->actListboxBg = StringValuePtr(val);
|
214
|
+
|
215
|
+
else if (key == SYMBOL("textboxFg"))
|
216
|
+
colors->textboxFg = StringValuePtr(val);
|
217
|
+
|
218
|
+
else if (key == SYMBOL("textboxBg"))
|
219
|
+
colors->textboxBg = StringValuePtr(val);
|
220
|
+
|
221
|
+
else if (key == SYMBOL("actTextboxFg"))
|
222
|
+
colors->actTextboxFg = StringValuePtr(val);
|
223
|
+
|
224
|
+
else if (key == SYMBOL("actTextboxBg"))
|
225
|
+
colors->actTextboxBg = StringValuePtr(val);
|
226
|
+
|
227
|
+
else if (key == SYMBOL("helpLineFg"))
|
228
|
+
colors->helpLineFg = StringValuePtr(val);
|
229
|
+
|
230
|
+
else if (key == SYMBOL("helpLineBg"))
|
231
|
+
colors->helpLineBg = StringValuePtr(val);
|
232
|
+
|
233
|
+
else if (key == SYMBOL("rootTextBg"))
|
234
|
+
colors->rootTextBg = StringValuePtr(val);
|
235
|
+
|
236
|
+
else if (key == SYMBOL("emptyScale"))
|
237
|
+
colors->emptyScale = StringValuePtr(val);
|
238
|
+
|
239
|
+
else if (key == SYMBOL("fullScale"))
|
240
|
+
colors->fullScale = StringValuePtr(val);
|
241
|
+
|
242
|
+
else if (key == SYMBOL("disabledEntryFg"))
|
243
|
+
colors->disabledEntryFg = StringValuePtr(val);
|
244
|
+
|
245
|
+
else if (key == SYMBOL("disabledEntryBg"))
|
246
|
+
colors->disabledEntryBg = StringValuePtr(val);
|
247
|
+
|
248
|
+
else if (key == SYMBOL("compactButtonFg"))
|
249
|
+
colors->compactButtonFg = StringValuePtr(val);
|
250
|
+
|
251
|
+
else if (key == SYMBOL("compactButtonBg"))
|
252
|
+
colors->compactButtonBg = StringValuePtr(val);
|
253
|
+
|
254
|
+
else if (key == SYMBOL("actSelListboxFg"))
|
255
|
+
colors->actSelListboxFg = StringValuePtr(val);
|
256
|
+
|
257
|
+
else if (key == SYMBOL("actSelListboxBg"))
|
258
|
+
colors->actSelListboxBg = StringValuePtr(val);
|
259
|
+
|
260
|
+
else if (key == SYMBOL("selListboxFg"))
|
261
|
+
colors->selListboxFg = StringValuePtr(val);
|
262
|
+
|
263
|
+
else if (key == SYMBOL("selListboxBg"))
|
264
|
+
colors->selListboxBg = StringValuePtr(val);
|
265
|
+
|
266
|
+
return ST_CONTINUE;
|
267
|
+
}
|
268
|
+
|
269
|
+
static VALUE rb_ext_Screen_SetColors(VALUE self, VALUE colors)
|
270
|
+
{
|
271
|
+
Check_Type(colors, T_HASH);
|
272
|
+
rb_hash_foreach(colors, rb_ext_Colors_callback_function, (VALUE) &newtColors);
|
273
|
+
newtSetColors(newtColors);
|
274
|
+
return Qnil;
|
275
|
+
}
|
276
|
+
|
277
|
+
static VALUE rb_ext_Screen_SetColor(VALUE self, VALUE colorset, VALUE fg, VALUE bg)
|
278
|
+
{
|
279
|
+
newtSetColor(NUM2INT(colorset), StringValuePtr(fg), StringValuePtr(bg));
|
280
|
+
return Qnil;
|
281
|
+
}
|
120
282
|
|
121
283
|
static VALUE rb_ext_Screen_Resume()
|
122
284
|
{
|
@@ -404,6 +566,15 @@ static VALUE rb_ext_Label_SetText(VALUE self, VALUE text)
|
|
404
566
|
return Qnil;
|
405
567
|
}
|
406
568
|
|
569
|
+
static VALUE rb_ext_Label_SetColors(VALUE self, VALUE colorset)
|
570
|
+
{
|
571
|
+
newtComponent co;
|
572
|
+
|
573
|
+
Data_Get_Struct(self, struct newtComponent_struct, co);
|
574
|
+
newtLabelSetColors(co, NUM2INT(colorset));
|
575
|
+
return Qnil;
|
576
|
+
}
|
577
|
+
|
407
578
|
static VALUE rb_ext_CompactButton_new(VALUE self, VALUE left, VALUE top, VALUE text)
|
408
579
|
{
|
409
580
|
newtComponent co;
|
@@ -810,6 +981,15 @@ static VALUE rb_ext_Textbox_GetNumLines(VALUE self)
|
|
810
981
|
return INT2NUM(newtTextboxGetNumLines(co));
|
811
982
|
}
|
812
983
|
|
984
|
+
static VALUE rb_ext_Textbox_SetColors(VALUE self, VALUE normal, VALUE active)
|
985
|
+
{
|
986
|
+
newtComponent co;
|
987
|
+
|
988
|
+
Data_Get_Struct(self, struct newtComponent_struct, co);
|
989
|
+
newtTextboxSetColors(co, NUM2INT(normal), NUM2INT(active));
|
990
|
+
return Qnil;
|
991
|
+
}
|
992
|
+
|
813
993
|
static VALUE rb_ext_TextboxReflowed_new(VALUE self, VALUE left, VALUE top, VALUE text, VALUE width, VALUE flexDown, VALUE flexUp, VALUE flags)
|
814
994
|
{
|
815
995
|
newtComponent co;
|
@@ -1075,6 +1255,8 @@ void Init_ruby_newt(){
|
|
1075
1255
|
rb_define_module_function(mScreen, "open_window", rb_ext_Screen_OpenWindow, 5);
|
1076
1256
|
rb_define_module_function(mScreen, "centered_window", rb_ext_Screen_CenteredWindow, 3);
|
1077
1257
|
rb_define_module_function(mScreen, "pop_window", rb_ext_Screen_PopWindow, 0);
|
1258
|
+
rb_define_module_function(mScreen, "set_colors", rb_ext_Screen_SetColors, 1);
|
1259
|
+
rb_define_module_function(mScreen, "set_color", rb_ext_Screen_SetColor, 3);
|
1078
1260
|
rb_define_module_function(mScreen, "refresh", rb_ext_Screen_Refresh, 0);
|
1079
1261
|
rb_define_module_function(mScreen, "suspend", rb_ext_Screen_Suspend, 0);
|
1080
1262
|
rb_define_module_function(mScreen, "resume", rb_ext_Screen_Resume, 0);
|
@@ -1118,6 +1300,7 @@ void Init_ruby_newt(){
|
|
1118
1300
|
cLabel = rb_define_class_under(mNewt, "Label", cWidget);
|
1119
1301
|
rb_define_singleton_method(cLabel, "new", rb_ext_Label_new, 3);
|
1120
1302
|
rb_define_method(cLabel, "set_text", rb_ext_Label_SetText, 1);
|
1303
|
+
rb_define_method(cLabel, "set_colors", rb_ext_Label_SetColors, 1);
|
1121
1304
|
|
1122
1305
|
cListbox = rb_define_class_under(mNewt, "Listbox", cWidget);
|
1123
1306
|
rb_define_singleton_method(cListbox, "new", rb_ext_Listbox_new, 4);
|
@@ -1149,6 +1332,7 @@ void Init_ruby_newt(){
|
|
1149
1332
|
rb_define_method(cTextbox, "set_text", rb_ext_Textbox_SetText, 1);
|
1150
1333
|
rb_define_method(cTextbox, "set_height", rb_ext_Textbox_SetHeight, 1);
|
1151
1334
|
rb_define_method(cTextbox, "get_num_lines", rb_ext_Textbox_GetNumLines, 0);
|
1335
|
+
rb_define_method(cTextbox, "set_colors", rb_ext_Textbox_SetColors, 2);
|
1152
1336
|
|
1153
1337
|
cTextboxReflowed = rb_define_class_under(mNewt, "TextboxReflowed", cWidget);
|
1154
1338
|
rb_define_singleton_method(cTextboxReflowed, "new", rb_ext_TextboxReflowed_new, 7);
|
@@ -1207,6 +1391,7 @@ void Init_ruby_newt(){
|
|
1207
1391
|
rb_define_const(mNewt, "COLORSET_COMPACTBUTTON", INT2FIX(NEWT_COLORSET_COMPACTBUTTON));
|
1208
1392
|
rb_define_const(mNewt, "COLORSET_ACTSELLISTBOX", INT2FIX(NEWT_COLORSET_ACTSELLISTBOX));
|
1209
1393
|
rb_define_const(mNewt, "COLORSET_SELLISTBOX", INT2FIX(NEWT_COLORSET_SELLISTBOX));
|
1394
|
+
rb_define_module_function(mNewt, "COLORSET_CUSTOM", rb_ext_ColorSetCustom, 1);
|
1210
1395
|
|
1211
1396
|
rb_define_const(mNewt, "ARG_APPEND", INT2FIX(NEWT_ARG_APPEND));
|
1212
1397
|
|