This is DiscardPileDelegate.m in view mode; [Download] [Up]
/* indent:4 tabsize:8 font:fixed-width */ #import "DiscardPileDelegate.h" #import "SuitPileDelegate.h" //#import "../Solitaire/Solitaire.h" #import "Klondike.h" @implementation DiscardPileDelegate - (void) setDrawCardCount:(int)theCount { maxIndex = theCount; } - (void) setSuitCardPileViews:(id [])theViews { int i; for (i=0; i<4; i++) { suitCardPileViews[i] = *(theViews + i); } } - (void) doubleClickedCard:(Card*)aCard in:(CardPileView*)aCardPileView { int i; Card* tempCard; CardPile* cardPile = [aCardPileView cardPile]; if ((aCard == [cardPile topCard] ) && (![aCard isFaceUp])) { [aCard flip]; [aCardPileView display]; } else if (aCard == [cardPile topCard]) { for (i=0;i<4;i++) { [[suitCardPileViews[i] delegate] setDoubleClickCheck]; if ([[suitCardPileViews[i] delegate] canAcceptPile:cardPile from:aCardPileView in:suitCardPileViews[i]]) { [[suitCardPileViews[i] cardPile] addCard:[cardPile topCard]]; [cardPile removeCard:[cardPile topCard]]; if (tempCard = [recycleCardPile dealTopCard]) { [cardPile insertCard:tempCard at:CS_BOTTOM]; } [aCardPileView display]; [suitCardPileViews[i] display]; [[Klondike sharedInstance] checkForWin]; break; } } } } - (BOOL) draggedPile:(CardPile*)aCardPile from:(CardPileView*)discardCardPileView { CardPile* discardCardPile = [discardCardPileView cardPile]; if (([aCardPile topCard]) == ([discardCardPile topCard])) { return YES; } return NO; } - (void) removedPile:(CardPile*)aCardPile from:(CardPileView*)discardCardPileView { CardPile* discardCardPile = [discardCardPileView cardPile]; Card* aCard; if (maxIndex == 1) return; if ([recycleCardPile cardCount] != 0) { aCard = [recycleCardPile dealTopCard]; [discardCardPile insertCard:aCard at:CS_BOTTOM]; [discardCardPileView display]; } } - (void) getOffset:(float*)xOffset :(float*)yOffset forSize:(CardSize)aSize { if (aSize == CS_SMALL) { if (maxIndex == 1) *xOffset = 0.5; else *xOffset = 15.0; } else { if (maxIndex == 1) *xOffset = 0.5; else *xOffset = 20.0; } *yOffset = 0.0; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.