110 lines
2.3 KiB
C++
110 lines
2.3 KiB
C++
/**
|
||
* @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
|