https://git.reactos.org/?p=reactos.git;a=commitdiff;h=3a33de0fb138a4531faf0…
commit 3a33de0fb138a4531faf0c6055968fea6bb42bd8
Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
AuthorDate: Sun Aug 26 20:31:14 2018 +0200
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
CommitDate: Sun Aug 26 20:41:56 2018 +0200
[USETUP] Progress-bar: Code formatting, add annotations, don't use floats.
---
base/setup/usetup/progress.c | 79 ++++++++++++++++++++++----------------------
base/setup/usetup/progress.h | 61 ++++++++++++++++++----------------
2 files changed, 73 insertions(+), 67 deletions(-)
diff --git a/base/setup/usetup/progress.c b/base/setup/usetup/progress.c
index 48e202ecbf..e7ea1e5fc5 100644
--- a/base/setup/usetup/progress.c
+++ b/base/setup/usetup/progress.c
@@ -11,7 +11,7 @@
static
VOID
DrawBorder(
- PPROGRESSBAR Bar)
+ IN PPROGRESSBAR Bar)
{
COORD coPos;
DWORD Written;
@@ -94,7 +94,7 @@ DrawBorder(
static
VOID
DrawThickBorder(
- PPROGRESSBAR Bar)
+ IN PPROGRESSBAR Bar)
{
COORD coPos;
DWORD Written;
@@ -177,7 +177,7 @@ DrawThickBorder(
static
VOID
DrawProgressBar(
- PPROGRESSBAR Bar)
+ IN PPROGRESSBAR Bar)
{
CHAR TextBuffer[8];
COORD coPos;
@@ -185,7 +185,7 @@ DrawProgressBar(
PROGRESSBAR BarBorder = *Bar;
/* Draw the progress bar "border" border */
- if (Bar->Double)
+ if (Bar->DoubleEdge)
{
BarBorder.Top -= 5;
BarBorder.Bottom += 2;
@@ -197,8 +197,9 @@ DrawProgressBar(
/* Draw the progress bar border */
DrawBorder(Bar);
- /* Write the text associated with the bar */
- CONSOLE_SetTextXY(Bar->TextTop, Bar->TextRight, Bar->Text);
+ /* Display the description text */
+ if (Bar->DescriptionText)
+ CONSOLE_SetTextXY(Bar->TextTop, Bar->TextRight, Bar->DescriptionText);
/* Print percentage */
sprintf(TextBuffer, "%-3lu%%", Bar->Percent);
@@ -232,15 +233,15 @@ DrawProgressBar(
PPROGRESSBAR
CreateProgressBarEx(
- SHORT Left,
- SHORT Top,
- SHORT Right,
- SHORT Bottom,
- SHORT TextTop,
- SHORT TextRight,
+ IN SHORT Left,
+ IN SHORT Top,
+ IN SHORT Right,
+ IN SHORT Bottom,
+ IN SHORT TextTop,
+ IN SHORT TextRight,
IN BOOLEAN DoubleEdge,
- SHORT ProgressColour,
- CHAR *Text)
+ IN SHORT ProgressColour,
+ IN PCSTR DescriptionText OPTIONAL)
{
PPROGRESSBAR Bar;
@@ -256,18 +257,19 @@ CreateProgressBarEx(
Bar->Bottom = Bottom;
Bar->TextTop = TextTop;
Bar->TextRight = TextRight;
- Bar->Double = DoubleEdge;
- Bar->ProgressColour = ProgressColour;
- Bar->Text = Text;
Bar->Width = Bar->Right - Bar->Left + 1;
- Bar->Percent = 0;
- Bar->Pos = 0;
+ Bar->DoubleEdge = DoubleEdge;
+ Bar->ProgressColour = ProgressColour;
+ Bar->DescriptionText = DescriptionText;
Bar->StepCount = 0;
Bar->CurrentStep = 0;
+ Bar->Percent = 0;
+ Bar->Pos = 0;
+
DrawProgressBar(Bar);
return Bar;
@@ -275,27 +277,26 @@ CreateProgressBarEx(
PPROGRESSBAR
CreateProgressBar(
- SHORT Left,
- SHORT Top,
- SHORT Right,
- SHORT Bottom,
- SHORT TextTop,
- SHORT TextRight,
+ IN SHORT Left,
+ IN SHORT Top,
+ IN SHORT Right,
+ IN SHORT Bottom,
+ IN SHORT TextTop,
+ IN SHORT TextRight,
IN BOOLEAN DoubleEdge,
- CHAR *Text)
+ IN PCSTR DescriptionText OPTIONAL)
{
-
/* Call the Ex variant of the function */
return CreateProgressBarEx(Left, Top, Right, Bottom,
TextTop, TextRight,
DoubleEdge,
FOREGROUND_YELLOW | BACKGROUND_BLUE,
- Text);
+ DescriptionText);
}
VOID
DestroyProgressBar(
- PPROGRESSBAR Bar)
+ IN OUT PPROGRESSBAR Bar)
{
RtlFreeHeap(ProcessHeap, 0, Bar);
}
@@ -303,8 +304,8 @@ DestroyProgressBar(
VOID
ProgressSetStepCount(
- PPROGRESSBAR Bar,
- ULONG StepCount)
+ IN PPROGRESSBAR Bar,
+ IN ULONG StepCount)
{
Bar->CurrentStep = 0;
Bar->StepCount = StepCount;
@@ -314,15 +315,15 @@ ProgressSetStepCount(
VOID
ProgressNextStep(
- PPROGRESSBAR Bar)
+ IN PPROGRESSBAR Bar)
{
ProgressSetStep(Bar, Bar->CurrentStep + 1);
}
VOID
ProgressSetStep(
- PPROGRESSBAR Bar,
- ULONG Step)
+ IN PPROGRESSBAR Bar,
+ IN ULONG Step)
{
CHAR TextBuffer[8];
COORD coPos;
@@ -336,7 +337,7 @@ ProgressSetStep(
Bar->CurrentStep = Step;
/* Calculate new percentage */
- NewPercent = (ULONG)(((100.0 * (float)Bar->CurrentStep) /
(float)Bar->StepCount) + 0.5);
+ NewPercent = ((100 * Bar->CurrentStep + (Bar->StepCount / 2)) /
Bar->StepCount);
/* Redraw percentage if changed */
if (Bar->Percent != NewPercent)
@@ -354,10 +355,10 @@ ProgressSetStep(
&Written);
}
- /* Calculate bar position */
- NewPos = (ULONG)((((float)(Bar->Width - 2) * 2.0 * (float)Bar->CurrentStep) /
(float)Bar->StepCount) + 0.5);
+ /* Calculate the bar position */
+ NewPos = (((Bar->Width - 2) * 2 * Bar->CurrentStep + (Bar->StepCount / 2)) /
Bar->StepCount);
- /* Redraw bar if changed */
+ /* Redraw the bar if it has changed */
if (Bar->Pos != NewPos)
{
Bar->Pos = NewPos;
@@ -370,7 +371,7 @@ ProgressSetStep(
Bar->Pos / 2,
coPos,
&Written);
- coPos.X += Bar->Pos/2;
+ coPos.X += Bar->Pos / 2;
if (NewPos & 1)
{
diff --git a/base/setup/usetup/progress.h b/base/setup/usetup/progress.h
index ee438e95c2..d125f7b712 100644
--- a/base/setup/usetup/progress.h
+++ b/base/setup/usetup/progress.h
@@ -26,8 +26,9 @@
#pragma once
-typedef struct _PROGRESS
+typedef struct _PROGRESSBAR
{
+ /* Border and text positions */
SHORT Left;
SHORT Top;
SHORT Right;
@@ -37,58 +38,62 @@ typedef struct _PROGRESS
SHORT Width;
- ULONG Percent;
- SHORT Pos;
-
+ /* Maximum and current step counts */
ULONG StepCount;
ULONG CurrentStep;
- BOOLEAN Double;
+ /* User-specific displayed bar progress/position */
+ ULONG Percent;
+ SHORT Pos;
+
+ /* Static progress bar cues */
+ BOOLEAN DoubleEdge;
SHORT ProgressColour;
- CHAR *Text;
+ PCSTR DescriptionText;
} PROGRESSBAR, *PPROGRESSBAR;
+
/* FUNCTIONS ****************************************************************/
PPROGRESSBAR
CreateProgressBarEx(
- SHORT Left,
- SHORT Top,
- SHORT Right,
- SHORT Bottom,
- SHORT TextTop,
- SHORT TextRight,
+ IN SHORT Left,
+ IN SHORT Top,
+ IN SHORT Right,
+ IN SHORT Bottom,
+ IN SHORT TextTop,
+ IN SHORT TextRight,
IN BOOLEAN DoubleEdge,
- SHORT ProgressColour,
- CHAR *Text);
+ IN SHORT ProgressColour,
+ IN PCSTR DescriptionText OPTIONAL);
PPROGRESSBAR
CreateProgressBar(
- SHORT Left,
- SHORT Top,
- SHORT Right,
- SHORT Bottom,
- SHORT TextTop,
- SHORT TextRight,
- BOOLEAN DoubleEdge,
- CHAR *Text);
+ IN SHORT Left,
+ IN SHORT Top,
+ IN SHORT Right,
+ IN SHORT Bottom,
+ IN SHORT TextTop,
+ IN SHORT TextRight,
+ IN BOOLEAN DoubleEdge,
+ IN PCSTR DescriptionText OPTIONAL);
VOID
DestroyProgressBar(
- PPROGRESSBAR Bar);
+ IN OUT PPROGRESSBAR Bar);
VOID
ProgressSetStepCount(
- PPROGRESSBAR Bar,
- ULONG StepCount);
+ IN PPROGRESSBAR Bar,
+ IN ULONG StepCount);
VOID
ProgressNextStep(
- PPROGRESSBAR Bar);
+ IN PPROGRESSBAR Bar);
VOID
ProgressSetStep(
- PPROGRESSBAR Bar,
- ULONG Step);
+ IN PPROGRESSBAR Bar,
+ IN ULONG Step);
/* EOF */