IN_EXCLUDE
IN_EXCLUDE [id] { [Common flags] [NUM_FLAGS n;] [INIT_STATE s;] [IMAGE_n_ON|OFF id;] [ACCEPT idlist;] [REFUSE idlist;] }
Represents
InExcludeData
objects in a container, rendered as a drop area for objects.
Specify what kinds of nodes are accepted and/or refused for this field with
ACCEPT
and/or
REFUSE
.
Optionally the dropped objects get up to 32 icons next to them, each with an on/off state.
Further specify what objects are accepted by listening for MSG_DESCRIPTION_CHECKDRAGANDDROP in NodeData::Message() and returning true of false depending on the DescriptionCheckDragAndDrop data:
SplineRailObject::Message(GeListNode *node, Int32 type, void *data) { ... if (type== MSG_DESCRIPTION_CHECKDRAGANDDROP ) { DescriptionCheckDragAndDrop *dcu = static_cast< DescriptionCheckDragAndDrop * > (data); switch (dcu->id[0].id) { case SPLINERAILOBJECT_SPLINE1 : case SPLINERAILOBJECT_SPLINE2 : case SPLINERAILOBJECT_SPLINE3 : case SPLINERAILOBJECT_SPLINE4 : dcu->result = dcu->element->GetInfo() & OBJECT_SPLINE; return true ; } } }
NUM_FLAGS n; | The number of icons, between 0 and 32 . |
INIT_STATE s; | The initial state of the icons: icon(n) == s & (1 << (n-1)) . |
IMAGE_n_ON|OFF id; | The icon IDs for each flag's icons. |
ACCEPT idlist; | The node types to accept, separated with semi-colons. |
REFUSE idlist; | The node types to refuse, separated with semi-colons. |
IN_EXCLUDE MY_INEXCLUDE_LIST { NUM_FLAGS 4; INIT_STATE 8; // IMAGE_04 ON, the rest OFF IMAGE_01_ON 1009313; IMAGE_02_ON 1009314; IMAGE_03_ON 1009315; IMAGE_04_ON 1009316; IMAGE_01_OFF 1009317; IMAGE_02_OFF 1009318; IMAGE_03_OFF 1009319; IMAGE_04_OFF 1009320; ACCEPT { Obase ; }; }