1 Star 0 Fork 0

yoyojacky/CSMoE

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
ListViewPanel.h 3.23 KB
一键复制 编辑 原始数据 按行查看 历史
//========= Copyright ?1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#ifndef LISTVIEWPANEL_H
#define LISTVIEWPANEL_H
#ifdef _WIN32
#pragma once
#endif
#include <tier1/utllinkedlist.h>
#include <tier1/utlvector.h>
namespace vgui2
{
class ListViewPanel;
typedef bool (*ListViewSortFunc_t)(KeyValues *kv1, KeyValues *kv2);
class ListViewItem;
//-----------------------------------------------------------------------------
// Purpose: List Ctrl Panel with each item having an icon and text after it
//-----------------------------------------------------------------------------
class ListViewPanel : public Panel
{
DECLARE_CLASS_SIMPLE( ListViewPanel, Panel );
public:
ListViewPanel(Panel *parent, const char *panelName);
~ListViewPanel();
virtual int AddItem(const KeyValues *data, bool bScrollToItem, bool bSortOnAdd);
virtual int GetItemCount();
virtual KeyValues *GetItem(int itemID);
virtual void ApplyItemChanges(int itemID);
virtual void RemoveItem(int itemID);
virtual void DeleteAllItems();
virtual int GetItemIDFromPos(int iPos); // valid from [0, GetItemCount)
virtual int InvalidItemID();
virtual bool IsValidItemID(int itemID);
virtual void ScrollToItem(int itemID);
virtual void SetSortFunc(ListViewSortFunc_t func);
virtual void SortList();
// image handling
virtual void SetImageList(ImageList *imageList, bool deleteImageListWhenDone);
virtual void SetFont(HFont font);
// returns the count of selected items
virtual int GetSelectedItemsCount();
// returns the selected item by selection index, valid in range [0, GetNumSelectedRows)
virtual int GetSelectedItem(int selectionIndex);
// sets no item as selected
virtual void ClearSelectedItems();
// adds a item to the select list
virtual void AddSelectedItem(int itemID);
// sets this single item as the only selected item
virtual void SetSingleSelectedItem(int itemID);
protected:
// overrides
virtual void OnMouseWheeled(int delta);
virtual void OnSizeChanged(int wide, int tall);
virtual void PerformLayout();
virtual void Paint();
virtual void ApplySchemeSettings(IScheme *pScheme);
virtual void OnMousePressed( MouseCode code);
virtual void OnMouseDoublePressed( MouseCode code);
virtual void OnKeyCodeTyped( KeyCode code);
virtual void OnKeyTyped(wchar_t unichar);
MESSAGE_FUNC( OnSliderMoved, "ScrollBarSliderMoved" );
virtual int GetItemsPerColumn();
private:
ScrollBar *m_hbar;
friend class ListViewItem;
void OnItemMousePressed(ListViewItem* pItem, MouseCode code);
void OnItemMouseDoublePressed(ListViewItem* pItem, MouseCode code);
int GetItemsMaxWidth();
int GetItemIndex(int itemID);
void OnShiftSelect(int itemID);
void FinishKeyPress(int itemID);
CUtlLinkedList<ListViewItem*, int> m_DataItems;
CUtlVector<int> m_SortedItems;
ListViewSortFunc_t m_pSortFunc;
int m_iRowHeight;
HFont m_hFont;
Color m_LabelFgColor;
Color m_SelectionFgColor;
// selection data
CUtlVector<int> m_SelectedItems;
int m_LastSelectedItemID;
int m_ShiftStartItemID;
bool m_bNeedsSort;
bool m_bDeleteImageListWhenDone;
ImageList *m_pImageList;
};
}
#endif // LISTVIEWPANEL_H
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/yoyojacky/CSMoE.git
git@gitee.com:yoyojacky/CSMoE.git
yoyojacky
CSMoE
CSMoE
master

搜索帮助