You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.6 KiB
66 lines
1.6 KiB
1 year ago
|
#ifndef TILEGEN_ROOMTEMPLATELISTPANEL_H
|
||
|
#define TILEGEN_ROOMTEMPLATELISTPANEL_H
|
||
|
#ifdef _WIN32
|
||
|
#pragma once
|
||
|
#endif
|
||
|
|
||
|
class CRoomTemplate;
|
||
|
class CRoomTemplatePanel;
|
||
|
namespace vgui
|
||
|
{
|
||
|
class Button;
|
||
|
};
|
||
|
|
||
|
// arranges all room template panels to fit in rows inside this panel
|
||
|
class CRoomTemplateListPanel : public vgui::Panel
|
||
|
{
|
||
|
DECLARE_CLASS_SIMPLE( CRoomTemplateListPanel, vgui::Panel );
|
||
|
|
||
|
public:
|
||
|
|
||
|
CRoomTemplateListPanel(Panel *parent, const char *name);
|
||
|
virtual ~CRoomTemplateListPanel();
|
||
|
|
||
|
virtual void PerformLayout();
|
||
|
|
||
|
void UpdatePanelsWithTemplate( const CRoomTemplate *pTemplate );
|
||
|
void UpdateRoomList();
|
||
|
|
||
|
MESSAGE_FUNC( OnRefreshList, "RefreshList" );
|
||
|
MESSAGE_FUNC( OnExpandAll, "ExpandAllFolders" );
|
||
|
MESSAGE_FUNC( OnCollapseAll, "CollapseAllFolders" );
|
||
|
MESSAGE_FUNC_PARAMS( OnToggleFolder, "ToggleFolder", pKV );
|
||
|
|
||
|
static const int m_nFilterTextLength = 256;
|
||
|
void SetFilterText( const char *pText );
|
||
|
|
||
|
private:
|
||
|
void AddFolder( const char *pFolderName );
|
||
|
bool FilterTemplate( const CRoomTemplate *pTemplate );
|
||
|
|
||
|
char m_FilterText[m_nFilterTextLength];
|
||
|
|
||
|
CUtlVector< CRoomTemplatePanel * > m_Thumbnails;
|
||
|
|
||
|
vgui::Button *m_pRefreshList;
|
||
|
vgui::Button *m_pExpandAll;
|
||
|
vgui::Button *m_pCollapseAll;
|
||
|
|
||
|
struct RoomTemplateFolder_t
|
||
|
{
|
||
|
char m_FolderName[MAX_PATH];
|
||
|
bool m_bExpanded;
|
||
|
vgui::Button *m_pFolderButton;
|
||
|
|
||
|
void SetButtonText();
|
||
|
};
|
||
|
|
||
|
static int CompareFolders( const RoomTemplateFolder_t *pFolder1, const RoomTemplateFolder_t *pFolder2 )
|
||
|
{
|
||
|
return Q_stricmp( pFolder1->m_FolderName, pFolder2->m_FolderName );
|
||
|
}
|
||
|
|
||
|
CUtlVector< RoomTemplateFolder_t > m_RoomTemplateFolders;
|
||
|
};
|
||
|
|
||
|
#endif TILEGEN_ROOMTEMPLATELISTPANEL_H
|