-
Enhancement
-
Resolution: Duplicate
-
P3
-
9
-
x86
-
os_x
A DESCRIPTION OF THE REQUEST :
The screen menu bar is a standard feature of Mac OS. Even applications with unique UIs use the screen menu bar. In Java, this means that custom LAFs should use the screen menu bar when running on MacOS.
The existing support for the screen menu bar is baked into the Aqua LAF. Specifically, it is supported by AquaMenuBarUI, AquaMenuItemUI, and AquaRootPaneUI. The support for a default menu bar (displayed when there is no active application frame) in _AppMenuBarHandler is tightly coupled to AquaMenuBarUI.
These platform classes will become inaccessible in JDK9. Although it may be possible to reference them in UIDefaults, it will not be possible to subclass them. This limits the ability of a custom LAF to customize the root pane and menu UIs and also use the screen menu bar. The root pane UI is of particular concern because it supports the default button feature, which needs to interact with button UI classes.
Screen menu bar support should be provided in a public API for use by third party LAFs in JDK9 and beyond.
This RFE should be have labels "modularization" and "jdkinternals".
JUSTIFICATION :
The screen menu bar is an essential part of the MacOS UI. Custom LAFs need a public API in JDK9 to use the screen menu bar.
The screen menu bar is a standard feature of Mac OS. Even applications with unique UIs use the screen menu bar. In Java, this means that custom LAFs should use the screen menu bar when running on MacOS.
The existing support for the screen menu bar is baked into the Aqua LAF. Specifically, it is supported by AquaMenuBarUI, AquaMenuItemUI, and AquaRootPaneUI. The support for a default menu bar (displayed when there is no active application frame) in _AppMenuBarHandler is tightly coupled to AquaMenuBarUI.
These platform classes will become inaccessible in JDK9. Although it may be possible to reference them in UIDefaults, it will not be possible to subclass them. This limits the ability of a custom LAF to customize the root pane and menu UIs and also use the screen menu bar. The root pane UI is of particular concern because it supports the default button feature, which needs to interact with button UI classes.
Screen menu bar support should be provided in a public API for use by third party LAFs in JDK9 and beyond.
This RFE should be have labels "modularization" and "jdkinternals".
JUSTIFICATION :
The screen menu bar is an essential part of the MacOS UI. Custom LAFs need a public API in JDK9 to use the screen menu bar.
- duplicates
-
JDK-8143227 Platform-specific desktop features
- Resolved
-
JDK-8166683 On macOS (Mac OS X) getting a ScreenMenuBar when not running "com.apple.laf.AquaLookAndFeel"
- Resolved
- relates to
-
JDK-8048731 JEP 272: Platform-Specific Desktop Features
- Closed