ftp.nice.ch/pub/next/tools/performance/TimeMon.3.2.s.tar.gz#/TimeMon-3.2/AppDefaults.h

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

// Copyright 1991, 1994 Scott Hess.  Permission to use, copy,
// modify, and distribute this software and its documentation for
// any purpose and without fee is hereby granted, provided that
// this copyright notice appear in all copies.
// 
// Scott Hess makes no representations about the suitability of
// this software for any purpose.  It is provided "as is" without
// express or implied warranty.
//
//
// This file adds a category to Application which provides for
// access to the defaults database for use in simple programs.
// The -default*: routines return the named default in the specified
// format.  Thus, [NXApp defaultAsInt:"Integer"] returns the value
// of the "Integer" default converted to an int.  The -default*:default:
// routines allow the programmer to provide a value to be used if
// the named default does not exist in the database.  Thus,
// [NXApp defaultAsInt:"Integer" default:10] will return the value
// of the "Integer" default if it exists, otherwise it will return
// 10.
//
// The -default:as*:  routines set the named default to the given
// value, converting the value to a string.  Thus,
// [NXApp default:"Integer" asInt:10] will store "10" as the value
// of the "Integer" default.
//
// The -cmpDefault:*with: routines compare the current value for
// a default with a given string.  If they are equal, YES is
// returned, otherwise NO is returned.  Comparison using NXOrderStrings()
// with NULL for the ordering table.
//
// In all cases the owner of the default is [NXApp appName].
//
#import <appkit/appkit.h>

@interface Application (AppDefaults)
    // Reference to allow linking from a library.  Classes have a
    // linkable "tag" that can be used to refer to them in your
    // code, and if you refer to the class, it'll get linked from
    // the library.  Categories have no such tag (that I can
    // determine), so instead I use this reference somewhere in my
    // code (if this category is in a library).
extern int appDefaultsReference;

    // Get a default by name and convert it to a specified type.
-(const char *)default:(const char *)defName;
-(int)defaultAsInt:(const char *)defName;
-(BOOL)defaultAsBOOL:(const char *)defName;
-(float)defaultAsFloat:(const char *)defName;
-(NXColor)defaultAsColor:(const char *)defName;

    // Get a default by name and convert it to a specified type.
    // If the default cannot be found, use the given defValue.
-(const char *)default:(const char *)defName default:(const char *)defValue;
-(int)defaultAsInt:(const char *)defName default:(int)defValue;
-(BOOL)defaultAsBOOL:(const char *)defName default:(BOOL)defValue;
-(float)defaultAsFloat:(const char *)defName default:(float)defValue;
-(NXColor) defaultAsColor:(const char *)defName default:(NXColor)defValue;

    // Set the value of a default by name converting from a specified
    // type.
- default:(const char *)defName as:(const char *)defValue;
- default:(const char *)defName asInt:(int)defValue;
- default:(const char *)defName asBOOL:(BOOL)defValue;
- default:(const char *)defName asFloat:(float)defValue;
- default:(const char *)defName asColor:(NXColor)defValue;

    // Compare the current value of a default with a string.
-(BOOL)cmpDefault:(const char *)defName with:(const char *)cmp;
-(BOOL)cmpDefault:(const char *)defName caseWith:(const char *)cmp;
@end

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