2 #ifndef _sigc_eventtraits_h_
3 #define _sigc_eventtraits_h_
10 #define MAKE_EVENTTRAIT_1_OPEN(ID,GETYPE,VCMP,GCMP) \
15 typedef GETYPE ge_type;\
18 static const T_vcmp EN1;\
19 static const T_gcmp GN1;\
20 static const char* const signame;\
21 static T_gcmp Field(GdkEvent* eve);\
24 #define MAKE_EVENTTRAIT_2_OPEN(ID,GETYPE,VCMP,GCMP) \
29 typedef GETYPE ge_type;\
32 static const T_vcmp EN1;\
33 static const T_gcmp GN1;\
34 static const T_vcmp EN2;\
35 static const T_gcmp GN2;\
36 static const char* const signame;\
37 static T_gcmp Field(GdkEvent* eve);\
40 #define MAKE_EVENTTRAIT_3_OPEN(ID,GETYPE,VCMP,GCMP) \
45 typedef GETYPE ge_type;\
48 static const T_vcmp EN1;\
49 static const T_gcmp GN1;\
50 static const T_vcmp EN2;\
51 static const T_gcmp GN2;\
52 static const T_vcmp EN3;\
53 static const T_gcmp GN3;\
54 static const char* const signame;\
55 static T_gcmp Field(GdkEvent* eve);\
61 #define MAKE_EVENTTRAIT_CLOSE_DEFAULT(ID) \
63 W2_Trait<ID>::T_gcmp W2_Trait<ID>::Field(GdkEvent* eve){return eve->type;}
67 MAKE_EVENTTRAIT_3_OPEN(BUTTON_PRESS,GdkEventButton,VDKButtonEventFilter,GdkEventType)
68 MAKE_EVENTTRAIT_CLOSE_DEFAULT(BUTTON_PRESS)
71 MAKE_EVENTTRAIT_1_OPEN(BUTTON_RELEASE,GdkEventButton,VDKButtonEventFilter,\
73 MAKE_EVENTTRAIT_CLOSE_DEFAULT(BUTTON_RELEASE)
76 MAKE_EVENTTRAIT_1_OPEN(FOCUS_KEY_IN, GdkEventFocus, VDKFocusEventFilter,\
80 W2_Trait<FOCUS_KEY_IN>::Field(GdkEvent* eve)
81 {
return reinterpret_cast<GdkEventFocus*
>(eve)->in;}
85 MAKE_EVENTTRAIT_1_OPEN(FOCUS_KEY_OUT, GdkEventFocus, VDKFocusEventFilter,\
89 W2_Trait<FOCUS_KEY_OUT>::Field(GdkEvent* eve)
90 {
return reinterpret_cast<GdkEventFocus*
>(eve)->in;}
94 MAKE_EVENTTRAIT_1_OPEN(FOCUS_POINTER_IN,GdkEventCrossing,VDKFocusEventFilter,\
96 MAKE_EVENTTRAIT_CLOSE_DEFAULT(FOCUS_POINTER_IN)
100 MAKE_EVENTTRAIT_1_OPEN(FOCUS_POINTER_OUT,GdkEventCrossing,VDKFocusEventFilter,\
102 MAKE_EVENTTRAIT_CLOSE_DEFAULT(FOCUS_POINTER_OUT)
105 MAKE_EVENTTRAIT_1_OPEN(GEOMETRY,GdkEventConfigure,
int,
int)
109 MAKE_EVENTTRAIT_1_OPEN(PAINT,GdkEventExpose,
int,
int)
113 MAKE_EVENTTRAIT_1_OPEN(KEY_PRESS,GdkEventKey,VDKKeyEventFilter,\
116 MAKE_EVENTTRAIT_CLOSE_DEFAULT(KEY_PRESS)
119 MAKE_EVENTTRAIT_1_OPEN(KEY_RELEASE,GdkEventKey,VDKKeyEventFilter,\
122 MAKE_EVENTTRAIT_CLOSE_DEFAULT(KEY_RELEASE)
125 MAKE_EVENTTRAIT_1_OPEN(POINTER_PRESSED,GdkEventMotion,VDKPointerEventFilter,\
129 W2_Trait<POINTER_PRESSED>::Field(GdkEvent* eve)
130 {
return (reinterpret_cast<GdkEventMotion*>(eve)->state != 0);}
133 MAKE_EVENTTRAIT_1_OPEN(POINTER_MOVE,GdkEventMotion,VDKPointerEventFilter,\
137 W2_Trait<POINTER_MOVE>::Field(GdkEvent* eve)
151 class W2_Trait<MAPEVENT>
154 typedef GdkEventVisibility ge_type;
155 typedef VDKMapEventFilter T_vcmp;
157 static const char*
const signame;
158 static const T_vcmp EN1;
159 static const int GN1;
160 static const T_vcmp EN2;
161 static const int GN2;
162 static const T_vcmp EN3;
163 static const int GN3;
164 static int Field(GdkEvent* eve);