home *** CD-ROM | disk | FTP | other *** search
- '***********************************************************************
- ' FormDev: Items.RLZ
- '
- ' Copyright ⌐ 1991-1992 Computer Associates International, Inc.
- ' All rights reserved.
- '
- '***********************************************************************
-
- FUNC ItemNew ()
- fdNumItems = fdNumItems + 1
- item.id[fdNumItems] = fdNextItem
- item.text[fdNumItems] = Sprint("Item P(0)", fdNextItem)
- item.type[fdNumItems] = 0
- item.font[fdNumItems] = theform.font
- IF theform.font THEN
- FdFontRefInc(theform.font)
- END IF
- item.fieldcolor[fdNumItems] = theform.fldC
- item.textcolor[fdNumItems] = theform.txtC
- item.left[fdNumItems] = 0
- item.top[fdNumItems] = 0
- item.width[fdNumItems] = 0
- item.height[fdNumItems] = 0
- item.leftsv[fdNumItems] = 0
- item.topsv[fdNumItems] = 0
- item.widthsv[fdNumItems] = 0
- item.heightsv[fdNumItems] = 0
- item.modval1[fdNumItems] = 0
- item.modval2[fdNumItems] = 0
- item.modstr[fdNumItems] = ""
- item.code[fdNumItems] = ""
- RETURN fdNumItems
- END FUNC
-
-
- PROC ItemsLocateAll
- LOCAL i, iparams
-
- FormSelect(fdMain)
- FOR i = 1 TO fdNumItems
- iparams = FormQObject(item.id[i])
- item.left[i] = iparams[3]
- item.top[i] = iparams[4]
- IF iparams[2] = _Frame THEN
- item.width[i] = iparams[5]
- item.height[i] = iparams[6]
- END IF
- NEXT i
- END PROC
-
-
- PROC ItemLocate(n, ..)
- LOCAL iparams
-
- FormSelect(fdMain)
- iparams = FormQObject(item.id[n])
- IF item.left[n] <> iparams[_FQO_Left] THEN
- item.left[n] = iparams[_FQO_Left]
- item.leftsv[n] = 0
- END IF
- IF item.top[n] <> iparams[_FQO_Top] THEN
- item.top[n] = iparams[_FQO_Top]
- item.topsv[n] = 0
- END IF
- ' Recompute Width and Height if 2nd optional paramter is supplied or if the object is a frame.
- IF (iparams[_FQO_ItemType] = _Frame) OR QNOptParams THEN
- IF item.width[n] <> iparams[_FQO_Width] THEN
- item.width[n] = iparams[_FQO_Width]
- item.widthsv[n] = 0
- END IF
- IF item.height[n] <> iparams[_FQO_Height] THEN
- item.height[n] = iparams[_FQO_Height]
- item.heightsv[n] = 0
- END IF
- END IF
- END PROC
-
-
- PROC ItemDelete (n)
- LOCAL endv
-
- FdFontRefDec(item.font[itemNum])
- IF FormQObject(item.id[itemNum])[_FQO_ItemNum] THEN
- FormModifyObject(item.id[itemNum], _Close)
- END IF
-
- endv = fdNumItems
- IF endv = 1 THEN
- CLEAR item
- ELSE
- IF n <> endv THEN
- item.id[n:endv-1] = item.id[n+1:endv]
- item.type[n:endv-1] = item.type[n+1:endv]
- item.text[n:endv-1] = item.text[n+1:endv]
- item.left[n:endv-1] = item.left[n+1:endv]
- item.top[n:endv-1] = item.top[n+1:endv]
- item.width[n:endv-1] = item.width[n+1:endv]
- item.height[n:endv-1] = item.height[n+1:endv]
- item.modval1[n:endv-1] = item.modval1[n+1:endv]
- item.modval2[n:endv-1] = item.modval2[n+1:endv]
- item.modstr[n:endv-1] = item.modstr[n+1:endv]
- item.font[n:endv-1] = item.font[n+1:endv]
- item.code[n:endv-1] = item.code[n+1:endv]
- item.leftsv[n:endv-1] = item.leftsv[n+1:endv]
- item.topsv[n:endv-1] = item.topsv[n+1:endv]
- item.widthsv[n:endv-1] = item.widthsv[n+1:endv]
- item.heightsv[n:endv-1] = item.heightsv[n+1:endv]
- item.fieldcolor[n:endv-1] = item.fieldcolor[n+1:endv]
- item.textcolor[n:endv-1] = item.textcolor[n+1:endv]
- END IF
- item.code = item.code[1:endv-1]
- item.id = item.id[1:endv-1]
- item.type = item.type[1:endv-1]
- item.text = item.text[1:endv-1]
- item.left = item.left[1:endv-1]
- item.top = item.top[1:endv-1]
- item.width = item.width[1:endv-1]
- item.height = item.height[1:endv-1]
- item.modval1 = item.modval1[1:endv-1]
- item.modval2 = item.modval2[1:endv-1]
- item.modstr = item.modstr[1:endv-1]
- item.font = item.font[1:endv-1]
- item.leftsv = item.leftsv[1:endv-1]
- item.topsv = item.topsv[1:endv-1]
- item.widthsv = item.widthsv[1:endv-1]
- item.heightsv = item.heightsv[1:endv-1]
- item.fieldcolor = item.fieldcolor[1:endv-1]
- item.textcolor = item.textcolor[1:endv-1]
- END IF
- fdNumItems = fdNumItems - 1
- END PROC
-
-
- PROC ItemsEnableAll
- LOCAL i
-
- FormSelect(fdMain)
- FOR i = 1 TO fdNumItems
- FormModifyObject(item.id[i], _Normal)
- NEXT i
- END PROC
-
- PROC ItemsShowAll
- LOCAL i
-
- FormSelect(fdMain)
- FOR i = 1 TO fdNumItems
- SafeSetObject(i, 0)
- NEXT i
- END PROC
-
- PROC ItemsFrameAll
- LOCAL i
-
- FormSelect(fdMain)
- FOR i = 1 TO fdNumItems
- SafeSetObject(i,1)
- NEXT i
- END PROC
-
-
- 'SafeSetObject
- ' flag: 0 : normal object
- ' 1 : frame
- ' 2 : default width and height
-
- PROC SafeSetObject(n, flag)
- LOCAL id, type, text, font, left, top, width, height, curobj
-
- id = item.id[n]
- type = item.type[n]
- text = item.text[n]
- font = item.font[n]
- left = IF item.leftsv[n] THEN item.leftsv[n] ELSE item.left[n]
- top = IF item.topsv[n] THEN item.topsv[n] ELSE item.top[n]
- IF left >= 0 THEN
- left = left pxl
- END IF
- IF top >= 0 THEN
- top = top pxl
- END IF
-
- ' If we're currently default width or height, remember actuals.
- curobj = FormQObject(id)
- IF curobj[_FQO_ItemNum] THEN
- IF item.widthsv[n] = _Default THEN
- item.width[n] = curobj[_FQO_Width]
- END IF
- IF item.heightsv[n] = _Default THEN
- item.height[n] = curobj[_FQO_Height]
- END IF
- END IF
-
- IF flag = 1 THEN
- type = _Frame
- width = item.width[n] pxl
- height = item.height[n] pxl
- ELSEIF flag = 2 THEN
- width = _Default
- height = _Default
- ELSE
- width = IF item.widthsv[n] THEN item.widthsv[n] ELSE item.width[n] pxl
- height = IF item.heightsv[n] THEN item.heightsv[n] ELSE item.height[n] pxl
- END IF
-
- IF type = _Bitmap OR type = _BitmapButton THEN
- IF NOT FileQ(FileQ(text, _Name), _Exists) THEN
- type = _Frame
- IF width = _Default THEN
- width = 64pxl
- END IF
- IF height = _Default THEN
- height = 64pxl
- END IF
- END IF
- END IF
-
- IF type < 0 THEN
- SELECT CASE type
- CASE -20
- type = _DigitalClock
- END SELECT
- END IF
-
- FormSetColor(ColorUnpack(item.fieldcolor[n]); _Field)
- FormSetColor(ColorUnpack(item.textcolor[n]); _Text)
- FormSetObject(id, type, text, font, left, top, width, height)
- FormSetColor(_White; _Field)
- FormSetColor(_Black; _Text)
- END PROC
-