|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <QVector>
|
|
|
|
|
#include <QWidget>
|
|
|
|
|
|
|
|
|
|
#include "IxPtyPano.h"
|
|
|
|
|
#include "iProperty_global.h"
|
|
|
|
|
|
|
|
|
|
class ZxXpfNode;
|
|
|
|
|
class ZxPtyPano;
|
|
|
|
|
class ZxPtyAttributeFile;
|
|
|
|
|
class IxPtyItemEditor;
|
|
|
|
|
|
|
|
|
|
// 属性项
|
|
|
|
|
class I_PROPERTY_EXPORT ZxPtyItem
|
|
|
|
|
: virtual public IxPtyItem
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
ZxPtyItem(ZxPtyPano* pSheet);
|
|
|
|
|
~ZxPtyItem();
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
// 创建具体的组件
|
|
|
|
|
IxPtyItemEditor* tryCreateEditor(const QString& sPtyTag);
|
|
|
|
|
|
|
|
|
|
// 配置设定
|
|
|
|
|
void setConfig(ZxXpfNode* p, bool isInit);
|
|
|
|
|
void loadInitConfig();
|
|
|
|
|
ZxXpfNode* getItemNodeBy(ZxXpfNode* config, \
|
|
|
|
|
QString sItemTag, \
|
|
|
|
|
bool bCaseInsensitive = true) const;
|
|
|
|
|
QString getItemAttributeBy(ZxXpfNode* config, \
|
|
|
|
|
QString sItemTag, \
|
|
|
|
|
bool bCaseInsensitive = true) const;
|
|
|
|
|
|
|
|
|
|
// 对应文件
|
|
|
|
|
ZxPtyAttributeFile* getAttributeFile() const;
|
|
|
|
|
|
|
|
|
|
// 载体
|
|
|
|
|
virtual IxPtyPano* getPtyPano() const;
|
|
|
|
|
|
|
|
|
|
// 父级属性项
|
|
|
|
|
virtual IxPtyItem* getParent() const;
|
|
|
|
|
|
|
|
|
|
// 父级属性项:名称
|
|
|
|
|
QString getParentConfigName(ZxXpfNode* config) const;
|
|
|
|
|
QString macrosExpanded(const QString& s) const; //宏模式处理
|
|
|
|
|
|
|
|
|
|
// 是否分组
|
|
|
|
|
virtual bool isGroup() const;
|
|
|
|
|
|
|
|
|
|
// 取值范围
|
|
|
|
|
virtual void setLimit(int nMin, int nMax);
|
|
|
|
|
virtual void setLimit(double fMin, double fMax);
|
|
|
|
|
|
|
|
|
|
// 对于下拉类型的设定
|
|
|
|
|
virtual void setOptions(const QStringList& listName, const QList<QVariant>& listValue);
|
|
|
|
|
virtual void setOptions(const QStringList& listName, const QStringList& listValue);
|
|
|
|
|
virtual void setOptions(const QStringList& listName, const QList<int>& listValue);
|
|
|
|
|
|
|
|
|
|
// 当前标识
|
|
|
|
|
QString getLabel();
|
|
|
|
|
|
|
|
|
|
// 当前值
|
|
|
|
|
virtual QVariant getValue() const;
|
|
|
|
|
virtual void setValue(const QVariant& v, IxInterface* pSetBy = NULL);
|
|
|
|
|
void onValueChanged(const QVariant& v);
|
|
|
|
|
|
|
|
|
|
// 键值
|
|
|
|
|
const QString& getKey() const;
|
|
|
|
|
QString getFullKey() const;
|
|
|
|
|
QString getParam(int index) const;
|
|
|
|
|
|
|
|
|
|
// 排序
|
|
|
|
|
static bool displayOrder(const ZxPtyItem* a, const ZxPtyItem* b);
|
|
|
|
|
|
|
|
|
|
// 系列属性
|
|
|
|
|
// 可见
|
|
|
|
|
virtual bool isVisible() const;
|
|
|
|
|
virtual void setVisible(bool bVisible);
|
|
|
|
|
int getVisibleRows();
|
|
|
|
|
bool isHideByCollapse();
|
|
|
|
|
bool isVirtualVisible();
|
|
|
|
|
|
|
|
|
|
// 只读
|
|
|
|
|
virtual bool isReadOnly() const;
|
|
|
|
|
virtual void setReadOnly(bool bReadOnly);
|
|
|
|
|
|
|
|
|
|
// 展开
|
|
|
|
|
virtual void setExpand(bool bExpand);
|
|
|
|
|
|
|
|
|
|
// 激活条目
|
|
|
|
|
virtual void activate();
|
|
|
|
|
|
|
|
|
|
// 高度
|
|
|
|
|
virtual void setHeight(int height);
|
|
|
|
|
virtual int getHeight() const;
|
|
|
|
|
|
|
|
|
|
// 该行 底及高度
|
|
|
|
|
int getRowBottom() const;
|
|
|
|
|
int getRowHeight() const;
|
|
|
|
|
|
|
|
|
|
// 双击响应
|
|
|
|
|
void onDoubleCliked(int n);
|
|
|
|
|
|
|
|
|
|
// 窗体
|
|
|
|
|
QWidget* getOwnerWidget();
|
|
|
|
|
QWidget* getItemWidget();
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
int m_nIndexReal; //实际的行号
|
|
|
|
|
int m_nIndexVirtual; //显示在第几行, 有条目展开/折叠时, 这个值可能会变
|
|
|
|
|
int m_nOrder; //显示顺序
|
|
|
|
|
|
|
|
|
|
int m_nOffsetY; //当前显示位置, Y坐标
|
|
|
|
|
int m_nCurCellHeight; //当前条目的高度
|
|
|
|
|
int m_nItemIndent; //缩进
|
|
|
|
|
|
|
|
|
|
bool m_bExpanded; //是否展开,对于group而言
|
|
|
|
|
bool m_bHidden; //是否隐藏
|
|
|
|
|
bool m_bActive; //是否激活
|
|
|
|
|
bool m_bReadonly; //是否只读
|
|
|
|
|
bool m_bHasMacros; //宏定义模式
|
|
|
|
|
|
|
|
|
|
QString m_sItemLabel; //显示的标签
|
|
|
|
|
QString m_sItemTips;
|
|
|
|
|
QVariant m_oItemValue; //当前值
|
|
|
|
|
|
|
|
|
|
ZxPtyPano* sheet; //所属的属性表
|
|
|
|
|
IxPtyItemEditor* m_pPtyItemEditor; //所属的属性控件
|
|
|
|
|
QStringList m_listParams; //key is at front, ie m_listParams[0]
|
|
|
|
|
|
|
|
|
|
QList<ZX_PROPERTY_CHANGED_CALLBACK_EX> handlers; //回调, 往对象回传新值
|
|
|
|
|
|
|
|
|
|
ZxPtyItem* parent; //父条目
|
|
|
|
|
QVector<ZxPtyItem*> children; //子条目
|
|
|
|
|
|
|
|
|
|
// 其它常量
|
|
|
|
|
int m_nCELL_HEIGHT;
|
|
|
|
|
int m_nCellSpacing;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|