CExView Class Reference

#include <ExView.h>

Inheritance diagram for CExView:
Inheritance graph
[legend]
Collaboration diagram for CExView:
Collaboration graph
[legend]

List of all members.

Public Member Functions

POINT GetMousePos ()
virtual int GetMouseButton ()
POINT SetWindowSize (int xs, int ys, BOOL first=TRUE)
POINT GetWindowSize (POINT pt)
POINT GetClientSize (POINT pt)
POINT GetWindowReSize (POINT pt)
POINT ExecWindowReSize (int xs, int ys)
void SetTitle (LPCTSTR title)
virtual POINT GetWindowDisplaySize (POINT pt)
virtual BOOL SetNewSurface (int ovsbpos=0)
virtual void TimerStart (int tm=40)
virtual void TimerStop ()
virtual void ExecRender ()
virtual void OnInitialUpdate ()
virtual void OnDraw (CDC *pDC)
virtual ~CExView ()
afx_msg BOOL OnEraseBkgnd (CDC *pDC)
afx_msg void OnTimer (UINT_PTR nIDEvent)

Public Attributes

ExCmnHead viewData
ExCmnHead cmnHead
ExMSGraph< sWord > msGraph
CExDocumentpDoc
CExFramepFrame
CAppCallBackpApp
void * anyData
BOOL hasViewData
CString Title
RECT clientRect
double sizeXYRate
double clientRate
double sizeFac
int xsize
int ysize
int zsize
int origXSize
int origYSize
int initXSize
int initYSize
int prevXSize
int prevYSize
bool cnstSize
bool cnstXSize
bool cnstYSize
bool cnstXYRate
int maxXSize
int maxYSize
int vSBpos
int prevSBpos
int vSBmax
int vSBntch
bool vSBctrl
int viewMode
int colorMode
bool usePlane
int cMax
int cMin
int vMax
int vMin
bool doReSize

Protected Member Functions

 CExView ()
virtual void OnActivateView (BOOL bActivate, CView *pActivateView, CView *pDeactiveView)
virtual void AssertValid () const
virtual void Dump (CDumpContext &dc) const
afx_msg void OnSize (UINT nType, int cx, int cy)
afx_msg void OnVScroll (UINT nSBCode, UINT nPos, CScrollBar *pScrollBar)
afx_msg BOOL OnMouseWheel (UINT nFlags, short zDelta, CPoint pt)

Protected Attributes

int timerID
bool ctrlMouse
bool activeWin

Detailed Description

Definition at line 64 of file ExView.h.


Constructor & Destructor Documentation

CExView (  )  [protected]

Definition at line 28 of file ExView.cpp.

References VIEW_ZDIR.

00029 {
00030 //  DEBUG_WARN("CONSTRUCT  CExView\n");
00031     cmnHead.init();
00032     msGraph.init();
00033 
00034     pDoc        = NULL;     //(CExDocument*)GetDocument();
00035     pFrame      = NULL;
00036     pApp        = NULL;
00037     anyData     = NULL;
00038 
00039     hasViewData = FALSE;    // 有効な表示用データをもっているか
00040     Title       = _T("");   // ウィンドウタイトル
00041 
00042     timerID     = -1;       // -1 でタイマー未使用.
00043     sizeXYRate  = 1.0;
00044     clientRate  = 1.0;
00045     sizeFac     = 1.0;
00046 
00047     xsize       = 0;
00048     ysize       = 0;
00049     zsize       = 1;
00050 
00051     origXSize   = 0;
00052     origYSize   = 0;
00053     initXSize   = 0;
00054     initYSize   = 0;
00055     prevXSize   = 0;
00056     prevYSize   = 0;
00057 
00058     cnstSize    = false;
00059     cnstXSize   = false;
00060     cnstYSize   = false;
00061     cnstXYRate  = false;
00062     maxXSize    = SINTMAX;
00063     maxYSize    = SINTMAX;
00064 
00065     ctrlMouse   = true;
00066     doReSize    = false;
00067     activeWin   = false;
00068 
00069     vSBpos      = 0;
00070     prevSBpos   = -1;
00071     vSBmax      = 0;
00072     vSBntch     = 3;
00073     vSBctrl     = true; 
00074     viewMode    = VIEW_ZDIR;
00075     colorMode   = GRAPH_COLOR_MONO;
00076     usePlane    = false;
00077 
00078     cMax        = 0;
00079     cMin        = 0;
00080     vMax        = 0;
00081     vMin        = 0;
00082 
00083     clientRect.bottom = 0;
00084     clientRect.top    = 0;
00085     clientRect.left   = 0;
00086     clientRect.right  = 0;
00087 }

~CExView (  )  [virtual]

Definition at line 91 of file ExView.cpp.

References CExView::cmnHead, CExView::msGraph, CExView::pApp, CExView::pDoc, CExView::pFrame, CExFrame::pView, CExDocument::pView, CExView::viewData, and CAppCallBack::ViewDestructor().

00092 {
00093     DEBUG_INFO("DESTRUCTOR: CExView\n");
00094 
00095     if (pApp!=NULL) {
00096         DEBUG_INFO("Call Application ViewDestructor()\n");
00097         pApp->ViewDestructor(this);     // 上位アプリケーションに通知
00098     }
00099 
00100     // データは対応する Documentのディストラクタで削除
00101     cmnHead.mfree();
00102     msGraph.mfree();
00103 
00104     viewData.free();
00105 
00106     if (!isNull(pDoc))   pDoc->pView   = NULL;
00107     if (!isNull(pFrame)) pFrame->pView = NULL;
00108     pDoc   = NULL;
00109     pFrame = NULL;
00110 }

Here is the call graph for this function:


Member Function Documentation

void AssertValid (  )  const [protected, virtual]

Reimplemented in CDx2DView, CDxDirectView, CDxMGRView, CDxSRenderView, and CDxVScrollView.

Definition at line 131 of file ExView.cpp.

00132 {
00133     CView::AssertValid();
00134 }

void Dump ( CDumpContext &  dc  )  const [protected, virtual]

Reimplemented in CDx2DView, CDxDirectView, CDxMGRView, CDxSRenderView, and CDxVScrollView.

Definition at line 137 of file ExView.cpp.

00138 {
00139     CView::Dump(dc);
00140 }

virtual void ExecRender ( void   )  [inline, virtual]
POINT ExecWindowReSize ( int  xs,
int  ys 
)

Definition at line 277 of file ExView.cpp.

References CExView::cnstSize, CExView::cnstXSize, CExView::cnstXYRate, CExView::cnstYSize, CExView::doReSize, CExView::GetWindowReSize(), and CExView::SetWindowSize().

Referenced by CExView::OnDraw(), CDxVTXBaseView::OnDraw(), CExView::OnTimer(), and CDxVTXBaseView::OnTimer().

00278 {
00279     POINT pt;
00280     pt.x = cxsize;
00281     pt.y = cysize;
00282 
00283     if (doReSize) {
00284         pt = GetWindowReSize(pt);
00285         if (!cnstSize && (cnstXSize || cnstYSize || cnstXYRate)) {
00286             pt = SetWindowSize(pt.x, pt.y, FALSE);
00287         }
00288     }
00289 
00290     doReSize = false;
00291     return pt;
00292 }

Here is the call graph for this function:

Here is the caller graph for this function:

POINT GetClientSize ( POINT  pt  ) 

Definition at line 223 of file ExView.cpp.

References CExView::pFrame.

Referenced by CExFrame::OnSizing().

00224 {
00225     RECT  frect, crect;
00226     POINT pc;
00227 
00228     pFrame->GetWindowRect(&frect);
00229     GetClientRect(&crect);
00230     
00231     pc.x = pt.x - (frect.right -frect.left) + (crect.right -crect.left);
00232     pc.y = pt.y - (frect.bottom-frect.top)  + (crect.bottom-crect.top); 
00233     return pc;
00234 }

Here is the caller graph for this function:

virtual int GetMouseButton (  )  [inline, virtual]

Reimplemented in CDxBaseView.

Definition at line 132 of file ExView.h.

00132 {return 0;} // CDxBaseClassで実装.ここで実装できたら,CDxBaseClassでの実装を削除して virtual をはずす.

POINT GetMousePos (  ) 

Definition at line 304 of file ExView.cpp.

Referenced by CDxVTXBaseView::ExecRotation().

00305 {
00306     POINT pt;
00307     RECT  crect;
00308 
00309     if (m_hWnd==NULL) {
00310         pt.x = pt.y = -1;
00311         return pt;
00312     }
00313 
00314     GetCursorPos(&pt);
00315     ScreenToClient(&pt);
00316     this->GetClientRect(&crect);
00317 
00318     if (crect.right-crect.left < pt.x) pt.x = -pt.x;
00319     if (crect.bottom-crect.top < pt.y) pt.y = -pt.y;
00320 
00321     return pt;
00322 }

Here is the caller graph for this function:

virtual POINT GetWindowDisplaySize ( POINT  pt  )  [inline, virtual]

Reimplemented in CDxBaseView.

Definition at line 141 of file ExView.h.

00141 { return pt;}    // ウィンドウが画面に収まるように大きさを再計算する

POINT GetWindowReSize ( POINT  pt  ) 

Definition at line 238 of file ExView.cpp.

References CExView::cnstSize, CExView::cnstXSize, CExView::cnstXYRate, CExView::cnstYSize, jbxwl::GetMouseCursorType(), CExView::initXSize, CExView::initYSize, CExView::maxXSize, CExView::maxYSize, and CExView::sizeXYRate.

Referenced by CExView::ExecWindowReSize(), and CExFrame::OnSizing().

00239 {
00240     int minxs = GetSystemMetrics(SM_CXMINTRACK);
00241     int minys = GetSystemMetrics(SM_CYMINTRACK);
00242 
00243     if (pt.x<minxs) pt.x = minxs; 
00244     if (pt.y<minys) pt.y = minys;
00245 
00246     if (cnstSize) {
00247         pt.x = initXSize;
00248         pt.y = initYSize;
00249     }
00250     else if (cnstXSize || cnstYSize || cnstXYRate) {
00251         if (cnstXSize && !cnstYSize) {          // Xサイズ固定
00252             pt.x = initXSize;
00253             pt.y = Min(pt.y, maxYSize);
00254         }
00255         else if (!cnstXSize && cnstYSize) {     // Yサイズ固定
00256             pt.x = Min(pt.x, maxXSize);
00257             pt.y = initYSize;
00258         }
00259         else if (cnstXYRate) {                  // 縦横比固定
00260             TCHAR* cur = GetMouseCursorType();
00261             if (cur==IDC_SIZENS) {
00262                 pt.y = Min(pt.y, maxYSize);
00263                 pt.x = (int)(pt.y/sizeXYRate + 0.5);
00264             }
00265             else {
00266                 pt.x = Min(pt.x, maxXSize);
00267                 pt.y = (int)(pt.x*sizeXYRate + 0.5);
00268             }
00269         }
00270     }
00271 
00272     return pt;
00273 }

Here is the call graph for this function:

Here is the caller graph for this function:

POINT GetWindowSize ( POINT  pt  ) 

Definition at line 206 of file ExView.cpp.

References CExView::pFrame.

Referenced by CExFrame::OnSizing(), and CExView::SetWindowSize().

00207 {
00208     RECT  frect, crect;
00209     POINT pc;
00210 
00211     pFrame->GetWindowRect(&frect);
00212     GetClientRect(&crect);
00213     
00214     pc.x = pt.x + (frect.right -frect.left) - (crect.right -crect.left);
00215     pc.y = pt.y + (frect.bottom-frect.top)  - (crect.bottom-crect.top); 
00216     return pc;
00217 }

Here is the caller graph for this function:

void OnActivateView ( BOOL  bActivate,
CView *  pActivateView,
CView *  pDeactiveView 
) [protected, virtual]

Reimplemented in CDxBaseView.

Definition at line 397 of file ExView.cpp.

References CExView::activeWin, and CExView::ctrlMouse.

00398 {
00399     activeWin = false;
00400     ctrlMouse = false;
00401     if (bActivate && pActivateView==this)  {
00402         activeWin = true;
00403         ctrlMouse = true;
00404     }
00405 
00406     CView::OnActivateView(bActivate, pActivateView, pDeactiveView);
00407 }

void OnDraw ( CDC *  pDC  )  [virtual]

Reimplemented in CDxVTXBaseView, CDxDirectView, CDxSRenderView, and CDx3DDirectView.

Definition at line 386 of file ExView.cpp.

References CExView::clientRect, CExView::ExecRender(), CExView::ExecWindowReSize(), CExView::hasViewData, and CExView::timerID.

Referenced by CExView::OnMouseWheel(), and CExView::OnVScroll().

00387 {
00388     if (hasViewData && timerID==-1) {
00389         ExecWindowReSize(clientRect.right, clientRect.bottom);
00390         ExecRender();
00391     }
00392     else if (!hasViewData) DEBUG_ERROR("CExView::OnDraw(): ERROR: 表示可能なデータがありません\n");
00393 }

Here is the call graph for this function:

Here is the caller graph for this function:

BOOL OnEraseBkgnd ( CDC *  pDC  ) 

Definition at line 421 of file ExView.cpp.

00422 {
00423     return TRUE;
00424 }

void OnInitialUpdate ( void   )  [virtual]

Reimplemented in CDxBaseView, CDxVTXBaseView, CDx2DView, CDxDirectView, CDxMGRView, CDxSRenderView, CDxVScrollView, and CDx3DDirectView.

Definition at line 366 of file ExView.cpp.

References CExDocument::cmnHead, CExView::cmnHead, CExView::cnstSize, CExView::cnstXSize, CExView::cnstXYRate, CExView::cnstYSize, CExDocument::msGraph, CExView::msGraph, CExView::pDoc, CExView::xsize, CExView::ysize, and CExView::zsize.

Referenced by jbxwl::InitialDocView().

00367 {
00368     CView::OnInitialUpdate();
00369 
00370     if (pDoc!=NULL) {
00371         cmnHead = pDoc->cmnHead;
00372         msGraph = pDoc->msGraph;
00373         xsize   = cmnHead.xsize;
00374         ysize   = cmnHead.ysize;
00375         zsize   = cmnHead.zsize;
00376     }
00377 
00378     if ((cnstXSize&&cnstYSize) || (cnstXSize&&cnstXYRate) || (cnstYSize&&cnstXYRate )) {
00379         cnstSize = true;
00380         cnstXSize = cnstYSize = cnstXYRate = false;
00381     }
00382 }

Here is the caller graph for this function:

BOOL OnMouseWheel ( UINT  nFlags,
short  zDelta,
CPoint  pt 
) [protected]

Definition at line 326 of file ExView.cpp.

References CExView::OnDraw(), CExView::SetNewSurface(), CExView::vSBctrl, CExView::vSBmax, CExView::vSBntch, and CExView::vSBpos.

00327 {
00328     if (vSBmax!=0 && vSBctrl) {
00329         int ovsbpos = vSBpos;
00330 
00331         vSBpos = vSBpos - zDelta/30*vSBntch;
00332         if (vSBpos<0)      vSBpos = 0;
00333         if (vSBpos>vSBmax) vSBpos = vSBmax;
00334         SetScrollPos(SB_VERT, vSBpos);
00335 
00336         HRESULT hr = SetNewSurface(ovsbpos);
00337         OnDraw(NULL);
00338     }
00339 
00340     return TRUE;
00341 }

Here is the call graph for this function:

void OnSize ( UINT  nType,
int  cx,
int  cy 
) [protected]

Reimplemented in CDxVScrollView.

Definition at line 411 of file ExView.cpp.

References CExView::clientRect, CExView::doReSize, and CExView::pFrame.

00412 {
00413     CView::OnSize(nType, cx, cy);
00414 
00415     doReSize = true;
00416     if (pFrame!=NULL) GetClientRect(&clientRect);
00417 }

void OnTimer ( UINT_PTR  nIDEvent  ) 

Reimplemented in CDxVTXBaseView.

Definition at line 428 of file ExView.cpp.

References CExView::clientRect, CExView::ExecRender(), CExView::ExecWindowReSize(), and CExView::hasViewData.

00429 {
00430     if (hasViewData) {
00431         ExecWindowReSize(clientRect.right, clientRect.bottom);
00432         ExecRender();
00433     }
00434     else  DEBUG_ERROR("CExView::OnTimer(): ERROR: 表示可能なデータがありません\n");
00435 
00436     CView::OnTimer(nIDEvent);
00437 }

Here is the call graph for this function:

void OnVScroll ( UINT  nSBCode,
UINT  nPos,
CScrollBar *  pScrollBar 
) [protected]

Definition at line 441 of file ExView.cpp.

References CExView::activeWin, CExView::OnDraw(), CExView::SetNewSurface(), CExView::vSBctrl, CExView::vSBmax, CExView::vSBntch, and CExView::vSBpos.

00442 {
00443     if (!activeWin || vSBmax==0) return;
00444     if (pScrollBar!=NULL || !vSBctrl) return;
00445     
00446     int ovsbpos = vSBpos;
00447 
00448     switch (nSBCode) {
00449         case SB_LINEDOWN:
00450             vSBpos += vSBntch;
00451             if (vSBpos>vSBmax) vSBpos = vSBmax;
00452             break;
00453         case SB_LINEUP:
00454             vSBpos -= vSBntch;
00455             if (vSBpos<0) vSBpos = 0;
00456             break;
00457         case SB_THUMBPOSITION:
00458             vSBpos = nPos;
00459             break;
00460         case SB_THUMBTRACK:
00461             vSBpos = nPos;
00462             break;
00463         case SB_PAGEDOWN:
00464             vSBpos += vSBntch*2;
00465             if (vSBpos>vSBmax) vSBpos = vSBmax;
00466             break;
00467         case SB_PAGEUP:
00468             vSBpos -= vSBntch*2;
00469             if (vSBpos<0) vSBpos = 0;
00470             break;
00471     }
00472     SetScrollPos(SB_VERT, vSBpos);
00473 
00474     HRESULT hr = SetNewSurface(ovsbpos);
00475     OnDraw(NULL);
00476 
00477     return;
00478 }

Here is the call graph for this function:

virtual BOOL SetNewSurface ( int  ovsbpos = 0  )  [inline, virtual]

Reimplemented in CDxDirectView, CDxMGRView, and CDxVScrollView.

Definition at line 142 of file ExView.h.

Referenced by CContrastDLG::OnCancel(), CContrastDLG::OnChangeCntCntMax(), CContrastDLG::OnChangeCntCntMin(), CExView::OnMouseWheel(), CContrastDLG::OnOK(), and CExView::OnVScroll().

00142 { return TRUE;}    // OnVScroll(), OnMouseWheel()の中でサーフェイスを獲得し直す.

Here is the caller graph for this function:

void SetTitle ( LPCTSTR  title  ) 

Definition at line 349 of file ExView.cpp.

References CExView::pFrame, CExFrame::Title, and CExView::Title.

Referenced by jbxwl::ExecDocFrmView(), CDx2DView::ExecRender(), CDxMGRView::MakeSetTitle(), CDxVScrollView::OnInitialUpdate(), and CDxSRenderView::OnInitialUpdate().

00350 {
00351     this->Title   = title;
00352     pFrame->Title = title;
00353     pFrame->SetTitle(title);        // ルート&カレントウィンドウ
00354     pFrame->SetWindowText(title);   // カレントウィンドウ
00355 //  if (pDoc!=NULL) pDoc->SetTitle(title);          // ?
00356 
00357     return;
00358 }

Here is the caller graph for this function:

POINT SetWindowSize ( int  xs,
int  ys,
BOOL  first = TRUE 
)

Definition at line 157 of file ExView.cpp.

References CExView::clientRate, CExView::clientRect, CExView::GetWindowSize(), CExView::initXSize, CExView::initYSize, CExView::origXSize, CExView::pFrame, CExView::prevXSize, CExView::prevYSize, and CExView::sizeXYRate.

Referenced by CExView::ExecWindowReSize(), CDxVScrollView::OnInitialUpdate(), CDxSRenderView::OnInitialUpdate(), CDxMGRView::OnInitialUpdate(), CDxDirectView::OnInitialUpdate(), and CDx2DView::OnInitialUpdate().

00158 {
00159     POINT  pc = {-1, -1};
00160 
00161     if (cxs<0 || cys<0) return pc;
00162     pc.x = cxs;
00163     pc.y = cys;
00164 
00165     POINT pt = GetWindowSize(pc);
00166     pFrame->SetWindowPos((CWnd*)&wndTop, 0, 0, pt.x, pt.y, SWP_NOMOVE);
00167     GetClientRect(&clientRect);
00168 
00169     // サイズが合わない場合
00170     if (clientRect.right!=pc.x || clientRect.bottom!=pc.y) {
00171         if (first) {
00172             double srate = (double)clientRect.bottom/(double)clientRect.right;
00173             if (sizeXYRate<srate) {
00174                 pc.x = clientRect.right;
00175                 pc.y = (int)(pc.x*sizeXYRate+0.5);
00176             }
00177             else {
00178                 pc.y = clientRect.bottom;
00179                 pc.x = (int)(pc.y/sizeXYRate+0.5);
00180             }
00181         }
00182         else {
00183             pc.x = prevXSize;
00184             pc.y = prevYSize;
00185         }
00186         pt = GetWindowSize(pc);
00187         pFrame->SetWindowPos((CWnd*)&wndTop, 0, 0, pt.x, pt.y, SWP_NOMOVE);
00188         GetClientRect(&clientRect);
00189     }
00190             
00191     pc.x = prevXSize  = clientRect.right;
00192     pc.y = prevYSize  = clientRect.bottom;
00193     clientRate = (double)clientRect.right/(double)origXSize;
00194 
00195     if (first) {
00196         initXSize = clientRect.right;
00197         initYSize = clientRect.bottom;
00198     }
00199     return pc;
00200 }

Here is the call graph for this function:

Here is the caller graph for this function:

virtual void TimerStart ( int  tm = 40  )  [inline, virtual]

Definition at line 143 of file ExView.h.

References jbxwl::TimerID, and CExView::timerID.

00143 { timerID = TimerID++; SetTimer(timerID, tm, NULL);}

virtual void TimerStop (  )  [inline, virtual]

Definition at line 144 of file ExView.h.

References CExView::timerID.

00144 { KillTimer(timerID); timerID = -1; }


Member Data Documentation

bool activeWin [protected]
void* anyData

Definition at line 79 of file ExView.h.

double clientRate
RECT clientRect
int cMax
int cMin
ExCmnHead cmnHead
bool cnstSize
bool cnstXSize
bool cnstXYRate
bool cnstYSize
int colorMode
bool ctrlMouse [protected]

Definition at line 126 of file ExView.h.

Referenced by CDxVTXBaseView::ExecRotation(), and CExView::OnActivateView().

bool doReSize
int initXSize

Definition at line 96 of file ExView.h.

Referenced by CExView::GetWindowReSize(), and CExView::SetWindowSize().

int initYSize

Definition at line 97 of file ExView.h.

Referenced by CExView::GetWindowReSize(), and CExView::SetWindowSize().

int maxXSize

Definition at line 105 of file ExView.h.

Referenced by CExView::GetWindowReSize().

int maxYSize

Definition at line 106 of file ExView.h.

Referenced by CExView::GetWindowReSize(), and CvThumbNailDoc::TranslateData().

ExMSGraph<sWord> msGraph
int origXSize
int origYSize
int prevSBpos
int prevXSize

Definition at line 98 of file ExView.h.

Referenced by CExView::SetWindowSize().

int prevYSize

Definition at line 99 of file ExView.h.

Referenced by CExView::SetWindowSize().

double sizeFac
double sizeXYRate
int timerID [protected]
CString Title
bool usePlane

Definition at line 115 of file ExView.h.

Referenced by CDxMGRView::OnInitialUpdate().

ExCmnHead viewData
int viewMode

Definition at line 113 of file ExView.h.

Referenced by CDxMGRView::OnInitialUpdate(), and CDxMGRView::SetNewSurface().

int vMax
int vMin
bool vSBctrl

Definition at line 112 of file ExView.h.

Referenced by CExView::OnMouseWheel(), and CExView::OnVScroll().

int vSBmax
int vSBntch

Definition at line 111 of file ExView.h.

Referenced by CExView::OnMouseWheel(), and CExView::OnVScroll().

int vSBpos
int xsize

Reimplemented in CDxSRenderView.

Definition at line 90 of file ExView.h.

Referenced by CDxMGRView::OnInitialUpdate(), CDxDirectView::OnInitialUpdate(), and CExView::OnInitialUpdate().

int ysize

Reimplemented in CDxSRenderView.

Definition at line 91 of file ExView.h.

Referenced by CDxMGRView::OnInitialUpdate(), CDxDirectView::OnInitialUpdate(), and CExView::OnInitialUpdate().

int zsize

Reimplemented in CDxSRenderView.

Definition at line 92 of file ExView.h.

Referenced by CDxMGRView::OnInitialUpdate(), and CExView::OnInitialUpdate().


The documentation for this class was generated from the following files:

Generated on 15 Nov 2023 for JunkBox_Win_Lib by  doxygen 1.6.1