XTPSyntaxEditStruct.cpp
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:7k
源码类别:
对话框与窗口
开发平台:
Visual C++
- // XTPSyntaxEditStruct.cpp
- //
- // This file is a part of the XTREME TOOLKIT PRO MFC class library.
- // (c)1998-2008 Codejock Software, All Rights Reserved.
- //
- // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
- // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
- // CONSENT OF CODEJOCK SOFTWARE.
- //
- // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
- // IN THE XTREME SYNTAX EDIT LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
- // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
- // SINGLE COMPUTER.
- //
- // CONTACT INFORMATION:
- // support@codejock.com
- // http://www.codejock.com
- //
- //////////////////////////////////////////////////////////////////////
- #include "stdafx.h"
- #include "Resource.h"
- // common includes
- #include "Common/XTPColorManager.h"
- #include "Common/XTPVC80Helpers.h"
- #include "Common/XTPNotifyConnection.h"
- #include "Common/XTPSmartPtrInternalT.h"
- // syntax editor includes
- #include "XTPSyntaxEditDefines.h"
- #include "XTPSyntaxEditStruct.h"
- #include "XTPSyntaxEditLexPtrs.h"
- #include "XTPSyntaxEditCtrl.h"
- #ifdef _DEBUG
- #undef THIS_FILE
- static char THIS_FILE[]=__FILE__;
- #define new DEBUG_NEW
- #endif
- //===========================================================================
- // XTP_EDIT_LINECOL
- //===========================================================================
- const XTP_EDIT_LINECOL XTP_EDIT_LINECOL::MAXPOS = {INT_MAX, INT_MAX};
- const XTP_EDIT_LINECOL XTP_EDIT_LINECOL::MINPOS = {0, 0};
- const XTP_EDIT_LINECOL XTP_EDIT_LINECOL::Pos1 = {1, 0};
- const XTP_EDIT_LINECOL XTP_EDIT_LINECOL::MakeLineCol(int nParamLine, int nParamCol)
- {
- XTP_EDIT_LINECOL ret;
- ret.nLine = nParamLine;
- ret.nCol = nParamCol;
- return ret;
- }
- const XTP_EDIT_LINECOL XTP_EDIT_LINECOL::min2(const XTP_EDIT_LINECOL& pos1, const XTP_EDIT_LINECOL& pos2)
- {
- XTP_EDIT_LINECOL lcPos;
- lcPos.nLine = min(pos1.nLine, pos2.nLine);
- lcPos.nCol = min(pos1.nCol, pos2.nCol);
- return lcPos;
- }
- const XTP_EDIT_LINECOL XTP_EDIT_LINECOL::max2(const XTP_EDIT_LINECOL& pos1, const XTP_EDIT_LINECOL& pos2)
- {
- XTP_EDIT_LINECOL lcPos;
- lcPos.nLine = max(pos1.nLine, pos2.nLine);
- lcPos.nCol = max(pos1.nCol, pos2.nCol);
- return lcPos;
- }
- DWORD XTP_EDIT_LINECOL::GetXLC() const
- {
- return XTP_EDIT_XLC(nLine, nCol);
- }
- BOOL XTP_EDIT_LINECOL::IsValidData() const
- {
- return nLine > 0;
- }
- void XTP_EDIT_LINECOL::Clear()
- {
- nLine = 0;
- nCol = 0;
- }
- BOOL XTP_EDIT_LINECOL::operator < (const XTP_EDIT_LINECOL& pos2) const
- {
- return nLine < pos2.nLine ||
- nLine == pos2.nLine && nCol < pos2.nCol;
- }
- BOOL XTP_EDIT_LINECOL::operator <= (const XTP_EDIT_LINECOL& pos2) const
- {
- return nLine < pos2.nLine ||
- nLine == pos2.nLine && nCol <= pos2.nCol;
- }
- BOOL XTP_EDIT_LINECOL::operator > (const XTP_EDIT_LINECOL& pos2) const
- {
- return nLine > pos2.nLine ||
- nLine == pos2.nLine && nCol > pos2.nCol;
- }
- BOOL XTP_EDIT_LINECOL::operator >= (const XTP_EDIT_LINECOL& pos2) const
- {
- return nLine > pos2.nLine ||
- nLine == pos2.nLine && nCol >= pos2.nCol;
- }
- BOOL XTP_EDIT_LINECOL::operator == (const XTP_EDIT_LINECOL& pos2) const
- {
- return nLine == pos2.nLine && nCol == pos2.nCol;
- }
- //===========================================================================
- // XTP_EDIT_COLORVALUES
- //===========================================================================
- const XTP_EDIT_COLORVALUES& XTP_EDIT_COLORVALUES::operator=(const XTP_EDIT_COLORVALUES& src)
- {
- crText = src.crText;
- crBack = src.crBack;
- crReadOnlyBack = src.crReadOnlyBack;
- crHiliteText = src.crHiliteText;
- crHiliteBack = src.crHiliteBack;
- crInactiveHiliteText = src.crInactiveHiliteText;
- crInactiveHiliteBack = src.crInactiveHiliteBack;
- crLineNumberText = src.crLineNumberText;
- crLineNumberBack = src.crLineNumberBack;
- return *this;
- }
- COLORREF XTP_EDIT_COLORVALUES::GetBackColorEx(CXTPSyntaxEditCtrl* pEditCtrl)
- {
- if (pEditCtrl && pEditCtrl->IsReadOnly())
- return (COLORREF)crReadOnlyBack;
- return (COLORREF)crBack;
- }
- //===========================================================================
- // XTP_EDIT_FONTOPTIONS
- //===========================================================================
- XTP_EDIT_FONTOPTIONS::XTP_EDIT_FONTOPTIONS()
- {
- lfHeight = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
- lfWidth = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
- lfEscapement = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
- lfOrientation = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
- lfWeight = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
- lfItalic = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
- lfUnderline = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
- lfStrikeOut = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
- lfCharSet = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
- lfOutPrecision = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
- lfClipPrecision = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
- lfQuality = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
- lfPitchAndFamily = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
- lfFaceName[0] = ' ';
- }
- // Equals operator needed for working with CList
- const XTP_EDIT_FONTOPTIONS& XTP_EDIT_FONTOPTIONS::operator=(const XTP_EDIT_FONTOPTIONS& src)
- {
- MEMCPY_S(this, &src, sizeof(XTP_EDIT_FONTOPTIONS));
- return *this;
- }
- //===========================================================================
- // XTP_EDIT_TEXTBLOCK
- //===========================================================================
- // Default constructor
- XTP_EDIT_TEXTBLOCK::XTP_EDIT_TEXTBLOCK()
- {
- nPos = 0;
- nNextBlockPos = 0;
- }
- // Equals operator needed for working with CList
- const XTP_EDIT_TEXTBLOCK& XTP_EDIT_TEXTBLOCK::operator=(const XTP_EDIT_TEXTBLOCK& src)
- {
- nPos = src.nPos;
- nNextBlockPos = src.nNextBlockPos;
- clrBlock = src.clrBlock;
- lf = src.lf;
- return *this;
- }
- //===========================================================================
- // XTP_EDIT_ROWSBLOCK
- //===========================================================================
- const XTP_EDIT_ROWSBLOCK& XTP_EDIT_ROWSBLOCK::operator=(const XTP_EDIT_ROWSBLOCK& src)
- {
- lcStart = src.lcStart;
- lcEnd = src.lcEnd;
- strCollapsedText = src.strCollapsedText;
- return *this;
- }
- //===========================================================================
- // XTP_EDIT_COLLAPSEDBLOCK
- //===========================================================================
- const XTP_EDIT_COLLAPSEDBLOCK& XTP_EDIT_COLLAPSEDBLOCK::operator=(const XTP_EDIT_COLLAPSEDBLOCK& src)
- {
- collBlock = src.collBlock;
- rcCollMark = src.rcCollMark;
- return *this;
- }