diff --git a/Azure_Theme_LICENSE b/Azure_Theme_LICENSE new file mode 100644 index 0000000..0212030 --- /dev/null +++ b/Azure_Theme_LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 rdbende + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/OutGaugeInterpreter.py b/OutGaugeInterpreter.py index 2393f38..0f77c74 100644 --- a/OutGaugeInterpreter.py +++ b/OutGaugeInterpreter.py @@ -1,11 +1,13 @@ #please use python 3.11 import socket import struct +import tkinter.ttk import serial import time import platform import sys from enum import Enum +import tkinter from GAME_METHODS import * ##check if python 3.11 is running code and exit if not @@ -13,6 +15,19 @@ from GAME_METHODS import * if not(sys.version_info[0] == 3 and sys.version_info[1] == 11): raise Exception("code must be run in python verion 3.11.\ninput struct for network needs to be changed per python version.") +##GUI init +rootFrameGui= tkinter.Tk() +rootFrameGui.title("Car speed to arduino") +rootFrameGui.geometry("400x200") + +# theme: https://github.com/rdbende/Azure-ttk-theme +rootFrameGui.tk.call("source","azure.tcl") ##import theme +rootFrameGui.tk.call("set_theme","dark") ##set theme to dark + +firstFrameGui=tkinter.ttk.Frame(rootFrameGui,padding=10) + + +##system init runningOs = platform.system() UDP_IP = "127.0.0.1" diff --git a/azure.tcl b/azure.tcl new file mode 100755 index 0000000..3e75502 --- /dev/null +++ b/azure.tcl @@ -0,0 +1,87 @@ +# Copyright © 2021 rdbende + +source [file join [file dirname [info script]] theme light.tcl] +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 "azure-dark" + + array set colors { + -fg "#ffffff" + -bg "#333333" + -disabledfg "#ffffff" + -disabledbg "#737373" + -selectfg "#ffffff" + -selectbg "#007fff" + } + + ttk::style configure . \ + -background $colors(-bg) \ + -foreground $colors(-fg) \ + -troughcolor $colors(-bg) \ + -focuscolor $colors(-selectbg) \ + -selectbackground $colors(-selectbg) \ + -selectforeground $colors(-selectfg) \ + -insertcolor $colors(-fg) \ + -insertwidth 1 \ + -fieldbackground $colors(-selectbg) \ + -font {"Segoe Ui" 10} \ + -borderwidth 1 \ + -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) + + } elseif {$mode == "light"} { + ttk::style theme use "azure-light" + + array set colors { + -fg "#000000" + -bg "#ffffff" + -disabledfg "#737373" + -disabledbg "#ffffff" + -selectfg "#ffffff" + -selectbg "#007fff" + } + + ttk::style configure . \ + -background $colors(-bg) \ + -foreground $colors(-fg) \ + -troughcolor $colors(-bg) \ + -focuscolor $colors(-selectbg) \ + -selectbackground $colors(-selectbg) \ + -selectforeground $colors(-selectfg) \ + -insertcolor $colors(-fg) \ + -insertwidth 1 \ + -fieldbackground $colors(-selectbg) \ + -font {"Segoe Ui" 10} \ + -borderwidth 1 \ + -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) + } +} diff --git a/theme/dark.tcl b/theme/dark.tcl new file mode 100644 index 0000000..333e53d --- /dev/null +++ b/theme/dark.tcl @@ -0,0 +1,539 @@ +# Copyright (c) 2021 rdbende + +# The Azure theme is a beautiful modern ttk theme inspired by Microsoft's fluent design. + +package require Tk 8.6 + +namespace eval ttk::theme::azure-dark { + variable version 2.0 + package provide ttk::theme::azure-dark $version + + ttk::style theme create azure-dark -parent clam -settings { + proc load_images {imgdir} { + variable I + foreach file [glob -directory $imgdir *.png] { + set img [file tail [file rootname $file]] + set I($img) [image create photo -file $file -format png] + } + } + + load_images [file join [file dirname [info script]] dark] + + array set colors { + -fg "#ffffff" + -bg "#333333" + -disabledfg "#aaaaaa" + -disabledbg "#737373" + -selectfg "#ffffff" + -selectbg "#007fff" + } + + ttk::style layout TButton { + Button.button -children { + Button.padding -children { + Button.label -side left -expand true + } + } + } + + ttk::style layout Toolbutton { + Toolbutton.button -children { + Toolbutton.padding -children { + Toolbutton.label -side left -expand true + } + } + } + + ttk::style layout TMenubutton { + Menubutton.button -children { + Menubutton.padding -children { + Menubutton.indicator -side right + Menubutton.label -side right -expand true + } + } + } + + ttk::style layout TOptionMenu { + OptionMenu.button -children { + OptionMenu.padding -children { + OptionMenu.indicator -side right + OptionMenu.label -side right -expand true + } + } + } + + ttk::style layout Accent.TButton { + AccentButton.button -children { + AccentButton.padding -children { + AccentButton.label -side left -expand true + } + } + } + + ttk::style layout TCheckbutton { + Checkbutton.button -children { + Checkbutton.padding -children { + Checkbutton.indicator -side left + Checkbutton.label -side right -expand true + } + } + } + + ttk::style layout Switch.TCheckbutton { + Switch.button -children { + Switch.padding -children { + Switch.indicator -side left + Switch.label -side right -expand true + } + } + } + + ttk::style layout Toggle.TButton { + ToggleButton.button -children { + ToggleButton.padding -children { + ToggleButton.label -side left -expand true + } + } + } + + ttk::style layout TRadiobutton { + Radiobutton.button -children { + Radiobutton.padding -children { + Radiobutton.indicator -side left + Radiobutton.label -side right -expand true + } + } + } + + ttk::style layout Vertical.TScrollbar { + Vertical.Scrollbar.trough -sticky ns -children { + Vertical.Scrollbar.thumb -expand true + } + } + + ttk::style layout Horizontal.TScrollbar { + Horizontal.Scrollbar.trough -sticky ew -children { + Horizontal.Scrollbar.thumb -expand true + } + } + + ttk::style layout TCombobox { + Combobox.field -sticky nswe -children { + Combobox.padding -expand true -sticky nswe -children { + Combobox.textarea -sticky nswe + } + } + Combobox.button -side right -sticky ns -children { + Combobox.arrow -sticky nsew + } + } + + ttk::style layout TSpinbox { + Spinbox.field -sticky nsew -children { + Spinbox.padding -expand true -sticky nswe -children { + Spinbox.textarea -sticky nswe + } + + } + Spinbox.button -side right -sticky ns -children { + null -side right -children { + Spinbox.uparrow -side top + Spinbox.downarrow -side bottom + } + } + } + + ttk::style layout Horizontal.TSeparator { + Horizontal.separator -sticky nswe + } + + ttk::style layout Vertical.TSeparator { + Vertical.separator -sticky nswe + } + + ttk::style layout Horizontal.Tick.TScale { + Horizontal.TickScale.trough -sticky ew -children { + Horizontal.TickScale.slider -sticky w + } + } + + ttk::style layout Vertical.Tick.TScale { + Vertical.TickScale.trough -sticky ns -children { + Vertical.TickScale.slider -sticky n + } + } + + 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 right + } + } + } + + ttk::style layout TNotebook.Tab { + Notebook.tab -children { + Notebook.padding -side top -children { + Notebook.label -side top -sticky {} + } + } + } + + ttk::style layout Treeview.Item { + Treeitem.padding -sticky nswe -children { + Treeitem.indicator -side left -sticky {} + Treeitem.image -side left -sticky {} + Treeitem.text -side left -sticky {} + } + } + + + # Elements + + # Button + ttk::style configure TButton -padding {8 4 8 4} -width -10 -anchor center + + ttk::style element create Button.button image \ + [list $I(rect-basic) \ + {selected disabled} $I(rect-basic) \ + disabled $I(rect-basic) \ + pressed $I(rect-basic) \ + selected $I(rect-basic) \ + active $I(button-hover) \ + focus $I(button-hover) \ + ] -border 4 -sticky ewns + + # Toolbutton + ttk::style configure Toolbutton -padding {8 4 8 4} -width -10 -anchor center + + ttk::style element create Toolbutton.button image \ + [list $I(empty) \ + {selected disabled} $I(empty) \ + disabled $I(empty) \ + pressed $I(rect-basic) \ + selected $I(rect-basic) \ + active $I(rect-basic) \ + ] -border 4 -sticky ewns + + # Menubutton + ttk::style configure TMenubutton -padding {8 4 4 4} + + ttk::style element create Menubutton.button \ + image [list $I(rect-basic) \ + disabled $I(rect-basic) \ + pressed $I(rect-basic) \ + active $I(button-hover) \ + ] -border 4 -sticky ewns + + ttk::style element create Menubutton.indicator \ + image [list $I(down) \ + active $I(down) \ + pressed $I(down) \ + disabled $I(down) \ + ] -width 15 -sticky e + + # OptionMenu + ttk::style configure TOptionMenu -padding {8 4 4 4} + + ttk::style element create OptionMenu.button \ + image [list $I(rect-basic) \ + disabled $I(rect-basic) \ + pressed $I(rect-basic) \ + active $I(button-hover) \ + ] -border 4 -sticky ewns + + ttk::style element create OptionMenu.indicator \ + image [list $I(down) \ + active $I(down) \ + pressed $I(down) \ + disabled $I(down) \ + ] -width 15 -sticky e + + # AccentButton + ttk::style configure Accent.TButton -padding {8 4 8 4} -width -10 -anchor center + + ttk::style element create AccentButton.button image \ + [list $I(rect-accent) \ + {selected disabled} $I(rect-accent-hover) \ + disabled $I(rect-accent-hover) \ + pressed $I(rect-accent) \ + selected $I(rect-accent) \ + active $I(rect-accent-hover) \ + focus $I(rect-accent-hover) \ + ] -border 4 -sticky ewns + + # Checkbutton + ttk::style configure TCheckbutton -padding 4 + + ttk::style element create Checkbutton.indicator image \ + [list $I(box-basic) \ + {alternate disabled} $I(check-tri-basic) \ + {selected disabled} $I(check-basic) \ + disabled $I(box-basic) \ + {pressed alternate} $I(check-tri-hover) \ + {active alternate} $I(check-tri-hover) \ + alternate $I(check-tri-accent) \ + {pressed selected} $I(check-hover) \ + {active selected} $I(check-hover) \ + selected $I(check-accent) \ + {pressed !selected} $I(rect-hover) \ + active $I(box-hover) \ + ] -width 26 -sticky w + + # Switch + ttk::style element create Switch.indicator image \ + [list $I(off-basic) \ + {selected disabled} $I(on-basic) \ + disabled $I(off-basic) \ + {pressed selected} $I(on-accent) \ + {active selected} $I(on-accent) \ + selected $I(on-accent) \ + {pressed !selected} $I(off-basic) \ + active $I(off-basic) \ + ] -width 46 -sticky w + + # ToggleButton + ttk::style configure Toggle.TButton -padding {8 4 8 4} -width -10 -anchor center + + ttk::style element create ToggleButton.button image \ + [list $I(rect-basic) \ + {selected disabled} $I(rect-accent-hover) \ + disabled $I(rect-basic) \ + {pressed selected} $I(rect-basic) \ + {active selected} $I(rect-accent) \ + selected $I(rect-accent) \ + {pressed !selected} $I(rect-accent) \ + active $I(rect-basic) \ + ] -border 4 -sticky ewns + + # Radiobutton + ttk::style configure TRadiobutton -padding 4 + + ttk::style element create Radiobutton.indicator image \ + [list $I(outline-basic) \ + {alternate disabled} $I(radio-tri-basic) \ + {selected disabled} $I(radio-basic) \ + disabled $I(outline-basic) \ + {pressed alternate} $I(radio-tri-hover) \ + {active alternate} $I(radio-tri-hover) \ + alternate $I(radio-tri-accent) \ + {pressed selected} $I(radio-hover) \ + {active selected} $I(radio-hover) \ + selected $I(radio-accent) \ + {pressed !selected} $I(circle-hover) \ + active $I(outline-hover) \ + ] -width 26 -sticky w + + # Scrollbar + ttk::style element create Horizontal.Scrollbar.trough image $I(hor-basic) \ + -sticky ew + + ttk::style element create Horizontal.Scrollbar.thumb \ + image [list $I(hor-accent) \ + disabled $I(hor-basic) \ + pressed $I(hor-hover) \ + active $I(hor-hover) \ + ] -sticky ew + + ttk::style element create Vertical.Scrollbar.trough image $I(vert-basic) \ + -sticky ns + + ttk::style element create Vertical.Scrollbar.thumb \ + image [list $I(vert-accent) \ + disabled $I(vert-basic) \ + pressed $I(vert-hover) \ + active $I(vert-hover) \ + ] -sticky ns + + # Scale + ttk::style element create Horizontal.Scale.trough image $I(scale-hor) \ + -border 5 -padding 0 + + ttk::style element create Horizontal.Scale.slider \ + image [list $I(circle-accent) \ + disabled $I(circle-basic) \ + pressed $I(circle-hover) \ + active $I(circle-hover) \ + ] -sticky {} + + ttk::style element create Vertical.Scale.trough image $I(scale-vert) \ + -border 5 -padding 0 + + ttk::style element create Vertical.Scale.slider \ + image [list $I(circle-accent) \ + disabled $I(circle-basic) \ + pressed $I(circle-hover) \ + active $I(circle-hover) \ + ] -sticky {} + + # Tickscale + ttk::style element create Horizontal.TickScale.trough image $I(scale-hor) \ + -border 5 -padding 0 + + ttk::style element create Horizontal.TickScale.slider \ + image [list $I(tick-hor-accent) \ + disabled $I(tick-hor-basic) \ + pressed $I(tick-hor-hover) \ + active $I(tick-hor-hover) \ + ] -sticky {} + + ttk::style element create Vertical.TickScale.trough image $I(scale-vert) \ + -border 5 -padding 0 + + ttk::style element create Vertical.TickScale.slider \ + image [list $I(tick-vert-accent) \ + disabled $I(tick-vert-basic) \ + pressed $I(tick-vert-hover) \ + active $I(tick-vert-hover) \ + ] -sticky {} + + # Progressbar + ttk::style element create Horizontal.Progressbar.trough image $I(hor-basic) \ + -sticky ew + + ttk::style element create Horizontal.Progressbar.pbar image $I(hor-accent) \ + -sticky ew + + ttk::style element create Vertical.Progressbar.trough image $I(vert-basic) \ + -sticky ns + + ttk::style element create Vertical.Progressbar.pbar image $I(vert-accent) \ + -sticky ns + + # Entry + ttk::style element create Entry.field \ + image [list $I(box-basic) \ + {focus hover} $I(box-accent) \ + invalid $I(box-invalid) \ + disabled $I(box-basic) \ + focus $I(box-accent) \ + hover $I(box-hover) \ + ] -border 5 -padding {8} -sticky news + + # Combobox + ttk::style map TCombobox -selectbackground [list \ + {!focus} $colors(-selectbg) \ + {readonly hover} $colors(-selectbg) \ + {readonly focus} $colors(-selectbg) \ + ] + + ttk::style map TCombobox -selectforeground [list \ + {!focus} $colors(-selectfg) \ + {readonly hover} $colors(-selectfg) \ + {readonly focus} $colors(-selectfg) \ + ] + + ttk::style element create Combobox.field \ + image [list $I(box-basic) \ + {readonly disabled} $I(rect-basic) \ + {readonly pressed} $I(rect-basic) \ + {readonly focus hover} $I(button-hover) \ + {readonly focus} $I(button-hover) \ + {readonly hover} $I(button-hover) \ + {focus hover} $I(box-accent) \ + readonly $I(rect-basic) \ + invalid $I(box-invalid) \ + disabled $I(box-basic) \ + focus $I(box-accent) \ + hover $I(box-hover) \ + ] -border 5 -padding {8} + + ttk::style element create Combobox.button \ + image [list $I(combo-button-basic) \ + {!readonly focus} $I(combo-button-focus) \ + {readonly focus} $I(combo-button-hover) \ + {readonly hover} $I(combo-button-hover) + ] -border 5 -padding {2 6 6 6} + + ttk::style element create Combobox.arrow image $I(down) \ + -width 15 -sticky e + + # Spinbox + ttk::style element create Spinbox.field \ + image [list $I(box-basic) \ + invalid $I(box-invalid) \ + disabled $I(box-basic) \ + focus $I(box-accent) \ + hover $I(box-hover) \ + ] -border 5 -padding {8} -sticky news + + ttk::style element create Spinbox.uparrow \ + image [list $I(up) \ + disabled $I(up) \ + pressed $I(up-accent) \ + active $I(up-accent) \ + ] -border 4 -width 15 -sticky e + + ttk::style element create Spinbox.downarrow \ + image [list $I(down) \ + disabled $I(down) \ + pressed $I(down-accent) \ + active $I(down-accent) \ + ] -border 4 -width 15 -sticky e + + ttk::style element create Spinbox.button \ + image [list $I(combo-button-basic) \ + {!readonly focus} $I(combo-button-focus) \ + {readonly focus} $I(combo-button-hover) \ + {readonly hover} $I(combo-button-hover) + ] -border 5 -padding {2 6 6 6} + + # Sizegrip + ttk::style element create Sizegrip.sizegrip image $I(size) \ + -sticky ewns + + # Separator + ttk::style element create Horizontal.separator image $I(separator) + + ttk::style element create Vertical.separator image $I(separator) + + # Card + ttk::style element create Card.field image $I(card) \ + -border 10 -padding 4 -sticky news + + # Labelframe + ttk::style element create Labelframe.border image $I(card) \ + -border 5 -padding 4 -sticky news + + # Notebook + ttk::style element create Notebook.client \ + image $I(notebook) -border 5 + + ttk::style element create Notebook.tab \ + image [list $I(tab-disabled) \ + selected $I(tab-basic) \ + active $I(tab-hover) \ + ] -border 5 -padding {14 4} + + # Treeview + ttk::style element create Treeview.field image $I(card) \ + -border 5 + + ttk::style element create Treeheading.cell \ + image [list $I(tree-basic) \ + pressed $I(tree-pressed) + ] -border 5 -padding 4 -sticky ewns + + ttk::style element create Treeitem.indicator \ + image [list $I(right) \ + user2 $I(empty) \ + user1 $I(down) \ + ] -width 26 -sticky {} + + ttk::style configure Treeview -background $colors(-bg) + ttk::style configure Treeview.Item -padding {2 0 0 0} + ttk::style map Treeview \ + -background [list selected $colors(-selectbg)] \ + -foreground [list selected $colors(-selectfg)] + + # Panedwindow + # Insane hack to remove clam's ugly sash + ttk::style configure Sash -gripcount 0 + } +} diff --git a/theme/dark/box-accent.png b/theme/dark/box-accent.png new file mode 100644 index 0000000..d0e186b Binary files /dev/null and b/theme/dark/box-accent.png differ diff --git a/theme/dark/box-basic.png b/theme/dark/box-basic.png new file mode 100644 index 0000000..0b28fed Binary files /dev/null and b/theme/dark/box-basic.png differ diff --git a/theme/dark/box-hover.png b/theme/dark/box-hover.png new file mode 100644 index 0000000..3ca7c19 Binary files /dev/null and b/theme/dark/box-hover.png differ diff --git a/theme/dark/box-invalid.png b/theme/dark/box-invalid.png new file mode 100644 index 0000000..f180e94 Binary files /dev/null and b/theme/dark/box-invalid.png differ diff --git a/theme/dark/button-hover.png b/theme/dark/button-hover.png new file mode 100644 index 0000000..300eb09 Binary files /dev/null and b/theme/dark/button-hover.png differ diff --git a/theme/dark/card.png b/theme/dark/card.png new file mode 100644 index 0000000..3978e9f Binary files /dev/null and b/theme/dark/card.png differ diff --git a/theme/dark/check-accent.png b/theme/dark/check-accent.png new file mode 100644 index 0000000..9854ec3 Binary files /dev/null and b/theme/dark/check-accent.png differ diff --git a/theme/dark/check-basic.png b/theme/dark/check-basic.png new file mode 100644 index 0000000..529718e Binary files /dev/null and b/theme/dark/check-basic.png differ diff --git a/theme/dark/check-hover.png b/theme/dark/check-hover.png new file mode 100644 index 0000000..c96c80c Binary files /dev/null and b/theme/dark/check-hover.png differ diff --git a/theme/dark/check-tri-accent.png b/theme/dark/check-tri-accent.png new file mode 100644 index 0000000..c0539f9 Binary files /dev/null and b/theme/dark/check-tri-accent.png differ diff --git a/theme/dark/check-tri-basic.png b/theme/dark/check-tri-basic.png new file mode 100644 index 0000000..d0188f5 Binary files /dev/null and b/theme/dark/check-tri-basic.png differ diff --git a/theme/dark/check-tri-hover.png b/theme/dark/check-tri-hover.png new file mode 100644 index 0000000..ae3e19f Binary files /dev/null and b/theme/dark/check-tri-hover.png differ diff --git a/theme/dark/circle-accent.png b/theme/dark/circle-accent.png new file mode 100644 index 0000000..e9a5ee5 Binary files /dev/null and b/theme/dark/circle-accent.png differ diff --git a/theme/dark/circle-basic.png b/theme/dark/circle-basic.png new file mode 100644 index 0000000..85f2bac Binary files /dev/null and b/theme/dark/circle-basic.png differ diff --git a/theme/dark/circle-hover.png b/theme/dark/circle-hover.png new file mode 100644 index 0000000..b439cd6 Binary files /dev/null and b/theme/dark/circle-hover.png differ diff --git a/theme/dark/combo-button-basic.png b/theme/dark/combo-button-basic.png new file mode 100644 index 0000000..4aef1b2 Binary files /dev/null and b/theme/dark/combo-button-basic.png differ diff --git a/theme/dark/combo-button-focus.png b/theme/dark/combo-button-focus.png new file mode 100644 index 0000000..5b1e0ff Binary files /dev/null and b/theme/dark/combo-button-focus.png differ diff --git a/theme/dark/combo-button-hover.png b/theme/dark/combo-button-hover.png new file mode 100644 index 0000000..493cf52 Binary files /dev/null and b/theme/dark/combo-button-hover.png differ diff --git a/theme/dark/down-accent.png b/theme/dark/down-accent.png new file mode 100644 index 0000000..5bb987d Binary files /dev/null and b/theme/dark/down-accent.png differ diff --git a/theme/dark/down.png b/theme/dark/down.png new file mode 100644 index 0000000..d83f92d Binary files /dev/null and b/theme/dark/down.png differ diff --git a/theme/dark/empty.png b/theme/dark/empty.png new file mode 100644 index 0000000..202e3de Binary files /dev/null and b/theme/dark/empty.png differ diff --git a/theme/dark/hor-accent.png b/theme/dark/hor-accent.png new file mode 100644 index 0000000..e59a1c6 Binary files /dev/null and b/theme/dark/hor-accent.png differ diff --git a/theme/dark/hor-basic.png b/theme/dark/hor-basic.png new file mode 100644 index 0000000..bbc2e50 Binary files /dev/null and b/theme/dark/hor-basic.png differ diff --git a/theme/dark/hor-hover.png b/theme/dark/hor-hover.png new file mode 100644 index 0000000..56216f4 Binary files /dev/null and b/theme/dark/hor-hover.png differ diff --git a/theme/dark/notebook.png b/theme/dark/notebook.png new file mode 100644 index 0000000..5b937c1 Binary files /dev/null and b/theme/dark/notebook.png differ diff --git a/theme/dark/off-basic.png b/theme/dark/off-basic.png new file mode 100644 index 0000000..2ca539a Binary files /dev/null and b/theme/dark/off-basic.png differ diff --git a/theme/dark/on-accent.png b/theme/dark/on-accent.png new file mode 100644 index 0000000..4a33465 Binary files /dev/null and b/theme/dark/on-accent.png differ diff --git a/theme/dark/on-basic.png b/theme/dark/on-basic.png new file mode 100644 index 0000000..9dce6a5 Binary files /dev/null and b/theme/dark/on-basic.png differ diff --git a/theme/dark/outline-basic.png b/theme/dark/outline-basic.png new file mode 100644 index 0000000..2f76a1b Binary files /dev/null and b/theme/dark/outline-basic.png differ diff --git a/theme/dark/outline-hover.png b/theme/dark/outline-hover.png new file mode 100644 index 0000000..7ce5290 Binary files /dev/null and b/theme/dark/outline-hover.png differ diff --git a/theme/dark/radio-accent.png b/theme/dark/radio-accent.png new file mode 100644 index 0000000..c34e4a8 Binary files /dev/null and b/theme/dark/radio-accent.png differ diff --git a/theme/dark/radio-basic.png b/theme/dark/radio-basic.png new file mode 100644 index 0000000..f9b55a6 Binary files /dev/null and b/theme/dark/radio-basic.png differ diff --git a/theme/dark/radio-hover.png b/theme/dark/radio-hover.png new file mode 100644 index 0000000..4f3eab8 Binary files /dev/null and b/theme/dark/radio-hover.png differ diff --git a/theme/dark/radio-tri-accent.png b/theme/dark/radio-tri-accent.png new file mode 100644 index 0000000..8084141 Binary files /dev/null and b/theme/dark/radio-tri-accent.png differ diff --git a/theme/dark/radio-tri-basic.png b/theme/dark/radio-tri-basic.png new file mode 100644 index 0000000..def9e27 Binary files /dev/null and b/theme/dark/radio-tri-basic.png differ diff --git a/theme/dark/radio-tri-hover.png b/theme/dark/radio-tri-hover.png new file mode 100644 index 0000000..86f1b59 Binary files /dev/null and b/theme/dark/radio-tri-hover.png differ diff --git a/theme/dark/rect-accent-hover.png b/theme/dark/rect-accent-hover.png new file mode 100644 index 0000000..bb49129 Binary files /dev/null and b/theme/dark/rect-accent-hover.png differ diff --git a/theme/dark/rect-accent.png b/theme/dark/rect-accent.png new file mode 100644 index 0000000..5e7c72c Binary files /dev/null and b/theme/dark/rect-accent.png differ diff --git a/theme/dark/rect-basic.png b/theme/dark/rect-basic.png new file mode 100644 index 0000000..8ab4d10 Binary files /dev/null and b/theme/dark/rect-basic.png differ diff --git a/theme/dark/rect-hover.png b/theme/dark/rect-hover.png new file mode 100644 index 0000000..b9e4c35 Binary files /dev/null and b/theme/dark/rect-hover.png differ diff --git a/theme/dark/right.png b/theme/dark/right.png new file mode 100644 index 0000000..bc840c2 Binary files /dev/null and b/theme/dark/right.png differ diff --git a/theme/dark/scale-hor.png b/theme/dark/scale-hor.png new file mode 100644 index 0000000..570530e Binary files /dev/null and b/theme/dark/scale-hor.png differ diff --git a/theme/dark/scale-vert.png b/theme/dark/scale-vert.png new file mode 100644 index 0000000..c6fcf6f Binary files /dev/null and b/theme/dark/scale-vert.png differ diff --git a/theme/dark/separator.png b/theme/dark/separator.png new file mode 100644 index 0000000..411c970 Binary files /dev/null and b/theme/dark/separator.png differ diff --git a/theme/dark/size.png b/theme/dark/size.png new file mode 100644 index 0000000..51c682e Binary files /dev/null and b/theme/dark/size.png differ diff --git a/theme/dark/tab-basic.png b/theme/dark/tab-basic.png new file mode 100644 index 0000000..6db676b Binary files /dev/null and b/theme/dark/tab-basic.png differ diff --git a/theme/dark/tab-disabled.png b/theme/dark/tab-disabled.png new file mode 100644 index 0000000..736c438 Binary files /dev/null and b/theme/dark/tab-disabled.png differ diff --git a/theme/dark/tab-hover.png b/theme/dark/tab-hover.png new file mode 100644 index 0000000..213e82b Binary files /dev/null and b/theme/dark/tab-hover.png differ diff --git a/theme/dark/tick-hor-accent.png b/theme/dark/tick-hor-accent.png new file mode 100644 index 0000000..b7c28dd Binary files /dev/null and b/theme/dark/tick-hor-accent.png differ diff --git a/theme/dark/tick-hor-basic.png b/theme/dark/tick-hor-basic.png new file mode 100644 index 0000000..ee4b441 Binary files /dev/null and b/theme/dark/tick-hor-basic.png differ diff --git a/theme/dark/tick-hor-hover.png b/theme/dark/tick-hor-hover.png new file mode 100644 index 0000000..bc859f4 Binary files /dev/null and b/theme/dark/tick-hor-hover.png differ diff --git a/theme/dark/tick-vert-accent.png b/theme/dark/tick-vert-accent.png new file mode 100644 index 0000000..da4f481 Binary files /dev/null and b/theme/dark/tick-vert-accent.png differ diff --git a/theme/dark/tick-vert-basic.png b/theme/dark/tick-vert-basic.png new file mode 100644 index 0000000..9e0a5ee Binary files /dev/null and b/theme/dark/tick-vert-basic.png differ diff --git a/theme/dark/tick-vert-hover.png b/theme/dark/tick-vert-hover.png new file mode 100644 index 0000000..e9ff3a3 Binary files /dev/null and b/theme/dark/tick-vert-hover.png differ diff --git a/theme/dark/tree-basic.png b/theme/dark/tree-basic.png new file mode 100644 index 0000000..c71808d Binary files /dev/null and b/theme/dark/tree-basic.png differ diff --git a/theme/dark/tree-pressed.png b/theme/dark/tree-pressed.png new file mode 100644 index 0000000..96d3a53 Binary files /dev/null and b/theme/dark/tree-pressed.png differ diff --git a/theme/dark/up-accent.png b/theme/dark/up-accent.png new file mode 100644 index 0000000..54a20f8 Binary files /dev/null and b/theme/dark/up-accent.png differ diff --git a/theme/dark/up.png b/theme/dark/up.png new file mode 100644 index 0000000..069d440 Binary files /dev/null and b/theme/dark/up.png differ diff --git a/theme/dark/vert-accent.png b/theme/dark/vert-accent.png new file mode 100644 index 0000000..1c228fd Binary files /dev/null and b/theme/dark/vert-accent.png differ diff --git a/theme/dark/vert-basic.png b/theme/dark/vert-basic.png new file mode 100644 index 0000000..4f6c46e Binary files /dev/null and b/theme/dark/vert-basic.png differ diff --git a/theme/dark/vert-hover.png b/theme/dark/vert-hover.png new file mode 100644 index 0000000..142ccce Binary files /dev/null and b/theme/dark/vert-hover.png differ diff --git a/theme/light.tcl b/theme/light.tcl new file mode 100644 index 0000000..29bdb03 --- /dev/null +++ b/theme/light.tcl @@ -0,0 +1,539 @@ +# Copyright (c) 2021 rdbende + +# The Azure theme is a beautiful modern ttk theme inspired by Microsoft's fluent design. + +package require Tk 8.6 + +namespace eval ttk::theme::azure-light { + variable version 2.0 + package provide ttk::theme::azure-light $version + + ttk::style theme create azure-light -parent clam -settings { + proc load_images {imgdir} { + variable I + foreach file [glob -directory $imgdir *.png] { + set img [file tail [file rootname $file]] + set I($img) [image create photo -file $file -format png] + } + } + + load_images [file join [file dirname [info script]] light] + + array set colors { + -fg "#000000" + -bg "#ffffff" + -disabledfg "#737373" + -disabledbg "#ffffff" + -selectfg "#ffffff" + -selectbg "#007fff" + } + + ttk::style layout TButton { + Button.button -children { + Button.padding -children { + Button.label -side left -expand true + } + } + } + + ttk::style layout Toolbutton { + Toolbutton.button -children { + Toolbutton.padding -children { + Toolbutton.label -side left -expand true + } + } + } + + ttk::style layout TMenubutton { + Menubutton.button -children { + Menubutton.padding -children { + Menubutton.indicator -side right + Menubutton.label -side right -expand true + } + } + } + + ttk::style layout TOptionMenu { + OptionMenu.button -children { + OptionMenu.padding -children { + OptionMenu.indicator -side right + OptionMenu.label -side right -expand true + } + } + } + + ttk::style layout Accent.TButton { + AccentButton.button -children { + AccentButton.padding -children { + AccentButton.label -side left -expand true + } + } + } + + ttk::style layout TCheckbutton { + Checkbutton.button -children { + Checkbutton.padding -children { + Checkbutton.indicator -side left + Checkbutton.label -side right -expand true + } + } + } + + ttk::style layout Switch.TCheckbutton { + Switch.button -children { + Switch.padding -children { + Switch.indicator -side left + Switch.label -side right -expand true + } + } + } + + ttk::style layout Toggle.TButton { + ToggleButton.button -children { + ToggleButton.padding -children { + ToggleButton.label -side left -expand true + } + } + } + + ttk::style layout TRadiobutton { + Radiobutton.button -children { + Radiobutton.padding -children { + Radiobutton.indicator -side left + Radiobutton.label -side right -expand true + } + } + } + + ttk::style layout Vertical.TScrollbar { + Vertical.Scrollbar.trough -sticky ns -children { + Vertical.Scrollbar.thumb -expand true + } + } + + ttk::style layout Horizontal.TScrollbar { + Horizontal.Scrollbar.trough -sticky ew -children { + Horizontal.Scrollbar.thumb -expand true + } + } + + ttk::style layout TCombobox { + Combobox.field -sticky nswe -children { + Combobox.padding -expand true -sticky nswe -children { + Combobox.textarea -sticky nswe + } + } + Combobox.button -side right -sticky ns -children { + Combobox.arrow -sticky nsew + } + } + + ttk::style layout TSpinbox { + Spinbox.field -sticky nsew -children { + Spinbox.padding -expand true -sticky nswe -children { + Spinbox.textarea -sticky nswe + } + + } + Spinbox.button -side right -sticky ns -children { + null -side right -children { + Spinbox.uparrow -side top + Spinbox.downarrow -side bottom + } + } + } + + ttk::style layout Horizontal.TSeparator { + Horizontal.separator -sticky nswe + } + + ttk::style layout Vertical.TSeparator { + Vertical.separator -sticky nswe + } + + ttk::style layout Horizontal.Tick.TScale { + Horizontal.TickScale.trough -sticky ew -children { + Horizontal.TickScale.slider -sticky w + } + } + + ttk::style layout Vertical.Tick.TScale { + Vertical.TickScale.trough -sticky ns -children { + Vertical.TickScale.slider -sticky n + } + } + + 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 right + } + } + } + + ttk::style layout TNotebook.Tab { + Notebook.tab -children { + Notebook.padding -side top -children { + Notebook.label -side top -sticky {} + } + } + } + + ttk::style layout Treeview.Item { + Treeitem.padding -sticky nswe -children { + Treeitem.indicator -side left -sticky {} + Treeitem.image -side left -sticky {} + Treeitem.text -side left -sticky {} + } + } + + + # Elements + + # Button + ttk::style configure TButton -padding {8 4 8 4} -width -10 -anchor center + + ttk::style element create Button.button image \ + [list $I(rect-basic) \ + {selected disabled} $I(rect-basic) \ + disabled $I(rect-basic) \ + selected $I(rect-basic) \ + pressed $I(rect-basic) \ + active $I(button-hover) \ + focus $I(button-hover) \ + ] -border 4 -sticky ewns + + # Toolbutton + ttk::style configure Toolbutton -padding {8 4 8 4} -width -10 -anchor center + + ttk::style element create Toolbutton.button image \ + [list $I(empty) \ + {selected disabled} $I(empty) \ + disabled $I(empty) \ + selected $I(rect-basic) \ + pressed $I(rect-basic) \ + active $I(rect-basic) \ + ] -border 4 -sticky ewns + + # Menubutton + ttk::style configure TMenubutton -padding {8 4 4 4} + + ttk::style element create Menubutton.button \ + image [list $I(rect-basic) \ + disabled $I(rect-basic) \ + pressed $I(rect-basic) \ + active $I(button-hover) \ + ] -border 4 -sticky ewns + + ttk::style element create Menubutton.indicator \ + image [list $I(down) \ + active $I(down) \ + pressed $I(down) \ + disabled $I(down) \ + ] -width 15 -sticky e + + # OptionMenu + ttk::style configure TOptionMenu -padding {8 4 4 4} + + ttk::style element create OptionMenu.button \ + image [list $I(rect-basic) \ + disabled $I(rect-basic) \ + pressed $I(rect-basic) \ + active $I(button-hover) \ + ] -border 4 -sticky ewns + + ttk::style element create OptionMenu.indicator \ + image [list $I(down) \ + active $I(down) \ + pressed $I(down) \ + disabled $I(down) \ + ] -width 15 -sticky e + + # AccentButton + ttk::style configure Accent.TButton -padding {8 4 8 4} -width -10 -anchor center + + ttk::style element create AccentButton.button image \ + [list $I(rect-accent) \ + {selected disabled} $I(rect-accent-hover) \ + disabled $I(rect-accent-hover) \ + selected $I(rect-accent) \ + pressed $I(rect-accent) \ + active $I(rect-accent-hover) \ + focus $I(rect-accent-hover) \ + ] -border 4 -sticky ewns + + # Checkbutton + ttk::style configure TCheckbutton -padding 4 + + ttk::style element create Checkbutton.indicator image \ + [list $I(box-basic) \ + {alternate disabled} $I(check-tri-basic) \ + {selected disabled} $I(check-basic) \ + disabled $I(box-basic) \ + {pressed alternate} $I(check-tri-hover) \ + {active alternate} $I(check-tri-hover) \ + alternate $I(check-tri-accent) \ + {pressed selected} $I(check-hover) \ + {active selected} $I(check-hover) \ + selected $I(check-accent) \ + {pressed !selected} $I(rect-hover) \ + active $I(box-hover) \ + ] -width 26 -sticky w + + # Switch + ttk::style element create Switch.indicator image \ + [list $I(off-basic) \ + {selected disabled} $I(on-basic) \ + disabled $I(off-basic) \ + {pressed selected} $I(on-hover) \ + {active selected} $I(on-hover) \ + selected $I(on-accent) \ + {pressed !selected} $I(off-hover) \ + active $I(off-hover) \ + ] -width 46 -sticky w + + # ToggleButton + ttk::style configure Toggle.TButton -padding {8 4 8 4} -width -10 -anchor center + + ttk::style element create ToggleButton.button image \ + [list $I(rect-basic) \ + {selected disabled} $I(rect-accent-hover) \ + disabled $I(rect-basic) \ + {pressed selected} $I(rect-basic) \ + {active selected} $I(rect-accent) \ + selected $I(rect-accent) \ + {pressed !selected} $I(rect-accent) \ + active $I(rect-basic) \ + ] -border 4 -sticky ewns + + # Radiobutton + ttk::style configure TRadiobutton -padding 4 + + ttk::style element create Radiobutton.indicator image \ + [list $I(outline-basic) \ + {alternate disabled} $I(radio-tri-basic) \ + {selected disabled} $I(radio-basic) \ + disabled $I(outline-basic) \ + {pressed alternate} $I(radio-tri-hover) \ + {active alternate} $I(radio-tri-hover) \ + alternate $I(radio-tri-accent) \ + {pressed selected} $I(radio-hover) \ + {active selected} $I(radio-hover) \ + selected $I(radio-accent) \ + {pressed !selected} $I(circle-hover) \ + active $I(outline-hover) \ + ] -width 26 -sticky w + + # Scrollbar + ttk::style element create Horizontal.Scrollbar.trough image $I(hor-basic) \ + -sticky ew + + ttk::style element create Horizontal.Scrollbar.thumb \ + image [list $I(hor-accent) \ + disabled $I(hor-basic) \ + pressed $I(hor-hover) \ + active $I(hor-hover) \ + ] -sticky ew + + ttk::style element create Vertical.Scrollbar.trough image $I(vert-basic) \ + -sticky ns + + ttk::style element create Vertical.Scrollbar.thumb \ + image [list $I(vert-accent) \ + disabled $I(vert-basic) \ + pressed $I(vert-hover) \ + active $I(vert-hover) \ + ] -sticky ns + + # Scale + ttk::style element create Horizontal.Scale.trough image $I(scale-hor) \ + -border 5 -padding 0 + + ttk::style element create Horizontal.Scale.slider \ + image [list $I(circle-accent) \ + disabled $I(circle-basic) \ + pressed $I(circle-hover) \ + active $I(circle-hover) \ + ] -sticky {} + + ttk::style element create Vertical.Scale.trough image $I(scale-vert) \ + -border 5 -padding 0 + + ttk::style element create Vertical.Scale.slider \ + image [list $I(circle-accent) \ + disabled $I(circle-basic) \ + pressed $I(circle-hover) \ + active $I(circle-hover) \ + ] -sticky {} + + # Tickscale + ttk::style element create Horizontal.TickScale.trough image $I(scale-hor) \ + -border 5 -padding 0 + + ttk::style element create Horizontal.TickScale.slider \ + image [list $I(tick-hor-accent) \ + disabled $I(tick-hor-basic) \ + pressed $I(tick-hor-hover) \ + active $I(tick-hor-hover) \ + ] -sticky {} + + ttk::style element create Vertical.TickScale.trough image $I(scale-vert) \ + -border 5 -padding 0 + + ttk::style element create Vertical.TickScale.slider \ + image [list $I(tick-vert-accent) \ + disabled $I(tick-vert-basic) \ + pressed $I(tick-vert-hover) \ + active $I(tick-vert-hover) \ + ] -sticky {} + + # Progressbar + ttk::style element create Horizontal.Progressbar.trough image $I(hor-basic) \ + -sticky ew + + ttk::style element create Horizontal.Progressbar.pbar image $I(hor-accent) \ + -sticky ew + + ttk::style element create Vertical.Progressbar.trough image $I(vert-basic) \ + -sticky ns + + ttk::style element create Vertical.Progressbar.pbar image $I(vert-accent) \ + -sticky ns + + # Entry + ttk::style element create Entry.field \ + image [list $I(box-basic) \ + {focus hover} $I(box-accent) \ + invalid $I(box-invalid) \ + disabled $I(box-basic) \ + focus $I(box-accent) \ + hover $I(box-hover) \ + ] -border 5 -padding {8} -sticky news + + # Combobox + ttk::style map TCombobox -selectbackground [list \ + {!focus} $colors(-selectbg) \ + {readonly hover} $colors(-selectbg) \ + {readonly focus} $colors(-selectbg) \ + ] + + ttk::style map TCombobox -selectforeground [list \ + {!focus} $colors(-selectfg) \ + {readonly hover} $colors(-selectfg) \ + {readonly focus} $colors(-selectfg) \ + ] + + ttk::style element create Combobox.field \ + image [list $I(box-basic) \ + {readonly disabled} $I(rect-basic) \ + {readonly pressed} $I(rect-basic) \ + {readonly focus hover} $I(button-hover) \ + {readonly focus} $I(button-hover) \ + {readonly hover} $I(button-hover) \ + {focus hover} $I(box-accent) \ + readonly $I(rect-basic) \ + invalid $I(box-invalid) \ + disabled $I(box-basic) \ + focus $I(box-accent) \ + hover $I(box-hover) \ + ] -border 5 -padding {8} + + ttk::style element create Combobox.button \ + image [list $I(combo-button-basic) \ + {!readonly focus} $I(combo-button-focus) \ + {readonly focus} $I(combo-button-hover) \ + {readonly hover} $I(combo-button-hover) + ] -border 5 -padding {2 6 6 6} + + ttk::style element create Combobox.arrow image $I(down) \ + -width 15 -sticky e + + # Spinbox + ttk::style element create Spinbox.field \ + image [list $I(box-basic) \ + invalid $I(box-invalid) \ + disabled $I(box-basic) \ + focus $I(box-accent) \ + hover $I(box-hover) \ + ] -border 5 -padding {8} -sticky news + + ttk::style element create Spinbox.uparrow \ + image [list $I(up) \ + disabled $I(up) \ + pressed $I(up-accent) \ + active $I(up-accent) \ + ] -border 4 -width 15 -sticky e + + ttk::style element create Spinbox.downarrow \ + image [list $I(down) \ + disabled $I(down) \ + pressed $I(down-accent) \ + active $I(down-accent) \ + ] -border 4 -width 15 -sticky e + + ttk::style element create Spinbox.button \ + image [list $I(combo-button-basic) \ + {!readonly focus} $I(combo-button-focus) \ + {readonly focus} $I(combo-button-hover) \ + {readonly hover} $I(combo-button-hover) + ] -border 5 -padding {2 6 6 6} + + # Sizegrip + ttk::style element create Sizegrip.sizegrip image $I(size) \ + -sticky ewns + + # Separator + ttk::style element create Horizontal.separator image $I(separator) + + ttk::style element create Vertical.separator image $I(separator) + + # Card + ttk::style element create Card.field image $I(card) \ + -border 10 -padding 4 -sticky news + + # Labelframe + ttk::style element create Labelframe.border image $I(card) \ + -border 5 -padding 4 -sticky news + + # Notebook + ttk::style element create Notebook.client \ + image $I(notebook) -border 5 + + ttk::style element create Notebook.tab \ + image [list $I(tab-disabled) \ + selected $I(tab-basic) \ + active $I(tab-hover) \ + ] -border 5 -padding {14 4} + + # Treeview + ttk::style element create Treeview.field image $I(card) \ + -border 5 + + ttk::style element create Treeheading.cell \ + image [list $I(tree-basic) \ + pressed $I(tree-pressed) + ] -border 5 -padding 4 -sticky ewns + + ttk::style element create Treeitem.indicator \ + image [list $I(right) \ + user2 $I(empty) \ + user1 $I(down) \ + ] -width 26 -sticky {} + + ttk::style configure Treeview -background $colors(-bg) + ttk::style configure Treeview.Item -padding {2 0 0 0} + ttk::style map Treeview \ + -background [list selected #ccc] \ + -foreground [list selected $colors(-fg)] + + # Panedwindow + # Insane hack to remove clam's ugly sash + ttk::style configure Sash -gripcount 0 + } +} diff --git a/theme/light/box-accent.png b/theme/light/box-accent.png new file mode 100644 index 0000000..89f1faf Binary files /dev/null and b/theme/light/box-accent.png differ diff --git a/theme/light/box-basic.png b/theme/light/box-basic.png new file mode 100644 index 0000000..090a00b Binary files /dev/null and b/theme/light/box-basic.png differ diff --git a/theme/light/box-hover.png b/theme/light/box-hover.png new file mode 100644 index 0000000..e691da4 Binary files /dev/null and b/theme/light/box-hover.png differ diff --git a/theme/light/box-invalid.png b/theme/light/box-invalid.png new file mode 100644 index 0000000..1f16f5c Binary files /dev/null and b/theme/light/box-invalid.png differ diff --git a/theme/light/button-hover.png b/theme/light/button-hover.png new file mode 100644 index 0000000..13366eb Binary files /dev/null and b/theme/light/button-hover.png differ diff --git a/theme/light/card.png b/theme/light/card.png new file mode 100644 index 0000000..09152f5 Binary files /dev/null and b/theme/light/card.png differ diff --git a/theme/light/check-accent.png b/theme/light/check-accent.png new file mode 100644 index 0000000..4aea79b Binary files /dev/null and b/theme/light/check-accent.png differ diff --git a/theme/light/check-basic.png b/theme/light/check-basic.png new file mode 100644 index 0000000..0c00612 Binary files /dev/null and b/theme/light/check-basic.png differ diff --git a/theme/light/check-hover.png b/theme/light/check-hover.png new file mode 100644 index 0000000..3811696 Binary files /dev/null and b/theme/light/check-hover.png differ diff --git a/theme/light/check-tri-accent.png b/theme/light/check-tri-accent.png new file mode 100644 index 0000000..d6baad5 Binary files /dev/null and b/theme/light/check-tri-accent.png differ diff --git a/theme/light/check-tri-basic.png b/theme/light/check-tri-basic.png new file mode 100644 index 0000000..e92bea5 Binary files /dev/null and b/theme/light/check-tri-basic.png differ diff --git a/theme/light/check-tri-hover.png b/theme/light/check-tri-hover.png new file mode 100644 index 0000000..d611d76 Binary files /dev/null and b/theme/light/check-tri-hover.png differ diff --git a/theme/light/circle-accent.png b/theme/light/circle-accent.png new file mode 100644 index 0000000..ea76e7a Binary files /dev/null and b/theme/light/circle-accent.png differ diff --git a/theme/light/circle-basic.png b/theme/light/circle-basic.png new file mode 100644 index 0000000..b16202e Binary files /dev/null and b/theme/light/circle-basic.png differ diff --git a/theme/light/circle-hover.png b/theme/light/circle-hover.png new file mode 100644 index 0000000..6ea1803 Binary files /dev/null and b/theme/light/circle-hover.png differ diff --git a/theme/light/combo-button-basic.png b/theme/light/combo-button-basic.png new file mode 100644 index 0000000..b7daa04 Binary files /dev/null and b/theme/light/combo-button-basic.png differ diff --git a/theme/light/combo-button-focus.png b/theme/light/combo-button-focus.png new file mode 100644 index 0000000..59c7db4 Binary files /dev/null and b/theme/light/combo-button-focus.png differ diff --git a/theme/light/combo-button-hover.png b/theme/light/combo-button-hover.png new file mode 100644 index 0000000..1d06c57 Binary files /dev/null and b/theme/light/combo-button-hover.png differ diff --git a/theme/light/down-accent.png b/theme/light/down-accent.png new file mode 100644 index 0000000..5bb987d Binary files /dev/null and b/theme/light/down-accent.png differ diff --git a/theme/light/down.png b/theme/light/down.png new file mode 100644 index 0000000..1fd7e4f Binary files /dev/null and b/theme/light/down.png differ diff --git a/theme/light/empty.png b/theme/light/empty.png new file mode 100644 index 0000000..202e3de Binary files /dev/null and b/theme/light/empty.png differ diff --git a/theme/light/hor-accent.png b/theme/light/hor-accent.png new file mode 100644 index 0000000..145b10e Binary files /dev/null and b/theme/light/hor-accent.png differ diff --git a/theme/light/hor-basic.png b/theme/light/hor-basic.png new file mode 100644 index 0000000..eb18d1e Binary files /dev/null and b/theme/light/hor-basic.png differ diff --git a/theme/light/hor-hover.png b/theme/light/hor-hover.png new file mode 100644 index 0000000..4d6c0f1 Binary files /dev/null and b/theme/light/hor-hover.png differ diff --git a/theme/light/notebook.png b/theme/light/notebook.png new file mode 100644 index 0000000..430d9f2 Binary files /dev/null and b/theme/light/notebook.png differ diff --git a/theme/light/off-basic.png b/theme/light/off-basic.png new file mode 100644 index 0000000..cf383f0 Binary files /dev/null and b/theme/light/off-basic.png differ diff --git a/theme/light/off-hover.png b/theme/light/off-hover.png new file mode 100644 index 0000000..893b39c Binary files /dev/null and b/theme/light/off-hover.png differ diff --git a/theme/light/on-accent.png b/theme/light/on-accent.png new file mode 100644 index 0000000..f5a86c9 Binary files /dev/null and b/theme/light/on-accent.png differ diff --git a/theme/light/on-basic.png b/theme/light/on-basic.png new file mode 100644 index 0000000..23ec72f Binary files /dev/null and b/theme/light/on-basic.png differ diff --git a/theme/light/on-hover.png b/theme/light/on-hover.png new file mode 100644 index 0000000..d55f7ae Binary files /dev/null and b/theme/light/on-hover.png differ diff --git a/theme/light/outline-basic.png b/theme/light/outline-basic.png new file mode 100644 index 0000000..2e79874 Binary files /dev/null and b/theme/light/outline-basic.png differ diff --git a/theme/light/outline-hover.png b/theme/light/outline-hover.png new file mode 100644 index 0000000..502915d Binary files /dev/null and b/theme/light/outline-hover.png differ diff --git a/theme/light/radio-accent.png b/theme/light/radio-accent.png new file mode 100644 index 0000000..1f7329d Binary files /dev/null and b/theme/light/radio-accent.png differ diff --git a/theme/light/radio-basic.png b/theme/light/radio-basic.png new file mode 100644 index 0000000..793531e Binary files /dev/null and b/theme/light/radio-basic.png differ diff --git a/theme/light/radio-hover.png b/theme/light/radio-hover.png new file mode 100644 index 0000000..d6faa74 Binary files /dev/null and b/theme/light/radio-hover.png differ diff --git a/theme/light/radio-tri-accent.png b/theme/light/radio-tri-accent.png new file mode 100644 index 0000000..86dd4cb Binary files /dev/null and b/theme/light/radio-tri-accent.png differ diff --git a/theme/light/radio-tri-basic.png b/theme/light/radio-tri-basic.png new file mode 100644 index 0000000..da85d03 Binary files /dev/null and b/theme/light/radio-tri-basic.png differ diff --git a/theme/light/radio-tri-hover.png b/theme/light/radio-tri-hover.png new file mode 100644 index 0000000..ded14a6 Binary files /dev/null and b/theme/light/radio-tri-hover.png differ diff --git a/theme/light/rect-accent-hover.png b/theme/light/rect-accent-hover.png new file mode 100644 index 0000000..5daa96a Binary files /dev/null and b/theme/light/rect-accent-hover.png differ diff --git a/theme/light/rect-accent.png b/theme/light/rect-accent.png new file mode 100644 index 0000000..2d08674 Binary files /dev/null and b/theme/light/rect-accent.png differ diff --git a/theme/light/rect-basic.png b/theme/light/rect-basic.png new file mode 100644 index 0000000..239ca31 Binary files /dev/null and b/theme/light/rect-basic.png differ diff --git a/theme/light/rect-hover.png b/theme/light/rect-hover.png new file mode 100644 index 0000000..9252c4f Binary files /dev/null and b/theme/light/rect-hover.png differ diff --git a/theme/light/right.png b/theme/light/right.png new file mode 100644 index 0000000..8122cc9 Binary files /dev/null and b/theme/light/right.png differ diff --git a/theme/light/scale-hor.png b/theme/light/scale-hor.png new file mode 100644 index 0000000..d11f508 Binary files /dev/null and b/theme/light/scale-hor.png differ diff --git a/theme/light/scale-vert.png b/theme/light/scale-vert.png new file mode 100644 index 0000000..f78595d Binary files /dev/null and b/theme/light/scale-vert.png differ diff --git a/theme/light/separator.png b/theme/light/separator.png new file mode 100644 index 0000000..7bffc9a Binary files /dev/null and b/theme/light/separator.png differ diff --git a/theme/light/size.png b/theme/light/size.png new file mode 100644 index 0000000..bde3ade Binary files /dev/null and b/theme/light/size.png differ diff --git a/theme/light/tab-basic.png b/theme/light/tab-basic.png new file mode 100644 index 0000000..365fdff Binary files /dev/null and b/theme/light/tab-basic.png differ diff --git a/theme/light/tab-disabled.png b/theme/light/tab-disabled.png new file mode 100644 index 0000000..eeee518 Binary files /dev/null and b/theme/light/tab-disabled.png differ diff --git a/theme/light/tab-hover.png b/theme/light/tab-hover.png new file mode 100644 index 0000000..5003806 Binary files /dev/null and b/theme/light/tab-hover.png differ diff --git a/theme/light/tick-hor-accent.png b/theme/light/tick-hor-accent.png new file mode 100644 index 0000000..6940b1c Binary files /dev/null and b/theme/light/tick-hor-accent.png differ diff --git a/theme/light/tick-hor-basic.png b/theme/light/tick-hor-basic.png new file mode 100644 index 0000000..ba727d7 Binary files /dev/null and b/theme/light/tick-hor-basic.png differ diff --git a/theme/light/tick-hor-hover.png b/theme/light/tick-hor-hover.png new file mode 100644 index 0000000..cb66b59 Binary files /dev/null and b/theme/light/tick-hor-hover.png differ diff --git a/theme/light/tick-vert-accent.png b/theme/light/tick-vert-accent.png new file mode 100644 index 0000000..dfdb89c Binary files /dev/null and b/theme/light/tick-vert-accent.png differ diff --git a/theme/light/tick-vert-basic.png b/theme/light/tick-vert-basic.png new file mode 100644 index 0000000..a58440d Binary files /dev/null and b/theme/light/tick-vert-basic.png differ diff --git a/theme/light/tick-vert-hover.png b/theme/light/tick-vert-hover.png new file mode 100644 index 0000000..18cbec5 Binary files /dev/null and b/theme/light/tick-vert-hover.png differ diff --git a/theme/light/tree-basic.png b/theme/light/tree-basic.png new file mode 100644 index 0000000..755062b Binary files /dev/null and b/theme/light/tree-basic.png differ diff --git a/theme/light/tree-pressed.png b/theme/light/tree-pressed.png new file mode 100644 index 0000000..ee28416 Binary files /dev/null and b/theme/light/tree-pressed.png differ diff --git a/theme/light/up-accent.png b/theme/light/up-accent.png new file mode 100644 index 0000000..54a20f8 Binary files /dev/null and b/theme/light/up-accent.png differ diff --git a/theme/light/up.png b/theme/light/up.png new file mode 100644 index 0000000..16568f2 Binary files /dev/null and b/theme/light/up.png differ diff --git a/theme/light/vert-accent.png b/theme/light/vert-accent.png new file mode 100644 index 0000000..7f87bdc Binary files /dev/null and b/theme/light/vert-accent.png differ diff --git a/theme/light/vert-basic.png b/theme/light/vert-basic.png new file mode 100644 index 0000000..d5f61ec Binary files /dev/null and b/theme/light/vert-basic.png differ diff --git a/theme/light/vert-hover.png b/theme/light/vert-hover.png new file mode 100644 index 0000000..bfdc9d0 Binary files /dev/null and b/theme/light/vert-hover.png differ