Esempio n. 1
0
VOID RtfWindowUpdateFont(VOID)
{
    CHARFORMAT cf;

    RegistryReadFont(&cf);
    SendMessage(hWndRtf, EM_SETCHARFORMAT, SCF_ALL, (LPARAM) &cf);
}
Esempio n. 2
0
VOID InitOptionsFont(HWND hDlg)
{
    // load up the list of fonts
    HDC hDC = GetDC(hDlg);
    CHARFORMAT cf;
    LOGFONT lf;

    SendDlgItemMessage(hDlg, IDC_SpnFontSize, UDM_SETRANGE, 0, MAKELONG(72, 6));

    lf.lfCharSet = DEFAULT_CHARSET;
    lf.lfFaceName[0] = TEXT('\0');;
    lf.lfPitchAndFamily = 0;
    EnumFontFamiliesEx(hDC, &lf, ListAllFonts, (LPARAM) GetDlgItem(hDlg, IDC_LstFontFace), 0);
    ReleaseDC(hDlg, hDC);

    SetDlgItemText(hDlg, IDC_RtfPreview, TEXT("Text Preview ABC abc 123"));

    // setup the config options
    RegistryReadFont(&cf);
    SetDlgItemText(hDlg, IDC_LstFontFace, cf.szFaceName);
    SetDlgItemBool(hDlg, IDC_ChkFontBold, cf.dwEffects & CFE_BOLD);
    SetDlgItemBool(hDlg, IDC_ChkFontItalic, cf.dwEffects & CFE_ITALIC);
    SetDlgItemInt(hDlg, IDC_TxtFontSize, TwipToPoint(cf.yHeight), FALSE);

	SetDlgItemBool(hDlg, IDC_ChkRevertCAFs, GHCi_Flag_RevertCAFs);
	SetDlgItemBool(hDlg, IDC_ChkPrintStats, GHCi_Flag_PrintStats);
	SetDlgItemBool(hDlg, IDC_ChkPrintTypes, GHCi_Flag_PrintTypes);


    UpdateFontPreview(hDlg);
}
Esempio n. 3
0
INT_PTR CALLBACK OptsDlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
	switch (msg) {
		case WM_INITDIALOG:
			CenterDialogInParent(hDlg);
			InitOptionsFont(hDlg);
			ComboInitDialog(hDlg,GHCi_Combo_Editor);
			ComboInitDialog(hDlg,GHCi_Combo_Startup);
			ComboInitDialog(hDlg,GHCi_Combo_Prompt);

			break;

		case WM_COMMAND: {
				INT Code = HIWORD(wParam);
				INT Ctrl = LOWORD(wParam);

				if ((Ctrl == IDC_ChkFontBold && Code == BN_CLICKED) ||
					(Ctrl == IDC_ChkFontItalic && Code == BN_CLICKED) ||
					(Ctrl == IDC_TxtFontSize && Code == EN_CHANGE) ||
					(Ctrl == IDC_LstFontFace && (Code == CBN_EDITCHANGE || Code == CBN_SELCHANGE))
					)
					UpdateFontPreview(hDlg);


			switch (LOWORD(wParam)) {
				case IDOK: {

					CHARFORMAT cf, prevCf;

					RegistryReadFont(&prevCf);
					CalculateFont(hDlg, &cf);

					if( (StringCmp(cf.szFaceName,prevCf.szFaceName)) 
						  || (cf.yHeight != prevCf.yHeight)  
						  || (cf.dwEffects != prevCf.dwEffects)) {

							RegistryWriteFont(&cf);
							RtfWindowUpdateFont();
					}

					UpdateOptions(hDlg) ;

					EndDialog(hDlg, TRUE);
					return (INT_PTR)TRUE;
				}
				case IDCANCEL:
					EndDialog(hDlg, TRUE);
					return (INT_PTR)TRUE;
			}
		}
		break;
	}
	return (INT_PTR)FALSE;
}
Esempio n. 4
0
VOID CalculateFont(HWND hDlg, CHARFORMAT* cf)
{
    BOOL ValidSize;
    INT NewSize;
    INT CurSel;
    HWND hFace = GetDlgItem(hDlg, IDC_LstFontFace);

    RegistryReadFont(cf);

    CurSel = (INT) SendMessage(hFace, CB_GETCURSEL, 0, 0);
    if (CurSel == CB_ERR)
	GetWindowText(hFace, cf->szFaceName, 32);
    else
	SendMessage(hFace, CB_GETLBTEXT, CurSel, (LPARAM) cf->szFaceName);

    cf->dwEffects = 0;
    cf->dwEffects |= (GetDlgItemBool(hDlg, IDC_ChkFontBold) ? CFE_BOLD : 0);
    cf->dwEffects |= (GetDlgItemBool(hDlg, IDC_ChkFontItalic) ? CFE_ITALIC : 0);

    // check the size
    NewSize = GetDlgItemInt(hDlg, IDC_TxtFontSize, &ValidSize, FALSE);
    if (ValidSize) cf->yHeight = PointToTwip(NewSize);
}