XTPCalendarEventLabel.h
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:23k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // XTPCalendarEventLabel.h: interface for the CXTPCalendarEventLabel and
  2. // CXTPCalendarEventLabels classes.
  3. //
  4. // This file is a part of the XTREME CALENDAR MFC class library.
  5. // (c)1998-2008 Codejock Software, All Rights Reserved.
  6. //
  7. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  8. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  9. // CONSENT OF CODEJOCK SOFTWARE.
  10. //
  11. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  12. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  13. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  14. // SINGLE COMPUTER.
  15. //
  16. // CONTACT INFORMATION:
  17. // support@codejock.com
  18. // http://www.codejock.com
  19. //
  20. /////////////////////////////////////////////////////////////////////////////
  21. //{{AFX_CODEJOCK_PRIVATE
  22. #if !defined(_XTPCALENDAREVENTLABEL_H__)
  23. #define _XTPCALENDAREVENTLABEL_H__
  24. //}}AFX_CODEJOCK_PRIVATE
  25. #if _MSC_VER > 1000
  26. #pragma once
  27. #endif // _MSC_VER > 1000
  28. #include "XTPCalendarPtrCollectionT.h"
  29. #include "Common/XTPColorManager.h"
  30. /////////////////////////////////////////////////////////////////////////////
  31. class CXTPCalendarEventLabel;
  32. class CXTPCalendarEventLabels;
  33. class CXTPPropExchange;
  34. //===========================================================================
  35. // Summary:
  36. //     This class define Calendar Event label properties.
  37. // See Also: CXTPCalendarEvent
  38. //===========================================================================
  39. class _XTP_EXT_CLASS CXTPCalendarEventLabel : public CXTPCmdTarget
  40. {
  41. //{{AFX_CODEJOCK_PRIVATE
  42. DECLARE_DYNAMIC(CXTPCalendarEventLabel)
  43. //}}AFX_CODEJOCK_PRIVATE
  44. public:
  45. int         m_nLabelID; // Label ID.
  46. COLORREF    m_clrColor; // Label color used to fill the event background.
  47. CString     m_strName;  // Label name.
  48. //-----------------------------------------------------------------------
  49. // Summary:
  50. //     Default class constructor.
  51. // Parameters:
  52. //     nID      - Label ID.
  53. //     clrColor - Label color.
  54. //     pcszName - Label name.
  55. //-----------------------------------------------------------------------
  56. CXTPCalendarEventLabel(int nID = 0, COLORREF clrColor = 0, LPCTSTR pcszName = _T(""));
  57. //-----------------------------------------------------------------------
  58. // Summary:
  59. //     Default class destructor.
  60. // Remarks:
  61. //     Handles class member deallocation.
  62. //-----------------------------------------------------------------------
  63. virtual ~CXTPCalendarEventLabel() {};
  64. //-----------------------------------------------------------------------
  65. // Summary:
  66. //     This member function is used to set new object properties.
  67. // Parameters:
  68. //     rSrc - Reference to the source object.
  69. // Remarks:
  70. //     This is the overloaded assignment operator.
  71. // Returns:
  72. //     Reference to this class instance.
  73. //-----------------------------------------------------------------------
  74. const CXTPCalendarEventLabel& operator=(const CXTPCalendarEventLabel& rSrc)
  75. {
  76. m_nLabelID = rSrc.m_nLabelID;
  77. m_clrColor = rSrc.m_clrColor;
  78. m_strName = rSrc.m_strName;
  79. return *this;
  80. }
  81. protected:
  82. };
  83. //===========================================================================
  84. /////////////////////////////////////////////////////////////////////////////
  85. //===========================================================================
  86. // Summary:
  87. //     This class is used as a collection of CXTPCalendarEventLabel
  88. //     objects.
  89. // See Also: CXTPCalendarEventLabel, CXTPCalendarEvent
  90. //===========================================================================
  91. class _XTP_EXT_CLASS CXTPCalendarEventLabels :
  92. public CXTPCalendarPtrCollectionT<CXTPCalendarEventLabel>
  93. {
  94. //{{AFX_CODEJOCK_PRIVATE
  95. DECLARE_DYNAMIC(CXTPCalendarEventLabels)
  96. //}}AFX_CODEJOCK_PRIVATE
  97. public:
  98. //-----------------------------------------------------------------------
  99. // Summary:
  100. //     Default class constructor.
  101. //-----------------------------------------------------------------------
  102. CXTPCalendarEventLabels();
  103. //-----------------------------------------------------------------------
  104. // Summary:
  105. //     Default class destructor.
  106. // Remarks:
  107. //     Handles class members deallocation.
  108. //-----------------------------------------------------------------------
  109. virtual ~CXTPCalendarEventLabels();
  110. //-----------------------------------------------------------------------
  111. // Summary:
  112. //     This member function is used to fill the collection using
  113. //     a default label list.
  114. //-----------------------------------------------------------------------
  115. virtual void InitDefaultValues();
  116. //-----------------------------------------------------------------------
  117. // Summary:
  118. //     This member function is used to search for the label with a
  119. //     specified ID.
  120. // Parameters:
  121. //     nLabelID - An int that contains the label ID.
  122. // Returns:
  123. //     A pointer to a CXTPCalendarEventLabel object or NULL.
  124. //-----------------------------------------------------------------------
  125. CXTPCalendarEventLabel* Find(int nLabelID) const;
  126. protected:
  127. //-----------------------------------------------------------------------
  128. // Summary:
  129. //     Finds label index in the internal array by its ID.
  130. // Parameters:
  131. //     nLabelID - Label ID
  132. // Returns:
  133. //     Label index in the internal label array.
  134. // See Also: Find
  135. //-----------------------------------------------------------------------
  136. int FindIndex(int nLabelID) const;
  137. };
  138. //===========================================================================
  139. // Summary:
  140. //     This class define Calendar Event Category properties.
  141. //     Visual effects for Event Categories (event and day's cells background
  142. //     colors) implemented in Office 2007 theme only. If one or more categories
  143. //     set for event - the category's colors are used, otherwise label's colors
  144. //     used (is label defined). For Office 2003 theme label's colors used in
  145. //     any case.
  146. // See Also: CXTPCalendarEvent, CXTPCalendarEventCategories
  147. //===========================================================================
  148. class _XTP_EXT_CLASS CXTPCalendarEventCategory : public CXTPCmdTarget
  149. {
  150. //{{AFX_CODEJOCK_PRIVATE
  151. DECLARE_DYNCREATE(CXTPCalendarEventCategory)
  152. //}}AFX_CODEJOCK_PRIVATE
  153. public:
  154. //-----------------------------------------------------------------------
  155. // Summary:
  156. //      Default class constructor.
  157. // Parameters:
  158. //      nID         - Category identifier.
  159. //      pcszName    - Category name.
  160. //      clrBorder   - Event border color.
  161. //      clrBkBase   - Base color to calculate few background colors for event
  162. //                    background and other elements.
  163. //-----------------------------------------------------------------------
  164. CXTPCalendarEventCategory(UINT nID = 0, LPCTSTR pcszName = _T(""), COLORREF clrBorder = 0,
  165.   COLORREF clrBkBase = 0);
  166. //-----------------------------------------------------------------------
  167. // Summary:
  168. //     Default class destructor.
  169. //-----------------------------------------------------------------------
  170. virtual ~CXTPCalendarEventCategory();
  171. //-----------------------------------------------------------------------
  172. // Summary:
  173. //     This member function is used to obtain a unique category ID.
  174. // Returns:
  175. //     A unique category ID.
  176. // See Also: SetID
  177. //-----------------------------------------------------------------------
  178. virtual UINT GetID() const;
  179. //-----------------------------------------------------------------------
  180. // Summary:
  181. //     This member function is used to set a unique category ID.
  182. // Parameters:
  183. //     nID - A unique category ID.
  184. // See Also: GetID
  185. //-----------------------------------------------------------------------
  186. virtual void SetID(UINT nID);
  187. //-----------------------------------------------------------------------
  188. // Summary:
  189. //     This member function is used to obtain a category name.
  190. // Returns:
  191. //     A category name.
  192. // See Also: SetName
  193. //-----------------------------------------------------------------------
  194. virtual LPCTSTR GetName() const;
  195. //-----------------------------------------------------------------------
  196. // Summary:
  197. //     This member function is used to set a category name.
  198. // Parameters:
  199. //     pcszName - A category name.
  200. // See Also: GetName
  201. //-----------------------------------------------------------------------
  202. virtual void SetName(LPCTSTR pcszName);
  203. //-----------------------------------------------------------------------
  204. // Summary:
  205. //     This member function is used to obtain an event border color.
  206. // Returns:
  207. //     An event border color.
  208. // See Also: SetBorderColor
  209. //-----------------------------------------------------------------------
  210. virtual COLORREF GetBorderColor() const;
  211. //-----------------------------------------------------------------------
  212. // Summary:
  213. //     This member function is used to set an event border color.
  214. // Parameters:
  215. //     clrColor - An event border color.
  216. // See Also: GetBorderColor
  217. //-----------------------------------------------------------------------
  218. virtual void SetBorderColor(COLORREF clrColor);
  219. //-----------------------------------------------------------------------
  220. // Summary:
  221. //     This member function is used to obtain a background base color.
  222. // Returns:
  223. //     A background base color.
  224. // See Also: SetBkBaseColor
  225. //-----------------------------------------------------------------------
  226. virtual COLORREF GetBkBaseColor() const;
  227. //-----------------------------------------------------------------------
  228. // Summary:
  229. //     This member function is used to set a background base color.
  230. // Parameters:
  231. //     clrColor - A background base color.
  232. // See Also: GetBkBaseColor
  233. //-----------------------------------------------------------------------
  234. virtual void SetBkBaseColor(COLORREF clrColor);
  235. //-----------------------------------------------------------------------
  236. // Summary:
  237. //     This member function is used to obtain an event background color.
  238. // Returns:
  239. //     An event background gradient color.
  240. // See Also: GetBkBaseColor, SetBkBaseColor
  241. //-----------------------------------------------------------------------
  242. virtual CXTPPaintManagerColorGradient& GetBackgroundColor();
  243. //-----------------------------------------------------------------------
  244. // Summary:
  245. //     This member function is used to obtain All Day Events area background color.
  246. // Returns:
  247. //     All Day Events area background color.
  248. // See Also: GetBkBaseColor, SetBkBaseColor
  249. //-----------------------------------------------------------------------
  250. virtual COLORREF GetBkColorAllDayEvents();
  251. //-----------------------------------------------------------------------
  252. // Summary:
  253. //     This member function is used to obtain Day View Work Cell background color.
  254. // Returns:
  255. //     A Day View Work Cell background color.
  256. // See Also: GetBkBaseColor, SetBkBaseColor
  257. //-----------------------------------------------------------------------
  258. virtual COLORREF GetBkColorWorkCell();
  259. //-----------------------------------------------------------------------
  260. // Summary:
  261. //     This member function is used to obtain Day View NonWork Cell background color.
  262. // Returns:
  263. //     A Day View NonWork Cell background color.
  264. // See Also: GetBkBaseColor, SetBkBaseColor
  265. //-----------------------------------------------------------------------
  266. virtual COLORREF GetBkColorNonWorkCell();
  267. //-----------------------------------------------------------------------
  268. // Summary:
  269. //     This member function is used to obtain Day View Cell border color.
  270. // Returns:
  271. //     A Day View Cell border color.
  272. // See Also: GetBkBaseColor, SetBkBaseColor
  273. //-----------------------------------------------------------------------
  274. virtual COLORREF GetColorCellBorder();
  275. protected:
  276. //      nID         -
  277. //      pcszName    - Category name.
  278. //      clrBorder   - Event border color.
  279. //      clrBkBase   - Base color to calculate few background colors for event
  280. //                    background and other elements.
  281. UINT     m_nID;         // Stores category identifier.
  282. CString  m_strName;     // Stores category name.
  283. COLORREF m_clrBorder;   // Stores Event border color.
  284. COLORREF m_clrBkBase;   // Stores Base color to calculate few background colors for event background and other elements.
  285. CXTPPaintManagerColorGradient m_grclrBackground; // Stores an event background gradient color.
  286. protected:
  287. };
  288. //===========================================================================
  289. // Summary:
  290. //     This class is used as a collection of CXTPCalendarEventCategory
  291. //     objects.
  292. // See Also: CXTPCalendarEventCategory, CXTPCalendarEvent
  293. //===========================================================================
  294. class _XTP_EXT_CLASS CXTPCalendarEventCategories : public
  295. CXTPCalendarPtrCollectionT<CXTPCalendarEventCategory>
  296. {
  297. //{{AFX_CODEJOCK_PRIVATE
  298. DECLARE_DYNCREATE(CXTPCalendarEventCategories)
  299. //}}AFX_CODEJOCK_PRIVATE
  300. protected:
  301. //CXTPCalendarEventCategories(BOOL bDefaultColorsSet);
  302. public:
  303. //-----------------------------------------------------------------------
  304. // Summary:
  305. //     Default class constructor.
  306. //-----------------------------------------------------------------------
  307. CXTPCalendarEventCategories();
  308. //-----------------------------------------------------------------------
  309. // Summary:
  310. //     Default class destructor.
  311. // Remarks:
  312. //     Handles class members deallocation.
  313. //-----------------------------------------------------------------------
  314. virtual ~CXTPCalendarEventCategories();
  315. //-----------------------------------------------------------------------
  316. // Summary:
  317. //     This member function is used to fill the collection using
  318. //     a default label list.
  319. //-----------------------------------------------------------------------
  320. virtual void InitDefaultValues();
  321. //-----------------------------------------------------------------------
  322. // Summary:
  323. //     This member function is used to search for the event category with
  324. //     a specified ID.
  325. // Parameters:
  326. //     nID - An UINT that contains the category ID.
  327. // Returns:
  328. //     A pointer to a CXTPCalendarEventCategory object or NULL.
  329. //-----------------------------------------------------------------------
  330. virtual CXTPCalendarEventCategory* Find(UINT nID) const;
  331. //virtual CXTPCalendarEventCategories* GetDefaultColorsSet() const;
  332. protected:
  333. //-----------------------------------------------------------------------
  334. // Summary:
  335. //     Finds event category index in the collection by its ID.
  336. // Parameters:
  337. //     nID - An UINT that contains the category ID.
  338. // Returns:
  339. //     Category index in the collection.
  340. // See Also: Find
  341. //-----------------------------------------------------------------------
  342. virtual int FindIndex(UINT nID) const;
  343. protected:
  344. CString LoadCategoryName(UINT nIDResource) const;
  345. };
  346. //===========================================================================
  347. // Summary:
  348. //     This class represents the collection of UINT elements.
  349. // Remarks:
  350. //     It also implements and some useful operations on elements.
  351. //===========================================================================
  352. class _XTP_EXT_CLASS CXTPCalendarUIntArray : public CXTPArrayT<UINT, UINT>
  353. {
  354. //{{AFX_CODEJOCK_PRIVATE
  355. DECLARE_DYNAMIC(CXTPCalendarUIntArray)
  356. //}}AFX_CODEJOCK_PRIVATE
  357. public:
  358. //{{AFX_CODEJOCK_PRIVATE
  359. typedef CXTPArrayT<UINT, UINT> TBase;
  360. //}}AFX_CODEJOCK_PRIVATE
  361. //-----------------------------------------------------------------------
  362. // Summary:
  363. //     Call this member function to find ID in the collection.
  364. // Parameters:
  365. //     uID - ID to find.
  366. // Returns:
  367. //     Zero based index in the collection or -1 if element does not find.
  368. //-----------------------------------------------------------------------
  369. virtual int Find(UINT uID) const;
  370. //-----------------------------------------------------------------------
  371. // Summary:
  372. //     Call this member function to remove ID from the collection.
  373. // Parameters:
  374. //     uID - ID to remove.
  375. // Returns:
  376. //     TRUE if specified ID find and removed, FALSE otherwise.
  377. // See Also: CArray::RemoveAt, CArray::RemoveAll
  378. //-----------------------------------------------------------------------
  379. virtual BOOL RemoveID(UINT uID);
  380. //-----------------------------------------------------------------------
  381. // Summary:
  382. //     Call this member function to store collection data as comma separated
  383. //     string.
  384. // Returns:
  385. //     Comma separated string with collection elements.
  386. // See Also: LoadFromString
  387. //-----------------------------------------------------------------------
  388. virtual CString SaveToString() const;
  389. //-----------------------------------------------------------------------
  390. // Summary:
  391. //     Call this member function to read collection data from comma separated
  392. //     string.
  393. // Parameters:
  394. //     pcszData - String with collection data.
  395. // See Also: SaveToString
  396. //-----------------------------------------------------------------------
  397. virtual void LoadFromString(LPCTSTR pcszData);
  398. //-----------------------------------------------------------------------
  399. // Summary:
  400. //     Call this member function to Store/Load an collection data using the
  401. //     specified data object.
  402. // Parameters:
  403. //     pPX         - Source or destination CXTPPropExchange data object reference.
  404. //     pcszSection - Section name for elements set.
  405. //     pcszElement - Element value property name.
  406. // Remarks:
  407. //     This member function is used to store or load event data to or
  408. //     from a storage.
  409. //-----------------------------------------------------------------------
  410. virtual void DoPropExchange(CXTPPropExchange* pPX, LPCTSTR pcszSection, LPCTSTR pcszElement);
  411. protected:
  412. };
  413. /////////////////////////////////////////////////////////////////////////////
  414. //===========================================================================
  415. // Summary:
  416. //     This class represents the collection of custom icons IDs.
  417. // Remarks:
  418. //     It also implements and some useful operations on custom icons
  419. //     IDs collection.
  420. //===========================================================================
  421. class _XTP_EXT_CLASS CXTPCalendarIconIDs : public CXTPCalendarUIntArray
  422. {
  423. //{{AFX_CODEJOCK_PRIVATE
  424. DECLARE_DYNAMIC(CXTPCalendarIconIDs)
  425. //}}AFX_CODEJOCK_PRIVATE
  426. public:
  427. //{{AFX_CODEJOCK_PRIVATE
  428. typedef CXTPCalendarUIntArray TBase;
  429. //}}AFX_CODEJOCK_PRIVATE
  430. //-----------------------------------------------------------------------
  431. // Summary:
  432. //     Default object constructor.
  433. // See Also: ~CXTPCalendarIconIDs()
  434. //-----------------------------------------------------------------------
  435. CXTPCalendarIconIDs();
  436. //-----------------------------------------------------------------------
  437. // Summary:
  438. //     Default object destructor.
  439. // See Also: CXTPCalendarIconIDs()
  440. //-----------------------------------------------------------------------
  441. virtual ~CXTPCalendarIconIDs();
  442. //-----------------------------------------------------------------------
  443. // Summary:
  444. //     Call this member function to Store/Load a collection data using the
  445. //     specified data object.
  446. // Parameters:
  447. //     pPX      - Source or destination CXTPPropExchange data object reference.
  448. // Remarks:
  449. //     This member function is used to store or load event data to or
  450. //     from a storage.
  451. //-----------------------------------------------------------------------
  452. virtual void DoPropExchange(CXTPPropExchange* pPX);
  453. protected:
  454. };
  455. //===========================================================================
  456. // Summary:
  457. //     This class represents the collection of event categories IDs.
  458. // Remarks:
  459. //     It also implements and some useful operations.
  460. //===========================================================================
  461. class _XTP_EXT_CLASS CXTPCalendarEventCategoryIDs : public CXTPCalendarUIntArray
  462. {
  463. //{{AFX_CODEJOCK_PRIVATE
  464. DECLARE_DYNAMIC(CXTPCalendarEventCategoryIDs)
  465. //}}AFX_CODEJOCK_PRIVATE
  466. public:
  467. //{{AFX_CODEJOCK_PRIVATE
  468. typedef CXTPCalendarUIntArray TBase;
  469. //}}AFX_CODEJOCK_PRIVATE
  470. //-----------------------------------------------------------------------
  471. // Summary:
  472. //     Default object constructor.
  473. //-----------------------------------------------------------------------
  474. CXTPCalendarEventCategoryIDs();
  475. //-----------------------------------------------------------------------
  476. // Summary:
  477. //     Default object destructor.
  478. //-----------------------------------------------------------------------
  479. virtual ~CXTPCalendarEventCategoryIDs();
  480. //-----------------------------------------------------------------------
  481. // Summary:
  482. //     Call this member function to Store/Load a collection data using the
  483. //     specified data object.
  484. // Parameters:
  485. //     pPX      - Source or destination CXTPPropExchange data object reference.
  486. // Remarks:
  487. //     This member function is used to store or load event data to or
  488. //     from a storage.
  489. //-----------------------------------------------------------------------
  490. virtual void DoPropExchange(CXTPPropExchange* pPX);
  491. protected:
  492. };
  493. AFX_INLINE void CXTPCalendarIconIDs::DoPropExchange(CXTPPropExchange* pPX) {
  494. TBase::DoPropExchange(pPX, _T("CustomIcons"), _T("IconID"));
  495. }
  496. AFX_INLINE void CXTPCalendarEventCategoryIDs::DoPropExchange(CXTPPropExchange* pPX) {
  497. TBase::DoPropExchange(pPX, _T("EventCategories"), _T("CategoryID"));
  498. }
  499. AFX_INLINE UINT CXTPCalendarEventCategory::GetID() const {
  500. return m_nID;
  501. }
  502. AFX_INLINE void CXTPCalendarEventCategory::SetID(UINT nID) {
  503. m_nID = nID;
  504. }
  505. AFX_INLINE LPCTSTR CXTPCalendarEventCategory::GetName() const {
  506. return m_strName;
  507. }
  508. AFX_INLINE void CXTPCalendarEventCategory::SetName(LPCTSTR pcszName) {
  509. m_strName = pcszName;
  510. }
  511. AFX_INLINE COLORREF CXTPCalendarEventCategory::GetBorderColor() const {
  512. return m_clrBorder;
  513. }
  514. AFX_INLINE void CXTPCalendarEventCategory::SetBorderColor(COLORREF clrColor) {
  515. m_clrBorder = clrColor;
  516. }
  517. AFX_INLINE COLORREF CXTPCalendarEventCategory::GetBkBaseColor() const {
  518. return m_clrBkBase;
  519. }
  520. AFX_INLINE void CXTPCalendarEventCategory::SetBkBaseColor(COLORREF clrColor) {
  521. m_clrBkBase = clrColor;
  522. }
  523. //AFX_INLINE CXTPCalendarEventCategories* CXTPCalendarEventCategories::GetDefaultColorsSet() const {
  524. //  return m_pDefaultColorsSet;
  525. //}
  526. #endif // !defined(_XTPCALENDAREVENTLABEL_H__)