VGUI PanelListPanel
Jump to navigation
Jump to search
A PanelListPanel is a vgui2 element defined in the vgui_controls library, in the file PanelListPanel.cpp. PanelListPanels are available in all source games. PanelListPanels display a list of user specified label, control pairs.
Example Usage
Before creating anything, we first need to include the PanelListPanel header file.
#include <vgui_controls/PanelListPanel.h>
PanelListPanels can be created via the c++ keyword new with a simple call to PanelListPanel.
vgui::PanelListPanel* myPanel = new PanelListPanel(this, "myPanel");
Once we have our PanelListPanel created, we can add controls to it in our ApplySchemeSettings function. Heres the ApplySchemeSettings function for the skeleton PanelListPanel displayed in the image to the right:
void CItemMenu::ApplySchemeSettings( vgui::IScheme *pScheme ) { BaseClass::ApplySchemeSettings( pScheme ); vgui::Label* label = new Label( this, "label1", "Label1" ); label->SetText("Label1"); for (int i = 0; i < 5; i++) { char buffer [40]; Q_snprintf(buffer, sizeof(buffer), "image%i", i); vgui::ImagePanel* imagePanel = new ImagePanel( this, buffer ); imagePanel->SetImage(scheme()->GetImage("", false)); Q_snprintf(buffer, sizeof(buffer), "label%i", i); vgui::Label* label = new Label( this, buffer, buffer ); label->SetText(buffer); m_pList->AddItem(label, imagePanel); } m_pList->SetVisible( true ); }
With m_pList being a pointer to the PanelListPanel.
Don't forget to set the size of the PaneListPanel!
void CItemMenu::PerformLayout() { BaseClass::PerformLayout(); m_pList->SetBounds( 280, 300, 200, 200 ); //posX, posY, width, height }
And we're done!