Instead of asking macOS if we're in dark mode and then hoping for support in the window - we now use a tk call to check the window directly. If this is not supported in the current tk version, we assume light mode which should prevent erroneously adjusting the header text colors.
On macOS, with tk versions that support full dark mode, the column headers take the background color only in dark mode - falling back to white in light mode regardless of the background color. This can cause the headers to be unreadable at times.
This function returns whether or not we should be adjusting the header text color based on the background color - which is always True on non-macOS systems, and True on macOS when in dark mode.
In macOS with the newer python 3.10.x that has working dark mode - the column headers get their background color from the background of the treeview. In a recent commit, support was added for determining if the header text should be black or white based on the luminance of the treeview background. This does not work with older python on macOS where full dark mode is not supported, so a checkbox is added to ignore the treeview background color when calculating the header text color. Default is black - but the invert checkbox still works, and can set it to white if needed.
* Lift last window after saving/duplicating
* Fix variable assigning in duplicate function
* Stagger check_open() and open_plist_from_app() functions with a lock
Auto-pad base64 values to 4 char chunks.
Strip = in base64 input.
Setup convenience methods to convert to/from bytes/strings.
Make the from text focused when opening the convert window.
* import 'families' function from tkFont (both py2 and py3).
* supply properties for "ProperTree" to correspond with the option in settings.
* change rest of properties accordingly to suit hierarchy.
* implement custom font_family functions (font_select, font_pick, update_font_family, set_font_family).
* grab 'font_family' value from local settings, default to Tk's 'text font' if not found, and update accordingly.
* TODO: fix set_font_family changing font_size when 'custom_font' setting is ticked off.
* TODO: test on py2 and py3
* TODO: test on Arch-based distros, OSX versions <10.15