1///////////////////////////////////////////////////////////////////////////// 2// Name: src/os2/fontdlg.cpp 3// Purpose: wxFontDialog class. NOTE: you can use the generic class 4// if you wish, instead of implementing this. 5// Author: David Webster 6// Modified by: 7// Created: 10/06/99 8// RCS-ID: $Id: fontdlg.cpp 39337 2006-05-25 21:08:11Z ABX $ 9// Copyright: (c) David Webster 10// Licence: wxWindows licence 11///////////////////////////////////////////////////////////////////////////// 12 13// For compilers that support precompilation, includes "wx.h". 14#include "wx/wxprec.h" 15 16#include "wx/fontdlg.h" 17 18#ifndef WX_PRECOMP 19 #include <stdio.h> 20 #include "wx/utils.h" 21 #include "wx/dialog.h" 22 #include "wx/math.h" 23 #include "wx/cmndata.h" 24#endif 25 26#include "wx/fontutil.h" 27 28#define INCL_PM 29#include <os2.h> 30 31#include "wx/os2/private.h" 32 33#include <stdlib.h> 34#include <string.h> 35 36IMPLEMENT_DYNAMIC_CLASS(wxFontDialog, wxDialog) 37 38int wxFontDialog::ShowModal() 39{ 40 FONTDLG vFontDlg; 41 char zCurrentFont[FACESIZE]; 42 HWND hWndFontDlg; 43 FACENAMEDESC vFn; 44 45 memset(&vFontDlg, '\0', sizeof(FONTDLG)); 46 zCurrentFont[0] = '\0'; 47 48 // 49 // Set the fontdlg fields 50 // 51 vFontDlg.cbSize = sizeof(FONTDLG); 52 vFontDlg.hpsScreen = ::WinGetScreenPS(HWND_DESKTOP); 53 vFontDlg.hpsPrinter = NULL; 54 vFontDlg.pszFamilyname = zCurrentFont; 55 vFontDlg.fxPointSize = MAKEFIXED(12,0); 56 vFontDlg.usFamilyBufLen = FACESIZE; 57 vFontDlg.fl = FNTS_CENTER; 58 vFontDlg.clrFore = CLR_BLACK; 59 vFontDlg.clrBack = CLR_WHITE; 60 61 hWndFontDlg = WinFontDlg( HWND_DESKTOP 62 ,GetParent()->GetHWND() 63 ,&vFontDlg 64 ); 65 if (hWndFontDlg && vFontDlg.lReturn == DID_OK) 66 { 67 wxColour vColour((unsigned long)0x00000000); 68 wxNativeFontInfo vInfo; 69 70 m_fontData.m_fontColour = vColour; 71 72 memset(&vFn, '\0', sizeof(FACENAMEDESC)); 73 vFn.usSize = sizeof(FACENAMEDESC); 74 vFn.usWeightClass = vFontDlg.usWeight; 75 vFn.usWidthClass = vFontDlg.usWidth; 76 77 memset(&vInfo.fa, '\0', sizeof(FATTRS)); 78 memcpy(&vInfo.fn, &vFn, sizeof(FACENAMEDESC)); 79 80 vInfo.fa.usRecordLength = vFontDlg.fAttrs.usRecordLength; 81 strcpy(vInfo.fa.szFacename, vFontDlg.fAttrs.szFacename); 82 vInfo.fa.lMatch = vFontDlg.fAttrs.lMatch; 83 84 // 85 // Debugging 86 // 87 wxFont vChosenFont(vInfo); 88 89 int nPointSize = vFontDlg.fxPointSize >> 16; 90 91 vChosenFont.SetPointSize(nPointSize); 92 m_fontData.m_chosenFont = vChosenFont; 93 94 m_fontData.EncodingInfo().facename = (wxChar*)vFontDlg.fAttrs.szFacename; 95 m_fontData.EncodingInfo().charset = vFontDlg.fAttrs.usCodePage; 96 97 return wxID_OK; 98 } 99 return wxID_CANCEL; 100} // end of wxFontDialg::ShowModal 101