ftp.nice.ch/pub/next/games/card/NeXTmille.2.0.s.tar.gz#/NeXTmille-2.0a/CardHolder.h

This is CardHolder.h in view mode; [Download] [Up]

/* Generated by Interface Builder */

#import "TagView.h"
#import	"CardView.h"
#import	<objc/List.h>


// This is a base class for objects that hold cards.


@interface CardHolder:TagView
{

												// This flag indicates whether this object responds to the
												//	tracking highlight method.  
	BOOL	trackingEnabledFlag;
												// This flag determines whether the cards added to instances of 
												//	this class are to react to events.
	BOOL	reactiveCardsFlag;
												// The title of the view is drawn at an angle from
												//	the lower left corner to the upper right.
	char	*myTitle;
												// These flag controls whether a frame and highlighted frame 
												//	is drawn around the view.  In speed piles, etc the frame 
												//	is drawn.  When a stack view is used inside a distance pile,
												//	 for example, it isn't framed.
	BOOL	frameModeFlag,
			highlightModeFlag;
	
}

+ newFrame:( const NXRect * )frameRect;
- free;
												// These methods are intended to be overridden.  Their
												//	execution will cause an assertion.
												// These methods are ment to disconnect a card(s) from the
												//	subclass and send it to another view.  This results in a
												//	-addCard method send to the receipent.
- sendCard:( CardView * )aCard to:anObject;
- sendAllCardsTo:anObject;
												// These methods are intended to be overridden.  Their
												//	execution will cause an assertion.  Traditionally, these
												//	should be the methods used to add and remove cards from the
												//	holder--exceptions not withstanding.
- addCard:( CardView * )aCard :sender;
- removeCard:( CardView * )aCard :sender;	
												// These methods control the tracking of cards as they 
												//	enter and exit view area. The first 
												//	method enable/disable tracking.  The second method determines
												//	if the object is a tracking rectangle.  The last method is used
												//	to turn on/off the highlighted frame around the rectangle.
												// Frame highlighting is indicated by drawing a one pixel wide
												//	frame around the view.
												// An explination of why tracking is done in this fashion.
												//		Originally I tried to use tracking rects and allow the objects
												//	to respond accordingly when a card was dragged into their view.
												//	One problem.  The Window Manager will only send the mouseEntered:
												//	and mouseExited: events to a tracking rect IF they are not
												//	obscured (one sentence somewhere in the concepts book).  
												//		Since card dragging is implemented by moving a window 
												//	underneath the cursor the tracking rects would not get the
												//	events from the WM.
- setTrackingEnabled:( BOOL )flag;
- ( BOOL )isTrackingEnabled;
- trackingHighlighted:( BOOL )flag;
												// The method determines wheather cards will be allowed to
												//	respond to events once they are added to the stack.  The default
												//	is NO.
												// Cards that are allowed to react typically do so since they are
												//	allowed to be grabbed and dragged from an instance of this class.
- setCardsEnabled:( BOOL )flag;
												// This method is used when cards are disconnected from their
												//	super views and connected to another views.  Card holders
												//	can be subviews of other card holders.  When removing or
												//	adding cards the actions must start with the base card holder
												//	view.  
												// This method searches the view hierarchy searching for the last
												//	card holder in the path it stops at the last one found (which
												//	may be itself) and returns that view.  Discontinuities are
												//	ignored.
- baseHolder;
												// YES causes a black 2 pixel frame to be drawn around the inside of
												//	the view.  The default is NO.
- setFrameMode:( BOOL )flag;
												// Display a title for this view.  Titles are displayed in the view
												//	but is obscured if any cards are on the stack.
- setTitle:( const char * )aTitle;
												// This method returns to the calling view wheather it is
												//	visible within its holder.  
												// It is intended for this method to be overridden in a subclass.
												//	The default value returned is YES.  Subclasses of this
												//	object must make their own determination.
												// Cards call this method to determine if they should draw 
												//	themselves.  In stacks with a large amount of cards, the 
												//	draw pile for example, a change in the holder view causes all
												//	of the cards to redraw wheather obscured or not.  This becomes
												//	a major cpu hog.
- ( BOOL )subviewVisible:aView;
												// These methods are intended to be overridden
												//	by the subclasses.  They are used to obtains
												//	information about the cards in the stack.
- ( List * )holderList;
- ( int )numCardTypeInHolder:( int )aCardTag;
- ( int )numSafetiesInHolder;

- drawSelf:( NXRect * )rects :( int )rectCount;


@end

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