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.

846 lines
31 KiB
C++

// XTPSyntaxEditPropertiesPage.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(__XTPSYNTAXEDITPROPERTIESPAGE_H__)
#define __XTPSYNTAXEDITPROPERTIESPAGE_H__
//}}AFX_CODEJOCK_PRIVATE
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CXTPSyntaxEditPropertiesDlg;
class CXTPSyntaxEditView;
class CXTPSyntaxEditTextSchemesManager;
class CXTPSyntaxEditPaintManager;
struct XTP_EDIT_SCHEMAFILEINFO;
class CXTPSyntaxEditConfigurationManager;
namespace XTPSyntaxEditLexAnalyser
{
class CXTPSyntaxEditLexPropInfoArray;
class CXTPSyntaxEditLexClassInfoArray;
struct XTP_EDIT_LEXCLASSINFO;
struct XTP_EDIT_LEXPROPINFO;
}
//===========================================================================
// Summary:
// CXTPSyntaxEditTipWnd implements a tooltip window for
// CXTPSyntaxEditTipListBox class.
//===========================================================================
class _XTP_EXT_CLASS CXTPSyntaxEditTipWnd : public CWnd
{
public:
//-----------------------------------------------------------------------
// Summary: Default object constructor.
//-----------------------------------------------------------------------
CXTPSyntaxEditTipWnd();
//-----------------------------------------------------------------------
// Summary: Default object destructor.
//-----------------------------------------------------------------------
virtual ~CXTPSyntaxEditTipWnd();
//-----------------------------------------------------------------------
// Summary:
// Create a tooltip window.
// Parameters:
// pListBox - A pointer to CListBox to attach.
// Returns:
// TRUE if successful, FALSE otherwise.
// See Also: ShowTip
//-----------------------------------------------------------------------
virtual BOOL Create(CListBox* pListBox);
//-----------------------------------------------------------------------
// Summary:
// Use this member function to determine is attached list box has
// owner draw flags (LBS_OWNERDRAWFIXED or LBS_OWNERDRAWVARIABLE).
// Returns:
// TRUE if attached list box is owner drawn, FALSE otherwise.
// See Also: CListBox, LBS_OWNERDRAWFIXED, LBS_OWNERDRAWVARIABLE
//-----------------------------------------------------------------------
virtual BOOL IsOwnerDrawn();
//-----------------------------------------------------------------------
// Summary:
// Use this member function to show tooltip for specified list box item.
// Parameters:
// iIndex - A list box item index.
// Returns:
// TRUE if successful, FALSE otherwise.
// See Also: HideTip
//-----------------------------------------------------------------------
virtual BOOL ShowTip(int iIndex);
//-----------------------------------------------------------------------
// Summary:
// Use this member function to hide tooltip.
// Returns:
// TRUE if tooltip was visible and method hide it, FALSE if tooltip
// was not visible.
// See Also: ShowTip
//-----------------------------------------------------------------------
virtual BOOL HideTip();
//-----------------------------------------------------------------------
// Summary: Get text color.
// Returns: A tooltip text color.
// See Also: GetBackColor
//-----------------------------------------------------------------------
virtual COLORREF GetTextColor() const;
//-----------------------------------------------------------------------
// Summary: Get background color.
// Returns: A tooltip background color.
// See Also: GetTextColor
//-----------------------------------------------------------------------
virtual COLORREF GetBackColor() const;
protected:
//-----------------------------------------------------------------------
// Summary:
// Register the window class if it has not already been registered.
// Parameters:
// hInstance - Instance of resource where control is located
// Returns:
// TRUE if the window class was successfully registered. FALSE otherwise.
//-----------------------------------------------------------------------
virtual BOOL RegisterWindowClass(HINSTANCE hInstance = NULL);
//-----------------------------------------------------------------------
// Summary:
// This method used to draw tooltip for owner drawn list box.
// Parameters:
// pDC - A pointer to device context.
// rClient - Tooltip rect (in client coordinates of this window).
// Returns:
// TRUE if successful, FALSE otherwise.
// See Also: DrawTip
//-----------------------------------------------------------------------
virtual BOOL OwnerDrawTip(CDC* pDC, CRect rClient);
//-----------------------------------------------------------------------
// Summary:
// This method used to draw tooltip.
// Parameters:
// pDC - A pointer to device context.
// rClient - Tooltip rect (in client coordinates of this window).
// Returns:
// TRUE if successful, FALSE otherwise.
// See Also: OwnerDrawTip
//-----------------------------------------------------------------------
virtual BOOL DrawTip(CDC* pDC, CRect rClient);
//-----------------------------------------------------------------------
// Summary:
// Used to get rectangle for a specified item.
// Parameters:
// iItem - [in] A list box item index.
// rItem - [out] Item rectangle.
// Returns:
// TRUE if successful, FALSE otherwise.
//-----------------------------------------------------------------------
virtual BOOL CalcItemRect(int iItem, CRect& rItem);
//{{AFX_VIRTUAL(CXTPSyntaxEditTipWnd)
//}}AFX_VIRTUAL
//{{AFX_CODEJOCK_PRIVATE
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
//}}AFX_CODEJOCK_PRIVATE
//{{AFX_CODEJOCK_PRIVATE
afx_msg void OnPaint();
afx_msg void OnTimer(UINT_PTR nIDEvent);
afx_msg LRESULT OnNcHitTest(CPoint point);
afx_msg void OnNcPaint();
DECLARE_MESSAGE_MAP()
//}}AFX_CODEJOCK_PRIVATE
protected:
int m_iIndex; // Current item index.
CRect m_rWindow; // Store window rect.
CPoint m_ptCursor; // Store cursor position.
CListBox* m_pListBox; // Store pointer to attached list box.
private:
void SetTipTimer();
void KillTipTimer();
UINT m_uIDEvent1;
UINT m_uIDEvent2;
};
//===========================================================================
// Summary:
// This class implements a list box with tooltip.
//===========================================================================
class _XTP_EXT_CLASS CXTPSyntaxEditTipListBox : public CListBox
{
public:
//-----------------------------------------------------------------------
// Summary: Default object constructor.
//-----------------------------------------------------------------------
CXTPSyntaxEditTipListBox();
//-----------------------------------------------------------------------
// Summary:
// This method used to determine a list box item for a specified point.
// Parameters:
// pPoint - A pointer to POINT object or NULL. If this parameter
// NULL - current mouse coordinates are used.
// Returns:
// Item index under specified point or LB_ERR.
// See Also: HitTest@CPoint@BOOL
//-----------------------------------------------------------------------
int HitTest(LPPOINT pPoint = NULL) const;
//-----------------------------------------------------------------------
// Summary:
// This method used to determine a list box item for a specified point.
// Parameters:
// point - A CPoint object.
// bIsClient - Set as TRUE if point contains client coordinates or
// set as FALSE if screen.
// Returns:
// Item index under specified point or LB_ERR.
// See Also: HitTest@LPPOINT
//-----------------------------------------------------------------------
int HitTest(CPoint point, BOOL bIsClient = FALSE) const;
//-----------------------------------------------------------------------
// Summary:
// Use this member function to show tooltip for specified point
// if necessary.
// Parameters:
// point - A CPoint object.
// bIsClient - Set as TRUE if point contains client coordinates or
// set as FALSE if screen.
// Returns:
// Item index if tooltip showed, otherwise LB_ERR.
//-----------------------------------------------------------------------
int ShowTip(CPoint point, BOOL bIsClient = FALSE);
//-----------------------------------------------------------------------
// Summary:
// Use this member function to determine is selection changed
// by the user.
// Returns:
// TRUE selection changed, FALSE otherwise.
//-----------------------------------------------------------------------
BOOL SelChanged(); // const;
protected:
//{{AFX_CODEJOCK_PRIVATE
virtual BOOL PreTranslateMessage(MSG* pMsg);
//}}AFX_CODEJOCK_PRIVATE
protected:
DWORD m_dwIdx; // Selection indexes: LOWORD - previous selection index, HIWORD - active selection index.
CXTPSyntaxEditTipWnd m_wndInfoTip; // A tooltip window.
};
//===========================================================================
// Summary:
// This class implements a combo box with tooltip.
//===========================================================================
class _XTP_EXT_CLASS CXTPSyntaxEditTipComboBox : public CComboBox
{
public:
//-----------------------------------------------------------------------
// Summary:
// Use this member function to get an attached list box.
// Returns:
// A CXTPSyntaxEditTipListBox object reference.
// See Also: CXTPSyntaxEditTipListBox
//-----------------------------------------------------------------------
CXTPSyntaxEditTipListBox& GetListBox();
protected:
//{{AFX_CODEJOCK_PRIVATE
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
afx_msg void OnDestroy();
DECLARE_MESSAGE_MAP()
//}}AFX_CODEJOCK_PRIVATE
private:
CXTPSyntaxEditTipListBox m_wndListBox;
};
AFX_INLINE CXTPSyntaxEditTipListBox& CXTPSyntaxEditTipComboBox::GetListBox() {
return m_wndListBox;
}
//===========================================================================
// Summary:
// This class implements a property page for common edit options.
//===========================================================================
class _XTP_EXT_CLASS CXTPSyntaxEditPropertiesPageEdit : public CPropertyPage
{
DECLARE_DYNCREATE(CXTPSyntaxEditPropertiesPageEdit)
public:
// -------------------------------------------------------------------
// Summary:
// Default object constructor.
// Parameters:
// pEditView - Pointer to CXTPSyntaxEditView object.
// -------------------------------------------------------------------
CXTPSyntaxEditPropertiesPageEdit(CXTPSyntaxEditView* pEditView=NULL);
// -------------------------------------------------------------------
// Summary:
// Default object destructor.
// -------------------------------------------------------------------
virtual ~CXTPSyntaxEditPropertiesPageEdit();
//{{AFX_CODEJOCK_PRIVATE
enum { IDD = XTP_IDD_EDIT_PAGEEDITOR };
BOOL m_bAutoReload;
BOOL m_bHorzScrollBar;
BOOL m_bVertScrollBar;
BOOL m_bSyntaxColor;
BOOL m_bAutoIndent;
BOOL m_bSelMargin;
BOOL m_bLineNumbers;
BOOL m_bVirtualSpace;
BOOL m_bCollapsibleNodes;
int m_nCaretStyle;
int m_nTabType;
int m_nTabSize;
CButton m_btnRadioSpaces;
CButton m_btnRadioTab;
CButton m_btnRadioCaretThin;
CButton m_btnRadioCaretThick;
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
public:
virtual BOOL OnApply();
//}}AFX_CODEJOCK_PRIVATE
protected:
// -------------------------------------------------------------------
// Summary:
// Use this method to load controls state (options) from the registry.
// Returns:
// TRUE if successful, FALSE otherwise.
// See Also: WriteRegistryValues
// -------------------------------------------------------------------
BOOL ReadRegistryValues();
// -------------------------------------------------------------------
// Summary:
// Use this method to save controls state (options) it the registry.
// Returns:
// TRUE if successful, FALSE otherwise.
// See Also: ReadRegistryValues
// -------------------------------------------------------------------
BOOL WriteRegistryValues();
// -------------------------------------------------------------------
// Summary:
// Use this method to set or reset modified flag.
// Parameters:
// bChanged - TRUE if options where modified, FALSE otherwise.
// See Also: CPropertyPage::SetModified
// -------------------------------------------------------------------
void SetModified(BOOL bChanged = TRUE);
//{{AFX_CODEJOCK_PRIVATE
virtual BOOL OnInitDialog();
afx_msg void OnChkAutoReload();
afx_msg void OnChkHorzScrollBar();
afx_msg void OnChkVertScrollBar();
afx_msg void OnChkSyntaxColor();
afx_msg void OnChkAutoIndent();
afx_msg void OnChkSelMargin();
afx_msg void OnChkLineNumbers();
afx_msg void OnChkVirtualSpace();
afx_msg void OnChangeTabsSize();
afx_msg void OnTabsSpaces();
afx_msg void OnTabsTab();
afx_msg void OnCaretThin();
afx_msg void OnCaretThick();
DECLARE_MESSAGE_MAP()
//}}AFX_CODEJOCK_PRIVATE
protected:
BOOL m_bModified; // Store modified flag.
CXTPSyntaxEditView* m_pEditView; // Store pointer to CXTPSyntaxEditView object.
};
//===========================================================================
// Summary:
// This class implements a property page font options.
//===========================================================================
class _XTP_EXT_CLASS CXTPSyntaxEditPropertiesPageFont : public CPropertyPage
{
DECLARE_DYNCREATE(CXTPSyntaxEditPropertiesPageFont)
public:
// Summary:
// Default object constructor.
// Parameters:
// pEditView - Pointer to CXTPSyntaxEditView object.
CXTPSyntaxEditPropertiesPageFont(CXTPSyntaxEditView* pEditView=NULL);
// -------------------------------------------------------------------
// Summary:
// Default object destructor.
// -------------------------------------------------------------------
virtual ~CXTPSyntaxEditPropertiesPageFont();
// -------------------------------------------------------------------
// Summary:
// Use this member function to get editor font.
// Returns:
// A reference to CFont object.
// See Also: GetSafeLogFont
// -------------------------------------------------------------------
CFont& GetEditFont();
// -------------------------------------------------------------------
// Summary:
// Use this member function to get editor font.
// Parameters:
// lf - A reference to LOGFONT structure.
// Returns:
// TRUE if successful, FALSE otherwise.
// See Also: GetEditFont
// -------------------------------------------------------------------
BOOL GetSafeLogFont(LOGFONT& lf);
// -------------------------------------------------------------------
// Summary:
// Use this method to change font in specified CFont object.
// The previous font deleted.
// Parameters:
// editFont - A reference to CFont object to set new font.
// lf - A new font parameters.
// Returns:
// TRUE if successful, FALSE otherwise.
// See Also: CFont::CreateFontIndirect
// -------------------------------------------------------------------
BOOL CreateSafeFontIndirect(CFont& editFont, const LOGFONT& lf);
//{{AFX_CODEJOCK_PRIVATE
enum { IDD = XTP_IDD_EDIT_PAGEFONT };
CXTPSyntaxEditColorComboBox m_wndComboHiliteText;
CXTPSyntaxEditColorComboBox m_wndComboHiliteBack;
CXTPSyntaxEditColorComboBox m_wndComboText;
CXTPSyntaxEditColorComboBox m_wndComboBack;
CXTPSyntaxEditColorSampleText m_txtSampleSel;
CXTPSyntaxEditColorSampleText m_txtSample;
CButton m_btnCustomText;
CButton m_btnCustomBack;
CButton m_btnCustomHiliteText;
CButton m_btnCustomHiliteBack;
CXTPSyntaxEditTipComboBox m_wndComboScript;
CXTPSyntaxEditTipComboBox m_wndComboStyle;
CXTPSyntaxEditTipComboBox m_wndComboSize;
CXTPSyntaxEditTipComboBox m_wndComboName;
BOOL m_bStrikeOut;
BOOL m_bUnderline;
CString m_csName;
CString m_csSize;
CString m_csStyle;
COLORREF m_crHiliteText;
COLORREF m_crHiliteBack;
COLORREF m_crText;
COLORREF m_crBack;
//}}AFX_CODEJOCK_PRIVATE
//{{AFX_CODEJOCK_PRIVATE
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
public:
virtual BOOL OnApply();
//}}AFX_CODEJOCK_PRIVATE
protected:
// -------------------------------------------------------------------
// Summary:
// Initialize font name combo box.
// -------------------------------------------------------------------
void InitFontCombo();
// -------------------------------------------------------------------
// Summary:
// Initialize font style combo box.
// -------------------------------------------------------------------
void InitStyleCombo();
// -------------------------------------------------------------------
// Summary:
// Initialize font size combo box.
// -------------------------------------------------------------------
void InitSizeCombo();
// -------------------------------------------------------------------
// Summary:
// Initialize font script combo box.
// -------------------------------------------------------------------
void InitScriptCombo();
// -------------------------------------------------------------------
// Summary:
// Initialize color combo box.
// -------------------------------------------------------------------
void InitColorComboxes();
// -------------------------------------------------------------------
// Summary:
// Use this member function to update font for a sample text control.
// -------------------------------------------------------------------
void UpdateSampleFont();
// -------------------------------------------------------------------
// Summary:
// Use this member function to update colors for a sample text control.
// -------------------------------------------------------------------
void UpdateSampleColors();
// -------------------------------------------------------------------
// Summary:
// Use this helper function to get currently selected list box item
// text and update combo box.
// Parameters:
// comboBox - [in] A references to combobox object.
// csItemText - [out] A references to CString to store text.
// Returns:
// Selected item index or CB_ERR.
// See Also: CComboBox::GetLBText
// -------------------------------------------------------------------
int GetLBText(CComboBox& comboBox, CString& csItemText);
// -------------------------------------------------------------------
// Summary:
// Use this method to load controls state (options) from the registry.
// Returns:
// TRUE if successful, FALSE otherwise.
// See Also: WriteRegistryValues
// -------------------------------------------------------------------
BOOL ReadRegistryValues();
// -------------------------------------------------------------------
// Summary:
// Use this method to save controls state (options) it the registry.
// Returns:
// TRUE if successful, FALSE otherwise.
// See Also: ReadRegistryValues
// -------------------------------------------------------------------
BOOL WriteRegistryValues();
// -------------------------------------------------------------------
// Summary:
// Use this method to set or reset modified flag.
// Parameters:
// bChanged - TRUE if options where modified, FALSE otherwise.
// See Also: CPropertyPage::SetModified
// -------------------------------------------------------------------
void SetModified(BOOL bChanged = TRUE);
// -------------------------------------------------------------------
// Summary:
// Use this function to get edit control paint manager.
// Returns:
// Pointer to CXTPSyntaxEditPaintManager object.
// -------------------------------------------------------------------
CXTPSyntaxEditPaintManager* GetPaintManager();
//{{AFX_CODEJOCK_PRIVATE
virtual BOOL OnInitDialog();
afx_msg void OnSelChangeComboNames();
afx_msg void OnSelChangeComboStyles();
afx_msg void OnSelChangeComboSizes();
afx_msg void OnChkStrikeOut();
afx_msg void OnChkUnderline();
afx_msg void OnSelEndOkScript();
afx_msg void OnBtnCustomText();
afx_msg void OnBtnCustomBack();
afx_msg void OnBtnCustomHiliteText();
afx_msg void OnBtnCustomtHiliteBack();
afx_msg void OnSelEndOkHiliteText();
afx_msg void OnSelEndOkHiliteBack();
afx_msg void OnSelEndOkText();
afx_msg void OnSelEndOkBack();
DECLARE_MESSAGE_MAP()
//}}AFX_CODEJOCK_PRIVATE
protected:
const UINT m_uFaceSize; // Store face name maximum string size.
BYTE m_iCharSet; // Store char set.
BOOL m_bModified; // Store modified flag.
CXTPSyntaxEditView* m_pEditView; // Store pointer to CXTPSyntaxEditView object.
CFont m_editFont; // Store editor font.
};
//---------------------------------------------------------------------------
AFX_INLINE CFont& CXTPSyntaxEditPropertiesPageFont::GetEditFont() {
return m_editFont;
}
//===========================================================================
// Summary:
// This class implements a property page colors options.
//===========================================================================
class _XTP_EXT_CLASS CXTPSyntaxEditPropertiesPageColor : public CPropertyPage
{
DECLARE_DYNCREATE(CXTPSyntaxEditPropertiesPageColor)
public:
// -------------------------------------------------------------------
// Summary:
// Default object constructor.
// Parameters:
// pEditView - Pointer to CXTPSyntaxEditView object.
// -------------------------------------------------------------------
CXTPSyntaxEditPropertiesPageColor(CXTPSyntaxEditView* pEditView=NULL);
// -------------------------------------------------------------------
// Summary:
// Default object destructor.
// -------------------------------------------------------------------
virtual ~CXTPSyntaxEditPropertiesPageColor();
// -------------------------------------------------------------------
// Summary:
// Use this method to save controls state (options) it the registry.
// Returns:
// TRUE if successful, FALSE otherwise.
// -------------------------------------------------------------------
BOOL WriteRegistryValues();
// -------------------------------------------------------------------
// Summary:
// Use this method to set or reset modified flag.
// Parameters:
// bChanged - TRUE if options where modified, FALSE otherwise.
// See Also: CPropertyPage::SetModified
// -------------------------------------------------------------------
void SetModified(BOOL bChanged = TRUE);
//{{AFX_CODEJOCK_PRIVATE
enum { IDD = XTP_IDD_EDIT_PAGECOLOR };
CXTPSyntaxEditColorSampleText m_txtSampleSel;
CXTPSyntaxEditColorSampleText m_txtSample;
CXTPSyntaxEditColorComboBox m_wndComboHiliteText;
CXTPSyntaxEditColorComboBox m_wndComboHiliteBack;
CXTPSyntaxEditColorComboBox m_wndComboText;
CXTPSyntaxEditColorComboBox m_wndComboBack;
CButton m_btnBold;
CButton m_btnItalic;
CButton m_btnUnderline;
CButton m_btnCustomText;
CButton m_btnCustomBack;
CButton m_btnCustomHiliteText;
CButton m_btnCustomHiliteBack;
CXTPSyntaxEditTipListBox m_lboxName;
CXTPSyntaxEditTipListBox m_lboxProp;
CStatic m_gboxSampleText;
BOOL m_bBold;
BOOL m_bItalic;
BOOL m_bUnderline;
COLORREF m_crHiliteText;
COLORREF m_crHiliteBack;
COLORREF m_crText;
COLORREF m_crBack;
public:
virtual BOOL OnSetActive();
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
public:
virtual BOOL OnApply();
//}}AFX_CODEJOCK_PRIVATE
protected:
// -------------------------------------------------------------------
// Summary:
// Use this member function to update font for a sample text control.
// -------------------------------------------------------------------
void UpdateSampleColors();
// -------------------------------------------------------------------
// Summary:
// Use this member function to update font for a sample text control.
// -------------------------------------------------------------------
void UpdateFont();
// -------------------------------------------------------------------
// Summary:
// Initialize dialog controls for specified lex schema.
// Parameters:
// pSchemaInfo - A pointer to XTP_EDIT_SCHEMAFILEINFO object.
// Returns:
// TRUE if successful, FALSE otherwise.
// -------------------------------------------------------------------
BOOL InitSchemaClasses(XTP_EDIT_SCHEMAFILEINFO* pSchemaInfo);
// -------------------------------------------------------------------
// Summary:
// Initialize dialog controls for specified lex class.
// Parameters:
// infoClass - A reference to XTP_EDIT_LEXCLASSINFO object.
// -------------------------------------------------------------------
void InitClassData(const XTPSyntaxEditLexAnalyser::XTP_EDIT_LEXCLASSINFO& infoClass);
// -------------------------------------------------------------------
// Summary:
// Determine is specified class a top level schema class.
// Parameters:
// infoClass - A reference to XTP_EDIT_LEXCLASSINFO object.
// Returns:
// TRUE if specified class is a top level schema class, FALSE otherwise.
// -------------------------------------------------------------------
BOOL IsTopLevelClass(const XTPSyntaxEditLexAnalyser::XTP_EDIT_LEXCLASSINFO& infoClass);
// -------------------------------------------------------------------
// Summary:
// Update controls state (enabled/disabled).
// -------------------------------------------------------------------
void EnableControls();
// -------------------------------------------------------------------
// Summary:
// Use this member function to get lex property as a comma separated
// string.
// Parameters:
// infoProp - A reference to XTP_EDIT_LEXPROPINFO object.
// Returns:
// A comma separated string.
// See Also: XTP_EDIT_LEXPROPINFO
// -------------------------------------------------------------------
CString GetPropValue(const XTPSyntaxEditLexAnalyser::XTP_EDIT_LEXPROPINFO& infoProp) const;
// -------------------------------------------------------------------
// Summary:
// Set defaults controls state.
// -------------------------------------------------------------------
void SetDefaults();
// -------------------------------------------------------------------
// Summary:
// Use this member function to determine is specified properties
// data exists in the provided array.
// Parameters:
// arrProp - A properties data array.
// lpszPropName - A lex property name.
// Returns:
// Property data index in the array or -1
// -------------------------------------------------------------------
int PropExists(XTPSyntaxEditLexAnalyser::CXTPSyntaxEditLexPropInfoArray& arrProp, LPCTSTR lpszPropName);
// -------------------------------------------------------------------
// Summary:
// Use this member function to update font parameters for currently
// selected lex class.
// Parameters:
// lpszPropName - A lex class property name (font attribute).
// bValue - A property value.
// Returns:
// TRUE if successful, FALSE otherwise.
// See Also: UpdateColorValue
// -------------------------------------------------------------------
BOOL UpdateFontValue(BOOL& bValue, LPCTSTR lpszPropName);
// -------------------------------------------------------------------
// Summary:
// Use this member function to update colors parameters for currently
// selected lex class.
// Parameters:
// combo - An edit color combo box.
// color - A color value.
// lpszPropName - A lex class property name (color attribute).
// Returns:
// TRUE if successful, FALSE otherwise.
// See Also: UpdateFontValue
// -------------------------------------------------------------------
BOOL UpdateColorValue(CXTPSyntaxEditColorComboBox& combo, COLORREF& color, LPCTSTR lpszPropName);
// -------------------------------------------------------------------
// Summary:
// Use this member function to retrieve a display name property
// value for a lex class.
// Parameters:
// info - A reference to XTP_EDIT_LEXCLASSINFO object.
// Returns:
// Display name property value for a lex class.
// -------------------------------------------------------------------
CString GetDisplayName(const XTPSyntaxEditLexAnalyser::XTP_EDIT_LEXCLASSINFO& info) const;
//{{AFX_CODEJOCK_PRIVATE
virtual BOOL OnInitDialog();
afx_msg void OnBtnCustomText();
afx_msg void OnBtnCustomBack();
afx_msg void OnBtnCustomHiliteText();
afx_msg void OnBtnCustomtHiliteBack();
afx_msg void OnChkBold();
afx_msg void OnChkItalic();
afx_msg void OnChkUnderline();
afx_msg void OnSelEndOkHiliteText();
afx_msg void OnSelEndOkHiliteBack();
afx_msg void OnSelEndOkText();
afx_msg void OnSelEndOkBack();
afx_msg void OnSelChangeSchemaNames();
afx_msg void OnSelChangeSchemaProp();
afx_msg void OnDblClickSchema();
afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
DECLARE_MESSAGE_MAP()
//}}AFX_CODEJOCK_PRIVATE
protected:
BOOL m_bModified; // Store modified flag.
CXTPSyntaxEditView* m_pEditView; // Store pointer to CXTPSyntaxEditView object.
CXTPSyntaxEditConfigurationManager* m_ptrConfigMgr; // Store pointer to Configuration Manager.
CXTPSyntaxEditTextSchemesManager* m_pTextSchemesMgr; // Store pointer to Schemes Manager.
CFont m_editFont; // Store editor font.
CMapStringToPtr m_mapLexClassInfo; // Map lex schema name to schema classes array (CXTPSyntaxEditLexClassInfoArray*).
XTPSyntaxEditLexAnalyser::CXTPSyntaxEditLexClassInfoArray* m_parLexClassInfo; // Store currently selected schema classes.
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(__XTPSYNTAXEDITPROPERTIESPAGE_H__)