#pragma once #include #include "nmSubWnd_global.h" class iRibbonXmlCmd; class iSubWnd; // 本来主要是为数值部分提供SubWnd初始化构造的方法 class NM_SUB_WND_EXPORT nmSubWndUtils : public QObject { Q_OBJECT public: /// @brief 构造窗体,根据RibbonXmlCmd /// @note 权宜之计:此处构造的窗体,无需额外删除(析构),系统会统一处理 static iSubWnd* createSubWnd(iRibbonXmlCmd* pCmdInfo); /// @brief 构造窗体,根据sID和sExt /// @note sID和sExt也是来自于RibbonXmlCmd /// @note 权宜之计:此处构造的窗体,无需额外删除(析构),系统会统一处理 static iSubWnd* createSubWnd(QString sID, QString sExt); /// @brief 执行一些特殊的功能按钮 /// @return 只要是数值模块自己的按钮,请返回true,否则,返回false /// @note 此处指的是:与SubWnd无关,即不受SubWnd限制的功能按钮 /// sID和sExt也是来自于RibbonXmlCmd static bool runCmdBySpecial(iRibbonXmlCmd* pCmdInfo); static bool runCmdBySpecial(QString sID, QString sExt); /// @brief 在当前没有激活数值SubWnd的情况下,判断是否某些命令是否Enable /// @param sID(in) 命令ID /// @param sName(in) 命令Name /// @param bLicensed(const in)当前是否正式授权 /// @note sID和sName也是来自于RibbonXmlCmd static bool isEnableOfID_Common(QString sID, QString sName, const bool bLicensed); private: // 新建一个数值分析,向导 static bool runCmd_NewAnal(); };