summaryrefslogtreecommitdiff
path: root/Scripts/OutputContainer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Scripts/OutputContainer.cs')
-rw-r--r--Scripts/OutputContainer.cs52
1 files changed, 0 insertions, 52 deletions
diff --git a/Scripts/OutputContainer.cs b/Scripts/OutputContainer.cs
deleted file mode 100644
index 5db1fe6..0000000
--- a/Scripts/OutputContainer.cs
+++ /dev/null
@@ -1,52 +0,0 @@
-using System.Linq;
-using Godot;
-
-namespace Texty.Scripts
-{
- public abstract class OutputContainer : PanelContainer
- {
- private double _lastScrollLimit;
-
- private VScrollBar _scrollBar;
-
- [Export(PropertyHint.Range, "10,40,1")] public int MaximumRows = 20;
-
- public VBoxContainer OutputRows;
- public ScrollContainer ScrollContainer;
-
- public override void _Ready()
- {
- ScrollContainer = GetNode<ScrollContainer>(nameof(ScrollContainer));
- _scrollBar = ScrollContainer.GetVScrollbar();
- OutputRows = ScrollContainer.GetNode<VBoxContainer>(nameof(OutputRows));
-
- _lastScrollLimit = _scrollBar.MaxValue;
- _scrollBar.Connect("changed", this, nameof(OnScrollLimitChanged));
- }
-
- public void Add(OutputRow row)
- {
- OutputRows.AddChild(row);
- ExpungeOldRows();
- }
-
- public void OnScrollLimitChanged()
- {
- if (!(_lastScrollLimit < _scrollBar.MaxValue)) return;
- _lastScrollLimit = _scrollBar.MaxValue;
- ScrollContainer.ScrollVertical = (int)_scrollBar.MaxValue;
- }
-
- private void ExpungeOldRows()
- {
- GD.Range(OutputRows.GetChildCount() - MaximumRows)
- .Select(idx => OutputRows.GetChild(idx))
- .ToList()
- .ForEach(row =>
- {
- OutputRows.RemoveChild(row);
- row.QueueFree();
- });
- }
- }
-} \ No newline at end of file