summaryrefslogtreecommitdiff
path: root/hammer/selectmodedlgbar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'hammer/selectmodedlgbar.cpp')
-rw-r--r--hammer/selectmodedlgbar.cpp142
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);
+ }
+}
+