Version 0.6.10
pip install pygame-gui --upgrade
Hello!
It's been almost a year since the last Pygame GUI release, a period when I've personally had less time to work on the library. However that has been compensated for by the lovely Pygame GUI community contributors with this release having contributions from ten new contributors - our largest number ever.
I had intended at one point for 0.7.0 to be the next release of the library with lots of changes to the handling of loaded images - but as things go this release happened instead, with the focus mainly on changes to handling of text.
Please let me know about any bugs, and I apologise in advance to anyone doing more complicated things with the library as I have messed around with the innards quite substantially again and probably broken a few things some of you might have been relying on. I promise I will stop when we hit version 1.0.0.
Big changes
- Switched from using pygame.freetype submodule to the pygame.font submodule internally. This has allowed us to support a wider range of written language features like right-to-left and text-shaping (via the pygame.font->SDLttf->Harfbuzz tech stack). As a result we can support languages like Arabic, Hebrew and Georgian. Though I will caveat that by saying I do not personally speak these languages, nor have any experience using GUIs designed with them in mind so I consider us at the start of the journey here for support of many of these non-latin alphabet languages. Please let me know how you get on, and PRs to adjust things are very welcome!
- Partially as a result of the above we have basic language support for six new languages Vietnamese, Korean, Georgian, Ukrainian, Arabic & Hebrew. That brings us up to 17 languages with basic translation support now.
- Text Selection overhaul. You can now select text and 'CTRL+C' shortcut copy text in regular Text boxes as well as Text Entry boxes, hopefully the experience of selecting text is smoother now as many bugs were located and squished in this area.
- Three new UI Elements were added, thanks to our contributors:
- A Tabbed container, allowing you to switch between containers of elements with the other un-selected tabs kept hidden - Added by @LondonClass.
- An Auto-resizing container that expands to fit whenever elements are added outside of it's boundaries - Added by @GimLala
- A 2D slider - that lets you select a two-dimensional value in a rectangular space. It's been incorporated into the colour picker window if you want to try it out. - Added by @GimLala
What's Changed (PR List)
- Add convert_alpha and pre-multiplication to html embedded images by @MyreMylar in #452
- Add 'base_id' capability to allow windows to have two element ids by @MyreMylar in #453
- Small fix to edit position after pasting by @MyreMylar in #461
- Text selection improvements by @robclewley in #460
- Move location of py.typed so it is included in distributions for mypy by @MyreMylar in #462
- Try adjusting ui panel positioning by @MyreMylar in #464
- Add Vietnamese translation file by @bennett-nguyen in #473
- Remove support for Python 3.7 and add testing for 3.12 by @MyreMylar in #476
- Add Korean translation file. by @jeongchaeuk in #479
- Fix UIScrollingContainer .set_position() by @MyreMylar in #482
- Update the changelist by @MyreMylar in #483
- Add antialias disabling support to fonts by @MyreMylar in #484
- Correct the Chinese translation file. by @LondonClass in #492
- Add on_pressed method by @LondonClass in #493
- fix: correct french translation by @FACON-Nicolas in #500
- Update CI runner versions and pygame-ce version generally by @MyreMylar in #499
- Added Ukrainian localization by a native speaker by @YulianMysko in #503
- fix translation in tests by @LondonClass in #504
- add run tests to pull requests by @MyreMylar in #510
- switch to pygame.font for rendering text by @MyreMylar in #511
- Add parameter command to Button by @LondonClass in #508
- Create ID when creating elements by @LondonClass in #513
- Add arabic & hebrew translation support by @MyreMylar in #522
- Add set_container to elements by @LondonClass in #512
- set_dimensions now support dynamic sizes by @LondonClass in #514
- add some tweaks to copy & pasting by @MyreMylar in #524
- Improve the text box entry keyboard controls by @MyreMylar in #528
- Add .idea to gitignore by @MyreMylar in #530
- Tidy UIElement typehinting by @MyreMylar in #531
- Add set & get methods for ui element anchors by @MyreMylar in #534
- Make offset positioning calculation functions static by @MyreMylar in #535
- Refactor update abs rect pos to use static calc func by @MyreMylar in #536
- Add expand_left & _top to UIContainer by @MyreMylar in #537
- Tidy UIScrollingContainer type hinting by @MyreMylar in #538
- Add axis constraints to UIScrollingContainer by @MyreMylar in #539
- Add UI2DSlider element by @GimLala in #540
- Create pygame-gui.ge.json by @GiorgiMirzashvili29 in #541
- Add 2D slider to colour picker window by @MyreMylar in #542
- Add Auto-resizing container by @GimLala in #543
- Fix auto resizing container by @MyreMylar in #544
- Add Auto Scrolling Container by @GimLala in #545
- Move call to rect.size to after rect is created. by @MyreMylar in #548
- Add iteration support to IUIContainerInterface by @LondonClass in #546
- Add support for Georgian language by @MyreMylar in #549
- Theme adds support for dicts by @LondonClass in #518
- CONTRIBUTING.md: Fix typos by @cclauss in #552
- Fix typos discovered by codespell by @cclauss in #554
- Enhancement: Add a new GUI Event: UI_WINDOW_RESIZED by @JordanKarp in #551
- Add support for rounded rect corner control by @MyreMylar in #550
- Fix scrollbar mousewheel speed by @MyreMylar in #558
- Add contains to IUIContainerInterface by @LondonClass in #557
- Text Render Area fixes by @MyreMylar in #559
- UITextEntryBox text editing shortcuts into sub functions by @JordanKarp in #556
- System font fallback by @MyreMylar in #560
- Add method to change object ID by @MyreMylar in #561
- add anchors to text box scroll bar by @MyreMylar in #562
- Clarify theming docs on relative paths by @MyreMylar in #563
- Add starting_height to UIImage by @MyreMylar in #565
- Handle mousewheel events in scrolling containers by @MyreMylar in #566
- Improve text selection and add to text box by @MyreMylar in #567
- Add some more docs on theming and layout by @MyreMylar in #568
- Add placeholder text to textboxes by @MyreMylar in #569
- Add optional ids to dropdown menu items by @MyreMylar in #570
- Add tab containers by @LondonClass in #529
- Add better tests for scrolling container with mousewheel by @MyreMylar in #571
- UIForm - UIScrollingContainer changes by @MyreMylar in #572
- Fix test class name by @MyreMylar in #573
- Update actions to latest versions by @MyreMylar in #574
- Merge auto scrolling container with scrolling container by @MyreMylar in #575
- Fix nested containers scrollwheel applying to complex elements by @MyreMylar in #576
- Fix are_contents_hovered() method by @MyreMylar in #577
- Remove Auto Scrolling container by @MyreMylar in #578
- Sort out type hints for relative rect by @MyreMylar in #579
- Add always on top feature to windows by @MyreMylar in #580
- Docs fixes by @MyreMylar in #581
New Contributors
- @robclewley made their first contribution in #460
- @bennett-nguyen made their first contribution in #473
- @jeongchaeuk made their first contribution in #479
- @LondonClass made their first contribution in #492
- @FACON-Nicolas made their first contribution in #500
- @YulianMysko made their first contribution in #503
- @GiorgiMirzashvili29 made their first contribution in #541
- @cclauss made their first contribution in #552
- @JordanKarp made their first contribution in #551
- @GimLala made their first contributions with PRs stemming from #494
Full Changelog: v_069...v_0610