On Thu, 13 Feb 2025 19:10:15 GMT, Michael Strauß <mstra...@openjdk.org> wrote:

>> Implementation of 
>> [`EXTENDED`](https://gist.github.com/mstr2/0befc541ee7297b6db2865cc5e4dbd09) 
>> and `EXTENDED_UTILITY` stage style.
>
> Michael Strauß has updated the pull request incrementally with two additional 
> commits since the last revision:
> 
>  - typo
>  - update copyright headers

modules/javafx.graphics/src/main/java/com/sun/glass/ui/Application.java line 
715:

> 713: 
> 714:     protected abstract boolean _supportsExtendedWindows();
> 715:     public final boolean supportsExtendedWindows() {

missing newline after L714?

modules/javafx.graphics/src/main/java/com/sun/glass/ui/HeaderButtonMetrics.java 
line 39:

> 37:  * @param minHeight the minimum height of the window buttons
> 38:  */
> 39: public record HeaderButtonMetrics(Dimension2D leftInset, Dimension2D 
> rightInset, double minHeight) {

would it make more sense to use Insets instead of Dimension2D?  What if the app 
calls for asymmetrical padding?

modules/javafx.graphics/src/main/java/com/sun/glass/ui/HeaderButtonOverlay.java 
line 153:

> 151: 
> 152:     private static final CssMetaData<HeaderButtonOverlay, Number> 
> BUTTON_DEFAULT_HEIGHT_METADATA =
> 153:         new CssMetaData<>("-fx-button-default-height", 
> StyleConverter.getSizeConverter()) {

The new styleables need to be documented in cssref.html as a part of this PR, 
right?
(The javadoc for this class will not be visible in the API specification).

modules/javafx.graphics/src/main/java/com/sun/glass/ui/HeaderButtonOverlay.java 
line 209:

> 207: 
> 208:     private static final List<CssMetaData<?, ?>> METADATA =
> 209:         Stream.concat(getClassCssMetaData().stream(),

`RichUtils.combine()` L419 avoids creating intermediary objects.

modules/javafx.graphics/src/main/java/com/sun/glass/ui/HeaderButtonOverlay.java 
line 283:

> 281:      */
> 282:     private final StyleableBooleanProperty allowRtl =
> 283:         new SimpleStyleableBooleanProperty(ALLOW_RTL_METADATA, this, 
> "allowRtl", true) {

what is the rationale for this property?
Instead, I think, it should look at the `Node::getEffectiveNodeOrientation()` 
which either inherits the value from the parent or allows the app to override 
for a specific component (in other words, we already have this functionality 
for free).  

Or am I missing something?

modules/javafx.graphics/src/main/java/com/sun/glass/ui/HeaderButtonOverlay.java 
line 328:

> 326: 
> 327:         var updateStylesheetSubscription = sceneProperty()
> 328:             .flatMap(Scene::fillProperty)

will this work if the value of scene is `null`?

modules/javafx.graphics/src/main/java/com/sun/glass/ui/HeaderButtonOverlay.java 
line 405:

> 403:         } : null;
> 404: 
> 405:         if (type == MouseEvent.ENTER || type == MouseEvent.MOVE || type 
> == MouseEvent.DRAG) {

minor: would it be clearer to use a `switch(type)` here instead?

modules/javafx.graphics/src/main/java/com/sun/glass/ui/HeaderButtonOverlay.java 
line 406:

> 404: 
> 405:         if (type == MouseEvent.ENTER || type == MouseEvent.MOVE || type 
> == MouseEvent.DRAG) {
> 406:             handleMouseOver(node);

could there be a situation when node is null but we pass it on to the method?  
also L410, L412

modules/javafx.graphics/src/main/java/com/sun/glass/ui/HeaderButtonOverlay.java 
line 586:

> 584:             totalHeight = snapSizeY(getEffectiveButtonHeight());
> 585:         } else {
> 586:             totalHeight = snapSizeY(Math.max(button1Height, 
> Math.max(button2Height, button3Height)));

+1 for correct snapping!

modules/javafx.graphics/src/main/java/com/sun/glass/ui/HeaderButtonOverlay.java 
line 632:

> 630:     }
> 631: 
> 632:     private static double boundedSize(double min, double pref, double 
> max) {

minor:
it would be nice to move this to some common utilities class (there is already 
such a method in c.s.j.scene.control.skin.Utils class).

along with two previous methods.

modules/javafx.graphics/src/main/java/com/sun/glass/ui/HeaderButtonOverlay.java 
line 678:

> 676:             orderedButtons.add(this);
> 677:             buttonOrder.set(order);
> 678:             glyph.getStyleClass().setAll("glyph");

"glyph": though apt, the name might be somewhat confusing.  maybe "icon"?

modules/javafx.graphics/src/main/java/com/sun/glass/ui/Window.java line 299:

> 297:     }
> 298: 
> 299:     /**

since the majority of windows is expected to be DECORATED, would it make more 
sense to move these properties into a separate container akin to 
`Node.getMiscProperties()` ?

modules/javafx.graphics/src/main/java/javafx/application/ConditionalFeature.java
 line 163:

> 161:      */
> 162:     EXTENDED_WINDOW,
> 163: 

Is this PR blocked by the Preview Feature Support #1359?

modules/javafx.graphics/src/main/java/javafx/scene/layout/HeaderBar.java line 
323:

> 321:         minHeightProperty();
> 322: 
> 323:         ObservableValue<Stage> stage = sceneProperty()

will this handle `null` scene?

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1605#discussion_r1956349123
PR Review Comment: https://git.openjdk.org/jfx/pull/1605#discussion_r1956353096
PR Review Comment: https://git.openjdk.org/jfx/pull/1605#discussion_r1956357334
PR Review Comment: https://git.openjdk.org/jfx/pull/1605#discussion_r1956364194
PR Review Comment: https://git.openjdk.org/jfx/pull/1605#discussion_r1956372516
PR Review Comment: https://git.openjdk.org/jfx/pull/1605#discussion_r1956374877
PR Review Comment: https://git.openjdk.org/jfx/pull/1605#discussion_r1956464424
PR Review Comment: https://git.openjdk.org/jfx/pull/1605#discussion_r1956462896
PR Review Comment: https://git.openjdk.org/jfx/pull/1605#discussion_r1956484613
PR Review Comment: https://git.openjdk.org/jfx/pull/1605#discussion_r1956488129
PR Review Comment: https://git.openjdk.org/jfx/pull/1605#discussion_r1956491008
PR Review Comment: https://git.openjdk.org/jfx/pull/1605#discussion_r1956495596
PR Review Comment: https://git.openjdk.org/jfx/pull/1605#discussion_r1956505679
PR Review Comment: https://git.openjdk.org/jfx/pull/1605#discussion_r1956507647

Reply via email to