00001 00002 00003 00004 00005 #ifndef __GPROGRESSDLG_H 00006 #define __GPROGRESSDLG_H 00007 00008 class LgiClass ProgressList : public List<Progress> 00009 { 00010 bool InUse; 00011 00012 public: 00013 ProgressList(); 00014 00015 bool Lock(); 00016 void Unlock(); 00017 }; 00018 00020 class LgiClass GProgressPane : public Progress, public GLayout 00021 { 00022 friend class GProgressDlg; 00023 00024 Progress *Ref; 00025 00026 protected: 00027 bool Wait; 00028 00029 GText *Desc; 00030 GText *ValText; 00031 GText *Rate; 00032 GProgress *Bar; 00033 GButton *But; 00034 00035 public: 00036 GProgressPane(); 00037 ~GProgressPane(); 00038 00039 char *GetDescription(); 00040 void SetDescription(const char *d); 00041 void GetLimits(int64 *l, int64 *h) { Progress::GetLimits(l, h); } 00042 void SetLimits(int64 l, int64 h); 00043 int64 Value() { return Progress::Value(); } 00044 void Value(int64 v); 00045 GFont *GetFont(); 00046 00047 void OnCreate(); 00048 int OnNotify(GViewI *Ctrl, int Flags); 00049 void OnPaint(GSurface *pDC); 00050 bool Pour(GRegion &r); 00051 }; 00052 00054 class LgiClass GProgressDlg : public GDialog 00055 { 00056 protected: 00057 bool Wait; 00058 List<GProgressPane> Progri; 00059 00060 public: 00062 GProgressDlg 00063 ( 00065 GView *parent = 0, 00068 bool wait = false 00069 ); 00070 ~GProgressDlg(); 00071 00073 GProgressPane *Push(); 00075 void Pop(GProgressPane *p = 0); 00077 GProgressPane *ItemAt(int i); 00078 00080 char *GetDescription(); 00082 void SetDescription(const char *d); 00084 void GetLimits(int64 *l, int64 *h); 00086 void SetLimits(int64 l, int64 h); 00088 double GetScale(); 00090 void SetScale(double s); 00092 int64 Value(); 00094 void Value(int64 v); 00096 const char *GetType(); 00098 void SetType(const char *t); 00100 bool Cancel(); 00102 void OnSync(ProgressList *Prg); 00103 00104 int OnEvent(GMessage *Msg); 00105 void OnPaint(GSurface *pDC); 00106 void OnCreate(); 00107 }; 00108 00109 #endif