Files
BloomPatched/src/Insight/UserInterfaces/InsightWindow/Widgets/PaneWidget.hpp

47 lines
960 B
C++
Raw Normal View History

2022-02-06 20:28:46 +00:00
#pragma once
#include <QWidget>
#include <optional>
2022-02-06 20:28:46 +00:00
#include "PanelWidget.hpp"
#include "PaneState.hpp"
namespace Bloom::Widgets
{
class PaneWidget: public QWidget
{
Q_OBJECT
public:
2022-07-16 19:07:09 +01:00
bool activated = true;
bool attached = true;
2022-02-06 20:28:46 +00:00
PanelWidget* parentPanel = nullptr;
2022-07-16 19:07:09 +01:00
explicit PaneWidget(PanelWidget* parent);
2022-02-06 20:28:46 +00:00
[[nodiscard]] PaneState getCurrentState() const;
2022-07-16 19:07:09 +01:00
void activate();
void deactivate();
void restoreLastPaneState(const PaneState& lastPaneState);
2022-07-16 19:07:09 +01:00
signals:
void paneActivated();
void paneDeactivated();
void paneAttached();
void paneDetached();
protected:
void detach();
void attach();
void closeEvent(QCloseEvent* event) override;
private:
std::optional<DetachedWindowState> lastDetachedWindowState;
std::optional<DetachedWindowState> getDetachedWindowState() const;
2022-02-06 20:28:46 +00:00
};
}