104 lines
3.2 KiB
Python
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()
|