XTPSyntaxEditStruct.cpp
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:7k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // XTPSyntaxEditStruct.cpp
  2. //
  3. // This file is a part of the XTREME TOOLKIT PRO MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME SYNTAX EDIT LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. //////////////////////////////////////////////////////////////////////
  20. #include "stdafx.h"
  21. #include "Resource.h"
  22. // common includes
  23. #include "Common/XTPColorManager.h"
  24. #include "Common/XTPVC80Helpers.h"
  25. #include "Common/XTPNotifyConnection.h"
  26. #include "Common/XTPSmartPtrInternalT.h"
  27. // syntax editor includes
  28. #include "XTPSyntaxEditDefines.h"
  29. #include "XTPSyntaxEditStruct.h"
  30. #include "XTPSyntaxEditLexPtrs.h"
  31. #include "XTPSyntaxEditCtrl.h"
  32. #ifdef _DEBUG
  33. #undef THIS_FILE
  34. static char THIS_FILE[]=__FILE__;
  35. #define new DEBUG_NEW
  36. #endif
  37. //===========================================================================
  38. // XTP_EDIT_LINECOL
  39. //===========================================================================
  40. const XTP_EDIT_LINECOL XTP_EDIT_LINECOL::MAXPOS = {INT_MAX, INT_MAX};
  41. const XTP_EDIT_LINECOL XTP_EDIT_LINECOL::MINPOS = {0, 0};
  42. const XTP_EDIT_LINECOL XTP_EDIT_LINECOL::Pos1 = {1, 0};
  43. const XTP_EDIT_LINECOL XTP_EDIT_LINECOL::MakeLineCol(int nParamLine, int nParamCol)
  44. {
  45. XTP_EDIT_LINECOL ret;
  46. ret.nLine = nParamLine;
  47. ret.nCol = nParamCol;
  48. return ret;
  49. }
  50. const XTP_EDIT_LINECOL XTP_EDIT_LINECOL::min2(const XTP_EDIT_LINECOL& pos1, const XTP_EDIT_LINECOL& pos2)
  51. {
  52. XTP_EDIT_LINECOL lcPos;
  53. lcPos.nLine = min(pos1.nLine, pos2.nLine);
  54. lcPos.nCol = min(pos1.nCol, pos2.nCol);
  55. return lcPos;
  56. }
  57. const XTP_EDIT_LINECOL XTP_EDIT_LINECOL::max2(const XTP_EDIT_LINECOL& pos1, const XTP_EDIT_LINECOL& pos2)
  58. {
  59. XTP_EDIT_LINECOL lcPos;
  60. lcPos.nLine = max(pos1.nLine, pos2.nLine);
  61. lcPos.nCol = max(pos1.nCol, pos2.nCol);
  62. return lcPos;
  63. }
  64. DWORD XTP_EDIT_LINECOL::GetXLC() const
  65. {
  66. return XTP_EDIT_XLC(nLine, nCol);
  67. }
  68. BOOL XTP_EDIT_LINECOL::IsValidData() const
  69. {
  70. return nLine > 0;
  71. }
  72. void XTP_EDIT_LINECOL::Clear()
  73. {
  74. nLine = 0;
  75. nCol = 0;
  76. }
  77. BOOL XTP_EDIT_LINECOL::operator < (const XTP_EDIT_LINECOL& pos2) const
  78. {
  79. return  nLine < pos2.nLine ||
  80. nLine == pos2.nLine && nCol < pos2.nCol;
  81. }
  82. BOOL XTP_EDIT_LINECOL::operator <= (const XTP_EDIT_LINECOL& pos2) const
  83. {
  84. return  nLine < pos2.nLine ||
  85. nLine == pos2.nLine && nCol <= pos2.nCol;
  86. }
  87. BOOL XTP_EDIT_LINECOL::operator > (const XTP_EDIT_LINECOL& pos2) const
  88. {
  89. return  nLine > pos2.nLine ||
  90. nLine == pos2.nLine && nCol > pos2.nCol;
  91. }
  92. BOOL XTP_EDIT_LINECOL::operator >= (const XTP_EDIT_LINECOL& pos2) const
  93. {
  94. return  nLine > pos2.nLine ||
  95. nLine == pos2.nLine && nCol >= pos2.nCol;
  96. }
  97. BOOL XTP_EDIT_LINECOL::operator == (const XTP_EDIT_LINECOL& pos2) const
  98. {
  99. return  nLine == pos2.nLine && nCol == pos2.nCol;
  100. }
  101. //===========================================================================
  102. // XTP_EDIT_COLORVALUES
  103. //===========================================================================
  104. const XTP_EDIT_COLORVALUES& XTP_EDIT_COLORVALUES::operator=(const XTP_EDIT_COLORVALUES& src)
  105. {
  106. crText                  = src.crText;
  107. crBack                  = src.crBack;
  108. crReadOnlyBack          = src.crReadOnlyBack;
  109. crHiliteText            = src.crHiliteText;
  110. crHiliteBack            = src.crHiliteBack;
  111. crInactiveHiliteText    = src.crInactiveHiliteText;
  112. crInactiveHiliteBack    = src.crInactiveHiliteBack;
  113. crLineNumberText        = src.crLineNumberText;
  114. crLineNumberBack        = src.crLineNumberBack;
  115. return *this;
  116. }
  117. COLORREF XTP_EDIT_COLORVALUES::GetBackColorEx(CXTPSyntaxEditCtrl* pEditCtrl)
  118. {
  119. if (pEditCtrl && pEditCtrl->IsReadOnly())
  120. return (COLORREF)crReadOnlyBack;
  121. return (COLORREF)crBack;
  122. }
  123. //===========================================================================
  124. // XTP_EDIT_FONTOPTIONS
  125. //===========================================================================
  126. XTP_EDIT_FONTOPTIONS::XTP_EDIT_FONTOPTIONS()
  127. {
  128. lfHeight            = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
  129. lfWidth             = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
  130. lfEscapement        = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
  131. lfOrientation       = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
  132. lfWeight            = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
  133. lfItalic            = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
  134. lfUnderline         = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
  135. lfStrikeOut         = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
  136. lfCharSet           = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
  137. lfOutPrecision      = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
  138. lfClipPrecision     = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
  139. lfQuality           = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
  140. lfPitchAndFamily    = XTP_EDIT_FONTOPTIONS_UNSPEC_OPTION;
  141. lfFaceName[0]       = '';
  142. }
  143. // Equals operator needed for working with CList
  144. const XTP_EDIT_FONTOPTIONS& XTP_EDIT_FONTOPTIONS::operator=(const XTP_EDIT_FONTOPTIONS& src)
  145. {
  146. MEMCPY_S(this, &src, sizeof(XTP_EDIT_FONTOPTIONS));
  147. return *this;
  148. }
  149. //===========================================================================
  150. // XTP_EDIT_TEXTBLOCK
  151. //===========================================================================
  152. // Default constructor
  153. XTP_EDIT_TEXTBLOCK::XTP_EDIT_TEXTBLOCK()
  154. {
  155. nPos = 0;
  156. nNextBlockPos = 0;
  157. }
  158. // Equals operator needed for working with CList
  159. const XTP_EDIT_TEXTBLOCK& XTP_EDIT_TEXTBLOCK::operator=(const XTP_EDIT_TEXTBLOCK& src)
  160. {
  161. nPos = src.nPos;
  162. nNextBlockPos =  src.nNextBlockPos;
  163. clrBlock = src.clrBlock;
  164. lf = src.lf;
  165. return *this;
  166. }
  167. //===========================================================================
  168. // XTP_EDIT_ROWSBLOCK
  169. //===========================================================================
  170. const XTP_EDIT_ROWSBLOCK& XTP_EDIT_ROWSBLOCK::operator=(const XTP_EDIT_ROWSBLOCK& src)
  171. {
  172. lcStart = src.lcStart;
  173. lcEnd = src.lcEnd;
  174. strCollapsedText = src.strCollapsedText;
  175. return *this;
  176. }
  177. //===========================================================================
  178. // XTP_EDIT_COLLAPSEDBLOCK
  179. //===========================================================================
  180. const XTP_EDIT_COLLAPSEDBLOCK& XTP_EDIT_COLLAPSEDBLOCK::operator=(const XTP_EDIT_COLLAPSEDBLOCK& src)
  181. {
  182. collBlock = src.collBlock;
  183. rcCollMark = src.rcCollMark;
  184. return *this;
  185. }