Sort the scripts and scenes into folders
main/ holds the main window and top bar, quiz/ the quiz and its parts, player/ the music player, popups/ every popup and what they share, data/ the songs, players, playlist and settings, server/ the MusicServer client, common/ the list row and GameLog, and themes/ the themes and style boxes.
This commit is contained in:
1 parent
a0428e3475
commit
d77b72159d
115 files changed
+94
-84
No files matched your search
@@ -0,0 +1,31 @@
|
||||
class_name PopupBackdrop
|
||||
extends ColorRect
|
||||
## Dims everything behind an open popup and keeps clicks from reaching the buttons
|
||||
## under it.
|
||||
##
|
||||
## The backdrop sits above the rest of its parent and below the popups it belongs to.
|
||||
## Popups close themselves when clicked outside, and the backdrop keeps that click from
|
||||
## reaching the buttons behind them.
|
||||
|
||||
var _popups: Array[BasePopup] = []
|
||||
|
||||
|
||||
## Adds a backdrop to [param parent] and moves [param popups] above it. The backdrop
|
||||
## shows while any of them is open.
|
||||
static func add_to(parent: Control, popups: Array[BasePopup]) -> PopupBackdrop:
|
||||
var backdrop: PopupBackdrop = PopupBackdrop.new()
|
||||
backdrop.name = "PopupBackdrop"
|
||||
backdrop.color = Color(0, 0, 0, 0.55)
|
||||
backdrop.mouse_filter = Control.MOUSE_FILTER_STOP
|
||||
backdrop._popups = popups
|
||||
parent.add_child(backdrop)
|
||||
backdrop.set_anchors_and_offsets_preset(Control.PRESET_FULL_RECT)
|
||||
for popup: BasePopup in popups:
|
||||
parent.move_child(popup, -1)
|
||||
popup.visibility_changed.connect(backdrop._update)
|
||||
backdrop._update()
|
||||
return backdrop
|
||||
|
||||
|
||||
func _update() -> void:
|
||||
visible = _popups.any(func(popup: BasePopup) -> bool: return popup.visible)
|
||||
Reference in new issue
Block a user