You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWTAI-Platform/Include/iGui/iGuiRibbon/iWxToolBar.h

101 lines
2.8 KiB
C

#pragma once
#include "iDlgBaseEx.h"
#include "iRibbonXmlTab.h"
#include "iGuiRibbon_global.h"
/// @brief Ribbon简化仅仅ToolBar模式
class I_GUI_RIBBON_EXPORT iWxToolBar : public iDlgBaseEx
{
Q_OBJECT
public:
explicit iWxToolBar(QString sXmlName = "", \
QWidget *parent = 0);
~iWxToolBar();
public:
virtual void initUI();
// 返回部分指针变量
vecRibbonTabPtr* getRibbonStruts();
QVector<QWidget*>* getSubCtrls();
// 根据辅助信息返回cmd
iRibbonXmlCmd* getCmdByExtInfo(QString sExtInfo);
// 根据ID返回cmd
iRibbonXmlCmd* getCmdByID(QString sID);
protected:
// 定义
void loadXmlStructs();
// 切换正常模式和简缩模式
virtual void swapTabMode(); //
// 各种类型
QWidget* createTabBy(iRibbonXmlTab* pTab);
QWidget* createGroupBy(iRibbonXmlGroup* pGroup);
QWidget* createCmdBy(iRibbonXmlCmd* pCmd);
QWidget* createCmdBy_Btn(iRibbonXmlCmd* pCmd);
QWidget* createCmdBy_Combo(iRibbonXmlCmd* pCmd);
QWidget* createCmdBy_Check(iRibbonXmlCmd* pCmd);
QWidget* createCmdBy_Radio(iRibbonXmlCmd* pCmd);
QWidget* createCmdBy_Text(iRibbonXmlCmd* pCmd);
QWidget* createCmdBy_Label(iRibbonXmlCmd* pCmd);
QWidget* createCmdBy_ListWx(iRibbonXmlCmd* pCmd);
//新增加边界框
QWidget* createCmdBy_LineEdit(iRibbonXmlCmd* pCmd);
virtual bool dealwithCmdSubBy(iRibbonXmlCmd* pCmd, QToolButton*& pBtn);
private slots:
void slotBtnClicked(); //Btn
void slotListCtrlIndexChanged(int); //Combox ListWx
void slotCheckCtrlClicked(bool); //CheckBox, RadioBox
signals:
/// @title Ribbon信号触发
/// @param pCtrl触发的子控件
/// @param pInfo关联的Ribbon配置信息来自xml
void sigRibbonActioned(QWidget* pCtrl,
iRibbonXmlCmd* pInfo,
QVariant o);
/// @title Ribbon信号触发
/// @param pCtrl触发的子控件
/// @param pInfo关联的Ribbon配置信息来自xml
/// @param listValues显示部分
/// @param listIDs
void sigRibbonGetListValues(QWidget* pCtrl,
iRibbonXmlCmd* pInfo,
QStringList& listValues,
QStringList& listIDs,
int& nCurSel);
void sigRibbonListWxCurChanged(QWidget* pCtrl,
iRibbonXmlCmd* pInfo,
int nCurSel);
void sigRibbonCheckWxClicked(QWidget* pCtrl,
iRibbonXmlCmd* pInfo,
bool bSelect);
protected:
QString m_sXmlName; //可以外部设定只是文件名不带xml后缀
// 配置化结构体
vecRibbonTabPtr m_vecTabXmls;
// 所有的控件
QVector<QWidget*> m_vecSubCtrls;
};