]> git.saurik.com Git - wxWidgets.git/blame_incremental - src/os2/fontdlg.cpp
switching to CreateXXX methods for Controls and to Hit Event Processing, thus support...
[wxWidgets.git] / src / os2 / fontdlg.cpp
... / ...
CommitLineData
1/////////////////////////////////////////////////////////////////////////////
2// Name: 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$
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#ifndef WX_PRECOMP
17#include <stdio.h>
18#include "wx/defs.h"
19#include "wx/utils.h"
20#include "wx/dialog.h"
21#endif
22
23#include "wx/fontdlg.h"
24#include "wx/fontutil.h"
25
26#define INCL_PM
27#include <os2.h>
28
29#include "wx/os2/private.h"
30#include "wx/cmndata.h"
31
32#include <math.h>
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 = 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