Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: A dialog that is invoked when a new visgroup is created.
// It lets the user pick an existing visgroup or create a new one.
//
//=============================================================================//
#include "stdafx.h"
#include "MapDoc.h"
#include "NewVisGroupDlg.h"
#include "hammer.h"
// memdbgon must be the last include file in a .cpp file!!!
#include <tier0/memdbgon.h>
static const unsigned int g_uSelChangeMsg = ::RegisterWindowMessage(GROUPLIST_MSG_SEL_CHANGE); static BOOL s_bLastHideObjects = TRUE;
BEGIN_MESSAGE_MAP(CNewVisGroupDlg, CDialog) //{{AFX_MSG_MAP(CNewVisGroupDlg)
ON_REGISTERED_MESSAGE(g_uSelChangeMsg, OnSelChangeGroupList) ON_COMMAND(IDC_PLACE_IN_EXISTING_VISGROUP, OnPlaceInExistingVisGroup) ON_COMMAND(IDC_CREATE_NEW_VISGROUP, OnCreateNewVisGroup) //}}AFX_MSG_MAP
END_MESSAGE_MAP()
//-----------------------------------------------------------------------------
// Purpose:
// Input : pParent -
//-----------------------------------------------------------------------------
CNewVisGroupDlg::CNewVisGroupDlg(CString &str, CWnd *pParent) : CDialog(CNewVisGroupDlg::IDD, pParent) { m_pPickedVisGroup = NULL;
//{{AFX_DATA_INIT(CNewVisGroupDlg)
m_strName = str; //}}AFX_DATA_INIT
}
//-----------------------------------------------------------------------------
// Purpose:
// Input : pDX -
//-----------------------------------------------------------------------------
void CNewVisGroupDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CNewVisGroupDlg)
DDX_Check(pDX, IDC_REMOVE_FROM_ALL, m_bRemoveFromOtherGroups); DDX_Check(pDX, IDC_HIDE_OBJECTS, m_bHideObjects); DDX_Text(pDX, IDC_VISGROUP_NAME, m_strName); //}}AFX_DATA_MAP
}
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
BOOL CNewVisGroupDlg::OnInitDialog(void) { m_bHideObjects = s_bLastHideObjects; CDialog::OnInitDialog();
CButton *pButton = (CButton *)GetDlgItem(IDC_CREATE_NEW_VISGROUP); pButton->SetCheck(1); m_cGroupList.SubclassDlgItem(IDC_GROUP_LIST, this); UpdateGroupList();
CEdit *pEdit = (CEdit *)GetDlgItem(IDC_GROUP_LIST); pEdit->EnableWindow(FALSE);
return TRUE; }
//-----------------------------------------------------------------------------
// Purpose: Returns the visgroup name that was entered in the dialog.
//-----------------------------------------------------------------------------
void CNewVisGroupDlg::GetName(CString &str) { str = m_strName; }
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
void CNewVisGroupDlg::OnOK() { CDialog::OnOK(); s_bLastHideObjects = m_bHideObjects; }
//-----------------------------------------------------------------------------
// Purpose: Switches the mode of the dialog to pick an existing visgroup rather than
// create a new one.
//-----------------------------------------------------------------------------
void CNewVisGroupDlg::OnPlaceInExistingVisGroup() { CEdit *pEdit = (CEdit *)GetDlgItem(IDC_VISGROUP_NAME); pEdit->EnableWindow(FALSE);
pEdit = (CEdit *)GetDlgItem(IDC_GROUP_LIST); pEdit->EnableWindow(TRUE); }
//-----------------------------------------------------------------------------
// Purpose: Switches the mode of the dialog to create a new visgroup rather than
// pick an existing one.
//-----------------------------------------------------------------------------
void CNewVisGroupDlg::OnCreateNewVisGroup() { CEdit *pEdit = (CEdit *)GetDlgItem(IDC_VISGROUP_NAME); pEdit->EnableWindow(TRUE);
pEdit = (CEdit *)GetDlgItem(IDC_GROUP_LIST); pEdit->EnableWindow(FALSE);
m_pPickedVisGroup = NULL; }
//-----------------------------------------------------------------------------
// Purpose: Handles selection change in the visgroup list.
//-----------------------------------------------------------------------------
LRESULT CNewVisGroupDlg::OnSelChangeGroupList(WPARAM wParam, LPARAM lParam) { m_pPickedVisGroup = m_cGroupList.GetSelectedVisGroup(); return 0; }
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
void CNewVisGroupDlg::UpdateGroupList(void) { m_cGroupList.SetRedraw(false); m_cGroupList.DeleteAllItems();
CMapDoc *pDoc = CMapDoc::GetActiveMapDoc(); if (pDoc != NULL) { int nCount = pDoc->VisGroups_GetRootCount(); for (int i = 0; i < nCount; i++) { CVisGroup *pGroup = pDoc->VisGroups_GetRootVisGroup(i); m_cGroupList.AddVisGroup(pGroup); } }
m_cGroupList.ExpandAll(); m_cGroupList.SetRedraw(true); m_cGroupList.Invalidate(); }
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
CVisGroup *CNewVisGroupDlg::GetPickedVisGroup(void) { return m_pPickedVisGroup; }
|