home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-04-20 | 2.1 KB | 77 lines | [TEXT/PJMM] |
- unit MyTEUtils;
-
- { This program was written by Peter N Lewis, Mar 1992 in THINK Pascal 4.0.1 }
-
- interface
-
- function TEEditMenuEnabled (te: TEHandle; static: boolean; maxsize: longInt): boolean;
- procedure TESetEditMenuItem (te: TEHandle; static: boolean; maxsize: longInt; item: integer);
- function TEDoEditMenu (te: TEHandle; static: boolean; maxsize: longInt; item: integer): boolean;
-
- implementation
-
- uses
- MyTypes, BaseGlobals, MyUtils;
-
- function TEEditMenuEnabled (te: TEHandle; static: boolean; maxsize: longInt): boolean;
- var
- i: integer;
- begin
- for i := EMundo to EMselectall do
- TESetEditMenuItem(te, static, maxsize, i);
- TEEditMenuEnabled := GetMHandle(M_Edit)^^.enableFlags <> 0;
- end;
-
- procedure TESetEditMenuItem (te: TEHandle; static: boolean; maxsize: longInt; item: integer);
- var
- offset: longInt;
- begin
- case item of
- EMundo:
- SetIDItemEnable(M_Edit, item, false);
- EMcut, EMclear:
- SetIDItemEnable(M_Edit, item, not static & (te^^.selStart < te^^.selEnd)); { Can cut,clear if there is a selection }
- EMcopy:
- SetIDItemEnable(M_Edit, item, te^^.selStart < te^^.selEnd); { Can copy iff there is a selection }
- EMpaste:
- SetIDItemEnable(M_Edit, item, not static & (GetScrap(nil, 'TEXT', offset) > 0) & (TEGetScrapLen + (te^^.teLength - (te^^.selEnd - te^^.selStart)) < maxsize));
- EMselectall:
- SetIDItemEnable(M_Edit, item, te^^.teLength > 0); { Can select all iff there is something to select }
- otherwise
- end;
- end;
-
- function TEDoEditMenu (te: TEHandle; static: boolean; maxsize: longInt; item: integer): boolean;
- var
- loe, oe: OSErr;
- begin
- TEDoEditMenu := true;
- case item of
- EMcopy: begin
- TECopy(te);
- loe := ZeroScrap;
- oe := TEToScrap;
- TEDoEditMenu := false;
- end;
- EMselectall: begin
- SetPort(FrontWindow);
- TESetSelect(0, maxLongInt, te);
- TEDoEditMenu := false;
- end;
- EMcut: begin
- TECut(te);
- loe := ZeroScrap;
- oe := TEToScrap;
- end;
- EMclear: begin
- TEDelete(te);
- end;
- EMpaste: begin
- oe := TEFromScrap;
- TEPaste(te);
- end;
- otherwise
- end;
- end;
-
- end.