diff --git a/wadsrc/static/zscript/statusbar/statusbarwidget.txt b/wadsrc/static/zscript/statusbar/statusbarwidget.txt new file mode 100644 index 0000000000..01d8d5d865 --- /dev/null +++ b/wadsrc/static/zscript/statusbar/statusbarwidget.txt @@ -0,0 +1,79 @@ + +class StatusbarWidget ui +{ + StatusbarWidget Next; + StatusbarWidget Prev; + StatusbarWidget Owner; + + native vararg StatusbarWidget AppendWidget(class cls, ...); + native vararg StatusbarWidget BeginCondition(class cls, ...); + native StatusbarWidget EndCondition(); + native void Finish(); +} + +class StatusbarCondition : StatusbarWidget +{ + StatusbarWidget Children; +} + +class WidgetStatusBar : BaseStatusBar +{ + private StatusbarWidget Head; + + StatusbarWidget Begin() + { + Head = new("StatusbarWidget"); + Head.Owner = Head; + return Head; + } +} + + +/* for testing the above. This block compiles. +class TestWidgets : WidgetStatusBar +{ + override void Init() + { + Begin() + .AppendWidget("StatusbarWidget") + .AppendWidget("StatusbarWidget") + .AppendWidget("StatusbarWidget") + .AppendWidget("StatusbarWidget") + .AppendWidget("StatusbarWidget") + .BeginCondition("StatusbarCondition") + .AppendWidget("StatusbarWidget") + .AppendWidget("StatusbarWidget") + .AppendWidget("StatusbarWidget") + .AppendWidget("StatusbarWidget") + .EndCondition() + .AppendWidget("StatusbarWidget") + .AppendWidget("StatusbarWidget") + .AppendWidget("StatusbarWidget") + .BeginCondition("StatusbarCondition") + .AppendWidget("StatusbarWidget") + .AppendWidget("StatusbarWidget") + .BeginCondition("StatusbarCondition") + .AppendWidget("StatusbarWidget") + .AppendWidget("StatusbarWidget") + .AppendWidget("StatusbarWidget") + .AppendWidget("StatusbarWidget") + .EndCondition() + .AppendWidget("StatusbarWidget") + .AppendWidget("StatusbarWidget") + .EndCondition() + .AppendWidget("StatusbarWidget") + .AppendWidget("StatusbarWidget") + .AppendWidget("StatusbarWidget") + .AppendWidget("StatusbarWidget") + .AppendWidget("StatusbarWidget") + .BeginCondition("StatusbarCondition") + .AppendWidget("StatusbarWidget") + .AppendWidget("StatusbarWidget") + .AppendWidget("StatusbarWidget") + .AppendWidget("StatusbarWidget") + .EndCondition() + .AppendWidget("StatusbarWidget") + .Finish(); + } +} +*/ \ No newline at end of file