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

📄 calgorithmcombo.cpp

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

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

#include "pgpClassesConfig.h"

#include "CArray.h"
#include "CString.h"

#include "CPGPdiskEngine.h"
#include "CAlgorithmCombo.h"

_USING_PGP

// Class CAlgorithmCombo member functions

PGPdiskEncryptionAlgorithm 
CAlgorithmCombo::Get() const
{
	if (IsWindow())
		SetFromSel();

	return mAlgorithm;
}

void 
CAlgorithmCombo::Fill()
{
	// Fill in the algorithm combo box.
	ResetContent();

	CArray<PGPdiskEncryptionAlgorithm>	algArray;
	PGPUInt32							numAlgs;

	CPGPdiskEngine::GetSupportedDiskAlgorithms(algArray, &numAlgs);

	for (PGPUInt32 i = 0; i < numAlgs; i++)
	{
		// Don't display old CAST algorithm as a choice.
		if (algArray[i] == kPGPdiskOldCAST5Algorithm)
			continue;

		CString	algText;
		CPGPdiskEngine::GetDiskAlgorithmIdString(algArray[i], algText);

		PGPInt32	index	= AddString(algText);
		SetItemData(index, algArray[i]);
	}

	SetCurSel(0);
	SetFromSel();
}

void 
CAlgorithmCombo::Add(PGPdiskEncryptionAlgorithm algorithm)
{
	PGPInt32	index	= FindAlgorithmIndex(algorithm);

	if (index == -1)
	{
		CString	algText;
		CPGPdiskEngine::GetDiskAlgorithmIdString(algorithm, algText);

		PGPInt32	index	= AddString(algText);
		SetItemData(index, algorithm);
	}
}

void 
CAlgorithmCombo::Remove(PGPdiskEncryptionAlgorithm algorithm)
{
	PGPInt32	index	= FindAlgorithmIndex(algorithm);

	if (index != -1)
	{
		DeleteString(index);

		SetCurSel(0);
		SetFromSel();
	}
}

void 
CAlgorithmCombo::Set(PGPdiskEncryptionAlgorithm algorithm)
{
	PGPInt32	index	= FindAlgorithmIndex(algorithm);

	if (index != -1)
	{
		SetCurSel(index);
		SetFromSel();
	}
}

PGPInt32 
CAlgorithmCombo::FindAlgorithmIndex(PGPdiskEncryptionAlgorithm algorithm)
{
	PGPInt32	i;
	PGPInt32	count	= GetCount();

	for (i = 0; i < count; i++)
	{
		if (GetItemData(i) == static_cast<PGPUInt32>(algorithm))
			return i;
	}

	return -1;
}

void 
CAlgorithmCombo::SetFromSel() const
{
	mAlgorithm = static_cast<PGPdiskEncryptionAlgorithm>(
		GetItemData(GetCurSel()));
}

void 
CAlgorithmCombo::OnDestroy()
{
	SetFromSel();
}

⌨️ 快捷键说明

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