12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- /*
- GWEN
- Copyright (c) 2010 Facepunch Studios
- See license in Gwen.h
- */
- #include "Gwen/ToolTip.h"
- #include "Gwen/Utility.h"
- using namespace Gwen;
- using namespace Gwen::Controls;
- namespace ToolTip
- {
- Base* g_ToolTip = NULL;
- void Enable( Controls::Base* pControl )
- {
- if ( !pControl->GetToolTip() )
- return;
- g_ToolTip = pControl;
- }
- void Disable( Controls::Base* pControl )
- {
- if ( g_ToolTip == pControl )
- {
- g_ToolTip = NULL;
- }
- }
- void RenderToolTip( Skin::Base* skin )
- {
- if ( !g_ToolTip ) return;
- Gwen::Renderer::Base* render = skin->GetRender();
- Gwen::Point pOldRenderOffset = render->GetRenderOffset();
- Gwen::Point MousePos = Input::GetMousePosition();
- Gwen::Rect Bounds = g_ToolTip->GetToolTip()->GetBounds();
- Gwen::Rect rOffset = Gwen::Rect( MousePos.x - Bounds.w * 0.5f, MousePos.y - Bounds.h - 10, Bounds.w, Bounds.h );
- rOffset = Utility::ClampRectToRect( rOffset, g_ToolTip->GetCanvas()->GetBounds() );
-
- //Calculate offset on screen bounds
- render->AddRenderOffset( rOffset );
- render->EndClip();
- skin->DrawToolTip( g_ToolTip->GetToolTip() );
- g_ToolTip->GetToolTip()->DoRender( skin );
- render->SetRenderOffset( pOldRenderOffset );
- }
- void ControlDeleted( Controls::Base* pControl )
- {
- Disable( pControl );
- }
- }
|