📄 rtredoc.cpp
字号:
////////////////////////////////////////////////////////////////////////////////
// RTreDoc.cpp : implementation of the CRTreDoc class
// $Header: /USB/Util/EzMr/RTreDoc.cpp 3 8/08/00 2:26p Tpm $
// Copyright (c) 2000 Cypress Semiconductor. May not be reproduced without permission.
// See the EzUsb Developer's Kit license agreement for more details.
////////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
//#include "RTre.h"
#include "RTreDoc.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CRTreDoc
IMPLEMENT_DYNCREATE(CRTreDoc, CDocument)
BEGIN_MESSAGE_MAP(CRTreDoc, CDocument)
//{{AFX_MSG_MAP(CRTreDoc)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CRTreDoc construction/destruction
CRTreDoc::CRTreDoc()
: m_bIsOpen(FALSE),
m_pRootItem(NULL)
{
// TODO: add one-time construction code here
}
CRTreDoc::~CRTreDoc()
{
if (m_pRootItem)
m_pRootItem->DeleteAllItems();
}
BOOL CRTreDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
// TODO: add reinitialization code here
// (SDI documents will reuse this document)
if (OnOpenDocument("treedata.txt"))
{
CRTreHint hint;
UpdateAllViews(NULL, CRTreHint::documentIsOpen, &hint);
SetTitle("USB Device Selection");
return TRUE;
} else
return FALSE;
}
BOOL CRTreDoc::OnOpenDocument(LPCTSTR filename)
{
#ifdef THIS_APP_USES_CARCHIVE
try
{
CFile treeDataFile(filename, CFile::modeRead);
try
{
CArchive ar(&treeDataFile, CArchive::load);
Serialize(ar);
m_bIsOpen = TRUE;
}
catch(CMemoryException& ex)
{
ex; // unused arg
}
catch(CArchiveException& ex)
{
ex; // unused arg
}
catch(CFileException& ex)
{
ex; // unused arg;
}
}
catch( CFileException& ex )
{
ex; // unused arg
}
#else
//create root node
m_pRootItem = new CTreeItem;
m_pRootItem->m_szName = "Computer";
m_pRootItem->m_szType = STR_RT_NODE_ROOT;
m_pRootItem->m_nType = RT_NODE_ROOT;
m_pRootItem->m_szParent = "Computer";
def_tree(); //create additional default nodes
//upd_tree(); //update additional nodes
#endif
m_bIsOpen = TRUE;
return m_bIsOpen;
}
/////////////////////////////////////////////////////////////////////////////
// CRTreDoc serialization
IMPLEMENT_SERIAL(CTreeItem, CObject, 1)
void CRTreDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// TODO: add storing code here
}
else
{
// TODO: add loading code here
// Call base class function first
CObject::Serialize( ar );
// Now do the stuff for our specific class
if( ar.IsStoring() )
;
else
m_pRootItem->Serialize(ar);
}
}
void CTreeItem::Serialize(CArchive& ar)
{
CObject::Serialize(ar);
ar >> m_szName >> m_szType >> m_szParent;
}
/////////////////////////////////////////////////////////////////////////////
// CRTreDoc diagnostics
#ifdef _DEBUG
void CRTreDoc::AssertValid() const
{
CDocument::AssertValid();
}
void CRTreDoc::Dump(CDumpContext& dc) const
{
CDocument::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CRTreDoc commands
void CRTreDoc::def_tree(void)
{
CTreeItem *item;
CTreeItem *item0;
CTreeItem *itemh;
item = new CTreeItem("USB Host Controller", "host", "Computer", RT_NODE_HOST);
m_pRootItem->m_childrenItems.Add(item);
item0 = item;
itemh = new CTreeItem("USB Root Hub", "hub", "Host Controller", RT_NODE_HUB);
item0->m_childrenItems.Add(itemh);
item0 = itemh;
item = new CTreeItem("Port", "port", "Root Hub", RT_NODE_PORT);
item0->m_childrenItems.Add(item);
item0 = item;
item = new CTreeItem("Device", "dev", "Port", RT_NODE_DEV);
item0->m_childrenItems.Add(item);
item0 = item;
item = new CTreeItem("Interface", "intf", "Device", RT_NODE_INTF);
item0->m_childrenItems.Add(item);
item0 = item;
item = new CTreeItem("Endpoint", "endp", "Intf", RT_NODE_ENDP);
item0->m_childrenItems.Add(item);
item0 = item;
item = new CTreeItem("Pipe", "pipe", "Endpoint", RT_NODE_PIPE);
item0->m_childrenItems.Add(item);
item0 = itemh;
item = new CTreeItem("Port", "port", "Root Hub", RT_NODE_PORT);
item0->m_childrenItems.Add(item);
item0 = item;
item = new CTreeItem("Device", "dev", "Port", RT_NODE_DEV);
item0->m_childrenItems.Add(item);
item0 = item;
item = new CTreeItem("Interface", "intf", "Device", RT_NODE_INTF);
item0->m_childrenItems.Add(item);
item0 = item;
item = new CTreeItem("Endpoint", "endp", "Intf", RT_NODE_ENDP);
item0->m_childrenItems.Add(item);
item0 = item;
item = new CTreeItem("Pipe", "pipe", "Endpoint", RT_NODE_PIPE);
item0->m_childrenItems.Add(item);
item = new CTreeItem("Pipe", "pipe", "Endpoint", RT_NODE_PIPE);
item0->m_childrenItems.Add(item);
}
void CRTreDoc::upd_tree(void)
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -