// XTPCalendarTip.h: interface for the CXTPCalendarTip 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(__XTPCalendarTip_H__) #define __XTPCalendarTip_H__ //}}AFX_CODEJOCK_PRIVATE #if _MSC_VER >= 1000 #pragma once #endif // _MSC_VER >= 1000 //=========================================================================== // Summary: // The CXTPCalendarTip class emulates the functionality of a "tool tip" // control. // Remarks: // The CXTPCalendarTip class encapsulates the functionality of // a "tip control", a small pop-up window that displays a // single line of text describing the hidden text when hovering over // an item on the report area. // // CXTPCalendarTip provides the functionality to control the // the tip text, the size of the tip window itself, and the text // font of the tip. // // This class is used by the report control internally. // // See Also: CXTPCalendarControl //=========================================================================== class _XTP_EXT_CLASS CXTPCalendarTip : public CWnd { // Construction public: //----------------------------------------------------------------------- // Summary: // Constructs a CXTPCalendarTip object. // Remarks: // Construct a CXTPCalendarTip object in two steps. // Call the constructor object and then call // Create, which initializes the window and // attaches it to the parent window. // // Example: // // Declare a local CXTPCalendarTip object. // CXTPCalendarTip wndTip; // // // Declare a dynamic CXTPCalendarTip object. // CXTPCalendarTip* pTipWnd = new CXTPCalendarTip; // // See Also: CWnd, Create, Activate //----------------------------------------------------------------------- CXTPCalendarTip(); //----------------------------------------------------------------------- // Summary: // Destroys a CXTPCalendarTip object and handles cleanup and de-allocation. //----------------------------------------------------------------------- virtual ~CXTPCalendarTip(); //----------------------------------------------------------------------- // Summary: // This member function is used to create a report tip window. // Parameters: // pParentWnd - A pointer to a CWnd that is the parent report // control window. // Remarks: // Construct an object in two steps. // Call the constructor object and then call // Create(), which initializes the window and // attaches it to the parent window. // // Example: // // void MyDialog::ShowToolTip(CRect rcTip, CXTPCalendarTip* pTipWnd) // { // if (!pTipWnd->GetSafeHwnd()) // { // pTipWnd->Create(this); // } // pTipWnd->SetHoverRect(rcTip); // pTipWnd->Activate(TRUE); // } // // Returns: // TRUE if tip window is created successfully, FALSE otherwise. // See Also: CXTPCalendarTip::CXTPCalendarTip, Activate //----------------------------------------------------------------------- virtual BOOL Create(CWnd* pParentWnd); // Attributes public: //----------------------------------------------------------------------- // Summary: // This member function is used to obtain the tooltip text string. // Returns: // A CString that contains the current tooltip text. // See Also: SetTooltipText //----------------------------------------------------------------------- CString GetTooltipText() const; //----------------------------------------------------------------------- // Summary: // This member function is used to set the new tooltip text. // Parameters: // str - An LPCSTR string that contains the new tooltip caption. // Remarks: // Call this member function before activating the tooltip window. // See Also: GetTooltipText //----------------------------------------------------------------------- void SetTooltipText(LPCTSTR str); //----------------------------------------------------------------------- // Summary: // This member function is used to set the tooltip text font. // Parameters: // pFont - A pointer to a CFont object that contains the new font. //----------------------------------------------------------------------- void SetFont(CFont* pFont); //----------------------------------------------------------------------- // Summary: // This member function is used to set the coordinates of the // tooltip hover rectangle. // Parameters: // rc - A CRect object that contains the new tooltip hover rectangle // in the parent window coordinates. // Remarks: // Called this member function before activating the tooltip window. // See Also: GetHoverRect //----------------------------------------------------------------------- void SetHoverRect(CRect rc); //----------------------------------------------------------------------- // Summary: // This function is used to obtain the coordinates of a tooltip hover rectangle. // Returns: // The coordinates of the tooltip hover rectangle in parent window coordinates. // See Also: SetHoverRect //----------------------------------------------------------------------- CRect GetHoverRect() const; //----------------------------------------------------------------------- // Summary: // This function is used to check whether advanced mode is enabled. // Advanced mode means left mouse click handling. // Returns: // TRUE when advanced mode enabled (left mouse click handling). //----------------------------------------------------------------------- BOOL IsAdvancedMode() const; //----------------------------------------------------------------------- // Summary: // This function is used to set advanced mode flag. // Parameters: // bMode - a BOOL flag to set mode as advanced or standard //----------------------------------------------------------------------- void SetAdvancedMode(BOOL bMode = TRUE); //----------------------------------------------------------------------- // Summary: // This member function sets (or disable) the new control drawing // theme. // Parameters: // pTheme - A CXTPCalendarTheme pointer to the theme object. // If pTheme is NULL - themes are disabled and regular // painting is used. //----------------------------------------------------------------------- void SetTheme(CXTPCalendarTheme* pTheme); // Operations public: //----------------------------------------------------------------------- // Summary: // Call this function to activate or deactivate a tool tip control. // Parameters: // bActive - A BOOL. Specifies whether the tool tip control is to be activated or deactivated. // bAdvanced - TRUE for advanced processing (Office2007 theme "add new appt") // Remarks: // If bActivate is TRUE, the control is activated. // If FALSE, it is deactivated. // // When a tool tip control is active, the tool tip information // appears when the cursor is on a tool that is registered with // the control. When it is inactive, the tool tip information // does not appear, even when the cursor is on a tool. // Example: See Create method example. // See Also: Create, CXTPCalendarTip::CXTPCalendarTip, SetTooltipText //----------------------------------------------------------------------- void Activate(BOOL bActive, BOOL bAdvanced = FALSE); //----------------------------------------------------------------------- // Summary: // This function is used to calculate tooltip rectangle. // Parameters: // bFull - A BOOL flag of the way of calculation. // Remarks: // Standard window DC and stored font and tooltip text are used. // Returns: // Size of the tooltip rectangle. // See Also: SetTooltipText, SetFont. //----------------------------------------------------------------------- CSize CalcToolTipRect(BOOL bFull = FALSE); protected: //{{AFX_CODEJOCK_PRIVATE DECLARE_MESSAGE_MAP() //{{AFX_MSG(CXTPCalendarTip) afx_msg LRESULT OnNcHitTest(CPoint point); afx_msg BOOL OnEraseBkgnd(CDC*); afx_msg void OnPaint(); //}}AFX_MSG //}}AFX_CODEJOCK_PRIVATE private: BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL); protected: CRect m_rcHover; // Hover window coordinates. CFont* m_pFont; // Font for displaying tooltip text. CWnd * m_pParentWnd; // Pointer to the parent report window. CString m_strTooltipText; // Tooltip text to display. BOOL m_bAdvancedMode; // TRUE when advanced mode is on CXTPCalendarTheme* m_pTheme;// Pointer to associated Theme object }; AFX_INLINE BOOL CXTPCalendarTip::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) { return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext); } AFX_INLINE CString CXTPCalendarTip::GetTooltipText() const { return m_strTooltipText; } AFX_INLINE void CXTPCalendarTip::SetTooltipText(LPCTSTR str) { m_strTooltipText = str; } AFX_INLINE void CXTPCalendarTip::SetFont(CFont* pFont) { m_pFont = pFont; } AFX_INLINE void CXTPCalendarTip::SetHoverRect(CRect rc) { m_rcHover = rc; MoveWindow(rc); } AFX_INLINE CRect CXTPCalendarTip::GetHoverRect() const { return m_rcHover; } AFX_INLINE void CXTPCalendarTip::SetAdvancedMode(BOOL bMode) { m_bAdvancedMode = bMode; } AFX_INLINE BOOL CXTPCalendarTip::IsAdvancedMode() const { return m_bAdvancedMode; } #endif // !defined(__XTPCalendarTip_H__)