// XTPCalendarWeekViewDay.h: interface for the CXTPCalendarWeekViewDay class. // // 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(__XTPCALENDARWEEKVIEWDAY_H_) #define __XTPCALENDARWEEKVIEWDAY_H_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 //}}AFX_CODEJOCK_PRIVATE class CXTPCalendarWeekView; class CXTPCalendarWeekViewDay; class CXTPCalendarWeekViewEvent; //=========================================================================== // Summary: // This class represents a single resource view portion of the Calendar // Week View. // Remarks: // It represents a specific view of the CalendarView's associated events // data grouped by one day and one resource group. And provides basic // functionality on this data using user input through keyboard and mouse. // // See Also: CXTPCalendarWeekViewDay //=========================================================================== class _XTP_EXT_CLASS CXTPCalendarWeekViewGroup : public CXTPCalendarViewGroupT< CXTPCalendarWeekViewDay, CXTPCalendarWeekViewEvent, CXTPCalendarWeekViewGroup > { public: //------------------------------------------------------------------------ // Summary: // Base class type definition. //------------------------------------------------------------------------ typedef CXTPCalendarViewGroupT< CXTPCalendarWeekViewDay, CXTPCalendarWeekViewEvent, CXTPCalendarWeekViewGroup > TBase; //----------------------------------------------------------------------- // Summary: // Default object constructor. // Construct CXTPCalendarWeekViewGroup object. // Parameters: // pViewDay - Pointer to CXTPCalendarWeekViewDay object. //----------------------------------------------------------------------- CXTPCalendarWeekViewGroup(CXTPCalendarWeekViewDay* pViewDay); //----------------------------------------------------------------------- // Summary: // Default class destructor. // Remarks: // Handles class members deallocation. //----------------------------------------------------------------------- virtual ~CXTPCalendarWeekViewGroup(); protected: // Summary: // This member function is used to fill a XTP_CALENDAR_HITTESTINFO structure. // Parameters: // pHitTest - A pointer to a XTP_CALENDAR_HITTESTINFO struct. // Remarks: // Call this member function to gather hit test information from // the week view group. // See Also: XTP_CALENDAR_HITTESTINFO //----------------------------------------------------------------------- virtual void FillHitTestEx(XTP_CALENDAR_HITTESTINFO* pHitTest) const; private: //----------------------------------------------------------------------- // Summary: // This member function is used to obtain a pointer to itself. // Remarks: // Call this member function to get the "this" pointer. // Returns: // Pointer to a CXTPCalendarWeekViewGroup. //----------------------------------------------------------------------- virtual CXTPCalendarWeekViewGroup* GetPThis(); }; AFX_INLINE CXTPCalendarWeekViewGroup* CXTPCalendarWeekViewGroup::GetPThis() { return this; } //=========================================================================== // Summary: // This class represents a day view portion of the CalendarWeekView. // Remarks: // It represents a specific view of the CalendarView's associated events // data grouped by one day and provides basic functionality on this // data using user input through the keyboard and mouse. // // CXTPCalendarWeekViewDay is based on the CXTPCalendarViewDayT template // class. CXTPCalendarWeekViewDay inherits basic behavior from the // CXTPCalendarViewDayT class. Furthermore, class CXTPCalendarWeekViewDayand // overlaps and adds some functionality for its own behavior and look. // // See Also: CXTPCalendarViewDay, CXTPCalendarViewDayT //=========================================================================== class _XTP_EXT_CLASS CXTPCalendarWeekViewDay : public CXTPCalendarViewDayT< CXTPCalendarWeekView, CXTPCalendarWeekViewGroup, XTP_CALENDAR_HITTESTINFO, CXTPCalendarWeekViewDay > { //{{AFX_CODEJOCK_PRIVATE friend class CXTPCalendarWeekViewEvent; DECLARE_DYNAMIC(CXTPCalendarWeekViewDay) //}}AFX_CODEJOCK_PRIVATE public: //------------------------------------------------------------------------ // Summary: // Base class type definition. //------------------------------------------------------------------------ typedef CXTPCalendarViewDayT< CXTPCalendarWeekView, CXTPCalendarWeekViewGroup, XTP_CALENDAR_HITTESTINFO, CXTPCalendarWeekViewDay> TBase; //----------------------------------------------------------------------- // Summary: // Default object constructor. Construct CXTPCalendarWeekViewDay // object. // Parameters: // pWeekView - Pointer to CXTPCalendarWeekView object. // See Also: ~CXTPCalendarWeekViewDay() //----------------------------------------------------------------------- CXTPCalendarWeekViewDay(CXTPCalendarWeekView* pWeekView); //----------------------------------------------------------------------- // Summary: // Default class destructor. // Remarks: // Handles member items deallocation. //----------------------------------------------------------------------- virtual ~CXTPCalendarWeekViewDay(); //----------------------------------------------------------------------- // Summary: // This member function is used to fill a XTP_CALENDAR_HITTESTINFO structure. // Parameters: // pInfo - A pointer to a XTP_CALENDAR_HITTESTINFO struct. // Remarks: // Call this member function to gather hit test information from // the week view. // See Also: XTP_CALENDAR_HITTESTINFO //----------------------------------------------------------------------- virtual void FillHitTestEx(XTP_CALENDAR_HITTESTINFO* pInfo) const; //----------------------------------------------------------------------- // Summary: // This member function is used to determine which view item, // if any, is at the specified position index, and returns additional // info in the XTP_CALENDAR_HITTESTINFO template object. // Parameters: // pt - A CPoint that contains the coordinates of the point test. // pHitTest - A pointer to a XTP_CALENDAR_HITTESTINFO structure. // Remarks: // Implements standard functionality for the HitTestEx method. // Returns: // A BOOL. TRUE if the item is found. FALSE otherwise. // See Also: XTP_CALENDAR_HITTESTINFO //----------------------------------------------------------------------- virtual BOOL HitTestEx(CPoint pt, XTP_CALENDAR_HITTESTINFO* pHitTest) const; //----------------------------------------------------------------------- // Summary: // This member function is used to adjust the view's layout depending // on the provided rectangle and also calls AdjustLayout() for all // sub-items. // Parameters: // pDC - A pointer to a valid device context. // rcDay - A CRect object that contains the rectangle coordinates // used to draw the day view. // Remarks: // Call Populate(COleDateTime dtDayDate) prior to calling AdjustLayout(). //----------------------------------------------------------------------- virtual void AdjustLayout(CDC* pDC, const CRect& rcDay); virtual void AdjustLayout2(CDC* pDC, const CRect& rcDay); // //----------------------------------------------------------------------- // Summary: // This member function is used to draw the view content using the // specified device context. // Parameters: // pDC - A pointer to a valid device context. // Remarks: // Call AdjustLayout() before calling Draw(). // See Also: AdjustLayout(CRect rcDay) //----------------------------------------------------------------------- virtual void Draw(CDC* pDC); //----------------------------------------------------------------------- // Summary: // This function is used to obtain a portion of a day rectangle // used to draw event views. // Returns: // A CRect object that contains the rectangle coordinates. //----------------------------------------------------------------------- CRect GetDayEventsRect() const; //----------------------------------------------------------------------- // Summary: // This member function is used to obtain a single day's view caption. // Returns: // A CString object that contains the day's view caption. //----------------------------------------------------------------------- virtual CString GetCaption() const; protected: //----------------------------------------------------------------------- // Summary: // This member function is used to processes left mouse button events. // Parameters: // nFlags - A UINT that is used to indicates whether various virtual // keys are down. // point - A CPoint that specifies the x- and y- coordinates of the cursor. // These coordinates are always relative to the // upper-left corner of the window. // Returns: // TRUE if the message is handled properly, FALSE else. // Remarks: // This method is called by the CalendarControl when the user // presses the left mouse button. //----------------------------------------------------------------------- virtual BOOL OnLButtonDown(UINT nFlags, CPoint point); //----------------------------------------------------------------------- // Summary: // This member function is used to processes mouse movement events. // Parameters: // nFlags - A UINT that is used to indicate whether various virtual // keys are down. // point - A CPoint that specifies the x- and y- coordinates of the cursor. // These coordinates are always relative to the // upper-left corner of the window. // Remarks: // This method is called by the CalendarControl when the user // moves the mouse cursor or stylus. //----------------------------------------------------------------------- virtual void OnMouseMove(UINT nFlags, CPoint point); //----------------------------------------------------------------------- // Summary: // This member function is used to obtain a pointer to itself. // Returns: // A pointer to a CXTPCalendarWeekViewDay object. //----------------------------------------------------------------------- virtual CXTPCalendarWeekViewDay* GetPThis(); }; //////////////////////////////////////////////////////////////////////////// AFX_INLINE CXTPCalendarWeekViewDay* CXTPCalendarWeekViewDay::GetPThis() { return this; } #endif // !defined(__XTPCALENDARWEEKVIEWDAY_H_)