Skip to content

Commit b8538e1

Browse files
committed
speed up rendering of code preview into textfield
change ga_readonly to textfield_readonly for textfield in requester item settings page fix resetting textfieldbase in textedtor object
1 parent 8e4a18d commit b8538e1

File tree

3 files changed

+31
-21
lines changed

3 files changed

+31
-21
lines changed

codePreviewForm.e

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,23 @@ CONST NUM_PREVIEW_GADS=PREVIEWGAD_SCROLL+1
3939
EXPORT OBJECT codePreviewForm OF reactionForm
4040
ENDOBJECT
4141

42+
PROC createTextFieldGad() OF codePreviewForm
43+
DEF gfxb:PTR TO gfxbase
44+
DEF res
45+
gfxb:=gfxbase
46+
res:=NewObjectA( TextField_GetClass(), NIL,[
47+
GA_ID, PREVIEWGAD_TEXT,
48+
GA_RELVERIFY, TRUE,
49+
GA_TABCYCLE, TRUE,
50+
TEXTFIELD_TEXTFONT, gfxb.defaultfont,
51+
TEXTFIELD_READONLY, TRUE,
52+
TEXTFIELD_BORDER, TEXTFIELD_BORDER_BEVEL,
53+
TAG_END])
54+
ENDPROC res
55+
4256
EXPORT PROC create() OF codePreviewForm
4357
DEF gads:PTR TO LONG
4458
DEF tempbase=0,map
45-
DEF gfxb:PTR TO gfxbase
4659

4760
NEW gads[NUM_PREVIEW_GADS]
4861
self.gadgetList:=gads
@@ -61,24 +74,10 @@ EXPORT PROC create() OF codePreviewForm
6174
GA_TABCYCLE, TRUE,
6275
GA_READONLY, TRUE,
6376
TAG_END])
64-
ELSE
65-
gfxb:=gfxbase
66-
self.gadgetList[ PREVIEWGAD_TEXT ]:=NewObjectA( TextField_GetClass(), NIL,[
67-
GA_ID, PREVIEWGAD_TEXT,
68-
//GA_TEXTEDITOR_WRAPBORDER,-1,
69-
//GA_TEXTEDITOR_FIXEDFONT,TRUE,
70-
//GA_TEXTEDITOR_HORIZONTALSCROLL, TRUE,
71-
72-
GA_RELVERIFY, TRUE,
73-
GA_TABCYCLE, TRUE,
74-
TEXTFIELD_TEXTFONT, gfxb.defaultfont,
75-
TEXTFIELD_READONLY, TRUE,
76-
TEXTFIELD_BORDER, TEXTFIELD_BORDER_BEVEL,
77-
TAG_END])
77+
ELSE
78+
self.gadgetList[ PREVIEWGAD_TEXT ]:=self.createTextFieldGad()
7879
ENDIF
7980

80-
textfieldbase:=texteditorbase
81-
8281
self.gadgetActions:=gads
8382
self.windowObj:=WindowObject,
8483
WA_TITLE, 'Code Preview',
@@ -162,6 +161,7 @@ ENDPROC
162161
EXPORT PROC showCode(strStream:PTR TO stringStreamer) OF codePreviewForm
163162
DEF str[201]:ARRAY OF CHAR
164163
DEF win,top
164+
DEF newgad,tempdata,size
165165
strStream.reset()
166166
win:=Gets(self.windowObj,WINDOW_WINDOW)
167167
top:=Gets(self.gadgetList[ PREVIEWGAD_SCROLL ],SCROLLER_TOP)
@@ -170,20 +170,30 @@ EXPORT PROC showCode(strStream:PTR TO stringStreamer) OF codePreviewForm
170170
SetGadgetAttrsA(self.gadgetList[ PREVIEWGAD_TEXT ],win,0,[GA_TEXTEDITOR_QUIET,1,TAG_END])
171171
ELSE
172172
SetGadgetAttrsA(self.gadgetList[ PREVIEWGAD_TEXT ],win,0,[TEXTFIELD_TEXT,'',0])
173+
newgad:=self.createTextFieldGad()
173174
ENDIF
174175
WHILE strStream.readLine(str)<>-1
175176
str[StrLen(str)+1]:=0
176177
str[StrLen(str)]:="\n"
177178
IF texteditorbase
178179
DoGadgetMethodA(self.gadgetList[ PREVIEWGAD_TEXT ],win,0,[GM_TEXTEDITOR_INSERTTEXT, 0, str, GV_TEXTEDITOR_INSERTTEXT_BOTTOM]:gp_texteditor_inserttext)
179180
ELSE
180-
SetGadgetAttrsA(self.gadgetList[ PREVIEWGAD_TEXT ],win,0,[TEXTFIELD_INSERTTEXT,str,0])
181+
SetGadgetAttrsA(newgad,0,0,[TEXTFIELD_INSERTTEXT,str,0])
181182
ENDIF
182183
ENDWHILE
183184
IF texteditorbase
184185
SetGadgetAttrsA(self.gadgetList[ PREVIEWGAD_TEXT ],win,0,[GA_TEXTEDITOR_QUIET,FALSE,TAG_END])
185186
SetGadgetAttrsA(self.gadgetList[ PREVIEWGAD_TEXT ],win,0,[GA_TEXTEDITOR_PROP_FIRST,top,TAG_END])
186187
ELSE
188+
size:=Gets(newgad,TEXTFIELD_SIZE)
189+
tempdata:=New(size)
190+
IF tempdata
191+
CopyMem(Gets(newgad,TEXTFIELD_TEXT),tempdata,size)
192+
SetGadgetAttrsA(self.gadgetList[ PREVIEWGAD_TEXT ],win,0,[TEXTFIELD_TEXT,tempdata,TAG_END])
193+
Dispose(tempdata)
194+
ENDIF
195+
DisposeObject(newgad)
196+
187197
SetGadgetAttrsA(self.gadgetList[ PREVIEWGAD_TEXT ],win,0,[TEXTFIELD_TOP,top,TAG_END])
188198
ENDIF
189199
SetGadgetAttrsA(self.gadgetList[ PREVIEWGAD_SCROLL ],win,0,[SCROLLER_TOP,top,TAG_END])

requesterItemObject.e

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ PROC create() OF requesterItemSettingsForm
106106
GA_ID, REQITEMGAD_BODY,
107107
GA_RELVERIFY, TRUE,
108108
GA_TABCYCLE, TRUE,
109-
GA_READONLY, FALSE,
109+
TEXTFIELD_READONLY, FALSE,
110110
TEXTFIELD_BORDER, TEXTFIELD_BORDER_BEVEL,
111111
TAG_END])
112112
ENDIF

textEditorObject.e

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ PROC editSettings(comp:PTR TO textEditorObject) OF textEditorSettingsForm
404404
ENDPROC res=MR_OK
405405

406406
EXPORT PROC createPreviewObject(scr) OF textEditorObject
407-
DEF tempbase
407+
DEF tempbase=0
408408
self.previewObject:=0
409409
IF (texteditorbase)
410410
tempbase:=textfieldbase
@@ -426,7 +426,7 @@ EXPORT PROC createPreviewObject(scr) OF textEditorObject
426426
TAG_END])
427427
ENDIF
428428
IF self.previewObject=0 THEN self.previewObject:=self.createErrorObject(scr)
429-
textfieldbase:=tempbase
429+
IF tempbase THEN textfieldbase:=tempbase
430430

431431
self.makePreviewChildAttrs(0)
432432
ENDPROC

0 commit comments

Comments
 (0)