2025-11-27 16:46:48 +09:00

243 lines
8.3 KiB
C++

// 3DTabViewBar.cpp : implementation file
//
#include "stdafx.h"
#include "VisualStudioLikeDemo.h"
#include "3DTabViewBar.h"
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// C3DTabViewBar
//
IMPLEMENT_DYNAMIC(C3DTabViewBar, COXSizeControlBar);
C3DTabViewBar::C3DTabViewBar()
: COXSizeControlBar(
SZBARF_STDMOUSECLICKS|SZBARF_ALLOW_MDI_FLOAT|SZBARF_SOLIDGRIPPER)
{
}
C3DTabViewBar::~C3DTabViewBar()
{
}
BEGIN_MESSAGE_MAP(C3DTabViewBar, COXSizeControlBar)
//{{AFX_MSG_MAP(C3DTabViewBar)
ON_WM_CREATE()
ON_WM_ERASEBKGND()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// C3DTabViewBar message handlers
BOOL C3DTabViewBar::OnEraseBkgnd(CDC* pDC)
{
UNREFERENCED_PARAMETER(pDC);
return TRUE;
}
//-------------------------------------------------------------------
void C3DTabViewBar::OnSizedOrDocked(int cx, int cy, BOOL bFloating, int flags)
// respond to this event as we need to override it
//-------------------------------------------------------------------
{
UNREFERENCED_PARAMETER(bFloating);
UNREFERENCED_PARAMETER(flags);
UNREFERENCED_PARAMETER(cx);
UNREFERENCED_PARAMETER(cy);
CRect rect;
GetClientRect(rect);
m_TabViewContainer.MoveWindow(&rect);
}
//-------------------------------------------------------------------
int C3DTabViewBar::OnCreate(LPCREATESTRUCT lpCreateStruct)
//-------------------------------------------------------------------
{
if (COXSizeControlBar::OnCreate(lpCreateStruct) == -1)
return -1;
CRect rect;
GetClientRect(&rect);
if(!m_TabViewContainer.Create(this,rect))
return -1;
VERIFY(m_ilTabView.Create(IDB_IL_3DTABVIEW,16,0,RGB(192,192,192)));
m_TabViewContainer.SetImageList(&m_ilTabView);
// Class View
if(!m_treeClass.Create(WS_CHILD|TVS_HASLINES|TVS_LINESATROOT|TVS_HASBUTTONS,
CRect(0,0,0,0),&m_TabViewContainer,1))
return -1;
VERIFY(m_ilClass.Create(IDB_IL_CLASSVIEW,16,0,RGB(192,192,192)));
m_treeClass.SetImageList(&m_ilClass,TVSIL_NORMAL);
HTREEITEM htiRoot=
m_treeClass.InsertItem(_T("VisualStudioLikeDemo classes"),0,0);
ASSERT(htiRoot!=NULL);
m_treeClass.SetItemState(htiRoot,TVIS_BOLD,TVIS_BOLD);
HTREEITEM htiSubroot=m_treeClass.InsertItem(_T("CAboutDlg"),1,1,htiRoot);
ASSERT(htiSubroot!=NULL);
VERIFY(m_treeClass.InsertItem(_T("CAboutDlg()"),2,2,htiSubroot)!=NULL);
VERIFY(m_treeClass.InsertItem(_T("DoDataExchange(CDataExchange* pDX)"),3,3,
htiSubroot)!=NULL);
htiSubroot=m_treeClass.InsertItem(_T("CMainFrame"),1,1,htiRoot);
ASSERT(htiSubroot!=NULL);
VERIFY(m_treeClass.InsertItem(_T("AssertValid()"),2,2,htiSubroot)!=NULL);
VERIFY(m_treeClass.InsertItem(_T("CMainFrame()"),2,2,htiSubroot)!=NULL);
VERIFY(m_treeClass.InsertItem(_T("~CMainFrame()"),2,2,htiSubroot)!=NULL);
VERIFY(m_treeClass.InsertItem(_T("Dump(CDumpContext& dc)"),2,2,
htiSubroot)!=NULL);
VERIFY(m_treeClass.InsertItem(_T("OnCreate(LPCREATESTRUCT lpCreateStruct)"),
3,3,htiSubroot)!=NULL);
VERIFY(m_treeClass.InsertItem(_T("PreCreateWindow(CREATESTRUCT& cs)"),2,2,
htiSubroot)!=NULL);
VERIFY(m_treeClass.InsertItem(_T("m_3DTabViewBar"),5,5,htiSubroot)!=NULL);
VERIFY(m_treeClass.InsertItem(_T("m_tabViewBar"),5,5,htiSubroot)!=NULL);
VERIFY(m_treeClass.InsertItem(_T("m_wndStatusBar"),5,5,htiSubroot)!=NULL);
VERIFY(m_treeClass.InsertItem(_T("m_wndToolBar"),5,5,htiSubroot)!=NULL);
htiSubroot=m_treeClass.InsertItem(_T("CVisualStudioLikeDemoApp"),1,1,htiRoot);
ASSERT(htiSubroot!=NULL);
VERIFY(m_treeClass.InsertItem(_T("CVisualStudioLikeDemoApp()"),2,2,htiSubroot)!=NULL);
VERIFY(m_treeClass.InsertItem(_T("InitInstance()"),2,2,htiSubroot)!=NULL);
VERIFY(m_treeClass.InsertItem(_T("OnAppAbout()"),2,2,htiSubroot)!=NULL);
m_TabViewContainer.AddPage(&m_treeClass,_T("ClassView"),0);
// Resource View
if(!m_treeResource.
Create(WS_CHILD|TVS_HASLINES|TVS_LINESATROOT|TVS_HASBUTTONS,
CRect(0,0,0,0),&m_TabViewContainer,2))
return -1;
VERIFY(m_ilResource.Create(IDB_IL_RESOURCEVIEW,16,0,RGB(192,192,192)));
m_treeResource.SetImageList(&m_ilResource,TVSIL_NORMAL);
htiRoot=m_treeResource.InsertItem(_T("VisualStudioLikeDemo resources"),0,0);
ASSERT(htiRoot!=NULL);
m_treeResource.SetItemState(htiRoot,TVIS_BOLD,TVIS_BOLD);
htiSubroot=m_treeResource.InsertItem(_T("Bitmap"),0,0,htiRoot);
ASSERT(htiSubroot!=NULL);
VERIFY(m_treeResource.InsertItem(_T("IDB_IL_3DTABVIEW"),2,2,
htiSubroot)!=NULL);
VERIFY(m_treeResource.InsertItem(_T("IDB_IL_CLASSVIEW"),2,2,
htiSubroot)!=NULL);
VERIFY(m_treeResource.InsertItem(_T("IDB_IL_RESOURCEVIEW"),2,2,
htiSubroot)!=NULL);
htiSubroot=m_treeResource.InsertItem(_T("Dialog"),0,0,htiRoot);
ASSERT(htiSubroot!=NULL);
VERIFY(m_treeResource.InsertItem(_T("IDD_ABOUTBOX"),3,3,
htiSubroot)!=NULL);
htiSubroot=m_treeResource.InsertItem(_T("Icon"),0,0,htiRoot);
ASSERT(htiSubroot!=NULL);
VERIFY(m_treeResource.InsertItem(_T("IDR_MAINFRAME"),4,4,
htiSubroot)!=NULL);
VERIFY(m_treeResource.InsertItem(_T("IDR_VISUALTYPE"),4,4,
htiSubroot)!=NULL);
htiSubroot=m_treeResource.InsertItem(_T("String Table"),0,0,htiRoot);
ASSERT(htiSubroot!=NULL);
VERIFY(m_treeResource.InsertItem(_T("String Table"),5,5,
htiSubroot)!=NULL);
m_TabViewContainer.AddPage(&m_treeResource,_T("ResourceView"),1);
// File View
if(!m_treeFile.Create(WS_CHILD|TVS_HASLINES|TVS_LINESATROOT|TVS_HASBUTTONS,
CRect(0,0,0,0),&m_TabViewContainer,3))
return -1;
VERIFY(m_ilFile.Create(IDB_IL_FILEVIEW,16,0,RGB(192,192,192)));
m_treeFile.SetImageList(&m_ilFile,TVSIL_NORMAL);
htiRoot=m_treeFile.
InsertItem(_T("Workspace 'VisualStudioLikeDemo': 1 project(s)"),0,0);
ASSERT(htiRoot!=NULL);
htiRoot=m_treeFile.InsertItem(_T("VisualStudioLikeDemo files"),1,1);
ASSERT(htiRoot!=NULL);
m_treeFile.SetItemState(htiRoot,TVIS_BOLD,TVIS_BOLD);
htiSubroot=m_treeFile.InsertItem(_T("Source Files"),2,2,htiRoot);
ASSERT(htiSubroot!=NULL);
VERIFY(m_treeFile.InsertItem(_T("3DTabViewBar.cpp"),4,4,
htiSubroot)!=NULL);
VERIFY(m_treeFile.InsertItem(_T("ChildFrm.cpp"),4,4,
htiSubroot)!=NULL);
VERIFY(m_treeFile.InsertItem(_T("MainFrm.cpp"),4,4,
htiSubroot)!=NULL);
VERIFY(m_treeFile.InsertItem(_T("StdAfx.cpp"),4,4,
htiSubroot)!=NULL);
VERIFY(m_treeFile.InsertItem(_T("TabViewBar.cpp"),4,4,
htiSubroot)!=NULL);
VERIFY(m_treeFile.InsertItem(_T("VisualStudioLikeDemo.cpp"),4,4,
htiSubroot)!=NULL);
VERIFY(m_treeFile.InsertItem(_T("VisualStudioLikeDemo.rc"),4,4,
htiSubroot)!=NULL);
VERIFY(m_treeFile.InsertItem(_T("VisualStudioLikeDemoDoc.cpp"),4,4,
htiSubroot)!=NULL);
VERIFY(m_treeFile.InsertItem(_T("VisualStudioLikeDemoView.cpp"),4,4,
htiSubroot)!=NULL);
htiSubroot=m_treeFile.InsertItem(_T("Header Files"),2,2,htiRoot);
ASSERT(htiSubroot!=NULL);
VERIFY(m_treeFile.InsertItem(_T("3DTabViewBar.h"),5,5,
htiSubroot)!=NULL);
VERIFY(m_treeFile.InsertItem(_T("ChildFrm.h"),5,5,
htiSubroot)!=NULL);
VERIFY(m_treeFile.InsertItem(_T("MainFrm.h"),5,5,
htiSubroot)!=NULL);
VERIFY(m_treeFile.InsertItem(_T("Resource.h"),5,5,
htiSubroot)!=NULL);
VERIFY(m_treeFile.InsertItem(_T("StdAfx.h"),5,5,
htiSubroot)!=NULL);
VERIFY(m_treeFile.InsertItem(_T("TabViewBar.h"),5,5,
htiSubroot)!=NULL);
VERIFY(m_treeFile.InsertItem(_T("VisualStudioLikeDemo.rc"),5,5,
htiSubroot)!=NULL);
VERIFY(m_treeFile.InsertItem(_T("VisualStudioLikeDemoDoc.h"),5,5,
htiSubroot)!=NULL);
VERIFY(m_treeFile.InsertItem(_T("VisualStudioLikeDemoView.h"),5,5,
htiSubroot)!=NULL);
htiSubroot=m_treeFile.InsertItem(_T("Resource Files"),2,2,htiRoot);
ASSERT(htiSubroot!=NULL);
VERIFY(m_treeFile.InsertItem(_T("VisualStudioLikeDemo.ico"),5,5,
htiSubroot)!=NULL);
VERIFY(m_treeFile.InsertItem(_T("VisualStudioLikeDemo.rc2"),5,5,
htiSubroot)!=NULL);
VERIFY(m_treeFile.InsertItem(_T("VisualStudioLikeDemoDoc.ico"),5,5,
htiSubroot)!=NULL);
VERIFY(m_treeFile.InsertItem(_T("ReadMe.txt"),5,5,htiRoot)!=NULL);
m_TabViewContainer.AddPage(&m_treeFile,_T("FileView"),2);
m_TabViewContainer.SetActivePageIndex(0);
return 0;
}
BOOL C3DTabViewBar::Create(CWnd * pParentWnd,
const CString& sTitle/*=_T("3DTabViewBar")*/,
const UINT nID/*=ID_3DTABVIEWBAR*/)
{
// register a window class for the control bar
static CString strWndClass;
if (strWndClass.IsEmpty())
{
strWndClass = AfxRegisterWndClass(CS_DBLCLKS);
}
return COXSizeControlBar::Create(strWndClass, sTitle,
WS_VISIBLE | WS_CHILD | CBRS_BOTTOM | WS_CLIPSIBLINGS,
CFrameWnd::rectDefault, pParentWnd, nID);
}