blob: 5ddcc3d6738250fd5f900c4d4c6e56c4220d8c89 (
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
|
/*
* tkFileFilter.h --
*
* Declarations for the file filter processing routines needed by the
* file selection dialogs.
*
* Copyright (c) 1996 Sun Microsystems, Inc.
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
* RCS: @(#) $Id: tkFileFilter.h,v 1.9 2010/04/23 08:32:56 nijtmans Exp $
*
*/
#ifndef _TK_FILE_FILTER
#define _TK_FILE_FILTER
#define OSType long
typedef struct GlobPattern {
struct GlobPattern *next; /* Chains to the next glob pattern in a glob
* pattern list */
char *pattern; /* String value of the pattern, such as
* "*.txt" or "*.*" */
} GlobPattern;
typedef struct MacFileType {
struct MacFileType *next; /* Chains to the next mac file type in a mac
* file type list */
OSType type; /* Mac file type, such as 'TEXT' or 'GIFF' */
} MacFileType;
typedef struct FileFilterClause {
struct FileFilterClause *next;
/* Chains to the next clause in a clause
* list */
GlobPattern *patterns; /* Head of glob pattern type list */
GlobPattern *patternsTail; /* Tail of glob pattern type list */
MacFileType *macTypes; /* Head of mac file type list */
MacFileType *macTypesTail; /* Tail of mac file type list */
} FileFilterClause;
typedef struct FileFilter {
struct FileFilter *next; /* Chains to the next filter in a filter
* list */
char *name; /* Name of the file filter, such as "Text
* Documents" */
FileFilterClause *clauses; /* Head of the clauses list */
FileFilterClause *clausesTail;
/* Tail of the clauses list */
} FileFilter;
/*
*----------------------------------------------------------------------
*
* FileFilterList --
*
* The routine TkGetFileFilters() translates the string value of the
* -filefilters option into a FileFilterList structure, which consists of
* a list of file filters.
*
* Each file filter consists of one or more clauses. Each clause has one
* or more glob patterns and/or one or more Mac file types
*
*----------------------------------------------------------------------
*/
typedef struct FileFilterList {
FileFilter *filters; /* Head of the filter list */
FileFilter *filtersTail; /* Tail of the filter list */
int numFilters; /* number of filters in the list */
} FileFilterList;
MODULE_SCOPE void TkFreeFileFilters(FileFilterList *flistPtr);
MODULE_SCOPE void TkInitFileFilters(FileFilterList *flistPtr);
MODULE_SCOPE int TkGetFileFilters(Tcl_Interp *interp,
FileFilterList *flistPtr, Tcl_Obj *valuePtr,
int isWindows);
#endif /* _TK_FILE_FILTER */
|