home *** CD-ROM | disk | FTP | other *** search
/ TestDrive Super Store 2.3 / TESTDRIVE_2.ISO / realizer / formdev / items.rlz < prev    next >
Encoding:
Text File  |  1992-09-30  |  6.0 KB  |  231 lines

  1. '***********************************************************************
  2. '    FormDev: Items.RLZ
  3. '
  4. '    Copyright ⌐ 1991-1992 Computer Associates International, Inc.
  5. '    All rights reserved.
  6. '
  7. '***********************************************************************
  8.  
  9. FUNC ItemNew ()
  10.     fdNumItems = fdNumItems + 1
  11.     item.id[fdNumItems] = fdNextItem
  12.     item.text[fdNumItems] = Sprint("Item P(0)", fdNextItem)
  13.     item.type[fdNumItems] = 0
  14.     item.font[fdNumItems] = theform.font
  15.     IF theform.font THEN
  16.         FdFontRefInc(theform.font)
  17.     END IF
  18.     item.fieldcolor[fdNumItems] = theform.fldC
  19.     item.textcolor[fdNumItems] = theform.txtC
  20.     item.left[fdNumItems] = 0
  21.     item.top[fdNumItems] = 0
  22.     item.width[fdNumItems] = 0
  23.     item.height[fdNumItems] = 0
  24.     item.leftsv[fdNumItems] = 0
  25.     item.topsv[fdNumItems] = 0
  26.     item.widthsv[fdNumItems] = 0
  27.     item.heightsv[fdNumItems] = 0
  28.     item.modval1[fdNumItems] = 0
  29.     item.modval2[fdNumItems] = 0
  30.     item.modstr[fdNumItems] = ""
  31.     item.code[fdNumItems] = ""
  32.     RETURN fdNumItems
  33. END FUNC
  34.  
  35.  
  36. PROC ItemsLocateAll
  37.     LOCAL i, iparams
  38.  
  39.     FormSelect(fdMain)
  40.     FOR i = 1 TO fdNumItems
  41.         iparams = FormQObject(item.id[i])
  42.         item.left[i] = iparams[3]
  43.         item.top[i] = iparams[4]
  44.         IF iparams[2] = _Frame THEN
  45.             item.width[i] = iparams[5]
  46.             item.height[i] = iparams[6]
  47.         END IF
  48.     NEXT i
  49. END PROC
  50.  
  51.  
  52. PROC ItemLocate(n, ..)
  53.     LOCAL    iparams
  54.     
  55.     FormSelect(fdMain)
  56.     iparams = FormQObject(item.id[n])
  57.     IF item.left[n] <> iparams[_FQO_Left] THEN
  58.         item.left[n] = iparams[_FQO_Left]
  59.         item.leftsv[n] = 0
  60.     END IF
  61.     IF item.top[n] <> iparams[_FQO_Top] THEN
  62.         item.top[n] = iparams[_FQO_Top]
  63.         item.topsv[n] = 0
  64.     END IF
  65.     ' Recompute Width and Height if 2nd optional paramter is supplied or if the object is a frame.
  66.     IF (iparams[_FQO_ItemType] = _Frame) OR QNOptParams THEN
  67.         IF item.width[n] <> iparams[_FQO_Width] THEN
  68.             item.width[n] = iparams[_FQO_Width]
  69.             item.widthsv[n] = 0
  70.         END IF
  71.         IF item.height[n] <> iparams[_FQO_Height] THEN
  72.             item.height[n] = iparams[_FQO_Height]
  73.             item.heightsv[n] = 0
  74.         END IF
  75.     END IF
  76. END PROC
  77.  
  78.  
  79. PROC ItemDelete (n)
  80.     LOCAL    endv
  81.  
  82.     FdFontRefDec(item.font[itemNum])
  83.     IF FormQObject(item.id[itemNum])[_FQO_ItemNum] THEN
  84.         FormModifyObject(item.id[itemNum], _Close)
  85.     END IF
  86.  
  87.     endv = fdNumItems
  88.     IF endv = 1 THEN
  89.         CLEAR item
  90.     ELSE
  91.         IF n <> endv THEN
  92.             item.id[n:endv-1] = item.id[n+1:endv]
  93.             item.type[n:endv-1] = item.type[n+1:endv]
  94.             item.text[n:endv-1] = item.text[n+1:endv]
  95.             item.left[n:endv-1] = item.left[n+1:endv]
  96.             item.top[n:endv-1] = item.top[n+1:endv]
  97.             item.width[n:endv-1] = item.width[n+1:endv]
  98.             item.height[n:endv-1] = item.height[n+1:endv]
  99.             item.modval1[n:endv-1]  = item.modval1[n+1:endv]
  100.             item.modval2[n:endv-1]  = item.modval2[n+1:endv]
  101.             item.modstr[n:endv-1]  = item.modstr[n+1:endv]
  102.             item.font[n:endv-1] = item.font[n+1:endv]
  103.             item.code[n:endv-1] = item.code[n+1:endv]
  104.             item.leftsv[n:endv-1] = item.leftsv[n+1:endv]
  105.             item.topsv[n:endv-1] = item.topsv[n+1:endv]
  106.             item.widthsv[n:endv-1] = item.widthsv[n+1:endv]
  107.             item.heightsv[n:endv-1] = item.heightsv[n+1:endv]
  108.             item.fieldcolor[n:endv-1] = item.fieldcolor[n+1:endv]
  109.             item.textcolor[n:endv-1] = item.textcolor[n+1:endv]
  110.         END IF
  111.         item.code = item.code[1:endv-1]
  112.         item.id = item.id[1:endv-1]
  113.         item.type = item.type[1:endv-1]
  114.         item.text = item.text[1:endv-1]
  115.         item.left = item.left[1:endv-1]
  116.         item.top = item.top[1:endv-1]
  117.         item.width = item.width[1:endv-1]
  118.         item.height = item.height[1:endv-1]
  119.         item.modval1 = item.modval1[1:endv-1]
  120.         item.modval2 = item.modval2[1:endv-1]
  121.         item.modstr = item.modstr[1:endv-1]
  122.         item.font = item.font[1:endv-1]
  123.         item.leftsv = item.leftsv[1:endv-1]
  124.         item.topsv = item.topsv[1:endv-1]
  125.         item.widthsv = item.widthsv[1:endv-1]
  126.         item.heightsv = item.heightsv[1:endv-1]
  127.         item.fieldcolor = item.fieldcolor[1:endv-1]
  128.         item.textcolor = item.textcolor[1:endv-1]
  129.     END IF
  130.     fdNumItems = fdNumItems - 1
  131. END PROC
  132.  
  133.  
  134. PROC ItemsEnableAll
  135.     LOCAL i
  136.  
  137.     FormSelect(fdMain)
  138.     FOR i = 1 TO fdNumItems
  139.         FormModifyObject(item.id[i], _Normal)
  140.     NEXT i
  141. END PROC
  142.  
  143. PROC ItemsShowAll
  144.     LOCAL i
  145.  
  146.     FormSelect(fdMain)
  147.     FOR i = 1 TO fdNumItems
  148.         SafeSetObject(i, 0)
  149.     NEXT i
  150. END PROC
  151.  
  152. PROC ItemsFrameAll
  153.     LOCAL i
  154.  
  155.     FormSelect(fdMain)
  156.     FOR i = 1 TO fdNumItems
  157.         SafeSetObject(i,1)
  158.     NEXT i
  159. END PROC
  160.  
  161.  
  162. 'SafeSetObject
  163. '    flag:    0 : normal object
  164. '        1 : frame
  165. '        2 : default width and height
  166.  
  167. PROC SafeSetObject(n, flag)
  168.     LOCAL id, type, text, font, left, top, width, height, curobj
  169.  
  170.     id = item.id[n]
  171.     type = item.type[n]
  172.     text = item.text[n]
  173.     font = item.font[n]
  174.     left = IF item.leftsv[n] THEN item.leftsv[n] ELSE item.left[n]
  175.     top = IF item.topsv[n] THEN item.topsv[n] ELSE item.top[n]
  176.     IF left >= 0 THEN
  177.         left = left pxl
  178.     END IF
  179.     IF top >= 0 THEN
  180.         top = top pxl
  181.     END IF
  182.  
  183.     ' If we're currently default width or height, remember actuals.
  184.     curobj = FormQObject(id)
  185.     IF curobj[_FQO_ItemNum] THEN
  186.         IF item.widthsv[n] = _Default THEN
  187.             item.width[n] = curobj[_FQO_Width]
  188.         END IF
  189.         IF item.heightsv[n] = _Default THEN
  190.             item.height[n] = curobj[_FQO_Height]
  191.         END IF
  192.     END IF
  193.  
  194.     IF flag = 1 THEN
  195.         type = _Frame
  196.         width = item.width[n] pxl
  197.         height = item.height[n] pxl
  198.     ELSEIF flag = 2 THEN
  199.         width = _Default
  200.         height = _Default
  201.     ELSE
  202.         width = IF item.widthsv[n] THEN item.widthsv[n] ELSE item.width[n] pxl
  203.         height = IF item.heightsv[n] THEN item.heightsv[n] ELSE item.height[n] pxl
  204.     END IF
  205.  
  206.     IF type = _Bitmap OR type = _BitmapButton THEN
  207.         IF NOT FileQ(FileQ(text, _Name), _Exists) THEN
  208.             type = _Frame
  209.             IF width = _Default THEN
  210.                 width = 64pxl
  211.             END IF
  212.             IF height = _Default THEN
  213.                 height = 64pxl
  214.             END IF
  215.         END IF
  216.     END IF    
  217.         
  218.     IF type < 0 THEN
  219.         SELECT CASE type
  220.         CASE -20
  221.             type = _DigitalClock
  222.         END SELECT
  223.     END IF
  224.  
  225.     FormSetColor(ColorUnpack(item.fieldcolor[n]); _Field)
  226.     FormSetColor(ColorUnpack(item.textcolor[n]); _Text)
  227.     FormSetObject(id, type, text, font, left, top, width, height)
  228.     FormSetColor(_White; _Field)
  229.     FormSetColor(_Black; _Text)
  230. END PROC
  231.