diff options
Diffstat (limited to 'hammer/selectmodedlgbar.cpp')
| -rw-r--r-- | hammer/selectmodedlgbar.cpp | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/hammer/selectmodedlgbar.cpp b/hammer/selectmodedlgbar.cpp new file mode 100644 index 0000000..197f55f --- /dev/null +++ b/hammer/selectmodedlgbar.cpp @@ -0,0 +1,142 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#include "stdafx.h" +#include "SelectModeDlgBar.h" +#include "ControlBarIDs.h" +#include "MapDoc.h" +#include "Selection.h" + +// memdbgon must be the last include file in a .cpp file!!! +#include <tier0/memdbgon.h> + + +BEGIN_MESSAGE_MAP(CSelectModeDlgBar, CHammerBar) + //{{AFX_MSG_MAP(CSelectModeDlgBar) + ON_BN_CLICKED(IDC_GROUPS, OnGroups) + ON_BN_CLICKED(IDC_OBJECTS, OnObjects) + ON_BN_CLICKED(IDC_SOLIDS, OnSolids) + ON_UPDATE_COMMAND_UI(IDC_GROUPS, UpdateControlGroups) + ON_UPDATE_COMMAND_UI(IDC_OBJECTS, UpdateControlObjects) + ON_UPDATE_COMMAND_UI(IDC_SOLIDS, UpdateControlSolids) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + + +//----------------------------------------------------------------------------- +// Purpose: +// Input : pParentWnd - +// Output : Returns TRUE on success, FALSE on failure. +//----------------------------------------------------------------------------- +BOOL CSelectModeDlgBar::Create(CWnd *pParentWnd) +{ + if (!CHammerBar::Create(pParentWnd, IDD_SELECT_MODE_BAR, CBRS_RIGHT, IDCB_SELECT_MODE_BAR)) + { + return FALSE; + } + + SetWindowText("Selection Mode"); + return TRUE; +} + + +//----------------------------------------------------------------------------- +// Purpose: +// Input : pCmdUI - +//----------------------------------------------------------------------------- +void CSelectModeDlgBar::UpdateControlGroups(CCmdUI *pCmdUI) +{ + CMapDoc *pDoc = CMapDoc::GetActiveMapDoc(); + if (pDoc != NULL) + { + pCmdUI->Enable(TRUE); + pCmdUI->SetCheck(pDoc->GetSelection()->GetMode() == selectGroups); + } + else + { + pCmdUI->Enable(FALSE); + } +} + + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CSelectModeDlgBar::UpdateControlObjects(CCmdUI *pCmdUI) +{ + CMapDoc *pDoc = CMapDoc::GetActiveMapDoc(); + if (pDoc != NULL) + { + pCmdUI->Enable(TRUE); + pCmdUI->SetCheck(pDoc->GetSelection()->GetMode() == selectObjects); + } + else + { + pCmdUI->Enable(FALSE); + } +} + + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CSelectModeDlgBar::UpdateControlSolids(CCmdUI *pCmdUI) +{ + CMapDoc *pDoc = CMapDoc::GetActiveMapDoc(); + if (pDoc != NULL) + { + pCmdUI->Enable(TRUE); + pCmdUI->SetCheck(pDoc->GetSelection()->GetMode() == selectSolids); + } + else + { + pCmdUI->Enable(FALSE); + } +} + + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CSelectModeDlgBar::OnGroups(void) +{ + CMapDoc *pDoc = CMapDoc::GetActiveMapDoc(); + if (pDoc != NULL) + { + pDoc->GetSelection()->SetMode(selectGroups); + ((CButton *)GetDlgItem(IDC_GROUPS))->SetCheck(TRUE); + } +} + + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CSelectModeDlgBar::OnObjects(void) +{ + CMapDoc *pDoc = CMapDoc::GetActiveMapDoc(); + if (pDoc != NULL) + { + pDoc->GetSelection()->SetMode(selectObjects); + ((CButton *)GetDlgItem(IDC_OBJECTS))->SetCheck(TRUE); + } +} + + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CSelectModeDlgBar::OnSolids(void) +{ + CMapDoc *pDoc = CMapDoc::GetActiveMapDoc(); + if (pDoc != NULL) + { + pDoc->GetSelection()->SetMode(selectSolids); + ((CButton *)GetDlgItem(IDC_SOLIDS))->SetCheck(TRUE); + } +} + |