gui.tcl for Wikit on PocketPC

This page describes the changes to gui.tcl that are required for Wikit to run on the PocketPC:

  • Replace the use of gbuttons with standard buttons. While this doesn't look as nice, gbuttons use IncrTcl, and as far as I know, IncrTcl isn't available on PocketPC yet.
  • Add an "Exit" button. This is useful since menu's and the "X" button don't work with Tcl 8.4.4 on the PocketPC.
  • Change the layout of the buttons and search input box to better fit in the PocketPC's (small) screen dimensions.
  • Automatically change the size of the window when editing so that the PocketPC keyboard doesn't obscure the input.

This patch is against Wikit version: 2003/08/20 19:06:22 68261-69214.

Patch gui.tcl:


 17,19d16
 < if {[catch {package require gbutton}]} {
 <     puts stderr "cannot load gbutton"
 < } else {
 105c102
 <         focus $top.n.enter
 ---
 >         focus $top.n.f2.enter
 108c105
 <         gButton::modify Back \
 ---
 >         $top.n.f0.back \
 134c131
 <         if {![string equal [gButton::cget Back -text] Back]} {
 ---
 >         if {![string equal [$top.n.f0.back cget -text] Back]} {
 136,139c133,136
 <           gButton::modify Back -text Back -command "Wikit::ShowPage"
 <           gButton::modify Forward -text Forward -command "Wikit::ShowPage -1"
 <           gButton::modify Home -text Home -command "Wikit::ShowPage $toppage"
 <           gButton::modify Edit -text Edit -command "Wikit::EditPage"
 ---
 >             $top.n.f0.back configure -text Back -command "Wikit::ShowPage"
 >             $top.n.f0.forward configure -text Forward -command "Wikit::ShowPage -1"
 >             $top.n.f0.home configure -text Home -command "Wikit::ShowPage $toppage"
 >             $top.n.f0.edit configure -text Edit -command "Wikit::EditPage"
 142c139
 <         gButton::modify Edit -state normal
 ---
 >         $top.n.f0.edit configure -state normal
 162c159
 <       $top.n.mode configure -text Search:
 ---
 >       $top.n.f2.mode configure -text Search:
 194c191
 <       focus $top.n.enter
 ---
 >       focus $top.n.f2.enter
 196c193
 <           gButton::modify Home -state disabled
 ---
 >           $top.n.f0.home configure -state disabled
 198c195
 <           gButton::modify Home -state normal
 ---
 >           $top.n.f0.home configure -state normal
 201c198
 <           gButton::modify Help -state disabled
 ---
 >           $top.n.f1.help configure -state disabled
 203c200
 <           gButton::modify Help -state normal
 ---
 >           $top.n.f1.help configure -state normal
 212a210,211
 >       variable topwin
 >       
 218,227c217,228
 <       gButton::modify Back -text Cancel -command "Wikit::ShowPage $id
 <         $D tag configure fixed -foreground $Color::fixedFg -background $Color::fixedBg -font wikit_fixed -wrap none
 <             " -state normal
 <       gButton::modify Forward -text Save -command "
 <         $D tag configure fixed -foreground $Color::fixedFg -background $Color::fixedBg -font wikit_fixed -wrap none
 <                 SavePage $id \[$D get 1.0 end\] local \[$top.n.enter get\]
 <                 Wikit::ShowPage $id" -state normal
 <       gButton::modify Home -text Copy -state disabled -command Wikit::Copy
 <       gButton::modify Edit -text Paste -state normal -command Wikit::Paste
 <       gButton::modify Help -state disabled
 ---
 >       $top.n.f0.back configure -text Cancel -command "Wikit::ShowPage $id
 >              wm geometry $topwin 236x267+0+4
 >              $D tag configure fixed -foreground $Color::fixedFg -background $Color::fixedBg -font wikit_fixed -wrap none" \
 >              -state normal
 >       $top.n.f0.forward configure -text Save -command "
 >           wm geometry $topwin 236x267+0+4
 >           $D tag configure fixed -foreground $Color::fixedFg -background $Color::fixedBg -font wikit_fixed -wrap none
 >           SavePage $id \[$D get 1.0 end\] local \[$top.n.f2.enter get\]
 >           Wikit::ShowPage $id" -state normal
 >       $top.n.f0.home configure -text Copy -state disabled -command Wikit::Copy
 >       $top.n.f0.edit configure -text Paste -state normal -command Wikit::Paste
 >       $top.n.f1.help configure -state disabled
 230c231
 <       $top.n.mode configure -text "Edit Title:"
 ---
 >       $top.n.f2.mode configure -text "Edit Title:"
 236a238
 >       wm geometry $topwin 236x190+0+4
 246a249
 >       variable top
 252c255
 <                 gButton::modify Forward -state normal
 ---
 >                 $top.n.f0.forward configure -state normal
 276c279
 <         gButton::modify Back -text Back -command "Wikit::ShowPage"
 ---
 >         $top.n.f0.back configure -text Back -command "Wikit::ShowPage"
 279c282
 <         gButton::modify Forward -state disabled
 ---
 >             $top.n.f0.forward configure -state disabled
 283c286
 <         gButton::modify Back -state $state
 ---
 >         $top.n.f0.back configure -state $state
 335,336d337
 < 
 <         gButton::init -bg $Color::wikiBg -font wikit_button -disabledfill $Color::btnDisable
 350,354c351,356
 <         set b0 [gButton #auto $top.n.f0]
 <         $b0 new Back 
 <         $b0 new Forward 
 <         $b0 new Home 
 <         label $top.n.mode -width 7 -anchor e -bg $Color::wikiBg \
 ---
 >         button $top.n.f0.back -command "Wikit::ShowPage" -text Back
 >         button $top.n.f0.forward -command "Wikit::ShowPage -1" -text Forward
 >         button $top.n.f0.home -command "Wikit::ShowPage $toppage" -text Home
 >         button $top.n.f0.exit -command exit -text Exit
 >         frame $top.n.f2 -background $Color::wikiBg
 >         label $top.n.f2.mode -width 7 -anchor e -bg $Color::wikiBg \
 356,359c358,361
 <         entry $top.n.enter -textvariable Wikit::currMode -font wikit_default
 <         if {!$readonly} {
 <           $b0 new Edit 
 <           gButton::modify Edit -command "Wikit::EditPage"
 ---
 >         entry $top.n.f2.enter -textvariable Wikit::currMode -font wikit_default
 >         pack $top.n.f2.mode $top.n.f2.enter -side left -padx 2
 >         if {!$readonly} {
 >           button $top.n.f0.edit -command "Wikit::EditPage" -text Edit
 361,364c363,365
 <         $b0 size
 <         pack $top.n.f0 -side left -padx 0 -pady 0
 <         pack $top.n.mode -side left -padx 4 -pady 4
 <         pack $top.n.enter -side left -padx 4 -expand 1 -fill x
 ---
 >         pack $top.n.f0.back $top.n.f0.forward $top.n.f0.home $top.n.f0.edit $top.n.f0.exit -side left -padx 2
 >         pack $top.n.f0 -side top -padx 0 -pady 0 -expand 1 -fill x
 >         pack $top.n.f2 -side bottom -padx 0 -expand 1 -fill x
 366,368c367,368
 <         set b1 [gButton #auto $top.n.f1]
 <         $b1 new Help
 <         $b1 size
 ---
 >         button $top.n.f1.help -text [lindex [GetTitle 3] 0] \
 >                                 -command "Wikit::ShowPage 3"
 413,416d412
 <         gButton::modify Back -command "Wikit::ShowPage"
 <         gButton::modify Forward -command "Wikit::ShowPage -1"
 <         gButton::modify Help -text [lindex [GetTitle 3] 0] \
 <                                 -command "Wikit::ShowPage 3"
 419d414
 <       gButton::modify Home -command "Wikit::ShowPage $toppage"
 423a419
 >       wm geometry $topwin 236x267+0+4
 428c424
 <       wm minsize $topwin [winfo width $topwin] [winfo height $topwin]
 ---
 > #      wm minsize $topwin [winfo width $topwin] [winfo height $topwin]
 439a436
 >       variable top
 454c451
 <       set txt [gButton::cget Edit -text] 
 ---
 >       set txt [$top.n.f0.edit cget -text] 
 502a500,501
 >         variable top
 >         
 508c507
 <       gButton::modify Home -state $state
 ---
 >       $top.n.f0.home configure -state $state
 512d510
 < }