 
 subsection3_7_2.html  subsection3_7_1.html  subsubsection3_7_1_4.html  tableofcontents3_1.html   Next: subsection3_7_2.html Selecting Directories with Up: subsection3_7_1.html File Selection Dialog  Previous: subsubsection3_7_1_4.html Specifying File Types    5.1.5 The tix filedialog Command  
TixExFileSelectDialog and TixFileSelectDialog are very similar to
  each other. So which one should we use? That is just a matter of
  taste. However, since we know that programmers usually have bad
  taste, clever programmers would rather step aside and let the users
  exercise their own taste. To do this, we can use the 
tix
  filedialog
 command.
   For any programs based on Tix, the user can choose his preferred
  type of file dialog by setting the X resource 
FileDialog to
  either 
tixFileSelectDialog or tixExFileSelectDialog.
  This can usually be done by inserting a line similar to the
  following into the user's 
.Xdefaults file:
  *myapp*FileDialog: tixExFileSelectDialog
   When we call the command 
tix filedialog, it will return a file
  dialog widget of the user's preferred type.
   The advantage of using 
tix filedialog is it makes coding
  flexible. If the management suddenly mandates that we dump the Motif
  look-and-feel in favor of the MS Windows look-and-feel, we don't need to
  dig up every line of 
tixFileSelectDialog calls and replace it with
  
tixExFileSelectDialog. Also, tix filedialog creates only one
  copy of the file dialog, which can be shared by different parts of the
  program. Therefore, we can avoid creating a separate file dialog widget
  for each of the ``Open'', ``Save'' and ``Save As'' commands in our
  application. This way, we can save resource since a file dialog is a
  large widget and it takes up quite a bit of space.
  set dialog [tix filedialog]$dialog -title "Select A File" -command selectCmd
$dialog subwidget fsbox config -pattern "*.txt" -directory /usr/info
if {[winfo class $dialog] == "TixExFileSelectDialog"} {
    $dialog subwidget fsbox config -filetypes {
        {\*}            {*     - All files}\
        {\*.txt}        {*.txt - Text files}\
        {\*.c}          {*.c   - C source files}\
    }
}
$dialog popup
proc selectCmd {filename} {
    puts "You have selected $filename"
}
(Figure 5-4) Using the tix dialog command    
   The use of the 
tix filedialog command is shown in program 5-4
. This program is very similar to what we saw in program 5-1
, except now we aren't really sure which type of file dialog
  the user have chosen. Therefore, if we want to do something allowed for
  only one type of file dialogs, we have to be careful. At line 4 of
  program 5-4, we use the 
winfo command to see whether
  the type of the file dialog is TixExFileSelectDialog. If so, we set the
  value for the 
-filetypes option of its fsbox subwidget.
http://tix.sourceforge.nethttp://tix.sourceforge.net 