1 |
#ifndef _Attr_h |
2 |
#define _Attr_h |
3 |
|
4 |
#include <Defines.h> |
5 |
#include <Cnv.h> |
6 |
|
7 |
|
8 |
/**********************************************************************/ |
9 |
|
10 |
/*** variables, index ***/ |
11 |
typedef enum { |
12 |
I_Path, I_X, I_Y, I_Weight, I_Connect, I_Hp, |
13 |
I_Trigger, I_Sacrifice, I_Count, I_Lockcode, |
14 |
I_Direction, I_Rotation, I_NoPick, I_Unique, |
15 |
I_WeightL, I_Brand, I_Maker |
16 |
} AttrIndex; |
17 |
|
18 |
typedef enum _AttrType { |
19 |
TypeString, |
20 |
TypeToggle |
21 |
} AttrType; |
22 |
|
23 |
typedef void (*AttrFunc)(object *, char *, XtPointer); |
24 |
|
25 |
typedef struct { |
26 |
String label; |
27 |
AttrType type; |
28 |
AttrFunc getValue; |
29 |
AttrFunc putValue; |
30 |
} AttrDef; |
31 |
|
32 |
typedef struct { |
33 |
Widget cont; |
34 |
Widget value; |
35 |
} AttrTags; |
36 |
|
37 |
struct _Attr { |
38 |
struct _Attr *attr; |
39 |
App app; |
40 |
Widget w; /* not used */ |
41 |
unsigned long flags; /* editor-type T_<> */ |
42 |
int attrnumber; |
43 |
object *op; /* object to edit */ |
44 |
Edit client; |
45 |
Widget shell; /* popup-shell */ |
46 |
struct { |
47 |
Widget name; /* text */ |
48 |
Widget msg; /* command */ |
49 |
Widget inv; /* command */ |
50 |
Widget exact; /* for dumbing object data */ |
51 |
Widget face; /* face of object */ |
52 |
Widget vars; /* to get list of variables; command */ |
53 |
Widget var; /* variable name of object; text */ |
54 |
Widget value; /* value of variable; text */ |
55 |
} iw; |
56 |
struct { |
57 |
Widget shell; |
58 |
Widget list; |
59 |
} vars; |
60 |
AttrTags *tags; |
61 |
#if 1 |
62 |
AttrDef *desc; |
63 |
#endif |
64 |
Boolean isup; /* is window popped up */ |
65 |
Boolean modified; /* should not used */ |
66 |
CnvBrowse dump; /* showing window for dump_object */ |
67 |
}; |
68 |
|
69 |
/* |
70 |
* macro inteface |
71 |
*/ |
72 |
#define AttrGetObject(self) (self->op) |
73 |
#define AttrIsup(self) (self->isup) |
74 |
#define AttrSetIsup(self,b) {self->isup = b;} |
75 |
|
76 |
/* |
77 |
* function inteface |
78 |
*/ |
79 |
extern Attr AttrCreate ( char *name, App app, object *ob, |
80 |
AttrDef *desc, unsigned long flags, Edit); |
81 |
extern void AttrChange ( Attr self, object *ob, unsigned long flags, Edit); |
82 |
extern void AttrDestroy ( Attr self ); |
83 |
extern void AttrApply ( Attr self ); |
84 |
|
85 |
extern int GetType (object *tmp); |
86 |
|
87 |
extern AttrDef AttrDescription[]; |
88 |
|
89 |
#endif /* _Attr_h */ |