#ifndef PRESENT_CONTAINER_H #define PRESENT_CONTAINER_H #include "manager_docs.h" #include #include #include #include #include #include "message_view.h" namespace Presents { class WelcomePanel; } namespace Components { /** * @brief 内容视图容器 */ class PresentContainer : public QWidget ,public ExtendView, public Presents::PresentHost { Q_OBJECT public: PresentContainer(QWidget *ptr = nullptr); // PresentHost interface public: virtual QWidget *hostWidget() const override; virtual void addListener(Presents::HostListener *lst) override; virtual void append(Presents::FilePresent *ins) override; virtual bool active(const Presents::FilePresent *ins) override; virtual void remove(const Presents::FilePresent *ins) override; virtual bool contains(const Presents::FilePresent *ins) const override; virtual bool avaliable(Presents::FilePresent *vins) override; virtual Presents::FilePresent *currentPresent() const override; // ExtendView interface public: virtual ExtendView *newInst(QWidget *parent, XApp *core) override; virtual QMenu *bindMenu() const override; virtual QString typeName() const override; virtual ExtendType type() const override; virtual QWidget *presentWidget() const override; virtual void saveProcess() override; virtual void closeProcess() override; private: QList listeners_store; QList items_store; QComboBox *const title_store; QStackedWidget *const stack_container; Presents::WelcomePanel *const welcome_list; QPushButton *const close_btn; void change_view(int view_index); void close_current_view(); }; } // namespace Components #endif // PRESENT_CONTAINER_H