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