]> git.saurik.com Git - wxWidgets.git/blobdiff - src/xrc/xmlres.cpp
fix handling of wxBitmap nodes broken by previous changes; remove the special case...
[wxWidgets.git] / src / xrc / xmlres.cpp
index 988d73027a136f9d2d2f35c1afe185dc0646e71b..d19bdec665be788d32ba1d9a95a338dea5dc001e 100644 (file)
@@ -1334,13 +1334,29 @@ wxBitmap wxXmlResourceHandler::GetBitmap(const wxString& param,
                                          const wxArtClient& defaultArtClient,
                                          wxSize size)
 {
-    return GetBitmap(GetParamNode(param), defaultArtClient, size);
+    // it used to be possible to pass an empty string here to indicate that the
+    // bitmap name should be read from this node itself but this is not
+    // supported any more because GetBitmap(m_node) can be used directly
+    // instead
+    wxASSERT_MSG( !param.empty(), "bitmap parameter name can't be empty" );
+
+    const wxXmlNode* const node = GetParamNode(param);
+
+    if ( !node )
+    {
+        // this is not an error as bitmap parameter could be optional
+        return wxNullBitmap;
+    }
+
+    return GetBitmap(node, defaultArtClient, size);
 }
 
 wxBitmap wxXmlResourceHandler::GetBitmap(const wxXmlNode* node,
                                          const wxArtClient& defaultArtClient,
                                          wxSize size)
 {
+    wxCHECK_MSG( node, wxNullBitmap, "bitmap node can't be NULL" );
+
     /* If the bitmap is specified as stock item, query wxArtProvider for it: */
     wxString art_id, art_client;
     if ( GetStockArtAttrs(node, defaultArtClient,
@@ -1389,7 +1405,18 @@ wxIcon wxXmlResourceHandler::GetIcon(const wxString& param,
                                      const wxArtClient& defaultArtClient,
                                      wxSize size)
 {
-    return GetIcon(GetParamNode(param), defaultArtClient, size);
+    // see comment in GetBitmap(wxString) overload
+    wxASSERT_MSG( !param.empty(), "icon parameter name can't be empty" );
+
+    const wxXmlNode* const node = GetParamNode(param);
+
+    if ( !node )
+    {
+        // this is not an error as icon parameter could be optional
+        return wxIcon();
+    }
+
+    return GetIcon(node, defaultArtClient, size);
 }
 
 wxIcon wxXmlResourceHandler::GetIcon(const wxXmlNode* node,