On Sun, 29 Jan 2023 17:10:26 GMT, Michael Strauß <mstra...@openjdk.org> wrote:

>> Platform preferences are the preferred UI settings of the operating system. 
>> For example, on Windows this includes the color values identified by the 
>> `Windows.UI.ViewManagement.UIColorType` enumeration; on macOS this includes 
>> the system color values of the `NSColor` class.
>> 
>> Exposing these dynamic values to JavaFX applications allows developers to 
>> create themes that can integrate seamlessly with the color scheme of the 
>> operating system.
>> 
>> Platform preferences are exposed as an `ObservableMap` of platform-specific 
>> key-value pairs, which means that the preferences available on Windows are 
>> different from macOS or Linux. JavaFX provides a small, curated list of 
>> preferences that are available on most platforms, and are therefore exposed 
>> with a platform-independent API:
>> 
>> 
>> public interface Preferences extends ObservableMap<String, Object> {
>>     // Platform-independent API
>>     ReadOnlyObjectProperty<Appearance> appearanceProperty();
>>     ReadOnlyObjectProperty<Color> backgroundColorProperty();
>>     ReadOnlyObjectProperty<Color> foregroundColorProperty();
>>     ReadOnlyObjectProperty<Color> accentColorProperty();
>> 
>>     // Convenience methods to retrieve platform-specific values from the map
>>     Optional<Integer> getInteger(String key);
>>     Optional<Double> getDouble(String key);
>>     Optional<String> getString(String key);
>>     Optional<Boolean> getBoolean(String key);
>>     Optional<Color> getColor(String key);
>> }
>> 
>> 
>> The platform appearance is defined by the new `javafx.stage.Appearance` 
>> enumeration:
>> 
>> 
>> public enum Appearance {
>>     LIGHT,
>>     DARK
>> }
>> 
>> 
>> An instance of the `Preferences` interface can be retrieved by calling 
>> `Platform.getPreferences()`.
>
> Michael Strauß has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Use Optional for convenience methods in Preferences

mailing list ate a screenshot from the last message.  here it is:

<img width="467" alt="Screenshot 2023-01-31 at 15 10 38" 
src="https://user-images.githubusercontent.com/107069028/215905602-1e656e6c-620f-4437-b041-11b6ebc46834.png";>

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

PR: https://git.openjdk.org/jfx/pull/1014

Reply via email to