CARVIEW |
Select Language
HTTP/2 200
date: Thu, 31 Jul 2025 11:27:01 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
etag: W/"44efb91fc75a8c93d01433b1871c7315"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com wss://alive-staging.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=WmARWSrKQsAHqLISSwdnWqZgpufNcmtoXvBEfG48uwj3jKUrQ7xG7hwuy7I1VvqHd3Nn%2FxxOB%2FsT%2FhFDfvqmLFwh3THpbQJ%2BaRvM95D3TKvz%2BdEDELJ3ryWRXBeVM6%2B3%2Fbbz6E79z3RP1tSKC3pCileIZRbfl3zrdzVveAFuva8UKOtBxkfLHKjWKuAGRjfuGrQnOYtkPyNnL09iMA09ERzwjsfjLYIhc5z6nm7x1yRB3W%2BhX1uVKEioLCTvWVlsK0UfvRga2MKXkY2WbVyQfA%3D%3D--hYrWlaNKKDOtu95r--fJ%2FA%2Fl071SXXhaj5lHYkKg%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.1965699070.1753961221; Path=/; Domain=github.com; Expires=Fri, 31 Jul 2026 11:27:01 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Fri, 31 Jul 2026 11:27:01 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: A0D4:2291D2:91FAEB:AE6DE1:688B5305
Release 2019.628.0 · ppy/osu-framework · GitHub
Loading
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 442
2019.628.0
Compare
2448545
This commit was created on GitHub.com and signed with GitHub’s verified signature.
The key has expired.
Thanks for following along! This is a tagged release (2019.628.0). For more information check out the osu! changelog page and dev blog.
Breaking Changes
Menu
and several related components have been made abstract
For each component, there are two ways to resolve resulting errors:
ContextMenuContainer
BasicContextMenuContainer
is provided as a drop-in replacement that comes with the framework design language.- Implement your own local
ContextMenuContainer
. The following is consumable code that matches the removed implementation. Rename it to suit your project and update your references:public class MyContextMenuContainer : ContextMenuContainer { // If you have a custom menu, provide it here. protected override Menu CreateMenu() => new BasicMenu(Direction.Vertical); }
Menu
BasicMenu
is provided as a drop-in replacement that comes with the framework design language.- Implement your own local
Menu
. The following is consumable code that matches the removed implementation. Rename it to suit your project and update your references:public class MyMenu : Menu { public MyMenu(Direction direction, bool topLevelMenu = false) : base(direction, topLevelMenu) { } protected override Menu CreateSubMenu() => new MyMenu(Direction.Vertical); protected override DrawableMenuItem CreateDrawableMenuItem(MenuItem item) => new MyDrawableMenuItem(item); // If you have a custom scroll container, provide it here. protected override ScrollContainer<Drawable> CreateScrollContainer(Direction direction) => new BasicScrollContainer(direction); private class MyDrawableMenuItem : DrawableMenuItem { public MyDrawableMenuItem(MenuItem item) : base(item) { } protected override Drawable CreateContent() => new SpriteText { Anchor = Anchor.CentreLeft, Origin = Anchor.CentreLeft, Padding = new MarginPadding(5), Font = new FontUsage(size: 17), }; } }
DropdownMenu
/DropdownMenuItem
. This is only applicable if you already implement a customDropdown<T>
.- The following is consumable code that matches the removed implementation. Rename it to suit your project and update your references:
public class MyDropdown<T> : Dropdown<T> { // If you have a custom header, provide it here. protected override DropdownHeader CreateHeader() => null; protected override DropdownMenu CreateMenu() => new MyDropdownMenu(); private class MyDropdownMenu : DropdownMenu { // If you have a custom menu, provide it here. protected override Menu CreateSubMenu() => new BasicMenu(Direction); // If you have a custom scroll container, provide it here. protected override ScrollContainer<Drawable> CreateScrollContainer(Direction direction) => new BasicScrollContainer(direction); protected override DrawableDropdownMenuItem CreateDrawableDropdownMenuItem(MenuItem item) => new MyDrawableDropdownMenuItem(item); private class MyDrawableDropdownMenuItem : DrawableDropdownMenuItem { public MyDrawableDropdownMenuItem(MenuItem item) : base(item) { } // If you have custom content, provide it here. protected override Drawable CreateContent() => new SpriteText { Anchor = Anchor.CentreLeft, Origin = Anchor.CentreLeft, Padding = new MarginPadding(5), Font = new FontUsage(size: 17), }; } } }
- The following is consumable code that matches the removed implementation. Rename it to suit your project and update your references:
DebugSetting.ActiveGCMode
no longer exists
If you were manually setting this, you can do so via .NET methods.
Assets 5
You can’t perform that action at this time.