Files
o3de/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/DragAndDrop.h
T
Steve Pham 38261d0800 Shorten copyright headers by splitting into 2 lines (#2213)
* Updated all copyright headers to split the longer original copyright line into 2 shorter lines

Signed-off-by: Steve Pham <spham@amazon.com>
2021-07-16 15:25:48 -07:00

68 lines
1.8 KiB
C++

/*
* Copyright (c) Contributors to the Open 3D Engine Project.
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#pragma once
#include <AzQtComponents/AzQtComponentsAPI.h>
#include <QColor>
class QPainter;
class QSettings;
class QStyleOption;
class QWidget;
namespace AzQtComponents
{
class Style;
/**
* Special class to handle styling and painting of Drag and Drop operations.
* You can use DragAndDrop.ini to configure colors and line widths.
*/
class AZ_QT_COMPONENTS_API DragAndDrop
{
public:
struct DropIndicator
{
int rectOutlineWidth;
int lineSeparatorOutlineWidth;
int ballDiameter;
int ballOutlineWidth;
QColor rectOutlineColor;
QColor lineSeparatorColor;
QColor ballFillColor;
QColor ballOutlineColor;
};
struct DragIndicator
{
int rectBorderRadius;
QColor rectFillColor;
};
struct Config {
DropIndicator dropIndicator;
DragIndicator dragIndicator;
};
//! Loads the button config data from a settings object.
static DragAndDrop::Config loadConfig(QSettings& settings);
//! Returns default config data.
static DragAndDrop::Config defaultConfig();
//! Draw the drag indicator.
static bool drawDragIndicator(const Style* style, const QStyleOption* option, QPainter* painter, const QWidget* widget, const DragAndDrop::Config& config);
//! Draw the drop indicator.
static bool drawDropIndicator(const Style* style, const QStyleOption* option, QPainter* painter, const QWidget* widget, const DragAndDrop::Config& config);
};
}