Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwvhtmldesigner.pls
More file actions
429 lines (361 loc) · 14.3 KB
/
Copy pathwvhtmldesigner.pls
File metadata and controls
429 lines (361 loc) · 14.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
*---------------------------------------------------------------
.
. Program Name: wvhtmldesigner
. Description: WebView Designer for HTMLCONTROL
.
. Revision History:
.
. V1.0 21 Jun 2019 W Keech Original code
. V2.0 27 Feb 2022 T Keech Redesign
.
INCLUDE plbequ.inc
INCLUDE plbmeth.inc
INCLUDE plbstdlib.inc
*---------------------------------------------------------------
.
.
EditForm PLFORM "wvdesignerf1.pwf"
SaveForm PLFORM "wvdesignerf2.pwf"
Client CLIENT
CliInfo DIM 1024
.
FullHtml DIM 64000
DataUni DIM 64000
JsonData DIM 200
JsonEvent XDATA
.
Result FORM 5
CurIndex FORM 5
Info DIM 30
.
SnipData DIM 32000
SnipFileName DIM 270
SnipFile FILE
Seq FORM "-1"
Zero FORM "0"
Rep7F INIT "|",0x7F
.
FileName DIM 270
D1 DIM 1
Right FORM 5
Bottom FORM 5
IsWin FORM "0"
IsUtf8 FORM "0"
htmlChangedFlag FORM 1
htmlChangeAns FORM 1
HtmlPageBlank INIT "<html><head>",0xD,0xA:
"<style>",0XD,0XA:
"</style>",0XD,0XA:
"</head>",0XD,0XA:
"<body>",0xd,0xa:
"</body>",0xd,0xa:
"</html>",0xd,0xa
*................................................................
.
. Code start
.
CALL Main
LOOP
EVENTWAIT
REPEAT
STOP
*................................................................
.
. SaveIt - Handle the Save button on the Save Dialog
.
SaveIt LFUNCTION
ENTRY
CLEAR SnipData
GETPROP EditText2,Text=SnipFileName
SCAN ".snip" Into SnipFileName
IF Equal
LENSET SnipFileName
ELSE
ENDSET SnipFileName
APPEND "." To SnipFileName
ENDIF
GETPROP CheckBox1, Value=IsUtf8
IF (IsUtf8 == 0 )
GETPROP mainWinHtmlEdittext,Text=SnipData
APPEND "snip" To SnipFileName
ELSE
APPEND "snip8" To SnipFileName
IF (IsWin == 0 )
Client.SetUTF8Convert Using 0
GETPROP mainWinHtmlEdittext,Text=SnipData
Client.SetUTF8Convert Using 1
ELSE
mainWinHtmlEdittext.GetUnicode Giving DataUni
CONVERTUTF DataUni, SnipData, "8" ;Convert Unicode to UTF8
ENDIF
ENDIF
RESET SnipFileName
SETPROP EditText2,Text=SnipFileName
PREP SnipFile,SnipFileName
WEOF SnipFile,Zero
WRITE SnipFile,Seq;*LL,*ABSON, SnipData;
CLOSE SnipFile
DEACTIVATE SaveDialog
CLEAR htmlChangedFlag
FUNCTIONEND
*................................................................
.
. CancelIt - Handle the Cancel button on the Save dialog
.
CancelIt LFUNCTION
ENTRY
DEACTIVATE SaveDialog
FUNCTIONEND
*................................................................
.
. SaveAs - Handle the Save As button
.
SaveAs LFUNCTION
ENTRY
ACTIVATE SaveDialog
FUNCTIONEND
*................................................................
.
. TemplateReset - Reset the template
.
TemplateReset LFUNCTION
ENTRY
SETPROP mainWinHtmlEdittext,Text=HtmlPageBlank
SETPROP HtmlCtl, InnerHtml=""
FUNCTIONEND
*................................................................
.
. loadSnippetListview - Load snippet list
.
loadSnippetListview LFUNCTION
ENTRY
snipNames DIM 32000
FINDDIR "wvsnippets\*.snip*", snipNames, MODE=3
mainWinSnippetListview.DeleteAllItems
PACK snipNames, snipNames, "|F"
LOOP
EXPLODE snipNames, "|", FileName
BREAK If Zero
UNPACK FileName Into D1,SnipFileName
TYPE SnipFileName
BREAK if EOS
mainWinSnippetListview.InsertItem Using SnipFileName
REPEAT
SETFOCUS mainWinSnippetListview //ERB
FUNCTIONEND
*................................................................
.
. ResetIt - Reset the edit area
.
ResetIt LFUNCTION
ENTRY
SETPROP mainWinHtmlEdittext,Text=HtmlPageBlank
mainWinEventListview.DeleteAllItems
CALL TemplateReset
FUNCTIONEND
*................................................................
.
. LoadTemplate - Load a template from disk
.
LoadTemplate LFUNCTION
ENTRY
result FORM 5
mainWinEventListview.DeleteAllItems
EVENTINFO 0,result=Result
IF ( htmlChangedFlag )
ALERT plain,"Save changes to .snip file?",htmlChangeAns,"Html content has changed"
SWITCH htmlChangeAns
CASE 1
CALL SaveAs
CASE 3
RETURN
ENDSWITCH
ENDIF
mainWinSnippetListview.GetItemText Giving FileName Using Result
PACK SnipFileName Using "wvsnippets\", FileName
CHOP SnipFileName
SETPROP EditText2,Text=SnipFileName
OPEN SnipFile,SnipFileName
READ SnipFile,Seq;*LL,*ABSON, SnipData;
CLOSE SnipFile
SCAN ".snip8" Into SnipFileName
IF Equal
MOVE "1" To IsUtf8
ELSE
MOVE "0" To IsUtf8
ENDIF
SETPROP CheckBox1, Value=IsUtf8
IF (IsUtf8 == 0 )
SETPROP mainWinHtmlEdittext,Text=SnipData
ELSE
IF (IsWin == 0 )
Client.SetUTF8Convert Using 0
SETPROP mainWinHtmlEdittext,Text=SnipData
Client.SetUTF8Convert Using 1
ELSE
CONVERTUTF SnipData, DataUni, "6" ;Convert input UTF8 to UTF16
mainWinHtmlEdittext.SetUnicode Using DataUni
ENDIF
ENDIF
PACK S$CMDLIN, "HtmlControl Template '",SnipFileName,"'" //ERB
CLEAR htmlChangedFlag
FUNCTIONEND
*................................................................
.
. EnableIt - Test the enabled property
.
EnableIt LFUNCTION
ENTRY
SETPROP HtmlCtl,Enabled=1
FUNCTIONEND
*................................................................
.
. DisableIt - Test the disabled property
.
DisableIt LFUNCTION
ENTRY
SETPROP HtmlCtl,Enabled=0
FUNCTIONEND
*................................................................
.
. TestHtml - Test the HTML
.
TestHtml LFUNCTION
ENTRY
GETPROP CheckBox1, Value=IsUtf8
IF (IsUtf8 == 0 )
SETPROP HtmlCtl,CodePage=1
GETPROP mainWinHtmlEdittext,Text=FullHtml
ELSE
SETPROP HtmlCtl,CodePage=0
IF (IsWin == 0 )
Client.SetUTF8Convert Using 0
GETPROP mainWinHtmlEdittext,Text=FullHtml
Client.SetUTF8Convert Using 1
ELSE
mainWinHtmlEdittext.GetUnicode Giving DataUni
CONVERTUTF DataUni, FullHtml, "8" ;Convert Unicode to UTF8
ENDIF
ENDIF
// Turn on context menu for debugging
HtmlCtl.ContextMenu Using 1
// Could have used HtmlCtl.InnerHtml Using FullHtml
SETPROP HtmlCtl,InnerHtml=FullHtml
FUNCTIONEND
*................................................................
.
. HtmlEvCtl - Display the HTMLCONTROL event information
.
HtmlEvCtl LFUNCTION
ENTRY
JsonEvent.LoadJson Using JsonData
CALL FetchJsonStr Using JsonEvent,"type",Info
mainWinEventListview.InsertItemEx Giving CurIndex Using Info
CALL FetchJsonStr Using JsonEvent,"id",Info
mainWinEventListview.SetItemText Using CurIndex, Info, 1
CALL FetchJsonStr Using JsonEvent,"pageX",Info
mainWinEventListview.SetItemText Using CurIndex, Info, 2
CALL FetchJsonStr Using JsonEvent,"pageY",Info
mainWinEventListview.SetItemText Using CurIndex, Info, 3
CALL FetchJsonStr Using JsonEvent,"metaKey",Info
mainWinEventListview.SetItemText Using CurIndex, Info, 4
CALL FetchJsonStr Using JsonEvent,"which",Info
mainWinEventListview.SetItemText Using CurIndex, Info, 5
CALL FetchJsonStr Using JsonEvent,"target",Info
mainWinEventListview.SetItemText Using CurIndex, Info, 6
FUNCTIONEND
*................................................................
.
. mainWinToolbarClick - dispatch mainWinToolBar events
.
mainWinToolbarClick LFUNCTION
ENTRY
toolBarResult INTEGER 4
EVENTINFO 0,result=toolBarResult
DEBUG
PERFORM toolbarResult of mainWinSnippetListviewDBlClick:
saveAs:
resetIt:
testHtml:
disableIt:
enableIt:
mainWinexit
FUNCTIONEND
*................................................................
.
. mainWinSnippetListviewClick - dispatch mainWinToolBar events
.
mainWinSnippetListviewClick LFUNCTION
ENTRY
CALL loadTemplate
CALL testHtml
FUNCTIONEND
*................................................................
.
. mainWinSnippetListviewDoubleClick - dispatch mainWinToolBar events
.
mainWinSnippetListviewDBlClick LFUNCTION
ENTRY
CALL loadTemplate
CALL testHtml
FUNCTIONEND
*................................................................
.
. mainWinToolbarClick - dispatch mainWinToolBar events
.
mainWinExit LFUNCTION
ENTRY
IF ( htmlChangedFlag )
ALERT plain,"Save changes to .snip file?",htmlChangeAns,"Html content has changed"
SWITCH htmlChangeAns
CASE 1
CALL SaveAs
CASE 3
RETURN
ENDSWITCH
ENDIF
STOP
FUNCTIONEND
*................................................................
.
. mainWinHtmlEdittextChange
.
mainWinHtmlEdittextChange LFUNCTION
ENTRY
SET htmlChangedFlag
CALL testHtml
FUNCTIONEND
*................................................................
.
. Main - Main entry point
.
Main FUNCTION
ENTRY
WINHIDE
FORMLOAD EditForm
mainWin.SetAsClient
Client.GetInfo Giving CliInfo
TYPE CliInfo
IF Eos
ALERT STOP,"This program requires WebView 2 support!", Result
STOP
ENDIF
EVENTREG HtmlCtl,$JQueryEvent,HtmlEvCtl,ARG1=JsonData
mainWinEventListview.DeleteAllContents
mainWinEventListview.InsertColumn Using "Type",100, 0
mainWinEventListview.InsertColumn Using "Id",160, 1
mainWinEventListview.InsertColumn Using "PageX", 80, 2
mainWinEventListview.InsertColumn Using "PageY", 80, 3
mainWinEventListview.InsertColumn Using "MetaKey", 80, 4
mainWinEventListview.InsertColumn Using "Which", 80, 5
mainWinEventListview.InsertColumn Using "TargetId", 160, 6
mainWinSnippetListview.DeleteAllContents
mainWinSnippetListview.InsertColumn Using "",300,0
mainWinSnippetListview.InsertColumn Using "",400,1
FORMLOAD SaveForm
EVENTREG HtmlSave,200,SaveIt
EVENTREG HtmlCancel,200,CancelIt
CALL loadSnippetListview
CALL TemplateReset
SETFOCUS mainWinSnippetListview
FUNCTIONEND
You can’t perform that action at this time.
