<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Aptos;
        panose-1:2 11 0 4 2 2 2 2 2 4;}
@font-face
        {font-family:"Iosevka Fixed SS16";
        panose-1:2 0 5 9 3 0 0 0 0 4;}
@font-face
        {font-family:"Times New Roman \(Body CS\)";
        panose-1:2 11 6 4 2 2 2 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:10.0pt;
        font-family:"Aptos",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Iosevka Fixed SS16";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16"">Martin:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16"">Are you referring to this (macOS Notes):<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""><img width="736" height="160" style="width:7.6666in;height:1.6666in" id="Picture_x0020_1" src="cid:image001.png@01DB375F.F59057E0"></span><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16"">or something else?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16"">I think the Notes-like UI can be implemented using the proposed HeaderBar (HB), all one needs to do is to bind the width of the left part in the HB to the split pane's divider
 position, without the need for multiple HB.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16"">-andy<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
<div id="mail-editor-reference-message-container">
<div>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:12.0pt;color:black">From:
</span></b><span style="font-size:12.0pt;color:black">openjfx-dev <openjfx-dev-retn@openjdk.org> on behalf of Martin Fox <martin@martinfox.com><br>
<b>Date: </b>Friday, November 15, 2024 at 13:09<br>
<b>To: </b>OpenJFX <openjfx-dev@openjdk.org><br>
<b>Subject: </b>Re: JEP: JavaFX controls in the title bar<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-size:11.0pt">Michael,<br>
<br>
On the Mac a common UI layout is to have a splitter view that extends to the top of the window with separate toolbars in each panel. Have you given any thought on supporting this layout in an EXTENDED window?<br>
<br>
(I realize this is a Mac thing; Apple loves their sidebars. Microsoft dabbled with this design language but it seems to be fading away. I have seen it in a few Windows apps like 1Password.)<br>
<br>
In UIKit Apple implements this using separate views. The equivalent in JavaFX would be to add a separate HeaderBarBase object to the top of each panel in a SplitPane. That would require supporting multiple HeaderBarBase instances and providing an API to tell
 one to ignore leftSystemInset or rightSystemInset (or both). I like this solution since it allows the background visuals for each header bar to be customized.<br>
<br>
The way Apple shoe-horned this into the older AppKit is a bit less elegant. There’s still one NSToolbar that spans the entire window. A developer can add special items to the toolbar that track the dividers in an NSSplitView. I would let developers roll their
 own solutions if they want that design. Replicating that in JavaFX wouldn’t require any alterations to the HeaderBarBase class and it’s too specialized to be added to HeaderBar.<br>
<br>
Martin<br>
<br>
> On Oct 23, 2024, at 7:19</span><span style="font-size:11.0pt;font-family:"Arial",sans-serif"> </span><span style="font-size:11.0pt">AM, Kevin Rushforth <kevin.rushforth@oracle.com> wrote:<br>
> <br>
> Hi Michael,<br>
> <br>
> I like this proposal overall. It provides a commonly-requested feature with a minimal API surface. While I share some of the concerns about implementing it, it is reflective of modern UI design on all of the desktop platforms, so I expect the platform vendors
 to continue supporting the features this needs to run.<br>
> <br>
> You had mentioned in your PR the possibility of making this a preview feature, which seems like a good idea. I think it is worth reviving the preview feature proposal, and to consider using it for this feature.<br>
> <br>
> I have a few overall questions after an initial reading of the JEP. I'll take a closer look and send more specific feedback.<br>
> <br>
> I presume that the preferred width and height of HeaderBarBase is the width of the window and the height of the system-reserved area for window buttons?<br>
> <br>
> Are leftSystemInset and rightSystemInset read-only?<br>
> <br>
> What is the behavior if an application adds more than one HeaderBar? What if they add a HeaderBar that isn't positioned at the top of the Stage? What is the behavior if an app adds a HeaderBar to a DECORATED or UNDECORATED Stage?<br>
> <br>
> I want to make sure I understand the centering policy: To my eyes, the text field in the macOS example is not horizontally centered in the window. Is this a bug or am I misunderstanding something?<br>
> <br>
> As Andy already mentioned in the PR, the `EXTENDED` StageStyle should be a ConditionalFeature, similar to TRANSPARENT or UNIFIED. Oh, I see from the PR that you already did this. Can you update the JEP to indicate this?<br>
> <br>
> And speaking of UNIFIED, it might be worth mentioning the differences between EXTENDED and UNIFIED. Somewhat related to this, we have talked about deprecating (not for removal) UNIFIED and always returning `false` from `ConditionalFeature.isSupported(UNIFIED_WINDOW)`.<br>
> <br>
> -- Kevin<br>
> <br>
> On 10/22/2024 4:55 PM, Michael Strauß wrote:<br>
>> Hi everyone,<br>
>> <br>
>> the discussion in PR #1605 has shown that the proposed feature needs a<br>
>> better presentation in a JEP-like format, so here it is:<br>
>> <br>
>> <a href="https://gist.github.com/mstr2/0befc541ee7297b6db2865cc5e4dbd09">https://gist.github.com/mstr2/0befc541ee7297b6db2865cc5e4dbd09</a><br>
> <o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>