用于EagleEye3.0 规则集漏报和误报测试的示例项目,项目收集于github和gitee
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

259 lines
5.4 KiB

/**
* Copyright (C) 2014-2050 SOUI团队
* All rights reserved.
*
* @file SItembox.h
* @brief
* @version v1.0
* @author soui
* @date 2014-07-03
*
* Describe
*/
#pragma once
#include <core/SPanel.h>
namespace SOUI
{
/**
* @class SItemBox
* @brief ItemBox
*
* Describe ItemBox
*/
class SItemBox
: public SScrollView
{
SOUI_CLASS_NAME(SItemBox, L"itembox")
public:
/**
* SItemBox::SItemBox
* @brief 构造函数
*
* Describe 构造函数
*/
SItemBox();
/**
* SItemBox::~SItemBox
* @brief 析构函数
*
* Describe 析构函数
*/
virtual ~SItemBox() {}
/**
* SItemBox::InsertItem
* @brief 插入新项
* @param LPCWSTR pszXml -- xml配置文件
* @param int iItem -- 索引
* @param BOOL bEnsureVisible -- 是否显示
* @return 返回SWindow
*
* Describe 插入新项
*/
SWindow* InsertItem(LPCWSTR pszXml,int iItem=-1,BOOL bEnsureVisible=FALSE);
/**
* SItemBox::InsertItem
* @brief 插入新项
* @param LPCWSTR pszXml -- xml配置文件
* @param int iItem -- 索引
* @param BOOL bEnsureVisible -- 是否显示
* @return 返回SWindow
*
* Describe 插入新项
*/
SWindow* InsertItem(pugi::xml_node xmlNode, int iItem=-1,BOOL bEnsureVisible=FALSE);
/**
* SItemBox::RemoveItem
* @brief 删除项
* @param UINT iItem -- 索引
* @return 返回BOOL
*
* Describe 删除项
*/
BOOL RemoveItem(UINT iItem);
/**
* SItemBox::RemoveItem
* @brief 删除项
* @param SWindow * pChild -- 窗口节点
* @return 返回BOOL
*
* Describe 删除项
*/
BOOL RemoveItem(SWindow * pChild);
/**
* SItemBox::SetNewPosition
* @brief 析构函数
* @param SWindow * pChild -- 节点
* @param DWORD nPos -- 位置
* @param BOOL bEnsureVisible -- 是否显示
* @return 返回BOOL
*
* Describe 析构函数
*/
BOOL SetNewPosition(SWindow * pChild, DWORD nPos, BOOL bEnsureVisible = TRUE);
/**
* SItemBox::RemoveAllItems
* @brief 删除所有
*
* Describe 删除所有
*/
void RemoveAllItems();
/**
* SItemBox::GetItemCount
* @brief 获取项个数
* @return UINT
*
* Describe 获取项个数
*/
UINT GetItemCount();
/**
* SItemBox::PageUp
* @brief 上一页
*
* Describe 上一页
*/
void PageUp();
/**
* SItemBox::PageDown
* @brief 下一页
*
* Describe 下一页
*/
void PageDown();
/**
* SItemBox::EnsureVisible
* @brief 设置显示
* @param SWindow *pItem -- 某项指针
*
* Describe 设置显示
*/
void EnsureVisible(SWindow *pItem);
/**
* SItemBox::GetItemPos
* @brief 获取某项得索引
* @return 返回int
*
* Describe 获取某项得索引
*/
int GetItemPos(SWindow * lpCurItem);
protected:
int m_nItemWid; /**< Item宽度 */
int m_nItemHei; /**< Item高度*/
int m_nSepWid; /**< */
int m_nSepHei; /**< */
/**
* SItemBox::UpdateScroll
* @brief 更新滚动条
*
* Describe 更新滚动条
*/
void UpdateScroll();
/**
* SItemBox::GetItemRect
* @brief 获取某项位置
* @param int iItem -- 某项索引
* @return 返回int
*
* Describe 获取某项得索引
*/
CRect GetItemRect(int iItem);
/**
* SItemBox::BringWindowAfter
* @brief 插入新节点
* @param SWindow * pChild -- 新节点
* @param SWindow * pInsertAfter -- 位置节点
*
* Describe 在某个节点后插入新节点
*/
void BringWindowAfter(SWindow * pChild, SWindow * pInsertAfter);
/**
* SItemBox::OnSize
* @brief 消息响应函数
* @param UINT nType --
* @param CSize size --
*
* Describe 获取某项得索引
*/
void OnSize(UINT nType, CSize size);
/**
* SItemBox::UpdateChildrenPosition
* @brief 更新子节点位置
*
* Describe 更新子节点位置
*/
virtual void UpdateChildrenPosition(){}//leave it empty
/**
* SItemBox::ReLayout
* @brief 重新布局
*
* Describe 重新布局
*/
void ReLayout();
/**
* SItemBox::OnScroll
* @brief 滚动事件
* @param BOOL bVertical -- 是否是竖直
* @param UINT uCode -- 消息码
* @param int nPos -- 位置
* @retur 返回int
*
* Describe 获取某项得索引
*/
virtual BOOL OnScroll(BOOL bVertical,UINT uCode,int nPos);
/**
* SItemBox::GetScrollLineSize
* @brief 获取滚动条大小
* @param BOOL bVertical -- 是否是竖直方向
* @retur 返回int
*
* Describe 获取滚动条大小
*/
virtual int GetScrollLineSize(BOOL bVertical);
/**
* SItemBox::CreateChildren
* @brief 创建新项
* @param pugi::xml_node xmlNode
* @return 返回BOOL
*
* Describe 获取某项得索引
*/
virtual BOOL CreateChildren(pugi::xml_node xmlNode);
SOUI_ATTRS_BEGIN()
ATTR_INT(L"itemWidth", m_nItemWid, TRUE)
ATTR_INT(L"itemHeight", m_nItemHei, TRUE)
ATTR_INT(L"sepWidth", m_nSepWid, TRUE)
ATTR_INT(L"sepHeight", m_nSepHei, TRUE)
SOUI_ATTRS_END()
SOUI_MSG_MAP_BEGIN()
MSG_WM_SIZE(OnSize)
SOUI_MSG_MAP_END()
};
}//namespace SOUI