]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/src/xrc/xh_statbar.cpp
Warning fixes, source cleaning.
[wxWidgets.git] / contrib / src / xrc / xh_statbar.cpp
index 60e1a894fef76591fbb44633c56d6f802b00212f..ec4eefc61617241eb2c3c34d2ef133be8139f73a 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "wx/frame.h"
 #include "wx/string.h"
+#include "wx/log.h"
 
 #if wxUSE_STATUSBAR
 
@@ -47,6 +48,7 @@ wxObject *wxStatusBarXmlHandler::DoCreateResource()
 
     int fields = GetLong(wxT("fields"), 1);
     wxString widths = GetParamValue(wxT("widths"));
+    wxString styles = GetParamValue(wxT("styles"));
 
     if (fields > 1 && !widths.IsEmpty())
     {
@@ -61,6 +63,32 @@ wxObject *wxStatusBarXmlHandler::DoCreateResource()
         statbar->SetFieldsCount(fields, width);
         delete[] width;
     }
+    else
+        statbar->SetFieldsCount(fields);
+
+    if (!styles.IsEmpty())
+    {
+        int *style = new int[fields];
+        for (int i = 0; i < fields; ++i)
+        {
+            style[i] = wxSB_NORMAL;
+
+            wxString first = styles.BeforeFirst(wxT(','));
+            if (first == wxT("wxSB_NORMAL"))
+                style[i] = wxSB_NORMAL;
+            else if (first == wxT("wxSB_FLAT"))
+                style[i] = wxSB_FLAT;
+            else if (first == wxT("wxSB_RAISED"))
+                style[i] = wxSB_RAISED;
+
+            if (!first.IsEmpty())
+                wxLogError(wxT("Error in resource, unknown statusbar field style: ") + first);
+            if(styles.Find(wxT(',')))
+                styles.Remove(0, styles.Find(wxT(',')) + 1);
+        }
+        statbar->SetStatusStyles(fields, style);
+        delete [] style;
+    }
 
     if (m_parentAsWindow)
     {