> JavaFX controls in the title bar were previewed with > [JDK-8313424](https://bugs.openjdk.org/browse/JDK-8313424) (delivered in JFX > 25) and the API was subsequently refined with > [JDK-8369836](https://bugs.openjdk.org/browse/JDK-8369836) and > [JDK-8370446](https://bugs.openjdk.org/browse/JDK-8370446) (delivered in JFX > 26). The feedback collected in two preview rounds suggests that the API is > fit for purpose, and no fundamental changes are required. This means that the > feature is ready to become final and permanent in JFX 27. > > I propose a few small changes to smooth out remaining edges: > 1. **Rename `HeaderBar.prefButtonHeight` to `HeaderBar.systemButtonHeight`** > This more clearly expresses that it is the height of the _system-provided_ > buttons. > 2. **Rename `HeaderBar.minSystemHeight` to `HeaderBar.systemMinHeight`** > What is meant is not a _minimum system height_ (which makes no sense), but > a _system-provided minimum height_. > 3. **Add `HeaderBar.systemColorScheme`** > In the previous iteration, the color scheme of the header buttons on > Windows and Linux was determined by the brightness of the `Scene.fill` > background. On macOS, which uses header buttons drawn by the operating > system, the color scheme of the header buttons was instead determined by the > color scheme of the window itself. > > The newly added `HeaderBar.systemColorScheme` attached property allows > applications to specify the color scheme for system-provided header buttons > directly, without falling back to either the scene background or the window > color scheme. The default value of the property is `null`, which means "no > preference"; in this case, the color scheme for header buttons will match the > color scheme for the window on all platforms. Setting this property to a > non-null value is only necessary in the rare case when an application needs > different color schemes for header buttons and the window (i.e. when it has a > bright title bar in dark mode, or a dark title bar in light mode). > > Since these changes are only cosmetic (in the case of renamed properties) and > don't fundamentally change the API of the enhancement (in the case of > `HeaderBar.systemColorScheme`), they shouldn't need to be previewed for > another round. > > The rest of the significant changes in this PR are a clean-up pass over the > documentation, and having the macOS header button implementation support the > new `HeaderBar.systemColorScheme` property. > > ## Note on the use of attached properties > This enhancement uses attached properties,...
Michael Strauß has updated the pull request incrementally with one additional commit since the last revision: change "since" javadoc tag to 27 ------------- Changes: - all: https://git.openjdk.org/jfx/pull/2188/files - new: https://git.openjdk.org/jfx/pull/2188/files/27ba4346..3b3073ea Webrevs: - full: https://webrevs.openjdk.org/?repo=jfx&pr=2188&range=02 - incr: https://webrevs.openjdk.org/?repo=jfx&pr=2188&range=01-02 Stats: 47 lines in 6 files changed: 4 ins; 39 del; 4 mod Patch: https://git.openjdk.org/jfx/pull/2188.diff Fetch: git fetch https://git.openjdk.org/jfx.git pull/2188/head:pull/2188 PR: https://git.openjdk.org/jfx/pull/2188
