Buckets:
| # | |
| # Ttk widget set initialization script. | |
| # | |
| ### Source library scripts. | |
| # | |
| namespace eval ::ttk { | |
| variable library | |
| if {![info exists library]} { | |
| set library [file dirname [info script]] | |
| } | |
| } | |
| source -encoding utf-8 [file join $::ttk::library fonts.tcl] | |
| source -encoding utf-8 [file join $::ttk::library cursors.tcl] | |
| source -encoding utf-8 [file join $::ttk::library utils.tcl] | |
| ## ttk::deprecated $old $new -- | |
| # Define $old command as a deprecated alias for $new command | |
| # $old and $new must be fully namespace-qualified. | |
| # | |
| proc ttk::deprecated {old new} { | |
| interp alias {} $old {} ttk::do'deprecate $old $new | |
| } | |
| ## do'deprecate -- | |
| # Implementation procedure for deprecated commands -- | |
| # issue a warning (once), then re-alias old to new. | |
| # | |
| proc ttk::do'deprecate {old new args} { | |
| deprecated'warning $old $new | |
| interp alias {} $old {} $new | |
| uplevel 1 [linsert $args 0 $new] | |
| } | |
| ## deprecated'warning -- | |
| # Gripe about use of deprecated commands. | |
| # | |
| proc ttk::deprecated'warning {old new} { | |
| puts stderr "$old deprecated -- use $new instead" | |
| } | |
| ### Backward-compatibility. | |
| # | |
| # | |
| # Make [package require tile] an effective no-op; | |
| # see SF#3016598 for discussion. | |
| # | |
| package ifneeded tile 0.8.6 { package provide tile 0.8.6 } | |
| # ttk::panedwindow used to be named ttk::paned. Keep the alias for now. | |
| # | |
| ::ttk::deprecated ::ttk::paned ::ttk::panedwindow | |
| ### ::ttk::ThemeChanged -- | |
| # Called from [::ttk::style theme use]. | |
| # Sends a <<ThemeChanged>> virtual event to all widgets. | |
| # | |
| proc ::ttk::ThemeChanged {} { | |
| set Q . | |
| while {[llength $Q]} { | |
| set QN [list] | |
| foreach w $Q { | |
| event generate $w <<ThemeChanged>> | |
| foreach child [winfo children $w] { | |
| lappend QN $child | |
| } | |
| } | |
| set Q $QN | |
| } | |
| } | |
| ### Public API. | |
| # | |
| proc ::ttk::themes {{ptn *}} { | |
| set themes [list] | |
| foreach pkg [lsearch -inline -all -glob [package names] ttk::theme::$ptn] { | |
| lappend themes [namespace tail $pkg] | |
| } | |
| return $themes | |
| } | |
| ## ttk::setTheme $theme -- | |
| # Set the current theme to $theme, loading it if necessary. | |
| # | |
| proc ::ttk::setTheme {theme} { | |
| variable currentTheme ;# @@@ Temp -- [::ttk::style theme use] doesn't work | |
| if {$theme ni [::ttk::style theme names]} { | |
| package require ttk::theme::$theme | |
| } | |
| ::ttk::style theme use $theme | |
| set currentTheme $theme | |
| } | |
| ### Load widget bindings. | |
| # | |
| source -encoding utf-8 [file join $::ttk::library button.tcl] | |
| source -encoding utf-8 [file join $::ttk::library menubutton.tcl] | |
| source -encoding utf-8 [file join $::ttk::library scrollbar.tcl] | |
| source -encoding utf-8 [file join $::ttk::library scale.tcl] | |
| source -encoding utf-8 [file join $::ttk::library progress.tcl] | |
| source -encoding utf-8 [file join $::ttk::library notebook.tcl] | |
| source -encoding utf-8 [file join $::ttk::library panedwindow.tcl] | |
| source -encoding utf-8 [file join $::ttk::library entry.tcl] | |
| source -encoding utf-8 [file join $::ttk::library combobox.tcl] ;# dependency: entry.tcl | |
| source -encoding utf-8 [file join $::ttk::library spinbox.tcl] ;# dependency: entry.tcl | |
| source -encoding utf-8 [file join $::ttk::library treeview.tcl] | |
| source -encoding utf-8 [file join $::ttk::library sizegrip.tcl] | |
| ## Label and Labelframe bindings: | |
| # (not enough to justify their own file...) | |
| # | |
| bind TLabelframe <<Invoke>> { tk::TabToWindow [tk_focusNext %W] } | |
| bind TLabel <<Invoke>> { tk::TabToWindow [tk_focusNext %W] } | |
| ### Load settings for built-in themes: | |
| # | |
| proc ttk::LoadThemes {} { | |
| variable library | |
| # "default" always present: | |
| uplevel #0 [list source -encoding utf-8 [file join $library defaults.tcl]] | |
| set builtinThemes [style theme names] | |
| foreach {theme scripts} { | |
| classic classicTheme.tcl | |
| alt altTheme.tcl | |
| clam clamTheme.tcl | |
| winnative winTheme.tcl | |
| xpnative {xpTheme.tcl vistaTheme.tcl} | |
| aqua aquaTheme.tcl | |
| } { | |
| if {[lsearch -exact $builtinThemes $theme] >= 0} { | |
| foreach script $scripts { | |
| uplevel #0 [list source -encoding utf-8 [file join $library $script]] | |
| } | |
| } | |
| } | |
| } | |
| ttk::LoadThemes; rename ::ttk::LoadThemes {} | |
| ### Select platform-specific default theme: | |
| # | |
| # Notes: | |
| # + On OSX, aqua theme is the default | |
| # + On Windows, xpnative takes precedence over winnative if available. | |
| # + On X11, users can use the X resource database to | |
| # specify a preferred theme (*TkTheme: themeName); | |
| # otherwise "default" is used. | |
| # | |
| proc ttk::DefaultTheme {} { | |
| set preferred [list aqua vista xpnative winnative] | |
| set userTheme [option get . tkTheme TkTheme] | |
| if {$userTheme ne {} && ![catch { | |
| uplevel #0 [list package require ttk::theme::$userTheme] | |
| }]} { | |
| return $userTheme | |
| } | |
| foreach theme $preferred { | |
| if {[package provide ttk::theme::$theme] ne ""} { | |
| return $theme | |
| } | |
| } | |
| return "default" | |
| } | |
| ttk::setTheme [ttk::DefaultTheme] ; rename ttk::DefaultTheme {} | |
| #*EOF* | |
Xet Storage Details
- Size:
- 4.82 kB
- Xet hash:
- 6834197a1bdcc6db8d1ffb399900b9caed04456e33226988841f4f101d9f3833
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.