github ppy/osu-framework 2023.1213.0

latest releases: 2024.528.1, 2024.528.0, 2024.523.0...
9 months ago

Breaking changes

IParseable.Parse() has received an IFormatProvider argument

This is provided to better treat input when typed by end users, by allowing the ability to respect their regional number settings.

Existing usages of IParseable.Parse() should pass CultureInfo.InvariantCulture to preserve behaviour, including usages of IBindable.Parse():

  Bindable<int> bindable = new Bindable<int>();
- bindable.Parse(5);
+ bindable.Parse(5, CultureInfo.InvariantCulture);

DrawNode.Draw() is no longer exposed publicly

Draw() is now protected to match the signature of DrawOpaqueInternal(). DrawNodes which draw others no need to do so via a separate (provided) method.

- public override void Draw(IRenderer renderer)
+ protected override void Draw(IRenderer renderer)
  {
      base.Draw(renderer);

-     other.Draw(renderer);
+     DrawOther(other, renderer);
  }

Dropdown requires a search bar to be implemented

All Dropdowns may now be searched, which requires them to implement a search bar component. Sample implementation:

public partial class MyDropdownHeader : DropdownHeader
{
    protected override DropdownSearchBar CreateSearchBar() => new MyDropdownSearchBar();

    public partial class MyDropdownSearchBar : DropdownSearchBar
    {
        protected override void PopIn() => this.FadeIn();

        protected override void PopOut() => this.FadeOut();

        protected override TextBox CreateTextBox() => new MyTextBox
        {
            PlaceholderText = "type to search"
        };
    }
}

What's Changed

  • Request READ_EXTERNAL_STORAGE permission on older android versions by @Susko3 in #6071
  • Cleanup DrawNode drawing methods by @smoogipoo in #6073
  • FFmpeg: Add VP6 and WMV2 video formats by @FreezyLemon in #6074
  • Add a session timestamp prefix to log files (and retain 7 days of logs) by @peppy in #6063
  • Update FFmpeg binaries by @github-actions in #6076
  • Add format provider argument to IParseable.Parse() by @Neuheit in #6065
  • Add proper handling for BindableList collection changes in dropdown by @frenzibyte in #6061
  • Add method to convert piecewise linear curves to spline control points by @OliBomby in #6056
  • Improve incremental B-spline builder via stochastic optimisation by @OliBomby in #6066
  • Implement dropdown searching by @frenzibyte in #6072

New Contributors

Full Changelog: 2023.1201.1...2023.1213.0

Don't miss a new osu-framework release

NewReleases is sending notifications on new releases.