Sketcher: DSHController - extend framework to make cursors OVP visibility dependent
This commit is contained in:
committed by
abdullahtahiriyo
parent
e73d8e2e96
commit
136392830a
@@ -159,6 +159,7 @@ private:
|
||||
|
||||
void onModeChanged() override
|
||||
{
|
||||
DrawSketchHandler::resetPositionText();
|
||||
toolWidgetManager.onHandlerModeChanged();
|
||||
DSDefaultHandler::onModeChanged();
|
||||
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user