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

  1. '***********************************************************************
  2. '    FDT_Act.RLZ
  3. '
  4. '    Copyright ⌐ 1991-1992 Computer Associates International, Inc.
  5. '    All rights reserved.
  6. '
  7. '***********************************************************************
  8.  
  9. PROC FDT_EnabButtons (rsAttr)
  10.     FormSelect(fdt_guideF)
  11.     FormModifyObject(3, rsAttr)
  12.     FormModifyObject(4, rsAttr)
  13.     IF FormQ(_Exists; fdt_bigHelpF) THEN
  14.         FormSelect(fdt_bigHelpF)
  15.         FormModifyObject(7, rsAttr)
  16.         FormModifyObject(8, rsAttr)
  17.         FormModifyObject(9, rsAttr)
  18.     END IF
  19. END PROC
  20.  
  21. PROC FDT_ModalStart (hPosit)
  22.     FDT_EnabButtons(_Gray)
  23.     FDT_ShowBigHelp(hPosit, _Gray)
  24. END PROC
  25.  
  26. PROC FDT_ModalDone ()
  27.     FDT_HideClicks()
  28.     FDT_EnabButtons(_Normal)
  29. END PROC
  30.  
  31. PROC FDT_DlgPoint (rsID, offset)
  32.     LOCAL    tv, lf, tp, maxLeft, bmName, rsAttr
  33.  
  34.     IF rsID = 0 THEN
  35.         IF FormQNum(301) <> -2 THEN
  36.             FormModifyObject(301, _Close)
  37.         END IF
  38.         EXIT PROC
  39.     END IF
  40.  
  41.     tv = FormQObject(rsID)
  42.     tp = tv[_FQO_Top] + tv[_FQO_Height]
  43.     IF offset = -999 THEN
  44.         bmName = "FDT_TYPE"
  45.         rsAttr = _Gray
  46.         IF tv[_FQO_Height] > 4 * fdt_fht THEN
  47.             offset = FormQObject(1)[_FQO_Height]
  48.             tp = tv[_FQO_Top] + offset
  49.         ELSE
  50.             offset = fdt_fht
  51.             tp = tp - 1
  52.         END IF
  53.     ELSE
  54.         bmName = "FDT_CLIK"
  55.         rsAttr = _Normal
  56.         tp = tp - 4
  57.     END IF
  58.     lf = tv[_FQO_Left]
  59.     IF offset <= -1000 THEN        'center it
  60.         lf = lf + tv[_FQO_Width] / 2
  61.     ELSE
  62.         lf = lf + offset
  63.     END IF
  64.  
  65.     FormSetObject(301, _Bitmap, QSys(_ProgDir) + bmName, 100pct, 100pct)
  66.     tv = FormQObject(301)
  67.     IF scaleSplash > 1 THEN
  68.         tv[_FQO_Width:_FQO_Height] = tv[_FQO_Width:_FQO_Height] * scaleSplash
  69.         FormSetObject(301, _Bitmap, QSys(_ProgDir) + bmName, 100pct, 100pct, tv[_FQO_Width], tv[_FQO_Height])
  70.     END IF
  71.     lf = MIN(lf, tv[_FQO_Left] - tv[_FQO_Width] + 1)
  72.     FormModifyObject(301, rsAttr, lf, tp)
  73. END PROC
  74.  
  75. FUNC FDT_DlgFW ()
  76.     LOCAL    origFocus, result
  77.     origFocus = FormQObject()[_FQO_ItemNum]
  78.     result = FormWait()
  79.     WHILE result = 301
  80.         FDT_ClickMsg()
  81.         IF origFocus THEN
  82.             FormModifyObject(origFocus, _SetFocus)
  83.         END IF
  84.         result = FormWait()
  85.     END WHILE
  86.     RETURN result
  87. END FUNC
  88.  
  89. PROC FDT_TypeIn (rsID, newText, guideMsg)
  90.     LOCAL    J, EM_REPLACESEL, tv, hwnd, prevTickCount, delay
  91.  
  92.     EXTERNAL "user" FUNC GetTickCount () AS dword ALIAS 13
  93.     EXTERNAL "user" PROC SendMessage (word, word, word, pointer) ALIAS 111
  94.     EM_REPLACESEL = 1024 + 18
  95.  
  96.     PROC TDelay (delay)
  97.         LOCAL    prevTickCount
  98.         prevTickCount = GetTickCount()
  99.         WHILE GetTickCount() - prevTickCount < delay
  100.             IF GetTickCount() < prevTickCount THEN
  101.                 EXIT WHILE
  102.             END IF
  103.         END WHILE
  104.     END PROC
  105.  
  106.     FDT_GuideMsg(guideMsg)
  107.     TDelay(500)
  108.     BEEP
  109.     FDT_DlgPoint(rsID, -999)
  110.     TDelay(500)
  111.     tv = FormQObject(301)
  112.     FOR J = 1 TO 3
  113.         TDelay(200)
  114.         FormModifyObject(301, _Gray, 100pct, 100pct)
  115.         TDelay(300)
  116.         FormModifyObject(301, _Gray, tv[_FQO_Left], tv[_FQO_Top])
  117.     NEXT
  118.     tv = FormQObject(rsID)
  119.     hwnd = tv[_Hwnd]
  120.     IF tv[_ItemType] = _TextBox THEN
  121.         EXTERNAL "user" FUNC GetTopWindow (word) AS word ALIAS 229
  122.         hwnd = GetTopWindow(hwnd)
  123.     END IF 
  124.     FOR J = 1 TO Len(newText)
  125.         IF J < 7 THEN
  126.             delay = {250, 500, 500, 500, 500, 150}[J]
  127.         END IF
  128.         TDelay(delay)
  129.         SendMessage(hwnd, EM_REPLACESEL, 0, Mid$(newText, J, 1))
  130.     NEXT
  131.     TDelay(2000)
  132. END PROC
  133.  
  134. PROC FDT_Action (n)
  135.     LOCAL    tv, lf, delta, fdAction, s
  136.  
  137.     FDT_ModalStart(_Right)
  138.     fdAction = FormQUnique
  139.     FormNew(fdAction; Sprint("Action Code for Item P(0) - &", ItemID(n), item.text[n]), _Title + _ContextEnter + _Close)
  140.     FormControl(_Size; 5 pct, _Center, 50 pct, 70 pct)
  141.     tv = FormQ(_Size)
  142.     lf = tv[1]
  143.     delta = lf + tv[3] - FormQ(_Size; fdt_bigHelpF)[1]
  144.     IF delta > 0 THEN
  145.         lf = MAX(0, lf - delta)
  146.     END IF
  147.  
  148.     FormSetObject(60, _CaptionCenter, "Action code", _Center, 5 pct, 100 pct, _Default)
  149.     FormSetObject(70, _Log, "", _Center, 15 pct, 90 pct, 70 pct)
  150.     FormSetObject(1, _Button, "OK", 10 pct, 87 pct)
  151.     FormSetObject(2, _Button, "Cancel", 65 pct, 87 pct)
  152.     ResizeForm(lf, _Default, _Default, QB(1) + fdt_clickFHt - 3)
  153.     s = fdt_actionCode[n]
  154.     FormControl(_Show)
  155.  
  156.     FDT_BigHilight(103, 201; 5)
  157.     FDT_TypeIn(70, s, "Watch as the action code is typed.")
  158.     FormModifyObject(1, _SetFocus)
  159.     FDT_BigHilight(201, 211)
  160.     LOOP
  161.         FDT_GuideMsg("Click on the OK button.")
  162.         FDT_DlgPoint(1, -1000)
  163.         SELECT CASE FDT_DlgFW()
  164.             CASE 1    'Ok
  165.                 item.code[n] = s
  166.                 EXIT LOOP
  167.         END SELECT
  168.         BEEP
  169.     END LOOP
  170.     FormControl(_Close)
  171.     FDT_ModalDone()
  172. END PROC
  173.  
  174. PROC FDT_Save ()
  175.     LOCAL    fdSaveForm, fdFileName, fdFileDir, fdOutLog, fdOutFile, badDir
  176.     LOCAL    lf, dirPart, filePart
  177.  
  178.     FDT_ModalStart(_Left)
  179.  
  180.     PROC SetGrayNormal (toNormal; ..)
  181.         LOCAL    rsAttr, J
  182.         rsAttr = IF toNormal THEN _Normal ELSE _Gray
  183.         FOR J = 1 TO QNOptMods
  184.             FormModifyObject(QOptMod(J), rsAttr)
  185.         NEXT
  186.     END PROC
  187.  
  188.     FUNC LocFW ()
  189.         LOCAL    selection
  190.         selection = FDT_DlgFW()
  191.         IF FormQStr(11) <> fdFileDir OR FormQStr(15) <> "AppTutor" THEN
  192.             INPUT "Please do not change the Directory or Form Name.";
  193.             FormModifyObject(11, _Normal, fdFileDir)
  194.             FormModifyObject(15, _Normal, "AppTutor")
  195.         END IF
  196.         RETURN selection
  197.     END FUNC
  198.  
  199.     fdFileDir = LCase$(fdOpenPath)
  200.     fdSaveForm = FormQUnique
  201.     FormNew(fdSaveForm; "Save File", _Title + _Close)
  202.     FormControl(_Size; _Right, _Center, 50 pct, 80 pct)
  203.     lf = MIN(FormQ(_Size; fdt_bigHelpF)[3], FormQ(_Size)[1])
  204.  
  205.     FormSetObject(10, _CaptionLeft, "Directory:", 3 pct, 4 pct)
  206.     FormSetObject(14, _CaptionLeft, "Form Name:", 3 pct, 14 pct)
  207.     FormSetObject(15, _TextBox, theform.name, 34 pct, 13 pct, 61 pct, _Default)
  208.     FormSetObject(11, _TextBox, fdFileDir, 34 pct, 3 pct, 61 pct, _Default)
  209.  
  210.     FormSetObject(20, _CheckBox, "Generate Code", 10 pct, 24 pct; _Notify, bitand(theform.saveflags, 1))
  211.     FormSetObject(30, _GroupBox, "Generate:", 7 pct, 34 pct, 86 pct, 49 pct)
  212.     FormSetObject(40, _OptionButton, "Form creation code only", 10 pct, 41 pct; _Notify, bitand(theform.saveflags, 4))
  213.     FormSetObject(50, _OptionButton, "Form creation and processing", 10 pct, 51 pct; _Notify, bitand(theform.saveflags, 8))
  214.     FormSetObject(60, _OptionButton, "Full application", 10 pct, 61 pct; _Notify, bitand(theform.saveflags, 16))
  215.     FormSetObject(70, _CheckBox, "Show code", 10 pct, 71 pct; _Notify, bitand(theform.saveflags, 2))
  216.     SetGrayNormal(FormQNum(20); 40, 50, 60, 70)
  217.  
  218.     FormSetObject(1, _DefButton, "OK", _Left, _Bottom)
  219.     FormSetObject(2, _Button, "Cancel", _Right, _Bottom)
  220.     ResizeForm(lf, _Default, _Default, QB(1) + fdt_clickFHt - 3)
  221.  
  222.     FormControl(_Show)
  223.     FDT_TypeIn(15, "AppTutor", "Watch as the program name is typed.")
  224.     FormModifyObject(20, _SetFocus)
  225.  
  226.     FDT_DlgPoint(20, 8)
  227.     FDT_BigHilight(111, 121)
  228.     LOOP
  229.         FDT_GuideMsg("Click on the Generate Code checkbox.")
  230.         IF LocFW = 20 THEN
  231.             EXIT LOOP
  232.         END IF
  233.         BEEP
  234.         FormModifyObject(50; 1)
  235.         FormModifyObject(70; 0)
  236.     END LOOP
  237.     SetGrayNormal(FormQNum(20); 40, 50, 60, 70)
  238.     FDT_DlgPoint(60, 8)
  239.     FDT_BigHilight(121, 131)
  240.     LOOP
  241.         FDT_GuideMsg("Click on the Full application option button.")
  242.         IF LocFW = 60 THEN
  243.             EXIT LOOP
  244.         END IF
  245.         BEEP
  246.         FormModifyObject(20; 1)
  247.         FormModifyObject(50; 1)
  248.         FormModifyObject(70; 0)
  249.     END LOOP
  250.     FDT_DlgPoint(1, -1000)
  251.     FDT_BigHilight(131, 151)
  252.     LOOP
  253.         FDT_GuideMsg("Click on the OK button.")
  254.         IF LocFW = 1 THEN
  255.             EXIT LOOP
  256.         END IF
  257.         BEEP
  258.         FormModifyObject(20; 1)
  259.         FormModifyObject(60; 1)
  260.         FormModifyObject(70; 0)
  261.     END LOOP
  262.     theform.saveflags = FormQNum(20) + 2*FormQNum(70) + 4*FormQNum(40) + 8*FormQNum(50) + 16*FormQNum(60)
  263.     fdFileDir = FormQStr(11)
  264.     theform.name = FormQStr(15)
  265.     FormSelect(fdSaveForm)
  266.     FormControl(_Close)
  267.     FormSelect(fdMain)
  268.  
  269.     FDT_GuideMsg("Please wait while FormDev generates the Realizer BASIC program.")
  270.     SetHourglass
  271.  
  272.     fdChanged = 0 
  273.     MainFormLocate
  274.     ItemsLocateAll
  275.  
  276.     'Write the RFD file out
  277.     ItemsIntoRaw
  278.     fdFileName = fdOpenPath + theform.name
  279.     IF fdNumItems > 0 THEN
  280.         FileExport(fdFileName + ".RFD", _Realizer, _Named, theform, item, fonts, fdNumItems, fdNextItem)    
  281.     ELSE
  282.         FileExport(fdFileName + ".RFD", _Realizer, _Named, theform, fonts, fdNumItems, fdNextItem)    
  283.     END IF    
  284.     ItemsIntoPixels
  285.  
  286.     fdFormSaved = 1
  287.     fdOutLog = LogQUnique
  288.     LogNew(fdOutLog; fdFileName + ".code")
  289.     IF NOT(GenerateCode(fdOutLog, theform.saveflags)) THEN
  290.         ResetHourglass
  291.         INPUT "The form was saved, but the code generation failed.", "FormDev";
  292.     ELSE
  293.         fdOutFile = FileQUnique
  294.         FileOpen(fdOutFile, fdFileName + ".RLZ", _Write)
  295.         FileWrite(fdOutFile, LogQStr(1))
  296.         FileClose(fdOutFile)
  297.         LogControl(_Close)
  298.     END IF
  299.     FDT_ModalDone()
  300.     ResetHourglass
  301. END PROC
  302.