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.
nmWATI/Include/iGui/iGuiGridPty/iGridResultGroup.h

62 lines
1.6 KiB
C++

#pragma once
#include "iGridResultItem.h"
// 列表区分组(应用于模型选择)
class X_GUI_GRIDPTY_EXPORT iGridResultGroup : public iGridResultItem
{
Q_OBJECT
public:
explicit iGridResultGroup(iGridResultItem* pParent = NULL);
~iGridResultGroup();
protected:
// 绘图
virtual void paint(QPainter* pPainter);
virtual void paintGroup(QPainter* pPainter, int nCountVisible);
virtual void paintItem(QPainter* pPainter);
virtual bool isPaintNeeded();
virtual void _paintItemIcon(QPainter* pPainter);
virtual void _paintItemTag(QPainter* pPainter, QString s);
virtual void _paintItemGrid(QPainter* pPainter);
public:
// 位置相关Bounds
virtual void setBounds(QRectF& rt); //全局
virtual QRectF getIconBound(); //Icon的Bound
virtual QRectF getLeftBounds(); //左
virtual float getItemHeight(); //当前节点高度,包括孩子
int getChildVisibleCount(); //可见的孩子数目
// 当前节点及孩子中的特定状态的节点(唯一)
virtual iGridResultItem* getItemOfState(ResultItemState o);
public:
virtual bool hitTest(QPoint pt, GridTickPos& ht, \
iGridResultItem*& pItem);
virtual bool hitTest_SelfOnly(QPoint pt, GridTickPos& ht, \
iGridResultItem*& pItem);
protected:
// 其它常量
float m_fIconWidth;
float m_fIconMarginH;
float m_fIconMarginV;
// Group模式的背景色
QColor m_groupBackColor[3];
// 图标
QPixmap m_oPixCollapse;
QPixmap m_oPixExpand;
};