]> git.saurik.com Git - wxWidgets.git/blobdiff - src/xrc/xmlres.cpp
don't Printf() a string into itself (bug indicated by patch 1443669)
[wxWidgets.git] / src / xrc / xmlres.cpp
index 569ca71aacb93abd09da86fc9154463e2ab0f889..6698d8a73cb3234f7685e23c78f7743d46703855 100644 (file)
@@ -786,12 +786,15 @@ void wxXmlResourceHandler::AddStyle(const wxString& name, int value)
 void wxXmlResourceHandler::AddWindowStyles()
 {
     XRC_ADD_STYLE(wxCLIP_CHILDREN);
-    XRC_ADD_STYLE(wxSIMPLE_BORDER);
-    XRC_ADD_STYLE(wxSUNKEN_BORDER);
-    XRC_ADD_STYLE(wxDOUBLE_BORDER);
-    XRC_ADD_STYLE(wxRAISED_BORDER);
-    XRC_ADD_STYLE(wxSTATIC_BORDER);
-    XRC_ADD_STYLE(wxNO_BORDER);
+
+    // the border styles all have the old and new names, recognize both for now
+    XRC_ADD_STYLE(wxSIMPLE_BORDER); XRC_ADD_STYLE(wxBORDER_SIMPLE);
+    XRC_ADD_STYLE(wxSUNKEN_BORDER); XRC_ADD_STYLE(wxBORDER_SUNKEN);
+    XRC_ADD_STYLE(wxDOUBLE_BORDER); XRC_ADD_STYLE(wxBORDER_DOUBLE);
+    XRC_ADD_STYLE(wxRAISED_BORDER); XRC_ADD_STYLE(wxBORDER_RAISED);
+    XRC_ADD_STYLE(wxSTATIC_BORDER); XRC_ADD_STYLE(wxBORDER_STATIC);
+    XRC_ADD_STYLE(wxNO_BORDER);     XRC_ADD_STYLE(wxBORDER_NONE);
+
     XRC_ADD_STYLE(wxTRANSPARENT_WINDOW);
     XRC_ADD_STYLE(wxWANTS_CHARS);
     XRC_ADD_STYLE(wxTAB_TRAVERSAL);
@@ -1288,10 +1291,10 @@ wxFont wxXmlResourceHandler::GetFont(const wxString& param)
     // font attributes:
 
     // size
-    int isize = wxDEFAULT;
+    int isize = -1;
     bool hasSize = HasParam(wxT("size"));
     if (hasSize)
-        isize = GetLong(wxT("size"), wxDEFAULT);
+        isize = GetLong(wxT("size"), -1);
 
     // style
     int istyle = wxNORMAL;
@@ -1369,36 +1372,38 @@ wxFont wxXmlResourceHandler::GetFont(const wxString& param)
     }
 
     // is this font based on a system font?
-    wxFont sysfont = GetSystemFont(GetParamValue(wxT("sysfont")));
+    wxFont font = GetSystemFont(GetParamValue(wxT("sysfont")));
 
-    if (sysfont.Ok())
+    if (font.Ok())
     {
-        if (hasSize)
-            sysfont.SetPointSize(isize);
+        if (hasSize && isize != -1)
+            font.SetPointSize(isize);
         else if (HasParam(wxT("relativesize")))
-            sysfont.SetPointSize(int(sysfont.GetPointSize() *
+            font.SetPointSize(int(font.GetPointSize() *
                                      GetFloat(wxT("relativesize"))));
 
         if (hasStyle)
-            sysfont.SetStyle(istyle);
+            font.SetStyle(istyle);
         if (hasWeight)
-            sysfont.SetWeight(iweight);
+            font.SetWeight(iweight);
         if (hasUnderlined)
-            sysfont.SetUnderlined(underlined);
+            font.SetUnderlined(underlined);
         if (hasFamily)
-            sysfont.SetFamily(ifamily);
+            font.SetFamily(ifamily);
         if (hasFacename)
-            sysfont.SetFaceName(facename);
+            font.SetFaceName(facename);
         if (hasEncoding)
-            sysfont.SetDefaultEncoding(enc);
-
-        m_node = oldnode;
-        return sysfont;
+            font.SetDefaultEncoding(enc);
+    }
+    else // not based on system font
+    {
+        font = wxFont(isize == -1 ? wxNORMAL_FONT->GetPointSize() : isize,
+                      ifamily, istyle, iweight,
+                      underlined, facename, enc);
     }
 
     m_node = oldnode;
-    return wxFont(isize, ifamily, istyle, iweight,
-                  underlined, facename, enc);
+    return font;
 }