X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/21802234dfc226c369e7d48af58e6c1b7f7242a3..25fc812c7439ed77f8fb7a8b05fb12a7a11a6cd8:/src/os2/fontdlg.cpp diff --git a/src/os2/fontdlg.cpp b/src/os2/fontdlg.cpp index 841c3b56fd..9b796e6527 100644 --- a/src/os2/fontdlg.cpp +++ b/src/os2/fontdlg.cpp @@ -32,38 +32,89 @@ #include #include -#define wxDIALOG_DEFAULT_X 300 -#define wxDIALOG_DEFAULT_Y 300 - -#if !USE_SHARED_LIBRARY IMPLEMENT_DYNAMIC_CLASS(wxFontDialog, wxDialog) -#endif -/* - * wxFontDialog - */ -wxFontDialog::wxFontDialog() +int wxFontDialog::ShowModal() { - m_dialogParent = NULL; -} + FONTDLG vFontDlg; + char zCurrentFont[FACESIZE]; + HWND hWndFontDlg; + FONTMETRICS vFm; + FACENAMEDESC vFn; -wxFontDialog::wxFontDialog(wxWindow *parent, wxFontData *data) -{ - Create(parent, data); -} + memset(&vFontDlg, '\0', sizeof(FONTDLG)); + zCurrentFont[0] = '\0'; -bool wxFontDialog::Create(wxWindow *parent, wxFontData *data) -{ - m_dialogParent = parent; + // + // 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; - if (data) - m_fontData = *data; - return TRUE; -} + hWndFontDlg = WinFontDlg( HWND_DESKTOP + ,GetParent()->GetHWND() + ,&vFontDlg + ); + if (hWndFontDlg && vFontDlg.lReturn == DID_OK) + { + wxColour vColour((unsigned long)0x00000000); + wxNativeFontInfo vInfo; -int wxFontDialog::ShowModal() -{ - // TODO: show (maybe create) the dialog + m_fontData.fontColour = vColour; + + memset(&vFn, '\0', sizeof(FACENAMEDESC)); + vFn.usSize = sizeof(FACENAMEDESC); + vFn.usWeightClass = vFontDlg.usWeight; + vFn.usWidthClass = vFontDlg.usWidth; + + memcpy(&vInfo.fa, &vFontDlg.fAttrs, sizeof(FATTRS)); + memcpy(&vInfo.fn, &vFn, sizeof(FACENAMEDESC)); + + // + // Debugging + // + wxFont vChosenFont(vInfo); + + int nFamily; + int nPointSize = vFontDlg.lEmHeight; + int nStyle; + int nWeight; + bool bUnderlined; + wxString sFaceName; + wxNativeFontInfo* pInfo; + + vChosenFont.SetPointSize(nPointSize); + nFamily = vChosenFont.GetFamily(); + nPointSize = vChosenFont.GetPointSize(); + nStyle = vChosenFont.GetStyle(); + nWeight = vChosenFont.GetWeight(); + bUnderlined = vChosenFont.GetUnderlined(); + sFaceName = vChosenFont.GetFaceName(); + pInfo = vChosenFont.GetNativeFontInfo(); + + + m_fontData.chosenFont = vChosenFont; + + nFamily = m_fontData.chosenFont.GetFamily(); + nPointSize = m_fontData.chosenFont.GetPointSize(); + nStyle = m_fontData.chosenFont.GetStyle(); + nWeight = m_fontData.chosenFont.GetWeight(); + bUnderlined = m_fontData.chosenFont.GetUnderlined(); + sFaceName = m_fontData.chosenFont.GetFaceName(); + pInfo = m_fontData.chosenFont.GetNativeFontInfo(); + + m_fontData.EncodingInfo().facename = vFontDlg.fAttrs.szFacename; + m_fontData.EncodingInfo().charset = vFontDlg.fAttrs.usCodePage; + + return wxID_OK; + } return wxID_CANCEL; -} +} // end of wxFontDialg::ShowModal