]> git.saurik.com Git - wxWidgets.git/commitdiff
fix handling of wxBitmap nodes broken by previous changes; remove the special case...
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 13 May 2009 21:54:30 +0000 (21:54 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 13 May 2009 21:54:30 +0000 (21:54 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60624 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/xrc/xh_bmp.cpp
src/xrc/xmlres.cpp

index a91318801b5307ebbd3a1e59abfac9d4cffad85c..8ac3a6982da540e7c80a9f789920e77e0aaa8d9b 100644 (file)
@@ -32,9 +32,7 @@ wxBitmapXmlHandler::wxBitmapXmlHandler()
 
 wxObject *wxBitmapXmlHandler::DoCreateResource()
 {
-    // NB: empty parameter name means "take directly from this node's next
-    //     instead of from subnode with given name"
-    return new wxBitmap(GetBitmap(wxEmptyString));
+    return new wxBitmap(GetBitmap(m_node));
 }
 
 bool wxBitmapXmlHandler::CanHandle(wxXmlNode *node)
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,