# Sebastian Hammer, Adam Dickmeiss
#
# $Log: client.tcl,v $
-# Revision 1.63 1995-08-04 13:20:48 adam
+# Revision 1.68 1995-09-21 13:11:49 adam
+# Support of dynamic loading.
+# Test script uses load command if necessary.
+#
+# Revision 1.67 1995/09/20 14:35:19 adam
+# Minor changes.
+#
+# Revision 1.66 1995/08/29 15:30:13 adam
+# Work on GRS records.
+#
+# Revision 1.65 1995/08/24 15:39:09 adam
+# Minor changes.
+#
+# 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
#
if {$tk_version == "3.6"} {
- set tk4 0
+ proc tk4 {} {
+ return 0
+ }
} else {
- set tk4 1
+ proc tk4 {} {
+ return 1
+ }
}
-if {$tk4} {
+if {[tk4]} {
proc configure-enable-e {w n} {
incr n
$w entryconfigure $n -state normal
set noFocus {}
}
-if {! $tk4} {
+if {![tk4]} {
if {[tk colormodel .] == "color"} {
set monoFlag 0
} else {
proc read-formats {} {
global displayFormats
global libdir
- set formats [glob -nocomplain ${libdir}/formats/*.tcl]
+ if {[catch {set formats [glob -nocomplain ${libdir}/formats/*.tcl]}]} {
+ set formats ./formats/raw.tcl
+ }
foreach f $formats {
if {[file readable $f]} {
source $f
}
proc dputs {m} {
- puts $m
}
proc set-display-format {f} {
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 4 -pady 4
- button $w.bot.left.ok -width 5 -text {Ok} \
+ pack $w.bot.left -side left -expand yes -ipadx 2 -ipady 2 -padx 1 -pady 1
+ button $w.bot.left.ok -width 4 -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} \
+ pack $w.bot.left.ok -expand yes -ipadx 1 -ipady 1 -padx 2 -pady 2
+ button $w.bot.cancel -width 5 -text {Cancel} \
-command [list destroy $w]
pack $w.bot.cancel -side left -expand yes
set l [llength $buttonList]
frame $w.bot.$i -relief sunken -border 1
- pack $w.bot.$i -side left -expand yes -padx 4 -pady 4
+ pack $w.bot.$i -side left -expand yes -padx 2 -pady 2
button $w.bot.$i.ok -text [lindex $buttonList $i] \
-command [lindex $buttonList [expr $i+1]]
- pack $w.bot.$i.ok -expand yes -ipadx 2 -ipady 2 -padx 2 -pady 2 -side left
+ pack $w.bot.$i.ok -expand yes -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 2 -pady 2 -side left
+ pack $w.bot.$i -expand yes -padx 2 -pady 2 -side left
incr i 2
}
if {$g} {
label $w.top.a.logo -bitmap @${libdir}/bitmaps/book1
pack $w.top.a.irtcl $w.top.a.logo -side left -expand yes
- set i [z39 implementationName]
+ set i unknown
+ catch {set i [z39 implementationName]}
label $w.top.p.in -text "Implementation name: $i"
- set i [z39 implementationId]
+ catch {set i [z39 implementationId]}
label $w.top.p.ii -text "Implementation id: $i"
- set i [z39 implementationVersion]
+ catch {set i [z39 implementationVersion]}
label $w.top.p.iv -text "Implementation version: $i"
pack $w.top.p.in $w.top.p.ii $w.top.p.iv -side top -anchor nw
proc set-target-hotlist {olen} {
global hotTargets
- global tk4
if {$olen > 0} {
- if {$tk4} {
+ if {[tk4]} {
.top.target.m delete 7 [expr 7+$olen]
} else {
.top.target.m delete 6 [expr 6+$olen]
global cancelFlag
global setNo
global setNoLast
- global tk4
set cancelFlag 0
set setNo 0
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
}
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] <Return> $returnAction
bind [lindex $list $i] <Escape> $escapeAction
- if {!$tk4} {
+ if {![tk4]} {
bind [lindex $list $i] <Tab> \
[list focus [lindex $list [expr $i+1]]]
bind [lindex $list $i] <Left> \
}
bind [lindex $list $i] <Return> $returnAction
bind [lindex $list $i] <Escape> $escapeAction
- if {!$tk4} {
+ if {![tk4]} {
bind [lindex $list $i] <Tab> [list focus [lindex $list 0]]
bind [lindex $list $i] <Left> [list left-cursor [lindex $list $i]]
bind [lindex $list $i] <Right> [list right-cursor [lindex $list $i]]
}
# Databases ....
- pack $w.top.databases -side left -pady 4 -padx 4 -expand yes -fill both
+ pack $w.top.databases -side left -pady 2 -padx 2 -expand yes -fill both
label $w.top.databases.label -text "Databases"
button $w.top.databases.add -text "Add" \
-command [list add-database $target]
button $w.top.databases.delete -text "Delete" \
-command [list delete-database $target]
- global tk4
- if {! $tk4} {
- listbox $w.top.databases.list -geometry 20x6 \
+ if {! [tk4]} {
+ listbox $w.top.databases.list -geometry 14x6 \
-yscrollcommand "$w.top.databases.scroll set"
} else {
- listbox $w.top.databases.list -width 20 \
+ listbox $w.top.databases.list -width 14 -height 5\
-yscrollcommand "$w.top.databases.scroll set"
}
scrollbar $w.top.databases.scroll -orient vertical -border 1
}
# Transport ...
- pack $w.top.cs-type -pady 4 -padx 4 -side top -fill x
+ pack $w.top.cs-type -pady 2 -padx 2 -side top -fill x
label $w.top.cs-type.label -text "Transport"
radiobutton $w.top.cs-type.tcpip -text "TCP/IP" -anchor w \
-variable csRadioType -value mosi
pack $w.top.cs-type.label $w.top.cs-type.tcpip $w.top.cs-type.mosi \
- -padx 4 -side top -fill x
+ -padx 2 -side top -fill x
# Protocol ...
- pack $w.top.protocol -pady 4 -padx 4 -side top -fill x
+ pack $w.top.protocol -pady 2 -padx 2 -side top -fill x
label $w.top.protocol.label -text "Protocol"
radiobutton $w.top.protocol.z39v2 -text "Z39.50" -anchor w \
-variable protocolRadioType -value SR
pack $w.top.protocol.label $w.top.protocol.z39v2 $w.top.protocol.sr \
- -padx 4 -side top -fill x
+ -padx 2 -side top -fill x
# Query ...
- pack $w.top.query -pady 4 -padx 4 -side top -fill x
+ pack $w.top.query -pady 2 -padx 2 -side top -fill x
label $w.top.query.label -text "Query support"
checkbutton $w.top.query.c1 -text "RPN query" -anchor w -variable RPNCheck
pack $w.top.query.label -side top
pack $w.top.query.c1 $w.top.query.c2 $w.top.query.c3 \
- -padx 4 -side top -fill x
+ -padx 2 -side top -fill x
# Ok-cancel
bottom-buttons $w [list {Ok} [list protocol-setup-action $target] \
set windowGeometry(.) [wm geometry .]
- set f [open "~/.clientrc.tcl" w]
-
+ if {[catch {set f [open ~/.clientrc.tcl w]}]} {
+ return
+ }
puts $f "set hotTargets \{ $hotTargets \}"
puts $f "set textWrap $textWrap"
puts $f "set displayFormat $displayFormat"
{Content type} 1034
{Anywhere} 1035
}
- global tk4
set w .index-setup
global useTmpValue
set l [llength $attr]
}
incr lno
}
- if {$tk4} {
+ if {[tk4]} {
$w.top.use.list selection clear 0 end
$w.top.use.list selection set $s $s
} else {
global completenessTmpValue
global positionTmpValue
global useTmpValue
- global tk4
set relationTmpValue 0
set truncationTmpValue 0
set structureTmpValue 0
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 {
global queryButtonsTmp
global queryInfoTmp
global queryIndexTmp
- global tk4
set queryIndexTmp 0
set queryName [lindex $queryTypes $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 {
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
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 <Left> [list left-cursor $w.$i.e]
bind $w.$i.e <Right> [list right-cursor $w.$i.e]
}
if {! $realOp} {
return
}
- if {! $tk4} {
+ if {! [tk4]} {
set j 0
incr i -1
while {$j < $i} {
}
}
if {$i >= 0} {
- if {! $tk4} {
+ if {! [tk4]} {
bind $w.$i.e <Tab> "focus $w.0.e"
}
focus $w.0.e
.top.options.m.syntax add separator
.top.options.m.syntax add radiobutton -label "SUTRS" \
-value SUTRS -variable recordSyntax
+.top.options.m.syntax add separator
+.top.options.m.syntax add radiobutton -label "GRS1" \
+ -value GRS1 -variable recordSyntax
menubutton .top.help -text "Help" -menu .top.help.m
menu .top.help.m
index-lines .lines 1 $queryButtonsFind [lindex $queryInfo 0] activate-index
-button .mid.search -width 7 -text {Search} -command {search-request 0} \
+button .mid.search -text Search -command {search-request 0} \
-state disabled
-button .mid.scan -width 7 -text {Scan} \
+button .mid.scan -text Scan \
-command scan-request -state disabled
-button .mid.present -width 7 -text {Present} -command [list present-more 10] \
+button .mid.present -text {Present} -command [list present-more 10] \
-state disabled
-button .mid.clear -width 7 -text {Clear} -command index-clear
+button .mid.clear -text Clear -command index-clear
pack .mid.search .mid.scan .mid.present .mid.clear -side left \
- -fill y -padx 5 -pady 3
+ -fill y -pady 1
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
}
}
.data.record tag configure marc-data -foreground black
-button .bot.logo -bitmap @${libdir}/bitmaps/book1 -command cancel-operation
-if {$tk4} {
+button .bot.logo -bitmap @${libdir}/bitmaps/book1 -command cancel-operation
+if {[tk4]} {
.bot.logo configure -takefocus 0
}
frame .bot.a
pack .bot.a -side left -fill x
-pack .bot.logo -side right -padx 2 -pady 2
+pack .bot.logo -side right -padx 2 -pady 2 -ipadx 1
message .bot.a.target -text "" -aspect 1000 -border 1
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
+if {[catch {ir z39}]} {
+ set e [info sharedlibextension]
+ puts -nonewline "Loading irtcl..."
+ load irtcl$e
+ ir z39
+ puts "ok"
+}
+#z39 logLevel all
show-logo 1