1
This commit is contained in:
142
utils/vkeyedit/Vkeylistview.cpp
Normal file
142
utils/vkeyedit/Vkeylistview.cpp
Normal file
@ -0,0 +1,142 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//
|
||||
//=============================================================================//
|
||||
// Vkeylistview.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "vkeyedit.h"
|
||||
#include "Vkeylistview.h"
|
||||
|
||||
#include <KeyValues.h>
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CVkeylistview
|
||||
|
||||
IMPLEMENT_DYNCREATE(CVkeylistview, CListView)
|
||||
|
||||
CVkeylistview::CVkeylistview()
|
||||
{
|
||||
}
|
||||
|
||||
CVkeylistview::~CVkeylistview()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CVkeylistview, CListView)
|
||||
//{{AFX_MSG_MAP(CVkeylistview)
|
||||
// NOTE - the ClassWizard will add and remove mapping macros here.
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CVkeylistview drawing
|
||||
|
||||
void CVkeylistview::OnDraw(CDC* pDC)
|
||||
{
|
||||
CDocument* pDoc = GetDocument();
|
||||
// TODO: add draw code here
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CVkeylistview diagnostics
|
||||
|
||||
#ifdef _DEBUG
|
||||
void CVkeylistview::AssertValid() const
|
||||
{
|
||||
CListView::AssertValid();
|
||||
}
|
||||
|
||||
void CVkeylistview::Dump(CDumpContext& dc) const
|
||||
{
|
||||
CListView::Dump(dc);
|
||||
}
|
||||
#endif //_DEBUG
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CVkeylistview message handlers
|
||||
|
||||
void CVkeylistview::OnInitialUpdate()
|
||||
{
|
||||
CListView::OnInitialUpdate();
|
||||
|
||||
CListCtrl &theList = GetListCtrl();
|
||||
|
||||
theList.DeleteColumn( 0 );
|
||||
theList.DeleteColumn( 0 );
|
||||
|
||||
theList.InsertColumn( 0, _T("Name"), LVCFMT_LEFT, 200 );
|
||||
theList.InsertColumn( 1, _T("Value"), LVCFMT_LEFT, 800 );
|
||||
|
||||
theList.SetExtendedStyle( LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES );
|
||||
}
|
||||
|
||||
void CVkeylistview::CalcWindowRect(LPRECT lpClientRect, UINT nAdjustType)
|
||||
{
|
||||
// TODO: Add your specialized code here and/or call the base class
|
||||
|
||||
CListView::CalcWindowRect(lpClientRect, nAdjustType);
|
||||
}
|
||||
|
||||
BOOL CVkeylistview::PreCreateWindow(CREATESTRUCT& cs)
|
||||
{
|
||||
// TODO: Add your specialized code here and/or call the base class
|
||||
|
||||
return CListView::PreCreateWindow(cs);
|
||||
}
|
||||
|
||||
BOOL CVkeylistview::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext)
|
||||
{
|
||||
// TODO: Add your specialized code here and/or call the base class
|
||||
|
||||
dwStyle |= LVS_REPORT|LVS_SINGLESEL|LVS_EDITLABELS|LVS_AUTOARRANGE;
|
||||
|
||||
return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
|
||||
}
|
||||
|
||||
void CVkeylistview::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
|
||||
{
|
||||
KeyValues *kv = (KeyValues *)pHint;
|
||||
|
||||
if ( !kv || lHint != 2 )
|
||||
return;
|
||||
|
||||
CListCtrl &theList = GetListCtrl();
|
||||
|
||||
theList.DeleteAllItems();
|
||||
|
||||
KeyValues *subkey = kv->GetFirstValue();
|
||||
|
||||
LVITEM lvi;
|
||||
|
||||
int i = 0;
|
||||
|
||||
while ( subkey )
|
||||
{
|
||||
lvi.mask = LVIF_TEXT;
|
||||
lvi.iItem = i;
|
||||
|
||||
lvi.iSubItem = 0;
|
||||
lvi.pszText = (char*)subkey->GetName();
|
||||
theList.InsertItem(&lvi);
|
||||
|
||||
lvi.iSubItem =1;
|
||||
lvi.pszText = (char*)subkey->GetString();
|
||||
theList.SetItem(&lvi);
|
||||
|
||||
i++;
|
||||
|
||||
subkey = subkey->GetNextValue();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user