This is ESD.m in view mode; [Download] [Up]
//
// Copyright 1993 (c) Todd Anthony Nathan. All Rights Reserved.
//
#import "ESD.h"
#import "ESDConstants.h"
#import <appkit/Application.h>
#import <drivers/event_status_driver.h>
/*
* Define the list of commands and functions this XModule implements
*/
const char *handlerList[] = {
// Keyboard Functions
"setkeyrepeatinterval",
"KEYREPEATINTERVAL",
"setkeyrepeatthreshold",
"KEYREPEATTHRESHOLD",
"setkeymapping",
"KEYMAPPINGLENGTH",
"GETKEYMAPPING",
"resetkeyboard",
// Mouse Functions
"setclicktime",
"CLICKTIME",
"setclickspace",
"GETCLICKSPACE",
"setmousescaling",
"GETMOUSESCALING",
"enablemousebutton",
"MOUSEBUTTONENABLED",
"resetmouse",
// Screen Functions
"setautodimthreshold",
"AUTODIMTHRESHOLD",
"AUTODIMTIME",
"setautodimstate",
"AUTODIMSTATE",
"setscreenbrightness",
"SCREENBRIGHTNESS",
"setautodimbrightness",
"AUTODIMBRIGHTNESS",
// Volume Functions
"setcurrentvolume",
"CURRENTVOLUME",
// Wait Cursor Functions
"setwaitcursorthreshold",
"WAITCURSORTHRESHOLD",
"setwaitcursorsustain",
"WAITCURSORSUSTAIN",
"setwaitcursorframeinterval",
"WAITCURSORFRAMEINTERVAL",
"ESD_VERSION",
NULL
};
/*
* Keep track of the mach header where we get loaded
* so we can use it to load other stuff later (such as
* nib files)
* Note: only needed in XModules that load nib files, etc.
*/
static struct mach_header *loadHeader = NULL;
static NXEventHandle ourEventStatusHandle;
@implementation EventStatusDriver : XModule
// ---------------------------------------------------------------
// Creating and Initializing the XModule instance
// ---------------------------------------------------------------
- init
{
[super init];
// Do your stuff here...
ourEventStatusHandle = NXOpenEventStatus();
return ( self );
}
- free
{
// Do your stuff here...
return ( [super free] );
}
// ---------------------------------------------------------------
// Standard XModule methods
// ---------------------------------------------------------------
+ (const char *)moduleName
{
return ( "EventStatusDriver" );
}
+ (const char **)xCmdsAndFcns
{
return ( handlerList );
}
- prepareToExecuteHandlers
{
// [self loadInterfaceData];
return ( self );
}
- executeHandler:(NXAtom)handlerName
{
// Keyboard Functions
if (!strcmp(handlerName, "setkeyrepeatinterval")) {
return ( [ self ESD_setkeyrepeatinterval ] );
} else if (!strcmp(handlerName, "KEYREPEATINTERVAL")) {
return ( [ self ESD_KEYREPEATINTERVAL ] );
} else if (!strcmp(handlerName, "setkeyrepeatthreshold")) {
return ( [ self ESD_setkeyrepeatthreshold ] );
} else if (!strcmp(handlerName, "KEYREPEATTHRESHOLD")) {
return ( [ self ESD_KEYREPEATTHRESHOLD ] );
} else if (!strcmp(handlerName, "setkeymapping")) {
return ( [ self ESD_setkeymapping ] );
} else if (!strcmp(handlerName, "KEYMAPPINGLENGTH")) {
return ( [ self ESD_KEYMAPPINGLENGTH ] );
} else if (!strcmp(handlerName, "GETKEYMAPPING")) {
return ( [ self ESD_GETKEYMAPPING ] );
} else if (!strcmp(handlerName, "resetkeyboard")) {
return ( [ self ESD_resetkeyboard ] );
// Mouse Functions
} else if (!strcmp(handlerName, "setclicktime")) {
return ( [ self ESD_setclicktime ] );
} else if (!strcmp(handlerName, "CLICKTIME")) {
return ( [ self ESD_CLICKTIME ] );
} else if (!strcmp(handlerName, "setclickspace")) {
return ( [ self ESD_setclickspace ] );
} else if (!strcmp(handlerName, "GETCLICKSPACE")) {
return ( [ self ESD_GETCLICKSPACE ] );
} else if (!strcmp(handlerName, "setmousescaling")) {
return ( [ self ESD_setmousescaling ] );
} else if (!strcmp(handlerName, "GETMOUSESCALING")) {
return ( [ self ESD_GETMOUSESCALING ] );
} else if (!strcmp(handlerName, "enablemousebutton")) {
return ( [ self ESD_enablemousebutton ] );
} else if (!strcmp(handlerName, "MOUSEBUTTONENABLED")) {
return ( [ self ESD_MOUSEBUTTONENABLED ] );
} else if (!strcmp(handlerName, "resetmouse")) {
return ( [ self ESD_resetmouse ] );
// Screen Functions
} else if (!strcmp(handlerName, "setautodimthreshold")) {
return ( [ self ESD_setautodimthreshold ] );
} else if (!strcmp(handlerName, "AUTODIMTHRESHOLD")) {
return ( [ self ESD_AUTODIMTHRESHOLD ] );
} else if (!strcmp(handlerName, "AUTODIMTIME")) {
return ( [ self ESD_AUTODIMTIME ] );
} else if (!strcmp(handlerName, "setautodimstate")) {
return ( [ self ESD_setautodimstate ] );
} else if (!strcmp(handlerName, "AUTODIMSTATE")) {
return ( [ self ESD_AUTODIMSTATE ] );
} else if (!strcmp(handlerName, "setscreenbrightness")) {
return ( [ self ESD_setscreenbrightness ] );
} else if (!strcmp(handlerName, "SCREENBRIGHTNESS")) {
return ( [ self ESD_SCREENBRIGHTNESS ] );
} else if (!strcmp(handlerName, "setautodimbrightness")) {
return ( [ self ESD_setautodimbrightness ] );
} else if (!strcmp(handlerName, "AUTODIMBRIGHTNESS")) {
return ( [ self ESD_AUTODIMBRIGHTNESS ] );
// Volume Functions
} else if (!strcmp(handlerName, "setcurrentvolume")) {
return ( [ self ESD_setcurrentvolume ] );
} else if (!strcmp(handlerName, "CURRENTVOLUME")) {
return ( [ self ESD_CURRENTVOLUME ] );
// Wait Cursor Functions
} else if (!strcmp(handlerName, "setwaitcursorthreshold")) {
return ( [ self ESD_setwaitcursorthreshold ] );
} else if (!strcmp(handlerName, "WAITCURSORTHRESHOLD")) {
return ( [ self ESD_WAITCURSORTHRESHOLD ] );
} else if (!strcmp(handlerName, "setwaitcursorsustain")) {
return ( [ self ESD_setwaitcursorsustain ] );
} else if (!strcmp(handlerName, "WAITCURSORSUSTAIN")) {
return ( [ self ESD_WAITCURSORSUSTAIN ] );
} else if (!strcmp(handlerName, "setwaitcursorframeinterval")) {
return ( [ self ESD_setwaitcursorframeinterval ] );
} else if (!strcmp(handlerName, "WAITCURSORFRAMEINTERVAL")) {
return ( [ self ESD_WAITCURSORFRAMEINTERVAL ] );
} else if (!strcmp(handlerName, "ESD_VERSION")) {
return ( [ self ESD_version ] );
} else {
return ( nil ); // handlerName not recognized!
}
}
// ---------------------------------------------------------------
// Useful methods for loading interface data
// ---------------------------------------------------------------
+ finishLoading:(struct mach_header *)header
{
loadHeader = header; // Save this for later use
return ( self );
}
- loadInterfaceData
{
//[NXApp loadNibSection:"MyXModule.nib" owner:self
// withNames:NO fromHeader:loadHeader] )
return ( self );
}
///////////////////////
// Keyboard Functions
///////////////////////
- ESD_setkeyrepeatinterval
{
int pCount = [ self paramCount ];
if (( pCount != 1 ) || ( !([[ self getParam:1 ] validAsNumber ]) )) {
return ( [[ self getEmptyContainer ]
setString:"Usage: setKeyRepeatInterval <aFloat>" ] );
}
NXSetKeyRepeatInterval(ourEventStatusHandle, [[ self getParam:1 ] floatVal ]);
return ( self );
}
- ESD_KEYREPEATINTERVAL
{
return ( [[ self getEmptyContainer ] setFloat:NXKeyRepeatInterval(ourEventStatusHandle) ] );
}
- ESD_setkeyrepeatthreshold
{
int pCount = [ self paramCount ];
if (( pCount != 1 ) || ( !([[ self getParam:1 ] validAsNumber ]) )) {
return ( [[ self getEmptyContainer ]
setString:"Usage: setKeyRepeatThreshold <aFloat>" ] );
}
NXSetKeyRepeatThreshold(ourEventStatusHandle, [[ self getParam:1 ] floatVal ]);
return ( self );
}
- ESD_KEYREPEATTHRESHOLD
{
return ( [[ self getEmptyContainer ] setFloat:NXKeyRepeatThreshold(ourEventStatusHandle) ] );
}
- ESD_setkeymapping
{
int pCount = [ self paramCount ];
if ( pCount != 1 ) {
return ( [[ self getEmptyContainer ]
setString:"Usage: setKeyMapping <keyMapping>" ] );
}
return ( self );
}
- ESD_KEYMAPPINGLENGTH
{
return ( [[ self getEmptyContainer ] setInt:NXKeyMappingLength(ourEventStatusHandle) ] );
}
- ESD_GETKEYMAPPING
{
return ( self );
}
- ESD_resetkeyboard
{
NXResetKeyboard(ourEventStatusHandle);
return ( self );
}
////////////////////
// Mouse Functions
////////////////////
- ESD_setclicktime
{
int pCount = [ self paramCount ];
if (( pCount != 1 ) || ( !([[ self getParam:1 ] validAsNumber ]) )) {
return ( [[ self getEmptyContainer ]
setString:"Usage: setClickTime <aFloat>" ] );
}
NXSetClickTime(ourEventStatusHandle, [[ self getParam:1 ] floatVal ]);
return ( self );
}
- ESD_CLICKTIME
{
return ( [[ self getEmptyContainer ] setFloat:NXClickTime(ourEventStatusHandle) ] );
}
- ESD_setclickspace
{
int pCount = [ self paramCount ];
NXSize newClickSpace;
const char *clickSpaceParam;
if (( pCount != 1 ) || ( !([[ self getParam:1 ] validAsPoint ]) )) {
return ( [[ self getEmptyContainer ]
setString:"Usage: setClickSpace ªwidth,heightº" ] );
}
clickSpaceParam = [[ self getParam:1 ] stringVal ];
sscanf(clickSpaceParam, " %f , %f ", &newClickSpace.width, &newClickSpace.height );
NXSetClickSpace(ourEventStatusHandle, &newClickSpace);
return ( self );
}
- ESD_GETCLICKSPACE
{
NXSize currentClickSpace;
NXGetClickSpace(ourEventStatusHandle, ¤tClickSpace);
return ( [[ self getEmptyContainer ] setPoint:currentClickSpace.width :currentClickSpace.height ] );
}
- ESD_setmousescaling
{
int pCount = [ self paramCount ];
if ( pCount != 1 ) {
return ( [[ self getEmptyContainer ]
setString:"Usage: setMouseScaling <aFloat>" ] );
}
return ( self );
}
- ESD_GETMOUSESCALING
{
return ( self );
}
- ESD_enablemousebutton
{
return ( self );
}
- ESD_MOUSEBUTTONENABLED
{
return ( self );
}
- ESD_resetmouse
{
NXResetMouse(ourEventStatusHandle);
return ( self );
}
/////////////////////
// Screen Functions
/////////////////////
- ESD_setautodimthreshold
{
int pCount = [ self paramCount ];
float newAutoDimThreshold;
if (( pCount != 1 ) || ( !([[ self getParam:1 ] validAsNumber ]) )) {
return ( [[ self getEmptyContainer ]
setString:"Usage: setAutoDimThreshold <aFloat>" ] );
}
newAutoDimThreshold = [[ self getParam:1 ] floatVal ];
if (( newAutoDimThreshold < 0.0 ) || ( newAutoDimThreshold > 1.0 )) {
return ( [[ self getEmptyContainer ]
setString:"Usage: setAutoDimBrightness <0.0 - 1.0>" ] );
}
NXSetAutoDimThreshold(ourEventStatusHandle, newAutoDimThreshold);
return ( self );
}
- ESD_AUTODIMTHRESHOLD
{
return ( [[ self getEmptyContainer ] setFloat:NXAutoDimThreshold(ourEventStatusHandle) ] );
}
- ESD_AUTODIMTIME
{
return ( [[ self getEmptyContainer ] setFloat:NXAutoDimTime(ourEventStatusHandle) ] );
}
- ESD_setautodimstate
{
int pCount = [ self paramCount ];
BOOL autoDimState;
if ( pCount != 1 ) {
return ( [[ self getEmptyContainer ]
setString:"Usage: setAutoDimState <boolVal>" ] );
} else {
autoDimState = [[ self getParam:1 ] boolVal ];
if (( autoDimState == YES ) && ( autoDimState == NO )) {
return ( [[ self getEmptyContainer ]
setString:"Usage: setAutoDimState <boolVal>" ] );
}
}
NXSetAutoDimState(ourEventStatusHandle, autoDimState);
return ( self );
}
- ESD_AUTODIMSTATE
{
return ( [[ self getEmptyContainer ] setBool:NXAutoDimState(ourEventStatusHandle) ] );
}
- ESD_setscreenbrightness
{
int pCount = [ self paramCount ];
float newScreenBrightness;
if (( pCount != 1 ) || ( !([[ self getParam:1 ] validAsNumber ]) )) {
return ( [[ self getEmptyContainer ]
setString:"Usage: setScreenBrightness <aFloat>" ] );
}
newScreenBrightness = [[ self getParam:1 ] floatVal ];
if (( newScreenBrightness < 0.0 ) || ( newScreenBrightness > 1.0 )) {
return ( [[ self getEmptyContainer ]
setString:"Usage: setAutoDimBrightness <0.0 - 1.0>" ] );
}
NXSetScreenBrightness(ourEventStatusHandle, newScreenBrightness);
return ( self );
}
- ESD_SCREENBRIGHTNESS
{
return ( [[ self getEmptyContainer ] setFloat:NXScreenBrightness(ourEventStatusHandle) ] );
}
- ESD_setautodimbrightness
{
int pCount = [ self paramCount ];
float newAutoDimBrightness;
if (( pCount != 1 ) || ( !([[ self getParam:1 ] validAsNumber ]) )) {
return ( [[ self getEmptyContainer ]
setString:"Usage: setAutoDimBrightness <0.0 - 1.0>" ] );
}
newAutoDimBrightness = [[ self getParam:1 ] floatVal ];
if (( newAutoDimBrightness < 0.0 ) || ( newAutoDimBrightness > 1.0 )) {
return ( [[ self getEmptyContainer ]
setString:"Usage: setAutoDimBrightness <0.0 - 1.0>" ] );
}
NXSetAutoDimBrightness(ourEventStatusHandle, newAutoDimBrightness);
return ( self );
}
- ESD_AUTODIMBRIGHTNESS
{
return ( [[ self getEmptyContainer ] setFloat:NXAutoDimBrightness(ourEventStatusHandle) ] );
}
/////////////////////
// Volume Functions
/////////////////////
- ESD_setcurrentvolume
{
int pCount = [ self paramCount ];
float newVolume;
if (( pCount != 1 ) || ( !([[ self getParam:1 ] validAsNumber ]) )) {
return ( [[ self getEmptyContainer ]
setString:"Usage: setCurrentVolume <0.0 - 1.0>" ] );
}
newVolume = [[ self getParam:1 ] floatVal ];
if (( newVolume < 0.0 ) || ( newVolume > 1.0 )) {
return ( [[ self getEmptyContainer ]
setString:"Usage: setCurrentVolume <0.0 - 1.0>" ] );
}
NXSetCurrentVolume(ourEventStatusHandle, newVolume);
return ( self );
}
- ESD_CURRENTVOLUME
{
return ( [[ self getEmptyContainer ] setFloat:NXCurrentVolume(ourEventStatusHandle) ] );
}
//////////////////////////
// Wait Cursor Functions
//////////////////////////
- ESD_setwaitcursorthreshold
{
int pCount = [ self paramCount ];
if (( pCount != 1 ) || ( !([[ self getParam:1 ] validAsNumber ]) )) {
return ( [[ self getEmptyContainer ]
setString:"Usage: setWaitCursorThreshold <aFloat>" ] );
}
NXSetWaitCursorThreshold(ourEventStatusHandle, [[ self getParam:1 ] floatVal ]);
return ( self );
}
- ESD_WAITCURSORTHRESHOLD
{
return ( [[ self getEmptyContainer ] setFloat:NXWaitCursorThreshold(ourEventStatusHandle) ] );
}
- ESD_setwaitcursorsustain
{
int pCount = [ self paramCount ];
if (( pCount != 1 ) || ( !([[ self getParam:1 ] validAsNumber ]) )) {
return ( [[ self getEmptyContainer ]
setString:"Usage: setWaitCursorSustain <aFloat>" ] );
}
NXSetWaitCursorSustain(ourEventStatusHandle, [[ self getParam:1 ] floatVal ]);
return ( self );
}
- ESD_WAITCURSORSUSTAIN
{
return ( [[ self getEmptyContainer ] setFloat:NXWaitCursorSustain(ourEventStatusHandle) ] );
}
- ESD_setwaitcursorframeinterval
{
int pCount = [ self paramCount ];
if (( pCount != 1 ) || ( !([[ self getParam:1 ] validAsNumber ]) )) {
return ( [[ self getEmptyContainer ]
setString:"Usage: setWaitCursorFrameInterval <aFloat>" ] );
}
NXSetWaitCursorFrameInterval(ourEventStatusHandle, [[ self getParam:1 ] floatVal ]);
return ( self );
}
- ESD_WAITCURSORFRAMEINTERVAL
{
return ( [[ self getEmptyContainer ] setFloat:NXWaitCursorFrameInterval(ourEventStatusHandle) ] );
}
- ESD_version
{
id version;
version = [[ self getEmptyContainer ] setString:"r" ];
[ version appendString:P_RELEASE ];
[ version appendString:" v" ];
[ version appendString:P_VERSION ];
[ version appendString:" " ];
[ version appendString:P_RELTIME ];
[ version appendString:"\n" ];
[ version appendString:P_COPYRIGHT ];
return ( version );
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.