hl2_src-leak-2017/src/public/panorama/layout/stylesymbol.h

74 lines
1.6 KiB
C++

//=========== Copyright Valve Corporation, All rights reserved. ===============//
//
// Purpose:
//=============================================================================//
#ifndef STYLESYMBOL_H
#define STYLESYMBOL_H
#ifdef _WIN32
#pragma once
#endif
#define MAX_PANORAMA_STYLE_SYMBOLS 128
#include "tier0/validator.h"
#include "utlsymbol.h"
#include "utlvector.h"
#ifdef SOURCE_PANORAMA_FIXME
#include "UtlSortVector.h"
#else
#include "utlsortvector.h"
#endif
#include "utlstring.h"
namespace panorama
{
class CStyleProperty;
class CStyleSymbol
{
public:
// constructor, destructor
CStyleSymbol() : m_Id( 0xFF ) {}
CStyleSymbol( uint8 id ) : m_Id( id ) {}
CStyleSymbol( char const* pStr );
CStyleSymbol( char const* pStr, bool bCreateNew );
CStyleSymbol( CStyleSymbol const& sym ) : m_Id(sym.m_Id) {}
// operator=
CStyleSymbol& operator=( CStyleSymbol const& src ) { m_Id = src.m_Id; return *this; }
// operator==
bool operator==( CStyleSymbol const& src ) const { return m_Id == src.m_Id; }
bool operator==( char const* pStr ) const;
// operator !=
bool operator!=( CStyleSymbol const& src ) const { return m_Id != src.m_Id; }
// operator <
bool operator < (const CStyleSymbol &rhs ) const { return m_Id < rhs.m_Id; }
uint8 GetID() const { return m_Id; }
// Is valid?
bool IsValid() const { return m_Id != 0xFF; }
// Gets the string associated with the symbol
char const* String() const;
operator const char *() const { return String(); }
protected:
uint8 m_Id;
};
uint32 HashItem( const CStyleSymbol &item );
} // namespace panorama
#endif // STYLESYMBOL_H