mirror of
https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System.git
synced 2024-11-15 13:15:43 +08:00
97 lines
2.3 KiB
C
97 lines
2.3 KiB
C
|
#pragma once
|
||
|
|
||
|
#include "DockManager.h"
|
||
|
|
||
|
#include <QAction>
|
||
|
#include <QMap>
|
||
|
|
||
|
namespace QtAdsUtl
|
||
|
{
|
||
|
|
||
|
class DockInDockWidget;
|
||
|
class DockInDockManager : public ads::CDockManager
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
|
||
|
typedef ads::CDockManager baseClass;
|
||
|
|
||
|
public:
|
||
|
DockInDockManager( DockInDockWidget& parent );
|
||
|
~DockInDockManager() override;
|
||
|
|
||
|
void fillViewMenu( QMenu* menu, const std::vector<DockInDockManager*>& moveTo );
|
||
|
void fillMoveMenu( QMenu* menu, const std::vector<DockInDockManager*>& moveTo );
|
||
|
|
||
|
void addPerspectiveRec( const QString& name );
|
||
|
void openPerspectiveRec( const QString& name );
|
||
|
void removePerspectivesRec();
|
||
|
void loadPerspectivesRec(QSettings& Settings);
|
||
|
void savePerspectivesRec(QSettings& Settings) const;
|
||
|
|
||
|
static DockInDockManager* dockInAManager( ads::CDockWidget* widget );
|
||
|
|
||
|
inline DockInDockWidget& parent() { return m_parent; }
|
||
|
|
||
|
void childManagers( std::vector<DockInDockManager*>& managers, bool rec ) const;
|
||
|
std::vector<DockInDockManager*> allManagers( bool includeThis, bool rec ) const;
|
||
|
std::vector<std::pair<DockInDockManager*,ads::CDockWidget*>> allDockWidgets( bool includeThis, bool rec ) const;
|
||
|
|
||
|
QString getGroupName();
|
||
|
QString getPersistGroupName();
|
||
|
static QString getGroupNameFromPersistGroupName( QString persistGroupName );
|
||
|
|
||
|
QMap<QString,QStringList> getGroupContents();
|
||
|
|
||
|
ads::CDockAreaWidget* getInsertDefaultPos();
|
||
|
|
||
|
std::vector<ads::CDockWidget*> getWidgetsInGUIOrder() const;
|
||
|
|
||
|
private:
|
||
|
DockInDockWidget& m_parent;
|
||
|
};
|
||
|
|
||
|
class CreateChildDockAction : public QAction
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
public:
|
||
|
CreateChildDockAction( DockInDockWidget& dockInDock, QMenu* menu );
|
||
|
|
||
|
public slots:
|
||
|
void createGroup();
|
||
|
|
||
|
private:
|
||
|
DockInDockWidget& m_dockInDock;
|
||
|
};
|
||
|
|
||
|
class DestroyGroupAction : public QAction
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
public:
|
||
|
DestroyGroupAction( DockInDockWidget* widget, QMenu* menu );
|
||
|
|
||
|
public slots:
|
||
|
void destroyGroup();
|
||
|
|
||
|
private:
|
||
|
DockInDockWidget* m_widget;
|
||
|
};
|
||
|
|
||
|
class MoveDockWidgetAction : public QAction
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
public:
|
||
|
MoveDockWidgetAction( ads::CDockWidget* widget, DockInDockManager* moveTo, QMenu* menu );
|
||
|
|
||
|
static void move( ads::CDockWidget* widget, DockInDockManager* moveTo );
|
||
|
|
||
|
public slots:
|
||
|
void move();
|
||
|
|
||
|
private:
|
||
|
ads::CDockWidget* m_widget;
|
||
|
DockInDockManager* m_moveTo;
|
||
|
};
|
||
|
|
||
|
}
|
||
|
|