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

  1. '***********************************************************************
  2. '    FormDev: Reorder.RLZ
  3. '
  4. '    Copyright ⌐ 1991-1992 Computer Associates International, Inc.
  5. '    All rights reserved.
  6. '
  7. '***********************************************************************
  8.  
  9. PROC ReorderItems
  10.     LOCAL i, typename, count, countmax, newlist, s
  11.     LOCAL id, n, tmp, J
  12.  
  13.     SetHourglass
  14.     FormSelect(fdMain)
  15.     LastFrameOff
  16.     ItemsLocateAll
  17.  
  18.     FormNew(FormQUnique; "Back to Front Order of Form Items", _Title)
  19.     FormControl(_Size; _Center, _Center, 80 pct, 70 pct)
  20.     FormSetObject(1, _DefButton, "OK", 20 pct, 85 pct)
  21.     FormSetObject(2, _Button, "Cancel", 67 pct, 85 pct)
  22.     FormSetObject(50, _Button, "Add Item >>>", 41 pct, 19 pct, 19 pct, _Default)
  23.     FormSetObject(60, _Button, "<<< Remove", 41 pct, 43 pct, 19 pct, _Default)
  24.     FormSetObject(10, _CaptionCenter, "Original Form", 2 pct, 5 pct, 37 pct, _Default)
  25.  
  26.     FormSetObject(20, _ListBox, "", font_P, 2 pct, 12 pct, 37 pct, 70 pct)
  27.     FormSetObject(30, _CaptionCenter, "Reordered Form", 62 pct, 5 pct, 37 pct, _Default)
  28.     FormSetObject(40 ,_ListBox, "", font_P, 62 pct, 12 pct, 37 pct, 70 pct)
  29.  
  30.     FormModifyObject(60, _Gray)
  31.  
  32.     FOR i = 1 to fdNumItems
  33.         typename = ItemNames[FirstMatch(ItemNums, item.type[i])]
  34.         FormModifyObject(20; Sprint("#####  &    [&]", ItemID(i), typename, item.text[i]))
  35.     NEXT i
  36.     FormModifyObject(20; _ListSelect, 1)
  37.     countmax = fdNumItems
  38.     count = fdNumItems
  39.     ResetHourglass
  40.  
  41.     LOOP
  42.         SELECT CASE FormWait
  43.             CASE 1    'OK
  44.                 ' Empty re-order list, just return as if CANCEL pressed.
  45.                 IF count = countmax THEN
  46.                     FormControl(_Close)
  47.                     EXIT PROC
  48.                 END IF
  49.  
  50.                 ' There are leftover items that will be deleted
  51.                 IF count THEN
  52.                     IF count = 1 THEN
  53.                         s = "item which was"
  54.                     ELSE
  55.                         s = SPRINT("P(0) items which were", count)
  56.                     END IF
  57.                     s = "Delete the " + s + " left unordered?"
  58.                     IF MessageBox(s, "FormDev", _MB_YesNo, _MB_Question) = _No THEN
  59.                         EXIT SELECT
  60.                     END IF
  61.                 END IF
  62.                 EXIT LOOP
  63.  
  64.             CASE 2    'Cancel
  65.                 FormControl(_Close)
  66.                 EXIT PROC
  67.  
  68.             CASE 50, 20    ' Add Item >>>
  69.                 J = FormQNum(20)
  70.                 IF J THEN
  71.                     FormModifyObject(40; FormQStr(20))
  72.                     FormModifyObject(20; _ListDelete, J)
  73.                     IF count = countmax THEN
  74.                         FormModifyObject(60, _Normal)
  75.                         FormModifyObject(40; _ListSelect, 1)
  76.                     END IF
  77.                     count = count - 1
  78.                     IF count = 0 THEN
  79.                         FormModifyObject(50, _Gray)
  80.                     ELSE
  81.                         FormModifyObject(20; _ListSelect, MIN(J, count))
  82.                     END IF
  83.                 END IF
  84.  
  85.             CASE 60, 40    ' <<< Remove Item
  86.                 J = FormQNum(40)
  87.                 IF J THEN
  88.                     FormModifyObject(20; FormQStr(40))
  89.                     FormModifyObject(40; _ListDelete, J)
  90.                     IF count = 0 THEN
  91.                         FormModifyObject(50, _Normal)
  92.                         FormModifyObject(20; _ListSelect, 1)
  93.                     END IF
  94.                     count = count + 1
  95.                     IF count = countmax THEN
  96.                         FormModifyObject(60, _Gray)
  97.                     ELSE
  98.                         FormModifyObject(40; _ListSelect, MIN(J, countmax - count))
  99.                     END IF
  100.                 END IF
  101.         END SELECT
  102.     END LOOP
  103.  
  104.     newlist = FormQStr(40, 1)
  105.     FormControl(_Close)
  106.     FormSelect(fdMain)
  107.     FOR i = 1 TO EndValid(newlist)
  108.         id = StrToItemID(Left$(newlist[i], 5))
  109.         n = FirstMatch(item.id, id)
  110.         tmp.id[i] = id
  111.         item.id[n] = 0                'Flag it as copied
  112.          tmp.type[i] = item.type[n]
  113.         tmp.text[i] = item.text[n]
  114.         tmp.left[i] = item.left[n]
  115.         tmp.top[i] = item.top[n]
  116.         tmp.width[i] = item.width[n]
  117.         tmp.height[i] = item.height[n]
  118.         tmp.modval1[i] = item.modval1[n]
  119.         tmp.modval2[i] = item.modval2[n]
  120.         tmp.modstr[i] = item.modstr[n]
  121.         tmp.font[i] = item.font[n]
  122.         tmp.code[i] = item.code[n]
  123.         tmp.leftsv[i] = item.leftsv[n]
  124.         tmp.topsv[i] = item.topsv[n]
  125.         tmp.widthsv[i] = item.widthsv[n]
  126.         tmp.heightsv[i] = item.heightsv[n]
  127.         tmp.fieldcolor[i] = item.fieldcolor[n]
  128.         tmp.textcolor[i] = item.textcolor[n]
  129.     NEXT i
  130.     FOR i = 1 to fdNumItems
  131.         IF item.id[i] <> 0 THEN
  132.             FdFontRefDec(item.font[i])
  133.             FormModifyObject(item.id[i], _Close)
  134.         END IF
  135.     NEXT i
  136.     CLEAR item
  137.     item.id = tmp.id
  138.     item.type = tmp.type
  139.     item.text = tmp.text
  140.     item.left = tmp.left
  141.     item.top = tmp.top
  142.     item.width = tmp.width
  143.     item.height = tmp.height
  144.     item.modval1 = tmp.modval1
  145.     item.modval2 = tmp.modval2
  146.     item.modstr = tmp.modstr
  147.     item.font = tmp.font
  148.     item.code = tmp.code
  149.     item.leftsv = tmp.leftsv
  150.     item.topsv = tmp.topsv
  151.     item.widthsv = tmp.widthsv
  152.     item.heightsv = tmp.heightsv
  153.     item.fieldcolor = tmp.fieldcolor
  154.     item.textcolor = tmp.textcolor
  155.     fdNumItems = EndValid(item.id)
  156.     CLEAR tmp
  157.     FOR i = 1 TO fdNumItems
  158.         SafeSetObject(i, IF viewForm THEN 0 ELSE 1)
  159.     NEXT i
  160.     fdChanged = 1
  161. END PROC
  162.