diff --git a/gui_data/saved_ensembles/saved_ensembles_go_here.txt b/gui_data/saved_ensembles/saved_ensembles_go_here.txt new file mode 100644 index 0000000..92b9d07 --- /dev/null +++ b/gui_data/saved_ensembles/saved_ensembles_go_here.txt @@ -0,0 +1 @@ +saved_ensembles_go_here \ No newline at end of file diff --git a/gui_data/saved_settings/saved_settings_go_here.txt b/gui_data/saved_settings/saved_settings_go_here.txt new file mode 100644 index 0000000..b213857 --- /dev/null +++ b/gui_data/saved_settings/saved_settings_go_here.txt @@ -0,0 +1 @@ +saved_settings_go_here \ No newline at end of file diff --git a/gui_data/sv_ttk/__init__.py b/gui_data/sv_ttk/__init__.py new file mode 100644 index 0000000..b265472 --- /dev/null +++ b/gui_data/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/gui_data/sv_ttk/sun-valley.tcl b/gui_data/sv_ttk/sun-valley.tcl new file mode 100644 index 0000000..0296669 --- /dev/null +++ b/gui_data/sv_ttk/sun-valley.tcl @@ -0,0 +1,49 @@ +# Copyright © 2021 rdbende + +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/gui_data/sv_ttk/theme/dark.tcl b/gui_data/sv_ttk/theme/dark.tcl new file mode 100644 index 0000000..3468846 --- /dev/null +++ b/gui_data/sv_ttk/theme/dark.tcl @@ -0,0 +1,540 @@ +# 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 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 {} + + # 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 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 + + # 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 layout Vertical.TScrollbar + + 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 + + # 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 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 {} + + # 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/gui_data/sv_ttk/theme/dark/arrow-down.png b/gui_data/sv_ttk/theme/dark/arrow-down.png new file mode 100644 index 0000000..2b0a9d8 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/arrow-down.png differ diff --git a/gui_data/sv_ttk/theme/dark/arrow-right.png b/gui_data/sv_ttk/theme/dark/arrow-right.png new file mode 100644 index 0000000..2638d88 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/arrow-right.png differ diff --git a/gui_data/sv_ttk/theme/dark/arrow-up.png b/gui_data/sv_ttk/theme/dark/arrow-up.png new file mode 100644 index 0000000..f935a0d Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/arrow-up.png differ diff --git a/gui_data/sv_ttk/theme/dark/button-accent-disabled.png b/gui_data/sv_ttk/theme/dark/button-accent-disabled.png new file mode 100644 index 0000000..bf7bd9b Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/button-accent-disabled.png differ diff --git a/gui_data/sv_ttk/theme/dark/button-accent-hover.png b/gui_data/sv_ttk/theme/dark/button-accent-hover.png new file mode 100644 index 0000000..8aea9dd Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/button-accent-hover.png differ diff --git a/gui_data/sv_ttk/theme/dark/button-accent-pressed.png b/gui_data/sv_ttk/theme/dark/button-accent-pressed.png new file mode 100644 index 0000000..edc1114 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/button-accent-pressed.png differ diff --git a/gui_data/sv_ttk/theme/dark/button-accent-rest.png b/gui_data/sv_ttk/theme/dark/button-accent-rest.png new file mode 100644 index 0000000..75e64f8 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/button-accent-rest.png differ diff --git a/gui_data/sv_ttk/theme/dark/button-close-hover.png b/gui_data/sv_ttk/theme/dark/button-close-hover.png new file mode 100644 index 0000000..6fc0c00 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/button-close-hover.png differ diff --git a/gui_data/sv_ttk/theme/dark/button-close-pressed.png b/gui_data/sv_ttk/theme/dark/button-close-pressed.png new file mode 100644 index 0000000..6023dc1 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/button-close-pressed.png differ diff --git a/gui_data/sv_ttk/theme/dark/button-disabled.png b/gui_data/sv_ttk/theme/dark/button-disabled.png new file mode 100644 index 0000000..71bb0a8 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/button-disabled.png differ diff --git a/gui_data/sv_ttk/theme/dark/button-hover.png b/gui_data/sv_ttk/theme/dark/button-hover.png new file mode 100644 index 0000000..2041375 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/button-hover.png differ diff --git a/gui_data/sv_ttk/theme/dark/button-pressed.png b/gui_data/sv_ttk/theme/dark/button-pressed.png new file mode 100644 index 0000000..4270149 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/button-pressed.png differ diff --git a/gui_data/sv_ttk/theme/dark/button-rest.png b/gui_data/sv_ttk/theme/dark/button-rest.png new file mode 100644 index 0000000..128f5f6 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/button-rest.png differ diff --git a/gui_data/sv_ttk/theme/dark/button-titlebar-hover.png b/gui_data/sv_ttk/theme/dark/button-titlebar-hover.png new file mode 100644 index 0000000..fcb3751 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/button-titlebar-hover.png differ diff --git a/gui_data/sv_ttk/theme/dark/button-titlebar-pressed.png b/gui_data/sv_ttk/theme/dark/button-titlebar-pressed.png new file mode 100644 index 0000000..2ed0623 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/button-titlebar-pressed.png differ diff --git a/gui_data/sv_ttk/theme/dark/card.png b/gui_data/sv_ttk/theme/dark/card.png new file mode 100644 index 0000000..eaac11c Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/card.png differ diff --git a/gui_data/sv_ttk/theme/dark/check-disabled.png b/gui_data/sv_ttk/theme/dark/check-disabled.png new file mode 100644 index 0000000..f766eba Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/check-disabled.png differ diff --git a/gui_data/sv_ttk/theme/dark/check-hover.png b/gui_data/sv_ttk/theme/dark/check-hover.png new file mode 100644 index 0000000..59358d4 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/check-hover.png differ diff --git a/gui_data/sv_ttk/theme/dark/check-pressed.png b/gui_data/sv_ttk/theme/dark/check-pressed.png new file mode 100644 index 0000000..02ee6af Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/check-pressed.png differ diff --git a/gui_data/sv_ttk/theme/dark/check-rest.png b/gui_data/sv_ttk/theme/dark/check-rest.png new file mode 100644 index 0000000..aa8dc67 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/check-rest.png differ diff --git a/gui_data/sv_ttk/theme/dark/check-tri-disabled.png b/gui_data/sv_ttk/theme/dark/check-tri-disabled.png new file mode 100644 index 0000000..a9d31c7 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/check-tri-disabled.png differ diff --git a/gui_data/sv_ttk/theme/dark/check-tri-hover.png b/gui_data/sv_ttk/theme/dark/check-tri-hover.png new file mode 100644 index 0000000..ed218a0 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/check-tri-hover.png differ diff --git a/gui_data/sv_ttk/theme/dark/check-tri-pressed.png b/gui_data/sv_ttk/theme/dark/check-tri-pressed.png new file mode 100644 index 0000000..68d7a99 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/check-tri-pressed.png differ diff --git a/gui_data/sv_ttk/theme/dark/check-tri-rest.png b/gui_data/sv_ttk/theme/dark/check-tri-rest.png new file mode 100644 index 0000000..26edcdb Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/check-tri-rest.png differ diff --git a/gui_data/sv_ttk/theme/dark/check-unsel-disabled.png b/gui_data/sv_ttk/theme/dark/check-unsel-disabled.png new file mode 100644 index 0000000..9f4be22 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/check-unsel-disabled.png differ diff --git a/gui_data/sv_ttk/theme/dark/check-unsel-hover.png b/gui_data/sv_ttk/theme/dark/check-unsel-hover.png new file mode 100644 index 0000000..a96a0db Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/check-unsel-hover.png differ diff --git a/gui_data/sv_ttk/theme/dark/check-unsel-pressed.png b/gui_data/sv_ttk/theme/dark/check-unsel-pressed.png new file mode 100644 index 0000000..26767b8 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/check-unsel-pressed.png differ diff --git a/gui_data/sv_ttk/theme/dark/check-unsel-rest.png b/gui_data/sv_ttk/theme/dark/check-unsel-rest.png new file mode 100644 index 0000000..128f5f6 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/check-unsel-rest.png differ diff --git a/gui_data/sv_ttk/theme/dark/empty.png b/gui_data/sv_ttk/theme/dark/empty.png new file mode 100644 index 0000000..2218363 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/empty.png differ diff --git a/gui_data/sv_ttk/theme/dark/entry-disabled.png b/gui_data/sv_ttk/theme/dark/entry-disabled.png new file mode 100644 index 0000000..1d9bce8 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/entry-disabled.png differ diff --git a/gui_data/sv_ttk/theme/dark/entry-focus.png b/gui_data/sv_ttk/theme/dark/entry-focus.png new file mode 100644 index 0000000..58999e4 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/entry-focus.png differ diff --git a/gui_data/sv_ttk/theme/dark/entry-hover.png b/gui_data/sv_ttk/theme/dark/entry-hover.png new file mode 100644 index 0000000..6b93830 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/entry-hover.png differ diff --git a/gui_data/sv_ttk/theme/dark/entry-invalid.png b/gui_data/sv_ttk/theme/dark/entry-invalid.png new file mode 100644 index 0000000..7304b24 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/entry-invalid.png differ diff --git a/gui_data/sv_ttk/theme/dark/entry-rest-combo.png b/gui_data/sv_ttk/theme/dark/entry-rest-combo.png new file mode 100644 index 0000000..3f32bba Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/entry-rest-combo.png differ diff --git a/gui_data/sv_ttk/theme/dark/entry-rest.png b/gui_data/sv_ttk/theme/dark/entry-rest.png new file mode 100644 index 0000000..e876752 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/entry-rest.png differ diff --git a/gui_data/sv_ttk/theme/dark/notebook-border.png b/gui_data/sv_ttk/theme/dark/notebook-border.png new file mode 100644 index 0000000..0827a07 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/notebook-border.png differ diff --git a/gui_data/sv_ttk/theme/dark/notebook.png b/gui_data/sv_ttk/theme/dark/notebook.png new file mode 100644 index 0000000..15c05f8 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/notebook.png differ diff --git a/gui_data/sv_ttk/theme/dark/progress-pbar-hor.png b/gui_data/sv_ttk/theme/dark/progress-pbar-hor.png new file mode 100644 index 0000000..f8035f8 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/progress-pbar-hor.png differ diff --git a/gui_data/sv_ttk/theme/dark/progress-pbar-vert.png b/gui_data/sv_ttk/theme/dark/progress-pbar-vert.png new file mode 100644 index 0000000..3d0cb29 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/progress-pbar-vert.png differ diff --git a/gui_data/sv_ttk/theme/dark/progress-trough-hor.png b/gui_data/sv_ttk/theme/dark/progress-trough-hor.png new file mode 100644 index 0000000..9fe4807 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/progress-trough-hor.png differ diff --git a/gui_data/sv_ttk/theme/dark/progress-trough-vert.png b/gui_data/sv_ttk/theme/dark/progress-trough-vert.png new file mode 100644 index 0000000..22a8c1c Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/progress-trough-vert.png differ diff --git a/gui_data/sv_ttk/theme/dark/radio-disabled.png b/gui_data/sv_ttk/theme/dark/radio-disabled.png new file mode 100644 index 0000000..b724f3a Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/radio-disabled.png differ diff --git a/gui_data/sv_ttk/theme/dark/radio-hover.png b/gui_data/sv_ttk/theme/dark/radio-hover.png new file mode 100644 index 0000000..9823345 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/radio-hover.png differ diff --git a/gui_data/sv_ttk/theme/dark/radio-pressed.png b/gui_data/sv_ttk/theme/dark/radio-pressed.png new file mode 100644 index 0000000..ed89533 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/radio-pressed.png differ diff --git a/gui_data/sv_ttk/theme/dark/radio-rest.png b/gui_data/sv_ttk/theme/dark/radio-rest.png new file mode 100644 index 0000000..ef891d1 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/radio-rest.png differ diff --git a/gui_data/sv_ttk/theme/dark/radio-unsel-disabled.png b/gui_data/sv_ttk/theme/dark/radio-unsel-disabled.png new file mode 100644 index 0000000..0b4142b Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/radio-unsel-disabled.png differ diff --git a/gui_data/sv_ttk/theme/dark/radio-unsel-hover.png b/gui_data/sv_ttk/theme/dark/radio-unsel-hover.png new file mode 100644 index 0000000..7feda0b Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/radio-unsel-hover.png differ diff --git a/gui_data/sv_ttk/theme/dark/radio-unsel-pressed.png b/gui_data/sv_ttk/theme/dark/radio-unsel-pressed.png new file mode 100644 index 0000000..7a76749 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/radio-unsel-pressed.png differ diff --git a/gui_data/sv_ttk/theme/dark/radio-unsel-rest.png b/gui_data/sv_ttk/theme/dark/radio-unsel-rest.png new file mode 100644 index 0000000..f311983 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/radio-unsel-rest.png differ diff --git a/gui_data/sv_ttk/theme/dark/scale-thumb-disabled.png b/gui_data/sv_ttk/theme/dark/scale-thumb-disabled.png new file mode 100644 index 0000000..3542c35 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/scale-thumb-disabled.png differ diff --git a/gui_data/sv_ttk/theme/dark/scale-thumb-hover.png b/gui_data/sv_ttk/theme/dark/scale-thumb-hover.png new file mode 100644 index 0000000..84e3d18 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/scale-thumb-hover.png differ diff --git a/gui_data/sv_ttk/theme/dark/scale-thumb-pressed.png b/gui_data/sv_ttk/theme/dark/scale-thumb-pressed.png new file mode 100644 index 0000000..5d9925e Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/scale-thumb-pressed.png differ diff --git a/gui_data/sv_ttk/theme/dark/scale-thumb-rest.png b/gui_data/sv_ttk/theme/dark/scale-thumb-rest.png new file mode 100644 index 0000000..740437b Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/scale-thumb-rest.png differ diff --git a/gui_data/sv_ttk/theme/dark/scale-trough-hor.png b/gui_data/sv_ttk/theme/dark/scale-trough-hor.png new file mode 100644 index 0000000..2640462 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/scale-trough-hor.png differ diff --git a/gui_data/sv_ttk/theme/dark/scale-trough-vert.png b/gui_data/sv_ttk/theme/dark/scale-trough-vert.png new file mode 100644 index 0000000..205fed8 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/scale-trough-vert.png differ diff --git a/gui_data/sv_ttk/theme/dark/scroll-down.png b/gui_data/sv_ttk/theme/dark/scroll-down.png new file mode 100644 index 0000000..4c0e24f Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/scroll-down.png differ diff --git a/gui_data/sv_ttk/theme/dark/scroll-hor-thumb.png b/gui_data/sv_ttk/theme/dark/scroll-hor-thumb.png new file mode 100644 index 0000000..795a88a Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/scroll-hor-thumb.png differ diff --git a/gui_data/sv_ttk/theme/dark/scroll-hor-trough.png b/gui_data/sv_ttk/theme/dark/scroll-hor-trough.png new file mode 100644 index 0000000..89d0403 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/scroll-hor-trough.png differ diff --git a/gui_data/sv_ttk/theme/dark/scroll-left.png b/gui_data/sv_ttk/theme/dark/scroll-left.png new file mode 100644 index 0000000..f43538b Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/scroll-left.png differ diff --git a/gui_data/sv_ttk/theme/dark/scroll-right.png b/gui_data/sv_ttk/theme/dark/scroll-right.png new file mode 100644 index 0000000..a56511f Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/scroll-right.png differ diff --git a/gui_data/sv_ttk/theme/dark/scroll-up.png b/gui_data/sv_ttk/theme/dark/scroll-up.png new file mode 100644 index 0000000..7ddba7f Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/scroll-up.png differ diff --git a/gui_data/sv_ttk/theme/dark/scroll-vert-thumb.png b/gui_data/sv_ttk/theme/dark/scroll-vert-thumb.png new file mode 100644 index 0000000..0c3f067 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/scroll-vert-thumb.png differ diff --git a/gui_data/sv_ttk/theme/dark/scroll-vert-trough.png b/gui_data/sv_ttk/theme/dark/scroll-vert-trough.png new file mode 100644 index 0000000..52fd58f Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/scroll-vert-trough.png differ diff --git a/gui_data/sv_ttk/theme/dark/separator.png b/gui_data/sv_ttk/theme/dark/separator.png new file mode 100644 index 0000000..6e01f55 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/separator.png differ diff --git a/gui_data/sv_ttk/theme/dark/sizegrip.png b/gui_data/sv_ttk/theme/dark/sizegrip.png new file mode 100644 index 0000000..7080c04 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/sizegrip.png differ diff --git a/gui_data/sv_ttk/theme/dark/switch-off-disabled.png b/gui_data/sv_ttk/theme/dark/switch-off-disabled.png new file mode 100644 index 0000000..4032c61 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/switch-off-disabled.png differ diff --git a/gui_data/sv_ttk/theme/dark/switch-off-hover.png b/gui_data/sv_ttk/theme/dark/switch-off-hover.png new file mode 100644 index 0000000..5a136bd Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/switch-off-hover.png differ diff --git a/gui_data/sv_ttk/theme/dark/switch-off-pressed.png b/gui_data/sv_ttk/theme/dark/switch-off-pressed.png new file mode 100644 index 0000000..040e2ea Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/switch-off-pressed.png differ diff --git a/gui_data/sv_ttk/theme/dark/switch-off-rest.png b/gui_data/sv_ttk/theme/dark/switch-off-rest.png new file mode 100644 index 0000000..6c31bb2 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/switch-off-rest.png differ diff --git a/gui_data/sv_ttk/theme/dark/switch-on-disabled.png b/gui_data/sv_ttk/theme/dark/switch-on-disabled.png new file mode 100644 index 0000000..c0d67c5 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/switch-on-disabled.png differ diff --git a/gui_data/sv_ttk/theme/dark/switch-on-hover.png b/gui_data/sv_ttk/theme/dark/switch-on-hover.png new file mode 100644 index 0000000..fd4de94 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/switch-on-hover.png differ diff --git a/gui_data/sv_ttk/theme/dark/switch-on-pressed.png b/gui_data/sv_ttk/theme/dark/switch-on-pressed.png new file mode 100644 index 0000000..00e87c6 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/switch-on-pressed.png differ diff --git a/gui_data/sv_ttk/theme/dark/switch-on-rest.png b/gui_data/sv_ttk/theme/dark/switch-on-rest.png new file mode 100644 index 0000000..52a19ea Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/switch-on-rest.png differ diff --git a/gui_data/sv_ttk/theme/dark/tab-hover.png b/gui_data/sv_ttk/theme/dark/tab-hover.png new file mode 100644 index 0000000..43a113b Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/tab-hover.png differ diff --git a/gui_data/sv_ttk/theme/dark/tab-rest.png b/gui_data/sv_ttk/theme/dark/tab-rest.png new file mode 100644 index 0000000..e8a6f3f Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/tab-rest.png differ diff --git a/gui_data/sv_ttk/theme/dark/tab-selected.png b/gui_data/sv_ttk/theme/dark/tab-selected.png new file mode 100644 index 0000000..eb7b211 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/tab-selected.png differ diff --git a/gui_data/sv_ttk/theme/dark/treeheading-hover.png b/gui_data/sv_ttk/theme/dark/treeheading-hover.png new file mode 100644 index 0000000..beaaf13 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/treeheading-hover.png differ diff --git a/gui_data/sv_ttk/theme/dark/treeheading-pressed.png b/gui_data/sv_ttk/theme/dark/treeheading-pressed.png new file mode 100644 index 0000000..9cd311d Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/treeheading-pressed.png differ diff --git a/gui_data/sv_ttk/theme/dark/treeheading-rest.png b/gui_data/sv_ttk/theme/dark/treeheading-rest.png new file mode 100644 index 0000000..374ed49 Binary files /dev/null and b/gui_data/sv_ttk/theme/dark/treeheading-rest.png differ