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.

232 lines
7.9 KiB
C++

// XTPSyntaxEditColorComboBox.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(__XTPSYNTAXEDITCOLORCOMBOBOX_H__)
#define __XTPSYNTAXEDITCOLORCOMBOBOX_H__
//}}AFX_CODEJOCK_PRIVATE
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//===========================================================================
// Summary:
// This class allow edit colors using combobox control.
// It display color name and draw rectangle for each item using item color.
//===========================================================================
class _XTP_EXT_CLASS CXTPSyntaxEditColorComboBox : public CComboBox
{
DECLARE_DYNAMIC(CXTPSyntaxEditColorComboBox)
public:
// -------------------------------------------------------------------
// Summary:
// Standard object constructor.
// -------------------------------------------------------------------
CXTPSyntaxEditColorComboBox();
// -------------------------------------------------------------------
// Summary:
// Standard object destructor.
// -------------------------------------------------------------------
virtual ~CXTPSyntaxEditColorComboBox();
public:
// -------------------------------------------------------------------
// Summary:
// Use this member to get selected color.
// Returns:
// Currently selected color or COLORREF_NULL if no selection.
// -------------------------------------------------------------------
COLORREF GetSelColor();
// -------------------------------------------------------------------
// Summary:
// Use this member to set selected color.
// Parameters:
// crColor - A color value.
// Returns:
// newly selected color item index.
// -------------------------------------------------------------------
int SetSelColor(COLORREF crColor);
// -------------------------------------------------------------------
// Summary:
// Use this member to remove color.
// Parameters:
// crColor - A color value.
// Returns:
// Deleted color index or CB_ERR.
// -------------------------------------------------------------------
int DeleteColor(COLORREF crColor);
// -------------------------------------------------------------------
// Summary:
// Use this member to find color index.
// Parameters:
// crColor - A color value.
// Returns:
// Color index or CB_ERR.
// -------------------------------------------------------------------
int FindColor(COLORREF crColor);
// -------------------------------------------------------------------
// Summary:
// Use this member to set user color value (and name).
// Parameters:
// crColor - A color value.
// lpszUserText - A user color name or NULL to use default.
// Returns:
// Color index or CB_ERR.
// -------------------------------------------------------------------
int SetUserColor(COLORREF crColor, LPCTSTR lpszUserText=NULL);
// -------------------------------------------------------------------
// Summary:
// Use this member to get user color value.
// Returns:
// A user color value.
// -------------------------------------------------------------------
COLORREF GetUserColor() const;
// -------------------------------------------------------------------
// Summary:
// Use this member to set auto color value.
// Parameters:
// crColor - A color value.
// lpszAutoText - A auto color name or NULL to use default.
// Returns:
// Color index or CB_ERR.
// -------------------------------------------------------------------
int SetAutoColor(COLORREF crColor, LPCTSTR lpszAutoText=NULL);
// -------------------------------------------------------------------
// Summary:
// Use this member to get auto color value.
// Returns:
// A auto color value.
// -------------------------------------------------------------------
COLORREF GetAutoColor() const;
// -------------------------------------------------------------------
// Summary:
// Use this member to select a user color.
// Returns:
// Selected color index or CB_ERR.
// -------------------------------------------------------------------
int SelectUserColor();
// -------------------------------------------------------------------
// Summary:
// Use this member to add default set of colors.
// Returns:
// true if successful, false otherwise.
// -------------------------------------------------------------------
virtual bool Init();
//{{AFX_CODEJOCK_PRIVATE
public:
virtual void DrawItem(LPDRAWITEMSTRUCT lpDIS);
virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMIS);
virtual int CompareItem(LPCOMPAREITEMSTRUCT lpCIS);
virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
virtual void PreSubclassWindow();
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
//}}AFX_CODEJOCK_PRIVATE
protected:
// -------------------------------------------------------------------
// Summary:
// Use this member to add new color.
// Parameters:
// crColor - A color value.
// nID - A resource ID of a color name string.
// Returns:
// New color index or CB_ERR.
// -------------------------------------------------------------------
virtual int AddColor(COLORREF crColor, UINT nID);
// -------------------------------------------------------------------
// Summary:
// Send WM_COMMAND message to owner window.
// Remarks:
// Default implementation send followin notifuications:
// CBN_SELENDCANCEL, CBN_SELENDOK
// Parameters:
// nCode - Notifuication code
// -------------------------------------------------------------------
virtual void NotifyOwner(UINT nCode);
// -------------------------------------------------------------------
// Summary:
// Use this member function to get list box selected item (works
// for dropped state only).
// Returns:
// Currently selected item index or LB_ERR.
// -------------------------------------------------------------------
virtual int GetLBCurSel() const;
//{{AFX_CODEJOCK_PRIVATE
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
afx_msg void OnCloseUp();
DECLARE_MESSAGE_MAP()
//}}AFX_CODEJOCK_PRIVATE
private:
int m_iPrevSel;
bool m_bPreInit;
COLORREF m_crAuto;
COLORREF m_crUser;
};
/////////////////////////////////////////////////////////////////////////////
AFX_INLINE COLORREF CXTPSyntaxEditColorComboBox::GetUserColor() const {
return m_crUser;
}
AFX_INLINE COLORREF CXTPSyntaxEditColorComboBox::GetAutoColor() const {
return m_crAuto;
}
//===========================================================================
// Summary:
// Use this function to exchange currently selected color for
// CXTPSyntaxEditColorComboBox control.
// Parameters:
// pDX - A pointer to CDataExchange object.
// nIDC - A control ID.
// value - A reference to color value.
//===========================================================================
_XTP_EXT_CLASS void AFXAPI DDX_CBSyntaxColor(CDataExchange* pDX, int nIDC, COLORREF& value);
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(__XTPSYNTAXEDITCOLORCOMBOBOX_H__)