123
This commit is contained in:
163
Editor/XT/Include/XTSplitterDock.h
Normal file
163
Editor/XT/Include/XTSplitterDock.h
Normal file
@@ -0,0 +1,163 @@
|
||||
// XTSplitterDock.h interface for the CXTSplitterRowDock class.
|
||||
//
|
||||
// This file is a part of the Xtreme Toolkit for MFC.
|
||||
// <20>1998-2003 Codejock Software, All Rights Reserved.
|
||||
//
|
||||
// This source code can only be used under the terms and conditions
|
||||
// outlined in the accompanying license agreement.
|
||||
//
|
||||
// support@codejock.com
|
||||
// http://www.codejock.com
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#if !defined(__XTSPLITTERDOCK_H__)
|
||||
#define __XTSPLITTERDOCK_H__
|
||||
|
||||
#if _MSC_VER >= 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER >= 1000
|
||||
|
||||
// class forwards.
|
||||
|
||||
class CXTDockBar;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Summary: CXTSplitterDock is a stand alone base class. It is used to create a
|
||||
// CXTSplitterDock class object.
|
||||
class _XT_EXT_CLASS CXTSplitterDock
|
||||
{
|
||||
public:
|
||||
|
||||
// Input: pBar - A pointer to a valid CXTDockBar object.
|
||||
// rcCurrent - A reference to a valid CRect object.
|
||||
// bar - Type of splitter bar, either XT_SPLITTER_VERT or XT_SPLITTER_HORZ.
|
||||
// nPos - Index into a control bar array.
|
||||
// Summary: Constructs a CXTSplitterDock object.
|
||||
CXTSplitterDock(CXTDockBar *pBar,const CRect &rcCurrent,const int nType,const int nPos);
|
||||
|
||||
// Summary: Destroys a CXTSplitterDock object, handles clean up and de-allocation.
|
||||
virtual ~CXTSplitterDock();
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// Current Size and Position
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
CRect m_rcCurrent; // Current size of the splitter rect.
|
||||
CRect m_rcTrack; // Current size of the tracking rect.
|
||||
CPoint m_ptCurrent; // Represents the current cursor position.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// Width of the Row
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
int m_nStartHeight; // Original height of the splitter.
|
||||
int m_nCurrentHeight; // Current height of the splitter.
|
||||
int m_nMaxHeight; // Maximum height for the splitter.
|
||||
int m_nMinHeight; // Minimum height for the splitter.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// Vertical or Horizontal
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
int m_nType; // Type of splitter bar either, XT_SPLITTER_VERT or XT_SPLITTER_HORZ.
|
||||
int m_nControlBar; // Index into a control bar array.
|
||||
CXTDockBar* m_pDockBar; // Pointer to the dockbar.
|
||||
|
||||
// Input: point - Represents the current cursor position.
|
||||
// Returns: true if successful, otherwise returns false.
|
||||
// Summary: This member function is called to move the splitter during tracking
|
||||
// operations.
|
||||
virtual bool Move(CPoint point);
|
||||
|
||||
// Input: point - Represents the current cursor position.
|
||||
// Returns: true if successful, otherwise returns false.
|
||||
// Summary: This member function is called during tracking operations.
|
||||
virtual bool StartTrack(CPoint point);
|
||||
|
||||
// Input: point - Represents the current cursor position.
|
||||
// Returns: true if successful, otherwise returns false.
|
||||
// Summary: This member function is called to terminate the tracking operation.
|
||||
virtual bool EndTrack(CPoint point);
|
||||
|
||||
// Returns: TRUE if the splitter is horizontal, otherwise returns FALSE.
|
||||
// Summary: This member function is called to determine if the splitter is horizontal.
|
||||
BOOL IsHorz();
|
||||
|
||||
// Input: point - A reference to a valid CPoint object.
|
||||
// Returns: TRUE if the cursor position specified by 'point' falls inside of the splitter
|
||||
// area, otherwise returns FALSE.
|
||||
// Summary: This member function is called to determine if the cursor position
|
||||
// is inside of the splitter area.
|
||||
BOOL HitTest(const CPoint &point);
|
||||
|
||||
// Input: nLength - New size for the splitter.
|
||||
// Summary: This member function is called to set the length for the splitter.
|
||||
void SetLength(int nLength);
|
||||
|
||||
// Returns: true if successful, otherwise returns false.
|
||||
// Summary: This member function is called to display the tracking rect when the
|
||||
// splitter is moved.
|
||||
bool OnInvertTracker();
|
||||
|
||||
// Input: pDC - A CDC pointer to a valid device context.
|
||||
// Summary: This member function is called to draw the splitter during paint operations.
|
||||
void Draw(CDC *pDC);
|
||||
|
||||
protected:
|
||||
|
||||
// Summary: This member function is called internally to set the new height for
|
||||
// the splitter bar based on the current control bar size.
|
||||
virtual void SetNewHeight();
|
||||
|
||||
// Summary: This member function is called internally to calculate the new height
|
||||
// for the splitter bar based on the current control bar size.
|
||||
virtual void CalcMaxMinHeight();
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Summary: CXTSplitterRowDock is a CXTSplitterDock derived class. It is used to
|
||||
// create a CXTSplitterRowDock class object.
|
||||
class _XT_EXT_CLASS CXTSplitterRowDock : public CXTSplitterDock
|
||||
{
|
||||
public:
|
||||
|
||||
// Input: pBar - A pointer to a valid CXTDockBar object.
|
||||
// rcCurrent - A reference to a valid CRect object.
|
||||
// nType - Type of splitter bar, either XT_SPLITTER_VERT or XT_SPLITTER_HORZ.
|
||||
// nPos - Index into a control bar array.
|
||||
// Summary: Constructs a CXTSplitterRowDock object.
|
||||
CXTSplitterRowDock(CXTDockBar *pBar,const CRect &rcCurrent,const int nType,const int nPos);
|
||||
|
||||
// Input: point - Represents the current cursor position.
|
||||
// Returns: true if successful, otherwise returns false.
|
||||
// Summary: This member function is called to move the splitter during tracking
|
||||
// operations.
|
||||
virtual bool Move(CPoint point);
|
||||
|
||||
protected:
|
||||
|
||||
// Summary: This member function is called internally to set the new height for
|
||||
// the splitter bar based on the current control bar size.
|
||||
virtual void SetNewHeight();
|
||||
|
||||
// Summary: This member function is called internally to calculate the new height
|
||||
// for the splitter bar based on the current control bar size.
|
||||
virtual void CalcMaxMinHeight();
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
AFX_INLINE BOOL CXTSplitterDock::IsHorz() {
|
||||
return (m_nType == XT_SPLITTER_HORZ);
|
||||
}
|
||||
AFX_INLINE BOOL CXTSplitterDock::HitTest(const CPoint &point) {
|
||||
return m_rcCurrent.PtInRect(point);
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // #if !defined(__XTSPLITTERDOCK_H__)
|
||||
Reference in New Issue
Block a user