From 12c02f064db12d6d94063bf6dd9e4eb80f4252b8 Mon Sep 17 00:00:00 2001
From: LYW <leeyeanwoo@diteam.co.kr>
Date: 월, 11 10월 2021 15:30:00 +0900
Subject: [PATCH] Ongoing60 #3662 CF AOI Review 전설비 알람 발생 조치 - Review History File Mapping 해제 - Review Inner History 다운 현상 예외처리 추가 - Review End 시 Review 다운 현상 예외처리 추가

---
 ReviewHistory/include/akGridCtrl/CellRange.h |  148 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 148 insertions(+), 0 deletions(-)

diff --git a/ReviewHistory/include/akGridCtrl/CellRange.h b/ReviewHistory/include/akGridCtrl/CellRange.h
new file mode 100644
index 0000000..9d96b4b
--- /dev/null
+++ b/ReviewHistory/include/akGridCtrl/CellRange.h
@@ -0,0 +1,148 @@
+///////////////////////////////////////////////////////////////////////
+// CellRange.h: header file
+//
+// MFC Grid Control - interface for the CCellRange class.
+//
+// Written by Chris Maunder <cmaunder@mail.com>
+// Copyright (c) 1998-2002. All Rights Reserved.
+//
+// This code may be used in compiled form in any way you desire. This
+// file may be redistributed unmodified by any means PROVIDING it is 
+// not sold for profit without the authors written consent, and 
+// providing that this notice and the authors name and all copyright 
+// notices remains intact. 
+//
+// An email letting me know how you are using it would be nice as well. 
+//
+// This file is provided "as is" with no expressed or implied warranty.
+// The author accepts no liability for any damage/loss of business that
+// this product may cause.
+//
+// For use with CGridCtrl v2.20+
+//
+//////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_CELLRANGE_H__F86EF761_725A_11D1_ABBA_00A0243D1382__INCLUDED_)
+#define AFX_CELLRANGE_H__F86EF761_725A_11D1_ABBA_00A0243D1382__INCLUDED_
+
+#if _MSC_VER >= 1000
+#pragma once
+#endif // _MSC_VER >= 1000
+
+// The code contained in this file is based on the original
+// WorldCom Grid control written by Joe Willcoxson,
+//      mailto:chinajoe@aol.com
+//      http://users.aol.com/chinajoe
+
+class CCellID
+{    
+// Attributes
+public:
+    int row, col;
+
+// Operations
+public:
+    explicit CCellID(int nRow = -1, int nCol = -1) : row(nRow), col(nCol) {}
+
+    int IsValid() const { return (row >= 0 && col >= 0); }
+    int operator==(const CCellID& rhs) const { return (row == rhs.row && col == rhs.col); }
+    int operator!=(const CCellID& rhs) const { return !operator==(rhs); }
+};
+
+class CCellRange
+{ 
+public:
+    
+    CCellRange(int nMinRow = -1, int nMinCol = -1, int nMaxRow = -1, int nMaxCol = -1)
+    {
+        Set(nMinRow, nMinCol, nMaxRow, nMaxCol);
+    }
+
+    void Set(int nMinRow = -1, int nMinCol = -1, int nMaxRow = -1, int nMaxCol = -1);
+    
+    int  IsValid() const;
+    int  InRange(int row, int col) const;
+    int  InRange(const CCellID& cellID) const;
+    int  Count() { return (m_nMaxRow - m_nMinRow + 1) * (m_nMaxCol - m_nMinCol + 1); }
+    
+    CCellID  GetTopLeft() const;
+    CCellRange  Intersect(const CCellRange& rhs) const;
+    
+    int GetMinRow() const {return m_nMinRow;}
+    void SetMinRow(int minRow) {m_nMinRow = minRow;}
+    
+    int GetMinCol() const {return m_nMinCol;}
+    void SetMinCol(int minCol) {m_nMinCol = minCol;}
+    
+    int GetMaxRow() const {return m_nMaxRow;}
+    void SetMaxRow(int maxRow) {m_nMaxRow = maxRow;}
+    
+    int GetMaxCol() const {return m_nMaxCol;}
+    void SetMaxCol(int maxCol) {m_nMaxCol = maxCol;}
+
+    int GetRowSpan() const {return m_nMaxRow - m_nMinRow + 1;}
+    int GetColSpan() const {return m_nMaxCol - m_nMinCol + 1;}
+    
+    void operator=(const CCellRange& rhs);
+    int  operator==(const CCellRange& rhs);
+    int  operator!=(const CCellRange& rhs);
+    
+protected:
+    int m_nMinRow;
+    int m_nMinCol;
+    int m_nMaxRow;
+    int m_nMaxCol;
+};
+
+inline void CCellRange::Set(int minRow, int minCol, int maxRow, int maxCol)
+{
+     m_nMinRow = minRow;
+     m_nMinCol = minCol;
+     m_nMaxRow = maxRow;
+     m_nMaxCol = maxCol;
+}
+
+inline void CCellRange::operator=(const CCellRange& rhs)
+{
+    if (this != &rhs) Set(rhs.m_nMinRow, rhs.m_nMinCol, rhs.m_nMaxRow, rhs.m_nMaxCol);
+}
+
+inline int CCellRange::operator==(const CCellRange& rhs)
+{
+     return ((m_nMinRow == rhs.m_nMinRow) && (m_nMinCol == rhs.m_nMinCol) &&
+             (m_nMaxRow == rhs.m_nMaxRow) && (m_nMaxCol == rhs.m_nMaxCol));
+}
+
+inline int CCellRange::operator!=(const CCellRange& rhs)
+{
+     return !operator==(rhs);
+}
+
+inline int CCellRange::IsValid() const
+{
+     return (m_nMinRow >= 0 && m_nMinCol >= 0 && m_nMaxRow >= 0 && m_nMaxCol >= 0 &&
+             m_nMinRow <= m_nMaxRow && m_nMinCol <= m_nMaxCol);
+}
+
+inline int CCellRange::InRange(int row, int col) const
+{
+     return (row >= m_nMinRow && row <= m_nMaxRow && col >= m_nMinCol && col <= m_nMaxCol);
+}
+
+inline int CCellRange::InRange(const CCellID& cellID) const
+{
+     return InRange(cellID.row, cellID.col);
+}
+
+inline CCellID CCellRange::GetTopLeft() const
+{
+     return CCellID(m_nMinRow, m_nMinCol);
+}
+
+inline CCellRange CCellRange::Intersect(const CCellRange& rhs) const
+{
+     return CCellRange(max(m_nMinRow,rhs.m_nMinRow), max(m_nMinCol,rhs.m_nMinCol),
+                       min(m_nMaxRow,rhs.m_nMaxRow), min(m_nMaxCol,rhs.m_nMaxCol));
+}
+
+#endif // !defined(AFX_CELLRANGE_H__F86EF761_725A_11D1_ABBA_00A0243D1382__INCLUDED_)

--
Gitblit v1.9.3