2
42
Fork
You've already forked Retiled
1

If I do figure out how to do my own appbar drawer correctly, try putting up a mousearea that fills the area behind the appbar and the drawer that when clicked will close the appbar drawer. + more custom appbar drawer stuff. #540

Open
opened 2026年04月08日 18:53:31 +02:00 by DrewNaylor · 6 comments

That will be like dismissing the appbar drawer. Unfortunately, it may cause textboxes to not function, but I can have it do the tap again in the same spot. If it doesn't work, I will have to inherit from T.Popup.

That will be like dismissing the appbar drawer. Unfortunately, it may cause textboxes to not function, but I can have it do the tap again in the same spot. If it doesn't work, I will have to inherit from T.Popup.
Author
Owner
Copy link

Related to custom app bars, I just thought about how there can be a margin spacer item of some sort behind the appbar and it will be either 24 or 48 in height, depending on if the appbar is minimized or not. I think landscape ones are never minimized, but it wouldn't make sense so it should be able to have those minimized, too. Landscape would have it be 24 or 48 wide and height of the page, just like the default layout of the appbar itself. There needs to be a way to ensure that full-page stuff like images can still be shown if the app wants it, as well as not using the margin or just having it at the bottom of lists.

Edit: I think landscape ones always have the margin. Maybe it can be an item that is optionally used and easily put into an application or something.

Edit 2: Really hoping I can just do a ColumnLayout for vertical sidebars:

https://doc.qt.io/qt-6/qml-qtquick-controls-toolbar.html

https://stackoverflow.com/questions/67488758/qt-qml-vertical-tabbar

Related to custom app bars, I just thought about how there can be a margin spacer item of some sort behind the appbar and it will be either 24 or 48 in height, depending on if the appbar is minimized or not. I think landscape ones are never minimized, but it wouldn't make sense so it should be able to have those minimized, too. Landscape would have it be 24 or 48 wide and height of the page, just like the default layout of the appbar itself. There needs to be a way to ensure that full-page stuff like images can still be shown if the app wants it, as well as not using the margin or just having it at the bottom of lists. Edit: I think landscape ones always have the margin. Maybe it can be an item that is optionally used and easily put into an application or something. Edit 2: Really hoping I can just do a ColumnLayout for vertical sidebars: https://doc.qt.io/qt-6/qml-qtquick-controls-toolbar.html https://stackoverflow.com/questions/67488758/qt-qml-vertical-tabbar
DrewNaylor changed title from (削除) If I do figure out how to do my own appbar drawer correctly, try putting up a mousearea that fills the area behind the appbar and the drawer that when clicked will close the appbar drawer. (削除ここまで) to If I do figure out how to do my own appbar drawer correctly, try putting up a mousearea that fills the area behind the appbar and the drawer that when clicked will close the appbar drawer. + more custom appbar drawer stuff. 2026年04月08日 22:49:39 +02:00
Author
Owner
Copy link

I don't remember where it was but someone on the Qt forums mentioned doing something involving columns and putting the bar in the column.

I don't remember where it was but someone on the Qt forums mentioned doing something involving columns and putting the bar in the column.
Author
Owner
Copy link

More ideas I wrote about on Mastodon here: https://mastodon.online/@DrewNaylor/116373632178279797

Setting y-values and height manually feels sketchy but the alternative is using a Column to organize the window into main stuff and the appbar, and that doesn't allow for transparent appbars to show stuff behind it I don't think. Same thing for landscape, just with a Row and my alternative would be setting x-values and width. Read about the column idea on the Qt forums earlier but now I can't find it. I wonder if having the height always full-size but keeping its y-value below the window height would work.

That way it's not on screen at all and I'd do the same with the x-value in landscape. But I think I need to integrate the appbar drawer into the appbar so tabbing between them works. Maybe have the appbar be a height of the maximum appbar contents and the drawer that an app has configured but just keep it either 48 or 24 units tall, depending on if it's minimized or not. That way I can have it dragged easily and not worry about height.

Then calculating if it's fully open or not would be done by figuring out if the appbar's position is 1, where position = (window height - current y-value) / (opened appbar height + opened appbar drawer height). Minimizing could be done by taking the window's height and setting the y-value to that - 24. The appbar knows when it's minimized so hiding the appbar buttons isn't an issue (Metro design guidelines say not to use them when minimized I think but some apps did).

If there are no appbar drawer items, the height will simply not include drawer height. It will always include appbar height though.

More ideas I wrote about on Mastodon here: https://mastodon.online/@DrewNaylor/116373632178279797 Setting y-values and height manually feels sketchy but the alternative is using a Column to organize the window into main stuff and the appbar, and that doesn't allow for transparent appbars to show stuff behind it I don't think. Same thing for landscape, just with a Row and my alternative would be setting x-values and width. Read about the column idea on the Qt forums earlier but now I can't find it. I wonder if having the height always full-size but keeping its y-value below the window height would work. That way it's not on screen at all and I'd do the same with the x-value in landscape. But I think I need to integrate the appbar drawer into the appbar so tabbing between them works. Maybe have the appbar be a height of the maximum appbar contents and the drawer that an app has configured but just keep it either 48 or 24 units tall, depending on if it's minimized or not. That way I can have it dragged easily and not worry about height. Then calculating if it's fully open or not would be done by figuring out if the appbar's position is 1, where position = (window height - current y-value) / (opened appbar height + opened appbar drawer height). Minimizing could be done by taking the window's height and setting the y-value to that - 24. The appbar knows when it's minimized so hiding the appbar buttons isn't an issue (Metro design guidelines say not to use them when minimized I think but some apps did). If there are no appbar drawer items, the height will simply not include drawer height. It will always include appbar height though.
Author
Owner
Copy link

Have to do the gesture drag speed and threshold to not have to manually drag it all the way up.

Have to do the gesture drag speed and threshold to not have to manually drag it all the way up.
Author
Owner
Copy link

This page discusses how to have appbars show over the view and shows 8.1 where it still reserves space even if it's transparent: https://dotnetbyexample.blogspot.com/2014/10/making-application-bar-display-on-of.html

I still can't think about what I want to do with a spacer with the row or column idea. Unless the Page items in QML aren't on the same layer as the appbar and by default pages will have maximum size of window.height - appBar.minimumHeight or something. That way there can be a property that can be set to have it go behind the appbar, or rather, we do the same thing as 7 and 8.0 where transparent appbars don't reserve space. This way developers that want to ensure a button is always above it when closed can use the appbar's closed height as a margin on top of any other margins they want. I will need to make a custom Page item just for RetiledStyles.

Heights need to be changed out for widths in landscape. I don't know what to do about transparent appbars in landscape.

This page discusses how to have appbars show over the view and shows 8.1 where it still reserves space even if it's transparent: https://dotnetbyexample.blogspot.com/2014/10/making-application-bar-display-on-of.html I still can't think about what I want to do with a spacer with the row or column idea. Unless the Page items in QML aren't on the same layer as the appbar and by default pages will have maximum size of `window.height - appBar.minimumHeight` or something. That way there can be a property that can be set to have it go behind the appbar, or rather, we do the same thing as 7 and 8.0 where transparent appbars don't reserve space. This way developers that want to ensure a button is always above it when closed can use the appbar's closed height as a margin on top of any other margins they want. I will need to make a custom Page item just for RetiledStyles. Heights need to be changed out for widths in landscape. I don't know what to do about transparent appbars in landscape.
Author
Owner
Copy link

With the new drawer-dx branch allowing better placement of the appbar drawer items and the appbar itself without (I hope) the extremely jank layout of the QtQuick "Drawer" item where I had to have everything in a specific spot or else there would be a gap, so that maybe the appbar drawer can be shorter and only the height of the amount of items up to a maximum height. There would probably still need to be a scrolling thing in case the window is too small but that can be turned on and off based on the window height if it's too short to show the whole appbar and stuff. The maximum height would be limited to what it currently goes to probably though since it's open pretty big, I'll have to see though. Having it so it doesn't have to scroll would be like Windows Phone where the guidelines recommend a maximum of 5 or so things in the appbar drawer so it doesn't need to scroll.

With the new drawer-dx branch allowing better placement of the appbar drawer items and the appbar itself without (I hope) the extremely jank layout of the QtQuick "Drawer" item where I had to have everything in a specific spot or else there would be a gap, so that maybe the appbar drawer can be shorter and only the height of the amount of items up to a maximum height. There would probably still need to be a scrolling thing in case the window is too small but that can be turned on and off based on the window height if it's too short to show the whole appbar and stuff. The maximum height would be limited to what it currently goes to probably though since it's open pretty big, I'll have to see though. Having it so it doesn't have to scroll would be like Windows Phone where the guidelines recommend a maximum of 5 or so things in the appbar drawer so it doesn't need to scroll.
Sign in to join this conversation.
No Branch/Tag specified
main
drawer-dx
rounded-tiles-with-wallpaper
allow-alternate-styles
rust-stuff
use-tiledmenu-tilesgrid
tilesgrid-integration
parallax-background-test
v0.1-DP4
v0.1-DP3-binaries-install-script-tag
v0.1-DP3-binaries-build-tag
v0.1-DP3
v0.1-DP2
v0.1-DP1
before-archiving-avalonia-based-retiledstart
before-archiving-avalonia-based-retiledsearch
Labels
Clear labels
accessibility
Anything relating to Accessibility/Ease of Access.
app
Non-shell applications. Does not include RetiledStart even though it's a regular window because it's too close to being a shell component.
archived
This discussion, issue, or pr is archived and locked.
bug
Something isn't working
documentation
Improvements or additions to documentation, or this pr/issue is basically documentation until the next version is ready
duplicate
This issue or pull request already exists
enhancement
New feature or request
good first issue
Good for newcomers
help wanted
Extra attention is needed
invalid
This doesn't seem right
known issue
overhaul
Massive changes, additions, or removals
performance
question
Further information is requested
regression
Bug that wasn't there before.
shell
Shell components, specifically things like the status bar and navbar. RetiledStart shouldn't count since it's an application window but I include it here.
still has cool ideas
Closed issues that might still have some cool ideas.
themes+styles
Theme-related issues.
todo
Reminder for something to do later.
wontfix
I'm not really feeling it.
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
DrewNaylor/Retiled#540
Reference in a new issue
DrewNaylor/Retiled
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?