diff --git a/lib_v5/fonts/centurygothic/GOTHIC.TTF b/lib_v5/fonts/centurygothic/GOTHIC.TTF new file mode 100644 index 0000000..c60a324 Binary files /dev/null and b/lib_v5/fonts/centurygothic/GOTHIC.TTF differ diff --git a/lib_v5/fonts/centurygothic/GOTHICB.TTF b/lib_v5/fonts/centurygothic/GOTHICB.TTF new file mode 100644 index 0000000..d3577b9 Binary files /dev/null and b/lib_v5/fonts/centurygothic/GOTHICB.TTF differ diff --git a/lib_v5/fonts/centurygothic/GOTHICBI.TTF b/lib_v5/fonts/centurygothic/GOTHICBI.TTF new file mode 100644 index 0000000..d01cefa Binary files /dev/null and b/lib_v5/fonts/centurygothic/GOTHICBI.TTF differ diff --git a/lib_v5/fonts/centurygothic/GOTHICI.TTF b/lib_v5/fonts/centurygothic/GOTHICI.TTF new file mode 100644 index 0000000..777a6d8 Binary files /dev/null and b/lib_v5/fonts/centurygothic/GOTHICI.TTF differ diff --git a/lib_v5/fonts/unispace/unispace.ttf b/lib_v5/fonts/unispace/unispace.ttf new file mode 100644 index 0000000..6151186 Binary files /dev/null and b/lib_v5/fonts/unispace/unispace.ttf differ diff --git a/lib_v5/fonts/unispace/unispace_bd.ttf b/lib_v5/fonts/unispace/unispace_bd.ttf new file mode 100644 index 0000000..5312426 Binary files /dev/null and b/lib_v5/fonts/unispace/unispace_bd.ttf differ diff --git a/lib_v5/fonts/unispace/unispace_bd_it.ttf b/lib_v5/fonts/unispace/unispace_bd_it.ttf new file mode 100644 index 0000000..8f14509 Binary files /dev/null and b/lib_v5/fonts/unispace/unispace_bd_it.ttf differ diff --git a/lib_v5/fonts/unispace/unispace_it.ttf b/lib_v5/fonts/unispace/unispace_it.ttf new file mode 100644 index 0000000..be4b6e8 Binary files /dev/null and b/lib_v5/fonts/unispace/unispace_it.ttf differ diff --git a/lib_v5/layers.py b/lib_v5/layers.py new file mode 100644 index 0000000..e48d70b --- /dev/null +++ b/lib_v5/layers.py @@ -0,0 +1,116 @@ +import torch +from torch import nn +import torch.nn.functional as F + +from lib_v5 import spec_utils + + +class Conv2DBNActiv(nn.Module): + + def __init__(self, nin, nout, ksize=3, stride=1, pad=1, dilation=1, activ=nn.ReLU): + super(Conv2DBNActiv, self).__init__() + self.conv = nn.Sequential( + nn.Conv2d( + nin, nout, + kernel_size=ksize, + stride=stride, + padding=pad, + dilation=dilation, + bias=False), + nn.BatchNorm2d(nout), + activ() + ) + + def __call__(self, x): + return self.conv(x) + + +class SeperableConv2DBNActiv(nn.Module): + + def __init__(self, nin, nout, ksize=3, stride=1, pad=1, dilation=1, activ=nn.ReLU): + super(SeperableConv2DBNActiv, self).__init__() + self.conv = nn.Sequential( + nn.Conv2d( + nin, nin, + kernel_size=ksize, + stride=stride, + padding=pad, + dilation=dilation, + groups=nin, + bias=False), + nn.Conv2d( + nin, nout, + kernel_size=1, + bias=False), + nn.BatchNorm2d(nout), + activ() + ) + + def __call__(self, x): + return self.conv(x) + + +class Encoder(nn.Module): + + def __init__(self, nin, nout, ksize=3, stride=1, pad=1, activ=nn.LeakyReLU): + super(Encoder, self).__init__() + self.conv1 = Conv2DBNActiv(nin, nout, ksize, 1, pad, activ=activ) + self.conv2 = Conv2DBNActiv(nout, nout, ksize, stride, pad, activ=activ) + + def __call__(self, x): + skip = self.conv1(x) + h = self.conv2(skip) + + return h, skip + + +class Decoder(nn.Module): + + def __init__(self, nin, nout, ksize=3, stride=1, pad=1, activ=nn.ReLU, dropout=False): + super(Decoder, self).__init__() + self.conv = Conv2DBNActiv(nin, nout, ksize, 1, pad, activ=activ) + self.dropout = nn.Dropout2d(0.1) if dropout else None + + def __call__(self, x, skip=None): + x = F.interpolate(x, scale_factor=2, mode='bilinear', align_corners=True) + if skip is not None: + skip = spec_utils.crop_center(skip, x) + x = torch.cat([x, skip], dim=1) + h = self.conv(x) + + if self.dropout is not None: + h = self.dropout(h) + + return h + + +class ASPPModule(nn.Module): + + def __init__(self, nin, nout, dilations=(4, 8, 16), activ=nn.ReLU): + super(ASPPModule, self).__init__() + self.conv1 = nn.Sequential( + nn.AdaptiveAvgPool2d((1, None)), + Conv2DBNActiv(nin, nin, 1, 1, 0, activ=activ) + ) + self.conv2 = Conv2DBNActiv(nin, nin, 1, 1, 0, activ=activ) + self.conv3 = SeperableConv2DBNActiv( + nin, nin, 3, 1, dilations[0], dilations[0], activ=activ) + self.conv4 = SeperableConv2DBNActiv( + nin, nin, 3, 1, dilations[1], dilations[1], activ=activ) + self.conv5 = SeperableConv2DBNActiv( + nin, nin, 3, 1, dilations[2], dilations[2], activ=activ) + self.bottleneck = nn.Sequential( + Conv2DBNActiv(nin * 5, nout, 1, 1, 0, activ=activ), + nn.Dropout2d(0.1) + ) + + def forward(self, x): + _, _, h, w = x.size() + feat1 = F.interpolate(self.conv1(x), size=(h, w), mode='bilinear', align_corners=True) + feat2 = self.conv2(x) + feat3 = self.conv3(x) + feat4 = self.conv4(x) + feat5 = self.conv5(x) + out = torch.cat((feat1, feat2, feat3, feat4, feat5), dim=1) + bottle = self.bottleneck(out) + return bottle diff --git a/lib_v5/layers_33966KB.py b/lib_v5/layers_33966KB.py new file mode 100644 index 0000000..d410a21 --- /dev/null +++ b/lib_v5/layers_33966KB.py @@ -0,0 +1,122 @@ +import torch +from torch import nn +import torch.nn.functional as F + +from lib_v5 import spec_utils + + +class Conv2DBNActiv(nn.Module): + + def __init__(self, nin, nout, ksize=3, stride=1, pad=1, dilation=1, activ=nn.ReLU): + super(Conv2DBNActiv, self).__init__() + self.conv = nn.Sequential( + nn.Conv2d( + nin, nout, + kernel_size=ksize, + stride=stride, + padding=pad, + dilation=dilation, + bias=False), + nn.BatchNorm2d(nout), + activ() + ) + + def __call__(self, x): + return self.conv(x) + + +class SeperableConv2DBNActiv(nn.Module): + + def __init__(self, nin, nout, ksize=3, stride=1, pad=1, dilation=1, activ=nn.ReLU): + super(SeperableConv2DBNActiv, self).__init__() + self.conv = nn.Sequential( + nn.Conv2d( + nin, nin, + kernel_size=ksize, + stride=stride, + padding=pad, + dilation=dilation, + groups=nin, + bias=False), + nn.Conv2d( + nin, nout, + kernel_size=1, + bias=False), + nn.BatchNorm2d(nout), + activ() + ) + + def __call__(self, x): + return self.conv(x) + + +class Encoder(nn.Module): + + def __init__(self, nin, nout, ksize=3, stride=1, pad=1, activ=nn.LeakyReLU): + super(Encoder, self).__init__() + self.conv1 = Conv2DBNActiv(nin, nout, ksize, 1, pad, activ=activ) + self.conv2 = Conv2DBNActiv(nout, nout, ksize, stride, pad, activ=activ) + + def __call__(self, x): + skip = self.conv1(x) + h = self.conv2(skip) + + return h, skip + + +class Decoder(nn.Module): + + def __init__(self, nin, nout, ksize=3, stride=1, pad=1, activ=nn.ReLU, dropout=False): + super(Decoder, self).__init__() + self.conv = Conv2DBNActiv(nin, nout, ksize, 1, pad, activ=activ) + self.dropout = nn.Dropout2d(0.1) if dropout else None + + def __call__(self, x, skip=None): + x = F.interpolate(x, scale_factor=2, mode='bilinear', align_corners=True) + if skip is not None: + skip = spec_utils.crop_center(skip, x) + x = torch.cat([x, skip], dim=1) + h = self.conv(x) + + if self.dropout is not None: + h = self.dropout(h) + + return h + + +class ASPPModule(nn.Module): + + def __init__(self, nin, nout, dilations=(4, 8, 16, 32, 64), activ=nn.ReLU): + super(ASPPModule, self).__init__() + self.conv1 = nn.Sequential( + nn.AdaptiveAvgPool2d((1, None)), + Conv2DBNActiv(nin, nin, 1, 1, 0, activ=activ) + ) + self.conv2 = Conv2DBNActiv(nin, nin, 1, 1, 0, activ=activ) + self.conv3 = SeperableConv2DBNActiv( + nin, nin, 3, 1, dilations[0], dilations[0], activ=activ) + self.conv4 = SeperableConv2DBNActiv( + nin, nin, 3, 1, dilations[1], dilations[1], activ=activ) + self.conv5 = SeperableConv2DBNActiv( + nin, nin, 3, 1, dilations[2], dilations[2], activ=activ) + self.conv6 = SeperableConv2DBNActiv( + nin, nin, 3, 1, dilations[2], dilations[2], activ=activ) + self.conv7 = SeperableConv2DBNActiv( + nin, nin, 3, 1, dilations[2], dilations[2], activ=activ) + self.bottleneck = nn.Sequential( + Conv2DBNActiv(nin * 7, nout, 1, 1, 0, activ=activ), + nn.Dropout2d(0.1) + ) + + def forward(self, x): + _, _, h, w = x.size() + feat1 = F.interpolate(self.conv1(x), size=(h, w), mode='bilinear', align_corners=True) + feat2 = self.conv2(x) + feat3 = self.conv3(x) + feat4 = self.conv4(x) + feat5 = self.conv5(x) + feat6 = self.conv6(x) + feat7 = self.conv7(x) + out = torch.cat((feat1, feat2, feat3, feat4, feat5, feat6, feat7), dim=1) + bottle = self.bottleneck(out) + return bottle diff --git a/lib_v5/layers_537227KB.py b/lib_v5/layers_537227KB.py new file mode 100644 index 0000000..d410a21 --- /dev/null +++ b/lib_v5/layers_537227KB.py @@ -0,0 +1,122 @@ +import torch +from torch import nn +import torch.nn.functional as F + +from lib_v5 import spec_utils + + +class Conv2DBNActiv(nn.Module): + + def __init__(self, nin, nout, ksize=3, stride=1, pad=1, dilation=1, activ=nn.ReLU): + super(Conv2DBNActiv, self).__init__() + self.conv = nn.Sequential( + nn.Conv2d( + nin, nout, + kernel_size=ksize, + stride=stride, + padding=pad, + dilation=dilation, + bias=False), + nn.BatchNorm2d(nout), + activ() + ) + + def __call__(self, x): + return self.conv(x) + + +class SeperableConv2DBNActiv(nn.Module): + + def __init__(self, nin, nout, ksize=3, stride=1, pad=1, dilation=1, activ=nn.ReLU): + super(SeperableConv2DBNActiv, self).__init__() + self.conv = nn.Sequential( + nn.Conv2d( + nin, nin, + kernel_size=ksize, + stride=stride, + padding=pad, + dilation=dilation, + groups=nin, + bias=False), + nn.Conv2d( + nin, nout, + kernel_size=1, + bias=False), + nn.BatchNorm2d(nout), + activ() + ) + + def __call__(self, x): + return self.conv(x) + + +class Encoder(nn.Module): + + def __init__(self, nin, nout, ksize=3, stride=1, pad=1, activ=nn.LeakyReLU): + super(Encoder, self).__init__() + self.conv1 = Conv2DBNActiv(nin, nout, ksize, 1, pad, activ=activ) + self.conv2 = Conv2DBNActiv(nout, nout, ksize, stride, pad, activ=activ) + + def __call__(self, x): + skip = self.conv1(x) + h = self.conv2(skip) + + return h, skip + + +class Decoder(nn.Module): + + def __init__(self, nin, nout, ksize=3, stride=1, pad=1, activ=nn.ReLU, dropout=False): + super(Decoder, self).__init__() + self.conv = Conv2DBNActiv(nin, nout, ksize, 1, pad, activ=activ) + self.dropout = nn.Dropout2d(0.1) if dropout else None + + def __call__(self, x, skip=None): + x = F.interpolate(x, scale_factor=2, mode='bilinear', align_corners=True) + if skip is not None: + skip = spec_utils.crop_center(skip, x) + x = torch.cat([x, skip], dim=1) + h = self.conv(x) + + if self.dropout is not None: + h = self.dropout(h) + + return h + + +class ASPPModule(nn.Module): + + def __init__(self, nin, nout, dilations=(4, 8, 16, 32, 64), activ=nn.ReLU): + super(ASPPModule, self).__init__() + self.conv1 = nn.Sequential( + nn.AdaptiveAvgPool2d((1, None)), + Conv2DBNActiv(nin, nin, 1, 1, 0, activ=activ) + ) + self.conv2 = Conv2DBNActiv(nin, nin, 1, 1, 0, activ=activ) + self.conv3 = SeperableConv2DBNActiv( + nin, nin, 3, 1, dilations[0], dilations[0], activ=activ) + self.conv4 = SeperableConv2DBNActiv( + nin, nin, 3, 1, dilations[1], dilations[1], activ=activ) + self.conv5 = SeperableConv2DBNActiv( + nin, nin, 3, 1, dilations[2], dilations[2], activ=activ) + self.conv6 = SeperableConv2DBNActiv( + nin, nin, 3, 1, dilations[2], dilations[2], activ=activ) + self.conv7 = SeperableConv2DBNActiv( + nin, nin, 3, 1, dilations[2], dilations[2], activ=activ) + self.bottleneck = nn.Sequential( + Conv2DBNActiv(nin * 7, nout, 1, 1, 0, activ=activ), + nn.Dropout2d(0.1) + ) + + def forward(self, x): + _, _, h, w = x.size() + feat1 = F.interpolate(self.conv1(x), size=(h, w), mode='bilinear', align_corners=True) + feat2 = self.conv2(x) + feat3 = self.conv3(x) + feat4 = self.conv4(x) + feat5 = self.conv5(x) + feat6 = self.conv6(x) + feat7 = self.conv7(x) + out = torch.cat((feat1, feat2, feat3, feat4, feat5, feat6, feat7), dim=1) + bottle = self.bottleneck(out) + return bottle diff --git a/lib_v5/sv_ttk/__init__.py b/lib_v5/sv_ttk/__init__.py new file mode 100644 index 0000000..b265472 --- /dev/null +++ b/lib_v5/sv_ttk/__init__.py @@ -0,0 +1,61 @@ +from pathlib import Path + +inited = False +root = None + + +def init(func): + def wrapper(*args, **kwargs): + global inited + global root + + if not inited: + from tkinter import _default_root + + path = (Path(__file__).parent / "sun-valley.tcl").resolve() + + try: + _default_root.tk.call("source", str(path)) + except AttributeError: + raise RuntimeError( + "can't set theme. " + "Tk is not initialized. " + "Please first create a tkinter.Tk instance, then set the theme." + ) from None + else: + inited = True + root = _default_root + + return func(*args, **kwargs) + + return wrapper + + +@init +def set_theme(theme): + if theme not in {"dark", "light"}: + raise RuntimeError(f"not a valid theme name: {theme}") + + root.tk.call("set_theme", theme) + + +@init +def get_theme(): + theme = root.tk.call("ttk::style", "theme", "use") + + try: + return {"sun-valley-dark": "dark", "sun-valley-light": "light"}[theme] + except KeyError: + return theme + + +@init +def toggle_theme(): + if get_theme() == "dark": + use_light_theme() + else: + use_dark_theme() + + +use_dark_theme = lambda: set_theme("dark") +use_light_theme = lambda: set_theme("light") diff --git a/lib_v5/sv_ttk/__pycache__/__init__.cpython-38.pyc b/lib_v5/sv_ttk/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..471fa89 Binary files /dev/null and b/lib_v5/sv_ttk/__pycache__/__init__.cpython-38.pyc differ diff --git a/lib_v5/sv_ttk/__pycache__/__init__.cpython-39.pyc b/lib_v5/sv_ttk/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000..477c027 Binary files /dev/null and b/lib_v5/sv_ttk/__pycache__/__init__.cpython-39.pyc differ diff --git a/lib_v5/sv_ttk/sun-valley.tcl b/lib_v5/sv_ttk/sun-valley.tcl new file mode 100644 index 0000000..7baac78 --- /dev/null +++ b/lib_v5/sv_ttk/sun-valley.tcl @@ -0,0 +1,46 @@ +source [file join [file dirname [info script]] theme dark.tcl] + +option add *tearOff 0 + +proc set_theme {mode} { + if {$mode == "dark"} { + ttk::style theme use "sun-valley-dark" + + array set colors { + -fg "#F6F6F7" + -bg "#0e0e0f" + -disabledfg "#F6F6F7" + -selectfg "#F6F6F7" + -selectbg "#003b50" + } + + ttk::style configure . \ + -background $colors(-bg) \ + -foreground $colors(-fg) \ + -troughcolor $colors(-bg) \ + -focuscolor $colors(-selectbg) \ + -selectbackground $colors(-selectbg) \ + -selectforeground $colors(-selectfg) \ + -insertwidth 0 \ + -insertcolor $colors(-fg) \ + -fieldbackground $colors(-selectbg) \ + -font {"Century Gothic" 10} \ + -borderwidth 0 \ + -relief flat + + tk_setPalette \ + background [ttk::style lookup . -background] \ + foreground [ttk::style lookup . -foreground] \ + highlightColor [ttk::style lookup . -focuscolor] \ + selectBackground [ttk::style lookup . -selectbackground] \ + selectForeground [ttk::style lookup . -selectforeground] \ + activeBackground [ttk::style lookup . -selectbackground] \ + activeForeground [ttk::style lookup . -selectforeground] + + ttk::style map . -foreground [list disabled $colors(-disabledfg)] + + option add *font [ttk::style lookup . -font] + option add *Menu.selectcolor $colors(-fg) + option add *Menu.background #0e0e0f + } +} diff --git a/lib_v5/sv_ttk/theme/dark.tcl b/lib_v5/sv_ttk/theme/dark.tcl new file mode 100644 index 0000000..33a815d --- /dev/null +++ b/lib_v5/sv_ttk/theme/dark.tcl @@ -0,0 +1,534 @@ +# Copyright © 2021 rdbende + +# A stunning dark theme for ttk based on Microsoft's Sun Valley visual style + +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 {} + } + } + + # Button + 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 + + # Toolbutton + 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 + + # Menubutton + 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 {} + + # OptionMenu + ttk::style configure TOptionMenu -padding {8 4 0 4} + + 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 {} + + # Accent.TButton + 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 + + # Titlebar.TButton + 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 + + # Close.Titlebar.TButton + 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 + + # Checkbutton + ttk::style configure TCheckbutton -padding 4 + + 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 + + # Switch.TCheckbutton + 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 + + # Toggle.TButton + 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 + + # Radiobutton + 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 + + # Scrollbar + ttk::style element create Horizontal.Scrollbar.trough image $images(scroll-hor-trough) -sticky ew -border 6 + 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 12 + ttk::style element create Horizontal.Scrollbar.leftarrow image $images(scroll-left) -sticky {} -width 12 + + ttk::style element create Vertical.Scrollbar.trough image $images(scroll-vert-trough) -sticky ns -border 6 + 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 12 + ttk::style element create Vertical.Scrollbar.downarrow image $images(scroll-down) -sticky {} -height 12 + + # Scale + 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 {} + + # Progressbar + 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 + + # Entry + 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 + + # Combobox + ttk::style configure TCombobox -foreground $colors(-fg) + + ttk::style map TCombobox -foreground \ + [list disabled #757575 \ + pressed #cfcfcf + ] + + ttk::style configure ComboboxPopdownFrame -borderwidth 0 -flat 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(entry-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(entry-hover) \ + ] -border 0 -padding {8 8 28 8} + + ttk::style element create Combobox.arrow image $images(arrow-down) -width 35 -sticky {} + + # Spinbox + 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 {} + + # Sizegrip + ttk::style element create Sizegrip.sizegrip image $images(sizegrip) \ + -sticky nsew + + # Separator + ttk::style element create TSeparator.separator image $images(separator) + + # Card + ttk::style element create Card.field image $images(card) \ + -border 10 -padding 4 -sticky nsew + + # Labelframe + ttk::style element create Labelframe.border image $images(card) \ + -border 5 -padding 4 -sticky nsew + + # Notebook + 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 + + # Treeview + 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)] + + # Panedwindow + # Insane hack to remove clam's ugly sash + ttk::style configure Sash -gripcount 0 + } +} \ No newline at end of file diff --git a/lib_v5/sv_ttk/theme/dark/arrow-down.png b/lib_v5/sv_ttk/theme/dark/arrow-down.png new file mode 100644 index 0000000..2b0a9d8 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/arrow-down.png differ diff --git a/lib_v5/sv_ttk/theme/dark/arrow-right.png b/lib_v5/sv_ttk/theme/dark/arrow-right.png new file mode 100644 index 0000000..2638d88 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/arrow-right.png differ diff --git a/lib_v5/sv_ttk/theme/dark/arrow-up.png b/lib_v5/sv_ttk/theme/dark/arrow-up.png new file mode 100644 index 0000000..f935a0d Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/arrow-up.png differ diff --git a/lib_v5/sv_ttk/theme/dark/button-accent-disabled.png b/lib_v5/sv_ttk/theme/dark/button-accent-disabled.png new file mode 100644 index 0000000..bf7bd9b Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/button-accent-disabled.png differ diff --git a/lib_v5/sv_ttk/theme/dark/button-accent-hover.png b/lib_v5/sv_ttk/theme/dark/button-accent-hover.png new file mode 100644 index 0000000..8aea9dd Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/button-accent-hover.png differ diff --git a/lib_v5/sv_ttk/theme/dark/button-accent-pressed.png b/lib_v5/sv_ttk/theme/dark/button-accent-pressed.png new file mode 100644 index 0000000..edc1114 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/button-accent-pressed.png differ diff --git a/lib_v5/sv_ttk/theme/dark/button-accent-rest.png b/lib_v5/sv_ttk/theme/dark/button-accent-rest.png new file mode 100644 index 0000000..75e64f8 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/button-accent-rest.png differ diff --git a/lib_v5/sv_ttk/theme/dark/button-close-hover.png b/lib_v5/sv_ttk/theme/dark/button-close-hover.png new file mode 100644 index 0000000..6fc0c00 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/button-close-hover.png differ diff --git a/lib_v5/sv_ttk/theme/dark/button-close-pressed.png b/lib_v5/sv_ttk/theme/dark/button-close-pressed.png new file mode 100644 index 0000000..6023dc1 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/button-close-pressed.png differ diff --git a/lib_v5/sv_ttk/theme/dark/button-disabled.png b/lib_v5/sv_ttk/theme/dark/button-disabled.png new file mode 100644 index 0000000..43add5f Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/button-disabled.png differ diff --git a/lib_v5/sv_ttk/theme/dark/button-hover.png b/lib_v5/sv_ttk/theme/dark/button-hover.png new file mode 100644 index 0000000..2041375 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/button-hover.png differ diff --git a/lib_v5/sv_ttk/theme/dark/button-pressed.png b/lib_v5/sv_ttk/theme/dark/button-pressed.png new file mode 100644 index 0000000..4270149 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/button-pressed.png differ diff --git a/lib_v5/sv_ttk/theme/dark/button-rest.png b/lib_v5/sv_ttk/theme/dark/button-rest.png new file mode 100644 index 0000000..128f5f6 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/button-rest.png differ diff --git a/lib_v5/sv_ttk/theme/dark/button-rest_alternative!!.png b/lib_v5/sv_ttk/theme/dark/button-rest_alternative!!.png new file mode 100644 index 0000000..a2ac951 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/button-rest_alternative!!.png differ diff --git a/lib_v5/sv_ttk/theme/dark/button-titlebar-hover.png b/lib_v5/sv_ttk/theme/dark/button-titlebar-hover.png new file mode 100644 index 0000000..fcb3751 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/button-titlebar-hover.png differ diff --git a/lib_v5/sv_ttk/theme/dark/button-titlebar-pressed.png b/lib_v5/sv_ttk/theme/dark/button-titlebar-pressed.png new file mode 100644 index 0000000..2ed0623 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/button-titlebar-pressed.png differ diff --git a/lib_v5/sv_ttk/theme/dark/card.png b/lib_v5/sv_ttk/theme/dark/card.png new file mode 100644 index 0000000..eaac11c Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/card.png differ diff --git a/lib_v5/sv_ttk/theme/dark/check-disabled.png b/lib_v5/sv_ttk/theme/dark/check-disabled.png new file mode 100644 index 0000000..f766eba Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/check-disabled.png differ diff --git a/lib_v5/sv_ttk/theme/dark/check-hover.png b/lib_v5/sv_ttk/theme/dark/check-hover.png new file mode 100644 index 0000000..59358d4 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/check-hover.png differ diff --git a/lib_v5/sv_ttk/theme/dark/check-pressed.png b/lib_v5/sv_ttk/theme/dark/check-pressed.png new file mode 100644 index 0000000..02ee6af Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/check-pressed.png differ diff --git a/lib_v5/sv_ttk/theme/dark/check-rest.png b/lib_v5/sv_ttk/theme/dark/check-rest.png new file mode 100644 index 0000000..aa8dc67 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/check-rest.png differ diff --git a/lib_v5/sv_ttk/theme/dark/check-tri-disabled.png b/lib_v5/sv_ttk/theme/dark/check-tri-disabled.png new file mode 100644 index 0000000..a9d31c7 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/check-tri-disabled.png differ diff --git a/lib_v5/sv_ttk/theme/dark/check-tri-hover.png b/lib_v5/sv_ttk/theme/dark/check-tri-hover.png new file mode 100644 index 0000000..ed218a0 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/check-tri-hover.png differ diff --git a/lib_v5/sv_ttk/theme/dark/check-tri-pressed.png b/lib_v5/sv_ttk/theme/dark/check-tri-pressed.png new file mode 100644 index 0000000..68d7a99 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/check-tri-pressed.png differ diff --git a/lib_v5/sv_ttk/theme/dark/check-tri-rest.png b/lib_v5/sv_ttk/theme/dark/check-tri-rest.png new file mode 100644 index 0000000..26edcdb Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/check-tri-rest.png differ diff --git a/lib_v5/sv_ttk/theme/dark/check-unsel-disabled.png b/lib_v5/sv_ttk/theme/dark/check-unsel-disabled.png new file mode 100644 index 0000000..9f4be22 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/check-unsel-disabled.png differ diff --git a/lib_v5/sv_ttk/theme/dark/check-unsel-hover.png b/lib_v5/sv_ttk/theme/dark/check-unsel-hover.png new file mode 100644 index 0000000..0081141 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/check-unsel-hover.png differ diff --git a/lib_v5/sv_ttk/theme/dark/check-unsel-pressed.png b/lib_v5/sv_ttk/theme/dark/check-unsel-pressed.png new file mode 100644 index 0000000..26767b8 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/check-unsel-pressed.png differ diff --git a/lib_v5/sv_ttk/theme/dark/check-unsel-rest.png b/lib_v5/sv_ttk/theme/dark/check-unsel-rest.png new file mode 100644 index 0000000..55eabc6 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/check-unsel-rest.png differ diff --git a/lib_v5/sv_ttk/theme/dark/empty.png b/lib_v5/sv_ttk/theme/dark/empty.png new file mode 100644 index 0000000..2218363 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/empty.png differ diff --git a/lib_v5/sv_ttk/theme/dark/entry-disabled.png b/lib_v5/sv_ttk/theme/dark/entry-disabled.png new file mode 100644 index 0000000..43add5f Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/entry-disabled.png differ diff --git a/lib_v5/sv_ttk/theme/dark/entry-focus.png b/lib_v5/sv_ttk/theme/dark/entry-focus.png new file mode 100644 index 0000000..58999e4 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/entry-focus.png differ diff --git a/lib_v5/sv_ttk/theme/dark/entry-hover.png b/lib_v5/sv_ttk/theme/dark/entry-hover.png new file mode 100644 index 0000000..6b93830 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/entry-hover.png differ diff --git a/lib_v5/sv_ttk/theme/dark/entry-invalid.png b/lib_v5/sv_ttk/theme/dark/entry-invalid.png new file mode 100644 index 0000000..7304b24 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/entry-invalid.png differ diff --git a/lib_v5/sv_ttk/theme/dark/entry-rest.png b/lib_v5/sv_ttk/theme/dark/entry-rest.png new file mode 100644 index 0000000..e876752 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/entry-rest.png differ diff --git a/lib_v5/sv_ttk/theme/dark/notebook-border.png b/lib_v5/sv_ttk/theme/dark/notebook-border.png new file mode 100644 index 0000000..0827a07 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/notebook-border.png differ diff --git a/lib_v5/sv_ttk/theme/dark/notebook.png b/lib_v5/sv_ttk/theme/dark/notebook.png new file mode 100644 index 0000000..15c05f8 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/notebook.png differ diff --git a/lib_v5/sv_ttk/theme/dark/progress-pbar-hor.png b/lib_v5/sv_ttk/theme/dark/progress-pbar-hor.png new file mode 100644 index 0000000..f8035f8 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/progress-pbar-hor.png differ diff --git a/lib_v5/sv_ttk/theme/dark/progress-pbar-vert.png b/lib_v5/sv_ttk/theme/dark/progress-pbar-vert.png new file mode 100644 index 0000000..3d0cb29 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/progress-pbar-vert.png differ diff --git a/lib_v5/sv_ttk/theme/dark/progress-trough-hor.png b/lib_v5/sv_ttk/theme/dark/progress-trough-hor.png new file mode 100644 index 0000000..9fe4807 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/progress-trough-hor.png differ diff --git a/lib_v5/sv_ttk/theme/dark/progress-trough-vert.png b/lib_v5/sv_ttk/theme/dark/progress-trough-vert.png new file mode 100644 index 0000000..22a8c1c Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/progress-trough-vert.png differ diff --git a/lib_v5/sv_ttk/theme/dark/radio-disabled.png b/lib_v5/sv_ttk/theme/dark/radio-disabled.png new file mode 100644 index 0000000..965136d Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/radio-disabled.png differ diff --git a/lib_v5/sv_ttk/theme/dark/radio-hover.png b/lib_v5/sv_ttk/theme/dark/radio-hover.png new file mode 100644 index 0000000..9823345 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/radio-hover.png differ diff --git a/lib_v5/sv_ttk/theme/dark/radio-pressed.png b/lib_v5/sv_ttk/theme/dark/radio-pressed.png new file mode 100644 index 0000000..ed89533 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/radio-pressed.png differ diff --git a/lib_v5/sv_ttk/theme/dark/radio-rest.png b/lib_v5/sv_ttk/theme/dark/radio-rest.png new file mode 100644 index 0000000..ef891d1 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/radio-rest.png differ diff --git a/lib_v5/sv_ttk/theme/dark/radio-unsel-disabled.png b/lib_v5/sv_ttk/theme/dark/radio-unsel-disabled.png new file mode 100644 index 0000000..ec7dd91 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/radio-unsel-disabled.png differ diff --git a/lib_v5/sv_ttk/theme/dark/radio-unsel-hover.png b/lib_v5/sv_ttk/theme/dark/radio-unsel-hover.png new file mode 100644 index 0000000..7feda0b Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/radio-unsel-hover.png differ diff --git a/lib_v5/sv_ttk/theme/dark/radio-unsel-pressed.png b/lib_v5/sv_ttk/theme/dark/radio-unsel-pressed.png new file mode 100644 index 0000000..7a76749 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/radio-unsel-pressed.png differ diff --git a/lib_v5/sv_ttk/theme/dark/radio-unsel-rest.png b/lib_v5/sv_ttk/theme/dark/radio-unsel-rest.png new file mode 100644 index 0000000..f311983 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/radio-unsel-rest.png differ diff --git a/lib_v5/sv_ttk/theme/dark/scale-thumb-disabled.png b/lib_v5/sv_ttk/theme/dark/scale-thumb-disabled.png new file mode 100644 index 0000000..ba77f1d Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/scale-thumb-disabled.png differ diff --git a/lib_v5/sv_ttk/theme/dark/scale-thumb-hover.png b/lib_v5/sv_ttk/theme/dark/scale-thumb-hover.png new file mode 100644 index 0000000..8398922 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/scale-thumb-hover.png differ diff --git a/lib_v5/sv_ttk/theme/dark/scale-thumb-pressed.png b/lib_v5/sv_ttk/theme/dark/scale-thumb-pressed.png new file mode 100644 index 0000000..70029b3 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/scale-thumb-pressed.png differ diff --git a/lib_v5/sv_ttk/theme/dark/scale-thumb-rest.png b/lib_v5/sv_ttk/theme/dark/scale-thumb-rest.png new file mode 100644 index 0000000..f6571b9 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/scale-thumb-rest.png differ diff --git a/lib_v5/sv_ttk/theme/dark/scale-trough-hor.png b/lib_v5/sv_ttk/theme/dark/scale-trough-hor.png new file mode 100644 index 0000000..7fa2bf4 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/scale-trough-hor.png differ diff --git a/lib_v5/sv_ttk/theme/dark/scale-trough-vert.png b/lib_v5/sv_ttk/theme/dark/scale-trough-vert.png new file mode 100644 index 0000000..205fed8 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/scale-trough-vert.png differ diff --git a/lib_v5/sv_ttk/theme/dark/scroll-down.png b/lib_v5/sv_ttk/theme/dark/scroll-down.png new file mode 100644 index 0000000..4c0e24f Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/scroll-down.png differ diff --git a/lib_v5/sv_ttk/theme/dark/scroll-hor-thumb.png b/lib_v5/sv_ttk/theme/dark/scroll-hor-thumb.png new file mode 100644 index 0000000..795a88a Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/scroll-hor-thumb.png differ diff --git a/lib_v5/sv_ttk/theme/dark/scroll-hor-trough.png b/lib_v5/sv_ttk/theme/dark/scroll-hor-trough.png new file mode 100644 index 0000000..89d0403 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/scroll-hor-trough.png differ diff --git a/lib_v5/sv_ttk/theme/dark/scroll-left.png b/lib_v5/sv_ttk/theme/dark/scroll-left.png new file mode 100644 index 0000000..f43538b Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/scroll-left.png differ diff --git a/lib_v5/sv_ttk/theme/dark/scroll-right.png b/lib_v5/sv_ttk/theme/dark/scroll-right.png new file mode 100644 index 0000000..a56511f Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/scroll-right.png differ diff --git a/lib_v5/sv_ttk/theme/dark/scroll-up.png b/lib_v5/sv_ttk/theme/dark/scroll-up.png new file mode 100644 index 0000000..7ddba7f Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/scroll-up.png differ diff --git a/lib_v5/sv_ttk/theme/dark/scroll-vert-thumb.png b/lib_v5/sv_ttk/theme/dark/scroll-vert-thumb.png new file mode 100644 index 0000000..572f33d Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/scroll-vert-thumb.png differ diff --git a/lib_v5/sv_ttk/theme/dark/scroll-vert-trough.png b/lib_v5/sv_ttk/theme/dark/scroll-vert-trough.png new file mode 100644 index 0000000..c947ed1 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/scroll-vert-trough.png differ diff --git a/lib_v5/sv_ttk/theme/dark/separator.png b/lib_v5/sv_ttk/theme/dark/separator.png new file mode 100644 index 0000000..6e01f55 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/separator.png differ diff --git a/lib_v5/sv_ttk/theme/dark/sizegrip.png b/lib_v5/sv_ttk/theme/dark/sizegrip.png new file mode 100644 index 0000000..7080c04 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/sizegrip.png differ diff --git a/lib_v5/sv_ttk/theme/dark/switch-off-disabled.png b/lib_v5/sv_ttk/theme/dark/switch-off-disabled.png new file mode 100644 index 0000000..4032c61 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/switch-off-disabled.png differ diff --git a/lib_v5/sv_ttk/theme/dark/switch-off-hover.png b/lib_v5/sv_ttk/theme/dark/switch-off-hover.png new file mode 100644 index 0000000..5a136bd Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/switch-off-hover.png differ diff --git a/lib_v5/sv_ttk/theme/dark/switch-off-pressed.png b/lib_v5/sv_ttk/theme/dark/switch-off-pressed.png new file mode 100644 index 0000000..040e2ea Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/switch-off-pressed.png differ diff --git a/lib_v5/sv_ttk/theme/dark/switch-off-rest.png b/lib_v5/sv_ttk/theme/dark/switch-off-rest.png new file mode 100644 index 0000000..6c31bb2 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/switch-off-rest.png differ diff --git a/lib_v5/sv_ttk/theme/dark/switch-on-disabled.png b/lib_v5/sv_ttk/theme/dark/switch-on-disabled.png new file mode 100644 index 0000000..c0d67c5 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/switch-on-disabled.png differ diff --git a/lib_v5/sv_ttk/theme/dark/switch-on-hover.png b/lib_v5/sv_ttk/theme/dark/switch-on-hover.png new file mode 100644 index 0000000..fd4de94 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/switch-on-hover.png differ diff --git a/lib_v5/sv_ttk/theme/dark/switch-on-pressed.png b/lib_v5/sv_ttk/theme/dark/switch-on-pressed.png new file mode 100644 index 0000000..00e87c6 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/switch-on-pressed.png differ diff --git a/lib_v5/sv_ttk/theme/dark/switch-on-rest.png b/lib_v5/sv_ttk/theme/dark/switch-on-rest.png new file mode 100644 index 0000000..52a19ea Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/switch-on-rest.png differ diff --git a/lib_v5/sv_ttk/theme/dark/tab-hover.png b/lib_v5/sv_ttk/theme/dark/tab-hover.png new file mode 100644 index 0000000..43a113b Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/tab-hover.png differ diff --git a/lib_v5/sv_ttk/theme/dark/tab-rest.png b/lib_v5/sv_ttk/theme/dark/tab-rest.png new file mode 100644 index 0000000..d873b66 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/tab-rest.png differ diff --git a/lib_v5/sv_ttk/theme/dark/tab-selected.png b/lib_v5/sv_ttk/theme/dark/tab-selected.png new file mode 100644 index 0000000..eb7b211 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/tab-selected.png differ diff --git a/lib_v5/sv_ttk/theme/dark/treeheading-hover.png b/lib_v5/sv_ttk/theme/dark/treeheading-hover.png new file mode 100644 index 0000000..beaaf13 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/treeheading-hover.png differ diff --git a/lib_v5/sv_ttk/theme/dark/treeheading-pressed.png b/lib_v5/sv_ttk/theme/dark/treeheading-pressed.png new file mode 100644 index 0000000..9cd311d Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/treeheading-pressed.png differ diff --git a/lib_v5/sv_ttk/theme/dark/treeheading-rest.png b/lib_v5/sv_ttk/theme/dark/treeheading-rest.png new file mode 100644 index 0000000..374ed49 Binary files /dev/null and b/lib_v5/sv_ttk/theme/dark/treeheading-rest.png differ