|
|
//========= 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(); } }
|