Team Fortress 2 Source Code as on 22/4/2020
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.
|
|
//=========== Copyright Valve Corporation, All rights reserved. ===============//
//
// Purpose:
//=============================================================================//
#ifndef CONTEXTMENU_H
#define CONTEXTMENU_H
#ifdef _WIN32
#pragma once
#endif
#include "panorama/controls/panel2d.h"
DECLARE_PANEL_EVENT1( ContextMenuEvent, const char * ) DECLARE_PANEL_EVENT1( ContextMenuEventDirect, panorama::IUIEvent * );
namespace panorama {
//-----------------------------------------------------------------------------
// Purpose: Helper class to derive from for creating context menus
//-----------------------------------------------------------------------------
class CContextMenu : public panorama::CPanel2D { DECLARE_PANEL2D( CContextMenu, panorama::CPanel2D );
public: CContextMenu( CPanel2D *pParent, const char *pchName, CPanel2D *pEventParent ); CContextMenu( IUIWindow *pParent, const char *pchName, CPanel2D *pEventParent ); virtual ~CContextMenu(); virtual bool OnClick( IUIPanel *pPanel, const panorama::MouseData_t &code );
void SetMenuTarget( const CPanelPtr< IUIPanel >& targetPanelPtr );
void CalculatePosition() { m_bReposition = true; InvalidateSizeAndPosition(); }
protected: CPanel2D *GetEventParent() { return m_pEventParent; }
private: void Initialize( CPanel2D *pEventParent );
void OnLayoutTraverse( float flFinalWidth, float flFinalHeight );
bool OnFireEvent( const panorama::CPanelPtr< panorama::IUIPanel > &ptrPanel, const char *pchEventText ); bool OnFireEvent( const panorama::CPanelPtr< panorama::IUIPanel > &ptrPanel, IUIEvent *pEvent ); bool OnCancelled( const panorama::CPanelPtr< panorama::IUIPanel > &pPanel, panorama::EPanelEventSource_t eSource );
CPanel2D *m_pEventParent; CPanelPtr< IUIPanel > m_pMenuTarget; double m_flCreateTime; bool m_bReposition; };
//-----------------------------------------------------------------------------
// Purpose: Helper class for simple context menus that doesn't require derivation
//-----------------------------------------------------------------------------
class CSimpleContextMenu : public panorama::CContextMenu { DECLARE_PANEL2D( CSimpleContextMenu, panorama::CContextMenu );
public: CSimpleContextMenu( CPanel2D *pParent, const char *pchName, CPanel2D *pEventParent ); CSimpleContextMenu( IUIWindow *pParent, const char *pchName, CPanel2D *pEventParent ); virtual ~CSimpleContextMenu();
void AddMenuItem( const char *pchLabelText, const char *pchEventText ); void AddMenuItemEvent( const char *pchLabel, IUIEvent *pEvent );
private:
};
} // namespace panorama
#endif // CONTEXTMENU_H
|