ftp.nice.ch/Attic/openStep/developer/resources/MiscKit.2.0.5.s.gnutar.gz#/MiscKit2/Temp/TabbedViews/MiscTabSwitchView/MiscSwitchView.h

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

// $Id$

//
// -------------------- MiscSwitchView Class Interface ------------------------
//
// Yet another view that supports a switchable subview.  Features a selection
// of border styles including a border suitable for using the MiscTabCell to
// create a file folder interface.  Supports various alignments of the
// switchable subview within MiscSwitchView's frame.
//
// Written by Art Isbell (inspired by TTools' SwitchView and UHSelectView).
// 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 ---------------------------------

#import <AppKit/NSView.h>

#ifndef NOMISC
#import <misckit/MiscTabMatrix.h>

#else NOMISC

#import "MiscTabMatrix.h"
#endif NOMISC

// ---------------- Typedef, Struct, and Union Declarations -------------------

// Defining the various positions of the view
typedef enum
{
    MiscTopLeft = 0,
    MiscTopCenter,
    MiscTopRight,
    MiscLeft,
    MiscCenter,
    MiscRight,
    MiscBottomLeft,
    MiscBottomCenter,
    MiscBottomRight
} MiscPosition;

// Supported border types
typedef enum
{
    MiscNone = 0,
    MiscLine,
    MiscBezel,
    MiscGroove,
    MiscButton,
    MiscTab
} MiscBorderType;

// --------------------- Constant and Enum Definitions ------------------------

extern int MiscNoView;

// Notifications (through the default notification center)
extern NSString *MiscViewWillSwitchNotification;
extern NSString *MiscViewDidSwitchNotification;
extern NSString *MiscNextViewNumberKey;

@interface MiscSwitchView:NSView <NSCoding, MiscTabSwitchViews>
{
// -------------------- Instance Variable Declarations ------------------------
@private

    int _viewNumber;		// current view number
    BOOL _useMatrixBehavior;	// use Matrix target/action behavior
    MiscPosition _position;	// view position
    MiscBorderType _borderType;	// type of selectview border
    NSMutableArray *_views;	// list of views to be shown
    NSView *_originalSuperview;	// current view's original superview
    NSRect _originalFrame;	// current view's original frame

@protected

    IBOutlet id delegate;

@public
}
// ---------------------- Factory Method Declarations -------------------------

+ (void)initialize;

// ---------------- Overridden Instance Method Declarations -------------------

- (id)initWithFrame:(NSRect)frameRect;

// NSCoding protocol
- (id)initWithCoder:(NSCoder *)aDecoder;
- (void)encodeWithCoder:(NSCoder *)aCoder;

- (void)dealloc;
- (void)drawRect:(NSRect)aRect;

// ------------------- New Instance Method Declarations -----------------------

- (void)setBorderType:(MiscBorderType)aType;
- (MiscBorderType)borderType;
- (void)setDelegate:(id)aDelegate;
- (void)setPosition:(MiscPosition)aPosition;
- (MiscPosition)position;
- (void)setUseMatrixBehavior:(BOOL)aFlag;

// MiscTabSwitchViews protocol
- (BOOL)useMatrixBehavior;
- (void)setViewNumber:(int)aViewNumber;

- (int)viewNumber;
- (NSArray *)views;

- (IBAction)takeViewNumberFrom:(id)aSender;
- (IBAction)takeTagFrom:(id)aSender;
- (IBAction)takeIntValueFrom:(id)aSender;
- (IBAction)takeSelectedRowFrom:(id)aSender;
- (IBAction)takeSelectedColumnFrom:(id)aSender;

- (unsigned)count;
- (NSView *)currentView;
- (NSView *)viewAtIndex:(unsigned)anIndex;
- (unsigned)indexOfView:(NSView *)aView;
- (void)addView:(NSView *)aView;
- (void)addView:(NSView *)aView atIndex:(unsigned)anIndex;
- (void)removeView:(NSView *)aView;
- (void)removeViewAtIndex:(unsigned)anIndex;
- (SEL)valueSelectorForSwitchSource:aSender;
- (void)subviewFrameChanged:(NSNotification *)aNotification;

// ----------------- Delegate Instance Method Declarations --------------------

@end

// Methods implemented by the delegate
@interface NSObject(Delegate)

// Invoked before and after a view has been switched and displayed.
- (void)viewWillSwitch:(NSNotification *)aNotification;
- (void)viewDidSwitch:(NSNotification *)aNotification;

@end

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