⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cdiskusersview.h

📁 PGP8.0源码 请认真阅读您的文件包然后写出其具体功能
💻 H
字号:
/*____________________________________________________________________________
		Copyright (C) 2002 PGP Corporation
        All rights reserved.

        $Id: CDiskUsersView.h,v 1.3 2002/08/06 20:09:23 dallen Exp $
____________________________________________________________________________*/

#ifndef Included_CDiskUsersView_h	// [
#define Included_CDiskUsersView_h

#include "CList.h"
#include "CString.h"
#include "CListView.h"

#include "pgpDiskPubTypes.h"

_PGP_BEGIN

// Types

class CPGPdiskContext;
class CPGPdiskUser;
class CPGPdiskUserSet;

// Class CDiskUsersView

class CDiskUsersView : public CListView
{
public:
	enum
	{
		kUserNameColFlag	= 0x0001, 
		kReadOnlyColFlag	= 0x0002, 
		kKindColFlag		= 0x0004, 
	};

private:
	enum {kPixelsLeftMargin = 2};

	struct DiskUserItem;
	struct DKViewDrawElements;

public:
	CDiskUsersView();
	~CDiskUsersView() { }

	PGPBoolean	AreUnknownUsers() const;

	void	GetSelectedUsers(CPGPdiskUserSet *pUsers) const;
	void	SelectIndex(PGPInt32 i);
	void	SelectAllItems();

	void	SetActiveColumns(PGPUInt32 columns);
	void	SortOnColumn(PGPUInt32 column);

	void	LookupUnknownKeys();

	void	Fill(const CPGPdiskContext *pContext, 
		const CPGPdiskUserSet& diskUsers, PGPBoolean singleSelect = FALSE);
	void	Clear();

	void	Create(HWND parent, PGPUInt32 id, PGPInt32 xOffset = 0, 
		PGPInt32 yOffset = 0, PGPInt32 width = 0, PGPInt32 height = 0);

private:
	const CPGPdiskContext	*mPContext;
	CPGPdiskUserSet			*mPDiskUsers;

	CList<DiskUserItem>	mItemList;
	DKViewDrawElements	*mPDE;

	PGPBoolean	mSingleSelect;
	PGPBoolean	mSortAscending;
	PGPUInt32	mLastSortColumn;

	PGPUInt32	mActiveColumns;
	PGPUInt32	mUserNameColIndex;
	PGPUInt32	mReadOnlyColIndex;
	PGPUInt32	mKindColIndex;

	int	DiskUserViewCompareProcAux(const DiskUserItem *pUser1, 
		const DiskUserItem *pUser2);

	static int CALLBACK	DiskUserViewCompareProc(LPARAM lParam1, 
		LPARAM lParam2, LPARAM lParamSort);

	void	DrawTrueFalseButton(CDC& itemDC, const CRect& ptrBarRect, 
		PGPBoolean trueFalse, PGPBoolean isSelected) const;
	void	DrawItemColumn(CDC& itemDC, const char *userID, const CRect& 
		prcClip) const;

	void	DrawUserItemAux(LPDRAWITEMSTRUCT pDIS, 
		PGPBoolean isFocused) const;
	void	DrawUserItem(LPDRAWITEMSTRUCT pDIS) const;

	DiskUserItem *	GetItemAtIndex(PGPInt32 i) const;
	PGPdiskUserRef	GetUserAtIndex(PGPInt32 i) const;
	PGPInt32		GetIndexOfItem(const DiskUserItem *pItem) const;
	PGPInt32		GetIndexOfEqualUser(const CPGPdiskUser& diskUser) const;

	void	CalcItemDisplayData(DiskUserItem *pItem, 
		PGPBoolean redraw = FALSE) const;

	void	AddUser(const CPGPdiskUser& diskUser);
	void	RemoveUser(const CPGPdiskUser& diskUser);
	void	UpdateUser(const CPGPdiskUser& updatedUser, 
		PGPBoolean redraw = FALSE);

	void	CreateDrawElements();
	void	DeleteDrawElements();
	void	UpdateColumns();

	void		GenerateMeasureItem() const;

	void		OnContextMenu(HWND menuWnd, CPoint coords);
	BOOL		OnDrawItem(PGPUInt16 ctrlId, LPDRAWITEMSTRUCT pDIS);
	void		OnKeyDown(PGPUInt32 vKey, PGPUInt32 keyData);
	BOOL		OnMeasureItem(PGPUInt16 ctrlId, LPMEASUREITEMSTRUCT pMIS);
	void		OnMenuSelect(PGPUInt16 ctrlId, PGPUInt16 flags, 
		HMENU hwndMenu);
	void		OnNcDestroy();
	PGPUInt32	OnNotify(PGPUInt16 ctrlId, LPNMHDR pNMHDR);
	void		OnSysColorChange();

private:
	void	Create(HWND parent, PGPUInt32 style, PGPUInt32 exStyle, 
		PGPInt32 xOffset, PGPInt32 yOffset, PGPInt32 width, 
		PGPInt32 height);	// not implemented
};

_PGP_END

#endif	// ] Included_CDiskUsersView_h

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -