blob: 5967d95120bad8c62c8f463146b0291f6136b3f7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
using HyperBooru.Pages.Component;
namespace HyperBooru.Services;
public interface IDialogService {
public void Register(Dialog dialog);
public void Unregister(Dialog dialog);
public void BumpZIndex(Dialog dialog);
}
public class DialogService : IDialogService {
private const int MinZLevel = 900;
private List<Dialog> dialogs = new();
public void Register(Dialog dialog) {
if(!dialogs.Contains(dialog))
dialogs.Add(dialog);
dialog.ZIndex = dialogs.Count() - 1 + MinZLevel;
}
public void Unregister(Dialog dialog) {
dialogs.Remove(dialog);
for(int i = 0; i < dialogs.Count(); i++)
dialogs[i].ZIndex = i + MinZLevel;
}
public void BumpZIndex(Dialog dialog) {
if(!dialogs.Contains(dialog))
return;
dialogs.Remove(dialog);
dialogs.Add(dialog);
for(int i = 0; i < dialogs.Count(); i++)
dialogs[i].ZIndex = i + MinZLevel;
}
}
|