Skip to content

Commit ee8c350

Browse files
committed
bitmap object did not generate code for height property correctly
add enums for ids as well as indexes in generated code use enums for ids and indexes in the in generated code object definitions enable full code setting in example files
1 parent 2cd686d commit ee8c350

File tree

8 files changed

+113
-68
lines changed

8 files changed

+113
-68
lines changed

bitmapObject.e

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ EXPORT PROC genCodeProperties(srcGen:PTR TO srcGen) OF bitmapObject
292292
srcGen.componentPropertyInt('IA_Left',self.leftEdge)
293293
srcGen.componentPropertyInt('IA_Top',self.topEdge)
294294
srcGen.componentPropertyInt('IA_Width',self.width)
295-
srcGen.componentPropertyInt('IA_Height',self.topEdge)
295+
srcGen.componentPropertyInt('IA_Height',self.height)
296296

297297
srcGen.componentProperty('BITMAP_Screen','gScreen',FALSE)
298298
srcGen.componentProperty('BITMAP_SourceFile',self.sourceFile,TRUE)

cSourceGen.e

Lines changed: 53 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,55 @@ PROC create(fser:PTR TO fileStreamer, libsused:PTR TO CHAR,definitionOnly,useIds
2020
self.indent:=0
2121
ENDPROC
2222

23+
PROC createEnum(windowName:PTR TO CHAR, listObjects:PTR TO stdlist, ids) OF cSrcGen
24+
DEF n=0, j
25+
DEF listObject:PTR TO reactionObject
26+
DEF tempStr[255]:STRING
27+
28+
self.write('enum ')
29+
IF ids
30+
StringF(tempStr,'\s_id { ',windowName)
31+
ELSE
32+
StringF(tempStr,'\s_idx { ',windowName)
33+
ENDIF
34+
LowerStr(tempStr)
35+
self.write(tempStr)
36+
n:=0
37+
FOR j:=0 TO listObjects.count()-1
38+
IF j>0
39+
self.write(', ')
40+
n:=n+2
41+
ENDIF
42+
43+
IF n>60
44+
self.writeLine('')
45+
self.write(' ')
46+
n:=0
47+
ENDIF
48+
listObject:=listObjects.item(j)
49+
listObject.gadindex:=j
50+
StrCopy(tempStr,listObject.ident)
51+
LowerStr(tempStr)
52+
self.write(tempStr)
53+
n:=n+StrLen(tempStr)
54+
55+
IF ids
56+
StringF(tempStr,'_id = \d',listObject.id)
57+
self.write(tempStr)
58+
n:=n+StrLen(tempStr)
59+
ENDIF
60+
ENDFOR
61+
62+
self.writeLine(' };')
63+
ENDPROC
64+
2365
PROC genHeader(screenObject:PTR TO screenObject,rexxObject:PTR TO rexxObject, windowNames:PTR TO stringlist, windowLayouts:PTR TO stdlist, sharedPort) OF cSrcGen
2466
DEF tempStr[200]:STRING
2567
DEF menuItem:PTR TO menuItem
2668
DEF itemName[200]:STRING
2769
DEF commKey[10]:STRING
2870
DEF itemType
29-
DEF hasarexx,i,j
71+
DEF hasarexx,i,j,n
3072
DEF layoutObject:PTR TO reactionObject
3173
DEF listObjects:PTR TO stdlist
3274
DEF listObject:PTR TO reactionObject
@@ -492,28 +534,13 @@ PROC genHeader(screenObject:PTR TO screenObject,rexxObject:PTR TO rexxObject, wi
492534
NEW listObjects.stdlist(20)
493535
self.writeLine('')
494536
FOR i:=0 TO windowNames.count()-1
495-
self.write('enum ')
496-
StringF(tempStr,'\s_idx { ',windowNames.item(i))
497-
LowerStr(tempStr)
498-
self.write(tempStr)
499537
layoutObject:=windowLayouts.item(i)
500538
listObjects.clear()
501539
layoutObject.findObjectsByType(listObjects,-1)
502-
FOR j:=0 TO listObjects.count()-1
503-
IF j>0 THEN self.write(', ')
504-
StrCopy(tempStr,windowNames.item(i))
505-
StrAdd(tempStr,'_')
506-
listObject:=listObjects.item(j)
507-
listObject.gadindex:=j
508-
StrAdd(tempStr,listObject.getTypeName())
509-
LowerStr(tempStr)
510-
StrAdd(tempStr,'_')
511-
self.write(tempStr)
512-
StringF(tempStr,'\d',listObject.id)
513-
self.write(tempStr)
514-
ENDFOR
515-
516-
self.writeLine(' };')
540+
StringF(tempStr,'//\s',windowNames.item(i))
541+
self.writeLine(tempStr)
542+
self.createEnum(windowNames.item(i),listObjects,FALSE)
543+
IF self.useIds THEN self.createEnum(windowNames.item(i),listObjects,TRUE)
517544
ENDFOR
518545
END listObjects
519546
self.writeLine('')
@@ -1183,16 +1210,19 @@ PROC assignWindowVar() OF cSrcGen
11831210
self.write('window_object = ')
11841211
ENDPROC
11851212

1186-
PROC assignGadgetVar(index) OF cSrcGen
1213+
PROC assignGadgetVar(ident,index) OF cSrcGen
11871214
DEF tempStr[100]:STRING
1188-
StringF(tempStr,'main_gadgets[\d] = ',index)
1215+
StrCopy(tempStr,ident)
1216+
LowerStr(tempStr)
1217+
StringF(tempStr,'main_gadgets[\s] = ',tempStr)
11891218
self.write(tempStr)
11901219
self.currentGadgetVar:=index
11911220
ENDPROC
11921221

11931222
PROC componentPropertyGadgetId(idval) OF cSrcGen
11941223
DEF tempStr[100]:STRING
1195-
StringF(tempStr,'\d',idval)
1224+
StrCopy(tempStr,idval)
1225+
LowerStr(tempStr)
11961226
self.componentProperty('GA_ID',tempStr,FALSE)
11971227
ENDPROC
11981228

eSourceGen.e

Lines changed: 43 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,43 @@ PROC create(fser:PTR TO fileStreamer,libsused,definitionOnly,useIds) OF eSrcGen
2121
self.terminator:=0
2222
ENDPROC
2323

24+
PROC createEnum(windowName:PTR TO CHAR, listObjects:PTR TO stdlist, ids) OF eSrcGen
25+
DEF n=0, j
26+
DEF listObject:PTR TO reactionObject
27+
DEF tempStr[255]:STRING
28+
29+
self.write('ENUM ')
30+
FOR j:=0 TO listObjects.count()-1
31+
IF j>0
32+
self.write(', ')
33+
n:=n+2
34+
ENDIF
35+
36+
IF n>60
37+
self.writeLine('')
38+
self.write(' ')
39+
n:=0
40+
ENDIF
41+
listObject:=listObjects.item(j)
42+
listObject.gadindex:=j
43+
StrCopy(tempStr,listObject.ident)
44+
UpperStr(tempStr)
45+
self.write(tempStr)
46+
n:=n+StrLen(tempStr)
47+
IF ids
48+
StringF(tempStr,'_ID = \d',listObject.id)
49+
n:=n+StrLen(tempStr)
50+
self.write(tempStr)
51+
ENDIF
52+
ENDFOR
53+
self.writeLine('')
54+
ENDPROC
55+
2456
PROC genHeader(screenObject:PTR TO screenObject,rexxObject:PTR TO rexxObject, windowNames:PTR TO stringlist, windowLayouts:PTR TO stdlist, sharedPort) OF eSrcGen
2557
DEF tempStr[200]:STRING
26-
DEF hasarexx,i,j,n
58+
DEF hasarexx,i
2759
DEF layoutObject:PTR TO reactionObject
2860
DEF listObjects:PTR TO stdlist
29-
DEF listObject:PTR TO reactionObject
3061

3162
hasarexx:=(rexxObject.commands.count()>0) AND (StrLen(rexxObject.hostName)>0)
3263

@@ -103,36 +134,13 @@ PROC genHeader(screenObject:PTR TO screenObject,rexxObject:PTR TO rexxObject, wi
103134
NEW listObjects.stdlist(20)
104135
self.writeLine('')
105136
FOR i:=0 TO windowNames.count()-1
106-
self.write('ENUM ')
107137
layoutObject:=windowLayouts.item(i)
108138
listObjects.clear()
109139
layoutObject.findObjectsByType(listObjects,-1)
110-
n:=0
111-
FOR j:=0 TO listObjects.count()-1
112-
IF j>0
113-
self.write(', ')
114-
n:=n+2
115-
ENDIF
116-
117-
IF n>60
118-
self.writeLine('')
119-
self.write(' ')
120-
n:=0
121-
ENDIF
122-
StrCopy(tempStr,windowNames.item(i))
123-
StrAdd(tempStr,'_')
124-
listObject:=listObjects.item(j)
125-
listObject.gadindex:=j
126-
StrAdd(tempStr,listObject.getTypeName())
127-
UpperStr(tempStr)
128-
StrAdd(tempStr,'_')
129-
self.write(tempStr)
130-
n:=n+StrLen(tempStr)
131-
StringF(tempStr,'\d',listObject.id)
132-
n:=n+StrLen(tempStr)
133-
self.write(tempStr)
134-
ENDFOR
135-
self.writeLine('')
140+
StringF(tempStr,'->\s',windowNames.item(i))
141+
self.writeLine(tempStr)
142+
self.createEnum(windowNames.item(i),listObjects,FALSE)
143+
IF self.useIds THEN self.createEnum(windowNames.item(i),listObjects,TRUE)
136144
ENDFOR
137145
END listObjects
138146
self.writeLine('')
@@ -953,16 +961,19 @@ PROC genScreenFree(screenObject:PTR TO screenObject) OF eSrcGen
953961
ENDIF
954962
ENDPROC
955963

956-
PROC assignGadgetVar(index) OF eSrcGen
964+
PROC assignGadgetVar(ident,index) OF eSrcGen
957965
DEF tempStr[100]:STRING
958-
StringF(tempStr,'mainGadgets[\d]:=',index)
966+
StrCopy(tempStr,ident)
967+
UpperStr(tempStr)
968+
StringF(tempStr,'mainGadgets[\s]:=',tempStr)
959969
self.write(tempStr)
960970
self.currentGadgetVar:=index
961971
ENDPROC
962972

963973
PROC componentPropertyGadgetId(idval) OF eSrcGen
964974
DEF tempStr[100]:STRING
965-
StringF(tempStr,'\d',idval)
975+
StrCopy(tempStr,idval)
976+
UpperStr(tempStr)
966977
self.componentProperty('GA_ID',tempStr, FALSE)
967978
ENDPROC
968979

examples/find dialog.reb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ VIEWTMP=-1
55
ADDSETT=-1
66
LANGID=0
77
USEIDS=-1
8-
FULLCODE=-
8+
FULLCODE=-1
99
CODEFOLDER
1010
#
1111
TYPE: 2

examples/log in.reb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ VIEWTMP=-1
55
ADDSETT=0
66
LANGID=0
77
USEIDS=-1
8-
FULLCODE=0
8+
FULLCODE=-1
99
CODEFOLDER=
1010
#
1111
TYPE: 2

reactionObject.e

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ EXPORT DEF errorState
5252
EXPORT DEF imageData:PTR TO CHAR
5353

5454
EXPORT OBJECT reactionObject
55+
ident[80]:ARRAY OF CHAR
5556
name[80]:ARRAY OF CHAR
5657
parent:PTR TO reactionObject
5758
children:PTR TO stdlist
@@ -358,6 +359,7 @@ EXPORT PROC create(parent) OF reactionObject
358359
objCount:=objCount+1
359360
StringF(name,'\s_\d',self.getTypeName(),self.id)
360361
AstrCopy(self.name,name)
362+
AstrCopy(self.ident,name)
361363

362364
NEW stdlist.stdlist(20)
363365
self.children:=stdlist
@@ -480,6 +482,8 @@ EXPORT PROC serialise(fser:PTR TO fileStreamer) OF reactionObject
480482
fser.writeLine(tempStr)
481483
StringF(tempStr,'NAME: \s',self.name)
482484
fser.writeLine(tempStr)
485+
StringF(tempStr,'IDENT: \s',self.ident)
486+
fser.writeLine(tempStr)
483487
StringF(tempStr,'MINWIDTH: \d',self.minWidth)
484488
fser.writeLine(tempStr)
485489
StringF(tempStr,'MINHEIGHT: \d',self.minHeight)
@@ -578,6 +582,8 @@ PROC deserialise(fser:PTR TO fileStreamer) OF reactionObject
578582
ENDIF
579583
ELSEIF StrCmp('NAME: ',tempStr,STRLEN)
580584
AstrCopy(self.name,tempStr+STRLEN,80)
585+
ELSEIF StrCmp('IDENT: ',tempStr,STRLEN)
586+
AstrCopy(self.ident,tempStr+STRLEN,80)
581587
ELSEIF StrCmp('MINWIDTH: ',tempStr,STRLEN)
582588
self.minWidth:=Val(tempStr+STRLEN)
583589
ELSEIF StrCmp('MINHEIGHT: ',tempStr,STRLEN)

rebuild.e

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1164,7 +1164,7 @@ PROC genComponentCode(comp:PTR TO reactionObject, srcGen:PTR TO srcGen)
11641164
srcGen.componentAddChild(addTag)
11651165
ENDIF
11661166

1167-
srcGen.assignGadgetVar(comp.gadindex)
1167+
srcGen.assignGadgetVar(comp.ident,comp.gadindex)
11681168
IF (libtype:=comp.libTypeCreate())
11691169
srcGen.componentLibtypeCreate(libtype)
11701170
ELSEIF (libname:=comp.libNameCreate())
@@ -1174,13 +1174,12 @@ PROC genComponentCode(comp:PTR TO reactionObject, srcGen:PTR TO srcGen)
11741174
srcGen.componentCreate(tempStr)
11751175
ENDIF
11761176

1177-
->IF comp.type<>TYPE_LAYOUT
1178-
IF srcGen.useIds
1179-
srcGen.componentPropertyGadgetId(comp.id)
1180-
ELSE
1181-
srcGen.componentPropertyGadgetId(srcGen.currentGadgetVar)
1182-
ENDIF
1183-
->ENDIF
1177+
IF srcGen.useIds
1178+
StringF(tempStr,'\s_id',comp.ident)
1179+
ELSE
1180+
StringF(tempStr,'\s',comp.ident)
1181+
ENDIF
1182+
srcGen.componentPropertyGadgetId(tempStr)
11841183
comp.genCodeProperties(srcGen)
11851184
IF comp.children.count()>0
11861185
comp.genChildObjectsHeader(srcGen)
@@ -2729,7 +2728,6 @@ PROC main() HANDLE
27292728
AstrCopy(systemOptions.savePath,'')
27302729

27312730
loadIconPrefs()
2732-
27332731
createForm()
27342732
Sets(mainWindow,WINDOW_HINTINFO,hintInfo)
27352733
Sets(mainWindow,WINDOW_GADGETHELP, TRUE)

sourceGen.e

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ PROC assignWindowVar() OF srcGen
205205
self.write(tempStr)
206206
ENDPROC
207207

208-
PROC assignGadgetVar(index) OF srcGen
208+
PROC assignGadgetVar(ident,index) OF srcGen
209209
DEF tempStr[100]:STRING
210210
DEF padding
211211
IF self.extraPadding THEN padding:=' ' ELSE padding:=''

0 commit comments

Comments
 (0)