This is PMCompose.m in view mode; [Download] [Up]
#import "../Alexandra.h"
#import "PMCompose.h"
#import "preferences.h"
#import <dbkit/DBTableView.h>
@implementation PreferencesManager(Compose)
//-----------------------------------------------------------
// R/W
//-----------------------------------------------------------
- readPostingPrefs;
{
KVPair *pair=[[KVPair alloc] init];
char defname[200];
const char *d;
int i,n=[NXApp defaultIntValue:DEFAULT_XHEADER_COUNT];
MiscList *rows;
[pQuotingPrefix setStringValue:[NXApp defaultValue:DEFAULT_QUOTING_PREFIX]];
[pAppendSig setState:[NXApp defaultBoolValue:DEFAULT_APPEND_SIG]?1:0];
rows=[[MiscList alloc] init];
for(i=0;i<n;i++)
{
sprintf(defname,DEFAULT_XHEADERS,i+1);
d=[NXApp defaultValue:defname];
if(d)
[rows addObject:[[KVPair alloc] init:d delimiter:':']];
else
[rows addObject:pair];
}
[pHeaderController empty:nil];
[pHeaderController addRowsFrom:rows];
rows=[rows free];
pair=[pair free];
return self;
}
- writePostingPrefs
{
MiscList *pHeaders=[pHeaderController rows];
KVPair *pair;
int i=1;
int n=[NXApp defaultIntValue:DEFAULT_XHEADER_COUNT]+1;
char defname[200], defvalue[200];
[pTableView endEditing];
[NXApp setDefault:DEFAULT_QUOTING_PREFIX to:[pQuotingPrefix stringValue]];
[NXApp setDefault:DEFAULT_APPEND_SIG toBool:(BOOL)[pAppendSig state]];
for(pair=[pHeaders setFirstObject]; pair; pair=[pHeaders setNextObject])
if(![pair isNull])
{
sprintf(defvalue, "%s: %s",[pair key],[pair value]);
sprintf(defname,DEFAULT_XHEADERS,i++);
[NXApp setDefault:defname to:defvalue];
}
for(;i<n;i++)
{
sprintf(defname,DEFAULT_XHEADERS,i);
[NXApp setDefault:defname to:" : "];
}
return self;
}
//-----------------------------------------------------------
// THAT'S IT
//-----------------------------------------------------------
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.