summaryrefslogtreecommitdiff
path: root/ruby_1_8_5/ext/tk/sample/demos-jp/filebox.rb
blob: f3608ab70f88a0bd0c6bf63b6346e184fdcb0dbb (plain)
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
92
93
94
95
96
#
# widget demo prompts the user to select a file (called by 'widget')
#

# toplevel widget ¤¬Â¸ºß¤¹¤ì¤Ðºï½ü¤¹¤ë
if defined?($filebox_demo) && $entry2_demo
  $filebox_demo.destroy 
  $filebox_demo = nil
end

# demo ÍѤΠtoplevel widget ¤òÀ¸À®
$filebox_demo = TkToplevel.new {|w|
  title("File Selection Dialogs")
  iconname("filebox")
  positionWindow(w)
}

# label À¸À®
TkLabel.new($filebox_demo,'font'=>$font,'wraplength'=>'4i','justify'=>'left',
            'text'=>"¥¨¥ó¥È¥ê¤Ë¥Õ¥¡¥¤¥ë̾¤òľÀÜÆþÎϤ¹¤ë¤«¡¢\"Browse\" ¥Ü¥¿¥ó¤ò²¡¤·¤Æ¥Õ¥¡¥¤¥ëÁªÂò¥À¥¤¥¢¥í¥°¤«¤é¥Õ¥¡¥¤¥ë̾¤òÁª¤ó¤Ç²¼¤µ¤¤¡£").pack('side'=>'top')

# frame À¸À®
TkFrame.new($filebox_demo) {|frame|
  TkButton.new(frame) {
    #text 'λ²ò'
    text 'ÊĤ¸¤ë'
    command proc{
      tmppath = $filebox_demo
      $filebox_demo = nil
      tmppath.destroy
    }
  }.pack('side'=>'left', 'expand'=>'yes')

  TkButton.new(frame) {
    text '¥³¡¼¥É»²¾È'
    command proc{showCode 'filebox'}
  }.pack('side'=>'left', 'expand'=>'yes')
}.pack('side'=>'bottom', 'fill'=>'x', 'pady'=>'2m')

# frame À¸À®
['³«¤¯', 'Êݸ'].each{|type|
  TkFrame.new($filebox_demo) {|f|
    TkLabel.new(f, 'text'=>"¥Õ¥¡¥¤¥ë¤ò#{type}: ", 'anchor'=>'e')\
    .pack('side'=>'left')

    TkEntry.new(f, 'width'=>20) {|e|
      pack('side'=>'left', 'expand'=>'yes', 'fill'=>'x')

      TkButton.new(f, 'text'=>'Browse ...', 
                   'command'=>proc{fileDialog $filebox_demo,e,type})\
      .pack('side'=>'left')
    }

    pack('fill'=>'x', 'padx'=>'1c', 'pady'=>3)
  }
}

$tk_strictMotif = TkVarAccess.new('tk_strictMotif')
if ($tk_platform['platform'] == 'unix')
  TkCheckButton.new($filebox_demo, 
                    'text'=>'Motif¥¹¥¿¥¤¥ë¤Î¥À¥¤¥¢¥í¥°¤òÍѤ¤¤ë', 
                    'variable'=>$tk_strictMotif, 
                    'onvalue'=>1, 'offvalue'=>0 ).pack('anchor'=>'c')
end

def fileDialog(w,ent,operation)
  #    Type names         Extension(s)             Mac File Type(s)
  #
  #--------------------------------------------------------
  types = [
    ['Text files',       ['.txt','.doc']          ], 
    ['Text files',       [],                      'TEXT' ], 
    ['Ruby Scripts',     ['.rb'],                 'TEXT' ], 
    ['Tcl Scripts',      ['.tcl'],                'TEXT' ], 
    ['C Source Files',   ['.c','.h']              ], 
    ['All Source Files', ['.rb','.tcl','.c','.h'] ], 
    ['Image Files',      ['.gif']                 ], 
    ['Image Files',      ['.jpeg','.jpg']         ], 
    ['Image Files',      [],                      ['GIFF','JPEG']], 
    ['All files',        '*'                      ]
  ]

  if operation == '³«¤¯'
    file = Tk.getOpenFile('filetypes'=>types, 'parent'=>w)
  else
    file = Tk.getSaveFile('filetypes'=>types, 'parent'=>w, 
                          'initialfile'=>'Untitled', 
                          'defaultextension'=>'.txt')
  end
  if file != ""
    ent.delete 0, 'end'
    ent.insert 0, file
    ent.xview 'end'
  end
end