X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;f=client.tcl;h=bac1b701d8a6a10f6a9fb1febe843069913a7756;hb=cfd819456dfc0d73dc22eb2e3d102b4ca285030d;hp=a99e741804fee896c36f3bff570624e564c065e4;hpb=936873a6012cd41b7534a38d633d7cf6572877fa;p=ir-tcl-moved-to-github.git diff --git a/client.tcl b/client.tcl index a99e741..bac1b70 100644 --- a/client.tcl +++ b/client.tcl @@ -4,7 +4,28 @@ # Sebastian Hammer, Adam Dickmeiss # # $Log: client.tcl,v $ -# Revision 1.58 1995-06-29 12:34:06 adam +# Revision 1.64 1995-08-24 15:33:02 adam +# Minor changes. +# +# Revision 1.63 1995/08/04 13:20:48 adam +# Buttons at the bottom are slightly smaller. +# +# Revision 1.62 1995/08/04 11:32:37 adam +# More work on output queue. Memory related routines moved +# to mem.c +# +# Revision 1.61 1995/07/20 08:09:39 adam +# client.tcl: Targets removed from hotTargets list when targets +# are removed/modified. +# ir-tcl.c: More work on triggerResourceControl. +# +# Revision 1.60 1995/06/30 16:30:19 adam +# Minor changes. +# +# Revision 1.59 1995/06/29 14:06:25 adam +# Another bug in install fixed. Configure searches for more versions of yaz. +# +# Revision 1.58 1995/06/29 12:34:06 adam # IrTcl now works with both tk4.0b4/tcl7.4b4 and tk3.6/tcl7.3 # # Revision 1.57 1995/06/29 09:20:30 adam @@ -206,8 +227,17 @@ # # -set tk4 0 -if {$tk4} { +if {$tk_version == "3.6"} { + proc tk4 {} { + return 0 + } +} else { + proc tk4 {} { + return 1 + } +} + +if {[tk4]} { proc configure-enable-e {w n} { incr n $w entryconfigure $n -state normal @@ -227,7 +257,7 @@ if {$tk4} { set noFocus {} } -if {! $tk4} { +if {![tk4]} { if {[tk colormodel .] == "color"} { set monoFlag 0 } else { @@ -239,7 +269,7 @@ if {! $tk4} { set libdir LIBDIR if {[file readable bitmaps/book2]} { - set libdir . + set libdir . } if {! [file readable ${libdir}/bitmaps/book2]} { puts "Cannot locate system files in ${libdir}. You must either run this" @@ -275,7 +305,6 @@ wm minsize . 0 0 set setOffset 0 set setMax 0 -if {0} { proc tkerror err { set w .tkerrorw @@ -290,12 +319,11 @@ proc tkerror err { label $w.top.b -bitmap error message $w.top.t -aspect 300 -text "Error: $err" \ - -font -Adobe-Helvetica-Bold-R-Normal-*-240-* + -font -Adobe-Helvetica-Bold-R-Normal-*-180-* pack $w.top.b $w.top.t -side left -padx 10 -pady 10 bottom-buttons $w [list {Close} [list destroy $w]] 1 } -} proc read-formats {} { global displayFormats @@ -320,7 +348,7 @@ proc set-wrap {m} { } proc dputs {m} { -# puts $m + puts $m } proc set-display-format {f} { @@ -414,8 +442,8 @@ proc top-down-window {w} { proc top-down-ok-cancel {w ok-action g} { frame $w.bot.left -relief sunken -border 1 - pack $w.bot.left -side left -expand yes -ipadx 2 -ipady 2 -padx 5 -pady 5 - button $w.bot.left.ok -width 6 -text {Ok} \ + pack $w.bot.left -side left -expand yes -ipadx 2 -ipady 2 -padx 4 -pady 4 + button $w.bot.left.ok -width 5 -text {Ok} \ -command ${ok-action} pack $w.bot.left.ok -expand yes -ipadx 2 -ipady 2 -padx 3 -pady 3 button $w.bot.cancel -width 6 -text {Cancel} \ @@ -433,16 +461,16 @@ proc bottom-buttons {w buttonList g} { set l [llength $buttonList] frame $w.bot.$i -relief sunken -border 1 - pack $w.bot.$i -side left -expand yes -padx 5 -pady 5 + pack $w.bot.$i -side left -expand yes -padx 4 -pady 4 button $w.bot.$i.ok -text [lindex $buttonList $i] \ -command [lindex $buttonList [expr $i+1]] - pack $w.bot.$i.ok -expand yes -ipadx 3 -ipady 2 -padx 3 -pady 3 -side left + pack $w.bot.$i.ok -expand yes -ipadx 2 -ipady 2 -padx 2 -pady 2 -side left incr i 2 while {$i < $l} { button $w.bot.$i -text [lindex $buttonList $i] \ -command [lindex $buttonList [expr $i+1]] - pack $w.bot.$i -expand yes -ipadx 2 -ipady 2 -padx 3 -pady 3 -side left + pack $w.bot.$i -expand yes -ipadx 2 -ipady 2 -padx 2 -pady 2 -side left incr i 2 } if {$g} { @@ -771,16 +799,8 @@ proc popup-marc {sno no b df} { proc update-target-hotlist {target base} { global hotTargets - global tk4 - set len [llength $hotTargets] - if {$len > 0} { - if {$tk4} { - .top.target.m delete 7 [expr 7+[llength $hotTargets]] - } else { - .top.target.m delete 6 [expr 6+[llength $hotTargets]] - } - } + set olen [llength $hotTargets] set i 0 foreach e $hotTargets { if {$target == [lindex $e 0] && $base == [lindex $e 1]} { @@ -790,12 +810,33 @@ proc update-target-hotlist {target base} { incr i } set hotTargets [linsert $hotTargets 0 [list $target $base]] - set-target-hotlist + set-target-hotlist $olen } -proc set-target-hotlist {} { +proc delete-target-hotlist {target} { global hotTargets - + + set olen [llength $hotTargets] + set i 0 + foreach e $hotTargets { + if {$target == [lindex $e 0]} { + set hotTargets [lreplace $hotTargets $i $i] + } + incr i + } + set-target-hotlist $olen +} + +proc set-target-hotlist {olen} { + global hotTargets + + if {$olen > 0} { + if {[tk4]} { + .top.target.m delete 7 [expr 7+$olen] + } else { + .top.target.m delete 6 [expr 6+$olen] + } + } set i 1 foreach e $hotTargets { set target [lindex $e 0] @@ -869,7 +910,7 @@ proc open-target {target base} { dputs [z39 maximumRecordSize] dputs "preferredMessageSize=" dputs [z39 preferredMessageSize] - show-status {Connecting} 1 0 + show-status Connecting 1 0 if {$base == ""} { z39 databaseNames [lindex [lindex $profile($target) 7] 0] } else { @@ -897,7 +938,6 @@ proc close-target {} { global cancelFlag global setNo global setNoLast - global tk4 set cancelFlag 0 set setNo 0 @@ -911,7 +951,7 @@ proc close-target {} { show-message {} configure-disable-e .top.target.m 1 configure-disable-e .top.target.m 2 - if {$tk4} { + if {[tk4]} { .top.rset.m delete 2 last } else { .top.rset.m delete 1 last @@ -929,7 +969,7 @@ proc load-set-action {} { set fname [.load-set.top.filename.entry get] destroy .load-set if {$fname != ""} { - show-status {Loading} 1 {} + show-status Loading 1 {} update z39.$setNoLast loadFile $fname @@ -939,15 +979,13 @@ proc load-set-action {} { set l [format "%-4d %7d" $setNoLast $no] .top.rset.m add command -label $l \ -command [list add-title-lines $setNoLast 10000 1] - show-status {Ready} 0 {} + show-status Ready 0 {} } proc load-set {} { set w .load-set - - set oldFocus [focus] toplevel $w - + set oldFocus [focus] place-force $w . top-down-window $w @@ -970,7 +1008,7 @@ proc init-request {} { return } z39 callback {init-response} - show-status {Initializing} 1 {} + show-status Initializing 1 {} set err [catch {z39 init} errorMessage] if {$err} { tkerror $errorMessage @@ -987,7 +1025,7 @@ proc init-response {} { return } if {![z39 initResult]} { - show-status {Ready} 0 1 + show-status Ready 0 1 set u [z39 userInformationField] close-target tkerror "Connection rejected by target: $u" @@ -997,7 +1035,7 @@ proc init-response {} { } else { set scanEnable 0 } - show-status {Ready} 0 1 + show-status Ready 0 1 } } @@ -1021,7 +1059,7 @@ proc search-request {bflag} { } if {$cancelFlag} { dputs "cancelFlag" - show-status {Searching} 1 0 + show-status Searching 1 0 set delayRequest {search-request 1} return } @@ -1057,7 +1095,7 @@ proc search-request {bflag} { } z39 callback {search-response} z39.$setNo search $query - show-status {Searching} 1 0 + show-status Searching 1 0 } proc scan-copy {y entry} { @@ -1084,7 +1122,7 @@ proc scan-request {} { dputs "scan-request" if {$cancelFlag} { dputs "cancelFlag" - show-status {Scanning} 1 0 + show-status Scanning 1 0 set delayRequest scan-request return } @@ -1134,7 +1172,7 @@ proc scan-request {} { z39.scan preferredPositionInResponse 1 z39.scan scan "${attr} 0" - show-status {Scanning} 1 0 + show-status Scanning 1 0 } proc scan-term-h {attr} { @@ -1159,7 +1197,7 @@ proc scan-term-h {attr} { } else { z39.scan scan "${attr} \{${scanTerm}\}" } - show-status {Scanning} 1 0 + show-status Scanning 1 0 } proc scan-response {attr start toget} { @@ -1185,7 +1223,7 @@ proc scan-response {attr start toget} { } return } - show-status {Ready} 0 1 + show-status Ready 0 1 return } set nScanTerm [$w.top.entry get] @@ -1200,13 +1238,13 @@ proc scan-response {attr start toget} { } else { z39.scan scan "${attr} \{${scanTerm}\}" } - show-status {Scanning} 1 0 + show-status Scanning 1 0 return } set status [z39.scan scanStatus] if {$status == 6} { tkerror "Scan fail" - show-status {Ready} 0 1 + show-status Ready 0 1 set cancelFlag 0 return } @@ -1268,7 +1306,7 @@ proc scan-response {attr start toget} { z39.scan scan "${attr} \{$q\}" return } - show-status {Ready} 0 1 + show-status Ready 0 1 } proc scan-down {attr} { @@ -1294,7 +1332,7 @@ proc scan-down {attr} { dputs "down: $q" z39.scan numberOfTermsRequested 10 z39.scan preferredPositionInResponse 1 - show-status {Scanning} 1 0 + show-status Scanning 1 0 dputs "${attr} \{$q\}" z39.scan scan "${attr} \{$q\}" return @@ -1310,7 +1348,7 @@ proc scan-up {attr} { dputs {scan-up} if {$cancelFlag} { dputs "cancelFlag" - show-status {Scanning up} 1 0 + show-status Scanning 1 0 set delayRequest [list scan-up $attr] return } @@ -1324,7 +1362,7 @@ proc scan-up {attr} { dputs "up: $q" z39.scan numberOfTermsRequested 10 z39.scan preferredPositionInResponse 11 - show-status {Scanning} 1 0 + show-status Scanning 1 0 z39.scan scan "${attr} \{$q\}" return } @@ -1352,7 +1390,7 @@ proc search-response {} { set delayRequest {} init-title-lines set setMax [z39.$setNo resultCount] - show-status {Ready} 0 1 + show-status Ready 0 1 set status [z39.$setNo responseStatus] if {[lindex $status 0] == "NSD"} { z39.$setNo nextResultSetPosition 0 @@ -1367,7 +1405,7 @@ proc search-response {} { return } set setOffset 1 - show-status {Ready} 0 1 + show-status Ready 0 1 set l [format "%-4d %7d" $setNo $setMax] .top.rset.m add command -label $l \ -command [list add-title-lines $setNo 10000 1] @@ -1376,7 +1414,7 @@ proc search-response {} { } z39 callback {present-response} z39.$setNo present $setOffset 1 - show-status {Retrieving} 1 0 + show-status Retrieving 1 0 } proc present-more {number} { @@ -1389,7 +1427,7 @@ proc present-more {number} { dputs "present-more" if {$cancelFlag} { - show-status {Retrieving} 1 0 + show-status Retrieving 1 0 set delayRequest "present-more $number" return } @@ -1427,7 +1465,7 @@ proc present-more {number} { set toGet 3 } z39.$setNo present $setOffset $toGet - show-status {Retrieving} 1 0 + show-status Retrieving 1 0 } proc init-title-lines {} { @@ -1498,7 +1536,7 @@ proc present-response {} { } set status [z39.$setNo responseStatus] if {[lindex $status 0] == "NSD"} { - show-status {Ready} 0 1 + show-status Ready 0 1 set code [lindex $status 1] set msg [lindex $status 2] set addinfo [lindex $status 3] @@ -1513,7 +1551,7 @@ proc present-response {} { } z39.$setNo present $setOffset $toGet } else { - show-status {Ready} 0 1 + show-status Ready 0 1 } } @@ -1534,12 +1572,11 @@ proc right-cursor {w} { } proc bind-fields {list returnAction escapeAction} { - global tk4 set max [expr [llength $list]-1] for {set i 0} {$i < $max} {incr i} { bind [lindex $list $i] $returnAction bind [lindex $list $i] $escapeAction - if {!$tk4} { + if {![tk4]} { bind [lindex $list $i] \ [list focus [lindex $list [expr $i+1]]] bind [lindex $list $i] \ @@ -1550,8 +1587,8 @@ proc bind-fields {list returnAction escapeAction} { } bind [lindex $list $i] $returnAction bind [lindex $list $i] $escapeAction - if {!$tk4} { - bind [lindex $list $i] [list focus [lindex $list 0]] + if {![tk4]} { + bind [lindex $list $i] [list focus [lindex $list 0]] bind [lindex $list $i] [list left-cursor [lindex $list $i]] bind [lindex $list $i] [list right-cursor [lindex $list $i]] } @@ -1602,6 +1639,7 @@ definition $target ?"] unset profile($target) set settingsChanged 1 cascade-target-list + delete-target-hotlist $target } } @@ -1638,6 +1676,7 @@ proc protocol-setup-action {target} { $wno] cascade-target-list + delete-target-hotlist $target dputs $profile($target) destroy $w } @@ -1668,9 +1707,8 @@ proc add-database {target} { global profile set w .database-select - - set oldFocus [focus] toplevel $w + set oldFocus [focus] set wno [lindex $profile($target) 12] place-force $w .setup-${wno} @@ -1782,8 +1820,7 @@ proc protocol-setup {target} { -command [list add-database $target] button $w.top.databases.delete -text "Delete" \ -command [list delete-database $target] - global tk4 - if {! $tk4} { + if {! [tk4]} { listbox $w.top.databases.list -geometry 20x6 \ -yscrollcommand "$w.top.databases.scroll set" } else { @@ -1865,7 +1902,7 @@ proc database-select {} { global hostid toplevel $w - + set oldFocus [focus] place-force $w . top-down-window $w @@ -1875,7 +1912,7 @@ proc database-select {} { pack $w.top.databases -side left -pady 6 -padx 6 -expand yes -fill x label $w.top.databases.label -text "List" - listbox $w.top.databases.list -geometry 20x6 \ + listbox $w.top.databases.list -width 20 -height 6 \ -yscrollcommand "$w.top.databases.scroll set" scrollbar $w.top.databases.scroll -orient vertical -border 1 pack $w.top.databases.label -side top -fill x \ @@ -1890,6 +1927,7 @@ proc database-select {} { $w.top.databases.list insert end $b } top-down-ok-cancel $w {database-select-action} 1 + focus $oldFocus } proc cascade-target-list {} { @@ -1956,6 +1994,7 @@ proc query-new {} { set w .query-new toplevel $w + set oldFocus [focus] place-force $w . top-down-window $w frame $w.top.index @@ -1965,6 +2004,7 @@ proc query-new {} { {{Query Name:}} \ query-new-action {destroy .query-new} top-down-ok-cancel $w query-new-action 1 + focus $oldFocus } proc query-delete-action {queryNo} { @@ -2096,6 +2136,7 @@ proc alert {ask} { global alertAnswer toplevel $w + set oldFocus [focus] place-force $w . top-down-window $w @@ -2107,6 +2148,7 @@ proc alert {ask} { set alertAnswer 0 top-down-ok-cancel $w {alert-action} 1 + focus $oldFocus return $alertAnswer } @@ -2244,6 +2286,7 @@ proc query-add-index {queryNo} { set w .query-add-index toplevel $w + set oldFocus [focus] place-force $w .query-setup top-down-window $w frame $w.top.index @@ -2253,6 +2296,7 @@ proc query-add-index {queryNo} { {{Index Name:}} \ [list query-add-index-action $queryNo] [list destroy $w] top-down-ok-cancel $w [list query-add-index-action $queryNo] 1 + focus $oldFocus } proc query-setup-action {queryNo} { @@ -2417,7 +2461,6 @@ proc use-attr {init} { {Content type} 1034 {Anywhere} 1035 } - global tk4 set w .index-setup global useTmpValue set l [llength $attr] @@ -2433,7 +2476,7 @@ proc use-attr {init} { } incr lno } - if {$tk4} { + if {[tk4]} { $w.top.use.list selection clear 0 end $w.top.use.list selection set $s $s } else { @@ -2501,7 +2544,6 @@ proc index-setup {attr queryNo indexNo} { global completenessTmpValue global positionTmpValue global useTmpValue - global tk4 set relationTmpValue 0 set truncationTmpValue 0 set structureTmpValue 0 @@ -2556,7 +2598,7 @@ proc index-setup {attr queryNo indexNo} { pack $w.top.use -side left -pady 6 -padx 6 -fill y label $w.top.use.label -text "Use" - if {$tk4} { + if {[tk4]} { listbox $w.top.use.list -width 26 \ -yscrollcommand "$w.top.use.scroll set" } else { @@ -2652,7 +2694,6 @@ proc query-setup {queryNo} { global queryButtonsTmp global queryInfoTmp global queryIndexTmp - global tk4 set queryIndexTmp 0 set queryName [lindex $queryTypes $queryNo] @@ -2695,7 +2736,7 @@ proc query-setup {queryNo} { pack $w.top.index.list -side left -fill both -expand yes -padx 2 -pady 2 pack $w.top.index.scroll -side right -fill y -padx 2 -pady 2 - if {$tk4} { + if {[tk4]} { $w.top.index.list selection clear 0 end $w.top.index.list selection set 0 0 } else { @@ -2774,20 +2815,18 @@ proc index-query {} { proc index-focus-in {w i} { global curIndexEntry - global tk4 - if {! $tk4} { + if {! [tk4]} { $w.$i configure -background red } set curIndexEntry $i } proc index-lines {w realOp buttonInfo queryInfo handle} { - global tk4 set i 0 foreach b $buttonInfo { if {! [winfo exists $w.$i]} { - if {$tk4} { + if {[tk4]} { frame $w.$i -border 0 } else { frame $w.$i -background white -border 1 @@ -2804,7 +2843,7 @@ proc index-lines {w realOp buttonInfo queryInfo handle} { pack $w.$i.l -side left pack $w.$i.e -side left -fill x -expand yes pack $w.$i -side top -fill x -padx 2 -pady 2 - if {!$tk4} { + if {![tk4]} { bind $w.$i.e [list left-cursor $w.$i.e] bind $w.$i.e [list right-cursor $w.$i.e] } @@ -2824,7 +2863,7 @@ proc index-lines {w realOp buttonInfo queryInfo handle} { if {! $realOp} { return } - if {! $tk4} { + if {! [tk4]} { set j 0 incr i -1 while {$j < $i} { @@ -2834,7 +2873,7 @@ proc index-lines {w realOp buttonInfo queryInfo handle} { } } if {$i >= 0} { - if {! $tk4} { + if {! [tk4]} { bind $w.$i.e "focus $w.0.e" } focus $w.0.e @@ -2907,7 +2946,7 @@ menu .top.target.m .top.target.m add cascade -label "Setup" -menu .top.target.m.slist .top.target.m add command -label "Setup new" -command {define-target-dialog} .top.target.m add separator -set-target-hotlist +set-target-hotlist 0 configure-disable-e .top.target.m 1 configure-disable-e .top.target.m 2 @@ -3016,12 +3055,12 @@ button .mid.present -width 7 -text {Present} -command [list present-more 10] \ button .mid.clear -width 7 -text {Clear} -command index-clear pack .mid.search .mid.scan .mid.present .mid.clear -side left \ - -fill y -padx 5 -pady 3 + -fill y -padx 4 -pady 2 text .data.record -height 2 -width 20 -wrap none \ -yscrollcommand [list .data.scroll set] -wrap $textWrap scrollbar .data.scroll -command [list .data.record yview] -if {$tk4} { +if {[tk4]} { .data.record configure -takefocus 0 .data.scroll configure -takefocus 0 } @@ -3039,7 +3078,7 @@ if {! $monoFlag} { .data.record tag configure marc-data -foreground black button .bot.logo -bitmap @${libdir}/bitmaps/book1 -command cancel-operation -if {$tk4} { +if {[tk4]} { .bot.logo configure -takefocus 0 } frame .bot.a @@ -3057,9 +3096,9 @@ label .bot.a.message -text "" -width 15 -relief \ pack .bot.a.target -side top -anchor nw -padx 2 -pady 2 pack .bot.a.status .bot.a.set .bot.a.message \ - -side left -padx 2 -pady 2 + -side left -padx 2 -pady 2 -ipadx 1 -ipady 1 ir z39 - +z39 logLevel all show-logo 1