Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

[1.2.0] - 2025-07-31

Added

  • Smart layout detection system that automatically chooses between custom layout and TTK PanedWindow based on pane configuration.

  • Custom layout manager for windows with fixed panes that eliminates interactive sash handles.

  • Visual sash separators for custom layout that provide visual feedback without resize functionality.

  • Enhanced detach/reattach functionality that properly handles both layout types.

Changed

  • BREAKING BEHAVIOR: Fixed panes (fixed_width or resizable=False) now use custom layout without interactive sash handles.

  • Center pane now properly expands to fill remaining space when other panes are detached.

  • Improved pane reattachment to restore original positions correctly.

  • Updated type stubs to reflect new internal architecture and methods.

Fixed

  • Sash handles no longer appear for fixed-width panes, preventing unwanted resizing.

  • Fixed issue where fixed panes could still be resized via sash dragging.

  • Improved layout calculations to handle detached panes correctly.

  • Enhanced window resize behavior for mixed resizable/fixed pane configurations.

Documentation

  • Comprehensive API Documentation: Complete docstring improvements across the entire codebase following Google/NumPy style conventions

  • Enhanced class documentation for PaneConfig, DetachedWindow, and FixedThreePaneLayout with detailed parameter descriptions

  • Improved method documentation with proper Args: and Returns: sections for all public API methods

  • Added detailed documentation for utility functions in the utils package

  • Professional-grade documentation standards applied throughout

Infrastructure

  • GitHub Actions Security: Fixed missing permissions in workflow files for secure PyPI publishing

  • Added proper id-token: write permissions for trusted publishing

  • Enhanced workflow security compliance

  • Added stub package release workflow for type hint distribution

[1.1.0] - 2025-01-27

Added

  • Enhanced Cross-Platform Theming System: Complete theme management with multiple theme types (light, dark, blue, green, purple, system, native)

  • Platform Utilities Framework: New utils package with Windows, macOS, and Linux platform handlers

  • Professional Type Stubs Package: Complete type annotations with separate stubs distribution for enhanced IDE support

  • Comprehensive Documentation: Professional docstring coverage across all modules, classes, and methods

  • Cross-Platform Icon Support: Enhanced detached windows now support multiple icon formats (.ico, .png, .gif, .bmp, .xbm) with automatic platform optimization

  • Icon Utility Functions: Added get_recommended_icon_formats() and validate_icon_path() for better icon management

  • Platform-Specific Optimizations: Automatic icon format selection and fallback mechanisms for Windows, macOS, and Linux

  • Native Theme Detection: Automatic system theme detection and integration across platforms

  • Professional Color Schemes: Multiple professionally designed color schemes with proper contrast ratios

  • Security Tests: New comprehensive test suite for security-related functionality

  • Codecov Configuration: Added codecov.yml with appropriate coverage thresholds for better CI/CD

Changed

  • Development Status: Promoted from Beta to Production/Stable release

  • Python Support: Updated minimum Python version from 3.7 to 3.9, added Python 3.13 support (now supports 3.9-3.13)

  • Theme Management: Completely redesigned theming system with platform-specific theme detection

  • Code Quality: Enhanced code quality with comprehensive docstrings following imperative mood conventions

  • Enhanced Icon Handling: Improved icon loading with better error handling and cross-platform compatibility

  • PaneConfig Documentation: Updated window_icon field to reflect multi-format support

  • Platform Behavior: Added platform-specific window behavior optimizations for detached windows

  • Developer Experience: Improved IDE support with complete type annotations and stubs

Fixed

  • Docstring Compliance: Fixed all docstring formatting issues and missing documentation

  • Icon Display Issues: Fixed icon display problems on Linux and macOS platforms

  • Format Compatibility: Resolved .ico file compatibility issues on non-Windows platforms

  • Theme Application: Fixed theme application consistency across different UI components

  • CI/CD Improvements: Fixed codecov/patch coverage issues with proper authentication and configuration

  • Code Quality: Resolved flake8 F824 error by removing unnecessary global statement

  • Documentation: Added markdownlint configuration to fix MD024 duplicate heading warnings

Security

  • Fixed All Bandit Security Issues: Resolved 18 security vulnerabilities identified by Bandit static analysis

    • Fixed try-except-pass blocks with specific exception handling (B110)

    • Secured subprocess calls with hardcoded paths and validation (B603/B404)

    • Added proper timeout protection for system commands

    • Enhanced exception handling in enhanced_dockable.py

    • Secured macOS and Linux system command execution

[1.0.4] - 2025-01-20

Fixed

  • Critical Fix: Center panel now properly expands when side panels are detached

  • Removed placeholder frames that were preventing center panel expansion in DockableThreePaneWindow

  • Fixed layout issue where detached panels left empty spaces instead of allowing center panel to fill available area

Added

  • Comprehensive test suite for DockableThreePaneWindow functionality

  • New test cases covering detach/reattach behavior and center panel expansion

Changed

  • Improved DockableThreePaneWindow detach mechanism for better space utilization

  • Enhanced layout behavior when panels are detached/reattached

[1.0.3] - 2025-01-20

Added

Changed

  • Updated package documentation to include changelog

  • Improved package metadata completeness

[1.0.2] - 2025-01-20

Fixed

  • Fixed broken documentation links in PyPI package description

  • Documentation files now included in package distribution via MANIFEST.in

  • README links now use absolute GitHub URLs instead of relative paths

Changed

  • Updated package manifest to include ENHANCED_FEATURES.md and FIXED_WIDTH_FEATURES.md

  • Improved PyPI package metadata and description

[1.0.1] - 2025-01-20

Fixed

  • Fixed detach button bug where detached windows incorrectly showed “Detach” buttons instead of “Reattach” buttons

  • Improved panel sizing consistency for fixed-width panels

Added

  • Added Fixed Width Dockable Demo to examples

  • Enhanced demo selector with new demonstration option

Changed

  • Updated version management across all configuration files

  • Improved build process compatibility

[1.0.0] - 2025-01-20

Added

  • ✨ NEW: EnhancedDockableThreePaneWindow: Professional-grade interface with advanced features

  • 🔒 NEW: Fixed Width Panes: Optional fixed-width panes that don’t resize with the window

  • 📋 NEW: Menu Bar Integration: Built-in support for menu bars across all window types

  • Professional Theming System: Light, Dark, and Blue Professional themes

  • Drag & Drop Interface: Intuitive panel detaching by dragging headers

  • Advanced Customization: Configurable panel properties, icons, and constraints

  • PaneConfig class: Professional configuration system for panel settings

  • Smart Positioning: Intelligent window placement and sizing

  • Visual Feedback: Professional hover effects and drag indicators

Enhanced Features

  • Professional UI: Modern, professional appearance with smooth interactions

  • Theme Support: Multiple built-in themes (light, dark, blue professional)

  • Fixed Width Control: Panes can be set to fixed widths or remain resizable

  • Menu Integration: Seamless menu bar support across all window types

  • Enhanced Examples: Comprehensive demonstration applications

  • Improved Documentation: Complete feature documentation and guides

Technical Improvements

  • Enhanced type hints and code documentation

  • Improved error handling and validation

  • Better separation of concerns in codebase

  • Comprehensive testing for new features

[0.1.0] - 2024-12-18

Added

  • Initial release of ThreePaneWindows library

  • DockableThreePaneWindow class with detachable side panels

  • FixedThreePaneLayout class with fixed three-pane layout

  • Builder pattern support for content creation

  • Comprehensive test suite

  • Example applications and demos

  • Full documentation and README

Features

  • DockableThreePaneWindow:

    • Detachable left and right panels

    • Customizable panel widths

    • Builder functions for dynamic content creation

    • Automatic reattachment on window close

    • Resizable panels with PanedWindow

  • FixedThreePaneLayout:

    • Fixed-width side panels

    • Customizable panel colors and labels

    • Widget management methods (add_to_, clear_)

    • Property accessors for frame references

    • Automatic layout management

Technical Details

  • Python 3.7+ compatibility

  • Pure Tkinter implementation (no external dependencies)

  • Cross-platform support (Windows, macOS, Linux)

  • Comprehensive unit tests with 100% coverage

  • Installable via pip with proper package structure