home *** CD-ROM | disk | FTP | other *** search
- '***********************************************************************
- ' FDT_Act.RLZ
- '
- ' Copyright ⌐ 1991-1992 Computer Associates International, Inc.
- ' All rights reserved.
- '
- '***********************************************************************
-
- PROC FDT_EnabButtons (rsAttr)
- FormSelect(fdt_guideF)
- FormModifyObject(3, rsAttr)
- FormModifyObject(4, rsAttr)
- IF FormQ(_Exists; fdt_bigHelpF) THEN
- FormSelect(fdt_bigHelpF)
- FormModifyObject(7, rsAttr)
- FormModifyObject(8, rsAttr)
- FormModifyObject(9, rsAttr)
- END IF
- END PROC
-
- PROC FDT_ModalStart (hPosit)
- FDT_EnabButtons(_Gray)
- FDT_ShowBigHelp(hPosit, _Gray)
- END PROC
-
- PROC FDT_ModalDone ()
- FDT_HideClicks()
- FDT_EnabButtons(_Normal)
- END PROC
-
- PROC FDT_DlgPoint (rsID, offset)
- LOCAL tv, lf, tp, maxLeft, bmName, rsAttr
-
- IF rsID = 0 THEN
- IF FormQNum(301) <> -2 THEN
- FormModifyObject(301, _Close)
- END IF
- EXIT PROC
- END IF
-
- tv = FormQObject(rsID)
- tp = tv[_FQO_Top] + tv[_FQO_Height]
- IF offset = -999 THEN
- bmName = "FDT_TYPE"
- rsAttr = _Gray
- IF tv[_FQO_Height] > 4 * fdt_fht THEN
- offset = FormQObject(1)[_FQO_Height]
- tp = tv[_FQO_Top] + offset
- ELSE
- offset = fdt_fht
- tp = tp - 1
- END IF
- ELSE
- bmName = "FDT_CLIK"
- rsAttr = _Normal
- tp = tp - 4
- END IF
- lf = tv[_FQO_Left]
- IF offset <= -1000 THEN 'center it
- lf = lf + tv[_FQO_Width] / 2
- ELSE
- lf = lf + offset
- END IF
-
- FormSetObject(301, _Bitmap, QSys(_ProgDir) + bmName, 100pct, 100pct)
- tv = FormQObject(301)
- IF scaleSplash > 1 THEN
- tv[_FQO_Width:_FQO_Height] = tv[_FQO_Width:_FQO_Height] * scaleSplash
- FormSetObject(301, _Bitmap, QSys(_ProgDir) + bmName, 100pct, 100pct, tv[_FQO_Width], tv[_FQO_Height])
- END IF
- lf = MIN(lf, tv[_FQO_Left] - tv[_FQO_Width] + 1)
- FormModifyObject(301, rsAttr, lf, tp)
- END PROC
-
- FUNC FDT_DlgFW ()
- LOCAL origFocus, result
- origFocus = FormQObject()[_FQO_ItemNum]
- result = FormWait()
- WHILE result = 301
- FDT_ClickMsg()
- IF origFocus THEN
- FormModifyObject(origFocus, _SetFocus)
- END IF
- result = FormWait()
- END WHILE
- RETURN result
- END FUNC
-
- PROC FDT_TypeIn (rsID, newText, guideMsg)
- LOCAL J, EM_REPLACESEL, tv, hwnd, prevTickCount, delay
-
- EXTERNAL "user" FUNC GetTickCount () AS dword ALIAS 13
- EXTERNAL "user" PROC SendMessage (word, word, word, pointer) ALIAS 111
- EM_REPLACESEL = 1024 + 18
-
- PROC TDelay (delay)
- LOCAL prevTickCount
- prevTickCount = GetTickCount()
- WHILE GetTickCount() - prevTickCount < delay
- IF GetTickCount() < prevTickCount THEN
- EXIT WHILE
- END IF
- END WHILE
- END PROC
-
- FDT_GuideMsg(guideMsg)
- TDelay(500)
- BEEP
- FDT_DlgPoint(rsID, -999)
- TDelay(500)
- tv = FormQObject(301)
- FOR J = 1 TO 3
- TDelay(200)
- FormModifyObject(301, _Gray, 100pct, 100pct)
- TDelay(300)
- FormModifyObject(301, _Gray, tv[_FQO_Left], tv[_FQO_Top])
- NEXT
- tv = FormQObject(rsID)
- hwnd = tv[_Hwnd]
- IF tv[_ItemType] = _TextBox THEN
- EXTERNAL "user" FUNC GetTopWindow (word) AS word ALIAS 229
- hwnd = GetTopWindow(hwnd)
- END IF
- FOR J = 1 TO Len(newText)
- IF J < 7 THEN
- delay = {250, 500, 500, 500, 500, 150}[J]
- END IF
- TDelay(delay)
- SendMessage(hwnd, EM_REPLACESEL, 0, Mid$(newText, J, 1))
- NEXT
- TDelay(2000)
- END PROC
-
- PROC FDT_Action (n)
- LOCAL tv, lf, delta, fdAction, s
-
- FDT_ModalStart(_Right)
- fdAction = FormQUnique
- FormNew(fdAction; Sprint("Action Code for Item P(0) - &", ItemID(n), item.text[n]), _Title + _ContextEnter + _Close)
- FormControl(_Size; 5 pct, _Center, 50 pct, 70 pct)
- tv = FormQ(_Size)
- lf = tv[1]
- delta = lf + tv[3] - FormQ(_Size; fdt_bigHelpF)[1]
- IF delta > 0 THEN
- lf = MAX(0, lf - delta)
- END IF
-
- FormSetObject(60, _CaptionCenter, "Action code", _Center, 5 pct, 100 pct, _Default)
- FormSetObject(70, _Log, "", _Center, 15 pct, 90 pct, 70 pct)
- FormSetObject(1, _Button, "OK", 10 pct, 87 pct)
- FormSetObject(2, _Button, "Cancel", 65 pct, 87 pct)
- ResizeForm(lf, _Default, _Default, QB(1) + fdt_clickFHt - 3)
- s = fdt_actionCode[n]
- FormControl(_Show)
-
- FDT_BigHilight(103, 201; 5)
- FDT_TypeIn(70, s, "Watch as the action code is typed.")
- FormModifyObject(1, _SetFocus)
- FDT_BigHilight(201, 211)
- LOOP
- FDT_GuideMsg("Click on the OK button.")
- FDT_DlgPoint(1, -1000)
- SELECT CASE FDT_DlgFW()
- CASE 1 'Ok
- item.code[n] = s
- EXIT LOOP
- END SELECT
- BEEP
- END LOOP
- FormControl(_Close)
- FDT_ModalDone()
- END PROC
-
- PROC FDT_Save ()
- LOCAL fdSaveForm, fdFileName, fdFileDir, fdOutLog, fdOutFile, badDir
- LOCAL lf, dirPart, filePart
-
- FDT_ModalStart(_Left)
-
- PROC SetGrayNormal (toNormal; ..)
- LOCAL rsAttr, J
- rsAttr = IF toNormal THEN _Normal ELSE _Gray
- FOR J = 1 TO QNOptMods
- FormModifyObject(QOptMod(J), rsAttr)
- NEXT
- END PROC
-
- FUNC LocFW ()
- LOCAL selection
- selection = FDT_DlgFW()
- IF FormQStr(11) <> fdFileDir OR FormQStr(15) <> "AppTutor" THEN
- INPUT "Please do not change the Directory or Form Name.";
- FormModifyObject(11, _Normal, fdFileDir)
- FormModifyObject(15, _Normal, "AppTutor")
- END IF
- RETURN selection
- END FUNC
-
- fdFileDir = LCase$(fdOpenPath)
- fdSaveForm = FormQUnique
- FormNew(fdSaveForm; "Save File", _Title + _Close)
- FormControl(_Size; _Right, _Center, 50 pct, 80 pct)
- lf = MIN(FormQ(_Size; fdt_bigHelpF)[3], FormQ(_Size)[1])
-
- FormSetObject(10, _CaptionLeft, "Directory:", 3 pct, 4 pct)
- FormSetObject(14, _CaptionLeft, "Form Name:", 3 pct, 14 pct)
- FormSetObject(15, _TextBox, theform.name, 34 pct, 13 pct, 61 pct, _Default)
- FormSetObject(11, _TextBox, fdFileDir, 34 pct, 3 pct, 61 pct, _Default)
-
- FormSetObject(20, _CheckBox, "Generate Code", 10 pct, 24 pct; _Notify, bitand(theform.saveflags, 1))
- FormSetObject(30, _GroupBox, "Generate:", 7 pct, 34 pct, 86 pct, 49 pct)
- FormSetObject(40, _OptionButton, "Form creation code only", 10 pct, 41 pct; _Notify, bitand(theform.saveflags, 4))
- FormSetObject(50, _OptionButton, "Form creation and processing", 10 pct, 51 pct; _Notify, bitand(theform.saveflags, 8))
- FormSetObject(60, _OptionButton, "Full application", 10 pct, 61 pct; _Notify, bitand(theform.saveflags, 16))
- FormSetObject(70, _CheckBox, "Show code", 10 pct, 71 pct; _Notify, bitand(theform.saveflags, 2))
- SetGrayNormal(FormQNum(20); 40, 50, 60, 70)
-
- FormSetObject(1, _DefButton, "OK", _Left, _Bottom)
- FormSetObject(2, _Button, "Cancel", _Right, _Bottom)
- ResizeForm(lf, _Default, _Default, QB(1) + fdt_clickFHt - 3)
-
- FormControl(_Show)
- FDT_TypeIn(15, "AppTutor", "Watch as the program name is typed.")
- FormModifyObject(20, _SetFocus)
-
- FDT_DlgPoint(20, 8)
- FDT_BigHilight(111, 121)
- LOOP
- FDT_GuideMsg("Click on the Generate Code checkbox.")
- IF LocFW = 20 THEN
- EXIT LOOP
- END IF
- BEEP
- FormModifyObject(50; 1)
- FormModifyObject(70; 0)
- END LOOP
- SetGrayNormal(FormQNum(20); 40, 50, 60, 70)
- FDT_DlgPoint(60, 8)
- FDT_BigHilight(121, 131)
- LOOP
- FDT_GuideMsg("Click on the Full application option button.")
- IF LocFW = 60 THEN
- EXIT LOOP
- END IF
- BEEP
- FormModifyObject(20; 1)
- FormModifyObject(50; 1)
- FormModifyObject(70; 0)
- END LOOP
- FDT_DlgPoint(1, -1000)
- FDT_BigHilight(131, 151)
- LOOP
- FDT_GuideMsg("Click on the OK button.")
- IF LocFW = 1 THEN
- EXIT LOOP
- END IF
- BEEP
- FormModifyObject(20; 1)
- FormModifyObject(60; 1)
- FormModifyObject(70; 0)
- END LOOP
- theform.saveflags = FormQNum(20) + 2*FormQNum(70) + 4*FormQNum(40) + 8*FormQNum(50) + 16*FormQNum(60)
- fdFileDir = FormQStr(11)
- theform.name = FormQStr(15)
- FormSelect(fdSaveForm)
- FormControl(_Close)
- FormSelect(fdMain)
-
- FDT_GuideMsg("Please wait while FormDev generates the Realizer BASIC program.")
- SetHourglass
-
- fdChanged = 0
- MainFormLocate
- ItemsLocateAll
-
- 'Write the RFD file out
- ItemsIntoRaw
- fdFileName = fdOpenPath + theform.name
- IF fdNumItems > 0 THEN
- FileExport(fdFileName + ".RFD", _Realizer, _Named, theform, item, fonts, fdNumItems, fdNextItem)
- ELSE
- FileExport(fdFileName + ".RFD", _Realizer, _Named, theform, fonts, fdNumItems, fdNextItem)
- END IF
- ItemsIntoPixels
-
- fdFormSaved = 1
- fdOutLog = LogQUnique
- LogNew(fdOutLog; fdFileName + ".code")
- IF NOT(GenerateCode(fdOutLog, theform.saveflags)) THEN
- ResetHourglass
- INPUT "The form was saved, but the code generation failed.", "FormDev";
- ELSE
- fdOutFile = FileQUnique
- FileOpen(fdOutFile, fdFileName + ".RLZ", _Write)
- FileWrite(fdOutFile, LogQStr(1))
- FileClose(fdOutFile)
- LogControl(_Close)
- END IF
- FDT_ModalDone()
- ResetHourglass
- END PROC
-