PanelList SubPanel
Jump to navigation
Jump to search
CPP
/////////// Copyright © 2007, Mark Chandler. All rights reserved. /////////// // // Description: // This is the core of the subpanel // // Mark Chandler 2007 admin@lodle.net // //////////////////////////////////////////////////////////////////////////////// #include "cbase.h" #include "pd_mappanel.h" #define ROUND(arg) floor(arg+0.5) #define MARG 5 PD_MapPanel::PD_MapPanel(Panel *parent, const char *name) : PD_BasePanel(parent, name) { m_pNameLab = new vgui::Label(this, "NameLabel", "Sub Name"); m_pTextLab= new vgui::Label(this, "TextLabel", "Sub Text"); m_pNameLab->SetMouseInputEnabled(false); m_pTextLab->SetMouseInputEnabled(false); m_bNeedsUpdate = true; Q_strncpy(m_szName,"Sub NAME", 256); Q_strncpy(m_szText,"Sub Text", 256); m_iLevel = 0; OnSizeChanged(GetWide(), GetTall()); } void PD_MapPanel::OnThink( void ) { if (m_bNeedsUpdate) { m_pNameLab->SetText(m_szName); m_pTextLab->SetText(m_szSubName); m_pNameLab->SetFgColor(Color(0,0,0,255)); m_pTextLab->SetFgColor(Color(0,0,0,255)); } } void PD_MapPanel::OnSizeChanged(int newWide, int newTall) { int w = newWide - MARG; int h = (newTall - MARG*4 - 2 - 2)/3; int y1 = MARG+MARG; int y2 = y1 + 2 + h; m_pNameLab->SetBounds(newTall+MARG, y1, w, h); m_pTextLab->SetBounds(newTall+MARG, y2, w, h); }
Header
/////////// Copyright © 2007, Mark Chandler. All rights reserved. /////////// // // Description: // This is the sub panel for the panel list // // Mark Chandler 2007 admin@lodle.net // //////////////////////////////////////////////////////////////////////////////// #ifndef SUBPanel_H #define SUBPanel_H #ifdef _WIN32 #pragma once #endif #include <vgui_controls/panel.h> #include <vgui_controls/Label.h> #include "pd_panel_list.h" using namespace vgui; class SubPanel : public PD_BasePanel { DECLARE_CLASS_SIMPLE( PD_MapPanel, PD_BasePanel ); PD_MapPanel(Panel *parent, const char *name); void SetTitle( char* name){Q_strncpy(m_szName,name,256);m_bNeedsUpdate=true;} void SetText( char* text){Q_strncpy(m_szText,text,256);m_bNeedsUpdate=true;} void OnThink( void ); void OnSizeChanged(int newWide, int newTall); private: vgui::Label *m_pNameLab; vgui::Label *m_pTextLab; bool m_bNeedsUpdate; char m_szName[256]; char m_szText[256]; }; #endif