
from typing import TypeVar, Iterable, Tuple, Any

from zoo.preferences import prefinterface


# class ZooToolsPreference(prefinterface.PreferenceInterface):
#     def __getattr__(self, name) -> Any: ...
#     BROWSER_BG_COLOR = Tuple[int, int, int, int]
#     BROWSER_BG_SELECTED_COLOR = Tuple[int, int, int, int]
#     BROWSER_BORDER_HOVER_COLOR = Tuple[int, int, int, int]
#     BROWSER_BORDER_SELECTED_COLOR = Tuple[int, int, int, int]
#     BROWSER_ICON_BG_COLOR = Tuple[int, int, int, int]
#     BROWSER_SELECTED_COLOR = Tuple[int, int, int, int]
#     BROWSER_TEXT_BG_COLOR = Tuple[int, int, int, int]
#     BROWSER_TEXT_COLOR = Tuple[int, int, int, int]
#     BTN_BACKGROUND_COLOR = Tuple[int, int, int, int]
#     BTN_HOVER_COLOR = Tuple[int, int, int, int]
#     BTN_PADDING = int
#     BTN_PRESS_COLOR = Tuple[int, int, int, int]
#     BUTTON_BORDER_RADIUS = int
#     BUTTON_ICON_COLOR = Tuple[int, int, int, int]
#     BUTTON_TEXT_COLOR = Tuple[int, int, int, int]
#     CHECKBOX_BG_COLOR = Tuple[int, int, int, int]
#     CHECKBOX_CHECKED_ICON = str
#     CHECKBOX_SIZE = int
#     CHECKBOX_UNCHECKED_ICON = str
#     COLOR_BTN_RADIUS = int
#     COMBO_COLOR = Tuple[int, int, int, int]
#     COMBO_HOVER_COLOR = Tuple[int, int, int, int]
#     COMBO_ICON = int
#     COMBO_ICON_SIZE = int
#     COMBO_LEFTBORDER = int
#     COMBO_SIZE = int
#     COMMAND_BTN_HEIGHT = int
#     COMPONENT_ITEM_FONT = int
#     COMPONENT_TREE_BG = Tuple[int, int, int, int]
#     COMPONENT_TREE_SEL_COL = Tuple[int, int, int, int]
#     DEBUG_1 = Tuple[int, int, int, int]
#     DEBUG_2 = Tuple[int, int, int, int]
#     DEFAULT_FONTSIZE = int
#     DIAGONALBG_ICON = str
#     DIRECTORIES_WIDGET = Tuple[int, int, int, int]
#     DISABLED_COLOR = Tuple[int, int, int, int]
#     EMBED_WINDOW_BG = Tuple[int, int, int, int]
#     EMBED_WINDOW_BORDER_COL = Tuple[int, int, int, int]
#     EXP_TOOLTIP_BG = Tuple[int, int, int, int]
#     EXP_TOOLTIP_FONT_SIZE = int
#     EXP_TOOLTIP_TITLE_SIZE = int
#     FIVE_PIXELS = int
#     FOUR_PIXELS = int
#     FRAMELESS_ROUNDED_CORNERS = int
#     FRAMELESS_TITLEBAR_COLOR = Tuple[int, int, int, int]
#     FRAMELESS_TITLELABEL_COLOR = Tuple[int, int, int, int]
#     FRAMELESS_WINDOW_CONTENTS = Tuple[int, int, int, int]
#     HEADER_FONTSIZE = int
#     HIGHLIGHT_ACTIVE_COLOR = Tuple[int, int, int, int]
#     HIVE_COLOR = Tuple[int, int, int, int]
#     HIVE_COMPONENT_COLOR = Tuple[int, int, int, int]
#     HIVE_INDICATOR_BUILT = Tuple[int, int, int, int]
#     HIVE_INDICATOR_NOTBUILT = Tuple[int, int, int, int]
#     HIVE_TEMPLATE_COLOR = Tuple[int, int, int, int]
#     HIVE_TOOLBAR_ICON_COLOR = Tuple[int, int, int, int]
#     HIVE_TOOLBAR_ICON_HUESHIFT = int
#     HIVE_VERTICAL_TOOLBAR_PAD = Tuple[int, int, int, int]
#     HOTKEY_ADMIN_LOGO_COLOR = Tuple[int, int, int, int]
#     HOVER_BACKGROUND_COLOR = Tuple[int, int, int, int]
#     ICON_HOVER_COLOR = Tuple[int, int, int, int]
#     ICON_PRIMARY_COLOR = Tuple[int, int, int, int]
#     IMAGEBUTTON_HOVER_COLOR = Tuple[int, int, int, int]
#     MAIN_BACKGROUND_COLOR = Tuple[int, int, int, int]
#     MAIN_FOREGROUND_COLOR = Tuple[int, int, int, int]
#     NEG_ONE_PIXEL = int
#     ONE_PIXEL = int
#     PRIMARY_COLOR = Tuple[int, int, int, int]
#     RADIO_SIZE = int
#     RADIO_UNCHECKED_RADIUS = int
#     RADIO_UNCHECKED_SIZE = int
#     RESIZER_BTN_BGCOLOR = Tuple[int, int, int, int]
#     RESIZER_BTN_BGCOLOR_HOVER = Tuple[int, int, int, int]
#     ROUNDBUTTON_BGCOLOR = Tuple[int, int, int, int]
#     ROUNDBUTTON_BGCOLOR_HOVER = Tuple[int, int, int, int]
#     SCROLL_BAR_BG = Tuple[int, int, int, int]
#     SCROLL_BAR_COLOR = Tuple[int, int, int, int]
#     SECONDARY_BACKGROUND_COLOR = Tuple[int, int, int, int]
#     SECONDARY_FOREGROUND_COLOR = Tuple[int, int, int, int]
#     SETTINGS_TWEAK_BAR = Tuple[int, int, int, int]
#     SHADOWEDBTN_BGCOLOR = Tuple[int, int, int, int]
#     SHADOWEDBTN_BGCOLOR_HOVER = Tuple[int, int, int, int]
#     SHADOWEDBTN_BGCOLOR_PRESSED = Tuple[int, int, int, int]
#     SHADOWEDBTN_HOVER_ICON = Tuple[int, int, int, int]
#     SHADOWEDBTN_HOVER_IMAGEBG = Tuple[int, int, int, int]
#     SHADOWEDBTN_HOVER_SHADOWBG = Tuple[int, int, int, int]
#     SHADOWEDBTN_IMAGEBG = Tuple[int, int, int, int]
#     SHADOWEDBTN_PRESSED_ICON = Tuple[int, int, int, int]
#     SHADOWEDBTN_PRESSED_IMAGEBG = Tuple[int, int, int, int]
#     SHADOWEDBTN_PRESSED_SHADOWBG = Tuple[int, int, int, int]
#     SHADOWEDBTN_SHADOWBG = Tuple[int, int, int, int]
#     SHADOWEDBTN_TEXT_HOVER = Tuple[int, int, int, int]
#     SHADOWEDBTN_TEXT_PRESSED = Tuple[int, int, int, int]
#     SLIDER_BG_COLOR = Tuple[int, int, int, int]
#     SLIDER_BG_COLOR_DISABLED = Tuple[int, int, int, int]
#     SLIDER_BORDER_RADIUS = Tuple[int, int, int, int]
#     SLIDER_DISABLED = Tuple[int, int, int, int]
#     SLIDER_GROOVE_BORDER_RADIUS = int
#     SLIDER_HANDLE_BORDER_RADIUS = int
#     SLIDER_HANDLE_MARGIN = int
#     SLIDER_HANDLE_SIZE = int
#     SLIDER_INACTIVE = Tuple[int, int, int, int]
#     SLIDER_SIZE = int
#     STACKITEM_BACKGROUND_COLOR = Tuple[int, int, int, int]
#     STACKITEM_HEADER_FOREGROUND = Tuple[int, int, int, int]
#     STACK_BORDER_WIDTH = int
#     STACK_TITLE_DISABLED = Tuple[int, int, int, int]
#     TBL_TREE_ACTIVE_COLOR = Tuple[int, int, int, int]
#     TBL_TREE_ACT_TEXT_COLOR = Tuple[int, int, int, int]
#     TBL_TREE_ALT_COLOR = Tuple[int, int, int, int]
#     TBL_TREE_BG_COLOR = Tuple[int, int, int, int]
#     TBL_TREE_GRID_COLOR = Tuple[int, int, int, int]
#     TBL_TREE_HEADER_COLOR = Tuple[int, int, int, int]
#     TBL_TREE_HOVER_COLOR = Tuple[int, int, int, int]
#     TEAROFF_BG = Tuple[int, int, int, int]
#     TEAROFF_FONT_SIZE = int
#     TEAROFF_HOVER = Tuple[int, int, int, int]
#     TEAROFF_LINES = Tuple[int, int, int, int]
#     TEXT_BOX_BG_COLOR = Tuple[int, int, int, int]
#     TEXT_BOX_FG_COLOR = Tuple[int, int, int, int]
#     TEXT_INACTIVE_COLOR = Tuple[int, int, int, int]
#     THREE_PIXELS = int
#     TITLE_FONTSIZE = int
#     TITLE_LARGE_COLOR = Tuple[int, int, int, int]
#     TITLE_MINIMIZED_FONTSIZE = int
#     TITLE_REG_TEXT_COLOR = Tuple[int, int, int, int]
#     TLSET_BORDER_DESELECT = Tuple[int, int, int, int]
#     TLSET_BORDER_HOVER = Tuple[int, int, int, int]
#     TLSET_ICON_POPUP_BG = Tuple[int, int, int, int]
#     TOOLSET_LOGO_HIGHLIGHT_OFFSET = Tuple[int, int, int, int]
#     TOOLSET_LOGO_INACTIVE_COLOR = Tuple[int, int, int, int]
#     TOOLSET_RESIZER_HANDLE_COLOR = Tuple[int, int, int, int]
#     TOOLTIP_BG = Tuple[int, int, int, int]
#     TOOLTIP_BORDER_COLOR = Tuple[int, int, int, int]
#     TOOLTIP_BORDER_SIZE = int
#     TOOLTIP_FONT_COLOR = Tuple[int, int, int, int]
#     TREEITEM_DRAG_TINT = Tuple[int, int, int, int]
#     TWO_PIXELS = int
#     VIEW_BACKGROUND_COLOR = Tuple[int, int, int, int]
#     WIDGET_ROUNDED_CORNERS = int
#     WINDOW_LOGO_HIGHLIGHT_COLOR = Tuple[int, int, int, int]


class ThemeDict(dict):
    BROWSER_BG_COLOR = Tuple[int, int, int, int]
    BROWSER_BG_SELECTED_COLOR = Tuple[int, int, int, int]
    BROWSER_BORDER_HOVER_COLOR = Tuple[int, int, int, int]
    BROWSER_BORDER_SELECTED_COLOR = Tuple[int, int, int, int]
    BROWSER_ICON_BG_COLOR = Tuple[int, int, int, int]
    BROWSER_SELECTED_COLOR = Tuple[int, int, int, int]
    BROWSER_TEXT_BG_COLOR = Tuple[int, int, int, int]
    BROWSER_TEXT_COLOR = Tuple[int, int, int, int]
    BTN_BACKGROUND_COLOR = Tuple[int, int, int, int]
    BTN_HOVER_COLOR = Tuple[int, int, int, int]
    BTN_PADDING = int
    BTN_PRESS_COLOR = Tuple[int, int, int, int]
    BUTTON_BORDER_RADIUS = int
    BUTTON_ICON_COLOR = Tuple[int, int, int, int]
    BUTTON_TEXT_COLOR = Tuple[int, int, int, int]
    CHECKBOX_BG_COLOR = Tuple[int, int, int, int]
    CHECKBOX_CHECKED_ICON = str
    CHECKBOX_SIZE = int
    CHECKBOX_UNCHECKED_ICON = str
    COLOR_BTN_RADIUS = int
    COMBO_COLOR = Tuple[int, int, int, int]
    COMBO_HOVER_COLOR = Tuple[int, int, int, int]
    COMBO_ICON = int
    COMBO_ICON_SIZE = int
    COMBO_LEFTBORDER = int
    COMBO_SIZE = int
    COMMAND_BTN_HEIGHT = int
    COMPONENT_ITEM_FONT = int
    COMPONENT_TREE_BG = Tuple[int, int, int, int]
    COMPONENT_TREE_SEL_COL = Tuple[int, int, int, int]
    DEBUG_1 = Tuple[int, int, int, int]
    DEBUG_2 = Tuple[int, int, int, int]
    DEFAULT_FONTSIZE = int
    DIAGONALBG_ICON = str
    DIRECTORIES_WIDGET = Tuple[int, int, int, int]
    DISABLED_COLOR = Tuple[int, int, int, int]
    EMBED_WINDOW_BG = Tuple[int, int, int, int]
    EMBED_WINDOW_BORDER_COL = Tuple[int, int, int, int]
    EXP_TOOLTIP_BG = Tuple[int, int, int, int]
    EXP_TOOLTIP_FONT_SIZE = int
    EXP_TOOLTIP_TITLE_SIZE = int
    FIVE_PIXELS = int
    FOUR_PIXELS = int
    FRAMELESS_ROUNDED_CORNERS = int
    FRAMELESS_TITLEBAR_COLOR = Tuple[int, int, int, int]
    FRAMELESS_TITLELABEL_COLOR = Tuple[int, int, int, int]
    FRAMELESS_WINDOW_CONTENTS = Tuple[int, int, int, int]
    HEADER_FONTSIZE = int
    HIGHLIGHT_ACTIVE_COLOR = Tuple[int, int, int, int]
    HIVE_COLOR = Tuple[int, int, int, int]
    HIVE_COMPONENT_COLOR = Tuple[int, int, int, int]
    HIVE_INDICATOR_BUILT = Tuple[int, int, int, int]
    HIVE_INDICATOR_NOTBUILT = Tuple[int, int, int, int]
    HIVE_TEMPLATE_COLOR = Tuple[int, int, int, int]
    HIVE_TOOLBAR_ICON_COLOR = Tuple[int, int, int, int]
    HIVE_TOOLBAR_ICON_HUESHIFT = int
    HIVE_VERTICAL_TOOLBAR_PAD = Tuple[int, int, int, int]
    HOTKEY_ADMIN_LOGO_COLOR = Tuple[int, int, int, int]
    HOVER_BACKGROUND_COLOR = Tuple[int, int, int, int]
    ICON_HOVER_COLOR = Tuple[int, int, int, int]
    ICON_PRIMARY_COLOR = Tuple[int, int, int, int]
    IMAGEBUTTON_HOVER_COLOR = Tuple[int, int, int, int]
    MAIN_BACKGROUND_COLOR = Tuple[int, int, int, int]
    MAIN_FOREGROUND_COLOR = Tuple[int, int, int, int]
    NEG_ONE_PIXEL = int
    ONE_PIXEL = int
    PRIMARY_COLOR = Tuple[int, int, int, int]
    RADIO_SIZE = int
    RADIO_UNCHECKED_RADIUS = int
    RADIO_UNCHECKED_SIZE = int
    RESIZER_BTN_BGCOLOR = Tuple[int, int, int, int]
    RESIZER_BTN_BGCOLOR_HOVER = Tuple[int, int, int, int]
    ROUNDBUTTON_BGCOLOR = Tuple[int, int, int, int]
    ROUNDBUTTON_BGCOLOR_HOVER = Tuple[int, int, int, int]
    SCROLL_BAR_BG = Tuple[int, int, int, int]
    SCROLL_BAR_COLOR = Tuple[int, int, int, int]
    SECONDARY_BACKGROUND_COLOR = Tuple[int, int, int, int]
    SECONDARY_FOREGROUND_COLOR = Tuple[int, int, int, int]
    SETTINGS_TWEAK_BAR = Tuple[int, int, int, int]
    SHADOWEDBTN_BGCOLOR = Tuple[int, int, int, int]
    SHADOWEDBTN_BGCOLOR_HOVER = Tuple[int, int, int, int]
    SHADOWEDBTN_BGCOLOR_PRESSED = Tuple[int, int, int, int]
    SHADOWEDBTN_HOVER_ICON = Tuple[int, int, int, int]
    SHADOWEDBTN_HOVER_IMAGEBG = Tuple[int, int, int, int]
    SHADOWEDBTN_HOVER_SHADOWBG = Tuple[int, int, int, int]
    SHADOWEDBTN_IMAGEBG = Tuple[int, int, int, int]
    SHADOWEDBTN_PRESSED_ICON = Tuple[int, int, int, int]
    SHADOWEDBTN_PRESSED_IMAGEBG = Tuple[int, int, int, int]
    SHADOWEDBTN_PRESSED_SHADOWBG = Tuple[int, int, int, int]
    SHADOWEDBTN_SHADOWBG = Tuple[int, int, int, int]
    SHADOWEDBTN_TEXT_HOVER = Tuple[int, int, int, int]
    SHADOWEDBTN_TEXT_PRESSED = Tuple[int, int, int, int]
    SLIDER_BG_COLOR = Tuple[int, int, int, int]
    SLIDER_BG_COLOR_DISABLED = Tuple[int, int, int, int]
    SLIDER_BORDER_RADIUS = Tuple[int, int, int, int]
    SLIDER_DISABLED = Tuple[int, int, int, int]
    SLIDER_GROOVE_BORDER_RADIUS = int
    SLIDER_HANDLE_BORDER_RADIUS = int
    SLIDER_HANDLE_MARGIN = int
    SLIDER_HANDLE_SIZE = int
    SLIDER_INACTIVE = Tuple[int, int, int, int]
    SLIDER_SIZE = int
    STACKITEM_BACKGROUND_COLOR = Tuple[int, int, int, int]
    STACKITEM_HEADER_FOREGROUND = Tuple[int, int, int, int]
    STACK_BORDER_WIDTH = int
    STACK_TITLE_DISABLED = Tuple[int, int, int, int]
    TBL_TREE_ACTIVE_COLOR = Tuple[int, int, int, int]
    TBL_TREE_ACT_TEXT_COLOR = Tuple[int, int, int, int]
    TBL_TREE_ALT_COLOR = Tuple[int, int, int, int]
    TBL_TREE_BG_COLOR = Tuple[int, int, int, int]
    TBL_TREE_GRID_COLOR = Tuple[int, int, int, int]
    TBL_TREE_HEADER_COLOR = Tuple[int, int, int, int]
    TBL_TREE_HOVER_COLOR = Tuple[int, int, int, int]
    TEAROFF_BG = Tuple[int, int, int, int]
    TEAROFF_FONT_SIZE = int
    TEAROFF_HOVER = Tuple[int, int, int, int]
    TEAROFF_LINES = Tuple[int, int, int, int]
    TEXT_BOX_BG_COLOR = Tuple[int, int, int, int]
    TEXT_BOX_FG_COLOR = Tuple[int, int, int, int]
    TEXT_INACTIVE_COLOR = Tuple[int, int, int, int]
    THREE_PIXELS = int
    TITLE_FONTSIZE = int
    TITLE_LARGE_COLOR = Tuple[int, int, int, int]
    TITLE_MINIMIZED_FONTSIZE = int
    TITLE_REG_TEXT_COLOR = Tuple[int, int, int, int]
    TLSET_BORDER_DESELECT = Tuple[int, int, int, int]
    TLSET_BORDER_HOVER = Tuple[int, int, int, int]
    TLSET_ICON_POPUP_BG = Tuple[int, int, int, int]
    TOOLSET_LOGO_HIGHLIGHT_OFFSET = Tuple[int, int, int, int]
    TOOLSET_LOGO_INACTIVE_COLOR = Tuple[int, int, int, int]
    TOOLSET_RESIZER_HANDLE_COLOR = Tuple[int, int, int, int]
    TOOLTIP_BG = Tuple[int, int, int, int]
    TOOLTIP_BORDER_COLOR = Tuple[int, int, int, int]
    TOOLTIP_BORDER_SIZE = int
    TOOLTIP_FONT_COLOR = Tuple[int, int, int, int]
    TREEITEM_DRAG_TINT = Tuple[int, int, int, int]
    TWO_PIXELS = int
    VIEW_BACKGROUND_COLOR = Tuple[int, int, int, int]
    WIDGET_ROUNDED_CORNERS = int
    WINDOW_LOGO_HIGHLIGHT_COLOR = Tuple[int, int, int, int]

    def __init__(self, name='', dct=None):
        super(ThemeDict, self).__init__()
