"""Constants used throughout the program."""
from enum import Enum
import os
from PIL import Image
# Program identifiers
BAKING = "Baking"
CAL = "Cal"
# Device identifiers
OVEN = "Delta Oven"
LASER = "Micron Optics SM125"
SWITCH = "Optical Switch"
TEMP = "LSC Temperature Controller"
DEV_HEADER = "Devices"
[docs]class Colors(Enum):
"""Colors used in the GUI styling."""
WHITE = "#f0eff4"
AZ_WHITE = "#dcedff"
MED_BLUE = "#0B3C5D"
SKY_BLUE = "#328CC1"
GOLD = "#D9B310"
BLACK = "#1D2731"
GRAY = "#2b2a29"
def __init__(self, hex_color: str):
"""
Defines a color.
:param hex_color: Contains the hex value string representing the color.
"""
self.color = hex_color
def __str__(self):
return self.color
LOG_BACKGROUND_COLOR = "#38383d"
DISABLED_COLOR = str(Colors.GRAY)
BG_COLOR = str(Colors.BLACK)
TAB_COLOR = str(Colors.SKY_BLUE)
TABS_COLOR = str(Colors.AZ_WHITE)
ENTRY_COLOR = str(Colors.GRAY)
BUTTON_COLOR = str(Colors.GRAY)
TEXT_COLOR = str(Colors.GOLD)
BUTTON_TEXT = str(Colors.BLACK)
ARRAY_ENTRY_COLOR = str(Colors.WHITE)
ENTRY_FONT = ('Helvetica', 14)
# Excel column colors
HEX_COLORS = ["#FFD700", "#008080", "#FF7373", "#FFC0CB",
"#40E0D0", "#FFA500", "#00FF00", "#468499",
"#66CDAA", "#FF7F50", "#FF4040", "#B4EEB4",
"#DAA520", "#FFFF00", "#C0C0C0", "#F0F8FF",
"#E6E6FA", "#008000", "#FF00FF", "#0099CC",
"#FAD1D1", "#A3928F", "#BF6A40", "#FFAA00",
"#AD961F", "#DDFF33", "#66CC00", "#94E085",
"#94D1B2", "#40AABF", "#4D7FB2", "#9540BF"]
# Main folder paths
ASSETS_PATH = os.path.join("assets")
CONFIG_PATH = os.path.join("config")
DB_DIR = os.path.join("db")
# Database path
DB_PATH = os.path.join(DB_DIR, "program_data.db")
# Matplotlib images, and style
MPL_STYLE_PATH = os.path.join(ASSETS_PATH, "kyton.mplstyle")
PLAY_PATH = os.path.join(ASSETS_PATH, "play.gif")
PAUSE_PATH = os.path.join(ASSETS_PATH, "pause.gif")
# Config file paths
PROG_CONFIG_PATH = os.path.join(CONFIG_PATH, "prog_config.cfg")
DEV_CONFIG_PATH = os.path.join(CONFIG_PATH, "devices.cfg")
# Gui Images
FIBER_PATH = os.path.join(ASSETS_PATH, "fiber.png")
CONFIG_IMG_PATH = os.path.join(ASSETS_PATH, "config.png")
GRAPH_PATH = os.path.join(ASSETS_PATH, "graph.png")
FILE_PATH = os.path.join(ASSETS_PATH, "file.png")
DOCS_ICON_PATH = os.path.join(ASSETS_PATH, 'docs_icon.png')
try:
DOCS_ICON = Image.open(DOCS_ICON_PATH)
except FileNotFoundError:
DOCS_ICON = Image.open(os.path.join("fbgui", DOCS_ICON_PATH))