home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* EDIT.PAS *)
- (* (c) 1993 te-wi Verlag, München *)
- (* ------------------------------------------------------ *)
- PROGRAM Edit;
-
- {$A+,B-,D+,E+,F-,G-,I+,L+,N-,O-,P-,Q+,R+,S+,T-,V+,X+,Y+}
- {$M 16384,0,655360}
-
- USES Objects, Drivers, Memory, Views, Menus, App,
- Dialogs, MsgBox, StdDlg, TxEdit;
-
- CONST
- cmAbout = 100;
- cmClipShow = 101;
- cmOptionsLoad = 102;
- cmOptionsSave = 103;
- cmGetContext = 104;
-
- hcAbout = 100;
- hcGetContext = 103;
- hcGoto = 104;
- hcFind = 105;
- hcReplace = 106;
-
- PROCEDURE EditStreamError(VAR S : tStream); FAR;
- (* aus TV-Manual S.49 *)
- VAR
- ErrMsg : STRING;
- BEGIN
- CASE S.Status OF
- stError : ErrMsg := 'Stream access error';
- stInitError : ErrMsg := 'Cannot initialize stream';
- stReadError : ErrMsg := 'Read beyond end of stream';
- stWriteError : ErrMsg := 'Cannot expand stream';
- stGetError : ErrMsg := 'Unregistered type read from stream';
- stPutError : ErrMsg := 'Unregistered type written to stream';
- END;
- DoneVideo;
- PrintStr('Error: ' + ErrMsg);
- Halt(S.Status);
- END;
-
- TYPE
- tEditApp = OBJECT (tApplication)
- ClipboardWindow : pEditWindow;
-
- CONSTRUCTOR Init;
- PROCEDURE InitStatusLine; VIRTUAL;
- PROCEDURE InitMenuBar; VIRTUAL;
- PROCEDURE DoAboutBox; VIRTUAL;
- PROCEDURE HandleEvent(VAR Event : tEvent); VIRTUAL;
- PROCEDURE NewEditWin;
- PROCEDURE OpenWindow;
- PROCEDURE ShowClipBoard;
- PROCEDURE SaveDesktop;
- PROCEDURE LoadDesktop;
- END;
-
- PROCEDURE tEditApp.SaveDesktop;
- VAR
- DeskFile : tBufStream;
- BEGIN
- Desktop^.Delete(ClipBoardWindow);
- WITH DeskFile DO BEGIN
- Init('EDIT.DSK', stCreate, 1024);
- Put(Desktop);
- Done;
- END;
- InsertWindow(ClipBoardWindow);
- END;
-
- PROCEDURE tEditApp.LoadDesktop;
- VAR
- DeskFile : tBufStream;
- TempDesk : pDesktop;
- R : tRect;
- BEGIN
- DeskFile.Init('EDIT.DSK', stOpenRead, 1024);
- TempDesk := pDeskTop(DeskFile.Get);
- DeskFile.Done;
- IF ValidView(TempDesk) <> NIL THEN BEGIN
- Desktop^.Delete(ClipboardWindow);
- Delete(Desktop);
- Dispose(Desktop, Done);
- Desktop := TempDesk;
- Insert(Desktop);
- GetExtent(R);
- R.Grow(0, -1);
- Desktop^.Locate(R);
- InsertWindow(ClipboardWindow);
- END;
- END;
-
- PROCEDURE tEditApp.ShowClipBoard;
- BEGIN
- WITH ClipBoardWindow^ DO BEGIN
- Select;
- Show;
- END;
- END;
-
- PROCEDURE tEditApp.OpenWindow;
- VAR
- R : tRect;
- F : pFileDialog;
- N : FNameStr;
- BEGIN
- N := '*.*';
- New(F, Init(N, 'Open File', '~F~ile name',
- fdOkButton OR fdOpenButton, 1));
- IF ExecuteDialog(F, @N) <> cmCancel THEN BEGIN
- GetExtent(R);
- Dec(R.B.Y, 2);
- InsertWindow(New(pEditWindow, Init(R, N, wnNoNumber)));
- END;
- END;
-
- CONSTRUCTOR tEditApp.Init;
- VAR
- R : tRect;
- BEGIN
- MaxHeapSize := 8192;
- EditorDialog := StdEditorDialog;
- StreamError := @EditStreamError;
- RegisterObjects;
- RegisterViews;
- RegisterApp;
- RegisterEditors;
- inherited Init;
- Desktop^.GetExtent(R);
- ClipBoardWindow := New(pEditWindow, Init(R, '', wnNoNumber));
- IF ValidView(ClipBoardWindow) <> NIL THEN BEGIN
- ClipBoardWindow^.Hide;
- InsertWindow(ClipboardWindow);
- ClipBoard := ClipBoardWindow^.Editor;
- ClipBoard^.CanUndo := FALSE;
- END;
- END;
-
- PROCEDURE tEditApp.NewEditWin;
- VAR
- R : tRect;
- E : pEditWindow;
- BEGIN
- GetExtent(R);
- Dec(R.B.Y, 2);
- E := New(pEditWindow, Init(R, '', wnNoNumber));
- InsertWindow(E);
- END;
-
- PROCEDURE tEditApp.DoAboutBox;
- BEGIN
- MessageBox(#3'EDIT.PAS'#13+
- #3'Mit Turbo Vision 2.0 erstellter Editor'#13+
- #3'(c) 1993 te-wi Verlag, München'#13#13,
- NIL, mfInformation OR mfOkButton);
- END;
-
- PROCEDURE tEditApp.HandleEvent(VAR Event : tEvent);
- BEGIN
- inherited HandleEvent(Event);
-
- IF Event.What = evCommand THEN BEGIN
- CASE Event.Command OF
- cmAbout : DoAboutBox;
- cmNew : NewEditWin;
- cmOpen : OpenWindow;
- cmClipShow : ShowClipBoard;
- cmOptionsSave : SaveDesktop;
- cmOptionsLoad : LoadDesktop;
- ELSE
- Exit;
- END;
- ClearEvent(Event);
- END;
- END;
-
- PROCEDURE tEditApp.InitMenuBar;
- VAR
- R : tRect;
- BEGIN
- GetExtent(R);
- R.B.Y := R.A.Y + 1;
- MenuBar := New(pMenuBar, Init(R, NewMenu(
- NewSubMenu('~≡~', hcNoContext, NewMenu(
- NewItem('~A~bout...', '', kbNoKey, cmAbout, hcAbout,
- NIL)),
- NewSubMenu('~F~ile', hcNoContext, NewMenu(
- NewItem('~N~ew', '', kbNoKey, cmNew, hcNew,
- NewItem('~O~pen...', 'F3', kbF3, cmOpen, hcOpen,
- NewItem('~S~ave', 'F2', kbF2, cmSave, hcSave,
- NewItem('Save ~a~s...', '', kbNoKey, cmSaveAs, hcSaveAs,
- NewLine(
- NewItem('E~x~it', 'Alt+X', kbAltX, cmQuit, hcExit,
- NIL))))))),
- NewSubMenu('~E~dit', hcNoContext, NewMenu(
- NewItem('~U~ndo', '', kbAltBack, cmUndo, hcNoContext,
- NewLine(
- NewItem('Cu~t~', 'Shift-Del', kbShiftDel, cmCut, hcNoContext,
- NewItem('~C~opy', 'Ctrl-Ins', kbCtrlIns, cmCopy, hcNoContext,
- NewItem('~P~aste', 'Shift-Ins', kbShiftIns, cmPaste, hcNoContext,
- NewItem('C~l~ear', 'Ctrl-Del', kbCtrlDel, cmClear, hcNoContext,
- NewLine(
- NewItem('~S~how clipboard', '', kbNoKey, cmClipShow,
- hcNoContext,
- NIL))))))))),
- NewSubMenu('~S~earch', hcNoContext, NewMenu(
- NewItem('~S~earch', '', kbNoKey, cmFind, hcFind,
- NewItem('~R~eplace', '', kbNoKey, cmReplace, hcReplace,
- NewItem('~G~oto', '', kbNoKey, cmGoto, hcGoto,
- NIL)))),
- NewSubMenu('~O~ptions', hcNoContext, NewMenu(
- NewItem('~L~oad desktop', '', kbNoKey, cmOptionsLoad, hcNoContext,
- NewItem('~S~ave desktop', '', kbNoKey, cmOptionsSave, hcNoContext,
- NIL))),
- NewSubMenu('~W~indow', hcNoContext, NewMenu(
- StdWindowMenuItems(NIL)),
- NIL)))))))));
- END;
-
- PROCEDURE tEditApp.InitStatusLine;
- VAR
- R : tRect;
- BEGIN
- GetExtent(R);
- R.A.Y := R.B.Y - 1;
- New(StatusLine, Init(R,
- NewStatusDef(0, $F000,
- NewStatusKey('~Alt-X~ Exit', kbAltX, cmQuit,
- NewStatusKey('~F2~ Save', kbF2, cmSave,
- NewStatusKey('~F3~ Open', kbF3, cmOpen,
- NewStatusKey('', kbCtrlF1, cmGetWord,
- StdStatusKeys(NIL))))),
- NIL)));
- END;
-
- VAR
- EditApp : tEditApp;
-
- BEGIN
- EditApp.Init;
- EditApp.Run;
- EditApp.Done;
- END.
- (* ------------------------------------------------------ *)
- (* Ende von EDIT.PAS *)
-
-