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.

282 lines
11 KiB
C++

// 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); //<COMBINE AdjustLayout>
//-----------------------------------------------------------------------
// 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_)