aboutsummaryrefslogtreecommitdiff
path: root/CPP/7zip/UI/Console/PercentPrinter.h
diff options
context:
space:
mode:
Diffstat (limited to 'CPP/7zip/UI/Console/PercentPrinter.h')
-rw-r--r--CPP/7zip/UI/Console/PercentPrinter.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/CPP/7zip/UI/Console/PercentPrinter.h b/CPP/7zip/UI/Console/PercentPrinter.h
new file mode 100644
index 0000000..95290b3
--- /dev/null
+++ b/CPP/7zip/UI/Console/PercentPrinter.h
@@ -0,0 +1,62 @@
1// PercentPrinter.h
2
3#ifndef __PERCENT_PRINTER_H
4#define __PERCENT_PRINTER_H
5
6#include "../../../Common/StdOutStream.h"
7
8struct CPercentPrinterState
9{
10 UInt64 Completed;
11 UInt64 Total;
12
13 UInt64 Files;
14
15 AString Command;
16 UString FileName;
17
18 void ClearCurState();
19
20 CPercentPrinterState():
21 Completed(0),
22 Total((UInt64)(Int64)-1),
23 Files(0)
24 {}
25};
26
27class CPercentPrinter: public CPercentPrinterState
28{
29 UInt32 _tickStep;
30 DWORD _prevTick;
31
32 AString _s;
33
34 AString _printedString;
35 AString _temp;
36 UString _tempU;
37
38 CPercentPrinterState _printedState;
39 AString _printedPercents;
40
41 void GetPercents();
42
43public:
44 CStdOutStream *_so;
45
46 bool NeedFlush;
47 unsigned MaxLen;
48
49 CPercentPrinter(UInt32 tickStep = 200):
50 _tickStep(tickStep),
51 _prevTick(0),
52 NeedFlush(true),
53 MaxLen(80 - 1)
54 {}
55
56 ~CPercentPrinter();
57
58 void ClosePrint(bool needFlush);
59 void Print();
60};
61
62#endif