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
|