ftp.nice.ch/Attic/openStep/games/Solitaire.3.1.s.tgz#/Solitaire.3.1/Documentation/CardSet/CardPileView.rtf

This is CardPileView.rtf in view mode; [Download] [Up]

paperh18648 margl-907 margr0 margt0 margb0fi0 ri0 ql sb0 f1 fs24 Copyright f3 'e3f1  1998 All Rights Reserved.  i i0 
s5 li2116 fi0 ri1007 ql f0 fs56 b CardPileViewb0 
{fs16 




}s17 li4888 fi-2771 ri1007 ql tx4888 f0 fs28 b Inherits From:b0 f1 fs28 	NSView
s17 li4888 fi-2771 ri1007 ql tx4888 f0 fs28 b Declared In:b0 f1 fs28 	CardPileView.h
s13 li1360 fi0 ri1007 ql fs16 



f0 fs36 b Class Descriptionb0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Instances of this class provide a visual representation of a pile of cards.  CardPileView uses CardPile as the underlying representation, but adds a visual aspect and user interaction.  Users can click on CardPileViews and drag cards from one view to another.  The decisions on when this is allowed and what happens as a result are left to the CardPileView's delegate.
fs16 
fs28 Dragging cards between applications is disabled by default.  It can be enabled by subclassing and overriding b draggingSourceOperationMaskForLocal:b0 .  
fs16 
fs28 b Notifying the CardPileView Object's Delegateb0 
fs16 
fs28 The logic of a card game is primarily implemented through the delegate mechanism.  The delegate has the option of implementing the following methods:
fs16 
fs28 clickedCard:in: doubleClickedCard:in: draggedPile:from: canAcceptPile:from:in: acceptPile:in: removedPile:from: getOffset::
fs16 
fs28 Knowing the sequence in which these delegate messages are sent is critical in using the CardSet objects to create card games.  If there is no delegate (or the delegate does not implement the above methods) the cards on a pile may not be dragged, flipped, or have cards dropped on them.
fs16 
fs28 When the user single clicks on a CardPileView, the message b clickedCard:b0 i aCardi0  b in:b0 i aCardPileViewi0  is sent to the delegate.  Note that the parameter i aCardi0  will be b nilb0  if the pile was empty, or if the user clicked in an area of the pile where there is no Card displayed.  This message is sent even if the user keeps holding down the mouse button (ie.  dragging) after clicking.
fs16 
fs28 If the user holds down the mouse button, and is pointing at a Card, the delegate receives the message b draggedPile:b0 i aCardPilei0  b from:b0 i aCardPileViewi0 .  i aCardPilei0  is a temporary pile containing the Card that the user clicked on.  The delegate may add additional cards to this pile, if desired.  This would typically be done in games where the user can click on a card part-way down a deck, and drag that card and all the cards above it.  The delegate is responsible for adding the cards above the clicked card to i aCardPilei0 .
fs16 
fs28 If b draggedPile:from:b0  returns YES, CardPileView performs the dragging animation with the cards on the temporary CardPile.  If the user releases the dragged pile on any CardPileView (other than the source pile), that CardPileView's delegate receives the b canAcceptPile:b0 i dropPilei0  b from:b0 i senderi0  b in:b0 i cardPileViewi0  message, where i dropPilei0  is the pile that wants to be dropped, i cardPileViewi0  is the pile receiving the cards, and i senderi0  is the CardPileView that the cards were dragged from.  If this method returns NO, the dragged cards return to the source pile.
fs16 
fs28 If a CardPileView agrees to accept some dragged cards, they are automatically added to that pile.  Then the delegate receives the b acceptPile:b0 i dropPilei0  b in:b0 i b selfb0 i0  message, which lets the pile know which cards were added to it.  Note that the dropped cards are, at this point, on both the original pile (where the cards were dragged from), and on the pile that they have been dropped on.
fs16 
fs28 The cards are now removed from the original CardPileView, and its delegate receives the b removePile:b0 i aCardPilei0  b from:b0 i aCardPileViewi0  message.
fs16 
fs28 The b getOffset::b0  message allows the delegate to control the amount of stagger that the deck has when it draws. 
s13 li1360 fi0 ri1007 ql fs16 



f0 fs36 b Symbolic Constantsb0 
{fs16 
}tx2116 tx6148 tx6794 tx7440 tx8086 tx9378li6148 fi-4421 fc0 cf0 f0 fs20 b SYNOPSISb0 
s11 li6148 fi-4031 ri1007 ql tx7440 tx8086 tx8732 tx9378 tx10024 tx10670f1 fs28  CS_CARDWIDTH0 	107
 CS_CARDHEIGHT0 	168
 CS_SMALLCARDWIDTH0 	80
 CS_SMALLCARDHEIGHT0 	126
 CS_SHOWALL0 	2147483647
 CS_SHOWALL0 	2147483647
 CS_CLICKED0 	(1 << 0)
 CS_DRAGGED0 	(1 << 1)
 CS_CANACCEPT0 	(1 << 2)
 CS_ACCEPT0 	(1 << 3)
 CS_REMOVED0 	(1 << 4)
 CS_GETOFFSET0 	(1 << 5)
 CS_DOUBLECLICKED0 	(1 << 6)
s13 li1360 fi0 ri1007 ql fs16 



f0 fs36 b Instance Variablesb0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 float xOffset, b yOffsetb0 ;
CardPile* b cardPileb0 ;
CardPile* b dragCardPileb0 ;
BOOL b useDragCardPileb0 ;
b idb0  b delegateb0 ;
int b delegateFlagsb0 ;
int b tagb0 ;
NSColor* b backgroundColorb0 ;
float b backgroundGrayb0 ;
BOOL b drawOutlineb0 ;
int b maxVisibleCardsb0 ;
BOOL b coversOthersb0 ;
CardPileView* b coverPile1b0 ;
CardPileView* b coverPile2b0 ;
CardPileView* b coverPile3b0 ;
CardPileView* b coverPile4b0 ;
NSBitmapImageRep* b beneathb0 ;
CardPileView* b currentCardViewb0 ; 
s11 li6148 fi-4031 ri1007 ql tx6148 f1 fs28 yOffset	The current drawing offset between cards.
s11 li6148 fi-4031 ri1007 ql tx6148 f1 fs28 cardPile	The CardPile holding all the cards.
s11 li6148 fi-4031 ri1007 ql tx6148 f1 fs28 dragCardPile	Used internally for dragging cards.
s11 li6148 fi-4031 ri1007 ql tx6148 f1 fs28 useDragCardPile	Used internally for dragging cards.
s11 li6148 fi-4031 ri1007 ql tx6148 f1 fs28 delegate	The object's delegate.
s11 li6148 fi-4031 ri1007 ql tx6148 f1 fs28 delegateFlags	Used internally.
s11 li6148 fi-4031 ri1007 ql tx6148 f1 fs28 tag	The pile's tag.
s11 li6148 fi-4031 ri1007 ql tx6148 f1 fs28 backgroundColor	Background color.
s11 li6148 fi-4031 ri1007 ql tx6148 f1 fs28 backgroundGray	I'll be removing this.
s11 li6148 fi-4031 ri1007 ql tx6148 f1 fs28 drawOutline	Do we draw an outline around our view?
s11 li6148 fi-4031 ri1007 ql tx6148 f1 fs28 maxVisibleCards	The number of overlapping cards you'll see.
s11 li6148 fi-4031 ri1007 ql tx6148 f1 fs28 coversOthers	YES if this pile overlaps other piles.
s11 li6148 fi-4031 ri1007 ql tx6148 f1 fs28 coverPile1	A CardPileView overlapped by this pile.
s11 li6148 fi-4031 ri1007 ql tx6148 f1 fs28 coverPile2	A CardPileView overlapped by this pile.
s11 li6148 fi-4031 ri1007 ql tx6148 f1 fs28 coverPile3	A CardPileView overlapped by this pile.
s11 li6148 fi-4031 ri1007 ql tx6148 f1 fs28 coverPile4	A CardPileView overlapped by this pile.
s11 li6148 fi-4031 ri1007 ql tx6148 f1 fs28 beneath	Used internally.
s11 li6148 fi-4031 ri1007 ql tx6148 f1 fs28 currentCardView	No description.
s13 li1360 fi0 ri1007 ql fs16 



f0 fs36 b Method Typesb0 
{fs16 
}s11 li6148 fi-4031 ri1007 ql tx6148 f1 fs28 Class initialization
	+ initialize
Creating/releasing
	{f3 -} initWithFrame:
	{f3 -} dealloc
Our visible cards
	{f3 -} setMaxVisibleCards:
	{f3 -} maxVisibleCards
Accessors
	{f3 -} setDelegate:
	{f3 -} delegate
	{f3 -} cardPile
	{f3 -} currentCardView
	{f3 -} setCurrentCardView:
Display attributes
	{f3 -} backgroundColor
	{f3 -} setBackgroundColor:
	{f3 -} setCardSize:
	{f3 -} willDrawOutline
	{f3 -} setDrawOutline:
	{f3 -} drawRect:
Overlapping piles
	{f3 -} pileCovered:
	{f3 -} pileCoveredBy:
	{f3 -} setCoversOthers:
	{f3 -} setCoverPile:to:
	{f3 -} resetBacking:
Responder methods
	{f3 -} mouseDown:
Dragging methods
	{f3 -} draggingSourceOperationMaskForLocal:
	{f3 -} draggedImage:beganAt:
	{f3 -} draggedImage:endedAt:deposited:
	{f3 -} draggingEntered:
	{f3 -} prepareForDragOperation:
	{f3 -} performDragOperation:
Utility
	{f3 -} findCardAtPoint:
	{f3 -} getRectForCard:
	{f3 -} drawDragCard:
	{f3 -} setTag:
	{f3 -} tag
s13 li1360 fi0 ri1007 ql fs16 



f0 fs36 b Class Methodsb0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b initializeb0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28 + (void)b initializeb0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Initializes our class object.  We set our CardPileBPBoardType. 
s13 li1360 fi0 ri1007 ql fs16 



f0 fs36 b Instance Methodsb0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b backgroundColorb0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (NSColor *)b backgroundColorb0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Returns the current background color. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b cardPileb0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (CardPile*)b cardPileb0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Returns our CardPile instance that holds all the cards we're displaying. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b currentCardViewb0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (CardPileView *)b currentCardViewb0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 No method description. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b deallocb0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (void)b deallocb0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Frees our resources. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b delegateb0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (id)b delegateb0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Returns our current delegate.  If we don't have one then b nilb0  is returned. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b draggedImage:beganAt:b0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (void)b draggedImageb0 b :b0 (NSImage *)i imagei0 
	b  beganAtb0 b :b0 (NSPoint)i screenPointi0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 After the dragged i imagei0  has been displayed, redraw ourselves without the cards being dragged. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b draggedImage:endedAt:deposited:b0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (void)b draggedImageb0 b :b0 (NSImage *)i imagei0 
	b  endedAtb0 b :b0 (NSPoint)i screenPointi0 
	b  depositedb0 b :b0 (BOOL)i flagi0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 After the cards have been dragged successfully, remove them from the pile and notify our delegate, if appropriate.  Redraw ourselves whether cards were removed or not. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b draggingEntered:b0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (unsigned int)b draggingEnteredb0 b :b0 i senderi0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Ask our delegate if the cards dragged in can be dropped. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b draggingSourceOperationMaskForLocal:b0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (unsigned int)b draggingSourceOperationMaskForLocalb0 b :b0 (BOOL)i flagi0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Let the dragging mechanism know that only generic dragging is available, | and then only within the same application. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b drawDragCard:b0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (void)b drawDragCardb0 b :b0 i senderi0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 No method description. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b drawRect:b0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (void)b drawRectb0 b :b0 (NSRect)i theRecti0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Draws a visual representation of our CardPile.  Use the b displayb0  message, rather than calling this method directly.  You must call b displayb0  (or preferably b displayIfNeededb0  ) after any change to a CardPileView. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b findCardAtPoint:b0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (Card*)b findCardAtPointb0 b :b0 (NSPoint)i thePointi0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Returns the Card object at i thePointi0 , or b nilb0  if there is no card at that location. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b getRectForCard:b0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (NSRect)b getRectForCardb0 b :b0 (Card*)i aCardi0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Returns an NSRect for the bounding rectangle of i aCardi0 .  If i aCardi0  isn't in our CardPile then the returned NSRect will be all zeros. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b initWithFrame:b0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (id)b initWithFrameb0 b :b0 (NSRect)i frameRecti0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Creates an empty CardPile object to be managed by the CardPileView.  If theFrame is wider and/or taller than the size required by a single Card object, then the pile will automatically be drawn with an offset in that direction.  Returns b selfb0 . 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b maxVisibleCardsb0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (int)b maxVisibleCardsb0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Returns the maximum number of visible cards at any one time.  The default is CS_SHOWALL. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b mouseDown:b0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (void)b mouseDownb0 b :b0 (NSEvent *)i theEventi0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Used internally to handle card dragging and clicking. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b performDragOperation:b0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (BOOL)b performDragOperationb0 b :b0 i senderi0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Returns YES. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b pileCovered:b0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (BOOL)b pileCoveredb0 b :b0 i senderi0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Returns YES if any of the CardPileViews connected to coverPile1, coverPile2, coverPile3, or coverPile4 contain cards.  Returns NO if these b idb0 's are b nilb0 , or if the covering piles are empty. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b pileCoveredBy:b0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (BOOL)b pileCoveredByb0 b :b0 (CardPileView*)i aCardPileViewi0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Returns YES if aCarePileView is non-empty (ie.  contains cards) and covers this CardPileView (ie.  is connected to coverPile1, coverPile2, coverPile3, or coverPile4). 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b prepareForDragOperation:b0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (BOOL)b prepareForDragOperationb0 b :b0 i senderi0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Add cards dropped on our pile to the top of the pile and notify our delegate, if possible.  Redisplay the pile afterwards in any case. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b resetBacking:b0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (void)b resetBackingb0 b :b0 i senderi0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Discards the current backing, and reloads it when the pile is redisplayed.  Only relevant if b setCoversOthers:b0  is set to YES. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b setBackgroundColor:b0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (void)b setBackgroundColorb0 b :b0 (NSColor *)i aColori0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Returns the current background color. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b setCardSize:b0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (void)b setCardSizeb0 b :b0 (CardSize)i aSizei0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Sets the size of cards displayed in this pile.  
fs16 
fs28 b Constant Descriptionb0  CS_SMALL Small cards CS_LARGE Big cards 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b setCoverPile:to:b0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (void)b setCoverPileb0 b :b0 (int)i offseti0  b  tob0 b :b0 (CardPileView*)i aPilei0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Set the cover pile indicated by i offseti0  (which must be in the range 1 to 4) to i aPilei0 . 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b setCoversOthers:b0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (void)b setCoversOthersb0 b :b0 (BOOL)i doesCoveri0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 If this flag is set to YES, the pile will cache and restore the area under the pile, rather that just drawing a rectangle in the current background color, when the pile is redrawn.  Used when one card pile overlaps another. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b setCurrentCardView:b0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (void)b setCurrentCardViewb0 b :b0 (CardPileView *)i theViewi0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 No method description. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b setDelegate:b0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (void)b setDelegateb0 b :b0 (id)i anObjecti0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Sets our delegate. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b setDrawOutline:b0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (void)b setDrawOutlineb0 b :b0 (BOOL)i aFlagi0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Sets whether we'll draw a border around ourselves.  The default is YES. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b setMaxVisibleCards:b0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (void)b setMaxVisibleCardsb0 b :b0 (int)i cardsVisiblei0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Sets the maximum number of cards visible at any one time.  An example of this would be when you are playing 3 card Klondike and you can see the edges of three cards at one time.  The default is CS_SHOWALL. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b setTag:b0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (void)b setTagb0 b :b0 (int)i theTagi0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Sets our tag. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b tagb0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (int)b tagb0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Returns our tag. 
pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b willDrawOutlineb0 
fs28 {fs8 
}tx3240 li2100 fi-760 li3240f1 fs28  (BOOL)b willDrawOutlineb0 
{fs16 
}pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Returns YES if the CardPileView will draw a border, NO otherwise. 

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.