This is SpiderDrawDelegate.m in view mode; [Download] [Up]
#import "SpiderDrawDelegate.h" #import <Solitaire/CardSet.h> #import "localstrings.h" @implementation SpiderDrawDelegate - (void) setGameCardPileViews:(id *)theViews { int i; for (i = 0; i < 10; i++) { gameCardPiles[i] = theViews[i]; } } - (void)clickedCard:(Card*)aCard in:(CardPileView*)drawCardPileView; { CardPile* drawCardPile = [drawCardPileView cardPile]; Card* drawCard; int i; int numSpaces; int numCards; if (aCard) { numSpaces = 0; for (i = 0; i < 10; i++) { if ([[gameCardPiles[i] cardPile] cardCount] == 0) numSpaces++; } if (numSpaces > 0) { numCards = 0; for (i = 0; i < 10; i++) { numCards += [[gameCardPiles[i] cardPile] cardCount]; } if (numCards >= 10) { NSRunAlertPanel(LOCALIZED_GAME_NAME, LOCALIZED_FILL_SPACES, @"", nil, nil); return; } } [[drawCardPileView window] disableFlushWindow]; for (i = 0; i < 10; i++) { drawCard = [drawCardPile dealTopCard]; [drawCard flip]; [[gameCardPiles[i] cardPile] addCard:drawCard]; [drawCardPileView display]; [gameCardPiles[i] display]; } [[drawCardPileView window] enableFlushWindow]; [[drawCardPileView window] flushWindow]; } } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.