home *** CD-ROM | disk | FTP | other *** search
/ Corrections in America -…uction (Student Resource) / Allen.iso / pc / content / mpage.dxr / 00003_mPageModuleScript.ls < prev    next >
Encoding:
Text File  |  2005-12-16  |  8.1 KB  |  241 lines

  1. property pPagesList, pLastSave, pCurrentPage, pNumPages, pName, pFiles, pSaveText, pNeedToSave, pQuestionTitleMember, pQuestionTextMember, pSummaryTitleMember, pSmallTextMember, pAnswerTextMember, pLargeTextMember, pButtonLocationsList
  2. global gMovieProperties
  3.  
  4. on new me, cName, cFiles
  5.   pSmallTextMember = member("Intro Text")
  6.   pQuestionTitleMember = member("Question Title")
  7.   pQuestionTextMember = member("Question Text")
  8.   pAnswerTextMember = member("Answer Text")
  9.   pSummaryTitleMember = member("Summary Title")
  10.   pLargeTextMember = member("Summary Text")
  11.   pButtonLocationsList = [#back: point(63, 565), #launch: point(188, 565), #previous: point(622, 565), #next: point(731, 565), #save: point(404, 565), #print: point(513, 565), #quit: point(170, 565)]
  12.   SetupTextMembers(me)
  13.   pPagesList = [:]
  14.   pCurrentPage = 1
  15.   pNumPages = 1
  16.   pName = cName
  17.   pFiles = cFiles
  18.   pSaveText = EMPTY
  19.   pNeedToSave = 0
  20.   InitializeList(me)
  21.   return me
  22. end
  23.  
  24. on InitializeList me
  25.   put "parent InitializeList()"
  26.   tempTextVar = ReadFromFile(gMovieProperties.pTextfilesFolder & pFiles[1])
  27.   if voidp(tempTextVar) then
  28.     tempTextVar = "<p1><text>Textfile (" & pFiles[1] & ") does not exist!</text></p1>"
  29.   end if
  30.   pPagesList = [:]
  31.   if voidp(tempTextVar) then
  32.     return 
  33.   end if
  34.   p = 0
  35.   repeat while 1
  36.     p = p + 1
  37.     cPageText = ReadTaggedString("<P" & p & ">", "</P" & p & ">", tempTextVar)
  38.     if not voidp(cPageText) then
  39.       toSaveOrNot = offset("<save>", cPageText)
  40.       if toSaveOrNot then
  41.         pPagesList.addProp(value("#P" & p & "Save"), 1)
  42.       else
  43.         pPagesList.addProp(value("#P" & p & "Save"), 0)
  44.       end if
  45.       vidName = ReadTaggedString("<Video>", "</Video>", cPageText)
  46.       if not voidp(vidName) then
  47.         pPagesList.addProp(value("#p" & p & "Video"), vidName)
  48.       end if
  49.       imgName = ReadTaggedString("<image>", "</image>", cPageText)
  50.       if not voidp(imgName) then
  51.         pPagesList.addProp(value("#p" & p & "Image"), imgName)
  52.       end if
  53.       pdfName = ReadTaggedString("<pdf>", "</pdf>", cPageText)
  54.       if not voidp(pdfName) then
  55.         pPagesList.addProp(value("#p" & p & "pdf"), pdfName)
  56.       end if
  57.       summaryText = ReadTaggedString("<summary>", "</summary>", cPageText)
  58.       if not voidp(summaryText) then
  59.         pPagesList.addProp(value("#p" & p & "Summary"), value(summaryText))
  60.       end if
  61.       questionText = ReadTaggedString("<Q>", "</Q>", cPageText)
  62.       if not voidp(questionText) then
  63.         pPagesList.addProp(value("#p" & p & "Question"), questionText)
  64.         introText = ReadTaggedString("<intro>", "</intro>", cPageText)
  65.         if not voidp(introText) then
  66.           pPagesList.addProp(value("#p" & p & "intro"), introText)
  67.         end if
  68.         feedbackText = ReadTaggedString("<F>", "</F>", cPageText)
  69.         if not voidp(feedbackText) then
  70.           pPagesList.addProp(value("#p" & p & "Feedback"), feedbackText)
  71.         end if
  72.         pPagesList.addProp(value("#p" & p & "Answer"), EMPTY)
  73.       end if
  74.       otherText = ReadTaggedString("<text>", "</text>", cPageText)
  75.       if not voidp(otherText) then
  76.         pPagesList.addProp(value("#p" & p & "text"), otherText)
  77.       end if
  78.       popupVid = ReadTaggedString("<popupvideo>", "</popupvideo>", cPageText)
  79.       if not voidp(popupVid) then
  80.         pPagesList.addProp(value("#p" & p & "popupvideo"), popupVid)
  81.       end if
  82.       delete tempTextVar.char[1..cPageText.char.count]
  83.       next repeat
  84.     end if
  85.     pNumPages = p - 1
  86.     exit repeat
  87.   end repeat
  88.   UpdatePagesList(me)
  89.   pNeedToSave = 0
  90. end
  91.  
  92. on UpdatePagesList me
  93.   if not voidp(pPagesList[value("#P" & pCurrentPage & "Answer")]) then
  94.     pPagesList[value("#P" & pCurrentPage & "Answer")] = pAnswerTextMember.text
  95.   end if
  96.   tempSave = pSaveText
  97.   pSaveText = GetSummaryForPages(me, [1, pNumPages])
  98.   if tempSave <> pSaveText then
  99.     pNeedToSave = 1
  100.   end if
  101. end
  102.  
  103. on GetSummaryForPages me, pagesRange
  104.   put "parent GetSummaryForPages([" & pagesRange & "])"
  105.   saveText = EMPTY
  106.   cIntro = EMPTY
  107.   repeat with p = pagesRange[1] to pagesRange[2]
  108.     iText = pPagesList[value("#P" & p & "Intro")]
  109.     qText = pPagesList[value("#P" & p & "Question")]
  110.     fText = pPagesList[value("#P" & p & "Feedback")]
  111.     oText = pPagesList[value("#P" & p & "text")]
  112.     if not voidp(qText) then
  113.       qText = qText
  114.       aText = pPagesList[value("#P" & p & "Answer")]
  115.       if (iText <> cIntro) and not voidp(iText) then
  116.         cIntro = iText
  117.         if p = 1 then
  118.           saveText = cIntro & RETURN & RETURN & qText
  119.         else
  120.           saveText = saveText & RETURN & RETURN & RETURN & cIntro & RETURN & RETURN & qText
  121.         end if
  122.       else
  123.         saveText = saveText & RETURN & RETURN & qText
  124.       end if
  125.       if aText = EMPTY then
  126.         saveText = saveText & RETURN & RETURN & "You provided no answer!"
  127.       else
  128.         saveText = saveText & RETURN & RETURN & aText
  129.       end if
  130.       if not voidp(fText) and (fText <> EMPTY) then
  131.         saveText = saveText & RETURN & RETURN & fText
  132.       end if
  133.     end if
  134.     if not voidp(oText) then
  135.       saveText = saveText & RETURN & RETURN & oText
  136.     end if
  137.   end repeat
  138.   if saveText.char[1..2] = (RETURN & RETURN) then
  139.     delete saveText.char[1..2]
  140.   end if
  141.   return saveText
  142. end
  143.  
  144. on GetSaveText me, pagesRange
  145.   if voidp(pagesRange) then
  146.     pagesRange = [1, pNumPages]
  147.   end if
  148.   put "parent GetSaveText([" & pagesRange & "])"
  149.   pSaveText = GetSummaryForPages(me, pagesRange)
  150.   if pSaveText = EMPTY then
  151.     return EMPTY
  152.   end if
  153.   header = GetSaveHeader()
  154.   sText = header & RETURN & RETURN & pName
  155.   sText = sText & RETURN & RETURN & RETURN & pSaveText
  156.   textMember = CreateTextMember("tempSaveParseMem", 4)
  157.   textMember.text = sText
  158.   if gMovieProperties.pTextParsing then
  159.     ParseMember(textMember)
  160.   end if
  161.   return textMember.text
  162. end
  163.  
  164. on saveText me, save_type
  165.   put "parent SaveText(" & save_type & ")"
  166.   UpdatePagesList(me)
  167.   if (save_type = 1) and not IsPageSummary(me) then
  168.     sText = GetSaveText(me, [pCurrentPage, pCurrentPage])
  169.   else
  170.     sText = GetSaveText(me)
  171.   end if
  172.   if SaveToFile(pName & ".txt", sText) then
  173.     pNeedToSave = 0
  174.   end if
  175. end
  176.  
  177. on IsPageSummary me
  178.   put "parent IsPageSummary()"
  179.   if not voidp(pPagesList.getaProp(value("#p" & pCurrentPage & "Summary"))) then
  180.     return 1
  181.   else
  182.     return 0
  183.   end if
  184. end
  185.  
  186. on NeedsSaving me
  187.   put "parent NeedsSaving()"
  188.   UpdatePagesList(me)
  189.   x = pNeedToSave
  190.   pNeedToSave = 0
  191.   return x
  192. end
  193.  
  194. on PrintText me, print_type
  195.   put "parent PrintText()"
  196.   UpdatePagesList(me)
  197.   if (print_type = 1) and not IsPageSummary(me) then
  198.     sText = GetSaveText(me, [pCurrentPage, pCurrentPage])
  199.   else
  200.     sText = GetSaveText(me)
  201.   end if
  202.   sText = FindReplaceChar(TAB, " ", sText)
  203.   print(sText)
  204. end
  205.  
  206. on SetupTextMembers me
  207.   pSmallTextMember.text = EMPTY
  208.   pSmallTextMember.font = gMovieProperties.pMainFont & " *"
  209.   pSmallTextMember.fontSize = gMovieProperties.pMainFontSize
  210.   pSmallTextMember.alignment = #left
  211.   pSmallTextMember.scrollTop = 1
  212.   pSmallTextMember.boxType = #fixed
  213.   pQuestionTitleMember.text = EMPTY
  214.   pQuestionTitleMember.font = gMovieProperties.pMainFont && "Bold *"
  215.   pQuestionTitleMember.fontSize = gMovieProperties.pMainFontSize + 2
  216.   pQuestionTitleMember.alignment = #left
  217.   pQuestionTitleMember.boxType = #adjust
  218.   pQuestionTextMember.text = EMPTY
  219.   pQuestionTextMember.font = gMovieProperties.pMainFont & " *"
  220.   pQuestionTextMember.fontSize = gMovieProperties.pMainFontSize
  221.   pQuestionTextMember.alignment = #left
  222.   pQuestionTextMember.scrollTop = 1
  223.   pQuestionTextMember.boxType = #fixed
  224.   pAnswerTextMember.text = EMPTY
  225.   pAnswerTextMember.font = gMovieProperties.pMainFont & " *"
  226.   pAnswerTextMember.fontSize = gMovieProperties.pMainFontSize
  227.   pAnswerTextMember.alignment = #left
  228.   pAnswerTextMember.boxType = #fixed
  229.   pSummaryTitleMember.text = EMPTY
  230.   pSummaryTitleMember.font = gMovieProperties.pMainFont && "Bold *"
  231.   pSummaryTitleMember.fontSize = gMovieProperties.pMainFontSize + 2
  232.   pSummaryTitleMember.alignment = #left
  233.   pSummaryTitleMember.boxType = #adjust
  234.   pLargeTextMember.text = EMPTY
  235.   pLargeTextMember.font = gMovieProperties.pMainFont & " *"
  236.   pLargeTextMember.fontSize = gMovieProperties.pMainFontSize
  237.   pLargeTextMember.alignment = #left
  238.   pLargeTextMember.scrollTop = 1
  239.   pLargeTextMember.boxType = #fixed
  240. end
  241.