clprefsemail.c

来自「PGP8.0源码 请认真阅读您的文件包然后写出其具体功能」· C语言 代码 · 共 201 行

C
201
字号
/*____________________________________________________________________________
	Copyright (C) 2002 PGP Corporation
	All rights reserved.
	
	CLprefsEmail.c - handle PGP email preferences dialogs

	$Id: CLprefsEmail.c,v 1.10 2002/08/06 20:09:19 dallen Exp $
____________________________________________________________________________*/
#include "pgpPFLConfig.h"

// project header files
#include "PGPclx.h"
#include "CLprefs.h"

// external globals
extern HINSTANCE	g_hInst;


static DWORD aEmailIds[] = {			// Help IDs
	IDC_USEPGPMIME,			IDH_PGPCLPREF_USEPGPMIME,
	IDC_ENCRYPTBYDEFAULT,	IDH_PGPCLPREF_ENCRYPTBYDEFAULT,
	IDC_SIGNBYDEFAULT,		IDH_PGPCLPREF_SIGNBYDEFAULT,
	IDC_AUTODECRYPT,		IDH_PGPCLPREF_AUTODECRYPT,
	IDC_USESECUREVIEWER,	IDH_PGPCLPREF_ALWAYSUSESECUREVIEWER,
	IDC_WRAPENABLE,			IDH_PGPCLPREF_WORDWRAPENABLE,
	IDC_COLUMNTEXT,			IDH_PGPCLPREF_WORDWRAPCOLUMN,
	IDC_WRAPNUMBER,			IDH_PGPCLPREF_WORDWRAPCOLUMN,
	0,0
};


//	_____________________________________________________
//
//  Message processing function for property sheet dialog

LRESULT WINAPI
CLEmailPropDlgProc (
		HWND	hwnd,
		UINT	uMsg,
		WPARAM	wParam,
		LPARAM	lParam)
{
	PPREFSDLGSTRUCT		ppds;

	switch (uMsg) {

	case WM_INITDIALOG:
	{
		UINT		u;
		PGPBoolean	b;
		PGPPrefRef	prefref;

		SetWindowLong (hwnd, GWL_USERDATA, ((PROPSHEETPAGE*)lParam)->lParam);
		ppds = (PPREFSDLGSTRUCT)GetWindowLong (hwnd, GWL_USERDATA);

		if (ppds->bNeedsCentering) 
		{
			PGPclCenterWindowOnMonitor (GetParent (hwnd), kPGPclWindowMonitor);
			ppds->bNeedsCentering = FALSE;
		}

		prefref = CLGetPrefRef (ppds);

		CLLoadCheckBoxPref (hwnd, IDC_USEPGPMIME, 
				ppds, prefref, kPGPPrefMailEncryptPGPMIME);

		PGPGetPrefNumber (prefref, kPGPPrefWordWrapWidth, &u);
		SetDlgItemInt (hwnd, IDC_WRAPNUMBER, u, FALSE);

		if (CLDisablePrefControl (hwnd, IDC_WRAPNUMBER, 
				ppds, prefref, kPGPPrefWordWrapWidth))
		{
			EnableWindow (GetDlgItem (hwnd, IDC_COLUMNTEXT), FALSE);
		}

		b = CLLoadCheckBoxPref (hwnd, IDC_WRAPENABLE, 
				ppds, prefref, kPGPPrefWordWrapEnable);
		if (!b)
		{
			EnableWindow (GetDlgItem (hwnd, IDC_WRAPNUMBER), FALSE);
			EnableWindow (GetDlgItem (hwnd, IDC_COLUMNTEXT), FALSE);
		}

		CLLoadCheckBoxPref (hwnd, IDC_ENCRYPTBYDEFAULT, 
				ppds, prefref, kPGPPrefMailEncryptDefault);

		CLLoadCheckBoxPref (hwnd, IDC_SIGNBYDEFAULT, 
				ppds, prefref, kPGPPrefMailSignDefault);

		CLLoadCheckBoxPref (hwnd, IDC_AUTODECRYPT, 
				ppds, prefref, kPGPPrefAutoDecrypt);

		CLLoadCheckBoxPref (hwnd, IDC_USESECUREVIEWER, 
				ppds, prefref, kPGPPrefAlwaysUseSecureViewer);

		return TRUE;
	}

	case WM_HELP :
	case WM_CONTEXTMENU :
		return PGPclHtmlHelp (hwnd, uMsg, wParam, lParam,
				(char*)kPGPclHelpFile, aEmailIds);

	case WM_COMMAND :
		switch (LOWORD (wParam)) {
		case IDC_WRAPENABLE :
		{
			PGPBoolean	b;
			PGPPrefRef	prefref;

			ppds = (PPREFSDLGSTRUCT)GetWindowLong (hwnd, GWL_USERDATA);
			prefref = CLGetPrefRef (ppds);

			b = CLDisablePrefControl (hwnd, IDC_WRAPNUMBER, 
					ppds, prefref, kPGPPrefWordWrapWidth);
			if (!b)
			{
				b = (IsDlgButtonChecked (hwnd, IDC_WRAPENABLE) == BST_CHECKED);
				EnableWindow (GetDlgItem (hwnd, IDC_COLUMNTEXT), b);
				EnableWindow (GetDlgItem (hwnd, IDC_WRAPNUMBER), b);
			}
			break;
		}
		}
		break;

	case WM_NOTIFY :
		switch (((NMHDR FAR *) lParam)->code) {
		case PSN_HELP :
			PGPclHtmlHelp (hwnd, kPGPclHelpContext, 0, 0,
					(char*)kPGPclHelpFile, (DWORD*)IDH_PGPCLPREF_EMAILDIALOG);
			break;

		case PSN_APPLY :
		{
			PGPBoolean	b;
			UINT		u;

			ppds = (PPREFSDLGSTRUCT)GetWindowLong (hwnd, GWL_USERDATA);

			if (ppds->bUseClientLibPrefs && 
				!PGPPrefRefIsValid (ppds->prefref))
			{
				PGPclPeekClientLibPrefRefs (&ppds->prefref, NULL);
			}

			b = CLSaveCheckBoxPref (hwnd, IDC_WRAPENABLE, 
					ppds->prefref, kPGPPrefWordWrapEnable);
			if (b)
			{
				u = GetDlgItemInt (hwnd, IDC_WRAPNUMBER, NULL, FALSE);
				PGPclErrorBox (hwnd, PGPSetPrefNumber (ppds->prefref,
						kPGPPrefWordWrapWidth, u));
			}

			b = CLSaveCheckBoxPref (hwnd, IDC_USEPGPMIME, 
					ppds->prefref, kPGPPrefMailEncryptPGPMIME);
			PGPclErrorBox (hwnd, PGPSetPrefBoolean (ppds->prefref,
						kPGPPrefMailSignPGPMIME, b));

			CLSaveCheckBoxPref (hwnd, IDC_ENCRYPTBYDEFAULT, 
					ppds->prefref, kPGPPrefMailEncryptDefault);

			CLSaveCheckBoxPref (hwnd, IDC_SIGNBYDEFAULT, 
					ppds->prefref, kPGPPrefMailSignDefault);

			CLSaveCheckBoxPref (hwnd, IDC_AUTODECRYPT, 
					ppds->prefref, kPGPPrefAutoDecrypt);

			CLSaveCheckBoxPref (hwnd, IDC_USESECUREVIEWER, 
					ppds->prefref, kPGPPrefAlwaysUseSecureViewer);

			ppds->bPrefsModified = TRUE;
			ppds->returnErr = kPGPError_NoErr;
            SetWindowLong (hwnd, DWL_MSGRESULT, PSNRET_NOERROR);
            return TRUE;
		}

		case PSN_KILLACTIVE :
			if (IsDlgButtonChecked (hwnd, IDC_WRAPENABLE) == BST_CHECKED)
			{
				if (GetDlgItemInt (hwnd, IDC_WRAPNUMBER, NULL, FALSE) == 0)
				{
					PGPclMessageBox (hwnd, IDS_CAPTIONINFO,
							IDS_INVALIDWRAP, MB_OK|MB_ICONINFORMATION);
					SendDlgItemMessage (hwnd, IDC_WRAPNUMBER, EM_SETSEL, 0, -1);
					SetFocus (GetDlgItem (hwnd, IDC_WRAPNUMBER));
					SetWindowLong (hwnd, DWL_MSGRESULT, TRUE);
					return TRUE;
				}
			}
            SetWindowLong (hwnd, DWL_MSGRESULT, FALSE);
            return TRUE;
		}
	}

	return FALSE;

}

⌨️ 快捷键说明

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