home *** CD-ROM | disk | FTP | other *** search
- '***********************************************************************
- ' FormDev: Reorder.RLZ
- '
- ' Copyright ⌐ 1991-1992 Computer Associates International, Inc.
- ' All rights reserved.
- '
- '***********************************************************************
-
- PROC ReorderItems
- LOCAL i, typename, count, countmax, newlist, s
- LOCAL id, n, tmp, J
-
- SetHourglass
- FormSelect(fdMain)
- LastFrameOff
- ItemsLocateAll
-
- FormNew(FormQUnique; "Back to Front Order of Form Items", _Title)
- FormControl(_Size; _Center, _Center, 80 pct, 70 pct)
- FormSetObject(1, _DefButton, "OK", 20 pct, 85 pct)
- FormSetObject(2, _Button, "Cancel", 67 pct, 85 pct)
- FormSetObject(50, _Button, "Add Item >>>", 41 pct, 19 pct, 19 pct, _Default)
- FormSetObject(60, _Button, "<<< Remove", 41 pct, 43 pct, 19 pct, _Default)
- FormSetObject(10, _CaptionCenter, "Original Form", 2 pct, 5 pct, 37 pct, _Default)
-
- FormSetObject(20, _ListBox, "", font_P, 2 pct, 12 pct, 37 pct, 70 pct)
- FormSetObject(30, _CaptionCenter, "Reordered Form", 62 pct, 5 pct, 37 pct, _Default)
- FormSetObject(40 ,_ListBox, "", font_P, 62 pct, 12 pct, 37 pct, 70 pct)
-
- FormModifyObject(60, _Gray)
-
- FOR i = 1 to fdNumItems
- typename = ItemNames[FirstMatch(ItemNums, item.type[i])]
- FormModifyObject(20; Sprint("##### & [&]", ItemID(i), typename, item.text[i]))
- NEXT i
- FormModifyObject(20; _ListSelect, 1)
- countmax = fdNumItems
- count = fdNumItems
- ResetHourglass
-
- LOOP
- SELECT CASE FormWait
- CASE 1 'OK
- ' Empty re-order list, just return as if CANCEL pressed.
- IF count = countmax THEN
- FormControl(_Close)
- EXIT PROC
- END IF
-
- ' There are leftover items that will be deleted
- IF count THEN
- IF count = 1 THEN
- s = "item which was"
- ELSE
- s = SPRINT("P(0) items which were", count)
- END IF
- s = "Delete the " + s + " left unordered?"
- IF MessageBox(s, "FormDev", _MB_YesNo, _MB_Question) = _No THEN
- EXIT SELECT
- END IF
- END IF
- EXIT LOOP
-
- CASE 2 'Cancel
- FormControl(_Close)
- EXIT PROC
-
- CASE 50, 20 ' Add Item >>>
- J = FormQNum(20)
- IF J THEN
- FormModifyObject(40; FormQStr(20))
- FormModifyObject(20; _ListDelete, J)
- IF count = countmax THEN
- FormModifyObject(60, _Normal)
- FormModifyObject(40; _ListSelect, 1)
- END IF
- count = count - 1
- IF count = 0 THEN
- FormModifyObject(50, _Gray)
- ELSE
- FormModifyObject(20; _ListSelect, MIN(J, count))
- END IF
- END IF
-
- CASE 60, 40 ' <<< Remove Item
- J = FormQNum(40)
- IF J THEN
- FormModifyObject(20; FormQStr(40))
- FormModifyObject(40; _ListDelete, J)
- IF count = 0 THEN
- FormModifyObject(50, _Normal)
- FormModifyObject(20; _ListSelect, 1)
- END IF
- count = count + 1
- IF count = countmax THEN
- FormModifyObject(60, _Gray)
- ELSE
- FormModifyObject(40; _ListSelect, MIN(J, countmax - count))
- END IF
- END IF
- END SELECT
- END LOOP
-
- newlist = FormQStr(40, 1)
- FormControl(_Close)
- FormSelect(fdMain)
- FOR i = 1 TO EndValid(newlist)
- id = StrToItemID(Left$(newlist[i], 5))
- n = FirstMatch(item.id, id)
- tmp.id[i] = id
- item.id[n] = 0 'Flag it as copied
- tmp.type[i] = item.type[n]
- tmp.text[i] = item.text[n]
- tmp.left[i] = item.left[n]
- tmp.top[i] = item.top[n]
- tmp.width[i] = item.width[n]
- tmp.height[i] = item.height[n]
- tmp.modval1[i] = item.modval1[n]
- tmp.modval2[i] = item.modval2[n]
- tmp.modstr[i] = item.modstr[n]
- tmp.font[i] = item.font[n]
- tmp.code[i] = item.code[n]
- tmp.leftsv[i] = item.leftsv[n]
- tmp.topsv[i] = item.topsv[n]
- tmp.widthsv[i] = item.widthsv[n]
- tmp.heightsv[i] = item.heightsv[n]
- tmp.fieldcolor[i] = item.fieldcolor[n]
- tmp.textcolor[i] = item.textcolor[n]
- NEXT i
- FOR i = 1 to fdNumItems
- IF item.id[i] <> 0 THEN
- FdFontRefDec(item.font[i])
- FormModifyObject(item.id[i], _Close)
- END IF
- NEXT i
- CLEAR item
- item.id = tmp.id
- item.type = tmp.type
- item.text = tmp.text
- item.left = tmp.left
- item.top = tmp.top
- item.width = tmp.width
- item.height = tmp.height
- item.modval1 = tmp.modval1
- item.modval2 = tmp.modval2
- item.modstr = tmp.modstr
- item.font = tmp.font
- item.code = tmp.code
- item.leftsv = tmp.leftsv
- item.topsv = tmp.topsv
- item.widthsv = tmp.widthsv
- item.heightsv = tmp.heightsv
- item.fieldcolor = tmp.fieldcolor
- item.textcolor = tmp.textcolor
- fdNumItems = EndValid(item.id)
- CLEAR tmp
- FOR i = 1 TO fdNumItems
- SafeSetObject(i, IF viewForm THEN 0 ELSE 1)
- NEXT i
- fdChanged = 1
- END PROC
-