Progress Bars
"When will I be able to try out Terminaux 7.0?" "Soon, just please wait."
List of progress bars
1
Progress bar with text
var stickScreen = new Screen()
{
CycleFrequency = 50,
};
var progressBar = new ProgressBar(
"This is the test progress bar that contains a scrolling marquee.", 0, 100)
{
Width = ConsoleWrapper.WindowWidth - 8,
};
try
{
// First, clear the screen
ColorTools.LoadBack();
// Then, show the progress bar
var stickScreenPart = new ScreenPart();
stickScreenPart.Position(4, ConsoleWrapper.WindowHeight - 1);
stickScreenPart.AddDynamicText(progressBar.Render);
stickScreen.AddBufferedPart("Test", stickScreenPart);
ScreenTools.SetCurrent(stickScreen);
ScreenTools.SetCurrentCyclic(stickScreen);
ScreenTools.StartCyclicScreen();
// Finally, increment the progress bar until it's full
for (int progress = 0; progress < 100; progress++)
{
progressBar.Position = progress;
Thread.Sleep(100);
}
}
catch (Exception ex)
{
InfoBoxModalColor.WriteInfoBoxModal($"Screen failed to render: {ex.Message}");
}
finally
{
ScreenTools.StopCyclicScreen();
ScreenTools.UnsetCurrent(stickScreen);
ColorTools.LoadBack();
}

2
Progress bar without text
var stickScreen = new Screen()
{
CycleFrequency = 50,
};
var progressBar = new ProgressBarNoText(0, 100)
{
Width = ConsoleWrapper.WindowWidth - 8,
};
try
{
// First, clear the screen
ColorTools.LoadBack();
// Then, show the progress bar
var stickScreenPart = new ScreenPart();
stickScreenPart.Position(4, ConsoleWrapper.WindowHeight - 1);
stickScreenPart.AddDynamicText(progressBar.Render);
stickScreen.AddBufferedPart("Test", stickScreenPart);
ScreenTools.SetCurrent(stickScreen);
ScreenTools.SetCurrentCyclic(stickScreen);
ScreenTools.StartCyclicScreen();
// Finally, increment the progress bar until it's full
for (int progress = 0; progress < 100; progress++)
{
progressBar.Position = progress;
Thread.Sleep(100);
}
}
catch (Exception ex)
{
InfoBoxModalColor.WriteInfoBoxModal($"Screen failed to render: {ex.Message}");
}
finally
{
ScreenTools.StopCyclicScreen();
ScreenTools.UnsetCurrent(stickScreen);
ColorTools.LoadBack();
}

3
Simple progress bars
var stickScreen = new Screen()
{
CycleFrequency = 50,
};
var progressBar = new SimpleProgress(0, 100)
{
Width = ConsoleWrapper.WindowWidth - 8,
};
try
{
// First, clear the screen
ColorTools.LoadBack();
// Then, show the progress bar
var stickScreenPart = new ScreenPart();
stickScreenPart.Position(4, ConsoleWrapper.WindowHeight - 1);
stickScreenPart.AddDynamicText(progressBar.Render);
stickScreen.AddBufferedPart("Test", stickScreenPart);
ScreenTools.SetCurrent(stickScreen);
ScreenTools.SetCurrentCyclic(stickScreen);
ScreenTools.StartCyclicScreen();
// Finally, increment the progress bar until it's full
for (int progress = 0; progress < 100; progress++)
{
progressBar.Position = progress;
Thread.Sleep(100);
}
}
catch (Exception ex)
{
InfoBoxModalColor.WriteInfoBoxModal($"Screen failed to render: {ex.Message}");
}
finally
{
ScreenTools.StopCyclicScreen();
ScreenTools.UnsetCurrent(stickScreen);
ColorTools.LoadBack();
}



4
Slider
var stickScreen = new Screen()
{
CycleFrequency = 50,
};
var container = new Container();
var slider1 = new Slider(0, 0, 100)
{
Width = 40,
};
var slider2 = new Slider(0, 0, 10)
{
Width = 40,
};
var slider3 = new Slider(0, 0, 4)
{
Width = 40,
};
container.AddRenderable("Slider bar 1", slider1);
container.SetRenderablePosition("Slider bar 1", new(4, ConsoleWrapper.WindowHeight - 3));
container.AddRenderable("Slider bar 2", slider2);
container.SetRenderablePosition("Slider bar 2", new(4, ConsoleWrapper.WindowHeight - 2));
container.AddRenderable("Slider bar 3", slider3);
container.SetRenderablePosition("Slider bar 3", new(4, ConsoleWrapper.WindowHeight - 1));
// Render them all
try
{
// First, clear the screen
ColorTools.LoadBack();
// Then, show the slider bar
var stickScreenPart = new ScreenPart();
stickScreenPart.Position(4, ConsoleWrapper.WindowHeight - 1);
stickScreenPart.AddDynamicText(() => ContainerTools.RenderContainer(container));
stickScreen.AddBufferedPart("Test", stickScreenPart);
ScreenTools.SetCurrent(stickScreen);
ScreenTools.SetCurrentCyclic(stickScreen);
ScreenTools.StartCyclicScreen();
// Finally, increment the slider bar until it's full
for (int sliderPos1 = 0, sliderPos2 = 0, sliderPos3 = 0; sliderPos1 < 100; sliderPos1++, sliderPos2++, sliderPos3++)
{
if (sliderPos2 == 10)
sliderPos2 = 0;
if (sliderPos3 == 4)
sliderPos3 = 0;
slider1.Position = sliderPos1;
slider2.Position = sliderPos2;
slider3.Position = sliderPos3;
Thread.Sleep(100);
}
}
catch (Exception ex)
{
InfoBoxModalColor.WriteInfoBoxModal($"Screen failed to render: {ex.Message}");
}
finally
{
ScreenTools.StopCyclicScreen();
ScreenTools.UnsetCurrent(stickScreen);
ColorTools.LoadBack();
}

5
Spinner
var stickScreen = new Screen()
{
CycleFrequency = 80,
};
var marquee = BuiltinSpinners.BouncingBar;
try
{
// First, clear the screen
ColorTools.LoadBack();
// Then, show the counter
var stickScreenPart = new ScreenPart();
stickScreenPart.Position(4, ConsoleWrapper.WindowHeight - 2);
stickScreenPart.AddDynamicText(marquee.Render);
stickScreen.AddBufferedPart("Test", stickScreenPart);
ScreenTools.SetCurrent(stickScreen);
ScreenTools.SetCurrentCyclic(stickScreen);
ScreenTools.StartCyclicScreen();
Input.ReadKey();
}
catch (Exception ex)
{
InfoBoxModalColor.WriteInfoBoxModal($"Screen failed to render: {ex.Message}");
}
finally
{
ScreenTools.StopCyclicScreen();
ScreenTools.UnsetCurrent(stickScreen);
ColorTools.LoadBack();
}
Last updated