Diff for /capa/capa51/GUITools/quizzer.tcl between versions 1.7 and 1.14

version 1.7, 1999/11/08 22:30:02 version 1.14, 2000/02/02 19:14:10
Line 641  proc getProbValTryVal {} { Line 641  proc getProbValTryVal {} {
 ###########################################################  ###########################################################
 # updateDateBox   # updateDateBox 
 ###########################################################  ###########################################################
   # sticks the date information from gControlDates into the date listbox
 ###########################################################  ###########################################################
 ###########################################################  ###########################################################
 proc updateDateBox { listbox } {  proc updateDateBox { listbox } {
Line 665  proc loadDates { listbox } { Line 666  proc loadDates { listbox } {
     global gControlDates      global gControlDates
     if { [catch {getHeaderInfo}]} {       if { [catch {getHeaderInfo}]} { 
  displayError "That set.db does not exist"   displayError "That set.db does not exist"
     }       } else { 
    if { [llength $gControlDates] > 2 } {
       set gControlDates [linsert [lreverse [lrange $gControlDates 1 end]] 0 [lindex $gControlDates 0]] 
    } 
       }
     updateDateBox $listbox      updateDateBox $listbox
 }  }
   
Line 819  proc getday { kind } { Line 824  proc getday { kind } {
 }  }
   
 ###########################################################  ###########################################################
   # moveUpDate
   ###########################################################
   ###########################################################
   ###########################################################
   proc  moveUpDate { listbox } {
       global gControlDates gDates
       if { ![winfo exists $listbox] } { return }
       if { [set which [$listbox curselection]] == "" } {
    displayMessage "Please select a date to move."
    return
       }
       if { $which > 1 } {
    set element [lindex $gControlDates $which]
    set gControlDates [lreplace $gControlDates $which $which]
    set gControlDates [linsert $gControlDates [expr $which - 1] $element]
    updateDateBox $listbox
    $listbox selection set [expr {$which - 1}]
    $listbox see [expr {$which -1}]
       }
   }
   
   ###########################################################
   # moveDownDate
   ###########################################################
   ###########################################################
   ###########################################################
   proc  moveDownDate { listbox } {
       global gControlDates gDates
       if { ![winfo exists $listbox] } { return }
       if { [set which [$listbox curselection]] == "" } {
    displayMessage "Please select a date to move."
    return
       }
       if { ($which > 0) && ($which < ([llength $gControlDates]-1)) } {
    set element [lindex $gControlDates $which]
    set gControlDates [lreplace $gControlDates $which $which]
    set gControlDates [linsert $gControlDates [expr $which + 1] $element]
    updateDateBox $listbox
    $listbox selection set [expr {$which + 1}]
    $listbox see [expr {$which + 1}]
       }
   }
   
   ###########################################################
 # enableDateValidation  # enableDateValidation
 ###########################################################  ###########################################################
 ###########################################################  ###########################################################
Line 1182  proc createDBHeader {} { Line 1231  proc createDBHeader {} {
     message $dialog.msg -text "Header Information" -aspect 1000      message $dialog.msg -text "Header Information" -aspect 1000
     set loadFrame [frame $dialog.loadFrame -borderwidth 4 -relief sunken]      set loadFrame [frame $dialog.loadFrame -borderwidth 4 -relief sunken]
     set infoFrame [frame $dialog.infoFrame -borderwidth 4 -relief sunken]      set infoFrame [frame $dialog.infoFrame -borderwidth 4 -relief sunken]
       label $dialog.message -text "Later entries will override earlier entries"
     set optionFrame [frame $dialog.options]      set optionFrame [frame $dialog.options]
     set buttonFrame [frame $dialog.buttons -bd 10]      set buttonFrame [frame $dialog.buttons -bd 10]
     pack $dialog.msg $loadFrame $infoFrame $optionFrame $buttonFrame -side top -fill x      pack $dialog.msg $loadFrame $dialog.message $infoFrame $optionFrame \
    $buttonFrame -side top -fill x
   
     set legendFrame [frame $infoFrame.legendFrame]      set legendFrame [frame $infoFrame.legendFrame]
     set listFrame [frame $infoFrame.listFrame]      set listFrame [frame $infoFrame.listFrame]
Line 1198  proc createDBHeader {} { Line 1249  proc createDBHeader {} {
     set listbox [listbox $listFrame.list -width 63 -yscrollcommand "$listFrame.scroll set" ]      set listbox [listbox $listFrame.list -width 63 -yscrollcommand "$listFrame.scroll set" ]
     scrollbar $listFrame.scroll -command "$listbox yview"      scrollbar $listFrame.scroll -command "$listbox yview"
     pack $listFrame.list $listFrame.scroll -side left      pack $listFrame.list $listFrame.scroll -side left
       pack configure $listFrame.scroll -fill y
     updateDateBox $listbox      updateDateBox $listbox
           
     button $commandFrame.add -text "Add" -command "addDate $listbox"      button $commandFrame.add -text "Add" -command "addDate $listbox"
     button $commandFrame.change -text "Change" -command "changeDate $listbox"      button $commandFrame.change -text "Change" -command "changeDate $listbox"
     button $commandFrame.delete -text "Delete" -command "deleteDate $listbox"      button $commandFrame.delete -text "Delete" -command "deleteDate $listbox"
     pack $commandFrame.add $commandFrame.change $commandFrame.delete -side left      button $commandFrame.moveup -text "MoveUp" -command "moveUpDate $listbox"
       button $commandFrame.movedown -text "MoveDown" -command "moveDownDate $listbox"
       pack $commandFrame.add $commandFrame.change $commandFrame.delete \
    $commandFrame.moveup $commandFrame.movedown -side left
     bind $listbox <Double-ButtonPress-1> "changeDate $listbox"      bind $listbox <Double-ButtonPress-1> "changeDate $listbox"
   
     message $loadFrame.msg -text "Load header information from set:"  \      message $loadFrame.msg -text "Load header information from set:"  \
Line 1252  proc createDBHeader {} { Line 1307  proc createDBHeader {} {
     destroy $dialog      destroy $dialog
     if {$gPrompt(ok) == 1 } {      if {$gPrompt(ok) == 1 } {
  updateDiscussion   updateDiscussion
    if { [llength $gControlDates] > 2 } {
       set gControlDates [linsert [lreverse [lrange $gControlDates 1 end]] 0 [lindex $gControlDates 0]] 
    } 
  eval updateHeader [ eval concat $gControlDates ]   eval updateHeader [ eval concat $gControlDates ]
     }      }
           
Line 1580  proc replaceAll {} { Line 1638  proc replaceAll {} {
     set gCreateImportLinks 1      set gCreateImportLinks 1
     getFindWindow refNum      getFindWindow refNum
     if { $refNum >= 0 } { registerCreateImportLinks $refNum 0.0 end }      if { $refNum >= 0 } { registerCreateImportLinks $refNum 0.0 end }
     displayMessage "Replaced $num occurance$s"      displayMessage "Replaced $num occurrence$s"
 }  }
   
 ###########################################################  ###########################################################
Line 1800  proc createPrefsWindow {} { Line 1858  proc createPrefsWindow {} {
     if { [winfo exists .prefs] } { capaRaise .prefs; return }      if { [winfo exists .prefs] } { capaRaise .prefs; return }
   
     set prefs [toplevel .prefs]      set prefs [toplevel .prefs]
     $gWindowMenu add command -label "Prefrences" -command "capaRaise $prefs"      $gWindowMenu add command -label "Prefernces" -command "capaRaise $prefs"
     wm title $prefs "Preferences"      wm title $prefs "Preferences"
   
     set frameAll [frame $prefs.frameAll -relief groove -borderwidth 4]      set frameAll [frame $prefs.frameAll -relief groove -borderwidth 4]
Line 1844  proc createPrefsWindow {} { Line 1902  proc createPrefsWindow {} {
     button $frameButton.config -text "Reread capa.config" -command "rereadCapaConfig"      button $frameButton.config -text "Reread capa.config" -command "rereadCapaConfig"
     button $frameButton.ok -text "Dismiss" -command "destroy $prefs      button $frameButton.ok -text "Dismiss" -command "destroy $prefs
                                                 trace vdelete gWhichFile w changePrefFile                                                  trace vdelete gWhichFile w changePrefFile
                                                 removeWindowEntry Prefrences"                                                  removeWindowEntry Prefernces"
     bind $prefs <Destroy> "removeWindowEntry Preferences"      bind $prefs <Destroy> "removeWindowEntry Preferences"
     button $frameButton.save -text "Save All" -command "savePrefs"      button $frameButton.save -text "Save All" -command "savePrefs"
     pack $frameButton.impcolor $frameButton.commentcolor $frameButton.config \      pack $frameButton.impcolor $frameButton.commentcolor $frameButton.config \
Line 1971  proc checkHeader { numberParsed } { Line 2029  proc checkHeader { numberParsed } {
 #    if { $gFirstTime } { set gFirstTime 0; return }  #    if { $gFirstTime } { set gFirstTime 0; return }
     set gLoadHeaderSet $gSetNumberText      set gLoadHeaderSet $gSetNumberText
     set error [catch {getHeaderInfo}]      set error [catch {getHeaderInfo}]
       if { [llength $gControlDates] > 2 } {
    set gControlDates [linsert [lreverse [lrange $gControlDates 1 end]] 0 [lindex $gControlDates 0]] 
       } 
     if { $error == 1 } {      if { $error == 1 } {
  set gHeaderQCount "0"   set gHeaderQCount "0"
  set gControlDates ""   set gControlDates ""
Line 3005  proc trackChanges { procName num } { Line 3066  proc trackChanges { procName num } {
  set chars \[ .$procName get \$insertindex \$insertindex2 \]   set chars \[ .$procName get \$insertindex \$insertindex2 \]
     }      }
     set gUndo($num.\$numChange) \"insert \$insertindex \[list \$chars\] \"      set gUndo($num.\$numChange) \"insert \$insertindex \[list \$chars\] \"
             if {\[regexp \{.*\[\"/\].*\} \$chars\] || \              if { \[string length \$chars\] > 100 } {
                 \[regexp \{.*\[\"/\].*\} \[.$procName get \"\$insertindex linestart\" \"\$insertindex2 lineend\"\]\]} {                      registerCreateImportLinks $num \$insertindex-1line \$insertindex2+1line
                registerCreateImportLinks $num \$insertindex \$insertindex2              } else {
                   if {\[regexp \{.*\[\"/\].*\} \$chars\] || \
                       \[regexp \{.*\[\"/\].*\} \[.$procName get \"\$insertindex linestart\" \"\$insertindex2 lineend\"\]\]} { 
                      registerCreateImportLinks $num \$insertindex \$insertindex2
                   }
             }              }
  }          }
  set result \[uplevel .$procName \$args\]   set result \[uplevel .$procName \$args\]
         updateLocation $num          updateLocation $num
         return \$result          return \$result
Line 3573  proc printWindow {} { Line 3638  proc printWindow {} {
     pack $print.msg $oneSetFrame $moreSetFrame $buttonFrame -side top       pack $print.msg $oneSetFrame $moreSetFrame $buttonFrame -side top 
     pack configure $oneSetFrame $moreSetFrame -anchor w -fill x      pack configure $oneSetFrame $moreSetFrame -anchor w -fill x
         
       set msg2Frame [frame $moreSetFrame.msg2 -relief solid -borderwidth 2]
     set infoFrame [frame $moreSetFrame.frame1]      set infoFrame [frame $moreSetFrame.frame1]
     set setFrame [frame $moreSetFrame.frame2 -relief solid -borderwidth 1]      set msg3Frame [frame $moreSetFrame.msg3 -relief solid -borderwidth 2]
     pack $infoFrame $setFrame       set setFrame [frame $moreSetFrame.frame2] 
     pack configure $infoFrame $setFrame -anchor w      pack $msg2Frame $setFrame $msg3Frame $infoFrame -anchor w
           
     if {[catch {set gPrintSelection(sets)}]} {set gPrintSelection(sets) printCur}      if {[catch {set gPrintSelection(sets)}]} {set gPrintSelection(sets) printCur}
     if {[catch {set gPrintSelection(type)}]} {set gPrintSelection(type) printSpecific}      if {[catch {set gPrintSelection(type)}]} {set gPrintSelection(type) printSpecific}
Line 3608  proc printWindow {} { Line 3674  proc printWindow {} {
     bind $print <Destroy> "removeWindowEntry Print"      bind $print <Destroy> "removeWindowEntry Print"
     pack $buttonFrame.ok $buttonFrame.cancel -side left      pack $buttonFrame.ok $buttonFrame.cancel -side left
           
       set msgFrame [frame $oneSetFrame.msg -relief solid -borderwidth 2]
     set currentDviFrame [frame $oneSetFrame.currentDvi]      set currentDviFrame [frame $oneSetFrame.currentDvi]
     set currentPreviewFrame [frame $oneSetFrame.currentPreview]      set currentPreviewFrame [frame $oneSetFrame.currentPreview]
     set randomFrame [frame $oneSetFrame.random]      set randomFrame [frame $oneSetFrame.random]
Line 3615  proc printWindow {} { Line 3682  proc printWindow {} {
     set sectionFrame [frame $infoFrame.section]      set sectionFrame [frame $infoFrame.section]
     set multSectionFrame [frame $infoFrame.multsection]      set multSectionFrame [frame $infoFrame.multsection]
     set wholeClassFrame [frame $infoFrame.wholeClass]      set wholeClassFrame [frame $infoFrame.wholeClass]
     pack $currentDviFrame $currentPreviewFrame $randomFrame $specificFrame \      pack $msgFrame $currentDviFrame $currentPreviewFrame $randomFrame $specificFrame \
     $sectionFrame $multSectionFrame $wholeClassFrame -anchor w \      $sectionFrame $multSectionFrame $wholeClassFrame -anchor w \
     -side top      -side top
     pack configure $specificFrame -expand true -fill both      pack configure $specificFrame -expand true -fill both
   
       label $msgFrame.msg -text "Select:"
       pack $msgFrame.msg -anchor w
       label $msg2Frame.msg -text "Or Select:"
       pack $msg2Frame.msg -anchor w
       label $msg3Frame.msg -text "For:"
       pack $msg3Frame.msg -anchor w
   
     radiobutton $currentDviFrame.currentDvi -text "Print current .dvi" \      radiobutton $currentDviFrame.currentDvi -text "Print current .dvi" \
     -value "printCurrentDvi" -variable gPrintSelection(type)       -value "printCurrentDvi" -variable gPrintSelection(type) 
     pack $currentDviFrame.currentDvi -side left       pack $currentDviFrame.currentDvi -side left 
Line 3785  proc createCreateDviWin {} { Line 3859  proc createCreateDviWin {} {
 # sends the file quiztemp.ps to the printer through lpr using  # sends the file quiztemp.ps to the printer through lpr using
 # the option foud in gLprCommand  # the option foud in gLprCommand
 ###########################################################  ###########################################################
 # Arguments: none  # Arguments: lprCommand - actual command to be run to print
   #            showCompletionMessage - (defaults to 1 true)
   #                      controls whether the print complete 
   #                      message gets shown
 # Returns: Nothing  # Returns: Nothing
 # Globals: gCapaConfig -  # Globals: gCapaConfig -
 #          gStopPrinting -  #          gStopPrinting -
Line 3799  proc printBody { lprCommand { showComple Line 3876  proc printBody { lprCommand { showComple
     -o quiztemp.ps >& /dev/null} errorMsg ]      -o quiztemp.ps >& /dev/null} errorMsg ]
     if { $error } {      if { $error } {
  displayError \   displayError \
  "When attempting to run dvips an error occured : $errorMsg"   "When attempting to run dvips an error occurred : $errorMsg"
  return 1   return 1
     }      }
   
Line 3814  proc printBody { lprCommand { showComple Line 3891  proc printBody { lprCommand { showComple
     set error [catch {set returnMessage [eval "exec $lprCommand"] } errorMsg ]      set error [catch {set returnMessage [eval "exec $lprCommand"] } errorMsg ]
           
     if { $error == 1 } {      if { $error == 1 } {
         displayError "When attempting to print an error occured : $errorMsg"          displayError "When attempting to print an error occurred : $errorMsg"
  return 1   return 1
     } else {      } else {
  if { $showCompletionMessage } {   if { $showCompletionMessage } {
Line 4070  proc printSection { { lprCommand "" } } Line 4147  proc printSection { { lprCommand "" } }
  default { set type "-T" }   default { set type "-T" }
     }      }
   
       set prSection [string trimleft $gPrintSelection(section) 0]
   
     if { [set gStopPrinting [expr 2 == [runLatex \      if { [set gStopPrinting [expr 2 == [runLatex \
     "echo [pwd] | $gCapaConfig(qzparse_command) \      "echo [pwd] | $gCapaConfig(qzparse_command) \
     -sec $gPrintSelection(section) -set $set \      -sec $prSection -set $set \
     -d [pwd] -c [pwd] $type " gCreateDviText] ] ] } {      -d [pwd] -c [pwd] $type " gCreateDviText] ] ] } {
  for {set i $start} { $i <= $end} { incr i } {   for {set i $start} { $i <= $end} { incr i } {
     exec rm -f section$gPrintSelection(section)-set$i.tex       exec rm -f section$prSection-set$i.tex 
  }   }
  if {$showStopping} {   if {$showStopping} {
     displayMessage "Printing has been stopped."      displayMessage "Printing has been stopped."
Line 4092  proc printSection { { lprCommand "" } } Line 4171  proc printSection { { lprCommand "" } }
     }      }
   
     for { set i $start} { $i <= $end } { incr i } {      for { set i $start} { $i <= $end } { incr i } {
  if { ! [file exists section$gPrintSelection(section)-set$i.tex] } {   if { ! [file exists section$prSection-set$i.tex] } {
     if {$showStopping} {      if {$showStopping} {
  displayError "The qzparse command: $gCapaConfig(qzparse_command), was unable to produce the expected output. Printing stopped"   displayError "The qzparse command: $gCapaConfig(qzparse_command), was unable to produce the expected output. Printing stopped"
  set gStopPrinting 0   set gStopPrinting 0
Line 4101  proc printSection { { lprCommand "" } } Line 4180  proc printSection { { lprCommand "" } }
     return 2      return 2
  }   }
   
  exec mv section$gPrintSelection(section)-set$i.tex quiztemp.tex   exec mv section$prSection-set$i.tex quiztemp.tex
  exec /bin/rm -f quiztemp.dvi    exec /bin/rm -f quiztemp.dvi 
   
  $gCreateDviText insert end "$gCapaConfig(latex_command)\n"   $gCreateDviText insert end "$gCapaConfig(latex_command)\n"
Line 4381  proc analyzeClass { {start 1} } { Line 4460  proc analyzeClass { {start 1} } {
     set name [lindex $gAnalyze(toprocess) 1]      set name [lindex $gAnalyze(toprocess) 1]
     set section [lindex $gAnalyze(toprocess) 2]      set section [lindex $gAnalyze(toprocess) 2]
     set gAnalyze(toprocess) [lrange $gAnalyze(toprocess) 3 end]      set gAnalyze(toprocess) [lrange $gAnalyze(toprocess) 3 end]
     set command "$gCapaConfig(answers_command) $number \"$name\" $section $gAnalyze(set)"      set command "$gCapaConfig(answers_command) $number \"$name\" 0 $gAnalyze(set)"
     set fileId [open "|$command" "r"]      set fileId [open "|$command" "r"]
     set gAnalyze(pid) [pid $fileId]      set gAnalyze(pid) [pid $fileId]
     fconfigure $fileId -blocking 0      fconfigure $fileId -blocking 0
Line 4662  proc analyzeStop {} { Line 4741  proc analyzeStop {} {
     global gAnalyze      global gAnalyze
     set gAnalyze(stop) 1      set gAnalyze(stop) 1
     set gAnalyze(status) "Stopped"      set gAnalyze(status) "Stopped"
     exec kill -SIGKILL $gAnalyze(pid)      catch {exec kill -SIGKILL $gAnalyze(pid)}
 }  }
   
 ###########################################################  ###########################################################

Removed from v.1.7  
changed lines
  Added in v.1.14


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>