111 lines
2.9 KiB
C
111 lines
2.9 KiB
C
|
|
/**
|
|||
|
|
* @file PaiToolBarView.h
|
|||
|
|
* @brief P.A.I 风格工具栏,默认包含一个工具栏,并且不能被删除
|
|||
|
|
* @date 2011-09-16
|
|||
|
|
*/
|
|||
|
|
#ifndef PAI_FRAME_WIDGET_PAITOOLBARVIEW_H
|
|||
|
|
#define PAI_FRAME_WIDGET_PAITOOLBARVIEW_H
|
|||
|
|
|
|||
|
|
#include <QWidget>
|
|||
|
|
#include "Turtle.h"
|
|||
|
|
|
|||
|
|
class QVBoxLayout;
|
|||
|
|
class QToolBar;
|
|||
|
|
|
|||
|
|
namespace pai
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @class PaiToolBarView
|
|||
|
|
* @brief P.A.I 风格工具栏,默认包含一个工具栏,并且不能被删除
|
|||
|
|
*/
|
|||
|
|
class PAI_WIDGET_EXPORT PaiToolBarView : public QWidget
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
/**
|
|||
|
|
* @enum EToolBarType
|
|||
|
|
* @brief 风格
|
|||
|
|
*/
|
|||
|
|
enum EToolBarType
|
|||
|
|
{
|
|||
|
|
NORMAL_TOOLBAR = 40, ///< 普通风格
|
|||
|
|
SMALL_TOOLBAR = 28 ///< 小模式ToolBar
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 构造函数
|
|||
|
|
* @param[in] pParent 父窗口句柄
|
|||
|
|
* @param[in] type 风格类型
|
|||
|
|
*/
|
|||
|
|
PaiToolBarView(QWidget *pParent = NULL, EToolBarType type = NORMAL_TOOLBAR);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 析构函数
|
|||
|
|
*/
|
|||
|
|
virtual ~PaiToolBarView();
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 获得视口
|
|||
|
|
* @return 视口
|
|||
|
|
*/
|
|||
|
|
QWidget* GetViewport();
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 重新设置一个视口,原视口会被清楚,新视口的的parent将会视为这个类的对象
|
|||
|
|
* @param[in] pWidget 视口组件
|
|||
|
|
*/
|
|||
|
|
void SetViewport(QWidget *pWidget);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 添加一个新的工具栏
|
|||
|
|
* @param[in] pToolBar 工具栏组件
|
|||
|
|
* @param[in] type 风格类型
|
|||
|
|
*/
|
|||
|
|
void AddToolBar(QToolBar *pToolBar, EToolBarType type = NORMAL_TOOLBAR);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 去掉指定的工具栏
|
|||
|
|
* @param[in] pToolBar 工具栏组件
|
|||
|
|
*/
|
|||
|
|
void RemoveToolBar(QToolBar *pToolBar);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 获得当前存在的工具栏指针序列
|
|||
|
|
* @return 当前存在的工具栏指针序列
|
|||
|
|
*/
|
|||
|
|
QList<QToolBar*> GetToolBars();
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 向指定工具栏添加QAction,如果工具栏未指定,将会被添加到第一个工具栏
|
|||
|
|
* @param[in] pAction action对象
|
|||
|
|
* @param[in] pToolBar 工具栏组件
|
|||
|
|
*/
|
|||
|
|
void AddAction(QAction *pAction, QToolBar *pToolBar = NULL);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 向指定工具栏添加QWidget,如果工具栏未指定,将会被添加到第一个工具栏
|
|||
|
|
* @param[in] pWidget widget对象
|
|||
|
|
* @param[in] pToolBar 工具栏组件
|
|||
|
|
*/
|
|||
|
|
void AddWidget(QWidget *pWidget, QToolBar *pToolBar = NULL);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 添加一个ToolButton(这里toolbar有2个固定的值所以可以将toolbutton设置为固定的大小)
|
|||
|
|
* @param[in] pToolButton toolbutton对象
|
|||
|
|
* @param[in] pToolBar 工具栏组件
|
|||
|
|
*/
|
|||
|
|
void AddToolButton(QWidget *pToolButton, QToolBar *pToolBar = NULL);
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
QWidget *m_pToolBarArea; ///< 工具栏区域
|
|||
|
|
QWidget *m_pViewport; ///< 视图
|
|||
|
|
QList<QToolBar*> m_ToolBars; ///< 工具栏
|
|||
|
|
QVBoxLayout *m_pMainVLayout; ///< 主布局
|
|||
|
|
QVBoxLayout *m_pToolBarLayout; ///< 工具栏布局
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endif ///< PAI_FRAME_WIDGET_PAITOOLBARVIEW_H
|
|||
|
|
|