1
0
mirror of https://github.com/nillerusr/source-engine.git synced 2025-03-13 06:01:53 +00:00
2023-10-03 17:23:56 +03:00

69 lines
1.8 KiB
C++

#ifndef _INCLUDED_SWARMOPEDIA_PANEL_H
#define _INCLUDED_SWARMOPEDIA_PANEL_H
#ifdef _WIN32
#pragma once
#endif
#include <vgui_controls/Panel.h>
namespace vgui
{
class Label;
class TextEntry;
class ComboBox;
class CheckButton;
class Button;
class PanelListPanel;
};
class SwarmopediaTopicButton;
// shows a list of buttons down the left side of the screen, each one corresponding to a HTML page to display on the right
class SwarmopediaPanel : public vgui::Panel
{
DECLARE_CLASS_SIMPLE( SwarmopediaPanel, vgui::Panel );
public:
SwarmopediaPanel( vgui::Panel *pParent, const char *pElementName);
virtual ~SwarmopediaPanel();
virtual void PerformLayout();
virtual void ApplySchemeSettings(vgui::IScheme *pScheme);
virtual void OnCommand(const char* command);
virtual void OnThink();
bool ShowDoc(const char *szDoc);
bool ShowList(const char *szListName);
void AddListEntry(const char* szName, const char* szArticle, const char* szListTarget, int iSectionHeader);
void ListEntryClicked(SwarmopediaTopicButton *pTopic);
private:
vgui::Label *m_pTopicLabel;
vgui::PanelListPanel *m_pList;
vgui::HTML *m_pHTML;
bool m_bCreatedPanels;
};
class SwarmopediaTopicButton : public vgui::Panel
{
DECLARE_CLASS_SIMPLE( SwarmopediaTopicButton, vgui::Panel );
public:
SwarmopediaTopicButton( vgui::Panel *pParent, const char *pElementName, SwarmopediaPanel *pSwarmopedia);
virtual ~SwarmopediaTopicButton();
virtual void PerformLayout();
virtual void ApplySchemeSettings(vgui::IScheme *pScheme);
virtual void OnMouseReleased(vgui::MouseCode code);
virtual void OnCursorEntered();
virtual void OnCursorExited();
char m_szArticleTarget[128];
char m_szListTarget[128];
vgui::Label* m_pLabel;
vgui::HFont m_hFont;
SwarmopediaPanel* m_pSwarmopedia;
int m_iSectionHeader;
};
#endif _INCLUDED_SWARMOPEDIA_PANEL_H