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_widthorresizable=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, andFixedThreePaneLayoutwith detailed parameter descriptionsImproved method documentation with proper
Args:andReturns:sections for all public API methodsAdded detailed documentation for utility functions in the
utilspackageProfessional-grade documentation standards applied throughout
Infrastructure
GitHub Actions Security: Fixed missing permissions in workflow files for secure PyPI publishing
Added proper
id-token: writepermissions for trusted publishingEnhanced 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
utilspackage with Windows, macOS, and Linux platform handlersProfessional 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()andvalidate_icon_path()for better icon managementPlatform-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
Added comprehensive CHANGELOG.md with complete version history
CHANGELOG.md now included in package distribution
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
DockableThreePaneWindowclass with detachable side panelsFixedThreePaneLayoutclass with fixed three-pane layoutBuilder 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