A CardStack object is a stack of Card objects. Every Card object is contained within a CardStack object.
Properties:
containerId: a unique integer identifying a container of Card objects. If zero, the CardStack object is contained in a RowGrid object.
cards: a list of Card objects
dimensions: width, height (in pixels)
position: left, top (in pixels)
offsets: leftOffset, topOffset (in pixels); distance between adjacent Card objects
margins: leftMargin, topMargin (in pixels); distance from upper left corner of circle/square to upper left corner of cell
colors: backgroundColor, borderColor, selectedColor, selectedForegroundColor
font: font of Card objects containing printable characters
hasBorder: if true, a rectangular one-pixel wide border is displayed, marking the border of the cell
destList: a list of containerId values indicating valid destinations that can accept drag operations originating with this CardStack object
clickable: if true, and length of destList equals one, then user need only click on this CardStack object, sending its Card object(s) to destination container object
canDrag: if false, user cannot drag Card objects away from this CardStack object
canDrop: if false, user cannot drop Card objects onto this CardStack object
infinite: if true, top Card object is duplicated rather than moved when user drags Card object away from this CardStack object
random: if true, when user drags Card object away from this CardStack, the Card object is selected at random from all Card objects contained in this CardStack. If both random and infinite are true, the selected Card object is duplicated/copied rather than moved.
visible: if false, CardStack is not visible to user
multiDrag: if true, user can drag more than one Card object away from this CardStack at once. If false, user can only drag away the top Card object.
isDefault: if true, all properties of this CardStack are set equal to the properties of the defStack object of the parent RowGrid object.