// LogicTreeView.cpp : implementation file // #include "stdafx.h" #include "logic_editor.h" #include "LogicTreeView.h" #include "StatesView.h" #include "ConditionsView.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CLogicTreeView IMPLEMENT_DYNCREATE(CLogicTreeView, CView) CLogicTreeView::CLogicTreeView() { } CLogicTreeView::~CLogicTreeView() { } BEGIN_MESSAGE_MAP(CLogicTreeView, CView) //{{AFX_MSG_MAP(CLogicTreeView) ON_WM_CREATE() ON_WM_SIZE() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CLogicTreeView drawing void CLogicTreeView::OnDraw(CDC* pDC) { CDocument* pDoc = GetDocument(); // TODO: add draw code here } ///////////////////////////////////////////////////////////////////////////// // CLogicTreeView diagnostics #ifdef _DEBUG void CLogicTreeView::AssertValid() const { CView::AssertValid(); } void CLogicTreeView::Dump(CDumpContext& dc) const { CView::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CLogicTreeView message handlers int CLogicTreeView::OnCreate(LPCREATESTRUCT lpCreateStruct) { // Call base class first if (CView::OnCreate(lpCreateStruct) == -1) return -1; // CPaneContainerView is used to control the right pane that CMainFrame // sets up. In this case we create a second splitter window. if (!m_wndSplitter.CreateStatic(this, 2,1)) { TRACE0("Failed to create splitter window in LogicTreeView"); return -1; } // The context information is passed on from the framework CCreateContext *pContext = (CCreateContext*)lpCreateStruct->lpCreateParams; // Create two views if ( ! m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CStatesView),CSize(0,250), pContext) ) { TRACE0("Failed to create states view in splitter window in LogicTreeView"); return -1; } if ( !m_wndSplitter.CreateView(1,0,RUNTIME_CLASS(CConditionsView),CSize(0,0), pContext) ) { TRACE0("Failed to create conditions view in splitter window in LogicTreeView"); return -1; } return 0; } /// resize the view void CLogicTreeView::OnSize(UINT nType, int cx, int cy) { CView::OnSize(nType, cx, cy); // for simplicity, I'll assume Y border edge is // same as X border edge const int xborderWidth = GetSystemMetrics(SM_CXEDGE); const int yborderWidth = GetSystemMetrics(SM_CYEDGE); // move and grow view to clip border m_wndSplitter.MoveWindow( -xborderWidth, -yborderWidth, cx+(xborderWidth*2), cy+(yborderWidth*2)); }