This is MiscTabMatrix.m in view mode; [Download] [Up]
// Suppress compiler warning about rcsid being unused, yet prevent assembler
// code for this function from being produced.
inline extern const char *suppressCompilerWarning(void)
{
static const char *rcsid = "$Id$ cc: "__FILE__" "__DATE__" "__TIME__;
return rcsid;
}
//
// ------------------ MiscTabMatrix Class Implementation ----------------------
//
// MiscTabMatrix is designed to be used with an object that knows how to
// switch its subviews based on the MiscTabMatrix selection. Set the
// MiscTabMatrix target to the object that knows how to switch its subviews
// using an appropriate action.
// To use the behavior of a NSMatrix in which the matrix or cell action
// that causes the target's view to switch is sent on the mouse up event or
// when the left or right arrow key is pressed, set useMatrixBehavior to YES.
// To mimic the behavior of the StackView in IB's Document Window in which
// the switchView's view is switched when the MiscTabMatrix' selectedCell
// changes (mouse down or mouse dragged), set useMatrixBehavior to NO.
//
// Written by Art Isbell (derived from UITabActionCell by Bill Edney,
// Sean Hill, Mark Onyschuk).
// Copyright 1996 by Art Isbell.
// Version 1.0. All rights reserved.
//
// This notice may not be removed from this source code.
//
// This object is included in the MiscKit by permission from the author
// and its use is governed by the MiscKit license, found in the file
// "License.rtf" in the MiscKit distribution. Please refer to that file
// for a list of all applicable permissions and restrictions.
//
// ----------------------------------------------------------------------------
//
// ----------------------------- Header Files ---------------------------------
#ifndef NOMISC
#import <misckit/MiscTabMatrix.h>
#else NOMISC
#import "MiscTabMatrix.h"
#endif NOMISC
// ---------------- Typedef, Struct, and Union Declarations -------------------
// --------------------- Constant and Enum Definitions ------------------------
// ------------------------- Function Declarations ----------------------------
@interface MiscTabMatrix(Private)
// ---------------------- Private Method Declarations -------------------------
@end
@implementation MiscTabMatrix
// ---------------------- Factory Method Definitions --------------------------
// ---------------- Overridden Instance Method Definitions --------------------
- (void)highlightCell:(BOOL)aFlag atRow:(int)aRow column:(int)aColumn
{
id targetL = [self target];
[super highlightCell:aFlag atRow:aRow column:aColumn];
// If target requires standard NSMatrix behavior, then the action will
// switch the view upon mouse up, and do nothing upon mouse entered or
// mouse down. However, if target doesn't require standard NSMatrix
// behavior, mimic behavior of IB's StackView which switches its view upon
// mouse entered or mouse down and then sends its action, if any, upon
// mouse up.
if ([targetL conformsToProtocol:@protocol(MiscTabSwitchViews)] &&
![targetL useMatrixBehavior])
{
unsigned viewNumberL = [[self cells] indexOfObjectIdenticalTo:[self
selectedCell]];
[targetL setViewNumber:viewNumberL];
}
}
// -------------------- New Instance Method Definitions -----------------------
- (void)awakeFromNib
{
// Initialize target.
[[self target] performSelector:[self action] withObject:self];
}
// ----------------- Delegate Instance Method Definitions ---------------------
@end
@implementation MiscTabMatrix(Private)
// ---------------------- Private Method Definitions --------------------------
@end
// ------------------------- Function Definitions -----------------------------
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.