Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __CS_CSPMETER_H__
00021 #define __CS_CSPMETER_H__
00022
00027 #include "csextern.h"
00028 #include "csutil/scf_implementation.h"
00029 #include "ivaria/pmeter.h"
00030
00031 struct iConsoleOutput;
00032
00055 class CS_CRYSTALSPACE_EXPORT csTextProgressMeter :
00056 public scfImplementation1<csTextProgressMeter, iProgressMeter>
00057 {
00058 private:
00059 iConsoleOutput* console;
00060 int granularity;
00061 int tick_scale;
00062 int total;
00063 int current;
00064 int anchor;
00065
00066 public:
00068 csTextProgressMeter (iConsoleOutput* console, int total = 100);
00070 virtual ~csTextProgressMeter ();
00071
00078 void SetTickScale (int);
00080 int GetTickScale () const { return tick_scale; }
00081
00087 virtual void CS_GNUC_PRINTF (3, 4)
00088 SetProgressDescription (const char*, const char*, ...) { }
00089 virtual void CS_GNUC_PRINTF (3, 0)
00090 SetProgressDescriptionV (const char*, const char*, va_list) { }
00091
00093 virtual void Step (unsigned int n = 1);
00095 virtual void Reset () { current = 0; anchor = 0; }
00097 virtual void Restart ();
00099 virtual void Abort ();
00101 virtual void Finalize ();
00102
00104 virtual void SetTotal (int n) { total = n; Reset(); }
00106 virtual int GetTotal () const { return total; }
00108 virtual int GetCurrent () const { return current; }
00109
00116 virtual void SetGranularity (int);
00118 virtual int GetGranularity () const { return granularity; }
00119 };
00120
00121 #endif // __CS_CSPMETER_H__