version 1.4, 1999/10/20 19:57:37
|
version 1.9, 1999/11/18 17:55:24
|
Line 948 proc createDateDialog { toplevel makedef
|
Line 948 proc createDateDialog { toplevel makedef
|
checkbutton $optionsFrame2.response -variable gDates(inhibitresponse) \ |
checkbutton $optionsFrame2.response -variable gDates(inhibitresponse) \ |
-text "Inhibit Correct/Incorrect response \n(normally only for exams/quizzes)" |
-text "Inhibit Correct/Incorrect response \n(normally only for exams/quizzes)" |
pack $durationFrame $optionsFrame2.view $optionsFrame2.response -side top |
pack $durationFrame $optionsFrame2.view $optionsFrame2.response -side top |
set gDates(viewbetween) 1 |
set gDates(viewbetween) 0 |
set gDates(inhibitresponse) 0 |
set gDates(inhibitresponse) 0 |
|
|
label $durationFrame.label -text "Duration" |
label $durationFrame.label -text "Duration" |
Line 2228 proc createPreviewWindow {} {
|
Line 2228 proc createPreviewWindow {} {
|
} |
} |
|
|
########################################################### |
########################################################### |
|
# openError |
|
########################################################### |
|
########################################################### |
|
########################################################### |
|
proc openError { file line type} { |
|
global gRefLine gLineNumberGoto gTextWindow |
|
if { $type == 2 } { |
|
set gLineNumberGoto $line |
|
gotoLine |
|
capaRaise [winfo toplevel $gTextWindow] |
|
} else { |
|
if {[set num [openReferenceFile $file]]} { |
|
update idletasks |
|
set gRefLine($num) $line |
|
gotoRefLine $num |
|
} |
|
} |
|
} |
|
|
|
########################################################### |
|
# showParseErrors |
########################################################### |
########################################################### |
########################################################### |
########################################################### |
########################################################### |
########################################################### |
proc showParseErrors {} { |
proc showParseErrors {} { |
global gParseErrorsText gWindowMenu |
global gParseErrorsText gWindowMenu gUniqueNumber gCapaConfig |
|
|
set parseErrors [getParseErrors] |
set parseErrors [getParseErrors] |
|
|
Line 2282 proc showParseErrors {} {
|
Line 2303 proc showParseErrors {} {
|
$gParseErrorsText delete 0.0 end |
$gParseErrorsText delete 0.0 end |
capaRaise .parseErrors |
capaRaise .parseErrors |
} |
} |
|
foreach line [split $parseErrors "\n"] { |
$gParseErrorsText insert end $parseErrors |
set tag 0 |
|
if { [regexp -indices {File:.+->(.+), Line ([0-9]+): ERROR:} $line result file linenum]} { |
|
set tag 1 |
|
} else { |
|
if { [regexp -indices {File:(.+), Line ([0-9]+): ERROR:} $line result file linenum]} { |
|
set tag 2 |
|
} |
|
} |
|
if { $tag } { |
|
set tagnum [incr gUniqueNumber] |
|
set linenum [eval [list string range $line] $linenum] |
|
set filename [eval [list string range $line] $file] |
|
set i [expr [lindex [split [$gParseErrorsText index end] .] 0] - 1] |
|
} |
|
$gParseErrorsText insert end "$line\n" |
|
if { $tag } { |
|
$gParseErrorsText tag add error.$tagnum $i.[lindex $file 0] $i.[expr [lindex $file 1] + 1] |
|
$gParseErrorsText tag configure error.$tagnum -foreground $gCapaConfig(IMP_color) |
|
$gParseErrorsText tag bind error.$tagnum <Double-ButtonPress> \ |
|
"eval openError $filename $linenum $tag" |
|
} |
|
} |
} else { |
} else { |
if { [winfo exists .parseErrors] } { $gParseErrorsText delete 0.0 end } |
if { [winfo exists .parseErrors] } { $gParseErrorsText delete 0.0 end } |
} |
} |
Line 2420 proc rereadCapaConfig { } {
|
Line 2462 proc rereadCapaConfig { } {
|
displayError "Invalid capa.config file" |
displayError "Invalid capa.config file" |
set gCapaConfig(printer_option) $printer_option |
set gCapaConfig(printer_option) $printer_option |
} |
} |
|
setDefaultValues |
updateColors |
updateColors |
} |
} |
|
|
Line 2438 proc pickCapaConfig { } {
|
Line 2481 proc pickCapaConfig { } {
|
cd [file dirname $file] |
cd [file dirname $file] |
set error [parseCapaConfig] |
set error [parseCapaConfig] |
if { $error != "OK" } { displayError "Invalid capa.config file"; cd $oldDir } |
if { $error != "OK" } { displayError "Invalid capa.config file"; cd $oldDir } |
|
setDefaultValues |
} |
} |
} |
} |
|
|
|
proc setDefaultValues {} { |
|
global gProbVal gTryVal gHintVal gCapaConfig |
|
catch {set gProbVal $gCapaConfig(default_prob_val)} |
|
catch {set gTryVal $gCapaConfig(default_try_val)} |
|
catch {set gHintVal $gCapaConfig(default_hint_val)} |
|
} |
|
|
########################################################### |
########################################################### |
# openDocument |
# openDocument |
########################################################### |
########################################################### |
########################################################### |
########################################################### |
########################################################### |
########################################################### |
proc openDocument {} { |
proc openDocument {} { |
global gFile gTextWindow gSetNumberText gPrefs gChanged gQuizTemp gUndo |
global gFile gTextWindow gSetNumberText gPrefs gChanged gQuizTemp gUndo |
|
|
if { $gChanged } { if { [askToSave 0 0] == "Cancel" } { return } } |
if { $gChanged } { if { [askToSave 0 0] == "Cancel" } { return } } |
if { ![catch {set gTextWindow}] } { |
if { ![catch {set gTextWindow}] } { |
Line 2517 proc openDocument {} {
|
Line 2568 proc openDocument {} {
|
set gQuizTemp true |
set gQuizTemp true |
return |
return |
} |
} |
|
setDefaultValues |
|
|
createEditingWindow 0 |
createEditingWindow 0 |
$gTextWindow delete 0.0 end |
$gTextWindow delete 0.0 end |
$gTextWindow insert 0.0 [read $fileId [file size $gFile]] |
$gTextWindow insert 0.0 [read $fileId [file size $gFile]] |
Line 2703 proc isReferenceFileOpen { file } {
|
Line 2755 proc isReferenceFileOpen { file } {
|
set entryfile [lindex $entry 1] |
set entryfile [lindex $entry 1] |
} |
} |
# puts $entryfile |
# puts $entryfile |
if { [catch {file stat $entryfile a1}] } { puts skipped;continue } |
if { [catch {file stat $entryfile a1}] } { continue } |
file stat $file a2 |
file stat $file a2 |
# puts "$a2(ino) == $a1(ino)" |
# puts "$a2(ino) == $a1(ino)" |
if { $a2(ino) == $a1(ino) } { |
if { $a2(ino) == $a1(ino) } { |
Line 2760 proc openReferenceFile { {file ""} {new
|
Line 2812 proc openReferenceFile { {file ""} {new
|
-title "Select the proper file" \ |
-title "Select the proper file" \ |
-initialdir "$gDir(reference)" ] |
-initialdir "$gDir(reference)" ] |
event generate .main <ButtonRelease-1> |
event generate .main <ButtonRelease-1> |
if { $file == "" } { return } |
if { $file == "" } { return 0 } |
set gDir(reference) [file dirname $file] |
set gDir(reference) [file dirname $file] |
|
|
if { [file isdirectory $file] } { |
if { [file isdirectory $file] } { |
displayError "You attempted to open $file which is a directory not a file." |
displayError "You attempted to open $file which is a directory not a file." |
return |
return 0 |
} |
} |
} else { |
} else { |
if { !$new } { |
if { !$new } { |
if { [set window [isReferenceFileOpen $file] ] != "" } { |
if { [set window [isReferenceFileOpen $file] ] != "" } { |
|
set num [lindex [split [lindex [split $window .] 1] e] end] |
capaRaise $window |
capaRaise $window |
return |
return $num |
} |
} |
# specifically opening the capa.config file |
# specifically opening the capa.config file |
if { $file == "capa.config" } { |
if { $file == "capa.config" } { |
Line 2782 proc openReferenceFile { {file ""} {new
|
Line 2835 proc openReferenceFile { {file ""} {new
|
{ {All Files} {"*"} } } \ |
{ {All Files} {"*"} } } \ |
-title "Select the proper file" \ |
-title "Select the proper file" \ |
-initialdir "$gDir(reference)" ] |
-initialdir "$gDir(reference)" ] |
if { $file == "" } { return } |
if { $file == "" } { return 0 } |
} else { |
} else { |
set file [file join [file dirname $gFile] capa.config] |
set file [file join [file dirname $gFile] capa.config] |
} |
} |
} else { |
} else { |
if { ![file isfile $file] && ![file readable $file] } { |
if { ![file isfile $file] && ![file readable $file] } { |
displayError "Unable to find $file" |
displayError "Unable to find $file" |
return |
return 0 |
} |
} |
if { [file isdirectory $file] } { |
if { [file isdirectory $file] } { |
displayError "You attempted to open $file which is a directory not a file." |
displayError "You attempted to open $file which is a directory not a file." |
return |
return 0 |
} |
} |
} |
} |
} |
} |
Line 2911 proc openReferenceFile { {file ""} {new
|
Line 2964 proc openReferenceFile { {file ""} {new
|
set gRefChanged($num) 0 |
set gRefChanged($num) 0 |
set gRefClosed($num) 0 |
set gRefClosed($num) 0 |
addFindList $num |
addFindList $num |
|
return $num |
} |
} |
|
|
########################################################### |
########################################################### |
Line 2967 proc trackChanges { procName num } {
|
Line 3021 proc trackChanges { procName num } {
|
########################################################### |
########################################################### |
########################################################### |
########################################################### |
proc undo { num } { |
proc undo { num } { |
global gUndo gRefText gTextWindow |
global gUndo gRefText gTextWindow gChanged gRefChanged |
if { $gUndo($num.cur) == 0 } { return } |
if { $gUndo($num.cur) == 0 } { return } |
set undoInfo $gUndo($num.$gUndo($num.cur)) |
set undoInfo $gUndo($num.$gUndo($num.cur)) |
if { [regexp {.*[\"/].*} $undoInfo] } { |
if { [regexp {.*[\"/].*} $undoInfo] } { |
Line 2978 proc undo { num } {
|
Line 3032 proc undo { num } {
|
} |
} |
if { $num == 0 } { |
if { $num == 0 } { |
if {[catch {eval ".$gTextWindow $gUndo($num.$gUndo($num.cur))"}]} { return } |
if {[catch {eval ".$gTextWindow $gUndo($num.$gUndo($num.cur))"}]} { return } |
|
set gChanged 1 |
} else { |
} else { |
if {[catch {eval ".$gRefText($num) $gUndo($num.$gUndo($num.cur))"}]} { return } |
if {[catch {eval ".$gRefText($num) $gUndo($num.$gUndo($num.cur))"}]} { return } |
|
set gRefChanged($num) 1 |
} |
} |
incr gUndo($num.cur) -1 |
incr gUndo($num.cur) -1 |
} |
} |
Line 3597 proc printWindow {} {
|
Line 3653 proc printWindow {} {
|
-value "printWholeClass" -variable gPrintSelection(type) |
-value "printWholeClass" -variable gPrintSelection(type) |
pack $wholeClassFrame.wholeClass -side left |
pack $wholeClassFrame.wholeClass -side left |
|
|
message $studentNumber.msg -text "Student Number: " -aspect 10000 |
i message $studentNumber.msg -text "Student Number: " -aspect 10000 |
entry $studentNumber.entry -textvariable gPrintSelection(studentNumber) -width 9 \ |
entry $studentNumber.entry -textvariable gPrintSelection(studentNumber) -width 9 \ |
-validate key -validatecommand "limitEntry %W 9 any %P" |
-validate key -validatecommand "limitEntry %W 9 any %P" |
pack $studentNumber.msg $studentNumber.entry -side left |
pack $studentNumber.msg $studentNumber.entry -side left |
Line 3735 proc createCreateDviWin {} {
|
Line 3791 proc createCreateDviWin {} {
|
# gStopPrinting - |
# gStopPrinting - |
# Files: quiztemp.ps - file containg info to print (removed) |
# Files: quiztemp.ps - file containg info to print (removed) |
########################################################### |
########################################################### |
proc printBody { lprCommand { showCompletionMessage 1 } } { |
proc printBodon(section |
|
ionMessage 1 } } { |
global gCapaConfig gStopPrinting gDonePrinting |
global gCapaConfig gStopPrinting gDonePrinting |
|
|
set errorMsg "" |
set errorMsg "" |
Line 4014 proc printSection { { lprCommand "" } }
|
Line 4071 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 4036 proc printSection { { lprCommand "" } }
|
Line 4095 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 4045 proc printSection { { lprCommand "" } }
|
Line 4104 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 4606 proc analyzeStop {} {
|
Line 4665 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)} |
} |
} |
|
|
########################################################### |
########################################################### |