home *** CD-ROM | disk | FTP | other *** search
/ Netrunner 2004 October / NETRUNNER0410.ISO / regular / ActivePerl-5.8.4.810-MSWin32-x86.msi / _ac2bac043aae65bc9488062379e25841 < prev    next >
Text File  |  2004-06-01  |  3KB  |  93 lines

  1. /*
  2.  * tkFileFilter.h --
  3.  *
  4.  *    Declarations for the file filter processing routines needed by
  5.  *    the file selection dialogs.
  6.  *
  7.  * Copyright (c) 1996 Sun Microsystems, Inc.
  8.  *
  9.  * See the file "license.terms" for information on usage and redistribution
  10.  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  11.  *
  12.  * RCS: @(#) $Id: tkFileFilter.h,v 1.4 1998/09/14 18:23:10 stanton Exp $
  13.  *
  14.  */
  15.  
  16. #ifndef _TK_FILE_FILTER
  17. #define _TK_FILE_FILTER
  18.  
  19. #ifdef MAC_TCL
  20. #include <StandardFile.h>
  21. #else
  22. #define OSType long
  23. #endif
  24.  
  25. #ifdef BUILD_tk
  26. # undef TCL_STORAGE_CLASS
  27. # define TCL_STORAGE_CLASS DLLEXPORT
  28. #endif
  29.  
  30. typedef struct GlobPattern {
  31.     struct GlobPattern * next;        /* Chains to the next glob pattern
  32.                      * in a glob pattern list */
  33.     char * pattern;            /* String value of the pattern, such
  34.                      * as "*.txt" or "*.*"
  35.                      */
  36. } GlobPattern;
  37.  
  38. typedef struct MacFileType {
  39.     struct MacFileType * next;        /* Chains to the next mac file type
  40.                      * in a mac file type list */
  41.     OSType type;            /* Mac file type, such as 'TEXT' or
  42.                      * 'GIFF' */
  43. } MacFileType;
  44.  
  45. typedef struct FileFilterClause {
  46.     struct FileFilterClause * next;    /* Chains to the next clause in
  47.                      * a clause list */
  48.     GlobPattern * patterns;        /* Head of glob pattern type list */
  49.     GlobPattern * patternsTail;        /* Tail of glob pattern type list */
  50.     MacFileType * macTypes;        /* Head of mac file type list */
  51.     MacFileType * macTypesTail;        /* Tail of mac file type list */
  52. } FileFilterClause;
  53.  
  54. typedef struct FileFilter {
  55.     struct FileFilter * next;        /* Chains to the next filter
  56.                      * in a filter list */
  57.     char * name;            /* Name of the file filter,
  58.                      * such as "Text Documents" */
  59.     FileFilterClause * clauses;        /* Head of the clauses list */
  60.     FileFilterClause * clausesTail;    /* Tail of the clauses list */
  61. } FileFilter;
  62.  
  63. /*----------------------------------------------------------------------
  64.  * FileFilterList --
  65.  *
  66.  * The routine TkGetFileFilters() translates the string value of the
  67.  * -filefilters option into a FileFilterList structure, which consists
  68.  * of a list of file filters.
  69.  *
  70.  * Each file filter consists of one or more clauses. Each clause has
  71.  * one or more glob patterns and/or one or more Mac file types
  72.  *----------------------------------------------------------------------
  73.  */
  74.  
  75. typedef struct FileFilterList {
  76.     FileFilter * filters;        /* Head of the filter list */
  77.     FileFilter * filtersTail;        /* Tail of the filter list */
  78.     int numFilters;            /* number of filters in the list */
  79. } FileFilterList;
  80.  
  81. EXTERN void        TkFreeFileFilters _ANSI_ARGS_((
  82.                 FileFilterList * flistPtr));
  83. EXTERN void        TkInitFileFilters _ANSI_ARGS_((
  84.                 FileFilterList * flistPtr));
  85. EXTERN int        TkGetFileFilters _ANSI_ARGS_ ((Tcl_Interp *interp,
  86.                     FileFilterList * flistPtr, Tcl_Obj * arg,
  87.                 int isWindows));
  88.  
  89. # undef TCL_STORAGE_CLASS
  90. # define TCL_STORAGE_CLASS DLLIMPORT
  91.  
  92. #endif
  93.