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(char *d);
00041 void GetLimits(int *l, int *h) { Progress::GetLimits(l, h); }
00042 void SetLimits(int l, int h);
00043 int Value() { return Progress::Value(); }
00044 void Value(int 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(char *d);
00084 void GetLimits(int *l, int *h);
00086 void SetLimits(int l, int h);
00088 double GetScale();
00090 void SetScale(double s);
00092 int Value();
00094 void Value(int v);
00096 char *GetType();
00098 void SetType(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