Files
FC1/Editor/Controls/SplitterWndEx.cpp
romkazvo 34d6c5d489 123
2023-08-07 19:29:24 +08:00

81 lines
2.1 KiB
C++

////////////////////////////////////////////////////////////////////////////
//
// Crytek Engine Source File.
// Copyright (C), Crytek Studios, 2002.
// -------------------------------------------------------------------------
// File name: splitterwndex.cpp
// Version: v1.00
// Created: 24/4/2002 by Timur.
// Compilers: Visual Studio.NET
// Description: CSplitterWndEx implementation.
// -------------------------------------------------------------------------
// History:
//
////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "SplitterWndEx.h"
// CSplitterWndEx
IMPLEMENT_DYNAMIC(CSplitterWndEx, CSplitterWnd)
CSplitterWndEx::CSplitterWndEx()
{
m_cxSplitter = m_cySplitter = 3 + 1 + 1;
m_cxBorderShare = m_cyBorderShare = 0;
m_cxSplitterGap = m_cySplitterGap = 3 + 1 + 1;
m_cxBorder = m_cyBorder = 1;
}
CSplitterWndEx::~CSplitterWndEx()
{
}
BEGIN_MESSAGE_MAP(CSplitterWndEx, CSplitterWnd)
END_MESSAGE_MAP()
// CSplitterWndEx message handlers
void CSplitterWndEx::SetPane( int row,int col,CWnd *pWnd,SIZE sizeInit )
{
assert( pWnd != NULL );
// set the initial size for that pane
m_pColInfo[col].nIdealSize = sizeInit.cx;
m_pRowInfo[row].nIdealSize = sizeInit.cy;
pWnd->ModifyStyle( 0,WS_BORDER,WS_CHILD|WS_VISIBLE );
pWnd->SetParent(this);
CRect rect(CPoint(0,0), sizeInit);
pWnd->MoveWindow( 0,0,sizeInit.cx,sizeInit.cy,FALSE );
pWnd->SetDlgCtrlID( IdFromRowCol(row,col) );
ASSERT((int)::GetDlgCtrlID(pWnd->m_hWnd) == IdFromRowCol(row, col));
}
void CSplitterWndEx::OnDrawSplitter(CDC* pDC, ESplitType nType, const CRect& rectArg)
{
// Let CSplitterWnd handle everything but the border-drawing
if((nType != splitBorder) || (pDC == NULL))
{
CSplitterWnd::OnDrawSplitter(pDC, nType, rectArg);
return;
}
ASSERT_VALID(pDC);
// Draw border
pDC->Draw3dRect(rectArg, GetSysColor(COLOR_BTNSHADOW), GetSysColor(COLOR_BTNHIGHLIGHT));
}
//////////////////////////////////////////////////////////////////////////
CWnd* CSplitterWndEx::GetActivePane(int* pRow, int* pCol )
{
return GetFocus();
}