jac@yoko.rutgers.edu (Jonathan A. Chandross) (05/11/91)
Submitted-by: Joel Sumner (q4kx@cornella.ccs.cornell.edu)
Posting-number: Volume 1, Source:48
Archive-name: editor/texter/part02
Architecture: ONLY_2gs
Version-number: 1.1.1
=texter.pas
-{$keep 'Texter'}
-{$optimize -1}
-Program Texter;
-
-Uses Common,
- ControlMgr,
- ResourceMgr,
- MemoryMgr,
- IntegerMath,
- DeskMgr,
- ToolLocator,
- WindowMgr,
- FontMgr,
- QuickDrawII,
- PrintMgr,
- MenuMgr,
- GSOS,
- DialogMgr,
- SFToolSet,
- TextEdit,
- {$LibPrefix '0/'}
- MessUnit, {Dave Lyon's Unit for Message Center}
- MyStuff,
- Texter2;
-
-
-const
- Application_Menu_Bar = 1;
- Apple_Menu = 1;
- About_Menu_Item = 256;
-
- File_Menu = 2;
- New_Menu_Item = 258;
- Open_Menu_Item = 259;
- Close_Menu_Item = 255;
- Save_Menu_Item = 260;
- SaveAs_Menu_Item = 261;
- Page_Setup_Item = 263;
- Print_Item = 264;
- Quit_Menu_Item = 257;
-
- Edit_Menu = 3;
- Undo_Menu_Item = 250;
- Cut_Menu_Item = 251;
- Copy_Menu_Item = 252;
- Paste_Menu_Item = 253;
- Clear_Menu_Item = 254;
-
- Window_Menu = 4;
- Window1_Item = 265;
- Window2_Item = 266;
- Window3_Item = 267;
- Window4_Item = 268;
- Window5_Item = 269;
-
- Goodies_Menu = 5;
- Word_Wrap_Item = 270;
- Choose_Font_Item=271;
-
- Text_Window = 4090;
- Text_Window_wColor = 1;
- Text_Edit_Control = 1;
- Tool_Startup_Table = 1;
-
- Printing_Alert = 1;
- Tool_Error_Alert = 2;
- Save_Alert = 3;
-
-
-
-var
- MyMemoryID: Integer;
- OldWindow: integer;
- StartStopRef: longint;
- Done: Boolean;
- PrintRecHandle:PrHandle;
- theGSString: GSOSInString;
- WindowMenuStr: String[255];
- WindowItems: Array[1..5] of String[25];
- OpenWindows: Integer; {Max of 5 Open Windows}
- OPTable: OpenOSDCB;
- WindFront: boolean;
- FormatDlog,
- ApplicPort: GrafPortPtr;
-
-
-procedure DoPageSetup;
-var Good,
- Dummy:boolean;
-begin
-dummy:=PrValidate(PrintRecHandle);
-If ToolError<>0 then ErrorBox(ToolError,$1301)
- else begin
- Good:=PrStlDialog(PrintRecHandle);
- If ToolError<>0 then ErrorBox(ToolError,$1301);
- end;
-end;
-
-
-procedure DoPrintDoc;
-var PrintPort,
- theWindow: GrafPortPtr;
- LineNum,
- memsize: longint;
- hTECtl: TEHandle;
- Error,
- Where: integer;
- pageRect: rect;
- dummy: boolean;
-begin
-theWindow := FrontWindow;
-hTECtl := TEHandle(GetCtlHandleFromID(theWindow, Text_Edit_Control));
-If ToolError<>0 then ErrorBox(ToolError,$1101);
-dummy:=PrValidate(PrintRecHandle);
-If PrJobDialog(PrintRecHandle)>0 then
- begin
- PrintPort:=PrOpenDoc(PrintRecHandle,nil);
- If ToolError<>0 then begin
- PrSetError(prAbort);
- Where:=2;
- end;
- pageRect := PrintRecHandle^^.prInfo.rPage;
- LineNum:=0;
- Repeat
- PrOpenPage(PrintPort,nil);
- If ToolError<>0 then begin
- PrSetError(prAbort);
- Where:=3;
- end;
- LineNum:=TEPaintText(PrintPort,LineNum,PageRect,0,hTECtl);
- If ToolError<>0 then begin
- PrSetError(prAbort);
- Where:=4;
- end;
- PrClosePage(PrintPort);
- If ToolError<>0 then begin
- PrSetError(prAbort);
- Where:=5;
- end;
- Until LineNum=-1;
- PrCloseDoc(PrintPort);
- Error:=PrError;
- If Error<>0 then
- begin
- ErrorBox(Error,$1100+Where);
- result:=AlertWindow(5,nil,pointer(Printing_Alert));
- end
- else
- PrPicFile(PrintRecHandle,nil,nil);
- end;
-end;
-
-
-Function GetAWindow(WindNum:Integer):GrafPortPtr;
-var tmpWindow: GrafPortPtr;
-begin
-tmpWindow:=NewWindow2(@Windows[windNum].WindowTitle,
- @Windows[windnum],
- @DrawWindow,
- nil,
- refIsResource,
- Text_Window,
- $800E);
-If ToolError<>0 then ErrorBox(ToolError,$1001);
-SetPort(tmpWindow);
-GetAWindow:=tmpWindow;
-end;
-
-Function MakeWindow(theWindnum:integer):Boolean;
-begin
-Windows[theWindNum].DocWindow:=GetAWindow(theWindNum);
-if Windows[theWindNum].DocWindow<>nil then
- Begin
- With Windows[theWindNum] do begin
- MakeWindow:=true;
- If Length(WindowTitle)>15 then
- WindowItems[theWindNum]:=concat('...',
- copy(WindowTitle,Length(WindowTitle)-15,17),
- ' ')
- else
- WindowItems[theWindNum]:= WindowTitle;
- SetMItemName(@WindowItems[theWindNum],theWindNum+264);
- EnableMItem(theWindNum+264);
- CalcMenuSize(0,0,4);
- end; {of With Windows}
- end
- else MakeWindow:=false;
-end;
-
-Procedure SetWindArr(i:integer);
-begin
-Windows[i].index:=i;
-Windows[i].InUse:=True;
-Windows[i].Wrap:=true;
-EnableMItem(Close_Menu_Item);
-EnableMItem(Print_Item);
-EnableMItem(Save_Menu_Item);
-EnableMItem(SaveAs_Menu_Item);
-EnableMItem(Page_Setup_Item);
-EnableMItem(Choose_Font_Item);
-EnableMItem(Word_Wrap_Item);
-WindFront:=true;
-end;
-
-Procedure DoNew;
-var i,
- MyWindNum:Integer;
- OpenOK,
- Success: Boolean;
- tempStr: Str255;
-begin
-myWindNum:=0;
-For i:=5 downto 1 do
- If Windows[i].InUse=False then mywindnum:=i;
-if mywindnum=0 then ErrorBox(-2,$F01);
-tempStr:=' Untitled ';
-For I:=1 to length(tempstr) do
- Windows[mywindnum].DocGSString.thestring[i]:=tempstr[i];
-Windows[mywindnum].DocGSString.size:=Length(tempstr);
-Windows[myWindNum].WindowTitle:=tempstr;
-Windows[mywindnum].DocRef:=0;
-OpenOK:=True;
-Success:=True;
-If Success then OpenOK:=MakeWindow(MyWindNum);
-If not OpenOK then ErrorBox(-3,$F02)
- else begin
- OpenWindows:=OpenWindows+1;
- SetWindArr(mywindnum);
- Windows[mywindnum].New:=True;
- Windows[mywindnum].Saved:=False;
- end;
-If OpenWindows>4 then begin
- DisableMItem(Open_Menu_Item);
- DisableMItem(New_Menu_Item);
- end;
-end; {of DoNew}
-
-Procedure FormDlog;
-var r: rect;
-begin
-ApplicPort:=GetPort;
-WaitCursor;
-SetRect(r,200,40,440,65);
-FormatDlog :=NewModalDialog(r,true,0);
-If ToolError<>0 then ErrorBox(ToolError,$E07);
-SetPort(FormatDlog);
-MoveTo(10,15);DrawString(@'Please Wait. Formatting Text...');
-end;
-
-Function ReadIt(thedocnum:integer):Boolean;
-var eofparm: eofOSDCB;
- temp: boolean;
- TextHandle:Handle;
- readparm: readWriteOSDCB;
- TEControl:TEHandle;
-
-begin
-FormDlog;
-temp:=true;
-eofparm.pcount:=2;
-eofparm.refnum:=Windows[thedocnum].Docref;
-GetEOFGS(eofparm);
-if ToolError<>0 then begin
- ErrorBox(ToolError,$E01);
- temp:=false;
- end
- else begin
- TextHandle:=NewHandle(eofparm.eofEOF,MyMemoryID,0,pointer(0));
- If ToolError<>0 then begin
- ErrorBox(ToolError,$E02);
- temp:=False;
- end;
- end;
-If Temp then
- begin
- Hlock(TextHandle);
- readparm.pcount:=4;
- readparm.refnum:=Windows[thedocnum].Docref;
- readparm.databuffer:=TextHandle^;
- readparm.requestcount:=eofparm.eofEOF;
- ReadGS(readparm);
- If ToolError<>0 then begin
- ErrorBox(ToolError,$E03);
- temp:=false;
- end;
- end;
-If Temp then
- begin
- TEControl:=TEHandle(GetCtlHandleFromID(Windows[thedocnum].DocWindow,
- Text_Edit_Control));
- If ToolError<>0 then
- ErrorBox(ToolError,$E03);
-
- TESetText(8+5, {Data is in Handle in Unformatted text block}
- teTextRef(TextHandle),
- eofparm.eofEOF, {Should be ignored}
- $0000,
- $00000000,
- TEControl);
- If ToolError<>0 then
- ErrorBox(ToolError,$E04);
- HUnlock(TextHandle);
- If ToolError<>0 then
- ErrorBox(ToolError,$E05);
- DisposeHandle(TextHandle);
- If ToolError<>0 then ErrorBox(ToolError,$E06);
- end;
-ReadIt:=temp;
-InitCursor;
-CloseDialog(FormatDlog);
-If ToolError<>0 then ErrorBox(ToolError,$E08);
-SetPort(ApplicPort);
-end;
-
-Procedure CloseFile(theref:integer);
-var CloseRec:CloseOSDCB;
-begin
-CloseRec.pCount:=1;
-CloseRec.refNum:=theref;
-CloseGS(CloseRec);
-If ToolError<>0 then ErrorBox(ToolError,$1401);
-end;
-
-Procedure OpenStartUp(theFile:Str255);
-var
- i,Error: integer;
- OpenOK,
- Success: Boolean;
- temptext: Str255;
-begin
-For I:=1 to Length(thefile) do
- Windows[openWindows+1].DocGSString.thestring[i]:=thefile[i];
-Windows[openWindows+1].DocGSString.size:=Length(thefile);
-Windows[OpenWindows+1].WindowTitle:=concat(' ',thefile,' ');
-With OPtable do begin
- pCount:= 15;
- refnum:= 0;
- pathname:= @Windows[openWindows+1].DocGSString;
- requestAccess:=1;
- ResourceNumber:=0;
- end;
-OpenGS(OPtable);
-Error:=ToolError;
-If (OPTable.filetype<>$04) and (OPTable.Filetype<>$B0) then Error:=-1;
-Windows[OpenWindows+1].DocRef:=OPtable.refnum;
-OpenOK:=True;
-Success:=True;
-If Error<>0 then
- begin
- ErrorBox(Error,$D01);
- Success:=False;
- end;
-If Success then OpenOK:=MakeWindow(OpenWindows+1);
-If not OpenOK then begin
- ErrorBox(-3,$D03);
- CloseFile(Windows[openwindows+1].DocRef);
- end
- else
- begin
- OpenWindows:=OpenWindows+1;
- SetWindArr(OpenWindows);
- Windows[OpenWindows].New:=False;
- Windows[OpenWindows].Saved:=True;
- OpenOK:=ReadIt(OpenWindows);
- CloseFile(Windows[openwindows].DocRef);
- end;
-end; {of OpenStartUp}
-
-
-Procedure OpenIt(SfRecord:ReplyRecord);
-var
- i,Error,
- MyWindNum:integer;
- OpenOK,
- Success: Boolean;
- temptext: Str255;
-begin
-mywindnum:=0;
-For i:=5 downto 1 do
- If Windows[i].InUse=False then mywindnum:=i;
-if mywindnum=0 then ErrorBox(-2,$C01);
-For I:=1 to Length(SFRecord.Fullpathname) do
- Windows[mywindnum].DocGSString.thestring[i]:=SFRecord.Fullpathname[i];
-Windows[mywindnum].DocGSString.size:=Length(SFRecord.Fullpathname);
-Windows[myWindNum].WindowTitle:=SFRecord.Fullpathname;
-With OPtable do begin
- pCount:= 15;
- refnum:= 0;
- pathname:= @Windows[mywindnum].DocGSString;
- requestAccess:=1;
- ResourceNumber:=0;
- end;
-OpenGS(OPtable);
-Error:=ToolError;
-Windows[mywindnum].DocRef:=OPtable.refnum;
-OpenOK:=True;
-Success:=True;
-if Error<>0 then
- begin
- ErrorBox(Error,$C02);
- Success:=False;
- end;
-If Success then OpenOK:=MakeWindow(MyWindNum);
-If not OpenOK then begin
- ErrorBox(Error,$C03);
- CloseFile(Windows[mywindnum].DocRef);
- end
- else begin
- OpenWindows:=OpenWindows+1;
- SetWindArr(mywindnum);
- Windows[mywindnum].New:=False;
- Windows[mywindnum].Saved:=True;
- OpenOK:=ReadIt(mywindnum);
- CloseFile(Windows[mywindnum].DocRef);
- end;
-If OpenWindows>4 then begin
- DisableMItem(Open_Menu_Item);
- DisableMItem(New_Menu_Item);
- end;
-end; {of OpenIt}
-
-Function OpenFile(i:integer):boolean;
-var OCtable:OpenOSDCB;
- error: integer;
-begin
-With OCtable do begin
- pCount:= 15;
- refnum:= 0;
- pathname:= @Windows[i].DocGSString;
- requestAccess:=3;
- ResourceNumber:=0
- end;
-OpenGS(OCtable);
-Error:=ToolError;
-Windows[i].Docref:=OCTable.refnum;
-if Error<>0 then
- begin
- ErrorBox(Error,$B01);
- OpenFile:=False;
- end
- else OpenFile:=True;
-end;
-
-Procedure DoOpen;
-var prompt: str255;
- replyrec: ReplyRecord;
- TheTypeList: TypeList;
-begin
-prompt := 'File to Open:';
-with TheTypeList do begin
- numEntries := 2;
- fileType[1] := $0004;
- fileType[2] := $00B0;
- end;
-SFGetFile(100,50,@prompt,nil,@TheTypeList,replyrec);
-If toolError>0 then ErrorBox(ToolError,$A01);
-if not(replyrec.good=false) then OpenIt(replyRec);
-end;
-
-Function DeleteFile(var CreateTable:CreateOSDCB):boolean;
-var DPTable: DestroyOSDCB;
- I,
- error: Integer;
-begin
-DPTable.pcount:=1;
-DPTable.Pathname:=CreateTable.PathName;
-DestroyGS(DPTable);
-If ToolError>0 then
- begin
- ErrorBox(Error,$901);
- DeleteFile:=False;
- end
-else begin
- CreateGS(CreateTable);
- If ToolError>0 then begin
- ErrorBox(ToolError,$902);
- DeleteFile:=False;
- end
- else DeleteFile:=True;
- end;
-end; {of DeleteFile}
-
-Function CreateNewFile(index:integer):Boolean;
-var CPtable: CreateOSDCB;
- i,
- error: integer;
- prompt,
- origname: String;
- reply: ReplyRecord;
-begin
-prompt:='Save conversion as:';
-origname:='Untitled';
-SFPutFile(100,50,@prompt,@origname,15,reply);
-If ToolError> 0 then ErrorBox(ToolError,$801);
-if integer(reply.good)=0 then
- CreateNewFile:=False
- else
- begin
- For I:=1 to Length(reply.fullpathname) do
- theGSString.thestring[i]:=reply.fullpathname[i];
- theGSString.size:=Length(reply.fullpathname);
- With CPtable do
- begin
- pCount:= 7;
- Pathname:= @theGSString;
- access:= 227;
- filetype:= 4;
- auxType:= 0;
- StorageType:= 1;
- DataEOF:= 1;
- resourceEOF:= 0;
- end;
- CreateGS(CPtable);
- Error:=ToolError;
- Windows[index].DocGSString:=theGSString;
- Windows[index].WindowTitle:=reply.Fullpathname;
- CreateNewFile:=True;
- If Error>0 then begin
- If Error = 71 then CreateNewFile:=DeleteFile(CPTable)
- else begin
- ErrorBox(ToolError,$802);
- CreateNewFile:=False;
- end; {If ToolError}
- End; {If IsToolError}
- end; {of If not reply.good}
-end; {of CreateNewFile}
-
-Function WriteDocWindow(i:integer):boolean;
-var eofparm: SetMarkOSDCB;
- writeparms:readwriteOSDCB;
- uhoh: boolean;
- TECtlHand:TEHandle;
- TextHandle:Handle;
- length: longint;
-begin
-Uhoh:=false;
-with eofparm do
- begin
- pcount:= 3;
- refnum:= Windows[i].DocRef;
- base:= 0;
- displacement:= 0;
- end;
-SetEOFGS(eofParm); {Set EOF to zero to prepare for write}
-TECtlHand:=TEHandle(GetCtlHandleFromID(Windows[i].DocWindow,
- Text_Edit_Control));
-If ToolError<>0 then ErrorBox(ToolError,$701);
-TextHandle:=NewHandle(TECtlHand^^.textlength,MyMemoryID,0,pointer(0));
-If ToolError<>0 then
- begin
- ErrorBox(ToolError,$702);
- uhoh:=true;
- end;
-If not(uhoh) then
- begin
- HLock(TextHandle);
- length:=TEGetText(8+5, {Data to Handle in Unformatted text block}
- TextHandle,
- $00000000, {ignored}
- $0000,
- $00000000,{No style info}
- TECtlHand);
- If ToolError<>0 then
- begin
- ErrorBox(ToolError,$703);
- uhoh:=true;
- end;
- end;
-if not(uhoh) then
- begin
- With writeparms do
- begin
- pcount:= 5;
- refnum:= Windows[i].DocRef;
- databuffer:= TextHandle^;
- requestcount:=length;
- cachePriority:=0;
- end;
- WriteGS(writeparms);
- If ToolError<>0 then
- begin
- ErrorBox(ToolError,$704);
- uhoh:=true;
- end;
- end;
-WriteDocWindow:=not(uhoh);
-HUnlock(TextHandle);
-DisposeHandle(TextHandle);
-end;
-
-Procedure DoSaveAs;
-var i: integer;
- theDocptr:DocumentPtr;
- theDoc: Document;
- success: boolean;
- TEControl:TEHandle;
- dirty: byte;
-begin
-theDocPtr:=DocumentPtr(GetWRefCon(FrontWindow));
-theDoc:=theDocPtr^;
-i:=theDoc.Index;
-If CreateNewFile(i) then
- begin
- if OpenFile(i) then success:=writeDocWindow(i);
- CloseFile(Windows[i].DocRef);
- end;
-If Success then
- With Windows[i] do begin
- If Length(WindowTitle)>15 then
- WindowItems[i]:=concat('...',
- copy(WindowTitle,Length(WindowTitle)-15,17),
- ' ')
- else
- WindowItems[i]:= WindowTitle;
- SetWTitle(@WindowTitle,DocWindow);
- SetMItemName(@WindowItems[i],i+264);
- EnableMItem(i+264);
- CalcMenuSize(0,0,4);
- saved:=true;
- new:=false;
- TEControl:=TEHandle(GetCtlHandleFromID(DocWindow,
- Text_Edit_Control));
- If ToolError<>0 then ErrorBox(ToolError,$601);
- TEControl^^.ctlFlag:=TEControl^^.ctlFlag & $bf;
- end; {of with windows}
-end;
-
-procedure DoSave;
-var i: integer;
- theDocptr:DocumentPtr;
- theDoc: Document;
- success: boolean;
- TEControl:TEHandle;
- dirty: byte;
-begin
-theDocPtr:=DocumentPtr(GetWRefCon(FrontWindow));
-theDoc:=theDocPtr^;
-i:=theDoc.Index;
-success:=false;
-if windows[i].new then DoSaveAs
- else
- begin
- if OpenFile(i) then success:=WriteDocWindow(i);
- CloseFile(windows[i].DocRef);
- end;
-If success then begin
- windows[i].saved:=true;
- TEControl:=TEHandle(GetCtlHandleFromID(Windows[i].DocWindow,
- Text_Edit_Control));
- If ToolError<>0 then ErrorBox(ToolError,$501);
- TEControl^^.ctlFlag:=TEControl^^.ctlFlag & $bf;
- end;
-end;
-
-procedure ContinueClose(i:integer);
-begin
-CloseWindow(Windows[i].DocWindow); {close it}
-Windows[i].DocWindow := nil;
-Windows[i].InUse:=False;
-OpenWindows:=OpenWindows-1;
-EnableMItem(Open_Menu_Item);
-EnableMItem(New_Menu_Item);
-WindowItems[i]:=concat('Window',cnvis(i));
-SetMItemName(@WindowItems[i],i+264);
-CalcMenuSize(0,0,4);
-DisableMItem(264+i);
-If OpenWindows=0 then
- begin
- Windfront:=false;
- DisableMItem(Close_Menu_Item);
- DisableMItem(Print_Item);
- DisableMItem(Save_Menu_Item);
- DisableMItem(SaveAs_Menu_Item);
- DisableMItem(Page_Setup_Item);
- DisableMItem(Word_Wrap_Item);
- DisableMITem(Choose_Font_Item);
- end;
-end;
-
-procedure DoClose;
-var i: integer;
- theDocptr:DocumentPtr;
- theDoc: Document;
- TEControl:TEHandle;
- dirty: byte;
- button: integer;
-begin
-if FrontWindow <> nil then
- begin
- if GetWKind(FrontWindow)=0 then
- begin
- theDocPtr:=DocumentPtr(GetWRefCon(FrontWindow));
- theDoc:=theDocPtr^;
- i:=theDoc.Index;
- TEControl:=TEHandle(GetCtlHandleFromID(Windows[i].DocWindow,
- Text_Edit_Control));
- If ToolError<>0 then ErrorBox(ToolError,$401);
- dirty:=TEControl^^.ctlFlag;
- if (dirty & $0040) <> 0 then
- Windows[i].saved:=false;
- if not (Windows[i].saved) then
- begin
- button:=AlertWindow(5,nil,pointer(Save_Alert));
- if button=2 then DoSave;
- if button>0 then ContinueClose(i);
- end
- else ContinueClose(i);
- end
- end
- else begin
- CloseNDAByWinPtr(FrontWindow);
- If ToolError<>0 then ErrorBox(ToolError,$402);
- end;
-end; {DoClose}
-
-Procedure GoGetBuffer;
-var any: integer;
- PathPtr: StringPtr;
- NotDone: Boolean;
- PPtable: PrefsOSDCB;
-begin
-PPtable.pcount:=1;
-PPtable.preferences:=$8000;
-SetSysPrefsGS(PPTable);
-If ToolError<>0 then ErrorBox(ToolError,$301);
-
-new(PathPtr);
-Any:=InitReadMc(MyMemoryID);
-OpenWindows:=0;
-If Any>-1 then
- Repeat
- NotDone:=ReadNextMc(PathPtr);
- if (NotDone) and (OpenWindows<5) then OpenStartUp(PathPtr^);
- Until NotDone=False;
-If OpenWindows>4 then begin
- DisableMItem(Open_Menu_Item);
- DisableMItem(New_Menu_Item);
- end;
-end;
-
-Procedure DoChooseFont;
-var i: integer;
- theDocptr:DocumentPtr;
- theDoc: Document;
- TECtlHand:TEHandle;
- theid: longint;
- thestyle: TEStyle;
-begin
-thestyle.teFont.fid:=ChooseFont(FMGetCurFID,0);
-If ToolError<>0 then ErrorBox(ToolError,$1601);
-theDocPtr:=DocumentPtr(GetWRefCon(FrontWindow));
-theDoc:=theDocPtr^;
-i:=theDoc.Index;
-TECtlHand:=TEHandle(GetCtlHandleFromID(Windows[i].DocWindow,
- Text_Edit_Control));
-FormDlog;
-If ToolError<>0 then ErrorBox(ToolError,$1602);
-TESetSelection(0,TECtlHand^^.textlength,TECtlHand);
-If ToolError<>0 then ErrorBox(ToolError,$1603);
-TEStyleChange($62,theStyle,TECtlHand);
-If ToolError<>0 then ErrorBox(ToolError,$1604);
-InitCursor;
-CloseDialog(FormatDlog);
-If ToolError<>0 then ErrorBox(ToolError,$1605);
-SetPort(ApplicPort);
-end;
-
-Procedure ChangeWrap;
-var i: integer;
- theDocptr:DocumentPtr;
- theDoc: Document;
- TEControl:TEHandle;
- flag: longint;
- theruler: Handle;
-begin
-theDocPtr:=DocumentPtr(GetWRefCon(FrontWindow));
-theDoc:=theDocPtr^;
-i:=theDoc.Index;
-TEControl:=TEHandle(GetCtlHandleFromID(Windows[i].DocWindow,
- Text_Edit_Control));
-If ToolError<>0 then ErrorBox(ToolError,$1501);
-FormDlog;
-flag:=TEControl^^.textflags;
-flag:=(flag ! $10000000);
-if (flag & $10000000)=0 then begin
- Windows[i].Wrap:=True;
- CheckMItem(true,Word_Wrap_Item);
- end
- else begin
- CheckMItem(false,Word_Wrap_Item);
- Windows[i].Wrap:=False;
- end;
-TEControl^^.textflags:=flag;
-theRuler:=NewHandle(80,MyMemoryID,
- attrLocked+attrFixed+attrNoCross,
- Pointer(0));
-If ToolError<>0 then ErrorBox(ToolError,$1502);
-TEGetRuler(terefIsHandle,theruler,TEControl);
-If ToolError<>0 then ErrorBox(ToolError,$1503)
- else begin
- TESetRuler(teRefIsHandle,theruler,TEControl);
- If ToolError<>0 then ErrorBox(ToolError,$1504);
- end;
-DisposeHandle(theRuler);
-InitCursor;
-CloseDialog(FormatDlog);
-If ToolError<>0 then ErrorBox(ToolError,$1605);
-SetPort(ApplicPort);
-end;
-
-procedure ProcessMenu(Code: longint);
-var menuNum : integer;
- itemNum : integer;
-begin
- menuNum := HiWord(Code);
- itemNum := LoWord(Code);
-
- case itemNum of
- {Apple Menu}
- About_Menu_Item : DoAbout;
- {File Menu}
- New_Menu_Item: DoNew;
- Open_Menu_Item: DoOpen;
- Close_Menu_Item: DoClose;
- Save_Menu_Item: DoSave;
- SaveAs_Menu_Item: DoSaveAs;
- Page_Setup_Item: DoPageSetup;
- Print_Item: DoPrintDoc;
- Quit_Menu_Item : Done := true;
- {Edit Menu}
- Undo_Menu_Item:;
- Cut_Menu_Item:;
- Copy_Menu_Item:;
- Paste_Menu_Item:;
- Clear_Menu_Item:;
- Window1_Item: DoToFront(1);
- Window2_Item: DoToFront(2);
- Window3_Item: DoToFront(3);
- Window4_Item: DoToFront(4);
- Window5_Item: DoToFront(5);
- Word_Wrap_Item: ChangeWrap;
- Choose_Font_Item:DoChooseFont;
- otherwise ;
- end; {case}
-
- HiliteMenu(false,menuNum);
-end;
-
-Procedure modifymenus(i:integer);
-begin
-if i=0 then
- begin {Back to Texter windows}
- If windfront=true then
- begin
- enableMItem(Save_Menu_Item);
- enableMitem(SaveAs_Menu_Item);
- enableMItem(Page_Setup_Item);
- enableMItem(Print_Item);
- enableMItem(Choose_Font_Item);
- enableMItem(Word_Wrap_Item);
- end;
- end
- else
- begin
- If windfront=true then
- begin
- disableMItem(Save_Menu_Item);
- disableMitem(SaveAs_Menu_Item);
- disableMItem(Page_Setup_Item);
- disableMItem(Print_Item);
- disableMItem(Choose_Font_Item);
- disableMItem(Word_Wrap_Item);
- end;
- end;
-end;
-
-procedure CheckFront;
-var currwindow: integer;
- fwind: GrafPortPtr;
- i: integer;
- theDocptr: DocumentPtr;
- theDoc: Document;
-begin
-fWind:=FrontWindow;
-currwindow:=GetWKind(Fwind);
-if currwindow<>oldwindow then
- Modifymenus(currwindow);
-theDocPtr:=DocumentPtr(GetWRefCon(FWind));
-theDoc:=theDocPtr^;
-i:=theDoc.Index;
-If Windows[i].Wrap then CheckMItem(true,Word_Wrap_Item)
- else CheckMItem(false,Word_Wrap_Item);
-end;
-
-procedure MainEventLoop;
-var Event : EventRecord;
- EventCode : integer;
-begin
- Event.TaskMask := $FFFFF;
- while not done do begin
- CheckFront;
- EventCode := TaskMaster($076E,Event);
- case EventCode of
- wInSpecial,
- wInMenuBar : ProcessMenu(Event.TaskData);
- wInContent :;
- wInGoAway : DoClose;
- otherwise ;
- end; {case}
- end; {while}
-end;
-
-procedure SetUpMenus;
-var
- height: Integer;
-
-begin
-SetSysBar(CtlRecHndl(NewMenubar2(refIsResource,Application_Menu_Bar, nil)));
-SetMenuBar(nil);
-FixAppleMenu(Apple_Menu); { Add DAs to apple menu }
-If ToolError<>0 then ErrorBox(ToolError,$201);
-height := FixMenuBar; { Set sizes of menus }
-DrawMenuBar; { and draw the menu bar! }
-end; { of SetUpMenus }
-
-
-Procedure Initialize;
-begin
-OldWindow:=1;
-ErrStringPtr:=@ErrStringArr;
-PrintRecHandle:=PrHandle(NewHandle($8C, {Size of Printer Job Rec}
- MyMemoryID,
- attrnocross+attrfixed+attrlocked,
- Pointer(0)));
-If ToolError<>0 then ErrorBox(ToolError,$101);
-PrDefault(PrintRecHandle);
-If ToolError<>0 then ErrorBox(ToolError,$102);
-Windfront:=false;
-end;
-
-
-begin
-TLStartUp;
-MyMemoryID := MMStartUp;
-
-StartStopRef := StartupTools(MyMemoryID,refIsResource,Tool_StartUp_Table);
-result:=ToolError;
-If result=0 then
- begin
- Initialize;
- SetUpMenus;
- GoGetBuffer;
- InitCursor;
- MainEventLoop;
- end
- else
- NoRun(result);
-
-ShutDownTools(refIsHandle, StartStopRef);
-end.
-
=texter.r.src
-// --------------------------------------------------------------------
-// Genesys created REZ data code
-// Simple Software Systems International, Inc.
-// APWREZ.SCG 1.2
-// --------------------------------------------------------------------
-
-#include "types.rez"
-
-// --- Control Templates
-
-resource rControlTemplate (Text_Edit_Control, $0000) {
- $00000001, // ID
- { 0, 0,170,590}, // rect
- editTextControl {{
- $0000, // flag
- $7C00, // moreFlags
- $00000000, // refCon
- $22280000, // textFlags
- {65535,65535,65535,65535}, // indentRect
- $FFFFFFFF, // vertBar
- $0000, // vertAmount
- $00000000, // horzBar
- $0000, // horzAmount
- $00000000, // styleRef
- $0015, // textDescriptor
- Edit_pString, // textRef
- $00000000, // textLength
- $00000000, // maxChars
- $00000000, // maxLines
- $0000, // maxCharsPerLine
- $0000, // maxHeight
- 0, // colorTableRef
- $0000, // drawMode
- $00000000 // filterProcPtr
- }};
-};
-
-// --- rPString Templates
-
-resource rPString (Apple_pString, $C018) {
- "@"
-};
-
-resource rPString (File_pString, $C018) {
- " File "
-};
-
-resource rPString (Edit_pString, $C018) {
- " Edit "
-};
-
-resource rPString (Windows_pString, $C018) {
- " Windows "
-};
-
-resource rPString (Goodies_pString, $C018) {
- " Goodies "
-};
-
-resource rPString (Undo_pString, $C018) {
- "Undo"
-};
-
-resource rPString (Cut_pString, $C018) {
- "Cut"
-};
-
-resource rPString (Copy_pString, $C018) {
- "Copy"
-};
-
-resource rPString (Paste_pString, $C018) {
- "Paste"
-};
-
-resource rPString (Clear_pString, $C018) {
- "Clear"
-};
-
-resource rPString (Close_pString, $C018) {
- "Close"
-};
-
-resource rPString (About_pString, $C018) {
- "About..."
-};
-
-resource rPString (Quit_pString, $C018) {
- "Quit"
-};
-
-resource rPString (New_pString, $C018) {
- "New"
-};
-
-resource rPString (Open_pString, $C018) {
- "Open..."
-};
-
-resource rPString (Save_pString, $C018) {
- "Save"
-};
-
-resource rPString (SaveAs_pString, $C018) {
- "Save as..."
-};
-
-resource rPString (Page_Setup_pString, $C018) {
- "Page Setup..."
-};
-
-resource rPString (Print_pString, $C018) {
- "Print..."
-};
-
-resource rPString (Window1_pString, $C018) {
- "Window1"
-};
-
-resource rPString (Window2_pString, $C018) {
- "Window2"
-};
-
-resource rPString (Window3_pString, $C018) {
- "Window3"
-};
-
-resource rPString (Window4_pString, $C018) {
- "Window4"
-};
-
-resource rPString (Window5_pString, $C018) {
- "Window5"
-};
-
-resource rPString (Word_Wrap_pString, $C018) {
- "Word Wrap On"
-};
-
-resource rPString (Choose_Font_pString, $C018) {
- "Choose Font"
-};
-
-resource rPString (Text_Window_Title, $0000) {
- " Title "
-};
-
-// --- Menu Bar Definitions
-
-resource rMenuBar (Application_Menu_Bar, $C018) {
- {
- Apple_Menu,
- File_Menu,
- Edit_Menu,
- Window_Menu,
- Goodies_Menu
- };
-};
-
-// --- Menu Definitions
-
-resource rMenu (Apple_Menu, $C018) {
- $0001, // menuID
- $A008, // menuFlag
- Apple_pString, { // menuTitleRef
- About_Menu_Item
- };
-};
-
-resource rMenu (File_Menu, $C018) {
- $0002, // menuID
- $A008, // menuFlag
- File_pString, { // menuTitleRef
- New_Menu_Item,
- Open_Menu_Item,
- Close_Menu_Item,
- Save_Menu_Item,
- SaveAs_Menu_Item,
- Page_Setup_Item,
- Print_Item,
- Quit_Menu_Item
- };
-};
-
-resource rMenu (Edit_Menu, $C018) {
- $0003, // menuID
- $A008, // menuFlag
- Edit_pString, { // menuTitleRef
- Undo_Menu_Item,
- Cut_Menu_Item,
- Copy_Menu_Item,
- Paste_Menu_Item,
- Clear_Menu_Item
- };
-};
-
-resource rMenu (Window_Menu, $C018) {
- $0004, // menuID
- $A008, // menuFlag
- Windows_pString, { // menuTitleRef
- Window1_Item,
- Window2_Item,
- Window3_Item,
- Window4_Item,
- Window5_Item
- };
-};
-
-resource rMenu (Goodies_Menu, $C018) {
- $0005, // menuID
- $A008, // menuFlag
- Goodies_pString, { // menuTitleRef
- Word_Wrap_Item,
- Choose_Font_Item
- };
-};
-
-// --- Menu Item Definitions
-
-resource rMenuItem (Undo_Menu_Item, $C018) {
- $00FA, // itemID
- "Z","z", // itemChar, itemAltChar
- NIL, // itemCheck
- $8040, // itemFlag
- Undo_pString // itemTitleRef
-};
-
-resource rMenuItem (Cut_Menu_Item, $C018) {
- $00FB, // itemID
- "X","x", // itemChar, itemAltChar
- NIL, // itemCheck
- $8000, // itemFlag
- Cut_pString // itemTitleRef
-};
-
-resource rMenuItem (Copy_Menu_Item, $C018) {
- $00FC, // itemID
- "C","c", // itemChar, itemAltChar
- NIL, // itemCheck
- $8000, // itemFlag
- Copy_pString // itemTitleRef
-};
-
-resource rMenuItem (Paste_Menu_Item, $C018) {
- $00FD, // itemID
- "V","v", // itemChar, itemAltChar
- NIL, // itemCheck
- $8000, // itemFlag
- Paste_pString // itemTitleRef
-};
-
-resource rMenuItem (Clear_Menu_Item, $C018) {
- $00FE, // itemID
- "","", // itemChar, itemAltChar
- NIL, // itemCheck
- $8000, // itemFlag
- Clear_pString // itemTitleRef
-};
-
-resource rMenuItem (Close_Menu_Item, $C018) {
- $00FF, // itemID
- "W","w", // itemChar, itemAltChar
- NIL, // itemCheck
- $8080, // itemFlag
- Close_pString // itemTitleRef
-};
-
-resource rMenuItem (About_Menu_Item, $0018) {
- $0100, // itemID
- "","", // itemChar, itemAltChar
- NIL, // itemCheck
- $8040, // itemFlag
- About_pString // itemTitleRef
-};
-
-resource rMenuItem (Quit_Menu_Item, $0018) {
- $0101, // itemID
- "Q","q", // itemChar, itemAltChar
- NIL, // itemCheck
- $8000, // itemFlag
- Quit_pString // itemTitleRef
-};
-
-resource rMenuItem (New_Menu_Item, $C018) {
- $0102, // itemID
- "N","n", // itemChar, itemAltChar
- NIL, // itemCheck
- $8000, // itemFlag
- New_pString // itemTitleRef
-};
-
-resource rMenuItem (Open_Menu_Item, $0018) {
- $0103, // itemID
- "O","o", // itemChar, itemAltChar
- NIL, // itemCheck
- $8040, // itemFlag
- Open_pString // itemTitleRef
-};
-
-resource rMenuItem (Save_Menu_Item, $C018) {
- $0104, // itemID
- "S","s", // itemChar, itemAltChar
- NIL, // itemCheck
- $8080, // itemFlag
- Save_pString // itemTitleRef
-};
-
-resource rMenuItem (SaveAs_Menu_Item, $C018) {
- $0105, // itemID
- "","", // itemChar, itemAltChar
- NIL, // itemCheck
- $80C0, // itemFlag
- SaveAs_pString // itemTitleRef
-};
-
-resource rMenuItem (Page_Setup_Item, $0018) {
- $0107, // itemID
- "","", // itemChar, itemAltChar
- NIL, // itemCheck
- $8080, // itemFlag
- Page_Setup_pString // itemTitleRef
-};
-
-resource rMenuItem (Print_Item, $C018) {
- $0108, // itemID
- "P","p", // itemChar, itemAltChar
- NIL, // itemCheck
- $80C0, // itemFlag
- Print_pString // itemTitleRef
-};
-
-resource rMenuItem (Window1_Item, $C018) {
- $0109, // itemID
- "","", // itemChar, itemAltChar
- NIL, // itemCheck
- $8080, // itemFlag
- Window1_pString // itemTitleRef
-};
-
-resource rMenuItem (Window2_Item, $C018) {
- $010A, // itemID
- "","", // itemChar, itemAltChar
- NIL, // itemCheck
- $8080, // itemFlag
- Window2_pString // itemTitleRef
-};
-
-resource rMenuItem (Window3_Item, $C018) {
- $010B, // itemID
- "","", // itemChar, itemAltChar
- NIL, // itemCheck
- $8080, // itemFlag
- Window3_pString // itemTitleRef
-};
-
-resource rMenuItem (Window4_Item, $C018) {
- $010C, // itemID
- "","", // itemChar, itemAltChar
- NIL, // itemCheck
- $8080, // itemFlag
- Window4_pString // itemTitleRef
-};
-
-resource rMenuItem (Window5_Item, $C018) {
- $010D, // itemID
- "","", // itemChar, itemAltChar
- NIL, // itemCheck
- $8080, // itemFlag
- Window5_pString // itemTitleRef
-};
-
-resource rMenuItem (Word_Wrap_Item, $C018) {
- $010E, // itemID
- "","", // itemChar, itemAltChar
- $0012, // itemCheck
- $8080, // itemFlag
- Word_Wrap_pString // itemTitleRef
-};
-
-resource rMenuItem (Choose_Font_Item, $C018) {
- $010F, // itemID
- "F","f", // itemChar, itemAltChar
- NIL, // itemCheck
- $8080, // itemFlag
- Choose_Font_pString // itemTitleRef
-};
-
-// --- Window Templates
-
-resource rWindParam1 (Text_Window, $0000) {
- $C1A0, // plFrame (frame bits)
- Text_Window_Title, // plTitle (title ID)
- $00000000, // plRefCon
- { 0, 0, 0, 0}, // plZoomRect
- Text_Window_wColor, // plColorTable
- {$0000, $0000}, // plYOrigin, plXOrigin
- {$0000, $0000}, // plDataHeight, plDataWidth
- {$0000, $0000}, // plMaxHeight, plMaxWidth
- {$0000, $0000}, // plVerScroll, plHorScroll
- {$0000, $0000}, // plVerPage, plHorPage
- $00000000, // plInfoText (info RefCon)
- $0000, // plInfoHeight
- { 27, 24,197,614}, // plPosition
- infront, // plPlane
- Text_Edit_Control, // plControlList
- $0A02 // plInDesc
-};
-
-// --- Window Color Templates
-
-resource rWindColor (Text_Window_wColor, $0000) {
- $0000, // frameColor
- $0F00, // titleColor
- $0207, // tBarColor
- $F0FF, // growColor
- $F0F0 // infoColor
-};
-
-// --- Tool Startup Table Templates
-
-resource rToolStartup (Tool_Startup_Table, $0000) {
- $C080, { // videoMode
- 3, $0300, // Miscellaneous Tools
- 4, $0301, // QuickDraw II
- 5, $0302, // Desk Manager
- 6, $0300, // Event Manager
- 11, $0200, // Integer Math
- 14, $0301, // Window Manager
- 15, $0301, // Menu Manager
- 16, $0301, // Control Manager
- 18, $0301, // QuickDraw II Aux.
- 19, $0300, // Print Manager
- 20, $0301, // LineEdit Tools
- 21, $0301, // Dialog Manager
- 22, $0300, // Scrap Manager
- 23, $0301, // Standard File Tools
- 27, $0301, // Font Manager
- 28, $0301, // List Manager
- 30, $0100, // Resource Manager
- 34, $0101 // TextEdit Manager
- }
-};
-
-// --- rAlertString Templates
-
-resource rAlertString (Printing_Alert, $0000) {
- "53~A Printing Error Has Occurred!~^#6"
- "\$00"
-};
-
-resource rAlertString (Tool_Error_Alert, $0000) {
- "54~Tool Error *0 Has Occurred at *1!~^#6"
- "\$00"
-};
-
-resource rAlertString (Save_Alert, $0000) {
- "23~"
- "\$0D"
- " Save Changes?~#1~#3~^#2"
- "\$00"
-};
-
-// --- rText Templates
-
-resource rText (Window_Text, $0000) {
- " "
-};
-
+ END OF ARCHIVE