/** * @file XTPSyntaxEditDefines.h * * @copyright * (c) 1998-2025 Codejock Software, All Rights Reserved. * * This source file is the property of Codejock Software and must not be * redistributed by any means without the explicit written permission of * Codejock Software. * * The use of this source code is governed by the terms and conditions specified * in the Toolkit Pro license agreement. Codejock Software grants you, as a * single software developer, the limited right to use this software on one * computer only. * * Contact Information: * support@codejock.com * http://www.codejock.com * */ /** @cond */ #if !defined(__XTPSYNTAXEDITDEFINES_H__) # define __XTPSYNTAXEDITDEFINES_H__ /** @endcond */ # if _MSC_VER > 1000 # pragma once # endif // _MSC_VER > 1000 # include "Common/Base/Diagnostic/XTPDisableNoisyWarnings.h" # pragma warning(disable : 4097) // Edit action flags # define XTP_EDIT_EDITACTION_INSERTROW 0x01 /**< Insert row*/ # define XTP_EDIT_EDITACTION_INSERTROW_NEW 0x10 # define XTP_EDIT_EDITACTION_DELETEROW 0x02 /**< Delete row*/ # define XTP_EDIT_EDITACTION_DELETEROW_FULL 0x20 // # define XTP_EDIT_EDITACTION_MODIFYROW 0x04 /**< Modify row*/ // #define XTP_EDIT_EDITACTION_SELECTIONCHANGED 0x08 // Selection changed # define XTP_EDIT_EDITACTION_INSERTTEXT 0x100 /**< Generic insert text action*/ # define XTP_EDIT_EDITACTION_DELETETEXT 0x200 /**< Generic delete text action*/ /** * @brief * Defines light and dark colors which are used by * CXTPImageManager::DisableBitmap to draw disabled calendar window content. */ # define XTP_EDIT_DISABLED_COLOR_LIGHT RGB(250, 250, 250) /** * @brief * Defines light and dark colors which are used by * CXTPImageManager::DisableBitmap to draw disabled calendar window content. */ # define XTP_EDIT_DISABLED_COLOR_DARK RGB(128, 128, 128) ////////////////////////////////// // Notification codes ////////////////////////////////// // First and last entries # define XTP_EDIT_NM_FIRST (0U - 951U) /**< First notification ID for SyntaxEdit */ # define XTP_EDIT_NM_LAST (0U - 979U) /**< Last notification ID for SyntaxEdit */ // Following are the codes for various notifications # define XTP_EDIT_NM_EDITCHANGING \ (XTP_EDIT_NM_FIRST + 0) /**< Edit changing will be called before changing content */ # define XTP_EDIT_NM_EDITCHANGED \ (XTP_EDIT_NM_FIRST + 1) /**< This will be called if content has been changed */ # define XTP_EDIT_NM_SETDOCMODIFIED \ (XTP_EDIT_NM_FIRST + 2) /**< Indicates if the document is modified */ # define XTP_EDIT_NM_DRAWBOOKMARK \ (XTP_EDIT_NM_FIRST + 3) /**< This will be called while drawing the bookmarks */ # define XTP_EDIT_NM_ROWCOLCHANGED \ (XTP_EDIT_NM_FIRST + 4) /**< This will be fired if row or col has been changed */ # define XTP_EDIT_NM_INSERTKEY (XTP_EDIT_NM_FIRST + 8) /**< Update all of the vertical panes */ # define XTP_EDIT_NM_SELINIT \ (XTP_EDIT_NM_FIRST + 9) /**< Updates all the selections while one pane initiates one */ # define XTP_EDIT_NM_STARTOLEDRAG (XTP_EDIT_NM_FIRST + 10) /**< Start OLE drag */ # define XTP_EDIT_NM_MARGINCLICKED \ (XTP_EDIT_NM_FIRST + 11) /**< Left mouse button was clicked in the gutter area*/ # define XTP_EDIT_NM_UPDATESCROLLPOS \ (XTP_EDIT_NM_FIRST + 12) /**< Edit control scroll positions changed.*/ # define XTP_EDIT_NM_PARSEEVENT \ (XTP_EDIT_NM_FIRST + 13) /**< This notification used to reflect parser events. See \ \ \ \ XTPSyntaxEditOnParseEvent enum. */ # define XTP_EDIT_NM_LBUTTONDOWN \ (XTP_EDIT_NM_FIRST + 14) /**< Notify mouse Left button down. NMMOUSE structure passed with \ \ \ \ this notification. */ # define XTP_EDIT_NM_LBUTTONDBLCLICK \ (XTP_EDIT_NM_FIRST + 15) /**< Notify mouse Left button double click. NMMOUSE structure \ \ \ \ passed with this notification. */ # define XTP_EDIT_NM_LBUTTONUP \ (XTP_EDIT_NM_FIRST + 16) /**< Notify mouse Left button up. NMMOUSE structure passed with \ \ \ \ this notification. */ # define XTP_EDIT_NM_RBUTTONDOWN \ (XTP_EDIT_NM_FIRST + 17) /**< Notify mouse Right button down. NMMOUSE structure passed \ \ \ \ with this notification. */ # define XTP_EDIT_NM_RBUTTONUP \ (XTP_EDIT_NM_FIRST + 18) /**< Notify mouse Right button up. NMMOUSE structure passed with \ \ \ \ this notification. */ # define XTP_EDIT_NM_MOUSEMOVE \ (XTP_EDIT_NM_FIRST \ + 19) /**< Notify mouse movement. NMMOUSE structure passed with this notification. */ # define XTP_EDIT_NM_ENABLESCROLLBAR \ (XTP_EDIT_NM_FIRST + 20) /**< Edit control scroll bar(s) state changed. */ # define XTP_EDIT_FINDWORD_PREV 0x01 /**< Find start of the previous word */ # define XTP_EDIT_FINDWORD_NEXT 0x02 /**< Find start of the next word */ /** @cond */ // send with XTP_EDIT_NM_UPDATESCROLLPOS but unused on higher layer. # define XTP_EDIT_UPDATE_HORZ 0x01 # define XTP_EDIT_UPDATE_VERT 0x02 # define XTP_EDIT_UPDATE_DIAG 0x04 # define XTP_EDIT_UPDATE_ALL (XTP_EDIT_UPDATE_HORZ | XTP_EDIT_UPDATE_VERT | XTP_EDIT_UPDATE_DIAG) /** @endcond */ # define XTP_EDIT_AVELINELEN \ 30 /**< Average length of line. Used as default value for \ \ \ \ CXTPSyntaxEditCtrl::m_nAverageLineLen. */ /** @cond */ // default values for some parcer parameters # define XTP_EDIT_LEXPARSER_MAXBACKOFFSETDEFAULT 100 # define XTP_EDIT_LEXPARSER_REPARSETIMEOUTMS 500 # define XTP_EDIT_LEXPARSER_ONSCREENSCHCACHELIFETIMESEC 180 # define XTP_EDIT_LEXPARSER_THREADIDLELIFETIMESEC 60 /** @endcond */ /** @cond */ // Registry constants. const TCHAR XTP_EDIT_REG_SETTINGS[] = _T("Settings"); const TCHAR XTP_EDIT_REG_AUTORELOAD[] = _T("AutoReload"); const TCHAR XTP_EDIT_REG_LINENUMBACKCOLOR[] = _T("ColorLineNumberBack"); const TCHAR XTP_EDIT_REG_LINENUMTEXTCOLOR[] = _T("ColorLineNumberText"); const TCHAR XTP_EDIT_REG_INSELBACKCOLOR[] = _T("ColorInactiveHiliteColorBack"); const TCHAR XTP_EDIT_REG_INSELTEXTCOLOR[] = _T("ColorInactiveHiliteColorText"); const TCHAR XTP_EDIT_REG_SELBACKCOLOR[] = _T("ColorHiliteBack"); const TCHAR XTP_EDIT_REG_SELTEXTCOLOR[] = _T("ColorHiliteText"); const TCHAR XTP_EDIT_REG_BACKCOLOR[] = _T("ColorBack"); const TCHAR XTP_EDIT_REG_READONLYBACKCOLOR[] = _T("ColorReadOnlyBack"); const TCHAR XTP_EDIT_REG_TEXTCOLOR[] = _T("ColorText"); const TCHAR XTP_EDIT_REG_LOGFONT[] = _T("LogFont"); const TCHAR XTP_EDIT_REG_VSCROLLBAR[] = _T("VScrollBar"); const TCHAR XTP_EDIT_REG_HSCROLLBAR[] = _T("HScrollBar"); const TCHAR XTP_EDIT_REG_SYNTAXCOLOR[] = _T("SyntaxColor"); const TCHAR XTP_EDIT_REG_AUTOINDENT[] = _T("AutoIndent"); const TCHAR XTP_EDIT_REG_SELMARGIN[] = _T("SelMargin"); const TCHAR XTP_EDIT_REG_LINENUMBERS[] = _T("LineNumbers"); const TCHAR XTP_EDIT_REG_WIDECARET[] = _T("WideCaret"); const TCHAR XTP_EDIT_REG_TABWITHSPACE[] = _T("TabWithSpace"); const TCHAR XTP_EDIT_REG_TABSIZE[] = _T("TabSize"); const TCHAR XTP_EDIT_REG_VIRTUALSPACE[] = _T("VirtualSpace"); const TCHAR XTP_EDIT_REG_COLLAPSIBLENODES[] = _T("CollapsibleNodes"); const TCHAR XTP_EDIT_REG_BREAKPOINTTEXTCOLOR[] = _T("ColorBreakpointText"); const TCHAR XTP_EDIT_REG_BREAKPOINTBACKCOLOR[] = _T("ColorBreakpointBack"); /** @endcond */ /** @cond */ // Lexer classes' defines const TCHAR XTP_EDIT_LEXCLASS_STARTTOKEN[] = _T("lexClass:"); const TCHAR XTP_EDIT_LEXCLASS_ENDTOKEN[] = _T("//:lexClass"); const TCHAR XTP_EDIT_LEXCLASS_PROPNAME[] = _T("name"); const TCHAR XTP_EDIT_LEXCLASS_EOL[] = _T("\r\n"); const TCHAR XTP_EDIT_LEXCLASS_EMPTYSTR[] = _T(""); const TCHAR XTP_EDIT_LEXPARSER_DEFTHEME[] = _T("Default"); const TCHAR XTP_EDIT_LEXPARSER_CFG_FILENAME[] = _T("SyntaxEdit.ini"); const TCHAR XTP_EDIT_LEXPARSER_PARENT_SCHEMA[] = _T("parentschema"); const TCHAR XTP_EDIT_LEXPARSER_SECTION_MAIN[] = _T("main"); const TCHAR XTP_EDIT_LEXPARSER_SECTION_THEMES[] = _T("themes"); const TCHAR XTP_EDIT_LEXPARSER_SECTION_SCHEMES[] = _T("schemes"); const TCHAR XTP_EDIT_LEXPARSER_PARAM_COLORBK[] = _T("colorBK"); const TCHAR XTP_EDIT_LEXPARSER_PARAM_COLORFG[] = _T("colorFG"); const TCHAR XTP_EDIT_LEXPARSER_PARAM_COLORSELBK[] = _T("colorSelBK"); const TCHAR XTP_EDIT_LEXPARSER_PARAM_COLORSELFG[] = _T("colorSelFG"); const TCHAR XTP_EDIT_LEXPARSER_PARAM_FONTBOLD[] = _T("Bold"); const TCHAR XTP_EDIT_LEXPARSER_PARAM_FONTITALIC[] = _T("Italic"); const TCHAR XTP_EDIT_LEXPARSER_PARAM_FONTUNDERLINE[] = _T("Underline"); const TCHAR XTP_EDIT_CFMSDEVCOLSEL[] = _T("MSDEVColumnSelect"); const TCHAR XTP_EDIT_CLASSNAME_EDITCTRL[] = _T("CodejockSyntaxEditor"); const TCHAR XTP_EDIT_CLASSNAME_AUTOCOMPLETEWND[] = _T("CodejockSEAutoCompleteWnd"); const TCHAR XTP_EDIT_CLASSNAME_TOOLTIP[] = _T("CodejockSEToolTip"); const TCHAR XTP_EDIT_CLASSNAME_LBOXTIP[] = _T("CodejockSEListBoxTipWnd"); /** @endcond */ # define XTP_EDIT_RGB_GETRED(rgb) \ (((rgb) >> 16) & 0xff) /**< Get red color value for raw RGB color like "0xAABBCC". */ # define XTP_EDIT_RGB_GETGREEN(rgb) \ (((rgb) >> 8) & 0xff) /**< Get green color value for raw RGB color like "0xAABBCC". */ # define XTP_EDIT_RGB_GETBLUE(rgb) \ ((rgb)&0xff) /**< Get blue color value for raw RGB color like "0xAABBCC". */ # define XTP_EDIT_RGB_INT2CLR(rgb) \ RGB(XTP_EDIT_RGB_GETRED(rgb), XTP_EDIT_RGB_GETGREEN(rgb), \ XTP_EDIT_RGB_GETBLUE( \ rgb)) /**< Convert raw RGB color value like "0xAABBCC" to COLORREF. */ /** * @brief * Line ending types. */ enum XTPSyntaxEditCRLFStyle { xtpEditCRLFStyleUnknown = -1, /**< Used to indicate unknown or error value. */ xtpEditCRLFStyleDos = 0, /**< DOS style CRLF (0x0d0a). */ xtpEditCRLFStyleUnix = 1, /**< UNIX style CRLF (0x0a0d). */ xtpEditCRLFStyleMac = 2 /**< MAC style CRLF (0x0a). */ }; /** * @brief * Edit delete position. */ enum XTPSyntaxEditDeletePos { xtpEditDelPosAfter, /**< Delete char(s) after specified position. */ xtpEditDelPosBefore /**< Delete char(s) before specified position. */ }; /** * @brief * These events are sent from different threads. Its receiver must be thread-safe. */ enum XTPSyntaxEditOnParseEvent { xtpEditOnParserStarted = 1, /**< dwParam1 - unused */ xtpEditOnTextBlockParsed = 2, /**< dwParam1 = Text Block ID */ xtpEditOnParserEnded = 3 /**< dwParam1 = status flags : xtpEditLPR_RunFinished, xtpEditLPR_RunBreaked, xtpEditLPR_Error; */ }; /** * @brief * These events are sent from different threads. Its receiver must be thread-safe. */ enum XTPSyntaxEditOnCfgChangedEvent { xtpEditClassSchWasChanged = 10, /**< dwParam1 = LPCTSTR - Schema name; dwParam2 = CXTPSyntaxEditLexTextSchema* New text schema pointer, or NULL if it was removed. */ xtpEditThemeWasChanged = 11, /**< dwParam1 = LPCTSTR - Theme name; dwParam2 = CXTPSyntaxEditColorTheme* New theme pointer, or NULL if it was removed. */ xtpEditAllConfigWasChanged = 12 /**< dwParam1 - unused, dwParam2 - unused */ }; /** * @brief * View update actions. Defines the way in which the view should be updated. */ enum XTPSyntaxEditUpdateViewHint { xtpEditHintUnknown, /**< Updating action is unknown. */ xtpEditHintRefreshView, /**< The view should be refreshed. */ xtpEditHintInitView, /**< The view should be initialized. */ xtpEditHintSetFont, /**< The view should update the display font. */ xtpEditHintSetLineNum, /**< The view should update line number display. */ xtpEditHintSetSelMargin, /**< The view should update the selection margin display.*/ xtpEditHintSetAutoIndent, /**< The view should update the auto-indent setting. */ xtpEditHintSetSyntaxColor, /**< The view should update the syntax color setting. */ xtpEditHintUpdateScrollPos, /**< The view should update scrollbars positions. */ xtpEditHintLast, /**< The last update code. */ xtpEditHintInvalidate, /**< Invalidates the view. */ }; /** * @brief * Edit actions. */ enum XTPSyntaxEditEditAction { xtpEditActInsert = 1, /**< Edit action insert text. */ xtpEditActDelete = 2, /**< Edit action delete text. */ }; typedef DWORD XTP_NOTIFY_CODE; ///////////////////////////////////////////////////////////////////////////// //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. # include "Common/Base/Diagnostic/XTPEnableNoisyWarnings.h" /** @cond */ #endif // !defined(__XTPSYNTAXEDITDEFINES_H__) /** @endcond */