mirror of
https://github.com/bulletphysics/bullet3
synced 2024-12-13 21:30:09 +00:00
62 lines
1.3 KiB
C++
62 lines
1.3 KiB
C++
/*
|
|
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 );
|
|
}
|
|
}
|