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
|
/* Generated by wbuild from "Label.w"
** (generator version $Revision: 2.0 $ of $Date: 93/07/06 16:08:04 $)
*/
#ifndef _XfwfLabelP_H_
#define _XfwfLabelP_H_
#include "BoardP.h"
#include "Label.h"
typedef void (*set_label_Proc)(
#if NeedFunctionPrototypes
Widget,String
#endif
);
#define XtInherit_set_label ((set_label_Proc) _XtInherit)
typedef struct {
/* methods */
set_label_Proc set_label;
#define draw_line(dpy, win, from, to) do {\
if (((XfwfLabelWidget)self)->xfwfLabel.rvStart >= to) rstart = to;\
else rstart = max(((XfwfLabelWidget)self)->xfwfLabel.rvStart, from);\
if (((XfwfLabelWidget)self)->xfwfLabel.rvStart + ((XfwfLabelWidget)self)->xfwfLabel.rvLength <= from) rend = rstart;\
else rend = min(((XfwfLabelWidget)self)->xfwfLabel.rvStart + ((XfwfLabelWidget)self)->xfwfLabel.rvLength, to);\
w1 = XfwfTextWidth(((XfwfLabelWidget)self)->xfwfLabel.font, ((XfwfLabelWidget)self)->xfwfLabel.label + from, rstart - from, ((XfwfLabelWidget)self)->xfwfLabel.tabs);\
w2 = XfwfTextWidth(((XfwfLabelWidget)self)->xfwfLabel.font, ((XfwfLabelWidget)self)->xfwfLabel.label + rstart, rend - rstart, ((XfwfLabelWidget)self)->xfwfLabel.tabs);\
w3 = XfwfTextWidth(((XfwfLabelWidget)self)->xfwfLabel.font, ((XfwfLabelWidget)self)->xfwfLabel.label + rend, to - rend, ((XfwfLabelWidget)self)->xfwfLabel.tabs);\
if (((XfwfLabelWidget)self)->xfwfLabel.alignment & XfwfLeft)\
x = rect.x;\
else if (((XfwfLabelWidget)self)->xfwfLabel.alignment & XfwfRight)\
x = rect.x + rect.width - w1 - w2 - w3;\
else\
x = rect.x + (rect.width - w1 - w2 - w3)/2;\
if (w1)\
XfwfDrawImageString(dpy, win, ((XfwfLabelWidget)self)->xfwfLabel.gc, x, y, ((XfwfLabelWidget)self)->xfwfLabel.label + from,\
rstart - from, ((XfwfLabelWidget)self)->xfwfLabel.tabs);\
if (w2)\
XfwfDrawImageString(dpy, win, ((XfwfLabelWidget)self)->xfwfLabel.rv_gc, x + w1, y, ((XfwfLabelWidget)self)->xfwfLabel.label\
+ rstart, rend - rstart, ((XfwfLabelWidget)self)->xfwfLabel.tabs);\
if (w3)\
XfwfDrawImageString(dpy, win, ((XfwfLabelWidget)self)->xfwfLabel.gc, x + w1 + w2, y, ((XfwfLabelWidget)self)->xfwfLabel.label +\
rend, to - rend, ((XfwfLabelWidget)self)->xfwfLabel.tabs);\
}while (0 )
/* class variables */
} XfwfLabelClassPart;
typedef struct _XfwfLabelClassRec {
CoreClassPart core_class;
CompositeClassPart composite_class;
XfwfCommonClassPart xfwfCommon_class;
XfwfFrameClassPart xfwfFrame_class;
XfwfBoardClassPart xfwfBoard_class;
XfwfLabelClassPart xfwfLabel_class;
} XfwfLabelClassRec;
typedef struct {
/* resources */
String label;
String tablist;
XFontStruct * font;
Pixel foreground;
Alignment alignment;
Dimension topMargin;
Dimension bottomMargin;
Dimension leftMargin;
Dimension rightMargin;
Boolean shrinkToFit;
int rvStart;
int rvLength;
/* private state */
int nlines;
int * tabs;
GC gc;
GC rv_gc;
GC graygc;
Dimension label_width;
Dimension label_height;
} XfwfLabelPart;
typedef struct _XfwfLabelRec {
CorePart core;
CompositePart composite;
XfwfCommonPart xfwfCommon;
XfwfFramePart xfwfFrame;
XfwfBoardPart xfwfBoard;
XfwfLabelPart xfwfLabel;
} XfwfLabelRec;
externalref XfwfLabelClassRec xfwfLabelClassRec;
#endif /* _XfwfLabelP_H_ */
|