X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0e320a79f187558effb04d92020b470372bbe456..437a8892a107139e9f808f0a11792a56a55b4e25:/src/os2/fontdlg.cpp?ds=sidebyside diff --git a/src/os2/fontdlg.cpp b/src/os2/fontdlg.cpp index 60e8e9b987..1024e1b98e 100644 --- a/src/os2/fontdlg.cpp +++ b/src/os2/fontdlg.cpp @@ -1,55 +1,100 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: fontdlg.cpp +// Name: src/os2/fontdlg.cpp // Purpose: wxFontDialog class. NOTE: you can use the generic class // if you wish, instead of implementing this. -// Author: AUTHOR +// Author: David Webster // Modified by: -// Created: ??/??/98 +// Created: 10/06/99 // RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence +// Copyright: (c) David Webster +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "fontdlg.h" -#endif +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" -#include "wx/stubs/fontdlg.h" -#include "wx/cmndata.h" +#include "wx/fontdlg.h" -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxFontDialog, wxDialog) +#ifndef WX_PRECOMP + #include + #include "wx/utils.h" + #include "wx/dialog.h" + #include "wx/math.h" + #include "wx/cmndata.h" #endif -/* - * wxFontDialog - */ +#include "wx/fontutil.h" -wxFontDialog::wxFontDialog() -{ - m_dialogParent = NULL; -} - -wxFontDialog::wxFontDialog(wxWindow *parent, wxFontData *data) -{ - Create(parent, data); -} +#define INCL_PM +#include -bool wxFontDialog::Create(wxWindow *parent, wxFontData *data) -{ - m_dialogParent = parent; +#include "wx/os2/private.h" - if (data) - m_fontData = *data; +#include +#include - // TODO: you may need to do dialog creation here, unless it's - // done in ShowModal. - return TRUE; -} +IMPLEMENT_DYNAMIC_CLASS(wxFontDialog, wxDialog) int wxFontDialog::ShowModal() { - // TODO: show (maybe create) the dialog - return wxID_CANCEL; -} + FONTDLG vFontDlg; + char zCurrentFont[FACESIZE]; + HWND hWndFontDlg; + FACENAMEDESC vFn; + + memset(&vFontDlg, '\0', sizeof(FONTDLG)); + zCurrentFont[0] = '\0'; + + // + // Set the fontdlg fields + // + vFontDlg.cbSize = sizeof(FONTDLG); + vFontDlg.hpsScreen = ::WinGetScreenPS(HWND_DESKTOP); + vFontDlg.hpsPrinter = NULL; + vFontDlg.pszFamilyname = zCurrentFont; + vFontDlg.fxPointSize = MAKEFIXED(12,0); + vFontDlg.usFamilyBufLen = FACESIZE; + vFontDlg.fl = FNTS_CENTER; + vFontDlg.clrFore = CLR_BLACK; + vFontDlg.clrBack = CLR_WHITE; + hWndFontDlg = WinFontDlg( HWND_DESKTOP + ,GetParent()->GetHWND() + ,&vFontDlg + ); + if (hWndFontDlg && vFontDlg.lReturn == DID_OK) + { + wxColour vColour((unsigned long)0x00000000); + wxNativeFontInfo vInfo; + + m_fontData.m_fontColour = vColour; + + memset(&vFn, '\0', sizeof(FACENAMEDESC)); + vFn.usSize = sizeof(FACENAMEDESC); + vFn.usWeightClass = vFontDlg.usWeight; + vFn.usWidthClass = vFontDlg.usWidth; + + memset(&vInfo.fa, '\0', sizeof(FATTRS)); + memcpy(&vInfo.fn, &vFn, sizeof(FACENAMEDESC)); + + vInfo.fa.usRecordLength = vFontDlg.fAttrs.usRecordLength; + strcpy(vInfo.fa.szFacename, vFontDlg.fAttrs.szFacename); + vInfo.fa.lMatch = vFontDlg.fAttrs.lMatch; + + // + // Debugging + // + wxFont vChosenFont(vInfo); + + int nPointSize = vFontDlg.fxPointSize >> 16; + + vChosenFont.SetPointSize(nPointSize); + m_fontData.m_chosenFont = vChosenFont; + + m_fontData.EncodingInfo().facename = (wxChar*)vFontDlg.fAttrs.szFacename; + m_fontData.EncodingInfo().charset = vFontDlg.fAttrs.usCodePage; + + return wxID_OK; + } + return wxID_CANCEL; +} // end of wxFontDialg::ShowModal