2023-12-30 05:04:51 +00:00
|
|
|
#ifndef SPLITPANEL
|
|
|
|
#define SPLITPANEL
|
2023-08-26 12:40:57 +00:00
|
|
|
|
2023-12-30 05:04:51 +00:00
|
|
|
#include "splitwindow.h"
|
2023-08-26 12:40:57 +00:00
|
|
|
|
2023-12-30 05:04:51 +00:00
|
|
|
namespace split_panel {
|
2023-08-26 12:40:57 +00:00
|
|
|
|
|
|
|
/**
|
2023-12-30 05:04:51 +00:00
|
|
|
* @brief 分割视图
|
2023-08-26 12:40:57 +00:00
|
|
|
*/
|
2023-12-30 05:04:51 +00:00
|
|
|
class SPLITVIEW_EXPORT SplitPanel : public QWidget, public split_frame::SplitView {
|
|
|
|
typedef float split_pos;
|
|
|
|
typedef float split_width;
|
2023-08-26 12:40:57 +00:00
|
|
|
|
|
|
|
public:
|
2023-12-30 05:04:51 +00:00
|
|
|
SplitPanel(split_frame::ViewBase *first, split_frame::ViewBase *next, ViewRes *parent);
|
|
|
|
virtual ~SplitPanel();
|
2023-08-26 12:40:57 +00:00
|
|
|
|
|
|
|
// ViewRes interface
|
|
|
|
public:
|
2023-12-30 05:04:51 +00:00
|
|
|
virtual split_frame::ResManager *splitManager() const override;
|
2023-08-26 12:40:57 +00:00
|
|
|
virtual ViewRes *parentRes() const override;
|
2023-12-30 05:04:51 +00:00
|
|
|
virtual bool canRetrieve() const override;
|
|
|
|
virtual bool canClose() const override;
|
|
|
|
virtual bool canReplace() const override;
|
2023-08-26 12:40:57 +00:00
|
|
|
|
2023-12-30 05:04:51 +00:00
|
|
|
// ViewBase interface
|
2023-08-26 12:40:57 +00:00
|
|
|
public:
|
2023-12-30 05:04:51 +00:00
|
|
|
virtual QIcon icon() const override;
|
|
|
|
virtual QString title() const override;
|
|
|
|
virtual QWidget* widget() const override;
|
|
|
|
virtual QSizeF viewSize() const override;
|
|
|
|
virtual void resizeView(const QSizeF &outline) override;
|
2023-08-26 12:40:57 +00:00
|
|
|
|
2023-12-30 05:04:51 +00:00
|
|
|
// SplitView interface
|
2023-08-26 12:40:57 +00:00
|
|
|
public:
|
2023-12-30 05:04:51 +00:00
|
|
|
virtual std::tuple<split_frame::ViewBase *, split_frame::ViewBase *, split_frame::SplitType> child() const override;
|
|
|
|
virtual void replaceComp(ViewBase *view, ViewBase *old) override;
|
2023-08-26 12:40:57 +00:00
|
|
|
virtual float splitterWidth() const override;
|
|
|
|
virtual float splitterPos() const override;
|
2023-12-30 05:04:51 +00:00
|
|
|
virtual void setSplitInfo(split_frame::SplitType type, float pos, float width) override;
|
2023-08-26 12:40:57 +00:00
|
|
|
|
|
|
|
private:
|
2023-12-30 05:04:51 +00:00
|
|
|
ViewRes *parent_inst;
|
|
|
|
std::tuple<split_frame::ViewBase*, split_frame::ViewBase*, split_frame::SplitType> split_member;
|
|
|
|
// type, pos, width
|
|
|
|
std::tuple<split_pos, split_width> split_info_value;
|
2023-08-26 12:40:57 +00:00
|
|
|
|
2023-12-30 05:04:51 +00:00
|
|
|
QList<split_frame::ViewBase*> view_list() const;
|
2023-08-26 12:40:57 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace SplitFrame
|
|
|
|
|
2023-12-30 05:04:51 +00:00
|
|
|
#endif // SPLITPANEL
|