This version introduces a lot of changes from v3.3.2:
Error fixes:
- Fixed widget resizing, 232.
- Fixed column calculation, 233.
- Fixed menu centering if the vertical widget offset is not zero, 230.
- Fixed submenu recursion while adding buttons to Menu, 241.
- Fixed callable assertion.
- Fix scroll area surface size computation with different thickness scrollbars.
- Fixed edge cases in Menu ``get_selected_widget()`` method.
- Fixed draw exceptions in ``LeftArrowSelection`` and ``RightArrowSelection``.
- Fixed exception while retrieving height of widget selection If it is None.
- Fixed submenu race if Menu is removed from button while using ``update_callback`` Button widget method.
- Fixed ``MenuBar`` widget back box status on certain conditions.
- Fixed widget selection in different edge cases (visibility, removal, unselectable).
- Fixed widget ``_font_render_string`` method if the font was not defined.
New methods:
- Added widget padding, 229.
- New widget methods ``hide()`` and ``show``, 237.
- ``Image`` widget now can be created directly from a ``BaseImage`` object.
- ``BaseImage`` new param ``load_from_file``.
- ``BaseImage`` new methods ``copy()``, ``apply_image_function(func)``, ``to_bw()`` and ``pick_channels(channels)``.
- ``BaseImage`` transforms methods now returns the object reference for nested calls.
- Added ``scrollarea_outer_margin`` to themes.
- Added ``back_count`` to ``add_button`` Menu method.
- Added ``margin_id`` parameter in ``add_vertical_margin`` Menu method. Now ``VMargin`` accepts ID.
- New Menu method ``add_generic_widget`` for adding generic widgets to the menu.
- Widget attributes now accepts ``margin`` as a list.
- New Menu method ``select_widget(widget)`` that sets widget as selected.
- New Menu method ``get_widgets()`` which returns the widgets as a tuple.
- New Menu method ``in_submenu(menu)`` for detecting submenus.
- New Widget method ``change_id(id)``.
- New Widget method ``update_font(style)`` for changing the style using previous styles.
- New ``Image`` widget methods ``get_image()`` and ``set_image(image)``.
Other changes:
- Added support for pygame v1.9.3.
- Added example with OOP style, 228.
- Improve widget access, 237.
- Improve documentation, module testing, and several typos.
- Added font cache for performance improvement.
- Improve menu centering in different circumstances.
- Widgets return ``True`` if render changed.
Changes that may break compatibility:
- Fixed ``Selector`` value in ``get_value()`` method. Now the entire tuple is returned instead of [0] item.
- Removed ``onchange`` unused parameter of ``Button`` widget.
- Removed ``onchange`` unused parameter of ``ScrollBar`` widget.
- Menu ``_check_id_duplicated`` method now returns ``IndexError`` instead of ``ValueError``.
- Menu ``get_selected_widget()`` method not returns ``None`` is no widget is selected instead of a ``ValueError`` exception.
- ``THEME_GREEN`` scrollbar thickness was established to 20px (previous were 14px).
- Adding recursive Menus now throws a ``ValueError`` exception.
- Widget ``get_selection_effect`` now returns a ``_NullSelection`` object instead of ``None`` if it is not stablished.