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.
81 lines
2.1 KiB
81 lines
2.1 KiB
//=========== Copyright Valve Corporation, All rights reserved. ===============// |
|
// |
|
// Purpose: |
|
//=============================================================================// |
|
|
|
#ifndef PANORAMA_TOOLTIP_H |
|
#define PANORAMA_TOOLTIP_H |
|
|
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include "panel2d.h" |
|
#include "../uievent.h" |
|
#include "label.h" |
|
|
|
namespace panorama |
|
{ |
|
|
|
DECLARE_PANEL_EVENT0( TooltipVisible ); |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: Top level panel for a tooltip |
|
//----------------------------------------------------------------------------- |
|
class CTooltip : public CPanel2D |
|
{ |
|
DECLARE_PANEL2D( CTooltip, CPanel2D ); |
|
|
|
public: |
|
CTooltip( IUIWindow *pParent, const char *pchName ); |
|
CTooltip( CPanel2D *pParent, const char *pchName ); |
|
virtual ~CTooltip(); |
|
|
|
void SetTooltipTarget( const CPanelPtr< IUIPanel >& targetPanelPtr ); |
|
|
|
// Get/set tooltip visibility. This is actually determined by a .css class, |
|
// so that transitions can be supported |
|
bool IsTooltipVisible() const; |
|
void SetTooltipVisible( bool bVisible ); |
|
|
|
virtual void OnLayoutTraverse( float flFinalWidth, float flFinalHeight ); |
|
|
|
// request the tooltip to do positioning on the next layout |
|
virtual void CalculatePosition() { m_bReposition = true; InvalidateSizeAndPosition(); } |
|
|
|
private: |
|
|
|
void Init(); |
|
void UpdatePosition(); |
|
|
|
bool EventTooltipVisible( const panorama::CPanelPtr< panorama::IUIPanel > &pPanel ); |
|
|
|
bool m_bReposition; |
|
|
|
CPanelPtr< IUIPanel > m_pTooltipTarget; |
|
}; |
|
|
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: Simple tooltip that just shows a string of text |
|
//----------------------------------------------------------------------------- |
|
class CTextTooltip : public CTooltip |
|
{ |
|
DECLARE_PANEL2D( CTextTooltip, CTooltip ); |
|
|
|
public: |
|
CTextTooltip( IUIWindow *pParent, const char *pchName ); |
|
CTextTooltip( CPanel2D *pParent, const char *pchName ); |
|
virtual ~CTextTooltip(); |
|
|
|
void SetText( const char *pchText, CLabel::ETextType eTextType = CLabel::k_ETextTypePlain ); |
|
|
|
private: |
|
void Init(); |
|
|
|
CLabel *m_pText; |
|
}; |
|
|
|
} // namespace panorama |
|
|
|
#endif // PANORAMA_TOOLTIP_H
|