> 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:

  use read-only wrappers

-------------

Changes:
  - all: https://git.openjdk.org/jfx/pull/2188/files
  - new: https://git.openjdk.org/jfx/pull/2188/files/859b0ccd..59217970

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jfx&pr=2188&range=04
 - incr: https://webrevs.openjdk.org/?repo=jfx&pr=2188&range=03-04

  Stats: 8 lines in 1 file changed: 3 ins; 0 del; 5 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

Reply via email to