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.
135 lines
3.8 KiB
C++
135 lines
3.8 KiB
C++
// XTPTabCtrlButtons.h : interface for the CXTPTabCtrlButtons class.
|
|
//
|
|
// This file is a part of the XTREME CONTROLS 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(__XTPTABCTRLBUTTONS_H_)
|
|
#define __XTPTABCTRLBUTTONS_H_
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
|
|
#if _MSC_VER >= 1000
|
|
#pragma once
|
|
#endif // _MSC_VER >= 1000
|
|
|
|
class CXTPTabCtrlButtons;
|
|
class CXTPTabBase;
|
|
|
|
#define XTP_IDC_TAB_CLOSE 106
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Summary: CXTPTabCtrlButton is a stand alone structure class. It is internal used in CXTPTabCtrlButtons class.
|
|
class _XTP_EXT_CLASS CXTPTabCtrlButton
|
|
{
|
|
public:
|
|
CXTPTabCtrlButton (DWORD wStyle);
|
|
|
|
void Draw(CDC* pDC, COLORREF clrButton);
|
|
DWORD Click(CXTPTabCtrlButtons* pWnd, CPoint pt, BOOL bRepeat = FALSE);
|
|
void SetRect(CRect rc);
|
|
CRect GetRect();
|
|
BOOL PtInRect(POINT pt) const;
|
|
void CheckForMouseOver (CWnd* pWnd, CPoint pt);
|
|
void SetEnable(BOOL bEnable);
|
|
|
|
CRect m_Rect;
|
|
DWORD m_wStyle;
|
|
CTabCtrl* m_pTabCtrl;
|
|
CXTPTabCtrlButtons* m_pButtons;
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
AFX_INLINE CXTPTabCtrlButton::CXTPTabCtrlButton(DWORD wStyle) {
|
|
m_wStyle = wStyle;
|
|
m_pButtons = 0;
|
|
m_pTabCtrl = 0;
|
|
m_Rect.SetRectEmpty();
|
|
}
|
|
AFX_INLINE void CXTPTabCtrlButton::SetRect (CRect rc) {
|
|
m_Rect = rc;
|
|
}
|
|
AFX_INLINE CRect CXTPTabCtrlButton::GetRect() {
|
|
return m_Rect;
|
|
}
|
|
AFX_INLINE BOOL CXTPTabCtrlButton::PtInRect (POINT pt) const {
|
|
return m_Rect.PtInRect (pt) != 0;
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Summary: CXTPTabCtrlButtonsis a CWnd derived class. It is internally used in the CXTPTabBase class.
|
|
class _XTP_EXT_CLASS CXTPTabCtrlButtons: public CWnd
|
|
{
|
|
public:
|
|
CXTPTabCtrlButtons();
|
|
~CXTPTabCtrlButtons();
|
|
|
|
BOOL Create(CXTPTabBase* pCtrlBase);
|
|
|
|
int GetWidth();
|
|
|
|
void ShowButtons(BOOL bShow);
|
|
BOOL ShowButtons();
|
|
void Refresh();
|
|
void SubclassTabButtons(CWnd* pWnd);
|
|
void SetButtonStyle(DWORD dwFlags);
|
|
void UnSubclassTabButtons();
|
|
|
|
CTabCtrl* GetTabCtrl() const;
|
|
|
|
private:
|
|
CRect AdjustRect();
|
|
private:
|
|
CXTPTabCtrlButton m_btnClose;
|
|
CXTPTabCtrlButton m_btnLeft;
|
|
CXTPTabCtrlButton m_btnRight;
|
|
|
|
DWORD m_dwFlags;
|
|
CTabCtrl* m_pTabCtrl;
|
|
CXTPTabBase* m_pTabCtrlBase;
|
|
BOOL m_bShow;
|
|
|
|
HWND m_hwndSubclassed;
|
|
HWND m_hwndPrimary;
|
|
|
|
private:
|
|
|
|
afx_msg void OnPaint();
|
|
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
|
|
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
|
|
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
|
|
afx_msg void OnMouseLeave();
|
|
afx_msg void OnWindowPosChanged(WINDOWPOS* lpwndpos);
|
|
|
|
BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
friend class CXTPTabBase;
|
|
friend class CXTPTabCtrlButton;
|
|
};
|
|
|
|
AFX_INLINE CTabCtrl* CXTPTabCtrlButtons::GetTabCtrl() const {
|
|
return m_pTabCtrl;
|
|
}
|
|
|
|
AFX_INLINE BOOL CXTPTabCtrlButtons::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);
|
|
}
|
|
|
|
#endif // #if !defined(__XTPTABCTRLBUTTONS_H_)
|