57 lines
1.3 KiB
C++
57 lines
1.3 KiB
C++
//=========== Copyright Valve Corporation, All rights reserved. ===============//
|
|
//
|
|
// Purpose:
|
|
//=============================================================================//
|
|
|
|
#ifndef PANELHANDLE_H
|
|
#define PANELHANDLE_H
|
|
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "tier0/platform.h"
|
|
|
|
namespace panorama
|
|
{
|
|
|
|
const uint64 k_ulInvalidPanelHandle64 = 0x00000000FFFFFFFF;
|
|
|
|
//
|
|
// Safe handle to a panel. To get pointer to actual panel, call IUIEngine::GetPanelPtr
|
|
//
|
|
struct PanelHandle_t
|
|
{
|
|
int32 m_iPanelIndex; // index into panel map
|
|
uint32 m_unSerialNumber; // unique number used to ensure that panel at m_iPanelIndex is still the panel we originally pointed to
|
|
|
|
bool operator<( const PanelHandle_t &rhs ) const
|
|
{
|
|
if ( m_iPanelIndex != rhs.m_iPanelIndex )
|
|
return m_iPanelIndex < rhs.m_iPanelIndex;
|
|
|
|
return m_unSerialNumber < rhs.m_unSerialNumber;
|
|
}
|
|
|
|
bool operator==( const PanelHandle_t &rhs ) const
|
|
{
|
|
return (m_iPanelIndex == rhs.m_iPanelIndex) && (m_unSerialNumber == rhs.m_unSerialNumber);
|
|
}
|
|
|
|
bool operator!=( const PanelHandle_t &rhs ) const
|
|
{
|
|
return !(*this == rhs);
|
|
}
|
|
|
|
|
|
static const PanelHandle_t &InvalidHandle()
|
|
{
|
|
static PanelHandle_t s_invalid = { k_ulInvalidPanelHandle64 >> 32, 0xffffffff & k_ulInvalidPanelHandle64 };
|
|
return s_invalid;
|
|
}
|
|
};
|
|
|
|
} // namespace panorama
|
|
|
|
#endif // PANELHANDLE_H
|