This is SlideProjectorInsp.m in view mode; [Download] [Up]
/*
* Copyright 1993 by Cub'x Systemes
*
* All Rights Reserved
*
* Permission to use, copy, and distribute this software and its
* documentation for the purpose of making new intuitiv'3d modules.
* This copyright notice must appears in all copies that you distribute.
* The name of Cub'x Systeme should not be used in advertising or publicity
* without specific, written prior permission.
* CUB'X SYSTEMES DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
* ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
* CUB'X SYSTEMES BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
* ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
* SOFTWARE.
*/
/*******************************************************************************
* *
* Project AdvancedObject *
* ---------------------- *
* *
* *
* File:SlideProjectorInsp.m *
* *
* *
* Creation date:Fri Jul 30 15:25:35 GMT+0200 1993 *
* *
* *
* Contents: An attribute inspector for the slide projector light *
* *
* *
*******************************************************************************/
#import <i3d/i3d_api.h>
#import "SlideProjectorInsp.h"
#import <appkit/Control.h>
#import "SlideProjector.h"
@implementation SlideProjectorInsp
/*******************************************************************************
* *
* Class methods *
* *
*******************************************************************************/
+ (const char*)nibName
{
return "SlideProjectorInsp";
}
/*******************************************************************************
* *
* Interface *
* *
*******************************************************************************
/*
* Target / action methods. Please see DistortedCubeInsp.nib
*
* Please notice macro usage to be real-time if needed.
*/
- fieldOfViewChange: sender
{
float v = [sender floatValue];
if( v < 0 )
v = 0;
else if( v > 360.0 )
v = 360.0;
[sender setFloatValue: v];
UPDATE_OBJECT_IF_NEED(setFieldOfView:, v);
return self;
}
- upXChange: sender
{
UPDATE_OBJECT_IF_NEED(setUpX:,[sender floatValue]);
return self;
}
- upYChange: sender
{
UPDATE_OBJECT_IF_NEED(setUpY:,[sender floatValue]);
return self;
}
- upZChange: sender
{
UPDATE_OBJECT_IF_NEED(setUpZ:,[sender floatValue]);
return self;
}
- imageFileChange: sender
{
UPDATE_OBJECT_IF_NEED(setSlideName:,[sender stringValue]);
return self;
}
- setImageFile: sender
{
id op = [CXOpenPanel new];
static char *suffixe[] = { "tiff", "tx", NULL };
[op allowMultipleFiles: NO];
[op chooseDirectories: NO];
[op setTitle:"Open image"];
if( [op runModalForTypes:suffixe] )
{
const char * s = [op filename];
[imageFilet setStringValue: s];
[self imageFileChange: imageFilet];
}
return self;
}
- shadowChange: sender
{
UPDATE_OBJECT_IF_NEED( setUseShadow: , [sender state] ? YES : NO );
return self;
}
- shadowDetailChange: sender
{
float v = [sender floatValue];
if( v < 1 )
v = 1;
else if( v > 100 )
v = 100;
[sender setFloatValue: v];
UPDATE_OBJECT_IF_NEED( setShadowDetail:, v);
return self;
}
/*******************************************************************************
* *
* Instance methods to be compatible with intuitiv'3d's inspector protocol. *
* *
*******************************************************************************/
- sendAllValueToObject: anObject
{
[anObject setFieldOfView: [fieldOfViewt floatValue]];
[anObject setUpX: [upXt floatValue]];
[anObject setUpY: [upYt floatValue]];
[anObject setUpZ: [upZt floatValue]];
[anObject setSlideName: [imageFilet stringValue]];
[anObject setUseShadow: [shadowc state] ? YES : NO];
[anObject setShadowDetail:[shadowDetailt floatValue]];
return self;
}
- receiveAllValueFromObject: anObject
{
[fieldOfViewt setFloatValue: [anObject fieldOfView]];
[upXt setFloatValue: [anObject upX]];
[upYt setFloatValue: [anObject upY]];
[upZt setFloatValue: [anObject upZ]];
[imageFilet setStringValue: [anObject slideName]];
[shadowc setState: [anObject useShadow] ? YES : NO];
[shadowDetailt setFloatValue: [anObject shadowDetail]];
return self;
}
- (const char*) title
{
return "Slide projector inspector";
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.