From 0d8dceea4310fde5706b3ce1c70609d72a38efdf Mon Sep 17 00:00:00 2001 From: John Schoenick Date: Wed, 9 Sep 2015 18:35:41 -0700 Subject: Updated the SDK with the latest code from the TF and HL2 branches. --- mp/src/vgui2/vgui_controls/Menu.cpp | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) (limited to 'mp/src/vgui2/vgui_controls/Menu.cpp') 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; +} -- cgit v1.2.3