00001
00002 #ifndef __JBXL_CPP_CLASS_BOX_H_
00003 #define __JBXL_CPP_CLASS_BOX_H_
00004
00005
00016 #include "common++.h"
00017 #include "tools++.h"
00018
00019
00020
00021
00022 namespace jbxl {
00023
00024
00025
00028 class CVFrame;
00029
00030 extern CVFrame* GLFrame;
00031
00036 class CVFrame
00037 {
00038 public:
00039 CVFrame() {}
00040 virtual ~CVFrame() {}
00041 };
00042
00043
00045 inline void SetGlobalFrame(CVFrame* frm) { GLFrame = frm;}
00046
00048 inline void ClearGlobalFrame() { GLFrame = NULL;}
00049
00050
00051
00054 class CVDisplay;
00055
00056 extern CVDisplay* GLDisplay;
00057
00062 class CVDisplay
00063 {
00064 public:
00065 const char* title;
00066
00067 public:
00068 CVDisplay() { title = NULL;}
00069 virtual ~CVDisplay() {}
00070 };
00071
00072
00074 inline void SetGlobalDisplay(CVDisplay* disp) { GLDisplay = disp;}
00075
00077 inline void ClearGlobalDisplay() { GLDisplay = NULL;}
00078
00079
00080
00083 class CVTextDocument;
00084
00085 extern CVTextDocument* GLTextDocument;
00086
00091 class CVTextDocument
00092 {
00093 public:
00094
00095 public:
00096 CVTextDocument() { m_locked = FALSE;}
00097 virtual ~CVTextDocument() {}
00098
00099 protected:
00100 BOOL m_locked;
00101
00102 public:
00103 virtual void lprintBuffer(Buffer, int) {}
00104 virtual void lprintString(char*, int) {}
00105 virtual void lprintFormat(char*, ...) {}
00106 virtual void lfprintFormat(int, char*, ...) {}
00107
00108 virtual void printBuffer(Buffer, int) {}
00109 virtual void printString(char*, int) {}
00110 virtual void printFormat(char*, ...) {}
00111 virtual void fprintFormat(int, char*, ...) {}
00112
00113 virtual void lock(void) { m_locked = TRUE;}
00114 virtual void unlock(void) { m_locked = FALSE;}
00115 };
00116
00117
00119 inline void SetGlobalTextDocument(CVTextDocument* doc) { GLTextDocument = doc;}
00120
00122 inline void ClearGlobalTextDocument() { GLTextDocument = NULL;}
00123
00124
00125
00128 class CVCounter;
00129
00130 extern CVCounter* GLCounter;
00131
00137 class CVCounter
00138 {
00139 public:
00140 int max;
00141 int pos;
00142 int fill;
00143 bool cancel;
00144 bool start;
00145 const char* title;
00146
00147 public:
00148 CVCounter() {
00149 max = 0;
00150 pos = 0;
00151 fill = 0;
00152 title = NULL;
00153 cancel = false;
00154 start = false;
00155 }
00156
00157 virtual ~CVCounter() {}
00158
00159 virtual void Init() {max=pos=fill=0; title=""; cancel=false;};
00160 virtual void Clear() {Init();}
00161 virtual void SetMax(int m) {max = fill = m;}
00162 virtual void SetFill(int m){fill = m;}
00163 virtual void SetPos(int p) {pos = p;}
00164 virtual void PutFill() {pos = fill;}
00165 virtual int GetMax() {return max;}
00166 virtual int GetFill() {return fill;}
00167 virtual int GetPos() {return pos;}
00168
00169 virtual void Start(int m=100, char* tn=NULL) {SetMax(m); title=tn; start=true;}
00170 virtual void Stop() {max=pos=fill=0; title=NULL; start=false;}
00171 virtual void StepIt(int n=1) {pos+=n;}
00172
00173 virtual bool isCanceled() {return cancel;}
00174 virtual void ResetRate(int n, int m) {fill=m; pos+=m-n;}
00175 virtual void SetTitle(char* tn) {title=tn;}
00176
00177 virtual CVCounter* GetUsableCounter() {return this;}
00178 virtual CVCounter* MakeChildCounter(int n) {ResetRate(n,n); SetMax(n); return this;}
00179 virtual void DeleteChildCounter() {}
00180
00181 };
00182
00183
00185 inline CVCounter* GetUsableGlobalCounter()
00186 {
00187 if (GLCounter!=NULL) return GLCounter->GetUsableCounter();
00188 else return NULL;
00189 }
00190
00192 inline void SetGlobalCounter(CVCounter* counter) { GLCounter = counter;}
00193
00195 inline void ClearGlobalCounter() { GLCounter = NULL;}
00196
00197
00198
00199
00200 }
00201
00202
00203
00204 #endif