Files
o3de/Code/Framework/AzQtComponents/AzQtComponents/Components/DockTabBar.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

76 lines
2.2 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
#if !defined(Q_MOC_RUN)
#include <AzQtComponents/AzQtComponentsAPI.h>
#include <AzQtComponents/Components/Widgets/TabWidget.h>
#endif
class QAction;
class QMenu;
class QMouseEvent;
class QToolButton;
class QStyleOption;
class QStyleOptionTab;
namespace AzQtComponents
{
class DockBar;
class AZ_QT_COMPONENTS_API DockTabBar
: public TabBar
{
Q_OBJECT
Q_PROPERTY(bool singleTabFillsWidth READ singleTabFillsWidth WRITE setSingleTabFillsWidth NOTIFY singleTabFillsWidthChanged)
public:
static int closeButtonOffsetForIndex(const QStyleOptionTab* option);
explicit DockTabBar(QWidget* parent = nullptr);
using TabBar::mouseMoveEvent;
using TabBar::mouseReleaseEvent;
void contextMenuEvent(QContextMenuEvent* event) override;
void finishDrag();
QSize sizeHint() const override;
bool singleTabFillsWidth() const { return m_singleTabFillsWidth; }
void setSingleTabFillsWidth(bool singleTabFillsWidth);
void setIsShowingWindowControls(bool show);
QString tabText(int index) const;
Q_SIGNALS:
void closeTab(int index);
void undockTab(int index);
void singleTabFillsWidthChanged(bool singleTabFillsWidth);
protected:
void mousePressEvent(QMouseEvent* event) override;
void tabLayoutChange() override;
void tabInserted(int index) override;
protected Q_SLOTS:
void currentIndexChanged(int current);
void closeTabGroup();
private:
QWidget* m_tabIndicatorUnderlay;
QToolButton* m_leftButton;
QToolButton* m_rightButton;
QMenu* m_contextMenu;
QAction* m_closeTabMenuAction;
QAction* m_closeTabGroupMenuAction;
QAction* m_undockTabMenuAction;
QAction* m_undockTabGroupMenuAction;
int m_menuActionTabIndex;
bool m_singleTabFillsWidth;
bool m_isShowingWindowControls = false;
};
} // namespace AzQtComponents