logplus/Workflow/WFWidget/include/PaiMenuToolBar.h

110 lines
2.3 KiB
C
Raw Normal View History

2026-01-17 12:55:45 +08:00
/**
* @file PaiMenuToolBar.h
* @brief
* @date 2011-08-23
*/
#ifndef PAI_FRAME_WIDGET_PAIMENUTOOLBAR_H
#define PAI_FRAME_WIDGET_PAIMENUTOOLBAR_H
#include <QMenu>
#include "PaiToolBar.h"
#include "Turtle.h"
namespace pai
{
namespace gui
{
class MenuToolButton;
}
}
namespace pai
{
namespace gui
{
/**
* @class PaiMenuToolBar
* @brief P.A.I系统的插件的内容区通常有一个带菜单的工具栏
*/
class PAI_WIDGET_EXPORT PaiMenuToolBar:public pai::gui::PaiToolBar
{
Q_OBJECT
public:
/**
* @brief
* @param[in] title
* @param[in] pParent
*/
PaiMenuToolBar(const QString & title,QWidget *pParent);
/**
* @brief
*/
virtual ~PaiMenuToolBar();
/**
* @brief
* @return
*/
QMenu* GetMenu() const;
/**
* @brief
* @return
*/
QMenu* GetViewsMenu() const;
/**
* @brief
* @param[in] flag
*/
void setMenuButtonVisible(bool flag);
/**
* @brief
* @param[in] name
* @param[in] viewID ID
*/
void AddViewsMenuAction(QString & name, std::string viewID);
/**
* @brief
* @param[in] viewID ID
* @param[in] checked
*/
void SetViewMenuChecked(const QString & viewID, bool checked);
/**
* @brief Menu列表内容
* @param[in] isVisible Menu控件
*/
void Clear(bool isVisible);
public slots:
/**
* @brief TabWidget
* @param[in] extensionID ID
*/
void CloseTabWidget(const QString & extensionID);
protected:
/**
* @brief
* @param[in] pEvent
*/
virtual void paintEvent(QPaintEvent *pEvent);
private:
QMenu *m_pRootMenu; ///< 根菜单
QMenu *m_pViewsMenu; ///< 视图菜单栏
MenuToolButton *m_pMenuButton; ///< 菜单按钮
QAction *m_pMenuButtonAct;///< 菜单Action
};
}
}
#endif ///< PAI_FRAME_WIDGET_PAIMENUTOOLBAR_H