]> git.saurik.com Git - wxWidgets.git/blobdiff - src/xrc/xmlres.cpp
updates for OpenVMS
[wxWidgets.git] / src / xrc / xmlres.cpp
index 1b62dbc3dcfe6a78e7099f748c5309d2ff1ed48c..7a3041e630546d9a4e8b3066b9f10c2ecf10b772 100644 (file)
@@ -983,7 +983,10 @@ wxXmlResource::DoCreateResFromNode(wxXmlNode& node,
             return NULL;
         }
 
-        if ( !node.GetChildren() )
+        const bool hasOnlyRefAttr = node.GetAttributes() != NULL &&
+                                    node.GetAttributes()->GetNext() == NULL;
+
+        if ( hasOnlyRefAttr && !node.GetChildren() )
         {
             // In the typical, simple case, <object_ref> is used to link
             // to another node and doesn't have any content of its own that
@@ -1742,7 +1745,7 @@ wxColour wxXmlResourceHandler::GetColour(const wxString& param, const wxColour&
         // the colour doesn't use #RRGGBB format, check if it is symbolic
         // colour name:
         clr = GetSystemColour(v);
-        if (clr.Ok())
+        if (clr.IsOk())
             return clr;
 
         ReportParamError
@@ -1820,7 +1823,7 @@ wxBitmap wxXmlResourceHandler::GetBitmap(const wxXmlNode* node,
                           art_id, art_client) )
     {
         wxBitmap stockArt(wxArtProvider::GetBitmap(art_id, art_client, size));
-        if ( stockArt.Ok() )
+        if ( stockArt.IsOk() )
             return stockArt;
     }
 
@@ -1844,7 +1847,7 @@ wxBitmap wxXmlResourceHandler::GetBitmap(const wxXmlNode* node,
     wxImage img(name);
 #endif
 
-    if (!img.Ok())
+    if (!img.IsOk())
     {
         ReportParamError
         (
@@ -1958,7 +1961,7 @@ wxImageList *wxXmlResourceHandler::GetImageList(const wxString& param)
         {
             if (n->GetType() == wxXML_ELEMENT_NODE && n->GetName() == parambitmap)
             {
-                wxIcon icon = GetIcon(n);
+                wxIcon icon = GetIcon(n, wxART_OTHER, size);
                 if ( !imagelist )
                 {
                     // We need the real image list size to create it.
@@ -2147,6 +2150,40 @@ wxCoord wxXmlResourceHandler::GetDimension(const wxString& param,
     return sx;
 }
 
+wxDirection
+wxXmlResourceHandler::GetDirection(const wxString& param, wxDirection dirDefault)
+{
+    wxDirection dir;
+
+    const wxString dirstr = GetParamValue(param);
+    if ( dirstr.empty() )
+        dir = dirDefault;
+    else if ( dirstr == "wxLEFT" )
+        dir = wxLEFT;
+    else if ( dirstr == "wxRIGHT" )
+        dir = wxRIGHT;
+    else if ( dirstr == "wxTOP" )
+        dir = wxTOP;
+    else if ( dirstr == "wxBOTTOM" )
+        dir = wxBOTTOM;
+    else
+    {
+        ReportError
+        (
+            GetParamNode(param),
+            wxString::Format
+            (
+                "Invalid direction \"%s\": must be one of "
+                "wxLEFT|wxRIGHT|wxTOP|wxBOTTOM.",
+                dirstr
+            )
+        );
+
+        dir = dirDefault;
+    }
+
+    return dir;
+}
 
 // Get system font index using indexname
 static wxFont GetSystemFont(const wxString& name)
@@ -2274,7 +2311,7 @@ wxFont wxXmlResourceHandler::GetFont(const wxString& param)
     // is this font based on a system font?
     wxFont font = GetSystemFont(GetParamValue(wxT("sysfont")));
 
-    if (font.Ok())
+    if (font.IsOk())
     {
         if (hasSize && isize != -1)
             font.SetPointSize(isize);