aboutsummaryrefslogtreecommitdiff
path: root/mp/src/vgui2/vgui_controls/Menu.cpp
diff options
context:
space:
mode:
authorJohn Schoenick <[email protected]>2015-09-09 18:35:41 -0700
committerJohn Schoenick <[email protected]>2015-09-09 18:35:41 -0700
commit0d8dceea4310fde5706b3ce1c70609d72a38efdf (patch)
treec831ef32c2c801a5c5a80401736b52c7b5a528ec /mp/src/vgui2/vgui_controls/Menu.cpp
parentUpdated the SDK with the latest code from the TF and HL2 branches. (diff)
downloadsource-sdk-2013-0d8dceea4310fde5706b3ce1c70609d72a38efdf.tar.xz
source-sdk-2013-0d8dceea4310fde5706b3ce1c70609d72a38efdf.zip
Updated the SDK with the latest code from the TF and HL2 branches.HEADmaster
Diffstat (limited to 'mp/src/vgui2/vgui_controls/Menu.cpp')
-rw-r--r--mp/src/vgui2/vgui_controls/Menu.cpp32
1 files changed, 31 insertions, 1 deletions
diff --git a/mp/src/vgui2/vgui_controls/Menu.cpp b/mp/src/vgui2/vgui_controls/Menu.cpp
index 695d3523..9978824e 100644
--- a/mp/src/vgui2/vgui_controls/Menu.cpp
+++ b/mp/src/vgui2/vgui_controls/Menu.cpp
@@ -2107,7 +2107,7 @@ void Menu::ActivateItemByRow(int row)
//-----------------------------------------------------------------------------
// Purpose: Return the number of items currently in the menu list
//-----------------------------------------------------------------------------
-int Menu::GetItemCount()
+int Menu::GetItemCount() const
{
return m_MenuItems.Count();
}
@@ -2701,3 +2701,33 @@ void Menu::Validate( CValidator &validator, char *pchName )
validator.Pop();
}
#endif // DBGFLAG_VALIDATE
+
+
+MenuBuilder::MenuBuilder( Menu *pMenu, Panel *pActionTarget )
+ : m_pMenu( pMenu )
+ , m_pActionTarget( pActionTarget )
+ , m_pszLastCategory( NULL )
+{}
+
+MenuItem* MenuBuilder::AddMenuItem( const char *pszButtonText, const char *pszCommand, const char *pszCategoryName )
+{
+ AddSepratorIfNeeded( pszCategoryName );
+ return m_pMenu->GetMenuItem( m_pMenu->AddMenuItem( pszButtonText, new KeyValues( pszCommand ), m_pActionTarget ) );
+}
+
+MenuItem* MenuBuilder::AddCascadingMenuItem( const char *pszButtonText, Menu *pSubMenu, const char *pszCategoryName )
+{
+ AddSepratorIfNeeded( pszCategoryName );
+ return m_pMenu->GetMenuItem( m_pMenu->AddCascadingMenuItem( pszButtonText, m_pActionTarget, pSubMenu ) );
+}
+
+void MenuBuilder::AddSepratorIfNeeded( const char *pszCategoryName )
+{
+ // Add a separator if the categories are different
+ if ( m_pszLastCategory && V_stricmp( pszCategoryName, m_pszLastCategory ) != 0 )
+ {
+ m_pMenu->AddSeparator();
+ }
+
+ m_pszLastCategory = pszCategoryName;
+}