hl2_src-leak-2017/src/tools/foundry/foundrytool.h

66 lines
1.8 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: Foundry tool; main UI smarts class
//
//=============================================================================
#ifndef FOUNDRYTOOL_H
#define FOUNDRYTOOL_H
#ifdef _WIN32
#pragma once
#endif
#include "tier0/platform.h"
#include "datamodel/idatamodel.h"
//-----------------------------------------------------------------------------
// Forward declarations
//-----------------------------------------------------------------------------
class CDmeEditorTypeDictionary;
class CDmeVMFEntity;
namespace vgui
{
class Panel;
}
//-----------------------------------------------------------------------------
// Singleton interfaces
//-----------------------------------------------------------------------------
extern CDmeEditorTypeDictionary *g_pEditorTypeDict;
//-----------------------------------------------------------------------------
// Allows the doc to call back into the Foundry editor tool
//-----------------------------------------------------------------------------
abstract_class IFoundryDocCallback
{
public:
// Called by the doc when the data changes
virtual void OnDocChanged( const char *pReason, int nNotifySource, int nNotifyFlags ) = 0;
};
//-----------------------------------------------------------------------------
// Global methods of the foundry tool
//-----------------------------------------------------------------------------
abstract_class IFoundryTool
{
public:
// Gets at the rool panel (for modal dialogs)
virtual vgui::Panel *GetRootPanel() = 0;
// Gets the registry name (for saving settings)
virtual const char *GetRegistryName() = 0;
// Shows a particular entity in the entity properties dialog
virtual void ShowEntityInEntityProperties( CDmeVMFEntity *pEntity ) = 0;
};
extern IFoundryTool *g_pFoundryTool;
#endif // FOUNDRYTOOL_H