You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/Gems/LyShine/Code/Editor/QtHelpers.cpp

49 lines
1.4 KiB
C++

/*
* Copyright (c) Contributors to the Open 3D Engine Project
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#include "UiCanvasEditor_precompiled.h"
#include "EditorCommon.h"
#include <QtGui/private/qhighdpiscaling_p.h>
namespace QtHelpers
{
AZ::Vector2 QPointFToVector2(const QPointF& point)
{
return AZ::Vector2(aznumeric_cast<float>(point.x()), aznumeric_cast<float>(point.y()));
}
AZ::Vector2 MapGlobalPosToLocalVector2(const QWidget* widget, const QPoint& pos)
{
QPoint localPos = widget->mapFromGlobal(pos);
return QPointFToVector2(localPos);
}
bool IsGlobalPosInWidget(const QWidget* widget, const QPoint& pos)
{
QPoint localPos = widget->mapFromGlobal(pos);
const QSize& size = widget->size();
bool inWidget = (localPos.x() >= 0 && localPos.x() < size.width() && localPos.y() >= 0 && localPos.y() < size.height());
return inWidget;
}
float GetHighDpiScaleFactor(const QWidget& widget)
{
float dpiScale = QHighDpiScaling::factor(widget.windowHandle()->screen());
return dpiScale;
}
QSize GetDpiScaledViewportSize(const QWidget& widget)
{
float dpiScale = GetHighDpiScaleFactor(widget);
float width = ceilf(widget.size().width() * dpiScale);
float height = ceilf(widget.size().height() * dpiScale);
return QSize(width, height);
}
} // namespace QtHelpers