I'd like to create a panel which starts 'minimised' but has a drag handle which can be dragged to expand the panel, or double-clicked to open it fully. I'd also like to be able to trigger this with a key-press.
Finally, I'd like this to be a generic component, that accepts any Control node(s) for the content.
I can't get my head around what UI controls I need to make this out of. How to attach the drag 'handle', for instance?
Creating a draggable/sliding panel
v79
I have made some progress. My pulldown_panel
scene has the following nodes:
PulldownPanel
- VBoxContainer
- PanelContainer
- Handle (_currently just a ColorRect_)
I put this into a test scene with the following structure:
PulldownPanelTest
- PulldownPanel
- VBoxContainer
- _Labels, content etc_
And my script on the Pulldown_Panel
scene responds to a key press, and expands the PanelContainer
by resizing it each frame, and also moves the content (the 1st (not 0th) child of the PanelContainer
) down each frame. Opposite for shrinking.