Eskil

Check-in [b2c9278183]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Cleanup
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: b2c9278183adda491792e30ff624d61f365c4331
User & Date: peter 2012-06-25 23:02:06.805
Context
2012-07-11
19:02
Detect and display error if commit fails. check-in: 17d7e0417e user: peter tags: trunk
2012-06-25
23:02
Cleanup check-in: b2c9278183 user: peter tags: trunk
20:28
Handle if ttk::spinbox is not there since it was introduced later check-in: 43a4397331 user: peter tags: trunk
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/eskil.tcl.
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# Stop Tk from meddling with the command line by copying it first.
set ::eskil(argv) $::argv
set ::eskil(argc) $::argc
set ::argv {}
set ::argc 0

set ::eskil(debug) 0
set ::eskil(diffver) "Version 2.6.2+ 2012-06-22"
set ::eskil(thisScript) [file join [pwd] [info script]]

namespace import tcl::mathop::+
namespace import tcl::mathop::-
namespace import tcl::mathop::*
namespace import tcl::mathop::/








|







33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# Stop Tk from meddling with the command line by copying it first.
set ::eskil(argv) $::argv
set ::eskil(argc) $::argc
set ::argv {}
set ::argc 0

set ::eskil(debug) 0
set ::eskil(diffver) "Version 2.6.2+ 2012-06-26"
set ::eskil(thisScript) [file join [pwd] [info script]]

namespace import tcl::mathop::+
namespace import tcl::mathop::-
namespace import tcl::mathop::*
namespace import tcl::mathop::/

240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
            }
        }
    }
    # Configure  our new style.
    ttk::style configure My.Toolbutton {*}[ttk::style configure Toolbutton] \
        -padding {1 1}
    ttk::style map My.Toolbutton {*}[ttk::style map Toolbutton] \
        -relief {disabled flat selected sunken pressed sunken active raised}     
    # Re-do if the user changes theme.
    if {[lsearch -exact [bind . <<ThemeChanged>>] EskilThemeInit] == -1} {
        bind . <<ThemeChanged>> +EskilThemeInit
    }
}

# This function is called when a toplevel is closed.







|







240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
            }
        }
    }
    # Configure  our new style.
    ttk::style configure My.Toolbutton {*}[ttk::style configure Toolbutton] \
        -padding {1 1}
    ttk::style map My.Toolbutton {*}[ttk::style map Toolbutton] \
        -relief {disabled flat selected sunken pressed sunken active raised}
    # Re-do if the user changes theme.
    if {[lsearch -exact [bind . <<ThemeChanged>>] EskilThemeInit] == -1} {
        bind . <<ThemeChanged>> +EskilThemeInit
    }
}

# This function is called when a toplevel is closed.
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
    }

    # A large block may take time.  Give a small warning.
    if {$large} {
        set ::widgets($top,eqLabel) "!"
        update idletasks
    }
    
    # Detect if only newlines has changed within the block, e.g.
    # when rearranging newlines.
    if {$::eskil(ignorenewline)} {
        set res [ParseBlocksAcrossNewline $top $block1 $block2]
        if {$res != 0} {
            # FIXA: move this to ParseBlocksAcrossNewline ?
            if {$res > 0 && $details} {







|







561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
    }

    # A large block may take time.  Give a small warning.
    if {$large} {
        set ::widgets($top,eqLabel) "!"
        update idletasks
    }

    # Detect if only newlines has changed within the block, e.g.
    # when rearranging newlines.
    if {$::eskil(ignorenewline)} {
        set res [ParseBlocksAcrossNewline $top $block1 $block2]
        if {$res != 0} {
            # FIXA: move this to ParseBlocksAcrossNewline ?
            if {$res > 0 && $details} {
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
                addChange $top 1 change [expr {$line1 + $t1}] 1 \
                        [expr {$line2 + $t2}] 1
                nextHighlight $top
            }
            incr t1
            incr t2
        } elseif {$c eq "C"} {
	    # This is two lines that the block matching considered
	    # too different to use line parsing on them.
	    # Marked the whole line as deleted/inserted
            set textline1 [lindex $block1 $t1]
            set textline2 [lindex $block2 $t2]
            $::widgets($top,wLine1) insert end [myFormL $doingLine1] \
                    "hl$::HighLightCount change"
            $::widgets($top,wDiff1) insert end "$textline1\n" new1
            $::widgets($top,wLine2) insert end [myFormL $doingLine2] \
                    "hl$::HighLightCount change"







|
|
|







633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
                addChange $top 1 change [expr {$line1 + $t1}] 1 \
                        [expr {$line2 + $t2}] 1
                nextHighlight $top
            }
            incr t1
            incr t2
        } elseif {$c eq "C"} {
            # This is two lines that the block matching considered
            # too different to use line parsing on them.
            # Marked the whole line as deleted/inserted
            set textline1 [lindex $block1 $t1]
            set textline2 [lindex $block2 $t2]
            $::widgets($top,wLine1) insert end [myFormL $doingLine1] \
                    "hl$::HighLightCount change"
            $::widgets($top,wDiff1) insert end "$textline1\n" new1
            $::widgets($top,wLine2) insert end [myFormL $doingLine2] \
                    "hl$::HighLightCount change"
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
    if {$n1 == 0 && $n2 == 0} {
        # All blocks have been processed. Continue until end of file.
        # If "show all" is not on, just display a couple of context lines.
        set limit -1
        if {$Pref(context) >= 0} {
            set limit $Pref(context)
        }
	# Consider any total limit on displayed lines.
        if {$::eskil($top,limitlines)} {
            set limit [expr {$::eskil($top,limitlines) - $::eskil($top,mapMax)}]
            if {$limit < 0} {
                set limit 0
            }
        }
        if {$limit >= 0} {disallowEdit $top}







|







708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
    if {$n1 == 0 && $n2 == 0} {
        # All blocks have been processed. Continue until end of file.
        # If "show all" is not on, just display a couple of context lines.
        set limit -1
        if {$Pref(context) >= 0} {
            set limit $Pref(context)
        }
        # Consider any total limit on displayed lines.
        if {$::eskil($top,limitlines)} {
            set limit [expr {$::eskil($top,limitlines) - $::eskil($top,mapMax)}]
            if {$limit < 0} {
                set limit 0
            }
        }
        if {$limit >= 0} {disallowEdit $top}
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163

proc openPatch {top} {
    global Pref
    if {[doOpenLeft $top]} {
        set ::eskil($top,mode) "patch"
        set Pref(ignore) " "
        set Pref(nocase) 0
        set Pref(noempty) 0 
        set ::eskil($top,patchFile) $::eskil($top,leftFile)
        set ::eskil($top,patchData) ""
        doDiff $top
    }
}

# Get data from clipboard and display as a patch.
proc doPastePatch {top} {
    if {[catch {::tk::GetSelection $top CLIPBOARD} sel]} {
        tk_messageBox -icon error -title "Eskil Error" -parent $top \
                -message "Could not retreive clipboard" -type ok
        return
    }
    set ::eskil($top,mode) "patch"
    set ::Pref(ignore) " "
    set ::Pref(nocase) 0
    set ::Pref(noempty) 0 
    set ::eskil($top,patchFile) ""
    set ::eskil($top,patchData) $sel
    doDiff $top
}

proc openRev {top} {
    if {[doOpenRight $top]} {







|
















|







2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163

proc openPatch {top} {
    global Pref
    if {[doOpenLeft $top]} {
        set ::eskil($top,mode) "patch"
        set Pref(ignore) " "
        set Pref(nocase) 0
        set Pref(noempty) 0
        set ::eskil($top,patchFile) $::eskil($top,leftFile)
        set ::eskil($top,patchData) ""
        doDiff $top
    }
}

# Get data from clipboard and display as a patch.
proc doPastePatch {top} {
    if {[catch {::tk::GetSelection $top CLIPBOARD} sel]} {
        tk_messageBox -icon error -title "Eskil Error" -parent $top \
                -message "Could not retreive clipboard" -type ok
        return
    }
    set ::eskil($top,mode) "patch"
    set ::Pref(ignore) " "
    set ::Pref(nocase) 0
    set ::Pref(noempty) 0
    set ::eskil($top,patchFile) ""
    set ::eskil($top,patchData) $sel
    doDiff $top
}

proc openRev {top} {
    if {[doOpenRight $top]} {
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
            set ::eskil($top,alignDrag,state) "drag"
        }
    }
    if {$::eskil($top,alignDrag,state) eq "drag"} {
        set w $::eskil($top,alignDrag,W)
        # Move drag label with cursor
        wm geometry $w +[expr {$X + 1}]+[expr {$Y + 1}]
        
        set n $::eskil($top,alignDrag,from)
        set other [expr {$n == 1 ? 2 : 1}]
        set w2 $::widgets($top,wLine$other)
        # Are we over the other line window?
        if {[winfo containing $X $Y] eq $w2} {
            set x [expr {$X - [winfo rootx $w2]}]
            set y [expr {$Y - [winfo rooty $w2]}]







|







2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
            set ::eskil($top,alignDrag,state) "drag"
        }
    }
    if {$::eskil($top,alignDrag,state) eq "drag"} {
        set w $::eskil($top,alignDrag,W)
        # Move drag label with cursor
        wm geometry $w +[expr {$X + 1}]+[expr {$Y + 1}]

        set n $::eskil($top,alignDrag,from)
        set other [expr {$n == 1 ? 2 : 1}]
        set w2 $::widgets($top,wLine$other)
        # Are we over the other line window?
        if {[winfo containing $X $Y] eq $w2} {
            set x [expr {$X - [winfo rootx $w2]}]
            set y [expr {$Y - [winfo rooty $w2]}]
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
    ttk::entryX $w -style TLabel
    $w configure {*}$args

    $w configure -takefocus 0 -state readonly ;#-readonlybackground $bg

    set i [lsearch $args -textvariable]
    if {$i >= 0} {
	set var [lindex $args [+ $i 1]]
	uplevel \#0 "trace variable $var w \
		{after idle {$w xview end} ;#}"
    }
}

# Fill in default data for a diff window
proc initDiffData {top} {
    set ::eskil($top,leftOK) 0
    set ::eskil($top,rightOK) 0







|
|
|







2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
    ttk::entryX $w -style TLabel
    $w configure {*}$args

    $w configure -takefocus 0 -state readonly ;#-readonlybackground $bg

    set i [lsearch $args -textvariable]
    if {$i >= 0} {
        set var [lindex $args [+ $i 1]]
        uplevel \#0 "trace variable $var w \
                {after idle {$w xview end} ;#}"
    }
}

# Fill in default data for a diff window
proc initDiffData {top} {
    set ::eskil($top,leftOK) 0
    set ::eskil($top,rightOK) 0
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
proc backDoor {top a} {
    append ::eskil(backdoor) $a
    set ::eskil(backdoor) [string range $::eskil(backdoor) end-9 end]
    if {$::eskil(backdoor) eq "PeterDebug"} {
        set ::eskil(debug) 1
        catch {console show}
        set ::eskil(backdoor) ""
	AddDebugMenu $top
    }
}

# Runtime disable of C version of DiffUtil
proc DisableDiffUtilC {} {
    uplevel \#0 [list source $::eskil(thisDir)/../lib/diffutil/tcl/diffutil.tcl]
}

# Add a debug menu to a toplevel window
proc AddDebugMenu {top} {
    set dMenu [DebugMenu $top.m]
    $dMenu add checkbutton -label "Wrap" -variable wrapstate \
	-onvalue char -offvalue none -command \
	"$top.ft1.tt configure -wrap \$wrapstate ;\
                $top.ft2.tt configure -wrap \$wrapstate"
    $dMenu add command -label "Date Filter" \
	-command {set ::eskil(filter) {^Date}}
    $dMenu add separator
    $dMenu add command -label "Reread Source" -underline 0 \
	-command {EskilRereadSource}
        $dMenu add separator
    $dMenu add command -label "Redraw Window" \
	-command [list makeDiffWin $top]
    $dMenu add separator
    $dMenu add command -label "Normal Cursor" \
	-command [list normalCursor $top]
    $dMenu add separator
    # Runtime disable of C version of DiffUtil
    $dMenu add command -label "Tcl DiffUtil" -command DisableDiffUtilC
    $dMenu add command -label "Evalstats" -command {evalstats}
    $dMenu add command -label "_stats" -command {parray _stats}
    $dMenu add command -label "Nuisance" -command [list makeNuisance \
        $top "It looks like you are trying out the debug menu."]







|












|
|


|


|


|


|







2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
proc backDoor {top a} {
    append ::eskil(backdoor) $a
    set ::eskil(backdoor) [string range $::eskil(backdoor) end-9 end]
    if {$::eskil(backdoor) eq "PeterDebug"} {
        set ::eskil(debug) 1
        catch {console show}
        set ::eskil(backdoor) ""
        AddDebugMenu $top
    }
}

# Runtime disable of C version of DiffUtil
proc DisableDiffUtilC {} {
    uplevel \#0 [list source $::eskil(thisDir)/../lib/diffutil/tcl/diffutil.tcl]
}

# Add a debug menu to a toplevel window
proc AddDebugMenu {top} {
    set dMenu [DebugMenu $top.m]
    $dMenu add checkbutton -label "Wrap" -variable wrapstate \
        -onvalue char -offvalue none -command \
        "$top.ft1.tt configure -wrap \$wrapstate ;\
                $top.ft2.tt configure -wrap \$wrapstate"
    $dMenu add command -label "Date Filter" \
        -command {set ::eskil(filter) {^Date}}
    $dMenu add separator
    $dMenu add command -label "Reread Source" -underline 0 \
        -command {EskilRereadSource}
        $dMenu add separator
    $dMenu add command -label "Redraw Window" \
        -command [list makeDiffWin $top]
    $dMenu add separator
    $dMenu add command -label "Normal Cursor" \
        -command [list normalCursor $top]
    $dMenu add separator
    # Runtime disable of C version of DiffUtil
    $dMenu add command -label "Tcl DiffUtil" -command DisableDiffUtilC
    $dMenu add command -label "Evalstats" -command {evalstats}
    $dMenu add command -label "_stats" -command {parray _stats}
    $dMenu add command -label "Nuisance" -command [list makeNuisance \
        $top "It looks like you are trying out the debug menu."]
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
    pack $top.bfn -in $top.f -side right -padx {3 6}
    pack $top.bfp $top.bcm $top.blg \
            $top.er2 $top.lr2 $top.er1 $top.lr1 \
            -in $top.f -side right -padx 3
    pack $top.bfn $top.bfp $top.bcm -ipadx 15

    if {$::eskil(debug) == 1} {
	AddDebugMenu $top
    }

    initDiffData $top
    return $top
}

proc ValidateNewColors {} {







|







3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
    pack $top.bfn -in $top.f -side right -padx {3 6}
    pack $top.bfp $top.bcm $top.blg \
            $top.er2 $top.lr2 $top.er1 $top.lr1 \
            -in $top.f -side right -padx 3
    pack $top.bfn $top.bfp $top.bcm -ipadx 15

    if {$::eskil(debug) == 1} {
        AddDebugMenu $top
    }

    initDiffData $top
    return $top
}

proc ValidateNewColors {} {
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
    EditPrefRegsubUpdate $top
}

proc defaultGuiOptions {} {
    option add *Menu.tearOff 0
    option add *Button.padX 5
    if {[tk windowingsystem] eq "x11"} {
	option add *Button.padY 1
	option add *Listbox.selectBorderWidth 0
	option add *Entry.selectBorderWidth 0
	option add *Text.selectBorderWidth 0
	option add *highlightThickness 0
	option add *Scrollbar.borderWidth 1

	option add *Menu.activeBorderWidth 1
        option add *Menu.borderWidth 1
	option add *Menubutton.highlightThickness 0
 
        option add *Listbox.exportSelection 0
        option add *Listbox.borderWidth 1
        #option add *Listbox.highlightThickness 1
        option add *Font "Helvetica -12"
        option add *Scrollbar.highlightThickness 0
        option add *Scrollbar.takeFocus 0
	option add *Panedwindow.showHandle 0
    }

    # other Win2K like color changes 
    if {[tk windowingsystem]=="x11"} {
	set SystemButtonFace #D4D0C8
	set SystemButtonText #000000
	set SystemHighlight #0A226A
	set SystemHighlightText #ffffff
	set SystemWindow #ffffff
	set SystemWindowText #000000
	set SystemWindowFrame #000000
	set NORMAL_BG $SystemButtonFace
	set NORMAL_FG $SystemButtonText
	set SELECT_BG $SystemHighlight
	set SELECT_FG $SystemHighlightText
	set MENU_BG $NORMAL_BG
	set MENU_FG $NORMAL_FG
	set HIGHLIGHT $SystemWindowFrame
	set TEXT_FG $SystemWindowText
	set TROUGH $NORMAL_BG

	# need to set this explicitly, since its already been created
	. configure -bg $NORMAL_BG

	option add *Button.activeBackground $NORMAL_BG
	option add *Button.activeForeground $NORMAL_FG
	option add *Button.background $NORMAL_BG
	option add *Button.foreground $NORMAL_FG
	option add *Button.highlightBackground $NORMAL_BG
	option add *Button.highlightForeground $NORMAL_FG

	option add *Label.activeBackground $NORMAL_BG
	option add *Label.activeForeground $NORMAL_FG
	option add *Label.background $NORMAL_BG
	option add *Label.foreground $NORMAL_FG
	option add *Label.highlightBackground $NORMAL_BG
	option add *Label.highlightForeground $NORMAL_FG

	option add *Checkbutton.background $NORMAL_BG
	option add *Checkbutton.foreground $NORMAL_FG
	option add *Checkbutton.highlightBackground $NORMAL_BG
	option add *Checkbutton.highlightForeground $NORMAL_FG
	option add *Checkbutton.activeForeground $NORMAL_FG
	option add *Checkbutton.activeBackground $NORMAL_BG

	option add *Radiobutton.background $NORMAL_BG
	option add *Radiobutton.foreground $NORMAL_FG
	option add *Radiobutton.highlightBackground $NORMAL_BG
	option add *Radiobutton.highlightForeground $NORMAL_FG
	option add *Radiobutton.activeForeground $NORMAL_FG
	option add *Radiobutton.activeBackground $NORMAL_BG

	option add *Canvas.background $NORMAL_BG

	option add *Entry.background $SystemWindow
	option add *Entry.foreground $SystemWindowText
	option add *Entry.highlightBackground $NORMAL_BG
	option add *Entry.insertBackground $SystemWindowText
	option add *Entry.selectBackground $SELECT_BG
	option add *Entry.selectForeground $SELECT_FG

	option add *Frame.background $NORMAL_BG
	option add *Frame.highlightBackground $NORMAL_BG
	option add *Frame.highlightForeground $SystemWindowFrame

	option add *Labelframe.foreground $NORMAL_FG
	option add *Labelframe.background $NORMAL_BG

	option add *Listbox.background $SystemWindow
	option add *Listbox.foreground $NORMAL_FG
	option add *Listbox.selectForeground $SELECT_FG
	option add *Listbox.selectBackground $SELECT_BG
	option add *Listbox.highlightBackground $NORMAL_BG
	option add *Listbox.highlightForeground $HIGHLIGHT

	option add *Menu.activeBackground $SELECT_BG
	option add *Menu.activeForeground $SELECT_FG
	option add *Menu.background $MENU_BG
	option add *Menu.foreground $MENU_FG
	option add *Menu.selectForeground $MENU_FG
	
	option add *Menubutton.activeBackground $NORMAL_BG
	option add *Menubutton.activeForeground $NORMAL_FG
	option add *Menubutton.background $NORMAL_BG
	option add *Menubutton.foreground $NORMAL_FG

	option add *Message.background $NORMAL_BG
	option add *Messsage.foreground $NORMAL_FG

	option add *Panedwindow.background $NORMAL_BG

	option add *Scale.activeBackground $NORMAL_BG
	option add *Scale.background $NORMAL_BG
	option add *Scale.foreground $NORMAL_FG
	option add *Scale.troughColor $TROUGH

	option add *Scrollbar.activeBackground $NORMAL_BG
	option add *Scrollbar.background $NORMAL_BG
	option add *Scrollbar.highlightBackground $NORMAL_BG
	option add *Scrollbar.highlightForeground $HIGHLIGHT
	option add *Scale.troughColor $TROUGH

	option add *Text.background $SystemWindow
	option add *Text.foreground $SystemWindowText
	option add *Text.highlightBackground $NORMAL_BG
	option add *Text.highlightForeground $HIGHLIGHT
	option add *Text.insertForeground $TEXT_FG
	option add *Text.selectBackground $SELECT_BG
	option add *Text.selectForeground $SELECT_FG

	option add *Toplevel.background $NORMAL_BG
    }

    if {$::tcl_platform(platform) eq "windows"} {
        option add *Panedwindow.sashRelief flat
        option add *Panedwindow.sashWidth 4
        option add *Panedwindow.sashPad 0
        #option add *Menubutton.activeBackground SystemHighlight







|
|
|
|
|
|

|

|
|






|


|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

|
|

|
|
|
|
|
|

|
|
|
|
|
|

|
|
|
|
|
|

|
|
|
|
|
|

|

|
|
|
|
|
|

|
|
|

|
|

|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|

|
|

|

|
|
|
|

|
|
|
|
|

|
|
|
|
|
|
|

|







3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
    EditPrefRegsubUpdate $top
}

proc defaultGuiOptions {} {
    option add *Menu.tearOff 0
    option add *Button.padX 5
    if {[tk windowingsystem] eq "x11"} {
        option add *Button.padY 1
        option add *Listbox.selectBorderWidth 0
        option add *Entry.selectBorderWidth 0
        option add *Text.selectBorderWidth 0
        option add *highlightThickness 0
        option add *Scrollbar.borderWidth 1

        option add *Menu.activeBorderWidth 1
        option add *Menu.borderWidth 1
        option add *Menubutton.highlightThickness 0

        option add *Listbox.exportSelection 0
        option add *Listbox.borderWidth 1
        #option add *Listbox.highlightThickness 1
        option add *Font "Helvetica -12"
        option add *Scrollbar.highlightThickness 0
        option add *Scrollbar.takeFocus 0
        option add *Panedwindow.showHandle 0
    }

    # other Win2K like color changes
    if {[tk windowingsystem]=="x11"} {
        set SystemButtonFace #D4D0C8
        set SystemButtonText #000000
        set SystemHighlight #0A226A
        set SystemHighlightText #ffffff
        set SystemWindow #ffffff
        set SystemWindowText #000000
        set SystemWindowFrame #000000
        set NORMAL_BG $SystemButtonFace
        set NORMAL_FG $SystemButtonText
        set SELECT_BG $SystemHighlight
        set SELECT_FG $SystemHighlightText
        set MENU_BG $NORMAL_BG
        set MENU_FG $NORMAL_FG
        set HIGHLIGHT $SystemWindowFrame
        set TEXT_FG $SystemWindowText
        set TROUGH $NORMAL_BG

        # need to set this explicitly, since its already been created
        . configure -bg $NORMAL_BG

        option add *Button.activeBackground $NORMAL_BG
        option add *Button.activeForeground $NORMAL_FG
        option add *Button.background $NORMAL_BG
        option add *Button.foreground $NORMAL_FG
        option add *Button.highlightBackground $NORMAL_BG
        option add *Button.highlightForeground $NORMAL_FG

        option add *Label.activeBackground $NORMAL_BG
        option add *Label.activeForeground $NORMAL_FG
        option add *Label.background $NORMAL_BG
        option add *Label.foreground $NORMAL_FG
        option add *Label.highlightBackground $NORMAL_BG
        option add *Label.highlightForeground $NORMAL_FG

        option add *Checkbutton.background $NORMAL_BG
        option add *Checkbutton.foreground $NORMAL_FG
        option add *Checkbutton.highlightBackground $NORMAL_BG
        option add *Checkbutton.highlightForeground $NORMAL_FG
        option add *Checkbutton.activeForeground $NORMAL_FG
        option add *Checkbutton.activeBackground $NORMAL_BG

        option add *Radiobutton.background $NORMAL_BG
        option add *Radiobutton.foreground $NORMAL_FG
        option add *Radiobutton.highlightBackground $NORMAL_BG
        option add *Radiobutton.highlightForeground $NORMAL_FG
        option add *Radiobutton.activeForeground $NORMAL_FG
        option add *Radiobutton.activeBackground $NORMAL_BG

        option add *Canvas.background $NORMAL_BG

        option add *Entry.background $SystemWindow
        option add *Entry.foreground $SystemWindowText
        option add *Entry.highlightBackground $NORMAL_BG
        option add *Entry.insertBackground $SystemWindowText
        option add *Entry.selectBackground $SELECT_BG
        option add *Entry.selectForeground $SELECT_FG

        option add *Frame.background $NORMAL_BG
        option add *Frame.highlightBackground $NORMAL_BG
        option add *Frame.highlightForeground $SystemWindowFrame

        option add *Labelframe.foreground $NORMAL_FG
        option add *Labelframe.background $NORMAL_BG

        option add *Listbox.background $SystemWindow
        option add *Listbox.foreground $NORMAL_FG
        option add *Listbox.selectForeground $SELECT_FG
        option add *Listbox.selectBackground $SELECT_BG
        option add *Listbox.highlightBackground $NORMAL_BG
        option add *Listbox.highlightForeground $HIGHLIGHT

        option add *Menu.activeBackground $SELECT_BG
        option add *Menu.activeForeground $SELECT_FG
        option add *Menu.background $MENU_BG
        option add *Menu.foreground $MENU_FG
        option add *Menu.selectForeground $MENU_FG

        option add *Menubutton.activeBackground $NORMAL_BG
        option add *Menubutton.activeForeground $NORMAL_FG
        option add *Menubutton.background $NORMAL_BG
        option add *Menubutton.foreground $NORMAL_FG

        option add *Message.background $NORMAL_BG
        option add *Message.foreground $NORMAL_FG

        option add *Panedwindow.background $NORMAL_BG

        option add *Scale.activeBackground $NORMAL_BG
        option add *Scale.background $NORMAL_BG
        option add *Scale.foreground $NORMAL_FG
        option add *Scale.troughColor $TROUGH

        option add *Scrollbar.activeBackground $NORMAL_BG
        option add *Scrollbar.background $NORMAL_BG
        option add *Scrollbar.highlightBackground $NORMAL_BG
        option add *Scrollbar.highlightForeground $HIGHLIGHT
        option add *Scale.troughColor $TROUGH

        option add *Text.background $SystemWindow
        option add *Text.foreground $SystemWindowText
        option add *Text.highlightBackground $NORMAL_BG
        option add *Text.highlightForeground $HIGHLIGHT
        option add *Text.insertForeground $TEXT_FG
        option add *Text.selectBackground $SELECT_BG
        option add *Text.selectForeground $SELECT_FG

        option add *Toplevel.background $NORMAL_BG
    }

    if {$::tcl_platform(platform) eq "windows"} {
        option add *Panedwindow.sashRelief flat
        option add *Panedwindow.sashWidth 4
        option add *Panedwindow.sashPad 0
        #option add *Menubutton.activeBackground SystemHighlight