You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
621 lines
23 KiB
C++
621 lines
23 KiB
C++
// XTPSyntaxEditLineMarksManager.h : header file
|
|
//
|
|
// This file is a part of the XTREME TOOLKIT PRO MFC class library.
|
|
// (c)1998-2012 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
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
#if !defined(__XTPSYNTAXEDITLINEMARKSMANAGER_H__)
|
|
#define __XTPSYNTAXEDITLINEMARKSMANAGER_H__
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
typedef LPCTSTR XTP_EDIT_LINEMARKTYPE;
|
|
|
|
// You can define your own line mark types (as string constants)
|
|
// Strings are case sensitive!
|
|
//
|
|
static const XTP_EDIT_LINEMARKTYPE xtpEditLMT_Bookmark = _T("Bookmark");
|
|
static const XTP_EDIT_LINEMARKTYPE xtpEditLMT_Breakpoint = _T("Breakpoint");
|
|
static const XTP_EDIT_LINEMARKTYPE xtpEditLMT_Collapsed = _T("Collapsed");
|
|
|
|
//===========================================================================
|
|
// Summary: Enumerates types of mark refreshing
|
|
//===========================================================================
|
|
enum XTPSyntaxEditLineMarksRefreshType
|
|
{
|
|
xtpEditLMRefresh_Unknown = 0, // unknown refresh state
|
|
xtpEditLMRefresh_Insert = 0x01, // mark inserted
|
|
xtpEditLMRefresh_Delete = 0x02, // mark deleted
|
|
|
|
xtpEditLMRefresh_Delete_only1 = 0x10, // delete mark for first row of deleted text block;
|
|
xtpEditLMRefresh_Delete_only2 = 0x20, // delete mark for last row of deleted text block;
|
|
xtpEditLMRefresh_InsertAt0 = 0x40, // move mark for first row of inserted text block;
|
|
};
|
|
|
|
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTPSyntaxEditVoidObj : public CXTPCmdTarget
|
|
{
|
|
public:
|
|
typedef void (AFX_CDECL* TPFDeleter)(void*);
|
|
|
|
protected:
|
|
void* m_pPtr; // A pointer to a handled object
|
|
TPFDeleter m_pfDeleter;
|
|
|
|
public:
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Parameters: pPtr : [in]Pointer to the handled object.
|
|
// bCallInternalAddRef : [in]If this parameter is TRUE
|
|
// pPtr->InternalAddRef() will be
|
|
// called in constructor.
|
|
// By default this parameter is FALSE.
|
|
// Summary: Default class constructor.
|
|
// See Also: ~CXTPSmartPtrInternalT()
|
|
//-----------------------------------------------------------------------
|
|
CXTPSyntaxEditVoidObj(void* pPtr, TPFDeleter pfDeleter = NULL) {
|
|
m_pPtr = pPtr;
|
|
m_pfDeleter = pfDeleter;
|
|
};
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary: Default class destructor.
|
|
// Remarks: Call InternalRelease() for the not NULL handled object.
|
|
// See Also: CXTPSmartPtrInternalT constructors
|
|
//-----------------------------------------------------------------------
|
|
virtual ~CXTPSyntaxEditVoidObj()
|
|
{
|
|
if(m_pfDeleter) {
|
|
m_pfDeleter(m_pPtr);
|
|
}
|
|
else
|
|
{
|
|
SAFE_DELETE(m_pPtr);
|
|
}
|
|
};
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary: Get a handled object.
|
|
// Returns: Pointer to the handled object.
|
|
//-----------------------------------------------------------------------
|
|
operator void*() const {
|
|
return m_pPtr;
|
|
}
|
|
|
|
void* GetPtr() const {
|
|
return m_pPtr;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary: Check is handled object equal NULL.
|
|
// Returns: TRUE if handled object equal NULL, else FALSE.
|
|
//-----------------------------------------------------------------------
|
|
BOOL operator !() const {
|
|
return !m_pPtr;
|
|
}
|
|
};
|
|
//---------------------------------------------------------------------------
|
|
typedef CXTPSmartPtrInternalT<CXTPSyntaxEditVoidObj> CXTPSyntaxEditVoidObjPtr;
|
|
|
|
|
|
//===========================================================================
|
|
enum XTPSyntaxEditLMParamType
|
|
{
|
|
xtpEditLMPT_Unknown = 0, // unknown refresh state
|
|
xtpEditLMPT_DWORD = 1,
|
|
xtpEditLMPT_double = 2,
|
|
xtpEditLMPT_Ptr = 3,
|
|
};
|
|
|
|
struct _XTP_EXT_CLASS XTP_EDIT_LMPARAM
|
|
{
|
|
// Data type
|
|
XTPSyntaxEditLMParamType m_eType;
|
|
|
|
// Data
|
|
union
|
|
{
|
|
DWORD m_dwValue; // xtpEditLMPT_DWORD
|
|
double m_dblValue; // xtpEditLMPT_double
|
|
};
|
|
|
|
protected:
|
|
CXTPSyntaxEditVoidObjPtr m_Ptr;
|
|
public:
|
|
// END Data
|
|
|
|
XTP_EDIT_LMPARAM();
|
|
virtual ~XTP_EDIT_LMPARAM();
|
|
|
|
XTP_EDIT_LMPARAM(const XTP_EDIT_LMPARAM& rSrc);
|
|
|
|
XTP_EDIT_LMPARAM(DWORD dwVal);
|
|
XTP_EDIT_LMPARAM(double dblValue);
|
|
XTP_EDIT_LMPARAM(void* pPtr);
|
|
|
|
const XTP_EDIT_LMPARAM& operator=(const XTP_EDIT_LMPARAM& rSrc);
|
|
|
|
const XTP_EDIT_LMPARAM& operator=(DWORD dwValue);
|
|
const XTP_EDIT_LMPARAM& operator=(double dblValue);
|
|
const XTP_EDIT_LMPARAM& operator=(void* pPtr);
|
|
|
|
operator DWORD() const;
|
|
operator double() const;
|
|
operator void*() const;
|
|
|
|
void SetPtr(void* pPtr, CXTPSyntaxEditVoidObj::TPFDeleter pfDeleter = NULL);
|
|
|
|
void* GetPtr() const;
|
|
|
|
BOOL IsValid() const;
|
|
|
|
void Clear();
|
|
};
|
|
|
|
//===========================================================================
|
|
struct _XTP_EXT_CLASS XTP_EDIT_LMDATA
|
|
{
|
|
int m_nRow;
|
|
XTP_EDIT_LMPARAM m_Param;
|
|
|
|
//-------------------------------
|
|
XTP_EDIT_LMDATA();
|
|
virtual ~XTP_EDIT_LMDATA();
|
|
|
|
XTP_EDIT_LMDATA(const XTP_EDIT_LMDATA& rSrc);
|
|
const XTP_EDIT_LMDATA& operator=(const XTP_EDIT_LMDATA& rSrc);
|
|
};
|
|
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
|
|
//===========================================================================
|
|
// Summary: CXTPSyntaxEditLineMarksManager class provides functionality to
|
|
// to manipulate marks on text lines.
|
|
// Used internally by the Smart Edit control.
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTPSyntaxEditLineMarksManager : public CXTPCmdTarget
|
|
{
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
DECLARE_DYNAMIC(CXTPSyntaxEditLineMarksManager)
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
|
|
public:
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Default object constructor.
|
|
//-----------------------------------------------------------------------
|
|
CXTPSyntaxEditLineMarksManager();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Destroys a CXTPSyntaxEditLineMarksManager object, handles
|
|
// cleanup and de-allocation.
|
|
//-----------------------------------------------------------------------
|
|
virtual ~CXTPSyntaxEditLineMarksManager();
|
|
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Adds/removes required mark on given text line.
|
|
// Parameters:
|
|
// nRow : [in] row number.
|
|
// lmType : [in] mark type identifier.
|
|
// pParam : [in] pointer to XTP_EDIT_LMPARAM. Default is NULL.
|
|
// Remarks:
|
|
// Call this member function to add or remove mark on the given
|
|
// text line: if line don't have specified mark it will be added;
|
|
// otherwise mark will be deleted.
|
|
// See also:
|
|
// struct XTP_EDIT_LMPARAM.
|
|
//-----------------------------------------------------------------------
|
|
void AddRemoveLineMark(int nRow, const XTP_EDIT_LINEMARKTYPE lmType,
|
|
XTP_EDIT_LMPARAM* pParam = NULL);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Sets required mark on given text line.
|
|
// Parameters:
|
|
// nRow : [in]row number.
|
|
// lmType : [in]mark type identifier.
|
|
// pParam : [in] pointer to XTP_EDIT_LMPARAM. Default is NULL.
|
|
// Remarks:
|
|
// Call this member function to add mark on the given text line.
|
|
// See also:
|
|
// struct XTP_EDIT_LMPARAM.
|
|
//-----------------------------------------------------------------------
|
|
void SetLineMark(int nRow, const XTP_EDIT_LINEMARKTYPE lmType,
|
|
XTP_EDIT_LMPARAM* pParam = NULL);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Removes required mark on given text line.
|
|
// Parameters:
|
|
// nRow : [in] row number.
|
|
// lmType : [in] mark type identifier.
|
|
// Remarks:
|
|
// Call this member function to remove mark on the given text
|
|
// line.
|
|
//-----------------------------------------------------------------------
|
|
void DeleteLineMark(int nRow, const XTP_EDIT_LINEMARKTYPE lmType);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Determines if row has mark.
|
|
// Parameters:
|
|
// nRow : [in]row number.
|
|
// lmType : [in]mark type identifier.
|
|
// pParam : [in] pointer to XTP_EDIT_LMPARAM. Default is NULL.
|
|
// Remarks:
|
|
// Call this member function to determine if specified row has
|
|
// given type of mark.
|
|
// Returns:
|
|
// Returns TRUE if row has marked by the specified mark type;
|
|
// otherwise returns FALSE.
|
|
//-----------------------------------------------------------------------
|
|
BOOL HasRowMark(int nRow, const XTP_EDIT_LINEMARKTYPE& lmType,
|
|
XTP_EDIT_LMPARAM* pParam = NULL) const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns identifier of the marked line.
|
|
// Parameters:
|
|
// nRow : [in]row number.
|
|
// lmType : [in]mark type identifier.
|
|
// Remarks:
|
|
// Call this member function to get line identifier that have
|
|
// given mark type and precedes specified line number.
|
|
// Returns:
|
|
// Number identifier of the marked line.
|
|
//-----------------------------------------------------------------------
|
|
POSITION FindPrevLineMark(int& nRow, const XTP_EDIT_LINEMARKTYPE lmType) const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns identifier of the marked line.
|
|
// Parameters:
|
|
// nRow : [in]row number.
|
|
// lmType : [in]mark type identifier.
|
|
// Remarks:
|
|
// Call this member function to get line identifier that have
|
|
// given mark type and following specified line number.
|
|
// Returns:
|
|
// Number identifier of the marked line.
|
|
//-----------------------------------------------------------------------
|
|
POSITION FindNextLineMark(int& nRow, const XTP_EDIT_LINEMARKTYPE lmType) const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns identifier of the marked line.
|
|
// Parameters:
|
|
// nRow : [in]row number.
|
|
// lmType : [in]mark type identifier.
|
|
// Remarks:
|
|
// Call this member function to get the last line identifier that
|
|
// have given mark type and following specified line number.
|
|
// Returns:
|
|
// Number identifier of the marked line.
|
|
//-----------------------------------------------------------------------
|
|
POSITION GetLastLineMark(const XTP_EDIT_LINEMARKTYPE lmType) const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns reference to the of the first marked line position
|
|
// for the specific line marks type.
|
|
// Parameters:
|
|
// lmType : [in]mark type identifier.
|
|
// Remarks:
|
|
// Call this member function to get the first line identifier that
|
|
// have given mark type.
|
|
// Returns:
|
|
// Number identifier of the marked line;
|
|
//-----------------------------------------------------------------------
|
|
POSITION GetFirstLineMark(const XTP_EDIT_LINEMARKTYPE lmType) const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns reference to the of the next marked line position
|
|
// for the specific line marks type.
|
|
// Parameters:
|
|
// pos : [in]Start POSITION value.
|
|
// lmType : [in]mark type identifier.
|
|
// Remarks:
|
|
// Call this member function to get the next line identifier that
|
|
// have given mark type.
|
|
// Returns:
|
|
// Pointer to XTP_EDIT_LMDATA with number identifier of the marked line.
|
|
// See also:
|
|
// struct XTP_EDIT_LMDATA.
|
|
//-----------------------------------------------------------------------
|
|
XTP_EDIT_LMDATA* GetNextLineMark(POSITION& pos, const XTP_EDIT_LINEMARKTYPE lmType) const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns mark from given position.
|
|
// Parameters:
|
|
// pos : [in]Current POSITION value.
|
|
// lmType : [in]mark type identifier.
|
|
// Remarks:
|
|
// Call this member function to get the next line identifier that
|
|
// have given mark type.
|
|
// Returns:
|
|
// Number identifier of the marked line.
|
|
//-----------------------------------------------------------------------
|
|
XTP_EDIT_LMDATA* GetLineMarkAt(const POSITION pos, const XTP_EDIT_LINEMARKTYPE lmType) const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Updates line marks for given range of rows.
|
|
// Parameters:
|
|
// nRowFrom : [in] Start row identifier.
|
|
// nRowTo : [in] End row identifier.
|
|
// nRefreshType : [in] refresh type.
|
|
// See also:
|
|
// XTPSyntaxEditLineMarksRefreshType.
|
|
//-----------------------------------------------------------------------
|
|
virtual void RefreshLineMarks(int nRowFrom, int nRowTo, int nRefreshType);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Removes all line marks from the corresponding types list.
|
|
// Parameters:
|
|
// lmType : [in] pointer to null terminated string with types list.
|
|
//-----------------------------------------------------------------------
|
|
void RemoveAll(const XTP_EDIT_LINEMARKTYPE lmType);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns count of line marks of the specified type.
|
|
// Parameters:
|
|
// lmType : [in] pointer to null terminated string with types list.
|
|
// Returns:
|
|
// Count of line marks as integer value.
|
|
//-----------------------------------------------------------------------
|
|
int GetCount(const XTP_EDIT_LINEMARKTYPE lmType) const;
|
|
|
|
private:
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This internal helper class is designed to store sorted list of line
|
|
// marks data objects, based on CArray and provides typical
|
|
// operations like fast binary searching inside it and basic line
|
|
// marks manipulations.
|
|
//-----------------------------------------------------------------------
|
|
class CLineMarksList : public CXTPCmdTarget
|
|
{
|
|
public:
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Default object destructor.
|
|
//-----------------------------------------------------------------------
|
|
virtual ~CLineMarksList();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Inserts element in the list at proper position.
|
|
// Parameters:
|
|
// lmData : [in] Pointer to element description structure.
|
|
// See also:
|
|
// XTP_EDIT_LMDATA.
|
|
//-----------------------------------------------------------------------
|
|
void Add(const XTP_EDIT_LMDATA& lmData);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Removes element from the list.
|
|
// Parameters:
|
|
// nKey : [in] id of element
|
|
//-----------------------------------------------------------------------
|
|
void Remove(const int nKey);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Removes all elements from the list.
|
|
//-----------------------------------------------------------------------
|
|
void RemoveAll();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns count of line marks of the specified type.
|
|
// Returns:
|
|
//-----------------------------------------------------------------------
|
|
int GetCount() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns position of the element with the specified key if exists.
|
|
// Parameters:
|
|
// nKey : [in] id of element.
|
|
// Returns:
|
|
// POSITION value for an element.
|
|
//-----------------------------------------------------------------------
|
|
POSITION FindAt(int nKey) const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns position of the element with the key following the
|
|
// specified.
|
|
// Parameters:
|
|
// nKey : [in] id of element.
|
|
// Returns:
|
|
// POSITION value for an element.
|
|
//-----------------------------------------------------------------------
|
|
POSITION FindNext(int nKey) const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns position of the element with the key previous to the
|
|
// specified.
|
|
// Parameters:
|
|
// nKey : [in] id of element.
|
|
// Returns:
|
|
// POSITION value for an element.
|
|
//-----------------------------------------------------------------------
|
|
POSITION FindPrev(int nKey) const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Refreshes marks for all corresponding lines.
|
|
// Parameters:
|
|
// nRowFrom : [in] Start row.
|
|
// nRowTo : [in] End row.
|
|
// eRefreshType : [in] Refresh type.
|
|
// See also:
|
|
// XTPSyntaxEditLineMarksRefreshType
|
|
//-----------------------------------------------------------------------
|
|
void RefreshLineMarks(int nRowFrom, int nRowTo, int nRefreshType);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns line mark by give position.
|
|
// Parameters:
|
|
// pos : [in] Current POSITION value.
|
|
// Remarks:
|
|
// Call this member function to get the next line identifier that
|
|
// have given mark type.
|
|
// Returns:
|
|
// Number identifier of the marked line.
|
|
//-----------------------------------------------------------------------
|
|
XTP_EDIT_LMDATA* GetLineMarkAt(const POSITION pos) const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns reference to the of the first marked line position
|
|
// Remarks:
|
|
// Call this member function to get the first line identifier that
|
|
// have given mark type.
|
|
// Returns:
|
|
// Number identifier of the marked line.
|
|
//-----------------------------------------------------------------------
|
|
POSITION GetFirstLineMark() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns reference to the of the next marked line position
|
|
// Parameters:
|
|
// pos : [in] Current POSITION value.
|
|
// Remarks:
|
|
// Call this member function to get the next line identifier that
|
|
// have given mark type.
|
|
// Returns:
|
|
// Number identifier of the marked line.
|
|
//-----------------------------------------------------------------------
|
|
XTP_EDIT_LMDATA* GetNextLineMark(POSITION& pos) const;
|
|
|
|
private:
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Finds index of the element with the specified key.
|
|
// Parameters:
|
|
// nKey : [in] id of element.
|
|
// Returns:
|
|
// -1 if key was not found.
|
|
//-----------------------------------------------------------------------
|
|
int FindIndex(const int nKey) const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Finds index of the element with the key value previous up to the specified.
|
|
// Parameters:
|
|
// nKey : [in] id of element.
|
|
// Returns:
|
|
// -1 if key was not found.
|
|
//-----------------------------------------------------------------------
|
|
int FindLowerIndex(const int nKey) const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Finds index of the element with the key value next to the specified.
|
|
// Parameters:
|
|
// nKey : [in] id of element.
|
|
// Returns:
|
|
// -1 if key was not found.
|
|
//-----------------------------------------------------------------------
|
|
int FindUpperIndex(const int nKey) const;
|
|
|
|
private:
|
|
typedef CArray<XTP_EDIT_LMDATA*, XTP_EDIT_LMDATA*> CXTPSyntaxEditLineMarkPointersArray;
|
|
CXTPSyntaxEditLineMarkPointersArray m_array; // The array with the actual line data.
|
|
};
|
|
public:
|
|
typedef CXTPSmartPtrInternalT<CLineMarksList> CLineMarksListPtr; // SmartPointer for the class.
|
|
private:
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This class contains a map of line marks lists corresponding to the
|
|
// string values of line marks types.
|
|
// It allows adding a new list with the new line mark type
|
|
// and retrieving a smart pointer of the requested list by its
|
|
// line mark type.
|
|
//-----------------------------------------------------------------------
|
|
class CLineMarksListsMap
|
|
{
|
|
public:
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Returns list associated with the specified mark type string.
|
|
// Parameters:
|
|
// szMarkType : [in] mark type string.
|
|
// See also:
|
|
// CLineMarksListPtr
|
|
//-----------------------------------------------------------------------
|
|
CLineMarksListPtr GetList(LPCTSTR szMarkType) const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Adds new list associated with the specified mark type string
|
|
// Parameters:
|
|
// szMarkType : [in] mark type string.
|
|
// Returns:
|
|
// Pointer to the added list.
|
|
// See also:
|
|
// CLineMarksListPtr
|
|
//-----------------------------------------------------------------------
|
|
CLineMarksListPtr AddList(LPCTSTR szMarkType);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Calls RefreshLineMarks for all lists inside.
|
|
// Parameters:
|
|
// nRowFrom : [in] Start row.
|
|
// nRowTo : [in] End row.
|
|
// eRefreshType : [in] Refresh type.
|
|
// See also:
|
|
// XTPSyntaxEditLineMarksRefreshType
|
|
//-----------------------------------------------------------------------
|
|
void RefreshLineMarks(int nRowFrom, int nRowTo, int nRefreshType);
|
|
|
|
private:
|
|
CMap<CString, LPCTSTR, CLineMarksListPtr, CLineMarksListPtr&> m_map; // A map containing line marks lists for every mark type.
|
|
|
|
};
|
|
|
|
CLineMarksListsMap m_mapLists; // A collection of line marks lists for all line mark types.
|
|
};
|
|
|
|
#endif // !defined(__XTPSYNTAXEDITLINEMARKSMANAGER_H__)
|