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

📄 listing.h

📁 winsail v2.0是用于DOS下的图形界面空间系统
💻 H
字号:
#ifndef _LISTING_H_
#define _LISTING_H_

#define ADD_LISTING_LOOP(a , b) { (a)++ ; (b) = (b)->pNext ;}
#define SUB_LISTING_LOOP(a , b) { (a)-- ; (b) = (b)->pPrev ;}

typedef struct tagListing LISTING;
typedef struct tagListing
{
	LISTING*	pPrev;
	LISTING*        pNext;
	void far*       pUser;
}LISTING,*LPLISTING;

typedef struct tagListingBoot
{
	LISTING*        pHead;
	LISTING*        pHeal;
	int		nLength;
}LISTINGBOOT;

BOOL InitListing(LISTING* pListing);

class CListManager
{
private:
	LISTINGBOOT	m_Root;
	void far        (*m_pDeleteFc)(void far*);
	int far         (*m_pCompareFc)(void far*,void far*);
private:
	BOOL            DeleteNode(void* pNode , BOOL bUser);
public:
	int             GetLength(){ return(m_Root.nLength);}
	LISTING*	GetHead(){return(m_Root.pHead);}
	LISTING*	GetHeal(){return(m_Root.pHeal);}

	static void     InitNode(LISTING* pNode);

	void		SetDeleteFc(void far (*pFc)(void far*)){ m_pDeleteFc = pFc;}
	void		SetCompareFc(int far (*pFc)(void far*,void far *)){ m_pCompareFc = pFc;}

	BOOL		AddHead(LISTING* pListing);
	BOOL		AddHeal(LISTING* pListing);
	BOOL	        AddUserToTail(void* pUser);

	BOOL            DeleteHead();
	BOOL            DeleteHeal();
	BOOL		DeleteAllNode();

	BOOL  		DeleteUser(void* pUser);
	BOOL		DeleteNode(LISTING* pNode);
	BOOL		DeleteNode(int nIndex);

	LISTING*        GetNode(int nIndex);
	void*           GetUser(int nIndex);

	LISTING*        Find(void far *pUser,int nSign = 0);

public:
	CListManager();
	~CListManager();

};

BOOL InitListing(LISTING* pListing);


#endif

⌨️ 快捷键说明

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