mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-12 19:59:09 +00:00
1
This commit is contained in:
@@ -0,0 +1,122 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
//===========================================================================//
|
||||
|
||||
#ifndef ENTITYREPORTPANEL_H
|
||||
#define ENTITYREPORTPANEL_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include "vgui_controls/editablepanel.h"
|
||||
#include "tier1/utlstring.h"
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Forward declarations
|
||||
//-----------------------------------------------------------------------------
|
||||
class CFoundryDoc;
|
||||
class CDmeVMFEntity;
|
||||
|
||||
namespace vgui
|
||||
{
|
||||
class ComboBox;
|
||||
class Button;
|
||||
class TextEntry;
|
||||
class ListPanel;
|
||||
class CheckButton;
|
||||
class RadioButton;
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Panel that shows all entities in the level
|
||||
//-----------------------------------------------------------------------------
|
||||
class CEntityReportPanel : public vgui::EditablePanel
|
||||
{
|
||||
DECLARE_CLASS_SIMPLE( CEntityReportPanel, vgui::EditablePanel );
|
||||
|
||||
public:
|
||||
CEntityReportPanel( CFoundryDoc *pDoc, vgui::Panel* pParent, const char *pName ); // standard constructor
|
||||
|
||||
// Inherited from Panel
|
||||
virtual void OnTick();
|
||||
virtual void OnCommand( const char *pCommand );
|
||||
|
||||
private:
|
||||
enum FilterType_t
|
||||
{
|
||||
FILTER_SHOW_EVERYTHING = 0,
|
||||
FILTER_SHOW_POINT_ENTITIES = 1,
|
||||
FILTER_SHOW_BRUSH_ENTITIES = 2
|
||||
};
|
||||
|
||||
// Messages handled
|
||||
MESSAGE_FUNC_PARAMS( OnTextChanged, "TextChanged", kv );
|
||||
MESSAGE_FUNC_PARAMS( OnButtonToggled, "ButtonToggled", kv );
|
||||
MESSAGE_FUNC( OnDeleteEntities, "DeleteEntities" );
|
||||
|
||||
// FIXME: Necessary because SetSelected doesn't cause a ButtonToggled message to trigger
|
||||
MESSAGE_FUNC_PARAMS( OnCheckButtonChecked, "CheckButtonChecked", kv );
|
||||
MESSAGE_FUNC_PARAMS( OnRadioButtonChecked, "RadioButtonChecked", kv );
|
||||
|
||||
// Methods related to filtering
|
||||
void OnFilterByHidden( bool bState );
|
||||
void OnFilterByKeyvalue( bool bState );
|
||||
void OnFilterByClass( bool bState );
|
||||
void OnFilterKeyValueExact( bool bState );
|
||||
void OnFilterByType( FilterType_t type );
|
||||
void OnChangeFilterkey( const char *pText );
|
||||
void OnChangeFiltervalue( const char *pText );
|
||||
void OnChangeFilterclass( const char *pText );
|
||||
|
||||
// Methods related to updating the listpanel
|
||||
void UpdateEntityList();
|
||||
bool ShouldAddEntityToList( CDmeVMFEntity *pEntity );
|
||||
|
||||
// Methods related to saving settings
|
||||
void ReadSettingsFromRegistry();
|
||||
void SaveSettingsToRegistry();
|
||||
|
||||
// Call this when our settings are dirty
|
||||
void MarkDirty( bool bFilterDirty );
|
||||
|
||||
// Shows the most recent selected object in properties window
|
||||
void OnProperties();
|
||||
|
||||
CFoundryDoc *m_pDoc;
|
||||
FilterType_t m_iFilterByType;
|
||||
bool m_bFilterByClass;
|
||||
bool m_bFilterByHidden;
|
||||
bool m_bFilterByKeyvalue;
|
||||
bool m_bExact;
|
||||
bool m_bSuppressEntityListUpdate;
|
||||
|
||||
CUtlString m_szFilterKey;
|
||||
CUtlString m_szFilterValue;
|
||||
CUtlString m_szFilterClass;
|
||||
|
||||
bool m_bFilterTextChanged;
|
||||
float m_flFilterTime;
|
||||
|
||||
bool m_bRegistrySettingsChanged;
|
||||
float m_flRegistryTime;
|
||||
|
||||
vgui::CheckButton *m_pExact;
|
||||
vgui::ComboBox *m_pFilterClass;
|
||||
vgui::CheckButton *m_pFilterByClass;
|
||||
vgui::ListPanel *m_pEntities;
|
||||
vgui::TextEntry *m_pFilterKey;
|
||||
vgui::TextEntry *m_pFilterValue;
|
||||
vgui::CheckButton *m_pFilterByKeyvalue;
|
||||
vgui::CheckButton *m_pFilterByHidden;
|
||||
|
||||
vgui::RadioButton *m_pFilterEverything;
|
||||
vgui::RadioButton *m_pFilterPointEntities;
|
||||
vgui::RadioButton *m_pFilterBrushModels;
|
||||
};
|
||||
|
||||
|
||||
#endif // ENTITYREPORTPANEL_H
|
||||
Reference in New Issue
Block a user