On Tue, 5 Nov 2024 16:19:50 GMT, Andy Goryachev <ango...@openjdk.org> wrote:

>> It links directly to `StageStyle.EXTENDED`, which contains lots of 
>> information. I don't think we need it here.
>> 
>> By the way, there are no support levels. The feature is supported in its 
>> entirety, as specified, on all desktop platforms. The table in the JEP is 
>> just informational to help OpenJFX developers understand what we're talking 
>> about. It's not a specification, and it can't be a specification because we 
>> either don't control things (for example, we have no influence on rounded 
>> corners, this could be changed with any future OS version) or because we'd 
>> be specifying us into a corner. There's no point prescribing every minute 
>> detail, and then being responsible to keep it working _exactly_ as 
>> described, even though the semantics are unchanged.
>> 
>> The relevant parts are specified in `StageStyle.EXTENDED` and `HeaderBar`, 
>> and I wouldn't go further than this. We don't specify the details of 
>> `StageStyle.DECORATED` for each OS; why should we do it for 
>> `StageStyle.EXTENDED`?
>
> I guess you are right here: from the app dev perspective, there is no 
> difference between the supported platforms.  All good.
> 
> I do suggest to bring a condensed version of the table in the JEP (or a 
> simple <ul> here to show what's being painted by the platform and what is 
> not.  In other words, instead of reading 1k of text, I want to see a short 
> list indicating that, for example, close button is painted by the platform, 
> and the title bar is not painted.
> 
> Can you do something like this?  (Alternatively, there might be a better 
> place to do that, but where?)

I don't want to do this, not because I don't want to write documentation, but 
because I see a very real risk of over-specifying these kinds of things. For 
app developers, it shouldn't matter if a close button is drawn by the OS or by 
JavaFX, the only thing that matters is that they _are_ drawn, and it is not the 
responsibility of the application developer to do it.

The specification of `StageStyle.EXTENDED` says:

* An extended window has the default window buttons (minimize, maximize, 
close), but no system-provided
* draggable header bar.


That's what is important in my opinion: if you choose this stage style, you 
will get window buttons (however this is done is of no interest), but you will 
not get a header bar.

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1605#discussion_r1831999128

Reply via email to