mirror of
https://github.com/EDCD/EDMarketConnector.git
synced 2025-04-13 07:47:14 +03:00
[2186] MyNB First Pass
This commit is contained in:
parent
08818785d0
commit
f7b39f8daf
@ -16,13 +16,7 @@ import sys
|
||||
import tkinter as tk
|
||||
from tkinter import ttk
|
||||
|
||||
# Can't do this with styles on OSX - http://www.tkdocs.com/tutorial/styles.html#whydifficult
|
||||
if sys.platform == 'darwin':
|
||||
from platform import mac_ver
|
||||
PAGEFG = 'systemButtonText'
|
||||
PAGEBG = 'systemButtonActiveDarkShadow'
|
||||
|
||||
elif sys.platform == 'win32':
|
||||
if sys.platform == 'win32':
|
||||
PAGEFG = 'SystemWindowText'
|
||||
PAGEBG = 'SystemWindow' # typically white
|
||||
|
||||
@ -35,14 +29,7 @@ class Notebook(ttk.Notebook):
|
||||
ttk.Notebook.__init__(self, master, **kw)
|
||||
style = ttk.Style()
|
||||
|
||||
if sys.platform == 'darwin':
|
||||
if list(map(int, mac_ver()[0].split('.'))) >= [10, 10]:
|
||||
# Hack for tab appearance with 8.5 on Yosemite & El Capitan. For proper fix see
|
||||
# https://github.com/tcltk/tk/commit/55c4dfca9353bbd69bbcec5d63bf1c8dfb461e25
|
||||
style.configure('TNotebook.Tab', padding=(12, 10, 12, 2))
|
||||
style.map('TNotebook.Tab', foreground=[('selected', '!background', 'systemWhite')])
|
||||
self.grid(sticky=tk.NSEW) # Already padded apropriately
|
||||
elif sys.platform == 'win32':
|
||||
if sys.platform == 'win32':
|
||||
style.configure('nb.TFrame', background=PAGEBG)
|
||||
style.configure('nb.TButton', background=PAGEBG)
|
||||
style.configure('nb.TCheckbutton', foreground=PAGEFG, background=PAGEBG)
|
||||
@ -60,11 +47,7 @@ class Frame(sys.platform == 'darwin' and tk.Frame or ttk.Frame): # type: ignore
|
||||
"""Custom t(t)k.Frame class to fix some display issues."""
|
||||
|
||||
def __init__(self, master: ttk.Notebook | None = None, **kw):
|
||||
if sys.platform == 'darwin':
|
||||
kw['background'] = kw.pop('background', PAGEBG)
|
||||
tk.Frame.__init__(self, master, **kw)
|
||||
tk.Frame(self).grid(pady=5)
|
||||
elif sys.platform == 'win32':
|
||||
if sys.platform == 'win32':
|
||||
ttk.Frame.__init__(self, master, style='nb.TFrame', **kw)
|
||||
ttk.Frame(self).grid(pady=5) # top spacer
|
||||
else:
|
||||
@ -91,21 +74,14 @@ class Entry(sys.platform == 'darwin' and tk.Entry or ttk.Entry): # type: ignore
|
||||
"""Custom t(t)k.Entry class to fix some display issues."""
|
||||
|
||||
def __init__(self, master: ttk.Frame | None = None, **kw):
|
||||
if sys.platform == 'darwin':
|
||||
kw['highlightbackground'] = kw.pop('highlightbackground', PAGEBG)
|
||||
tk.Entry.__init__(self, master, **kw)
|
||||
else:
|
||||
ttk.Entry.__init__(self, master, **kw)
|
||||
ttk.Entry.__init__(self, master, **kw)
|
||||
|
||||
|
||||
class Button(sys.platform == 'darwin' and tk.Button or ttk.Button): # type: ignore
|
||||
"""Custom t(t)k.Button class to fix some display issues."""
|
||||
|
||||
def __init__(self, master: ttk.Frame | None = None, **kw):
|
||||
if sys.platform == 'darwin':
|
||||
kw['highlightbackground'] = kw.pop('highlightbackground', PAGEBG)
|
||||
tk.Button.__init__(self, master, **kw)
|
||||
elif sys.platform == 'win32':
|
||||
if sys.platform == 'win32':
|
||||
ttk.Button.__init__(self, master, style='nb.TButton', **kw)
|
||||
else:
|
||||
ttk.Button.__init__(self, master, **kw)
|
||||
@ -115,29 +91,14 @@ class ColoredButton(sys.platform == 'darwin' and tk.Label or tk.Button): # type
|
||||
"""Custom t(t)k.ColoredButton class to fix some display issues."""
|
||||
|
||||
def __init__(self, master: ttk.Frame | None = None, **kw):
|
||||
if sys.platform == 'darwin':
|
||||
# Can't set Button background on OSX, so use a Label instead
|
||||
kw['relief'] = kw.pop('relief', tk.RAISED)
|
||||
self._command = kw.pop('command', None)
|
||||
tk.Label.__init__(self, master, **kw)
|
||||
self.bind('<Button-1>', self._press)
|
||||
else:
|
||||
tk.Button.__init__(self, master, **kw)
|
||||
|
||||
if sys.platform == 'darwin':
|
||||
def _press(self, event):
|
||||
self._command()
|
||||
tk.Button.__init__(self, master, **kw)
|
||||
|
||||
|
||||
class Checkbutton(sys.platform == 'darwin' and tk.Checkbutton or ttk.Checkbutton): # type: ignore
|
||||
"""Custom t(t)k.Checkbutton class to fix some display issues."""
|
||||
|
||||
def __init__(self, master: ttk.Frame | None = None, **kw):
|
||||
if sys.platform == 'darwin':
|
||||
kw['foreground'] = kw.pop('foreground', PAGEFG)
|
||||
kw['background'] = kw.pop('background', PAGEBG)
|
||||
tk.Checkbutton.__init__(self, master, **kw)
|
||||
elif sys.platform == 'win32':
|
||||
if sys.platform == 'win32':
|
||||
ttk.Checkbutton.__init__(self, master, style='nb.TCheckbutton', **kw)
|
||||
else:
|
||||
ttk.Checkbutton.__init__(self, master, **kw)
|
||||
@ -147,11 +108,7 @@ class Radiobutton(sys.platform == 'darwin' and tk.Radiobutton or ttk.Radiobutton
|
||||
"""Custom t(t)k.Radiobutton class to fix some display issues."""
|
||||
|
||||
def __init__(self, master: ttk.Frame | None = None, **kw):
|
||||
if sys.platform == 'darwin':
|
||||
kw['foreground'] = kw.pop('foreground', PAGEFG)
|
||||
kw['background'] = kw.pop('background', PAGEBG)
|
||||
tk.Radiobutton.__init__(self, master, **kw)
|
||||
elif sys.platform == 'win32':
|
||||
if sys.platform == 'win32':
|
||||
ttk.Radiobutton.__init__(self, master, style='nb.TRadiobutton', **kw)
|
||||
else:
|
||||
ttk.Radiobutton.__init__(self, master, **kw)
|
||||
@ -161,12 +118,7 @@ class OptionMenu(sys.platform == 'darwin' and tk.OptionMenu or ttk.OptionMenu):
|
||||
"""Custom t(t)k.OptionMenu class to fix some display issues."""
|
||||
|
||||
def __init__(self, master, variable, default=None, *values, **kw):
|
||||
if sys.platform == 'darwin':
|
||||
variable.set(default)
|
||||
bg = kw.pop('background', PAGEBG)
|
||||
tk.OptionMenu.__init__(self, master, variable, *values, **kw)
|
||||
self['background'] = bg
|
||||
elif sys.platform == 'win32':
|
||||
if sys.platform == 'win32':
|
||||
# OptionMenu derives from Menubutton at the Python level, so uses Menubutton's style
|
||||
ttk.OptionMenu.__init__(self, master, variable, default, *values, style='nb.TMenubutton', **kw)
|
||||
self['menu'].configure(background=PAGEBG)
|
||||
|
Loading…
x
Reference in New Issue
Block a user