Files
thechart/scripts/test_arc_headers.py

104 lines
3.2 KiB
Python

#!/usr/bin/env python3
"""Test script to check table header visibility in Arc theme."""
import sys
import tkinter as tk
from pathlib import Path
from tkinter import ttk
from init import logger
from theme_manager import ThemeManager
# Add src directory to Python path
src_path = Path(__file__).parent / "src"
sys.path.insert(0, str(src_path))
def test_arc_theme_headers():
"""Test Arc theme table header visibility."""
print("Testing Arc theme table header colors...")
# Create a test tkinter window
root = tk.Tk()
root.title("Arc Theme Header Test")
root.geometry("600x400")
# Initialize theme manager
theme_manager = ThemeManager(root, logger)
# Apply Arc theme
success = theme_manager.apply_theme("arc")
print(f"Arc theme applied: {success}")
# Get theme colors
colors = theme_manager.get_theme_colors()
print(f"Theme colors: {colors}")
# Create a test treeview with headers
frame = ttk.Frame(root)
frame.pack(fill="both", expand=True, padx=20, pady=20)
# Create treeview with Modern.Treeview style
tree = ttk.Treeview(
frame,
columns=("col1", "col2", "col3"),
show="headings",
style="Modern.Treeview",
)
# Configure headers
tree.heading("col1", text="Date")
tree.heading("col2", text="Medicine")
tree.heading("col3", text="Notes")
# Add some sample data
tree.insert("", "end", values=("2025-08-05", "Aspirin", "Sample note"))
tree.insert("", "end", values=("2025-08-06", "Vitamin D", "Another note"))
tree.pack(fill="both", expand=True)
# Get the actual style configuration
style = theme_manager.style
if style:
try:
# Check the Modern.Treeview.Heading configuration
heading_config = style.configure("Modern.Treeview.Heading")
print(f"Header style config: {heading_config}")
# Check if we can get specific colors
header_bg = style.lookup("Modern.Treeview.Heading", "background")
header_fg = style.lookup("Modern.Treeview.Heading", "foreground")
print(f"Header background: {header_bg}")
print(f"Header foreground: {header_fg}")
# Check the base Treeview.Heading style from Arc theme
base_heading_config = style.configure("Treeview.Heading")
print(f"Base header style: {base_heading_config}")
base_header_bg = style.lookup("Treeview.Heading", "background")
base_header_fg = style.lookup("Treeview.Heading", "foreground")
print(f"Base header background: {base_header_bg}")
print(f"Base header foreground: {base_header_fg}")
except Exception as e:
print(f"Error getting style info: {e}")
# Add a label with color info
info_text = (
f"Arc Theme Colors - BG: {colors.get('bg', 'N/A')}, "
f"FG: {colors.get('fg', 'N/A')}, "
f"Select BG: {colors.get('select_bg', 'N/A')}, "
f"Select FG: {colors.get('select_fg', 'N/A')}"
)
info_label = ttk.Label(root, text=info_text)
info_label.pack(pady=10)
print("Window created. Check if table headers are visible.")
print("Close the window to see the color analysis.")
root.mainloop()
if __name__ == "__main__":
test_arc_theme_headers()