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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
/*
* Attrs.h -- Header for the attribute manipulation routines.
*
* Authors : Patrick Lecoanet.
* Creation date : Fri Dec 31 10:06:37 1999
*
* $Id$
*/
/*
* Copyright (c) 1993 - 1999 CENA, Patrick Lecoanet --
*
* This code is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This code is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this code; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#ifndef _Attrs_h
#define _Attrs_h
#ifdef __CPLUSPLUS__
extern "C" {
#endif
#include <Types.h>
/*
* Label Formats.
*/
/*
* field flags.
*/
#define LF_ATTACH_PIXEL 0
#define LF_ATTACH_FWD 1
#define LF_ATTACH_BWD 2
#define LF_ATTACH_LEFT 3 /* Align left on left or top on top */
#define LF_ATTACH_RIGHT 4 /* Align right on right or bottom on bottom */
#define LF_DIM_PIXEL 0
#define LF_DIM_FONT 1
#define LF_DIM_ICON 2
#define LF_DIM_AUTO 3
typedef struct {
int x_spec;
int y_spec;
short width_spec;
short height_spec;
char x_attach;
char y_attach;
char x_dim;
char y_dim;
} ZnFieldFormatStruct, *ZnFieldFormat;
typedef struct {
short clip_width;
short clip_height;
int num_fields;
Tcl_HashEntry *entry;
int ref_count;
ZnFieldFormatStruct fields[1];
} ZnLabelFormatStruct, *ZnLabelFormat;
ZnLabelFormat
LabelFormatCreate(Tcl_Interp * /* interp */,
char * /* format_str */,
int /* num_fields */);
ZnLabelFormat
LabelFormatDuplicate(ZnLabelFormat /* label_format */);
void
LabelFormatDelete(ZnLabelFormat /* label_format */);
char *
LabelFormatGetString(ZnLabelFormat /* label_format */);
ZnBool
LabelFormatGetClipBox(ZnLabelFormat /* label_format */,
ZnDim */* width */,
ZnDim */* height */);
#define LabelFormatNumFields(lf) ((lf)->num_fields)
void
LabelFormatGetField(ZnLabelFormat /* label_format */,
int /* field */,
char */* x_attach */,
char */* y_attach */,
char */* x_dim */,
char */* y_dim */,
int */* x_spec */,
int */* y_spec */,
short */* width_spec */,
short */* height_spec */);
/*
* Line Ends.
*/
typedef struct {
ZnReal shape_a;
ZnReal shape_b;
ZnReal shape_c;
Tcl_HashEntry *entry;
int ref_count;
} ZnLineEndStruct, *ZnLineEnd;
ZnLineEnd
LineEndCreate(Tcl_Interp *interp,
char *line_end_str);
ZnLineEnd
LineEndDuplicate(ZnLineEnd le);
void
LineEndDelete(ZnLineEnd le);
char *
LineEndGetString(ZnLineEnd le);
/*
* Gradient Geometry.
*/
typedef struct {
int d1;
int d2;
int angle;
Tcl_HashEntry *entry;
int ref_count;
} ZnGradientGeomStruct, *ZnGradientGeom;
ZnGradientGeom
GradientGeomCreate(Tcl_Interp *interp,
char *grad_geom_str);
ZnGradientGeom
GradientGeomDuplicate(ZnGradientGeom gg);
void
GradientGeomDelete(ZnGradientGeom gg);
char *
GradientGeomGetString(ZnGradientGeom gg);
#ifdef __CPLUSPLUS__
}
#endif
#endif /* _Attrs_h */
|