home *** CD-ROM | disk | FTP | other *** search
- '***********************************************************************
- ' FormDev: Visual.RLZ
- '
- ' Copyright ⌐ 1991-1992 Computer Associates International, Inc.
- ' All rights reserved.
- '
- '***********************************************************************
-
- PROC ToolOn (toolNumber)
- LOCAL oldForm, toolInfo
-
- IF toolNumber <> currentOn THEN
- oldForm = FormQ(_Selected)
- IF currentOn = 10 AND toolNumber > 2 THEN
- fdCurrentBmpFN = ""
- IF QVar(%%browser) THEN
- FormSelect(%%browser)
- FormControl(_Hide)
- UpdateBrowser
- END IF
- END IF
- FormSelect(toolForm)
- IF currentOn THEN
- toolInfo = FormQObject(32000 + currentOn)
- FormModifyObject(32000 + currentOn, _Gray, "",toolInfo[_FQO_Left], 20 in)
- FormModifyObject(31000 + currentOn, _Normal, "",toolInfo[_FQO_Left], toolInfo[_FQO_Top])
- END IF
- IF toolNumber THEN
- toolInfo = FormQObject(31000 + toolNumber)
- FormModifyObject(32000 + toolNumber, _Normal, "", toolInfo[_FQO_Left], toolInfo[_FQO_Top])
- FormModifyObject(31000 + toolNumber, _Gray, "", toolInfo[_FQO_Left], 20 in)
- END IF
- currentOn = toolNumber
- IF oldForm THEN
- FormSelect(oldForm)
- END IF
- END IF
- END PROC
-
-
- PROC LastFrameOff
- LOCAL oldForm
-
- IF lastFrameNum THEN
- oldForm = FormQ(_Selected)
- ItemLocate(lastFrameNum)
- SafeSetObject(lastFrameNum, NOT viewForm)
- lastFrameNum = 0
- IF oldForm THEN
- FormSelect(oldForm)
- END IF
- END IF
- END PROC
-
-
- PROC AISVSetDefaults(n)
- SELECT CASE item.type[n]
- CASE _CaptionLeft, _CaptionCenter, _CaptionRight, _Bitmap, _BitmapButton
- item.heightsv[n] = _Default
- item.widthsv[n] = _Default
- CASE _TextBox
- item.heightsv[n] = _Default
- END SELECT
- END PROC
-
-
- PROC NewButPrep (itemNum, xCoord, yCoord)
- LOCAL sz, J, lf, tp, wd, ht
-
- ' Get the default size for the new item in a scratch form.
- sz = FormQ(_Size; fdMain)
- FormNew(FormQUnique; theform.title, theform.style)
- FormControl(_Size; sz[1], sz[2], sz[3], sz[4])
- item.left[itemNum] = xCoord
- item.top[itemNum] = yCoord
- SafeSetObject(itemNum, 2)
- J = item.id[itemNum]
- sz = FormQObject(J)
- lf = sz[_FQO_Left]
- tp = sz[_FQO_Top]
- wd = sz[_FQO_Width]
- ht = sz[_FQO_Height]
- FormSetObject(J, _Frame, "", 0, 0, 100pct, 100pct)
- sz = FormQObject(J)
- SELECT CASE item.type[itemNum]
- CASE _Chart, _Sheet, _Log ' max out at bottom-right
- wd = MIN(MAX(60, sz[_FQO_Width] - lf), wd)
- ht = MIN(MAX(60, sz[_FQO_Height] - tp), ht)
- END SELECT
- lf = MIN(lf, sz[_FQO_Width] - wd)
- tp = MIN(tp, sz[_FQO_Height] - ht)
- item.left[itemNum] = lf
- item.top[itemNum] = tp
- item.width[itemNum] = wd
- item.height[itemNum] = ht
- FormControl(_Close)
- FormSelect(fdMain)
-
- lastFrameNum = itemNum
- SafeSetObject(itemNum, 1)
- FormModifyObject(item.id[itemNum], _SetFocus)
- MenuEnable
- fdChanged = 1
- END PROC
-
-
- PROC SetNextItem (bUpdate)
- LOCAL orig
-
- orig = fdNextItem
- IF fdNextItem > 32764 THEN
- fdNextItem = 10 + 1000 * RND()
- END IF
- WHILE FirstMatch(item.id, fdNextItem)
- fdNextItem = fdNextItem + 10
- IF fdNextItem > 32764 THEN
- fdNextItem = 10 + 1000 * RND()
- END IF
- END WHILE
- IF bUpdate AND orig <> fdNextItem THEN
- UpdateTool
- END IF
- END PROC
-
-
- PROC FDNewItem (typeDex, ..)
- LOCAL textStr, modvals, modstrs, itemNum
-
- SetHourglass
- FormSelect(fdMain)
- LastFrameOff
-
- itemNum = ItemNew
- IF QNOptParams() THEN
- textStr = QOptParam(1)
- ELSE
- textStr = ItemNames[typeDex]
- END IF
- IF typeDex <> 11 AND textStr <> "" THEN
- textStr = SPRINT("& P(0)", textStr, ItemID(itemNum))
- END IF
- item.text[itemNum] = textStr
- item.type[itemNum] = ItemNums[typeDex]
- ValidBMP(itemNum)
-
- AISetModvals(itemNum) ' AFTER item.type is set.
- AIUnsetModvals(itemNum)
- AISVSetDefaults(itemNum)
- NewButPrep(itemNum, xCoord, yCoord)
- SetNextItem(0)
- UpdateTool
-
- ResetHourglass
- END PROC
-
-
- PROC ToolProc(params)
- LOCAL currFocus, oldToolOn, itemNum
-
- FormSelect(fdMain)
- currFocus = FormQObject()[_FQO_ItemNum]
- LastFrameOff
-
- IF params[_Invoke] <> _Click THEN
- IF params[_Invoke] = _Close THEN
- ShutdownProc(params)
- END IF
- EXIT PROC
- END IF
-
- SELECT CASE params[_ItemNum]
- CASE 31001, 32001, 31002, 32002 ' Arrow or trashcan
- IF fdNumItems < 1 THEN
- INPUT "No items in the form.", "FormDev";
- EXIT PROC
- END IF
- oldToolOn = currentOn
- ToolOn(params[_ItemNum] MOD 1000)
- ItemsEnableAll
- itemNum = FirstMatch(item.id, FormWait(_PickDrag))
- IF itemNum <> 0 THEN
- IF params[_ItemNum] = 31002 OR params[_ItemNum] = 32002 THEN
- ItemDelete(itemNum)
- lastFrameNum = 0
- ELSE
- ' Selector code.
- ItemLocate(itemNum)
- lastFrameNum = itemNum
- SafeSetObject(itemNum, 1)
- FormModifyObject(item.id[itemNum], _SetFocus)
- fdChanged = 1
- END IF
- END IF
- ToolOn(oldToolOn)
-
- CASE 31010
- ToolOn(10)
- ShowBrowser(1)
- EXIT PROC 'avoid the _Show
-
- CASE 32010
- ShowBrowser(1)
- EXIT PROC 'avoid the _Show
-
- CASE 31003 TO 31016 ' Palette button
- ToolOn(params[_ItemNum] - 31000)
-
- CASE 32760 ' Color button
- SetColor
- UpdateTool
-
- CASE 32761 ' Font button
- theform.font = FDFontModal(theform.font)
- UpdateTool
-
- CASE 32762 ' Options button
- ItemsLocateAll
- ItemsEnableAll
- itemNum = 0
- IF currFocus > 0 AND currFocus < 32766 THEN
- IF QVar(item.id) THEN
- itemNum = FirstMatch(item.id, currFocus)
- END IF
- END IF
- IF itemNum = 0 THEN
- INPUT "Select an item in the form then press Options.", "FormDev";
- ELSE
- SELECT CASE VisOption(itemNum)
- CASE -2 'Cancel
- FormModifyObject(currFocus, _SetFocus)
- CASE -3 'Delete
- CASE ELSE
- FormModifyObject(item.id[itemNum], _SetFocus)
- END SELECT
- END IF
- END SELECT
-
- FormSelect(fdMain)
- FormControl(_Show)
- END PROC
-
-
- PROC UpdateTool
- LOCAL oldForm, fontvect
-
- oldForm = FormQ(_Selected)
- FormSelect(toolForm)
-
- FormModifyObject(32750, _Gray, SPrint("Next: P(0)", fdNextItem))
-
- FormSetColor(ColorUnpack(theform.txtC); _Text)
- FormSetColor(ColorUnpack(theform.fldC); _Field)
- FormModifyObject(32752, _SetColor)
-
- IF theform.font THEN
- fontvect = {fonts.name[theform.font], fonts.size[theform.font], fonts.style[theform.font]}
- ELSE
- fontvect = {"", "", ""}
- END IF
- FormModifyObject(32753, _Gray, FdFontStr(fontvect))
-
- IF oldForm THEN
- FormSelect(oldForm)
- END IF
- END PROC
-
-
- PROC MainProc(params)
- LOCAL xCoord, yCoord, bitmapFN
-
- FormSelect(fdMain)
-
- SELECT CASE params[_Invoke]
- CASE _Close
- ShutdownProc(params)
- CASE _Click
- IF params[_ItemNum] <> 32767 THEN
- EXIT PROC
- END IF
- ' This is a click in "White.BMP"
- xCoord = params[_XPos]
- yCoord = params[_YPos]
- SELECT CASE currentOn
- CASE 3 ' Textbox
- FDNewItem(3, "")
- CASE 4 ' Button
- FDNewItem(2)
- CASE 5 ' Group box
- FDNewItem(6)
- CASE 6 ' Caption Text
- FDNewItem(7, "Text")
- CASE 7 ' Radio button
- FDNewItem(5)
- CASE 8 ' Checkbox
- FDNewItem(4)
- CASE 9 ' Frame
- FDNewItem(10)
- CASE 10 ' Bitmap
- IF fdCurrentBmpFN = "" THEN
- INPUT "No bitmap is selected.", "FormDev";
- ShowBrowser(1)
- ELSE
- FDNewItem(11, fdCurrentBmpPath + fdCurrentBmpFN)
- fdCurrentBmpFN = ""
- UpdateBrowser
- END IF
- CASE 11 ' Drop-down list
- FDNewItem(14)
- CASE 12 ' List box
- FDNewItem(13)
- CASE 13 ' Log
- FDNewItem(17)
- CASE 14 ' Chart
- FDNewItem(18)
- CASE 15 ' Digital Clock
- FDNewItem(20)
- CASE 16 ' Spreadsheet
- FDNewItem(19)
- END SELECT
- END SELECT
- END PROC
-
-
- PROC SetColor(..)
- LOCAL itemHit, n, c
-
- FormNew(FormQUnique)
- FormControl(_Size; _Center, _Center, 50.2 pct,11 pct)
- FormSetObject(1, _DefButton, "Text Color", 2 pct, _Center, 30 pct, _Default)
- FormSetObject(200, _Button, "Field Color", 35 pct, _Center, 30 pct, _Default)
- FormSetObject(2, _Button, "Cancel", 68 pct, _Center, 30 pct, _Default)
- itemHit = FormWait
- FormControl(_Close)
-
- SELECT CASE itemHit
- CASE 2 ' Cancel
- EXIT SELECT
- CASE 1 ' Text color
- IF QNOptParams THEN
- n = QOptParam(1)
- c = StdColor(ColorUnpack(item.textcolor[n]), "Select a color for the item's text")
- ELSE
- c = StdColor(ColorUnpack(theform.txtC), "Select a color for the text")
- END IF
-
- IF QVar(c, _Scalar) THEN
- IF c = 0 THEN
- EXIT SELECT
- END IF
- END IF
- IF QNOptParams THEN
- item.textcolor[n] = ColorPack(c)
- ELSE
- theform.txtC = ColorPack(c)
- END IF
- CASE 200 ' Field color
- IF QNOptParams THEN
- n = QOptParam(1)
- c = StdColor(ColorUnpack(item.fieldcolor[n]), "Select a color for the item's field")
- ELSE
- c = StdColor(ColorUnpack(theform.fldC), "Select a color for background field")
- END IF
- IF QVar(c, _Scalar) THEN
- IF c = 0 THEN
- EXIT SELECT
- END IF
- END IF
- IF QNOptParams THEN
- item.fieldcolor[n] = ColorPack(c)
- ELSE
- theform.fldC = ColorPack(c)
- END IF
- END SELECT
- END PROC
-