|
|
|
|
|
|
|
|
|
package require Tk 8.6 |
|
|
|
namespace eval ttk::theme::sun-valley-dark { |
|
variable version 1.0 |
|
package provide ttk::theme::sun-valley-dark $version |
|
|
|
ttk::style theme create sun-valley-dark -parent clam -settings { |
|
proc load_images {imgdir} { |
|
variable images |
|
foreach file [glob -directory $imgdir *.png] { |
|
set images([file tail [file rootname $file]]) \ |
|
[image create photo -file $file -format png] |
|
} |
|
} |
|
|
|
load_images [file join [file dirname [info script]] dark] |
|
|
|
array set colors { |
|
-fg "#F6F6F7" |
|
-bg "#0e0e0f" |
|
-disabledfg "#F6F6F7" |
|
-selectfg "#ffffff" |
|
-selectbg "#2f60d8" |
|
} |
|
|
|
ttk::style layout TButton { |
|
Button.button -children { |
|
Button.padding -children { |
|
Button.label -side left -expand 1 |
|
} |
|
} |
|
} |
|
|
|
ttk::style layout Toolbutton { |
|
Toolbutton.button -children { |
|
Toolbutton.padding -children { |
|
Toolbutton.label -side left -expand 1 |
|
} |
|
} |
|
} |
|
|
|
ttk::style layout TMenubutton { |
|
Menubutton.button -children { |
|
Menubutton.padding -children { |
|
Menubutton.label -side left -expand 1 |
|
Menubutton.indicator -side right -sticky nsew |
|
} |
|
} |
|
} |
|
|
|
ttk::style layout TOptionMenu { |
|
OptionMenu.button -children { |
|
OptionMenu.padding -children { |
|
OptionMenu.label -side left -expand 0 |
|
OptionMenu.indicator -side right -sticky nsew |
|
} |
|
} |
|
} |
|
|
|
ttk::style layout Accent.TButton { |
|
AccentButton.button -children { |
|
AccentButton.padding -children { |
|
AccentButton.label -side left -expand 1 |
|
} |
|
} |
|
} |
|
|
|
ttk::style layout Titlebar.TButton { |
|
TitlebarButton.button -children { |
|
TitlebarButton.padding -children { |
|
TitlebarButton.label -side left -expand 1 |
|
} |
|
} |
|
} |
|
|
|
ttk::style layout Close.Titlebar.TButton { |
|
CloseButton.button -children { |
|
CloseButton.padding -children { |
|
CloseButton.label -side left -expand 1 |
|
} |
|
} |
|
} |
|
|
|
ttk::style layout TCheckbutton { |
|
Checkbutton.button -children { |
|
Checkbutton.padding -children { |
|
Checkbutton.indicator -side left |
|
Checkbutton.label -side right -expand 1 |
|
} |
|
} |
|
} |
|
|
|
ttk::style layout Switch.TCheckbutton { |
|
Switch.button -children { |
|
Switch.padding -children { |
|
Switch.indicator -side left |
|
Switch.label -side right -expand 1 |
|
} |
|
} |
|
} |
|
|
|
ttk::style layout Toggle.TButton { |
|
ToggleButton.button -children { |
|
ToggleButton.padding -children { |
|
ToggleButton.label -side left -expand 1 |
|
} |
|
} |
|
} |
|
|
|
ttk::style layout TRadiobutton { |
|
Radiobutton.button -children { |
|
Radiobutton.padding -children { |
|
Radiobutton.indicator -side left |
|
Radiobutton.label -side right -expand 1 |
|
} |
|
} |
|
} |
|
|
|
ttk::style layout Vertical.TScrollbar { |
|
Vertical.Scrollbar.trough -sticky ns -children { |
|
Vertical.Scrollbar.uparrow -side top |
|
Vertical.Scrollbar.downarrow -side bottom |
|
Vertical.Scrollbar.thumb -expand 1 |
|
} |
|
} |
|
|
|
ttk::style layout Horizontal.TScrollbar { |
|
Horizontal.Scrollbar.trough -sticky ew -children { |
|
Horizontal.Scrollbar.leftarrow -side left |
|
Horizontal.Scrollbar.rightarrow -side right |
|
Horizontal.Scrollbar.thumb -expand 1 |
|
} |
|
} |
|
|
|
ttk::style layout TSeparator { |
|
TSeparator.separator -sticky nsew |
|
} |
|
|
|
ttk::style layout TCombobox { |
|
Combobox.field -sticky nsew -children { |
|
Combobox.padding -expand 1 -sticky nsew -children { |
|
Combobox.textarea -sticky nsew |
|
} |
|
} |
|
null -side right -sticky ns -children { |
|
Combobox.arrow -sticky nsew |
|
} |
|
} |
|
|
|
ttk::style layout TSpinbox { |
|
Spinbox.field -sticky nsew -children { |
|
Spinbox.padding -expand 1 -sticky nsew -children { |
|
Spinbox.textarea -sticky nsew |
|
} |
|
|
|
} |
|
null -side right -sticky nsew -children { |
|
Spinbox.uparrow -side left -sticky nsew |
|
Spinbox.downarrow -side right -sticky nsew |
|
} |
|
} |
|
|
|
ttk::style layout Card.TFrame { |
|
Card.field { |
|
Card.padding -expand 1 |
|
} |
|
} |
|
|
|
ttk::style layout TLabelframe { |
|
Labelframe.border { |
|
Labelframe.padding -expand 1 -children { |
|
Labelframe.label -side left |
|
} |
|
} |
|
} |
|
|
|
ttk::style layout TNotebook { |
|
Notebook.border -children { |
|
TNotebook.Tab -expand 1 |
|
Notebook.client -sticky nsew |
|
} |
|
} |
|
|
|
ttk::style layout Treeview.Item { |
|
Treeitem.padding -sticky nsew -children { |
|
Treeitem.image -side left -sticky {} |
|
Treeitem.indicator -side left -sticky {} |
|
Treeitem.text -side left -sticky {} |
|
} |
|
} |
|
|
|
|
|
ttk::style configure TButton -padding {8 4} -anchor center -foreground $colors(-fg) |
|
|
|
ttk::style map TButton -foreground \ |
|
[list disabled #7a7a7a \ |
|
pressed #d0d0d0] |
|
|
|
ttk::style element create Button.button image \ |
|
[list $images(button-rest) \ |
|
{selected disabled} $images(button-disabled) \ |
|
disabled $images(button-disabled) \ |
|
selected $images(button-rest) \ |
|
pressed $images(button-pressed) \ |
|
active $images(button-hover) \ |
|
] -border 4 -sticky nsew |
|
|
|
|
|
ttk::style configure Toolbutton -padding {8 4} -anchor center |
|
|
|
ttk::style element create Toolbutton.button image \ |
|
[list $images(empty) \ |
|
{selected disabled} $images(button-disabled) \ |
|
selected $images(button-rest) \ |
|
pressed $images(button-pressed) \ |
|
active $images(button-hover) \ |
|
] -border 4 -sticky nsew |
|
|
|
|
|
ttk::style configure TMenubutton -padding {8 4 0 4} |
|
|
|
ttk::style element create Menubutton.button \ |
|
image [list $images(button-rest) \ |
|
disabled $images(button-disabled) \ |
|
pressed $images(button-pressed) \ |
|
active $images(button-hover) \ |
|
] -border 4 -sticky nsew |
|
|
|
ttk::style element create Menubutton.indicator image $images(arrow-down) -width 28 -sticky {} |
|
|
|
|
|
ttk::style configure TOptionMenu -padding {8 4 0 4} |
|
ttk::style configure OptionMenudropdown -borderwidth 0 -relief ridge |
|
|
|
ttk::style element create OptionMenu.button \ |
|
image [list $images(button-rest) \ |
|
disabled $images(button-disabled) \ |
|
pressed $images(button-pressed) \ |
|
active $images(button-hover) \ |
|
] -border 0 -sticky nsew |
|
|
|
ttk::style element create OptionMenu.indicator image $images(arrow-down) -width 28 -sticky {} |
|
|
|
|
|
ttk::style configure Accent.TButton -padding {8 4} -anchor center -foreground #ffffff |
|
|
|
ttk::style map Accent.TButton -foreground \ |
|
[list pressed #25536a \ |
|
disabled #a5a5a5] |
|
|
|
ttk::style element create AccentButton.button image \ |
|
[list $images(button-accent-rest) \ |
|
{selected disabled} $images(button-accent-disabled) \ |
|
disabled $images(button-accent-disabled) \ |
|
selected $images(button-accent-rest) \ |
|
pressed $images(button-accent-pressed) \ |
|
active $images(button-accent-hover) \ |
|
] -border 4 -sticky nsew |
|
|
|
|
|
ttk::style configure Titlebar.TButton -padding {8 4} -anchor center -foreground #ffffff |
|
|
|
ttk::style map Titlebar.TButton -foreground \ |
|
[list disabled #6f6f6f \ |
|
pressed #d1d1d1 \ |
|
active #ffffff] |
|
|
|
ttk::style element create TitlebarButton.button image \ |
|
[list $images(empty) \ |
|
disabled $images(empty) \ |
|
pressed $images(button-titlebar-pressed) \ |
|
active $images(button-titlebar-hover) \ |
|
] -border 4 -sticky nsew |
|
|
|
|
|
ttk::style configure Close.Titlebar.TButton -padding {8 4} -anchor center -foreground #ffffff |
|
|
|
ttk::style map Close.Titlebar.TButton -foreground \ |
|
[list disabled #6f6f6f \ |
|
pressed #e8bfbb \ |
|
active #ffffff] |
|
|
|
ttk::style element create CloseButton.button image \ |
|
[list $images(empty) \ |
|
disabled $images(empty) \ |
|
pressed $images(button-close-pressed) \ |
|
active $images(button-close-hover) \ |
|
] -border 4 -sticky nsew |
|
|
|
|
|
ttk::style configure TCheckbutton -padding 2 |
|
|
|
ttk::style element create Checkbutton.indicator image \ |
|
[list $images(check-unsel-rest) \ |
|
{alternate disabled} $images(check-tri-disabled) \ |
|
{selected disabled} $images(check-disabled) \ |
|
disabled $images(check-unsel-disabled) \ |
|
{pressed alternate} $images(check-tri-hover) \ |
|
{active alternate} $images(check-tri-hover) \ |
|
alternate $images(check-tri-rest) \ |
|
{pressed selected} $images(check-hover) \ |
|
{active selected} $images(check-hover) \ |
|
selected $images(check-rest) \ |
|
{pressed !selected} $images(check-unsel-pressed) \ |
|
active $images(check-unsel-hover) \ |
|
] -width 26 -sticky w |
|
|
|
|
|
ttk::style element create Switch.indicator image \ |
|
[list $images(switch-off-rest) \ |
|
{selected disabled} $images(switch-on-disabled) \ |
|
disabled $images(switch-off-disabled) \ |
|
{pressed selected} $images(switch-on-pressed) \ |
|
{active selected} $images(switch-on-hover) \ |
|
selected $images(switch-on-rest) \ |
|
{pressed !selected} $images(switch-off-pressed) \ |
|
active $images(switch-off-hover) \ |
|
] -width 46 -sticky w |
|
|
|
|
|
ttk::style configure Toggle.TButton -padding {8 4 8 4} -anchor center -foreground $colors(-fg) |
|
|
|
ttk::style map Toggle.TButton -foreground \ |
|
[list {selected disabled} #a5a5a5 \ |
|
{selected pressed} #d0d0d0 \ |
|
selected #ffffff \ |
|
pressed #25536a \ |
|
disabled #7a7a7a |
|
] |
|
|
|
|
|
ttk::style element create ToggleButton.button image \ |
|
[list $images(button-rest) \ |
|
{selected disabled} $images(button-accent-disabled) \ |
|
disabled $images(button-disabled) \ |
|
{pressed selected} $images(button-rest) \ |
|
{active selected} $images(button-accent-hover) \ |
|
selected $images(button-accent-rest) \ |
|
{pressed !selected} $images(button-accent-rest) \ |
|
active $images(button-hover) \ |
|
] -border 4 -sticky nsew |
|
|
|
|
|
ttk::style configure TRadiobutton -padding 0 |
|
|
|
ttk::style element create Radiobutton.indicator image \ |
|
[list $images(radio-unsel-rest) \ |
|
{selected disabled} $images(radio-disabled) \ |
|
disabled $images(radio-unsel-disabled) \ |
|
{pressed selected} $images(radio-pressed) \ |
|
{active selected} $images(radio-hover) \ |
|
selected $images(radio-rest) \ |
|
{pressed !selected} $images(radio-unsel-pressed) \ |
|
active $images(radio-unsel-hover) \ |
|
] -width 20 -sticky w |
|
|
|
ttk::style configure Menu.TRadiobutton -padding 0 |
|
|
|
ttk::style element create Menu.Radiobutton.indicator image \ |
|
[list $images(radio-unsel-rest) \ |
|
{selected disabled} $images(radio-disabled) \ |
|
disabled $images(radio-unsel-disabled) \ |
|
{pressed selected} $images(radio-pressed) \ |
|
{active selected} $images(radio-hover) \ |
|
selected $images(radio-rest) \ |
|
{pressed !selected} $images(radio-unsel-pressed) \ |
|
active $images(radio-unsel-hover) \ |
|
] -width 20 -sticky w |
|
|
|
|
|
|
|
|
|
|
|
ttk::style element create Horizontal.Scrollbar.trough image $images(scroll-hor-trough) -sticky ew -border 0 |
|
ttk::style element create Horizontal.Scrollbar.thumb image $images(scroll-hor-thumb) -sticky ew -border 3 |
|
|
|
ttk::style element create Horizontal.Scrollbar.rightarrow image $images(scroll-right) -sticky {} -width 13 |
|
ttk::style element create Horizontal.Scrollbar.leftarrow image $images(scroll-left) -sticky {} -width 13 |
|
|
|
ttk::style element create Vertical.Scrollbar.trough image $images(scroll-vert-trough) -sticky ns -border 0 |
|
ttk::style element create Vertical.Scrollbar.thumb image $images(scroll-vert-thumb) -sticky ns -border 3 |
|
|
|
ttk::style element create Vertical.Scrollbar.uparrow image $images(scroll-up) -sticky {} -height 13 |
|
ttk::style element create Vertical.Scrollbar.downarrow image $images(scroll-down) -sticky {} -height 13 |
|
|
|
|
|
ttk::style element create Horizontal.Scale.trough image $images(scale-trough-hor) \ |
|
-border 5 -padding 0 |
|
|
|
ttk::style element create Vertical.Scale.trough image $images(scale-trough-vert) \ |
|
-border 5 -padding 0 |
|
|
|
ttk::style element create Scale.slider \ |
|
image [list $images(scale-thumb-rest) \ |
|
disabled $images(scale-thumb-disabled) \ |
|
pressed $images(scale-thumb-pressed) \ |
|
active $images(scale-thumb-hover) \ |
|
] -sticky {} |
|
|
|
|
|
ttk::style element create Horizontal.Progressbar.trough image $images(progress-trough-hor) \ |
|
-border 1 -sticky ew |
|
|
|
ttk::style element create Horizontal.Progressbar.pbar image $images(progress-pbar-hor) \ |
|
-border 2 -sticky ew |
|
|
|
ttk::style element create Vertical.Progressbar.trough image $images(progress-trough-vert) \ |
|
-border 1 -sticky ns |
|
|
|
ttk::style element create Vertical.Progressbar.pbar image $images(progress-pbar-vert) \ |
|
-border 2 -sticky ns |
|
|
|
|
|
ttk::style configure TEntry -foreground $colors(-fg) |
|
|
|
ttk::style map TEntry -foreground \ |
|
[list disabled #757575 \ |
|
pressed #cfcfcf |
|
] |
|
|
|
ttk::style element create Entry.field \ |
|
image [list $images(entry-rest) \ |
|
{focus hover !invalid} $images(entry-focus) \ |
|
invalid $images(entry-invalid) \ |
|
disabled $images(entry-disabled) \ |
|
{focus !invalid} $images(entry-focus) \ |
|
hover $images(entry-hover) \ |
|
] -border 5 -padding 8 -sticky nsew |
|
|
|
|
|
ttk::style configure TCombobox -foreground $colors(-fg) |
|
|
|
ttk::style map TCombobox -foreground \ |
|
[list disabled #757575 \ |
|
pressed #cfcfcf |
|
] |
|
|
|
ttk::style configure TCombobox -foreground $colors(-fg) |
|
ttk::style configure ComboboxPopdownFrame -borderwidth 3 -relief solid |
|
|
|
ttk::style map TCombobox -selectbackground [list \ |
|
{readonly hover} $colors(-selectbg) \ |
|
{readonly focus} $colors(-selectbg) \ |
|
] -selectforeground [list \ |
|
{readonly hover} $colors(-selectfg) \ |
|
{readonly focus} $colors(-selectfg) \ |
|
] |
|
|
|
ttk::style element create Combobox.field \ |
|
image [list $images(button-rest) \ |
|
{readonly disabled} $images(button-disabled) \ |
|
{readonly pressed} $images(button-pressed) \ |
|
{readonly hover} $images(button-hover) \ |
|
readonly $images(button-rest) \ |
|
invalid $images(entry-invalid) \ |
|
disabled $images(entry-disabled) \ |
|
focus $images(entry-focus) \ |
|
hover $images(button-hover) \ |
|
] -border 5 -padding 8 -sticky nsew |
|
|
|
ttk::style element create Combobox.arrow image $images(arrow-down) -width 35 -sticky {} |
|
|
|
|
|
ttk::style configure TSpinbox -foreground $colors(-fg) |
|
|
|
ttk::style map TSpinbox -foreground \ |
|
[list disabled #757575 \ |
|
pressed #cfcfcf |
|
] |
|
|
|
ttk::style element create Spinbox.field \ |
|
image [list $images(entry-rest) \ |
|
invalid $images(entry-invalid) \ |
|
disabled $images(entry-disabled) \ |
|
focus $images(entry-focus) \ |
|
hover $images(entry-hover) \ |
|
] -border 5 -padding {8 8 54 8} -sticky nsew |
|
|
|
ttk::style element create Spinbox.uparrow image $images(arrow-up) -width 35 -sticky {} |
|
ttk::style element create Spinbox.downarrow image $images(arrow-down) -width 35 -sticky {} |
|
|
|
|
|
ttk::style element create Sizegrip.sizegrip image $images(sizegrip) \ |
|
-sticky nsew |
|
|
|
|
|
ttk::style element create TSeparator.separator image $images(separator) |
|
|
|
|
|
ttk::style element create Card.field image $images(card) \ |
|
-border 10 -padding 4 -sticky nsew |
|
|
|
|
|
ttk::style element create Labelframe.border image $images(card) \ |
|
-border 5 -padding 4 -sticky nsew |
|
|
|
|
|
ttk::style configure TNotebook -padding 1 |
|
|
|
ttk::style element create Notebook.border \ |
|
image $images(notebook-border) -border 5 -padding 5 |
|
|
|
ttk::style element create Notebook.client image $images(notebook) |
|
|
|
ttk::style element create Notebook.tab \ |
|
image [list $images(tab-rest) \ |
|
selected $images(tab-selected) \ |
|
active $images(tab-hover) \ |
|
] -border 13 -padding {16 14 16 6} -height 32 |
|
|
|
|
|
ttk::style element create Treeview.field image $images(card) \ |
|
-border 5 |
|
|
|
ttk::style element create Treeheading.cell \ |
|
image [list $images(treeheading-rest) \ |
|
pressed $images(treeheading-pressed) \ |
|
active $images(treeheading-hover) |
|
] -border 5 -padding 15 -sticky nsew |
|
|
|
ttk::style element create Treeitem.indicator \ |
|
image [list $images(arrow-right) \ |
|
user2 $images(empty) \ |
|
user1 $images(arrow-down) \ |
|
] -width 26 -sticky {} |
|
|
|
ttk::style configure Treeview -background $colors(-bg) -rowheight [expr {[font metrics font -linespace] + 2}] |
|
ttk::style map Treeview \ |
|
-background [list selected #292929] \ |
|
-foreground [list selected $colors(-selectfg)] |
|
|
|
|
|
|
|
ttk::style configure Sash -gripcount 0 |
|
} |
|
} |