Sketcher: DSHController - extend framework to make cursors OVP visibility dependent

This commit is contained in:
Abdullah Tahiri
2023-11-11 07:03:42 +01:00
committed by abdullahtahiriyo
parent e73d8e2e96
commit 136392830a
2 changed files with 55 additions and 3 deletions

View File

@@ -159,6 +159,7 @@ private:
void onModeChanged() override
{
DrawSketchHandler::resetPositionText();
toolWidgetManager.onHandlerModeChanged();
DSDefaultHandler::onModeChanged();

View File

@@ -195,12 +195,17 @@ protected:
init();
}
OnViewParameterVisibility visibility()
OnViewParameterVisibility visibility() const
{
return onViewParameterVisibility;
}
bool isVisible(Gui::EditableDatumLabel* ovp)
bool isVisibility(OnViewParameterVisibility visibility) const
{
return onViewParameterVisibility == visibility;
}
bool isVisible(Gui::EditableDatumLabel* ovp) const
{
switch (onViewParameterVisibility) {
@@ -229,6 +234,7 @@ protected:
dynamicOverride = false;
}
private:
void init()
{
@@ -452,6 +458,35 @@ public:
}
}
void drawPositionAtCursor(const Base::Vector2d& position)
{
if (shouldDrawPositionAtCursor()) {
handler->drawPositionAtCursor(position);
}
}
void drawDirectionAtCursor(const Base::Vector2d& position, const Base::Vector2d& origin)
{
if (shouldDrawDimensionsAtCursor()) {
handler->drawDirectionAtCursor(position, origin);
}
}
void
drawWidthHeightAtCursor(const Base::Vector2d& position, const double val1, const double val2)
{
if (shouldDrawDimensionsAtCursor()) {
handler->drawWidthHeightAtCursor(position, val1, val2);
}
}
void drawDoubleAtCursor(const Base::Vector2d& position, const double radius)
{
if (shouldDrawDimensionsAtCursor()) {
handler->drawDoubleAtCursor(position, radius);
}
}
protected:
/** @name NVI for extension of controller functionality in derived classes */
//@{
@@ -687,8 +722,24 @@ protected:
//@}
private:
ColorManager colorManager;
/** @name helper functions */
//@{
bool shouldDrawPositionAtCursor() const
{
return !(ovpVisibilityManager.isVisibility(
OnViewParameterVisibilityManager::OnViewParameterVisibility::ShowAll));
}
bool shouldDrawDimensionsAtCursor() const
{
return (ovpVisibilityManager.isVisibility(
OnViewParameterVisibilityManager::OnViewParameterVisibility::Hidden));
}
//@}
private:
OnViewParameterVisibilityManager ovpVisibilityManager;
ColorManager colorManager;
std::unique_ptr<DrawSketchKeyboardManager> keymanager;
};