Display hint on mouse over
This commit is contained in:
parent
e2e9db52a2
commit
36920e68ed
@ -367,6 +367,16 @@ void FPGAViewWidget::paintGL()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
QtImGui::newFrame();
|
QtImGui::newFrame();
|
||||||
|
QMutexLocker lock(&rendererArgsLock_);
|
||||||
|
|
||||||
|
if (!(rendererArgs_->hoveredDecal == DecalXY()))
|
||||||
|
{
|
||||||
|
ImGui::BeginTooltip();
|
||||||
|
ImGui::PushTextWrapPos(ImGui::GetFontSize() * 35.0f);
|
||||||
|
ImGui::TextUnformatted(rendererArgs_->hintText.c_str());
|
||||||
|
ImGui::PopTextWrapPos();
|
||||||
|
ImGui::EndTooltip();
|
||||||
|
}
|
||||||
ImGui::Render();
|
ImGui::Render();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -690,6 +700,7 @@ void FPGAViewWidget::mouseMoveEvent(QMouseEvent *event)
|
|||||||
QMutexLocker locked(&rendererArgsLock_);
|
QMutexLocker locked(&rendererArgsLock_);
|
||||||
rendererArgs_->hoveredDecal = DecalXY();
|
rendererArgs_->hoveredDecal = DecalXY();
|
||||||
rendererArgs_->changed = true;
|
rendererArgs_->changed = true;
|
||||||
|
rendererArgs_->hintText = "";
|
||||||
pokeRenderer();
|
pokeRenderer();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -700,6 +711,14 @@ void FPGAViewWidget::mouseMoveEvent(QMouseEvent *event)
|
|||||||
QMutexLocker locked(&rendererArgsLock_);
|
QMutexLocker locked(&rendererArgsLock_);
|
||||||
rendererArgs_->hoveredDecal = closest.decal(ctx_);
|
rendererArgs_->hoveredDecal = closest.decal(ctx_);
|
||||||
rendererArgs_->changed = true;
|
rendererArgs_->changed = true;
|
||||||
|
if (closest.type == ElementType::BEL) {
|
||||||
|
rendererArgs_->hintText = std::string("BEL\n") + ctx_->getBelName(closest.bel).c_str(ctx_);
|
||||||
|
} else if (closest.type == ElementType::WIRE) {
|
||||||
|
rendererArgs_->hintText = std::string("WIRE\n") + ctx_->getWireName(closest.wire).c_str(ctx_);
|
||||||
|
} else if (closest.type == ElementType::PIP) {
|
||||||
|
rendererArgs_->hintText = std::string("PIP\n") + ctx_->getPipName(closest.pip).c_str(ctx_);
|
||||||
|
} else rendererArgs_->hintText = "";
|
||||||
|
|
||||||
pokeRenderer();
|
pokeRenderer();
|
||||||
}
|
}
|
||||||
update();
|
update();
|
||||||
|
@ -268,6 +268,8 @@ class FPGAViewWidget : public QOpenGLWidget, protected QOpenGLFunctions
|
|||||||
|
|
||||||
// Flags to pass back into the RendererData.
|
// Flags to pass back into the RendererData.
|
||||||
PassthroughFlags flags;
|
PassthroughFlags flags;
|
||||||
|
// Hint text
|
||||||
|
std::string hintText;
|
||||||
};
|
};
|
||||||
std::unique_ptr<RendererArgs> rendererArgs_;
|
std::unique_ptr<RendererArgs> rendererArgs_;
|
||||||
QMutex rendererArgsLock_;
|
QMutex rendererArgsLock_;
|
||||||
|
Loading…
Reference in New Issue
Block a user