Source code for the Tcl/Tk Rolodex. This application assumes that spynergy.tcl is in the launch directory.
#---------------------------------------------------------------------- # rolodex.tcl -- The Tcl Personal Information Database Manager # by Mike Doyle # # Copyright (c) 1997 Eolas Technologies Inc. # Freely modifiable/redistributable under the "Standard Tcl License" # See http://www.eolas.com/tcl/license.txt for details proc db_open {} { global db dir result if {[info exists db]} {dbClose db} if {![file exist $dir/rolodex.idx]} { dbCreate $dir db rolodex "NAME STREET CITY STATE ZIP PHONE FAX CELL COMPANY C_STREET C_CITY C_STATE C_ZIP C_PHONE C_FAX C_CELL EMAIL PERSONALWEB WORKWEB PAGER PGPFINGERPRINT PGPKEY NOTES" } dbOpen $dir db #dbCleanup db } proc db_display_record {} { global db person_name .rolodex.form.personal.name.entry delete 0 end .rolodex.form.personal.name.entry insert end $db(rolodex,NAME) .rolodex.form.personal.street.entry delete 0 end .rolodex.form.personal.street.entry insert end $db(rolodex,STREET) .rolodex.form.personal.citystate.city delete 0 end .rolodex.form.personal.citystate.city insert end $db(rolodex,CITY) .rolodex.form.personal.citystate.state delete 0 end .rolodex.form.personal.citystate.state insert end $db(rolodex,STATE) .rolodex.form.personal.citystate.zip delete 0 end .rolodex.form.personal.citystate.zip insert end $db(rolodex,ZIP) .rolodex.form.personal.phonefax.phone delete 0 end .rolodex.form.personal.phonefax.phone insert end $db(rolodex,PHONE) .rolodex.form.personal.phonefax.fax delete 0 end .rolodex.form.personal.phonefax.fax insert end $db(rolodex,FAX) .rolodex.form.personal.phonefax.cellular delete 0 end .rolodex.form.personal.phonefax.cellular insert end $db(rolodex,CELL) .rolodex.form.work.name.entry delete 0 end .rolodex.form.work.name.entry insert end $db(rolodex,COMPANY) .rolodex.form.work.street.entry delete 0 end .rolodex.form.work.street.entry insert end $db(rolodex,C_STREET) .rolodex.form.work.citystate.city delete 0 end .rolodex.form.work.citystate.city insert end $db(rolodex,C_CITY) .rolodex.form.work.citystate.state delete 0 end .rolodex.form.work.citystate.state insert end $db(rolodex,C_STATE) .rolodex.form.work.citystate.zip delete 0 end .rolodex.form.work.citystate.zip insert end $db(rolodex,C_ZIP) .rolodex.form.work.phonefax.phone delete 0 end .rolodex.form.work.phonefax.phone insert end $db(rolodex,C_PHONE) .rolodex.form.work.phonefax.fax delete 0 end .rolodex.form.work.phonefax.fax insert end $db(rolodex,C_FAX) .rolodex.form.work.phonefax.cellular delete 0 end .rolodex.form.work.phonefax.cellular insert end $db(rolodex,C_CELL) .rolodex.form.internet.email.entry delete 0 end .rolodex.form.internet.email.entry insert end $db(rolodex,EMAIL) .rolodex.form.internet.personal_web.url delete 0 end .rolodex.form.internet.personal_web.url insert end $db(rolodex,PERSONALWEB) .rolodex.form.internet.work_web.url delete 0 end .rolodex.form.internet.work_web.url insert end $db(rolodex,WORKWEB) .rolodex.form.internet.pagerpgp.pager delete 0 end .rolodex.form.internet.pagerpgp.pager insert end $db(rolodex,PAGER) .rolodex.form.internet.pagerpgp.pgp delete 0 end .rolodex.form.internet.pagerpgp.pgp insert end $db(rolodex,PGPFINGERPRINT) .rolodex.form.notes.misc.data delete 1.0 end .rolodex.form.notes.misc.data insert end $db(rolodex,PGPKEY) .rolodex.form.notes.text delete 1.0 end .rolodex.form.notes.text insert end $db(rolodex,NOTES) .rolodex.form.spacer0.data configure -text [.rolodex.form.personal.name.entry get] } proc db_capture_record {} { global db set db(rolodex,NAME) [.rolodex.form.personal.name.entry get] set db(rolodex,STREET) [.rolodex.form.personal.street.entry get] set db(rolodex,CITY) [.rolodex.form.personal.citystate.city get] set db(rolodex,STATE) [.rolodex.form.personal.citystate.state get] set db(rolodex,ZIP) [.rolodex.form.personal.citystate.zip get] set db(rolodex,PHONE) [.rolodex.form.personal.phonefax.phone get] set db(rolodex,FAX) [.rolodex.form.personal.phonefax.fax get] set db(rolodex,CELL) [.rolodex.form.personal.phonefax.cellular get] set db(rolodex,COMPANY) [.rolodex.form.work.name.entry get] set db(rolodex,C_STREET) [.rolodex.form.work.street.entry get] set db(rolodex,C_CITY) [.rolodex.form.work.citystate.city get] set db(rolodex,C_STATE) [.rolodex.form.work.citystate.state get] set db(rolodex,C_ZIP) [.rolodex.form.work.citystate.zip get] set db(rolodex,C_PHONE) [.rolodex.form.work.phonefax.phone get] set db(rolodex,C_FAX) [.rolodex.form.work.phonefax.fax get] set db(rolodex,C_CELL) [.rolodex.form.work.phonefax.cellular get] set db(rolodex,EMAIL) [.rolodex.form.internet.email.entry get] set db(rolodex,PERSONALWEB) [.rolodex.form.internet.personal_web.url get] set db(rolodex,WORKWEB) [.rolodex.form.internet.work_web.url get] set db(rolodex,PAGER) [.rolodex.form.internet.pagerpgp.pager get] set db(rolodex,PGPFINGERPRINT) [.rolodex.form.internet.pagerpgp.pgp get] set db(rolodex,PGPKEY) [.rolodex.form.notes.misc.data get 1.0 end] set db(rolodex,NOTES) [.rolodex.form.notes.text get 1.0 end] } proc db_clear_form {} { .rolodex.form.personal.name.entry delete 0 end .rolodex.form.personal.street.entry delete 0 end .rolodex.form.personal.citystate.city delete 0 end .rolodex.form.personal.citystate.state delete 0 end .rolodex.form.personal.citystate.zip delete 0 end .rolodex.form.personal.phonefax.phone delete 0 end .rolodex.form.personal.phonefax.fax delete 0 end .rolodex.form.personal.phonefax.cellular delete 0 end .rolodex.form.work.name.entry delete 0 end .rolodex.form.work.street.entry delete 0 end .rolodex.form.work.citystate.city delete 0 end .rolodex.form.work.citystate.state delete 0 end .rolodex.form.work.citystate.zip delete 0 end .rolodex.form.work.phonefax.phone delete 0 end .rolodex.form.work.phonefax.fax delete 0 end .rolodex.form.work.phonefax.cellular delete 0 end .rolodex.form.internet.email.entry delete 0 end .rolodex.form.internet.personal_web.url delete 0 end .rolodex.form.internet.work_web.url delete 0 end .rolodex.form.internet.pagerpgp.pager delete 0 end .rolodex.form.internet.pagerpgp.pgp delete 0 end .rolodex.form.notes.misc.data delete 1.0 end .rolodex.form.notes.text delete 1.0 end .rolodex.form.spacer0.data configure -text "" } proc db_sort {} { global db dir result set first 1 if {![file exist $dir/sorted.idx]} { dbCreate $dir db sorted "NAME STREET CITY STATE ZIP PHONE FAX CELL COMPANY C_STREET C_CITY C_STATE C_ZIP C_PHONE C_FAX C_CELL EMAIL PERSONALWEB WORKWEB PAGER PGPFINGERPRINT PGPKEY NOTES" } foreach seqno [dbuSort db rolodex NAME] { dbGetRow db sorted $first dbGetRow db rolodex $seqno set db(sorted,NAME) $db(rolodex,NAME) set db(sorted,STREET) $db(rolodex,STREET) set db(sorted,CITY) $db(rolodex,CITY) set db(sorted,STATE) $db(rolodex,STATE) set db(sorted,ZIP) $db(rolodex,ZIP) set db(sorted,PHONE) $db(rolodex,PHONE) set db(sorted,FAX) $db(rolodex,FAX) set db(sorted,CELL) $db(rolodex,CELL) set db(sorted,COMPANY) $db(rolodex,COMPANY) set db(sorted,C_STREET) $db(rolodex,C_STREET) set db(sorted,C_CITY) $db(rolodex,C_CITY) set db(sorted,C_STATE) $db(rolodex,C_STATE) set db(sorted,C_ZIP) $db(rolodex,C_ZIP) set db(sorted,C_PHONE) $db(rolodex,C_PHONE) set db(sorted,C_FAX) $db(rolodex,C_FAX) set db(sorted,C_CELL) $db(rolodex,C_CELL) set db(sorted,EMAIL) $db(rolodex,EMAIL) set db(sorted,PERSONALWEB) $db(rolodex,PERSONALWEB) set db(sorted,WORKWEB) $db(rolodex,WORKWEB) set db(sorted,PAGER) $db(rolodex,PAGER) set db(sorted,PGPFINGERPRINT) $db(rolodex,PGPFINGERPRINT) set db(sorted,PGPKEY) $db(rolodex,PGPKEY) set db(sorted,NOTES) $db(rolodex,NOTES) dbPutRow db sorted incr first } dbClose db file copy rolodex.idx rolobak.idx file copy rolodex.tbl rolobak.tbl file copy sorted.idx rolodex.idx file copy sorted.tbl rolodex.tbl file del sorted.idx file del sorted.tbl db_open set seqno 1 dbGetRow db rolodex $seqno db_display_record } proc db_add_record {} { global db dbNewRow db rolodex db_capture_record set result [dbPutRow db rolodex] } proc db_get_name {} { global db current_type if {$current_type == "internet"} {set type EMAIL; set field "internet.email.entry"} elseif {$current_type == "work"} \ {set type COMPANY; set field "work.name.entry"} else {set type NAME; set field "personal.name.entry"} set seqlist [dbuSearchString db rolodex $type [.rolodex.form.$field get]] set seqno [lindex $seqlist 0] dbGetRow db rolodex $seqno db_display_record } ######################################### # Start GUI definition # source spynergy.tcl global db dir result seqno current_type person_name set result 0 set seqno 0 set dir [pwd] set person_name "" bind Entry{tkEntryBackspace %W} set Parent .rolodex frame $Parent -background gray40 set Name $Parent.buttons frame $Name -background gray40 pack $Name set Name $Parent.buttons.first button $Name -activebackground gray80 \ -activeforeground black \ -background gray40 \ -command { set seqno 1 dbGetRow db rolodex $seqno db_display_record } \ -disabledforeground LightGray \ -foreground White \ -highlightbackground LightGray \ -highlightcolor LightGray \ -padx 5 \ -pady 1 \ -text "<<" pack $Name -anchor nw \ -fill none \ -side left set Name $Parent.buttons.back button $Name -activebackground gray80 \ -activeforeground black \ -background gray40 \ -command { set row [dbPrevRow db rolodex] if {$row} {set seqno $row} if {$row} { dbGetRow db rolodex $seqno db_display_record } } \ -disabledforeground LightGray \ -foreground White \ -highlightbackground LightGray \ -highlightcolor LightGray \ -padx 5 \ -pady 1 \ -text "<" pack $Name -anchor nw \ -fill none \ -side left set Name $Parent.buttons.forward button $Name -activebackground gray80 \ -activeforeground black \ -background gray40 \ -command { set row [dbNextRow db rolodex] if {$row} {set seqno $row} if { $row} { dbGetRow db rolodex $seqno db_display_record } } \ -disabledforeground LightGray \ -foreground White \ -highlightbackground LightGray \ -highlightcolor LightGray \ -padx 5 \ -pady 1 \ -text ">" pack $Name -anchor nw \ -fill none \ -side left set Name $Parent.buttons.last button $Name -activebackground gray80 \ -activeforeground black \ -background gray40 \ -command {set seqno [dbLastRow db rolodex]; db_display_record} \ -disabledforeground LightGray \ -foreground White \ -highlightbackground LightGray \ -highlightcolor LightGray \ -padx 5 \ -pady 1 \ -text ">>" pack $Name -anchor nw \ -fill none \ -side left set Name $Parent.buttons.sort button $Name -activebackground gray80 \ -activeforeground black \ -background gray40 \ -command "db_sort" \ -disabledforeground LightGray \ -foreground White \ -highlightbackground LightGray \ -highlightcolor LightGray \ -padx 5 \ -pady 1 \ -text "Sort" pack $Name -anchor nw \ -fill none \ -side left set Name $Parent.buttons.spacer label $Name -text " " -background gray40 pack $Name -anchor nw -side left set Name $Parent.buttons.new_record button $Name -activebackground gray80 \ -activeforeground black \ -background gray40 \ -command { $Parent.datatype.personal invoke db_clear_form pack forget $Parent.buttons.new_record pack $Parent.buttons.new_record_done -fill none -side left -before $Parent.buttons.get_name } \ -disabledforeground LightGray \ -foreground White \ -highlightbackground LightGray \ -highlightcolor LightGray \ -padx 5 \ -pady 1 \ -text "New Record" pack $Name -anchor nw \ -fill none \ -side left set Name $Parent.buttons.new_record_done button $Name -activebackground gray80 \ -activeforeground black \ -background gray60 -relief groove -border 1\ -command { db_add_record; db_clear_form; pack forget $Parent.buttons.new_record_done pack $Parent.buttons.new_record -fill none -side left -before $Parent.buttons.get_name after 1000 db_display_record } \ -disabledforeground LightGray \ -foreground Black \ -highlightbackground LightGray \ -highlightcolor LightGray \ -padx 5 \ -pady 1 \ -text " Done " set Name $Parent.buttons.get_name button $Name -activebackground gray80 \ -activeforeground black \ -background gray40 \ -command "db_get_name" \ -disabledforeground LightGray \ -foreground White \ -highlightbackground LightGray \ -highlightcolor LightGray \ -padx 5 \ -pady 1 \ -text "Search Name" pack $Name -anchor nw \ -fill none \ -side left set Name $Parent.buttons.modify_record button $Name -activebackground gray80 \ -activeforeground black \ -background gray40 \ -command { db_capture_record dbPutRow db rolodex db_clear_form after 1000 db_display_record } \ -disabledforeground LightGray \ -foreground White \ -highlightbackground LightGray \ -highlightcolor LightGray \ -padx 5 \ -pady 1 \ -text "Modify Record" pack $Name -anchor nw \ -fill none \ -side left set Name $Parent.buttons.delete_record button $Name -activebackground gray80 \ -activeforeground black \ -background gray40 \ -command { if {$seqno} { dbDelRow db rolodex $seqno db_clear_form .rolodex.form.spacer0.data configure -text "" } } \ -disabledforeground LightGray \ -foreground White \ -highlightbackground LightGray \ -highlightcolor LightGray \ -padx 5 \ -pady 1 \ -text "Delete Record" pack $Name -anchor nw \ -fill none \ -side left set Name $Parent.buttons.spacer2 label $Name -text " " -background gray40 pack $Name -anchor nw -side left set Name $Parent.buttons.exit button $Name -activebackground gray80 \ -activeforeground black \ -background gray40 \ -command {dbClose db; exit} \ -disabledforeground LightGray \ -foreground White \ -highlightbackground LightGray \ -highlightcolor LightGray \ -padx 5 \ -pady 1 \ -text "Exit" pack $Name -anchor nw \ -fill none \ -side right ############################################# # Data Type Buttons # set Name $Parent.datatype frame $Name pack $Name -expand 1 -fill x set Name $Parent.datatype.personal button $Name -activebackground white \ -activeforeground black \ -background white -relief flat \ -command { $Parent.datatype.$current_type configure -background gray40 -relief sunken -foreground white $Parent.datatype.personal configure -background white -relief flat -foreground black pack forget $Parent.form.$current_type pack $Parent.form.personal -anchor nw -expand 1 -fill x -before $Parent.form.notes set current_type personal } \ -disabledforeground LightGray \ -foreground black \ -highlightbackground LightGray \ -highlightcolor LightGray \ -pady 1 \ -text "Personal" pack $Name -expand 1 -anchor nw -fill x -side left set Name $Parent.datatype.work button $Name -activebackground white \ -activeforeground black \ -background gray40 -relief sunken \ -command { $Parent.datatype.$current_type configure -background gray40 -relief sunken -foreground white $Parent.datatype.work configure -background white -relief flat -foreground black pack forget $Parent.form.$current_type pack $Parent.form.work -anchor nw -expand 1 -fill x -before $Parent.form.notes set current_type work } \ -disabledforeground LightGray \ -foreground White \ -highlightbackground LightGray \ -highlightcolor LightGray \ -pady 1 \ -text "Work" pack $Name -expand 1 -anchor nw -fill x -side left set Name $Parent.datatype.internet button $Name -activebackground white \ -activeforeground black \ -background gray40 -relief sunken \ -command { $Parent.datatype.$current_type configure -background gray40 -relief sunken -foreground white $Parent.datatype.internet configure -background white -relief flat -foreground black pack forget $Parent.form.$current_type pack $Parent.form.internet -anchor nw -expand 1 -fill x -before $Parent.form.notes set current_type internet } \ -disabledforeground LightGray \ -foreground White \ -highlightbackground LightGray \ -highlightcolor LightGray \ -pady 1 \ -text "Internet" pack $Name -expand 1 -anchor nw -fill x -side left set Name $Parent.form frame $Name -height 600 -background white pack $Name -anchor nw -expand 1 -fill both frame $Parent.form.spacer0 -background white -relief flat -border 0 pack $Parent.form.spacer0 -expand 1 -fill x label $Parent.form.spacer0.name -text "Data Record for:" -background white -foreground black pack $Parent.form.spacer0.name -side left -anchor w label $Parent.form.spacer0.data -text " " -background white -foreground black pack $Parent.form.spacer0.data -side left -anchor w frame $Parent.form.spacer1 -height 2 -background gray40 pack $Parent.form.spacer1 -expand 1 -fill x ############################################### # Personal data area # set Form $Parent.form.personal set Name $Form frame $Name -background white -borderwidth 2 -relief groove -height 300 pack $Name -anchor nw -expand 1 -fill x set Name $Form.name frame $Name -background white pack $Name -anchor nw -expand 1 -fill x -side top set Name $Form.name.label label $Name -text "Name: " -background white pack $Name -anchor nw -side left -pady 2 set Name $Form.name.entry entry $Name -width 91 -background lightgray -borderwidth 3 pack $Name -anchor nw -side left -pady 2 set Name $Form.street frame $Name -background white pack $Name -anchor nw -expand 1 -fill x -side top set Name $Form.street.label label $Name -text "Street: " -background white pack $Name -anchor nw -side left -pady 2 set Name $Form.street.entry entry $Name -width 91 -background lightgray -borderwidth 3 pack $Name -anchor nw -side left -pady 2 set Name $Form.citystate frame $Name -background white pack $Name -anchor nw -expand 1 -fill x -side top set Name $Form.citystate.city_l label $Name -text "City: " -background white pack $Name -anchor nw -side left -pady 2 set Name $Form.citystate.city entry $Name -width 50 -background lightgray -borderwidth 3 pack $Name -anchor nw -side left -pady 2 set Name $Form.citystate.state_l label $Name -text "State: " -background white pack $Name -anchor nw -side left -pady 2 set Name $Form.citystate.state entry $Name -width 5 -background lightgray -borderwidth 3 pack $Name -anchor nw -side left -pady 2 set Name $Form.citystate.zip_l label $Name -text " Zip: " -background white pack $Name -anchor nw -side left -pady 2 set Name $Form.citystate.zip entry $Name -width 21 -background lightgray -borderwidth 3 pack $Name -anchor nw -side left -pady 2 set Name $Form.phonefax frame $Name -background white pack $Name -anchor nw -expand 1 -fill x -side top set Name $Form.phonefax.phone_l label $Name -text "Phone: " -background white pack $Name -anchor nw -side left -pady 2 set Name $Form.phonefax.phone entry $Name -width 24 -background lightgray -borderwidth 3 pack $Name -anchor nw -side left -pady 2 set Name $Form.phonefax.fax_l label $Name -text " Fax: " -background white pack $Name -anchor nw -side left -pady 2 set Name $Form.phonefax.fax entry $Name -width 24 -background lightgray -borderwidth 3 pack $Name -anchor nw -side left -pady 2 set Name $Form.phonefax.cellular_l label $Name -text " Cellular: " -background white pack $Name -anchor nw -side left -pady 2 set Name $Form.phonefax.cellular entry $Name -width 25 -background lightgray -borderwidth 3 pack $Name -anchor nw -side left -pady 2 ######################## # Work data area # set Form $Parent.form.work set Name $Form frame $Name -background white -borderwidth 2 -relief groove #pack $Name -anchor nw -expand 1 -fill x set Name $Form.name frame $Name -background white pack $Name -anchor nw -expand 1 -fill x -side top set Name $Form.name.label label $Name -text "Company: " -background white pack $Name -anchor nw -side left -pady 2 set Name $Form.name.entry entry $Name -width 89 -background lightgray -borderwidth 3 pack $Name -anchor nw -side left -pady 2 set Name $Form.street frame $Name -background white pack $Name -anchor nw -expand 1 -fill x -side top set Name $Form.street.label label $Name -text "Street: " -background white pack $Name -anchor nw -side left -pady 2 set Name $Form.street.entry entry $Name -width 89 -background lightgray -borderwidth 3 pack $Name -anchor nw -side left -pady 2 set Name $Form.citystate frame $Name -background white pack $Name -anchor nw -expand 1 -fill x -side top set Name $Form.citystate.city_l label $Name -text "City: " -background white pack $Name -anchor nw -side left -pady 2 set Name $Form.citystate.city entry $Name -width 50 -background lightgray -borderwidth 3 pack $Name -anchor nw -side left -pady 2 set Name $Form.citystate.state_l label $Name -text "State: " -background white pack $Name -anchor nw -side left -pady 2 set Name $Form.citystate.state entry $Name -width 5 -background lightgray -borderwidth 3 pack $Name -anchor nw -side left -pady 2 set Name $Form.citystate.zip_l label $Name -text " Zip: " -background white pack $Name -anchor nw -side left -pady 2 set Name $Form.citystate.zip entry $Name -width 19 -background lightgray -borderwidth 3 pack $Name -anchor nw -side left -pady 2 set Name $Form.phonefax frame $Name -background white pack $Name -anchor nw -expand 1 -fill x -side top set Name $Form.phonefax.phone_l label $Name -text "Phone: " -background white pack $Name -anchor nw -side left -pady 2 set Name $Form.phonefax.phone entry $Name -width 24 -background lightgray -borderwidth 3 pack $Name -anchor nw -side left -pady 2 set Name $Form.phonefax.fax_l label $Name -text " Fax: " -background white pack $Name -anchor nw -side left -pady 2 set Name $Form.phonefax.fax entry $Name -width 24 -background lightgray -borderwidth 3 pack $Name -anchor nw -side left -pady 2 set Name $Form.phonefax.cellular_l label $Name -text " Cellular: " -background white pack $Name -anchor nw -side left -pady 2 set Name $Form.phonefax.cellular entry $Name -width 23 -background lightgray -borderwidth 3 pack $Name -anchor nw -side left -pady 2 ######################## # Internet data area # set Form $Parent.form.internet set Name $Form frame $Name -background white -borderwidth 2 -relief groove #pack $Name -anchor nw -expand 1 -fill x set Name $Form.email frame $Name -background white pack $Name -anchor nw -expand 1 -fill x -side top set Name $Form.email.label label $Name -text "Email: " -background white pack $Name -anchor nw -side left -pady 2 set Name $Form.email.entry entry $Name -width 91 -background lightgray -borderwidth 3 pack $Name -anchor nw -side left -pady 2 set Name $Form.personal_web frame $Name -background white pack $Name -anchor nw -expand 1 -fill x -side top set Name $Form.personal_web.label label $Name -text "Personal Web Site: " -background white pack $Name -anchor nw -side left -pady 2 set Name $Form.personal_web.url entry $Name -width 80 -background lightgray -borderwidth 3 pack $Name -anchor nw -side left -pady 2 set Name $Form.work_web frame $Name -background white pack $Name -anchor nw -expand 1 -fill x -side top set Name $Form.work_web.label label $Name -text "Work Web Site: " -background white pack $Name -anchor nw -side left -pady 2 set Name $Form.work_web.url entry $Name -width 80 -background lightgray -borderwidth 3 pack $Name -anchor nw -side left -pady 2 set Name $Form.pagerpgp frame $Name -background white pack $Name -anchor nw -expand 1 -fill x -side top set Name $Form.pagerpgp.pager_l label $Name -text "Pager: " -background white pack $Name -anchor nw -side left -pady 2 set Name $Form.pagerpgp.pager entry $Name -width 24 -background lightgray -borderwidth 3 pack $Name -anchor nw -side left -pady 2 set Name $Form.pagerpgp.pgp_l label $Name -text " PGP Fingerprint: " -background white pack $Name -anchor nw -side left -pady 2 set Name $Form.pagerpgp.pgp entry $Name -width 50 -background lightgray -borderwidth 3 pack $Name -anchor nw -side left -pady 2 ########################################### # Notes Area # set Form $Parent.form.notes set Name $Form frame $Name -background white -borderwidth 2 -relief groove pack $Name -anchor nw -expand 1 -fill x set Name $Form.misc frame $Name -background white pack $Name -anchor nw -expand 1 -fill x -side top set Name $Form.misc.scroll scrollbar $Name -command {$Form.misc.data yview} -orient vertical pack $Name -side right -padx 4 -pady 2 -expand 1 -fill y set Name $Form.misc.data_l label $Name -text " Misc data:" -background white pack $Name -anchor nw -side left -pady 2 set Name $Form.misc.data text $Name -width 80 -background gray90 -borderwidth 3 -height 4 -width 84 \ -yscrollcommand {.rolodex.form.notes.misc.scroll set} pack $Name -anchor nw -side left -pady 2 set Name $Form.scroll scrollbar $Name -command {$Form.text yview} -orient vertical pack $Name -side right -padx 4 -pady 2 -expand 1 -fill y set Name $Form.text_l label $Name -text " Notes: " -background white pack $Name -anchor nw -side left -pady 2 set Name $Form.text text $Name -width 45 -background gray90 -borderwidth 3 -height 10 -width 85 \ -yscrollcommand {$Form.scroll set} pack $Name -anchor nw -side left -pady 2 ######################## # Put it up # set current_type personal pack $Parent db_open