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.
315 lines
11 KiB
C
315 lines
11 KiB
C
2 years ago
|
// XTPControlPopupColor.h : interface for the CXTPControlPopupColor class.
|
||
|
//
|
||
|
// This file is a part of the XTREME COMMANDBARS 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 TOOLKIT PRO 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(__XTPCONTROLPOPUPCOLOR_H__)
|
||
|
#define __XTPCONTROLPOPUPCOLOR_H__
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
#if _MSC_VER >= 1000
|
||
|
#pragma once
|
||
|
#endif // _MSC_VER >= 1000
|
||
|
|
||
|
|
||
|
class CXTPImageManagerIcon;
|
||
|
class CXTPImageManagerIconHandle;
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary:
|
||
|
// CXTPControlPopupColor is a CXTPControlPopup derived class.
|
||
|
// It represents a color picker control.
|
||
|
//===========================================================================
|
||
|
class _XTP_EXT_CLASS CXTPControlPopupColor : public CXTPControlPopup
|
||
|
{
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
DECLARE_XTP_CONTROL(CXTPControlPopupColor)
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
public:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Constructs a CXTPControlPopupColor object
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPControlPopupColor();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Destroys a CXTPControlPopupColor object, handles cleanup and
|
||
|
// deallocation
|
||
|
//-----------------------------------------------------------------------
|
||
|
~CXTPControlPopupColor();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member to set the picker color.
|
||
|
// Parameters:
|
||
|
// clr - Color to set.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void SetColor(COLORREF clr);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member to retrieve the control color.
|
||
|
// Returns:
|
||
|
// Color of the color picker.
|
||
|
//-----------------------------------------------------------------------
|
||
|
COLORREF GetColor() const;
|
||
|
|
||
|
protected:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to copy the control.
|
||
|
// Parameters:
|
||
|
// pControl - Points to a source CXTPControl object
|
||
|
// bRecursive - TRUE to copy recursively.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void Copy(CXTPControl* pControl, BOOL bRecursive = FALSE);
|
||
|
|
||
|
private:
|
||
|
|
||
|
void RedrawIcon(CXTPImageManagerIcon* pImage, CXTPImageManagerIconHandle& hIcon);
|
||
|
|
||
|
private:
|
||
|
|
||
|
COLORREF m_clr;
|
||
|
|
||
|
|
||
|
};
|
||
|
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary:
|
||
|
// CXTPControlButtonColor is a CXTPControlButton derived class.
|
||
|
// It represents a text button in the color picker popup.
|
||
|
//===========================================================================
|
||
|
class _XTP_EXT_CLASS CXTPControlButtonColor: public CXTPControlButton
|
||
|
{
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
DECLARE_XTP_CONTROL(CXTPControlButtonColor)
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
public:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Constructs a CXTPControlButtonColor object
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPControlButtonColor();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member to retrieve the color of the control.
|
||
|
// Returns:
|
||
|
// Color of the selector.
|
||
|
//-----------------------------------------------------------------------
|
||
|
COLORREF GetColor() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this method to set the color of the control.
|
||
|
// Parameters:
|
||
|
// clr - Color to set.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void SetColor(COLORREF clr);
|
||
|
protected:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to copy the control.
|
||
|
// Parameters:
|
||
|
// pControl - Points to a source CXTPControl object
|
||
|
// bRecursive - TRUE to copy recursively.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void Copy(CXTPControl* pControl, BOOL bRecursive = FALSE);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Reads or writes this object from or to an archive.
|
||
|
// Parameters:
|
||
|
// pPX - A CXTPPropExchange object to serialize to or from.
|
||
|
//----------------------------------------------------------------------
|
||
|
void DoPropExchange(CXTPPropExchange* pPX);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to determine the size of the control.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// Returns:
|
||
|
// Size of the control.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CSize GetSize(CDC* pDC);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the control.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void Draw(CDC* pDC);
|
||
|
|
||
|
protected:
|
||
|
COLORREF m_clr; // Color of the color bar displayed in the color button under the "pin" icon.
|
||
|
};
|
||
|
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary:
|
||
|
// CXTPControlColorSelector is a CXTPControl derived class.
|
||
|
// It represents a color selector control.
|
||
|
//===========================================================================
|
||
|
class _XTP_EXT_CLASS CXTPControlColorSelector: public CXTPControl
|
||
|
{
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
DECLARE_XTP_CONTROL(CXTPControlColorSelector)
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Internal helper class.
|
||
|
//-----------------------------------------------------------------------
|
||
|
struct CColorInfo;
|
||
|
|
||
|
public:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Constructs a CXTPControlColorSelector object
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPControlColorSelector();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member to retrieve the color of the selector control.
|
||
|
// Returns:
|
||
|
// Color of the selector.
|
||
|
//-----------------------------------------------------------------------
|
||
|
COLORREF GetColor() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this method to set the color of the control.
|
||
|
// Parameters:
|
||
|
// clr - Color to set.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void SetColor(COLORREF clr);
|
||
|
|
||
|
protected:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to determine the size of the control.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// Returns:
|
||
|
// Size of the control.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CSize GetSize(CDC* pDC);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the control.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void Draw(CDC* pDC);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This member is called when the mouse cursor moves.
|
||
|
// Parameters:
|
||
|
// point - Specifies the x- and y coordinate of the cursor.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void OnMouseMove(CPoint point);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called when the control becomes selected.
|
||
|
// Parameters:
|
||
|
// bSelected - TRUE if the control becomes selected.
|
||
|
// Returns:
|
||
|
// TRUE if successful; otherwise returns FALSE
|
||
|
//-----------------------------------------------------------------------
|
||
|
BOOL OnSetSelected(int bSelected);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called when the user clicks the control.
|
||
|
// Parameters:
|
||
|
// bKeyboard - TRUE if the control is selected using the keyboard.
|
||
|
// pt - Mouse cursor position.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void OnClick(BOOL bKeyboard = FALSE, CPoint pt = CPoint(0, 0));
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called when the control is executed.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void OnExecute();
|
||
|
|
||
|
//----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This member is called when the user releases the left mouse button.
|
||
|
// Parameters:
|
||
|
// point - Specifies the x- and y coordinate of the cursor.
|
||
|
//----------------------------------------------------------------------
|
||
|
void OnLButtonUp(CPoint point);
|
||
|
|
||
|
protected:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Input: point - Specifies the x- and y coordinate of the cursor.
|
||
|
// These coordinates are always relative to the
|
||
|
// upper-left corner of the window
|
||
|
// pTI - A pointer to a TOOLINFO structure.
|
||
|
// Summary: The framework calls this member function to determine
|
||
|
// whether a point is in the bounding rectangle of the
|
||
|
// specified tool.
|
||
|
// Returns: If the tooltip control was found, the window control ID. If
|
||
|
// the tooltip control was not found, -1.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual INT_PTR OnToolHitTest(CPoint point, TOOLINFO* pTI) const;
|
||
|
|
||
|
private:
|
||
|
|
||
|
CRect GetRect(int nIndex) const;
|
||
|
int HitTest(CPoint point) const;
|
||
|
|
||
|
BOOL IsFocused() const;
|
||
|
BOOL OnHookKeyDown(UINT nChar, LPARAM /*lParam*/);
|
||
|
void SetSelectedItem(int nItem);
|
||
|
int GetItemCount() const;
|
||
|
|
||
|
private:
|
||
|
|
||
|
int m_nSelected;
|
||
|
int m_nPressed;
|
||
|
COLORREF m_clr;
|
||
|
|
||
|
};
|
||
|
|
||
|
// Obsolete define
|
||
|
#define XTP_IDS_AUTOMATIC XTP_IDS_CLR_AUTOMATIC
|
||
|
#define XTP_IDS_MORE_COLORS XTP_IDS_CLR_MORE
|
||
|
|
||
|
|
||
|
#endif // #if !defined(__XTPCONTROLPOPUPCOLOR_H__)
|