#ifndef SPLITPANEL #define SPLITPANEL #include "splitwindow.h" namespace split_panel { /** * @brief 分割视图 */ class SPLITVIEW_EXPORT SplitPanel : public QWidget, public split_frame::SplitView { typedef float split_pos; typedef float split_width; public: SplitPanel(split_frame::ViewBase *first, split_frame::ViewBase *next, ViewRes *parent); virtual ~SplitPanel(); // ViewRes interface public: virtual split_frame::ResManager *splitManager() const override; virtual ViewRes *parentRes() const override; virtual bool canRetrieve() const override; virtual bool canClose() const override; virtual bool canReplace() const override; // ViewBase interface public: 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; // SplitView interface public: virtual std::tuple child() const override; virtual void replaceComp(ViewBase *view, ViewBase *old) override; virtual float splitterWidth() const override; virtual float splitterPos() const override; virtual void setSplitInfo(split_frame::SplitType type, float pos, float width) override; private: ViewRes *parent_inst; std::tuple split_member; // type, pos, width std::tuple split_info_value; QList view_list() const; }; } // namespace SplitFrame #endif // SPLITPANEL