source: trunk/dll/mle.h@ 689

Last change on this file since 689 was 551, checked in by Gregg Young, 19 years ago

Indentation cleanup

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 9.8 KB
Line 
1/**************************************************************************/
2/* MLE text editor/viewer source code */
3/* copyright (c) 1993 by M. Kimes */
4/* All rights reserved */
5/**************************************************************************/
6
7/* MLE support macros */
8
9/* return number of lines in file */
10#define MLEnumlines(h) (LONG)WinSendMsg((h),MLM_QUERYLINECOUNT,\
11 MPVOID,MPVOID)
12
13/* return line # from position i */
14#define MLElinefrompos(h,i) (LONG)WinSendMsg((h),MLM_LINEFROMCHAR,\
15 MPFROMLONG((LONG)(i)),MPVOID)
16
17/* return current position of cursor */
18#define MLEcurpos(h) (IPT)WinSendMsg((h),MLM_QUERYSEL,\
19 MPFROM2SHORT(MLFQS_CURSORSEL,0),MPVOID)
20
21/* return current position of anchor */
22#define MLEancpos(h) (IPT)WinSendMsg((h),MLM_QUERYSEL,\
23 MPFROM2SHORT(MLFQS_ANCHORSEL,0),MPVOID)
24
25/* return current line # cursor is on */
26#define MLEcurline(h) (LONG)WinSendMsg((h),MLM_LINEFROMCHAR,\
27 MPFROMLONG(WinSendMsg((h),MLM_QUERYSEL,\
28 MPFROM2SHORT(MLFQS_CURSORSEL,0),MPVOID)),MPVOID)
29
30/* return current line # anchor is on */
31#define MLEancline(h) (LONG)WinSendMsg((h),MLM_LINEFROMCHAR,\
32 MPFROMLONG(WinSendMsg((h),MLM_QUERYSEL,\
33 MPFROM2SHORT(MLFQS_CURSORSEL,0),MPVOID)),MPVOID)
34
35/* return len of remainder of line at cursor position */
36#define MLEcurlenleft(h) (LONG)WinSendMsg((h),MLM_QUERYFORMATLINELENGTH,\
37 MPFROMLONG(-1L),MPVOID)
38
39/* return len of remainder of line at position i */
40#define MLElinelenleft(h,i) (LONG)WinSendMsg((h),MLM_QUERYFORMATLINELENGTH,\
41 MPFROMLONG((LONG)i),MPVOID)
42
43/* return total len of current line */
44#define MLEcurlinelen(h) (LONG)WinSendMsg((h),MLM_QUERYFORMATLINELENGTH,\
45 MPFROMLONG(WinSendMsg((h),MLM_CHARFROMLINE,\
46 MPFROMLONG(-1L),MPVOID)),MPVOID)
47
48/* return total len of line # l */
49#define MLElinelen(h,l) (LONG)WinSendMsg((h),MLM_QUERYFORMATLINELENGTH,\
50 MPFROMLONG(WinSendMsg((h),MLM_CHARFROMLINE,\
51 MPFROMLONG((l)),MPVOID)),MPVOID)
52
53/* return start pos of current line cursor is on */
54#define MLEstartofcurline(h) (IPT)WinSendMsg((h),MLM_CHARFROMLINE,\
55 MPFROMLONG(-1L),MPVOID)
56
57/* return start pos of line l */
58#define MLEstartofline(h,l) (IPT)WinSendMsg((h),MLM_CHARFROMLINE,\
59 MPFROMLONG((l)),MPVOID)
60
61/* copy selected text into buffer b, return len of text copied */
62#define MLEgetseltext(h,b) (LONG)WinSendMsg((h),MLM_QUERYSELTEXT,\
63 MPFROMP((b)),MPVOID)
64
65/* insert text s into selection */
66#define MLEinsert(h,s) WinSendMsg((h),MLM_INSERT,MPFROMP((s)),MPVOID)
67
68/* delete text from pos f to pos t */
69#define MLEdelete(h,f,t) (LONG)WinSendMsg(h,MLM_DELETE,\
70 MPFROMLONG((IPT)(f)),\
71 MPFROMLONG((LONG)(t)))
72
73/* set current cursor (and anchor) position to i */
74#define MLEsetcurpos(h,i) WinSendMsg((h),MLM_SETSEL,\
75 MPFROMLONG((LONG)(i)),MPFROMLONG((LONG)(i)))
76
77/* set current cursor position to i, don't move anchor */
78#define MLEsetcurposc(h,i) WinSendMsg((h),MLM_SETSEL,\
79 MPFROMLONG((LONG)(i)),MPFROMLONG(-1L))
80
81/* set current anchor position to i, don't move cursor */
82#define MLEsetcurposa(h,i) WinSendMsg((h),MLM_SETSEL,\
83 MPFROMLONG(-1L),MPFROMLONG((LONG)(i)))
84
85/* set first line in window to line # l */
86#define MLEsettopline(h,l) WinSendMsg((h),MLM_SETFIRSTCHAR,(MPARAM)\
87 WinSendMsg((h),MLM_CHARFROMLINE,\
88 WinSendMsg((h),MLM_LINEFROMCHAR,\
89 MPFROMLONG((LONG)(l)),MPVOID),\
90 MPVOID),MPVOID)
91
92/* set changed flag to boolean state b */
93#define MLEsetchanged(h,b) WinSendMsg((h),MLM_SETCHANGED,\
94 MPFROM2SHORT((b),0),MPVOID)
95
96/* get changed flag */
97#define MLEgetchanged(h) (BOOL)WinSendMsg((h),MLM_QUERYCHANGED,MPVOID,MPVOID)
98
99/* set MLE wrap to boolean state b */
100#define MLEsetwrap(h,b) WinSendMsg((h),MLM_SETWRAP,MPFROM2SHORT((b),0),\
101 MPVOID)
102
103/* return MLE wrap boolean state */
104#define MLEgetwrap(h) (BOOL)WinSendMsg((h),MLM_QUERYWRAP,MPVOID,MPVOID)
105
106/* set MLE readonly to boolean state b */
107#define MLEsetreadonly(h,b) WinSendMsg((h),MLM_SETREADONLY,\
108 MPFROM2SHORT((b),0),MPVOID)
109
110/* return MLE readonly boolean state */
111#define MLEgetreadonly(h) (BOOL)WinSendMsg((h),MLM_QUERYREADONLY,MPVOID,MPVOID)
112
113/* set text limit to l */
114#define MLEsetlimit(h,l) WinSendMsg((h),MLM_SETTEXTLIMIT,\
115 MPFROMLONG((LONG)(l)),MPVOID)
116
117/* return text limit */
118#define MLEgetlimit(h) (LONG)WinSendMsg((h),MLM_QUERYFORMATTEXTLIMIT,MPVOID,MPVOID)
119
120/* set format to format f */
121#define MLEsetformat(h,f) WinSendMsg((h),MLM_FORMAT,\
122 MPFROM2SHORT((f),0), MPVOID)
123
124/* disable MLE refresh */
125#define MLEdisable(h) WinSendMsg((h),MLM_DISABLEREFRESH,MPVOID,MPVOID)
126
127/* enable MLE refresh */
128#define MLEenable(h) WinSendMsg((h),MLM_ENABLEREFRESH,MPVOID,MPVOID)
129
130/* clear (cut and discard) current selection */
131#define MLEclear(h) WinSendMsg((h),MLM_CLEAR,MPVOID,MPVOID)
132
133/* cut current selection to clipboard */
134#define MLEcut(h) WinSendMsg((h),MLM_CUT,MPVOID,MPVOID)
135
136/* copy current selection to clipboard */
137#define MLEcopy(h) WinSendMsg((h),MLM_COPY,MPVOID,MPVOID)
138
139/* paste clipboard into current selection */
140#define MLEpaste(h) WinSendMsg((h),MLM_PASTE,MPVOID,MPVOID)
141
142/* undo last MLE operation */
143#define MLEundo(h) WinSendMsg((h),MLM_UNDO,MPVOID,MPVOID)
144
145/* return length of text in MLE */
146#define MLEgetlen(h) (LONG)WinSendMsg((h),MLM_QUERYFORMATTEXTLENGTH,\
147 MPFROMLONG(0),MPFROMLONG((LONG)WinSendMsg((h),\
148 MLM_QUERYTEXTLENGTH,MPVOID,MPVOID)))
149
150/* select all text in MLE */
151#define MLEselectall(h) WinSendMsg((h),MLM_SETSEL,MPFROMLONG(0L),\
152 (MPARAM)WinSendMsg((h),MLM_QUERYFORMATTEXTLENGTH,\
153 MPFROMLONG(0),MPFROMLONG(0xfffffffe)))
154
155/* select all text in MLE from cursor to end of file */
156#define MLEselecttoeof(h) WinSendMsg((h),MLM_SETSEL,\
157 (IPT)WinSendMsg((h),MLM_QUERYSEL,\
158 MPFROM2SHORT(MLFQS_CURSORSEL,0),MPVOID),\
159 (MPARAM)WinSendMsg((h),MLM_QUERYFORMATTEXTLENGTH,\
160 MPFROMLONG(0),MPFROMLONG(0xfffffffe)))
161
162/* set anchor point equal to cursor point (no text will be selected) */
163#define MLEanctocur(h) WinSendMsg((h),MLM_SETSEL,\
164 MPFROMLONG((LONG)WinSendMsg((h),MLM_QUERYSEL,\
165 MPFROM2SHORT(MLFQS_CURSORSEL,0),MPVOID)),\
166 MPFROMLONG(-1L))
167
168/* set cursor point equal to anchor point (no text will be selected) */
169#define MLEcurtoanc(h) WinSendMsg((h),MLM_SETSEL,MPFROMLONG(-1L),\
170 MPFROMLONG((LONG)WinSendMsg((h),MLM_QUERYSEL,\
171 MPFROM2SHORT(MLFQS_ANCHORSEL,0),MPVOID)))
172
173/* swap cursor point with anchor point */
174#define MLEswappoints(h) WinSendMsg((h),MLM_SETSEL,\
175 MPFROMLONG((LONG)WinSendMsg((h),MLM_QUERYSEL,\
176 MPFROM2SHORT(MLFQS_ANCHORSEL,0),MPVOID)),\
177 MPFROMLONG((LONG)WinSendMsg((h),MLM_QUERYSEL,\
178 MPFROM2SHORT(MLFQS_CURSORSEL,0),MPVOID)))
179
180/* declarations of functions in mle.c */
181LONG MLEgetlinetext(HWND h, LONG l, CHAR * buf, INT maxlen);
182LONG MLEdeleteline(HWND h, LONG l);
183LONG MLEdeletecurline(HWND h);
184LONG MLEdeletetoeol(HWND h);
185VOID MLEclearall(HWND h);
186LONG MLEtextatcursor(HWND h, CHAR * buffer, INT buflen);
187LONG MLEtextatpos(HWND h, IPT i, CHAR * buffer, INT buflen);
188LONG MLEsizeofsel(HWND h);
189BOOL MLEdoblock(HWND h, INT action, CHAR * filename);
190BOOL MLEquotepara(HWND h, CHAR * initials, BOOL fQuoteOld);
191BOOL MLEinsertfile(HWND h, CHAR * filename);
192BOOL MLEHexLoad(HWND h, CHAR * filename);
193BOOL MLEloadfile(HWND h, CHAR * filename);
194INT MLEbackgroundload(HWND hwndReport, ULONG msg, HWND h, CHAR * filename,
195 INT hex);
196BOOL MLEexportfile(HWND h, CHAR * filename, INT tabspaces,
197 BOOL striptraillines, BOOL striptrailspaces);
198typedef struct
199{
200 USHORT size;
201 BOOL fInsensitive;
202 BOOL sandr;
203 BOOL rall;
204 HWND hwndmle;
205 MLE_SEARCHDATA se;
206 CHAR search[258];
207 CHAR replace[258];
208}
209SRCHPTR;
210MRESULT EXPENTRY SandRDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
211BOOL MLEfindfirst(HWND hwnd, SRCHPTR * vw);
212INT MLEfindnext(HWND hwnd, SRCHPTR * vw);
213VOID MLEinternet(HWND h, BOOL ftp);
214
215/* declarations of functions in mlefont.c */
216FATTRS *SetMLEFont(HWND hwndMLE, FATTRS * fattrs, ULONG flags);
217
218/* struct used by MLE editor/viewer, saved in window pointer */
219
220typedef struct
221{
222 USHORT size;
223 USHORT hex;
224 HAB hab;
225 BOOL fWrap;
226 SRCHPTR srch;
227 HWND hwndMenu;
228 HWND hwndPopupMenu;
229 HACCEL accel;
230 BOOL ch;
231 BOOL fStripTrail;
232 BOOL fStripTrailLines;
233 INT ExpandTabs;
234 INT TabStops;
235 CHAR exportfilename[1027];
236 CHAR importfilename[1027];
237 FATTRS fattrs;
238 ULONG cp;
239 INT busy;
240 ULONG lastpos;
241 BOOL killme;
242 BOOL dontclose;
243 HWND hwndRestore, hwndFrame, hwndParent;
244}
245XMLEWNDPTR;
246
247/* declarations of functions in mlemain.c */
248HWND StartMLEEditor(HWND hwnd, INT flags, CHAR * filename, HWND hwndRestore);
249MRESULT EXPENTRY MLEEditorProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
250
251/* MLEdoblock() actions */
252
253#define UPPERCASE 1
254#define LOWERCASE 2
255#define TOGGLECASE 3
256#define ROT13 4
257#define FORMAT 5
258#define XOR 6
259#define WRITE 7
260#define APPENDCLIP 8
261
262#define ParentOf(hwnd) WinQueryWindow((hwnd),QW_PARENT)
263#define GrandparentOf(hwnd) WinQueryWindow(WinQueryWindow(hwnd,QW_PARENT),QW_PARENT)
Note: See TracBrowser for help on using the repository browser.