]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/fontdlg.cpp
Fix for crash when opening empty node
[wxWidgets.git] / src / os2 / fontdlg.cpp
index 9b796e6527df4be18931695deb82a45556d77052..1024e1b98e2af9825e3975d31c483d3f7a9c5b2f 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// 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:      David Webster
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
+#include "wx/fontdlg.h"
+
 #ifndef WX_PRECOMP
-#include <stdio.h>
-#include "wx/defs.h"
-#include "wx/utils.h"
-#include "wx/dialog.h"
+    #include <stdio.h>
+    #include "wx/utils.h"
+    #include "wx/dialog.h"
+    #include "wx/math.h"
+    #include "wx/cmndata.h"
 #endif
 
-#include "wx/fontdlg.h"
+#include "wx/fontutil.h"
 
 #define INCL_PM
 #include <os2.h>
 
 #include "wx/os2/private.h"
-#include "wx/cmndata.h"
 
-#include <math.h>
 #include <stdlib.h>
 #include <string.h>
 
@@ -36,11 +37,10 @@ IMPLEMENT_DYNAMIC_CLASS(wxFontDialog, wxDialog)
 
 int wxFontDialog::ShowModal()
 {
-    FONTDLG                         vFontDlg;
-    char                            zCurrentFont[FACESIZE];
-    HWND                            hWndFontDlg;
-    FONTMETRICS                     vFm;
-    FACENAMEDESC                    vFn;
+    FONTDLG      vFontDlg;
+    char         zCurrentFont[FACESIZE];
+    HWND         hWndFontDlg;
+    FACENAMEDESC vFn;
 
     memset(&vFontDlg, '\0', sizeof(FONTDLG));
     zCurrentFont[0] = '\0';
@@ -67,54 +67,34 @@ int wxFontDialog::ShowModal()
         wxColour                    vColour((unsigned long)0x00000000);
         wxNativeFontInfo            vInfo;
 
-        m_fontData.fontColour = vColour;
+        m_fontData.m_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));
+        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                         nFamily;
-        int                         nPointSize = vFontDlg.lEmHeight;
-        int                         nStyle;
-        int                         nWeight;
-        bool                        bUnderlined;
-        wxString                    sFaceName;
-        wxNativeFontInfo*           pInfo;
+        int                         nPointSize = vFontDlg.fxPointSize >> 16;
 
         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.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
-