Hasareej cluster tooltips (#1181)
EditorTransformComponent Cluster Tooltips
This commit is contained in:
+29
@@ -136,6 +136,13 @@ namespace AzToolsFramework
|
||||
static const char* const s_duplicateUndoRedoDesc = s_duplicateTitle;
|
||||
static const char* const s_deleteUndoRedoDesc = s_deleteTitle;
|
||||
|
||||
static const char* const TransformModeClusterTranslateTooltip = "Switch to translate mode";
|
||||
static const char* const TransformModeClusterRotateTooltip = "Switch to rotate mode";
|
||||
static const char* const TransformModeClusterScaleTooltip = "Switch to scale mode";
|
||||
static const char* const SpaceClusterWorldTooltip = "Toggle world space lock";
|
||||
static const char* const SpaceClusterParentTooltip = "Toggle parent space lock";
|
||||
static const char* const SpaceClusterLocalTooltip = "Toggle local space lock";
|
||||
|
||||
static const AZ::Color s_fadedXAxisColor = AZ::Color(AZ::u8(200), AZ::u8(127), AZ::u8(127), AZ::u8(255));
|
||||
static const AZ::Color s_fadedYAxisColor = AZ::Color(AZ::u8(127), AZ::u8(190), AZ::u8(127), AZ::u8(255));
|
||||
static const AZ::Color s_fadedZAxisColor = AZ::Color(AZ::u8(120), AZ::u8(120), AZ::u8(180), AZ::u8(255));
|
||||
@@ -2460,6 +2467,17 @@ namespace AzToolsFramework
|
||||
m_rotateButtonId = RegisterClusterButton(m_transformModeClusterId, "Translate");
|
||||
m_scaleButtonId = RegisterClusterButton(m_transformModeClusterId, "Scale");
|
||||
|
||||
// set button tooltips
|
||||
ViewportUi::ViewportUiRequestBus::Event(
|
||||
ViewportUi::DefaultViewportId, &ViewportUi::ViewportUiRequestBus::Events::SetClusterButtonTooltip, m_transformModeClusterId,
|
||||
m_translateButtonId, TransformModeClusterTranslateTooltip);
|
||||
ViewportUi::ViewportUiRequestBus::Event(
|
||||
ViewportUi::DefaultViewportId, &ViewportUi::ViewportUiRequestBus::Events::SetClusterButtonTooltip, m_transformModeClusterId,
|
||||
m_rotateButtonId, TransformModeClusterRotateTooltip);
|
||||
ViewportUi::ViewportUiRequestBus::Event(
|
||||
ViewportUi::DefaultViewportId, &ViewportUi::ViewportUiRequestBus::Events::SetClusterButtonTooltip, m_transformModeClusterId,
|
||||
m_scaleButtonId, TransformModeClusterScaleTooltip);
|
||||
|
||||
auto onButtonClicked = [this](ViewportUi::ButtonId buttonId)
|
||||
{
|
||||
if (buttonId == m_translateButtonId)
|
||||
@@ -2498,6 +2516,17 @@ namespace AzToolsFramework
|
||||
m_spaceCluster.m_parentButtonId = RegisterClusterButton(m_spaceCluster.m_spaceClusterId, "Parent");
|
||||
m_spaceCluster.m_localButtonId = RegisterClusterButton(m_spaceCluster.m_spaceClusterId, "Local");
|
||||
|
||||
// set button tooltips
|
||||
ViewportUi::ViewportUiRequestBus::Event(
|
||||
ViewportUi::DefaultViewportId, &ViewportUi::ViewportUiRequestBus::Events::SetClusterButtonTooltip,
|
||||
m_spaceCluster.m_spaceClusterId, m_spaceCluster.m_worldButtonId, SpaceClusterWorldTooltip);
|
||||
ViewportUi::ViewportUiRequestBus::Event(
|
||||
ViewportUi::DefaultViewportId, &ViewportUi::ViewportUiRequestBus::Events::SetClusterButtonTooltip,
|
||||
m_spaceCluster.m_spaceClusterId, m_spaceCluster.m_parentButtonId, SpaceClusterParentTooltip);
|
||||
ViewportUi::ViewportUiRequestBus::Event(
|
||||
ViewportUi::DefaultViewportId, &ViewportUi::ViewportUiRequestBus::Events::SetClusterButtonTooltip,
|
||||
m_spaceCluster.m_spaceClusterId, m_spaceCluster.m_localButtonId, SpaceClusterLocalTooltip);
|
||||
|
||||
auto onButtonClicked = [this](ViewportUi::ButtonId buttonId)
|
||||
{
|
||||
if (buttonId == m_spaceCluster.m_localButtonId)
|
||||
|
||||
@@ -163,6 +163,17 @@ namespace AzToolsFramework::ViewportUi::Internal
|
||||
}
|
||||
}
|
||||
|
||||
void ViewportUiCluster::SetButtonTooltip(const ButtonId buttonId, const AZStd::string& tooltip)
|
||||
{
|
||||
// get the action corresponding to the buttonId
|
||||
if (auto actionEntry = m_buttonActionMap.find(buttonId); actionEntry != m_buttonActionMap.end())
|
||||
{
|
||||
// update the tooltip
|
||||
auto action = actionEntry->second;
|
||||
action->setToolTip(QString((tooltip).c_str()));
|
||||
}
|
||||
}
|
||||
|
||||
ViewportUiWidgetCallbacks ViewportUiCluster::GetWidgetCallbacks()
|
||||
{
|
||||
return m_widgetCallbacks;
|
||||
|
||||
@@ -41,6 +41,8 @@ namespace AzToolsFramework::ViewportUi::Internal
|
||||
void Update();
|
||||
//! Adds a locked overlay to the button's icon.
|
||||
void SetButtonLocked(ButtonId buttonId, bool isLocked);
|
||||
//! Updates the button's tooltip to the passed string.
|
||||
void SetButtonTooltip(ButtonId buttonId, const AZStd::string& tooltip);
|
||||
//! Returns the widget manager.
|
||||
ViewportUiWidgetCallbacks GetWidgetCallbacks();
|
||||
|
||||
|
||||
@@ -108,6 +108,14 @@ namespace AzToolsFramework::ViewportUi::Internal
|
||||
}
|
||||
}
|
||||
|
||||
void ViewportUiDisplay::SetClusterButtonTooltip(const ViewportUiElementId clusterId, const ButtonId buttonId, const AZStd::string& tooltip)
|
||||
{
|
||||
if (auto viewportUiCluster = qobject_cast<ViewportUiCluster*>(GetViewportUiElement(clusterId).get()))
|
||||
{
|
||||
viewportUiCluster->SetButtonTooltip(buttonId, tooltip);
|
||||
}
|
||||
}
|
||||
|
||||
void ViewportUiDisplay::RemoveClusterButton(ViewportUiElementId clusterId, ButtonId buttonId)
|
||||
{
|
||||
if (auto cluster = qobject_cast<ViewportUiCluster*>(GetViewportUiElement(clusterId).get()))
|
||||
|
||||
@@ -59,6 +59,7 @@ namespace AzToolsFramework::ViewportUi::Internal
|
||||
void AddCluster(AZStd::shared_ptr<ButtonGroup> buttonGroup, Alignment align);
|
||||
void AddClusterButton(ViewportUiElementId clusterId, Button* button);
|
||||
void SetClusterButtonLocked(ViewportUiElementId clusterId, ButtonId buttonId, bool isLocked);
|
||||
void SetClusterButtonTooltip(ViewportUiElementId clusterId, ButtonId buttonId, const AZStd::string& tooltip);
|
||||
void RemoveClusterButton(ViewportUiElementId clusterId, ButtonId buttonId);
|
||||
void UpdateCluster(const ViewportUiElementId clusterId);
|
||||
|
||||
|
||||
@@ -77,6 +77,16 @@ namespace AzToolsFramework::ViewportUi
|
||||
}
|
||||
}
|
||||
|
||||
void ViewportUiManager::SetClusterButtonTooltip(const ClusterId clusterId, const ButtonId buttonId, const AZStd::string& tooltip)
|
||||
{
|
||||
if (auto clusterIt = m_clusterButtonGroups.find(clusterId); clusterIt != m_clusterButtonGroups.end())
|
||||
{
|
||||
auto cluster = clusterIt->second;
|
||||
m_viewportUi->SetClusterButtonTooltip(cluster->GetViewportUiElementId(), buttonId, tooltip);
|
||||
UpdateButtonGroupUi(cluster.get());
|
||||
}
|
||||
}
|
||||
|
||||
void ViewportUiManager::RegisterClusterEventHandler(const ClusterId clusterId, AZ::Event<ButtonId>::Handler& handler)
|
||||
{
|
||||
if (auto clusterIt = m_clusterButtonGroups.find(clusterId); clusterIt != m_clusterButtonGroups.end())
|
||||
|
||||
@@ -36,6 +36,7 @@ namespace AzToolsFramework::ViewportUi
|
||||
void SetClusterActiveButton(ClusterId clusterId, ButtonId buttonId) override;
|
||||
void SetSwitcherActiveButton(SwitcherId switcherId, ButtonId buttonId) override;
|
||||
void SetClusterButtonLocked(ClusterId clusterId, ButtonId buttonId, bool isLocked) override;
|
||||
void SetClusterButtonTooltip(ClusterId clusterId, ButtonId buttonId, const AZStd::string& tooltip) override;
|
||||
const ButtonId CreateClusterButton(ClusterId clusterId, const AZStd::string& icon) override;
|
||||
const ButtonId CreateSwitcherButton(
|
||||
SwitcherId switcherId, const AZStd::string& icon, const AZStd::string& name = AZStd::string()) override;
|
||||
|
||||
@@ -67,6 +67,8 @@ namespace AzToolsFramework::ViewportUi
|
||||
virtual void SetSwitcherActiveButton(SwitcherId clusterId, ButtonId buttonId) = 0;
|
||||
//! Adds a locked overlay to the cluster button's icon.
|
||||
virtual void SetClusterButtonLocked(ClusterId clusterId, ButtonId buttonId, bool isLocked) = 0;
|
||||
//! Updates/sets the cluster button's tooltip to the passed string.
|
||||
virtual void SetClusterButtonTooltip(ClusterId clusterId, ButtonId buttonId, const AZStd::string& tooltip) = 0;
|
||||
//! Registers a new button onto a cluster.
|
||||
virtual const ButtonId CreateClusterButton(const ClusterId clusterId, const AZStd::string& icon) = 0;
|
||||
//! Registers a new button onto a switcher.
|
||||
|
||||
Reference in New Issue
Block a user