mirror of
https://github.com/wolfpld/tracy.git
synced 2024-11-26 16:04:34 +00:00
Animate highlighted messages on the timeline.
This commit is contained in:
parent
bb44e80e5a
commit
659ef87974
@ -1804,26 +1804,40 @@ void View::DrawZones()
|
|||||||
const auto dist = std::distance( msgit, next );
|
const auto dist = std::distance( msgit, next );
|
||||||
|
|
||||||
const auto px = ( (*msgit)->time - m_zvStart ) * pxns;
|
const auto px = ( (*msgit)->time - m_zvStart ) * pxns;
|
||||||
|
const bool isMsgHovered = hover && ImGui::IsMouseHoveringRect( wpos + ImVec2( px - (ty - to) * 0.5 - 1, oldOffset ), wpos + ImVec2( px + (ty - to) * 0.5 + 1, oldOffset + ty ) );
|
||||||
|
|
||||||
|
unsigned int color = 0xFFDDDDDD;
|
||||||
|
float animOff = 0;
|
||||||
if( dist > 1 )
|
if( dist > 1 )
|
||||||
{
|
{
|
||||||
unsigned int color = 0xFFDDDDDD;
|
|
||||||
if( m_msgHighlight && m_msgHighlight->thread == v->id )
|
if( m_msgHighlight && m_msgHighlight->thread == v->id )
|
||||||
{
|
{
|
||||||
const auto hTime = m_msgHighlight->time;
|
const auto hTime = m_msgHighlight->time;
|
||||||
if( (*msgit)->time <= hTime && ( next == v->messages.end() || (*next)->time > hTime ) )
|
if( (*msgit)->time <= hTime && ( next == v->messages.end() || (*next)->time > hTime ) )
|
||||||
{
|
{
|
||||||
color = 0xFF4444FF;
|
color = 0xFF4444FF;
|
||||||
|
if( !isMsgHovered )
|
||||||
|
{
|
||||||
|
animOff = -fabs( sin( s_time * 8 ) ) * th;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
draw->AddTriangleFilled( wpos + ImVec2( px - (ty - to) * 0.5, oldOffset + to ), wpos + ImVec2( px + (ty - to) * 0.5, oldOffset + to ), wpos + ImVec2( px, oldOffset + to + th ), color );
|
draw->AddTriangleFilled( wpos + ImVec2( px - (ty - to) * 0.5, animOff + oldOffset + to ), wpos + ImVec2( px + (ty - to) * 0.5, animOff + oldOffset + to ), wpos + ImVec2( px, animOff + oldOffset + to + th ), color );
|
||||||
draw->AddTriangle( wpos + ImVec2( px - (ty - to) * 0.5, oldOffset + to ), wpos + ImVec2( px + (ty - to) * 0.5, oldOffset + to ), wpos + ImVec2( px, oldOffset + to + th ), color, 2.0f );
|
draw->AddTriangle( wpos + ImVec2( px - (ty - to) * 0.5, animOff + oldOffset + to ), wpos + ImVec2( px + (ty - to) * 0.5, animOff + oldOffset + to ), wpos + ImVec2( px, animOff + oldOffset + to + th ), color, 2.0f );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
const auto color = ( m_msgHighlight == *msgit ) ? 0xFF4444FF : 0xFFDDDDDD;
|
if( m_msgHighlight == *msgit )
|
||||||
draw->AddTriangle( wpos + ImVec2( px - (ty - to) * 0.5, oldOffset + to ), wpos + ImVec2( px + (ty - to) * 0.5, oldOffset + to ), wpos + ImVec2( px, oldOffset + to + th ), color, 2.0f );
|
{
|
||||||
|
color = 0xFF4444FF;
|
||||||
|
if( !isMsgHovered )
|
||||||
|
{
|
||||||
|
animOff = -fabs( sin( s_time * 8 ) ) * th;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
draw->AddTriangle( wpos + ImVec2( px - (ty - to) * 0.5, animOff + oldOffset + to ), wpos + ImVec2( px + (ty - to) * 0.5, animOff + oldOffset + to ), wpos + ImVec2( px, animOff + oldOffset + to + th ), color, 2.0f );
|
||||||
}
|
}
|
||||||
if( hover && ImGui::IsMouseHoveringRect( wpos + ImVec2( px - (ty - to) * 0.5 - 1, oldOffset ), wpos + ImVec2( px + (ty - to) * 0.5 + 1, oldOffset + ty ) ) )
|
if( isMsgHovered )
|
||||||
{
|
{
|
||||||
ImGui::BeginTooltip();
|
ImGui::BeginTooltip();
|
||||||
if( dist > 1 )
|
if( dist > 1 )
|
||||||
|
Loading…
Reference in New Issue
Block a user