1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
# -*- coding: utf-8 -*-
#
# entry (with scrollbars) widget demo (called by 'widget')
#
# toplevel widget ãŒå˜åœ¨ã™ã‚Œã°å‰Šé™¤ã™ã‚‹
if defined?($entry2_demo) && $entry2_demo
$entry2_demo.destroy
$entry2_demo = nil
end
# demo 用㮠toplevel widget を生æˆ
$entry2_demo = TkToplevel.new {|w|
title("Entry Demonstration (with scrollbars)")
iconname("entry2")
positionWindow(w)
}
base_frame = TkFrame.new($entry2_demo).pack(:fill=>:both, :expand=>true)
# label 生æˆ
msg = TkLabel.new(base_frame) {
font $font
wraplength '5i'
justify 'left'
text "3種類ã®ç•°ãªã‚‹ã‚¨ãƒ³ãƒˆãƒªãŒå„々スクãƒãƒ¼ãƒ«ãƒãƒ¼ä»˜ã§è¡¨ç¤ºã•れã¦ã„ã¾ã™ã€‚æ–‡å—を入力ã™ã‚‹ã«ã¯ãƒã‚¤ãƒ³ã‚¿ã‚’æŒã£ã¦è¡Œãã€ã‚¯ãƒªãƒƒã‚¯ã—ã¦ã‹ã‚‰ã‚¿ã‚¤ãƒ—ã—ã¦ãã ã•ã„。標準的ãªMotifã®ç·¨é›†æ©Ÿèƒ½ãŒã€Emacsã®ã‚ーãƒã‚¤ãƒ³ãƒ‰ã¨ã¨ã‚‚ã«ã€ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã™ã€‚例ãˆã°ã€ãƒãƒƒã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã¨ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ«-Hã¯ã‚«ãƒ¼ã‚½ãƒ«ã®å·¦ã®æ–‡å—を削除ã—ã€ãƒ‡ãƒªãƒ¼ãƒˆã‚ーã¨ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ«-Dã¯ã‚«ãƒ¼ã‚½ãƒ«ã®å³å´ã®æ–‡å—を削除ã—ã¾ã™ã€‚é•·éŽãŽã¦ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã«å…¥ã‚Šåˆ‡ã‚‰ãªã„ã‚‚ã®ã¯ã€ãƒžã‚¦ã‚¹ã®ãƒœã‚¿ãƒ³2を押ã—ãŸã¾ã¾ãƒ‰ãƒ©ãƒƒã‚°ã™ã‚‹ã“ã¨ã§ã‚¹ã‚¯ãƒãƒ¼ãƒ«ã•ã›ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚日本語を入力ã™ã‚‹ã®ã¯ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ«-ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã§ã™ã€‚kinput2ãŒå‹•ã„ã¦ã„れã°å…¥åŠ›ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"
}
msg.pack('side'=>'top')
# frame 生æˆ
TkFrame.new(base_frame) {|frame|
TkButton.new(frame) {
#text '了解'
text 'é–‰ã˜ã‚‹'
command proc{
tmppath = $entry2_demo
$entry2_demo = nil
tmppath.destroy
}
}.pack('side'=>'left', 'expand'=>'yes')
TkButton.new(frame) {
text 'コードå‚ç…§'
command proc{showCode 'entry2'}
}.pack('side'=>'left', 'expand'=>'yes')
}.pack('side'=>'bottom', 'fill'=>'x', 'pady'=>'2m')
# frame 生æˆ
TkFrame.new(base_frame, 'borderwidth'=>10) {|w|
# entry 1
s1 = TkScrollbar.new(w, 'relief'=>'sunken', 'orient'=>'horiz')
e1 = TkEntry.new(w, 'relief'=>'sunken') {
xscrollcommand proc{|first,last| s1.set first,last}
}
s1.command(proc{|*args| e1.xview(*args)})
e1.pack('side'=>'top', 'fill'=>'x')
s1.pack('side'=>'top', 'fill'=>'x')
# spacer
TkFrame.new(w, 'width'=>20, 'height'=>10).pack('side'=>'top', 'fill'=>'x')
# entry 2
s2 = TkScrollbar.new(w, 'relief'=>'sunken', 'orient'=>'horiz')
e2 = TkEntry.new(w, 'relief'=>'sunken') {
xscrollcommand proc{|first,last| s2.set first,last}
}
s2.command(proc{|*args| e2.xview(*args)})
e2.pack('side'=>'top', 'fill'=>'x')
s2.pack('side'=>'top', 'fill'=>'x')
# spacer
TkFrame.new(w, 'width'=>20, 'height'=>10).pack('side'=>'top', 'fill'=>'x')
# entry 3
s3 = TkScrollbar.new(w, 'relief'=>'sunken', 'orient'=>'horiz')
e3 = TkEntry.new(w, 'relief'=>'sunken') {
xscrollcommand proc{|first,last| s3.set first,last}
}
s3.command(proc{|*args| e3.xview(*args)})
e3.pack('side'=>'top', 'fill'=>'x')
s3.pack('side'=>'top', 'fill'=>'x')
# åˆæœŸå€¤æŒ¿å…¥
e1.insert(0, 'åˆæœŸå€¤')
e2.insert('end', "ã“ã®ã‚¨ãƒ³ãƒˆãƒªã«ã¯é•·ã„æ–‡å—列ãŒå…¥ã£ã¦ã„ã¦ã€")
e2.insert('end', "é•·ã™ãŽã¦ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã«ã¯å…¥ã‚Šåˆ‡ã‚‰ãªã„ã®ã§ã€")
e2.insert('end', "å®Ÿéš›ã®æ‰€çµ‚りã¾ã§è¦‹ã‚‹ã«ã¯ã‚¹ã‚¯ãƒãƒ¼ãƒ«ã•ã›ãªã‘れã°")
e2.insert('end', "ãªã‚‰ãªã„ã§ã—ょã†ã€‚")
}.pack('side'=>'top', 'fill'=>'x', 'expand'=>'yes')
|