]> git.saurik.com Git - wxWidgets.git/blobdiff - src/xrc/xh_statbar.cpp
fix for crash when undocking AUI toolbars (same as r59107 in 2.8 branch)
[wxWidgets.git] / src / xrc / xh_statbar.cpp
index e634adc9915f5adde4da006fe236df90ee8593c0..fbf25f189f8337b935760f3f9d9c402851fc88a1 100644 (file)
     #include "wx/string.h"
     #include "wx/log.h"
     #include "wx/frame.h"
     #include "wx/string.h"
     #include "wx/log.h"
     #include "wx/frame.h"
+    #include "wx/statusbr.h"
 #endif
 
 #endif
 
-#include "wx/statusbr.h"
-
 IMPLEMENT_DYNAMIC_CLASS(wxStatusBarXmlHandler, wxXmlResourceHandler)
 
 IMPLEMENT_DYNAMIC_CLASS(wxStatusBarXmlHandler, wxXmlResourceHandler)
 
-wxStatusBarXmlHandler::wxStatusBarXmlHandler() :
-        wxXmlResourceHandler()
+wxStatusBarXmlHandler::wxStatusBarXmlHandler()
+                      :wxXmlResourceHandler()
 {
 {
+    XRC_ADD_STYLE(wxSTB_SIZEGRIP);
+    XRC_ADD_STYLE(wxSTB_SHOW_TIPS);
+    XRC_ADD_STYLE(wxSTB_ELLIPSIZE_START);
+    XRC_ADD_STYLE(wxSTB_ELLIPSIZE_MIDDLE);
+    XRC_ADD_STYLE(wxSTB_ELLIPSIZE_END);
+    XRC_ADD_STYLE(wxSTB_DEFAULT_STYLE);
+
+    // compat style name:
     XRC_ADD_STYLE(wxST_SIZEGRIP);
     XRC_ADD_STYLE(wxST_SIZEGRIP);
+
     AddWindowStyles();
 }
 
     AddWindowStyles();
 }
 
@@ -79,9 +87,19 @@ wxObject *wxStatusBarXmlHandler::DoCreateResource()
                 style[i] = wxSB_FLAT;
             else if (first == wxT("wxSB_RAISED"))
                 style[i] = wxSB_RAISED;
                 style[i] = wxSB_FLAT;
             else if (first == wxT("wxSB_RAISED"))
                 style[i] = wxSB_RAISED;
+            else if (!first.empty())
+            {
+                ReportParamError
+                (
+                    "styles",
+                    wxString::Format
+                    (
+                        "unknown status bar field style \"%s\"",
+                        first
+                    )
+                );
+            }
 
 
-            if (!first.empty())
-                wxLogError(wxT("Error in resource, unknown statusbar field style: ") + first);
             if(styles.Find(wxT(',')))
                 styles.Remove(0, styles.Find(wxT(',')) + 1);
         }
             if(styles.Find(wxT(',')))
                 styles.Remove(0, styles.Find(wxT(',')) + 1);
         }
@@ -89,6 +107,8 @@ wxObject *wxStatusBarXmlHandler::DoCreateResource()
         delete [] style;
     }
 
         delete [] style;
     }
 
+    CreateChildren(statbar);
+
     if (m_parentAsWindow)
     {
         wxFrame *parentFrame = wxDynamicCast(m_parent, wxFrame);
     if (m_parentAsWindow)
     {
         wxFrame *parentFrame = wxDynamicCast(m_parent, wxFrame);