#pragma once #include "iXmlBaseItem.h" #include "iXmlBtn.h" #include "Enums.h" /** * 曲线越界的处理方式 */ enum ExceedShowStyle { ESS_None = 0, ESS_Exceed, ///< 越界 ESS_NoExceed, ///< 不越界 ESS_SecondRatio ///< 第二比例 }; /** * 刻度类型 */ enum ScaleType { ST_None = 0, ST_Linear, ///< 线性 ST_Logrithmic, ///< 对数 ST_Inclination ///< 倾角 }; /** * 曲线显示风格 */ enum CurveStyle { CS_None = 0, CS_Curve, ///< 曲线 CS_PreLadder, ///< 前阶梯 CS_PostLadder, ///< 后阶梯 CS_Pillar, ///< 杆状图 CS_Dot, ///< 散点 CS_DotCurve, ///< 散点曲线 CS_PillarCurve ///< 杆状曲线 }; // @brief 测井曲线绘图配置信息 class I_XMLMANAGER_EXPORT iXmlLogConfig : public iXmlBaseItem { public: iXmlLogConfig(QObject* parent = 0); ~iXmlLogConfig(); // 把List分配到成员变量 // 输入开始的m_listValues中index,并且返回下一个index virtual int allocateInfo(int nIndex); void clear(); //十进制颜色转换 QColor transColor(int n); protected: virtual void initXmlTags(); public: double m_dLeftScale; //左刻度 double m_dRightScale; //右刻度 ScaleType m_scaleType; //刻度类型 Qt::PenStyle m_eStyle; //线型 double m_dWidth; //线宽 QColor m_clrLine; //线色 int m_nclr; //仅仅做判断用 ExceedShowStyle m_exceedShowStyle; //越界显示方式 }; typedef QVector vecXmlLogConfigsPtr; // @brief 交会图配置信息 class I_XMLMANAGER_EXPORT iXmlCorssConfig : public iXmlBaseItem { public: iXmlCorssConfig(QObject* parent = 0); ~iXmlCorssConfig(); // 把List分配到成员变量 // 输入开始的m_listValues中index,并且返回下一个index virtual int allocateInfo(int nIndex); void clear(); protected: virtual void initXmlTags(); public: double m_dLeftScale ; double m_dRightScale; double m_dMainSpace; double m_dSubSpace; }; typedef QVector vecXmlCorssConfigsPtr; // @brief 柱状图配置信息 class I_XMLMANAGER_EXPORT iXmlHistoConfig : public iXmlCorssConfig { public: iXmlHistoConfig(); ~iXmlHistoConfig(); }; typedef QVector vecXmlHistoConfigsPtr; // @brief Curve字典信息 class I_XMLMANAGER_EXPORT iXmlCurveItem : public iXmlBaseItem { public: iXmlCurveItem(QObject* parent = 0); ~iXmlCurveItem(); iXmlCurveItem* getParenItem(); // 把List分配到成员变量 // 输入开始的m_listValues中index,并且返回下一个index virtual int allocateInfo(int nIndex); virtual void parseInfo(const QDomElement& e); void clear(); //别名 QString getAlias(); //显示名称 QString getShowName(); //图标 QString getIcon(); //类型 CurveStyle getCurveStyle(); //单位 QString getUnit(); //最大值 double getMax(); //最小值 double getMin(); //备注 QString getRemark(); //测井图 //左刻度 double getLogLeftScale(); //右刻度 double getLogRightScale(); //刻度类型 ScaleType getLogScaleType(); //线型 Qt::PenStyle getLineStyle(); //线宽 double getLineWidth(); //线色 QColor getLineClr(); //越界显示方式 ExceedShowStyle getExceedShowStyle(); //交会图 //左刻度 double getCrossLeftScale(); //右刻度 double getCrossRightScale(); //大格 double getCrossMainSpace(); //小格 double getCrossSubSpace(); //柱状图 //左刻度 double getHistoLeftScale(); //右刻度 double getHistoRightScale(); //大格 double getHistoMainSpace(); //小格 double getHistoSubSpace(); protected: virtual void initXmlTags(); public: // QString m_sCode; QString m_sAlias; //别称,中文 QString m_sShowName; //显示名称 QString m_sIcon; //图标 CurveStyle m_curveStyle; //类型 QString m_sUnit; //单位 double m_dMax; //最大值 double m_dMin; //最小值 QString m_sRemark; //备注 iXmlLogConfig* m_pLogConfig; //测井绘图配置 iXmlCorssConfig* m_pCorssConfig; //交会绘图配置 iXmlHistoConfig* m_pHistoConfig; //柱状绘图配置 }; typedef QVector vecXmlCurveItemsPtr;