dolphinsmalltalk / Dolphin

Dolphin Smalltalk Core Image
MIT License
301 stars 58 forks source link

Fix print dialog in Windows 11 and split out common dialogs to own packages #1243

Closed blairmcg closed 9 months ago

blairmcg commented 9 months ago

Microsoft have made the Unified Print Dialog (UPD) the default in Windows 11. Although the UPD looks more in keeping with the general UI style of Windows 11, it (frankly) doesn't work very well for Win32 apps, e.g. the preview pane is always just blank and the page ranges, etc, don't respect the data passed in. The facility to change a setting such as the selected printer, Apply, and then Cancel, is also completely absent. The extensibility interfaces, IPrintDialogCallback and IPrintDialogServices, are also completely missing. For these reasons it makes sense to revert to the legacy dialog by default.

Implementation of IPrintDialogCallback for PRINTDLGEXW had been left as a TODO for some time. Also this doesn't buy much in and of itself, it was necessary to enable adoption of the new PrintDlgEx API, which has richer capabilities and has been the preferred API for many years (since Vista). Migration to use of Unicode was also missing from the printer dialog integration, so this has also been done.

Finally, all the separate common dialogs have now been split out into their own packages.