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.
591 lines
22 KiB
C++
591 lines
22 KiB
C++
// XTPCalendarEventLabel.h: interface for the CXTPCalendarEventLabel and
|
|
// CXTPCalendarEventLabels classes.
|
|
//
|
|
// This file is a part of the XTREME CALENDAR 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(_XTPCALENDAREVENTLABEL_H__)
|
|
#define _XTPCALENDAREVENTLABEL_H__
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
class CXTPCalendarEventLabel;
|
|
class CXTPCalendarEventLabels;
|
|
class CXTPPropExchange;
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// This class define Calendar Event label properties.
|
|
// See Also: CXTPCalendarEvent
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTPCalendarEventLabel : public CXTPCmdTarget
|
|
{
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
DECLARE_DYNAMIC(CXTPCalendarEventLabel)
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
public:
|
|
int m_nLabelID; // Label ID.
|
|
COLORREF m_clrColor; // Label color used to fill the event background.
|
|
CString m_strName; // Label name.
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Default class constructor.
|
|
// Parameters:
|
|
// nID - Label ID.
|
|
// clrColor - Label color.
|
|
// pcszName - Label name.
|
|
//-----------------------------------------------------------------------
|
|
CXTPCalendarEventLabel(int nID = 0, COLORREF clrColor = 0, LPCTSTR pcszName = _T(""));
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Default class destructor.
|
|
// Remarks:
|
|
// Handles class member deallocation.
|
|
//-----------------------------------------------------------------------
|
|
virtual ~CXTPCalendarEventLabel() {};
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is used to set new object properties.
|
|
// Parameters:
|
|
// rSrc - Reference to the source object.
|
|
// Remarks:
|
|
// This is the overloaded assignment operator.
|
|
// Returns:
|
|
// Reference to this class instance.
|
|
//-----------------------------------------------------------------------
|
|
const CXTPCalendarEventLabel& operator=(const CXTPCalendarEventLabel& rSrc)
|
|
{
|
|
m_nLabelID = rSrc.m_nLabelID;
|
|
m_clrColor = rSrc.m_clrColor;
|
|
m_strName = rSrc.m_strName;
|
|
|
|
return *this;
|
|
}
|
|
protected:
|
|
|
|
};
|
|
//===========================================================================
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// This class is used as a collection of CXTPCalendarEventLabel
|
|
// objects.
|
|
// See Also: CXTPCalendarEventLabel, CXTPCalendarEvent
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTPCalendarEventLabels :
|
|
public CXTPCalendarPtrCollectionT<CXTPCalendarEventLabel>
|
|
{
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
DECLARE_DYNAMIC(CXTPCalendarEventLabels)
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
public:
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Default class constructor.
|
|
//-----------------------------------------------------------------------
|
|
CXTPCalendarEventLabels();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Default class destructor.
|
|
// Remarks:
|
|
// Handles class members deallocation.
|
|
//-----------------------------------------------------------------------
|
|
virtual ~CXTPCalendarEventLabels();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is used to fill the collection using
|
|
// a default label list.
|
|
//-----------------------------------------------------------------------
|
|
virtual void InitDefaultValues();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is used to search for the label with a
|
|
// specified ID.
|
|
// Parameters:
|
|
// nLabelID - An int that contains the label ID.
|
|
// Returns:
|
|
// A pointer to a CXTPCalendarEventLabel object or NULL.
|
|
//-----------------------------------------------------------------------
|
|
CXTPCalendarEventLabel* Find(int nLabelID) const;
|
|
protected:
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Finds label index in the internal array by its ID.
|
|
// Parameters:
|
|
// nLabelID - Label ID
|
|
// Returns:
|
|
// Label index in the internal label array.
|
|
// See Also: Find
|
|
//-----------------------------------------------------------------------
|
|
int FindIndex(int nLabelID) const;
|
|
|
|
};
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// This class define Calendar Event Category properties.
|
|
// Visual effects for Event Categories (event and day's cells background
|
|
// colors) implemented in Office 2007 theme only. If one or more categories
|
|
// set for event - the category's colors are used, otherwise label's colors
|
|
// used (is label defined). For Office 2003 theme label's colors used in
|
|
// any case.
|
|
// See Also: CXTPCalendarEvent, CXTPCalendarEventCategories
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTPCalendarEventCategory : public CXTPCmdTarget
|
|
{
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
DECLARE_DYNCREATE(CXTPCalendarEventCategory)
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
|
|
public:
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Default class constructor.
|
|
// Parameters:
|
|
// nID - Category identifier.
|
|
// pcszName - Category name.
|
|
// clrBorder - Event border color.
|
|
// clrBkBase - Base color to calculate few background colors for event
|
|
// background and other elements.
|
|
//-----------------------------------------------------------------------
|
|
CXTPCalendarEventCategory(UINT nID = 0, LPCTSTR pcszName = _T(""), COLORREF clrBorder = 0,
|
|
COLORREF clrBkBase = 0);
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Default class destructor.
|
|
//-----------------------------------------------------------------------
|
|
virtual ~CXTPCalendarEventCategory();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is used to obtain a unique category ID.
|
|
// Returns:
|
|
// A unique category ID.
|
|
// See Also: SetID
|
|
//-----------------------------------------------------------------------
|
|
UINT GetID() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is used to set a unique category ID.
|
|
// Parameters:
|
|
// nID - A unique category ID.
|
|
// See Also: GetID
|
|
//-----------------------------------------------------------------------
|
|
void SetID(UINT nID);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is used to obtain a category name.
|
|
// Returns:
|
|
// A category name.
|
|
// See Also: SetName
|
|
//-----------------------------------------------------------------------
|
|
CString GetName() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is used to set a category name.
|
|
// Parameters:
|
|
// pcszName - A category name.
|
|
// See Also: GetName
|
|
//-----------------------------------------------------------------------
|
|
void SetName(LPCTSTR pcszName);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is used to obtain an event border color.
|
|
// Returns:
|
|
// An event border color.
|
|
// See Also: SetBorderColor
|
|
//-----------------------------------------------------------------------
|
|
virtual COLORREF GetBorderColor() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is used to set an event border color.
|
|
// Parameters:
|
|
// clrColor - An event border color.
|
|
// See Also: GetBorderColor
|
|
//-----------------------------------------------------------------------
|
|
virtual void SetBorderColor(COLORREF clrColor);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is used to obtain a background base color.
|
|
// Returns:
|
|
// A background base color.
|
|
// See Also: SetBkBaseColor
|
|
//-----------------------------------------------------------------------
|
|
virtual COLORREF GetBkBaseColor() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is used to set a background base color.
|
|
// Parameters:
|
|
// clrColor - A background base color.
|
|
// See Also: GetBkBaseColor
|
|
//-----------------------------------------------------------------------
|
|
virtual void SetBkBaseColor(COLORREF clrColor);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is used to obtain an event background color.
|
|
// Returns:
|
|
// An event background gradient color.
|
|
// See Also: GetBkBaseColor, SetBkBaseColor
|
|
//-----------------------------------------------------------------------
|
|
virtual CXTPPaintManagerColorGradient& GetBackgroundColor();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is used to obtain All Day Events area background color.
|
|
// Returns:
|
|
// All Day Events area background color.
|
|
// See Also: GetBkBaseColor, SetBkBaseColor
|
|
//-----------------------------------------------------------------------
|
|
virtual COLORREF GetBkColorAllDayEvents() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is used to obtain Day View Work Cell background color.
|
|
// Returns:
|
|
// A Day View Work Cell background color.
|
|
// See Also: GetBkBaseColor, SetBkBaseColor
|
|
//-----------------------------------------------------------------------
|
|
virtual COLORREF GetBkColorWorkCell() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is used to obtain Day View NonWork Cell background color.
|
|
// Returns:
|
|
// A Day View NonWork Cell background color.
|
|
// See Also: GetBkBaseColor, SetBkBaseColor
|
|
//-----------------------------------------------------------------------
|
|
virtual COLORREF GetBkColorNonWorkCell() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is used to obtain Day View Cell border color.
|
|
// Returns:
|
|
// A Day View Cell border color.
|
|
// See Also: GetBkBaseColor, SetBkBaseColor
|
|
//-----------------------------------------------------------------------
|
|
virtual COLORREF GetColorCellBorder() const;
|
|
|
|
protected:
|
|
// nID -
|
|
// pcszName - Category name.
|
|
// clrBorder - Event border color.
|
|
// clrBkBase - Base color to calculate few background colors for event
|
|
// background and other elements.
|
|
|
|
UINT m_nID; // Stores category identifier.
|
|
CString m_strName; // Stores category name.
|
|
|
|
COLORREF m_clrBorder; // Stores Event border color.
|
|
COLORREF m_clrBkBase; // Stores Base color to calculate few background colors for event background and other elements.
|
|
|
|
CXTPPaintManagerColorGradient m_grclrBackground; // Stores an event background gradient color.
|
|
|
|
protected:
|
|
};
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// This class is used as a collection of CXTPCalendarEventCategory
|
|
// objects.
|
|
// See Also: CXTPCalendarEventCategory, CXTPCalendarEvent
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTPCalendarEventCategories : public
|
|
CXTPCalendarPtrCollectionT<CXTPCalendarEventCategory>
|
|
{
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
DECLARE_DYNCREATE(CXTPCalendarEventCategories)
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
|
|
protected:
|
|
//CXTPCalendarEventCategories(BOOL bDefaultColorsSet);
|
|
|
|
public:
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Default class constructor.
|
|
//-----------------------------------------------------------------------
|
|
CXTPCalendarEventCategories();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Default class destructor.
|
|
// Remarks:
|
|
// Handles class members deallocation.
|
|
//-----------------------------------------------------------------------
|
|
virtual ~CXTPCalendarEventCategories();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is used to fill the collection using
|
|
// a default label list.
|
|
//-----------------------------------------------------------------------
|
|
virtual void InitDefaultValues();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is used to search for the event category with
|
|
// a specified ID.
|
|
// Parameters:
|
|
// nID - An UINT that contains the category ID.
|
|
// Returns:
|
|
// A pointer to a CXTPCalendarEventCategory object or NULL.
|
|
//-----------------------------------------------------------------------
|
|
virtual CXTPCalendarEventCategory* Find(UINT nID) const;
|
|
|
|
protected:
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Finds event category index in the collection by its ID.
|
|
// Parameters:
|
|
// nID - An UINT that contains the category ID.
|
|
// Returns:
|
|
// Category index in the collection.
|
|
// See Also: Find
|
|
//-----------------------------------------------------------------------
|
|
virtual int FindIndex(UINT nID) const;
|
|
|
|
protected:
|
|
CString LoadCategoryName(UINT nIDResource) const;
|
|
|
|
};
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// This class represents the collection of UINT elements.
|
|
// Remarks:
|
|
// It also implements and some useful operations on elements.
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTPCalendarUIntArray : public CXTPArrayT<UINT, UINT>
|
|
{
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
DECLARE_DYNAMIC(CXTPCalendarUIntArray)
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
public:
|
|
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
typedef CXTPArrayT<UINT, UINT> TBase;
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member function to find ID in the collection.
|
|
// Parameters:
|
|
// uID - ID to find.
|
|
// Returns:
|
|
// Zero based index in the collection or -1 if element does not find.
|
|
//-----------------------------------------------------------------------
|
|
int Find(UINT uID) const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member function to remove ID from the collection.
|
|
// Parameters:
|
|
// uID - ID to remove.
|
|
// Returns:
|
|
// TRUE if specified ID find and removed, FALSE otherwise.
|
|
// See Also: CArray::RemoveAt, CArray::RemoveAll
|
|
//-----------------------------------------------------------------------
|
|
virtual BOOL RemoveID(UINT uID);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member function to store collection data as comma separated
|
|
// string.
|
|
// Returns:
|
|
// Comma separated string with collection elements.
|
|
// See Also: LoadFromString
|
|
//-----------------------------------------------------------------------
|
|
virtual CString SaveToString() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member function to read collection data from comma separated
|
|
// string.
|
|
// Parameters:
|
|
// pcszData - String with collection data.
|
|
// See Also: SaveToString
|
|
//-----------------------------------------------------------------------
|
|
virtual void LoadFromString(LPCTSTR pcszData);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member function to Store/Load an collection data using the
|
|
// specified data object.
|
|
// Parameters:
|
|
// pPX - Source or destination CXTPPropExchange data object reference.
|
|
// pcszSection - Section name for elements set.
|
|
// pcszElement - Element value property name.
|
|
// Remarks:
|
|
// This member function is used to store or load event data to or
|
|
// from a storage.
|
|
//-----------------------------------------------------------------------
|
|
virtual void DoPropExchange(CXTPPropExchange* pPX, LPCTSTR pcszSection, LPCTSTR pcszElement);
|
|
|
|
protected:
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//===========================================================================
|
|
// Summary:
|
|
// This class represents the collection of custom icons IDs.
|
|
// Remarks:
|
|
// It also implements and some useful operations on custom icons
|
|
// IDs collection.
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTPCalendarIconIDs : public CXTPCalendarUIntArray
|
|
{
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
DECLARE_DYNAMIC(CXTPCalendarIconIDs)
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
public:
|
|
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
typedef CXTPCalendarUIntArray TBase;
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Default object constructor.
|
|
// See Also: ~CXTPCalendarIconIDs()
|
|
//-----------------------------------------------------------------------
|
|
CXTPCalendarIconIDs();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Default object destructor.
|
|
// See Also: CXTPCalendarIconIDs()
|
|
//-----------------------------------------------------------------------
|
|
virtual ~CXTPCalendarIconIDs();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member function to Store/Load a collection data using the
|
|
// specified data object.
|
|
// Parameters:
|
|
// pPX - Source or destination CXTPPropExchange data object reference.
|
|
// Remarks:
|
|
// This member function is used to store or load event data to or
|
|
// from a storage.
|
|
//-----------------------------------------------------------------------
|
|
virtual void DoPropExchange(CXTPPropExchange* pPX);
|
|
|
|
protected:
|
|
};
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// This class represents the collection of event categories IDs.
|
|
// Remarks:
|
|
// It also implements and some useful operations.
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTPCalendarEventCategoryIDs : public CXTPCalendarUIntArray
|
|
{
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
DECLARE_DYNAMIC(CXTPCalendarEventCategoryIDs)
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
public:
|
|
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
typedef CXTPCalendarUIntArray TBase;
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Default object constructor.
|
|
//-----------------------------------------------------------------------
|
|
CXTPCalendarEventCategoryIDs();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Default object destructor.
|
|
//-----------------------------------------------------------------------
|
|
virtual ~CXTPCalendarEventCategoryIDs();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member function to Store/Load a collection data using the
|
|
// specified data object.
|
|
// Parameters:
|
|
// pPX - Source or destination CXTPPropExchange data object reference.
|
|
// Remarks:
|
|
// This member function is used to store or load event data to or
|
|
// from a storage.
|
|
//-----------------------------------------------------------------------
|
|
virtual void DoPropExchange(CXTPPropExchange* pPX);
|
|
|
|
protected:
|
|
|
|
};
|
|
|
|
AFX_INLINE void CXTPCalendarIconIDs::DoPropExchange(CXTPPropExchange* pPX) {
|
|
TBase::DoPropExchange(pPX, _T("CustomIcons"), _T("IconID"));
|
|
}
|
|
AFX_INLINE void CXTPCalendarEventCategoryIDs::DoPropExchange(CXTPPropExchange* pPX) {
|
|
TBase::DoPropExchange(pPX, _T("EventCategories"), _T("CategoryID"));
|
|
}
|
|
AFX_INLINE UINT CXTPCalendarEventCategory::GetID() const {
|
|
return m_nID;
|
|
}
|
|
AFX_INLINE void CXTPCalendarEventCategory::SetID(UINT nID) {
|
|
m_nID = nID;
|
|
}
|
|
AFX_INLINE CString CXTPCalendarEventCategory::GetName() const {
|
|
return m_strName;
|
|
}
|
|
AFX_INLINE void CXTPCalendarEventCategory::SetName(LPCTSTR pcszName) {
|
|
m_strName = pcszName;
|
|
}
|
|
AFX_INLINE COLORREF CXTPCalendarEventCategory::GetBorderColor() const {
|
|
return m_clrBorder;
|
|
}
|
|
AFX_INLINE void CXTPCalendarEventCategory::SetBorderColor(COLORREF clrColor) {
|
|
m_clrBorder = clrColor;
|
|
}
|
|
AFX_INLINE COLORREF CXTPCalendarEventCategory::GetBkBaseColor() const {
|
|
return m_clrBkBase;
|
|
}
|
|
AFX_INLINE void CXTPCalendarEventCategory::SetBkBaseColor(COLORREF clrColor) {
|
|
m_clrBkBase = clrColor;
|
|
}
|
|
|
|
|
|
#endif // !defined(_XTPCALENDAREVENTLABEL_H__)
|