1 # -*- coding: euc-jp -*-
3 # text (tag bindings) widget demo (called by 'widget')
6 # toplevel widget ¤¬Â¸ºß¤¹¤ì¤Ðºï½ü¤¹¤ë
7 if defined?($bind_demo) && $bind_demo
12 # demo ÍѤΠtoplevel widget ¤òÀ¸À®
13 $bind_demo = TkToplevel.new {|w|
14 title("Text Demonstration - Tag Bindings")
19 base_frame = TkFrame.new($bind_demo).pack(:fill=>:both, :expand=>true)
22 TkFrame.new(base_frame) {|frame|
31 }.pack('side'=>'left', 'expand'=>'yes')
35 command proc{showCode 'bind'}
36 }.pack('side'=>'left', 'expand'=>'yes')
37 }.pack('side'=>'bottom', 'fill'=>'x', 'pady'=>'2m')
40 def tag_binding_for_bind_demo(tag, enter_style, leave_style)
41 tag.bind('Any-Enter', proc{tag.configure enter_style})
42 tag.bind('Any-Leave', proc{tag.configure leave_style})
46 txt = TkText.new(base_frame){|t|
53 TkScrollbar.new(base_frame) {|s|
54 pack('side'=>'right', 'fill'=>'y')
55 command proc{|*args| t.yview(*args)}
56 t.yscrollcommand proc{|first,last| s.set first,last}
58 pack('expand'=>'yes', 'fill'=>'both')
61 if TkWinfo.depth($root).to_i > 1
62 tagstyle_bold = {'background'=>'#43ce80', 'relief'=>'raised',
64 tagstyle_normal = {'background'=>'', 'relief'=>'flat'}
66 tagstyle_bold = {'foreground'=>'white', 'background'=>'black'}
67 tagstyle_normal = {'foreground'=>'', 'background'=>''}
71 insert 'insert', "¥Æ¥¥¹¥Èwidget¤Îɽ¼¨¥¹¥¿¥¤¥ë¤òÀ©¸æ¤¹¤ë¤Î¤ÈƱ¤¸¥¿¥°¤Î¥á¥«¥Ë¥º¥à¤ò»È¤Ã¤Æ¡¢¥Æ¥¥¹¥È¤ËTcl¤Î¥³¥Þ¥ó¥É¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢¥Þ¥¦¥¹¤ä¥¡¼¥Ü¡¼¥É¤Î¥¢¥¯¥·¥ç¥ó¤ÇÆÃÄê¤ÎTcl¤Î¥³¥Þ¥ó¥É¤¬¼Â¹Ô¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£Î㤨¤Ð¡¢²¼¤Î¥¥ã¥ó¥Ð¥¹¤Î¥Ç¥â¥×¥í¥°¥é¥à¤Ë¤Ä¤¤¤Æ¤ÎÀâÌÀʸ¤Ë¤Ï¤½¤Î¤è¤¦¤Ê¥¿¥°¤¬¤Ä¤¤¤Æ¤¤¤Þ¤¹¡£¥Þ¥¦¥¹¤òÀâÌÀʸ¤Î¾å¤Ë»ý¤Ã¤Æ¤¤¤¯¤ÈÀâÌÀʸ¤¬¸÷¤ê¡¢¥Ü¥¿¥ó1¤ò²¡¤¹¤È¤½¤ÎÀâÌÀ¤Î¥Ç¥â¤¬»Ï¤Þ¤ê¤Þ¤¹¡£
74 insert('end', '1. ¥¥ã¥ó¥Ð¥¹ widget ¤Ëºî¤ë¤³¤È¤Î¤Ç¤¤ë¥¢¥¤¥Æ¥à¤Î¼ïÎàÁ´¤Æ¤Ë´Ø¤¹¤ë¥µ¥ó¥×¥ë¡£', (d1 = TkTextTag.new(t)) )
76 insert('end', '2. ´Êñ¤Ê 2¼¡¸µ¤Î¥×¥í¥Ã¥È¡£¥Ç¡¼¥¿¤òɽ¤¹ÅÀ¤òÆ°¤«¤¹¤³¤È¤¬¤Ç¤¤ë¡£', (d2 = TkTextTag.new(t)) )
78 insert('end', '3. ¥Æ¥¥¹¥È¥¢¥¤¥Æ¥à¤Î¥¢¥ó¥«¡¼¤È¹Ô·¤¨¡£',
79 (d3 = TkTextTag.new(t)) )
81 insert('end', '4. ¥é¥¤¥ó¥¢¥¤¥Æ¥à¤Î¤¿¤á¤ÎÌð°õ¤ÎƬ¤Î·Á¤Î¥¨¥Ç¥£¥¿¡£',
82 (d4 = TkTextTag.new(t)) )
84 insert('end', '5. ¥¿¥Ö¥¹¥È¥Ã¥×¤òÊѹ¹¤¹¤ë¤¿¤á¤Îµ¡Ç½¤Ä¤¤Î¥ë¡¼¥é¡¼¡£',
85 (d5 = TkTextTag.new(t)) )
88 '6. ¥¥ã¥ó¥Ð¥¹¤¬¤É¤¦¤ä¤Ã¤Æ¥¹¥¯¥í¡¼¥ë¤¹¤ë¤Î¤«¤ò¼¨¤¹¥°¥ê¥Ã¥É¡£',
89 (d6 = TkTextTag.new(t)) )
92 [d1, d2, d3, d4, d5, d6].each{|tag|
93 tag_binding_for_bind_demo(tag, tagstyle_bold, tagstyle_normal)
97 eval_samplecode(`cat #{[$demo_dir,'items.rb'].join(File::Separator)}`, 'items.rb')
101 eval_samplecode(`cat #{[$demo_dir,'plot.rb'].join(File::Separator)}`, 'plot.rb')
105 eval_samplecode(`cat #{[$demo_dir,'ctext.rb'].join(File::Separator)}`, 'ctext.rb')
109 eval_samplecode(`cat #{[$demo_dir,'arrow.rb'].join(File::Separator)}`, 'arrow.rb')
113 eval_samplecode(`cat #{[$demo_dir,'ruler.rb'].join(File::Separator)}`, 'ruler.rb')
117 eval_samplecode(`cat #{[$demo_dir,'cscroll.rb'].join(File::Separator)}`, 'cscroll.rb')
120 TkTextMarkInsert.new(t, '0.0')
121 configure('state','disabled')