home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.mactech.com 2010
/
ftp.mactech.com.tar
/
ftp.mactech.com
/
machack
/
Hacks96
/
FontMancer.sit
/
FontMancer
/
Common
/
Prefs.c
< prev
next >
Wrap
C/C++ Source or Header
|
1996-06-21
|
3KB
|
108 lines
#include "Prefs.h"
#include "StandardEvent.h"
#include "FontMancer.h"
#include "FontDisplay.h"
extern Str255 gSamplePhrase;
extern Boolean gInBackground;
extern WindowPtr gMainWindow;
OSErr LoadPrefs(struct prefStuff *Prefs)
{
long bytesRead;
short error,fRefNum;
FSSpec fileSpec;
error = FindPrefs(&fileSpec,Prefs);
if (error)
return(error);
FSpOpenDF(&fileSpec,fsCurPerm,&fRefNum);
bytesRead = sizeof(struct prefStuff);
FSRead(fRefNum,&bytesRead,Prefs);
FSClose(fRefNum);
if (bytesRead != sizeof(struct prefStuff))
return(-1);
return(0);
}
void SavePrefs(struct prefStuff *Prefs)
{
long bytesWritten;
short error,fRefNum;
FSSpec fileSpec;
error = FindPrefs(&fileSpec, Prefs);
if (error) return;
error = FSpOpenDF(&fileSpec,fsWrPerm,&fRefNum);
if (error) return;
bytesWritten = sizeof(struct prefStuff);
FSWrite(fRefNum,&bytesWritten,Prefs);
FSClose(fRefNum);
}
OSErr FindPrefs(FSSpec *fileSpec, struct prefStuff *Prefs)
{
long foundDirID,bytesWritten;
short error,foundVRefNum,fRefNum;
Str255 fileName = "\pFontMancer Prefs";
Str255 samplePhrase = "\pVisualise whirled peas";
error = FindFolder(kOnSystemDisk,kPreferencesFolderType,kDontCreateFolder,&foundVRefNum,&foundDirID);
if (error)
return(error);
error = FSMakeFSSpec(foundVRefNum,foundDirID,fileName,fileSpec);
if (error) {
error = FSpCreate(fileSpec,'NU04','PREF',smSystemScript);
if (error)
return(error);
FSpOpenDF(fileSpec,fsWrPerm,&fRefNum);
BlockMove(samplePhrase,Prefs->samplePhrase,23);
SetPt(&(Prefs->windowPosition),10,50);
bytesWritten = sizeof(struct prefStuff);
FSWrite(fRefNum,&bytesWritten,Prefs);
FSClose(fRefNum);
if (bytesWritten != sizeof(struct prefStuff))
return(-1);
}
return(0);
}
void SetSamplePhrase()
{
DialogPtr SamplePhraseDlg;
Handle hEditText;
Str255 newSamplePhrase = "\p";
short itemHit = -1;
FMStuff *FMStore;
gInBackground = TRUE;
DoActivateMainWindow();
SamplePhraseDlg = GetNewDialog(rSetSamplePhrase,0,(WindowPtr) -1L);
SetDialogDefaultItem(SamplePhraseDlg,ok);
SetDialogCancelItem(SamplePhraseDlg,cancel);
SetDialogTracksCursor(SamplePhraseDlg,1);
GetDItemHandle(iEditTextItem, SamplePhraseDlg, &hEditText);
SetIText(hEditText,gSamplePhrase);
SelIText(SamplePhraseDlg,iEditTextItem,0,32767);
while (itemHit != cancel && itemHit !=ok) {
ModalDialog(0,&itemHit);
if (itemHit == ok) {
GetIText(hEditText,newSamplePhrase);
BlockMove(newSamplePhrase,gSamplePhrase,newSamplePhrase[0] + 1);
}
}
DisposeDialog(SamplePhraseDlg);
gInBackground = FALSE;
DoActivateMainWindow();
FMStore = (FMStuff *) GetWRefCon(gMainWindow);
UpdateSampleRect(FMStore);
}
void GetDItemHandle(short iDialogItem, DialogPtr theDlg, Handle *itemHandle)
{
short iType;
Rect iRect;
GetDItem(theDlg,iDialogItem,&iType,itemHandle,&iRect);
}