]> git.saurik.com Git - wxWidgets.git/commitdiff
Applied patch [ 882493 ] Added XRC support for wxStatusBar
authorJulian Smart <julian@anthemion.co.uk>
Fri, 23 Jan 2004 10:01:44 +0000 (10:01 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Fri, 23 Jan 2004 10:01:44 +0000 (10:01 +0000)
By Brian Ravnsgaard Riis

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25337 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

contrib/build/xrc/xrc.bkl
contrib/include/wx/xrc/xh_all.h
contrib/include/wx/xrc/xh_statbar.h [new file with mode: 0644]
contrib/src/xrc/xh_statbar.cpp [new file with mode: 0644]
contrib/src/xrc/xmlrsall.cpp
docs/changes.txt
docs/tech/tn0014.txt
include/wx/xrc/xh_all.h
include/wx/xrc/xh_statbar.h [new file with mode: 0644]
src/xrc/xh_statbar.cpp [new file with mode: 0644]
src/xrc/xmlrsall.cpp

index 3a6f12564eff7a62c40d0a911375008b49f343d8..6a2022558f96a5e57e31f235eb9761b32c44a651 100644 (file)
@@ -35,6 +35,7 @@
         xh_slidr.cpp
         xh_spin.cpp
         xh_split.cpp
+        xh_statbar.cpp
         xh_stbmp.cpp
         xh_stbox.cpp
         xh_stlin.cpp
@@ -77,6 +78,7 @@
             wx/xrc/xh_slidr.h
             wx/xrc/xh_spin.h
             wx/xrc/xh_split.h
+            wx/xrc/xh_statbar.h
             wx/xrc/xh_stbmp.h
             wx/xrc/xh_stbox.h
             wx/xrc/xh_stlin.h
index 51ccbf3533ff7d3b8c8f6fac8dd35efe6ef5e9be..fc1d82c439e74122f67d3adebd12f2f81411deb2 100644 (file)
@@ -49,5 +49,6 @@
 #include "wx/xrc/xh_scwin.h"
 #include "wx/xrc/xh_split.h"
 #include "wx/xrc/xh_wizrd.h"
+#include "wx/xrc/xh_statbar.h"
 
 #endif // _WX_XMLRES_H_
diff --git a/contrib/include/wx/xrc/xh_statbar.h b/contrib/include/wx/xrc/xh_statbar.h
new file mode 100644 (file)
index 0000000..7e57e00
--- /dev/null
@@ -0,0 +1,29 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        xh_statbar.h
+// Purpose:     XML resource handler for wxStatusBar
+// Author:      Brian Ravnsgaard Riis
+// Created:     2004/01/21
+// RCS-ID:
+// Copyright:   (c) 2004 Brian Ravnsgaard Riis
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_XH_STATBAR_H_
+#define _WX_XH_STATBAR_H_
+
+#if defined(__GNUG__) && !defined(__APPLE__)
+#pragma interface "xh_statbar.h"
+#endif
+
+#include "wx/xrc/xmlres.h"
+
+class WXXMLDLLEXPORT wxStatusBarXmlHandler : public wxXmlResourceHandler
+{
+    public:
+        wxStatusBarXmlHandler();
+        virtual wxObject *DoCreateResource();
+        virtual bool CanHandle(wxXmlNode *node);
+};
+
+#endif // _WX_XH_STATBAR_H_
+
diff --git a/contrib/src/xrc/xh_statbar.cpp b/contrib/src/xrc/xh_statbar.cpp
new file mode 100644 (file)
index 0000000..d69735c
--- /dev/null
@@ -0,0 +1,79 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        xh_statbar.cpp
+// Purpose:     XRC resource for wxStatusBar
+// Author:      Brian Ravnsgaard Riis
+// Created:     2004/01/21
+// RCS-ID:      
+// Copyright:   (c) 2004 Brian Ravnsgaard Riis
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifdef __GNUG__
+#pragma implementation "xh_statbar.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#include "wx/frame.h"
+#include "wx/string.h"
+
+#if wxUSE_STATUSBAR
+
+#include "wx/xrc/xh_statbar.h"
+#include "wx/statusbr.h"
+
+wxStatusBarXmlHandler::wxStatusBarXmlHandler() : 
+        wxXmlResourceHandler()
+{
+    XRC_ADD_STYLE(wxST_SIZEGRIP);
+    AddWindowStyles();
+}
+
+wxObject *wxStatusBarXmlHandler::DoCreateResource()
+{
+    XRC_MAKE_INSTANCE(statbar, wxStatusBar)
+
+    statbar->Create(m_parentAsWindow,
+                    GetID(),
+                    GetStyle(),
+                    GetName());
+
+    int fields = GetLong(wxT("fields"), 1);
+    wxString widths = GetParamValue(wxT("widths"));
+
+    if(fields > 1)
+    {
+        int *width = new int[fields];
+  
+        for (unsigned int i = 0; i < fields; ++i)
+        {
+            width[i] = wxAtoi(widths.BeforeFirst(wxT(',')));
+            if(widths.Find(wxT(',')))
+                widths.Remove(0, widths.Find(wxT(',')) + 1);
+        }
+        statbar->SetFieldsCount(fields, width);
+        delete[] width;
+    }
+
+    if (m_parentAsWindow)
+    {
+        wxFrame *parentFrame = wxDynamicCast(m_parent, wxFrame);
+        if (parentFrame)
+            parentFrame->SetStatusBar(statbar);
+    }
+
+    return statbar;
+}
+
+bool wxStatusBarXmlHandler::CanHandle(wxXmlNode *node)
+{
+    return IsOfClass(node, wxT("wxStatusBar"));
+}
+
+#endif
+
index 2749b9eb004cc1c6c4f61c0a8a8700ea2cd86a69..0b180c5cbfac1fb8f79ea99d3a1f5782db956e24 100644 (file)
@@ -99,4 +99,7 @@ void wxXmlResource::InitAllHandlers()
 #if wxUSE_WIZARDDLG
     AddHandler(new wxWizardXmlHandler);
 #endif
+#if wxUSE_STATUSBAR
+    AddHandler(new wxStatusBarXmlHandler);
+#endif
 }
index 65bb4e65f44e7e98d0873ae13f12ce56f8ef7074..7b0182d2c7051d1f511af33a3b08edefb690a495 100644 (file)
@@ -113,6 +113,7 @@ All (GUI):
 - fixed scrollbar problem in wxGrid (not showing scrollbars
   when sizing smaller) (Shane Harper)
 - dbbrowse demo fixed for Unicode (Wlodzimierz Skiba)
+- added wxStatusBar support to XRC (Brian Ravnsgaard Riis)
 
 wxMSW:
 
index c079024bbf32696fb278f40834794996276a4d45..cf95ed05ab9783cb6ebc92736e222b5d8d3fd797 100644 (file)
@@ -323,6 +323,10 @@ and the splitter is created unsplitted. If there are two children, the
 splitter is created splitted, either horizontally or vertically depending
 on the value of "orientation" attribute.
 
+wxStatusBar
+-----------
+fields                     Integer number of fields
+widths                     Width1, Width2, Width3, ...
 
 wxToolBar
 ---------
index 51ccbf3533ff7d3b8c8f6fac8dd35efe6ef5e9be..fc1d82c439e74122f67d3adebd12f2f81411deb2 100644 (file)
@@ -49,5 +49,6 @@
 #include "wx/xrc/xh_scwin.h"
 #include "wx/xrc/xh_split.h"
 #include "wx/xrc/xh_wizrd.h"
+#include "wx/xrc/xh_statbar.h"
 
 #endif // _WX_XMLRES_H_
diff --git a/include/wx/xrc/xh_statbar.h b/include/wx/xrc/xh_statbar.h
new file mode 100644 (file)
index 0000000..7e57e00
--- /dev/null
@@ -0,0 +1,29 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        xh_statbar.h
+// Purpose:     XML resource handler for wxStatusBar
+// Author:      Brian Ravnsgaard Riis
+// Created:     2004/01/21
+// RCS-ID:
+// Copyright:   (c) 2004 Brian Ravnsgaard Riis
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_XH_STATBAR_H_
+#define _WX_XH_STATBAR_H_
+
+#if defined(__GNUG__) && !defined(__APPLE__)
+#pragma interface "xh_statbar.h"
+#endif
+
+#include "wx/xrc/xmlres.h"
+
+class WXXMLDLLEXPORT wxStatusBarXmlHandler : public wxXmlResourceHandler
+{
+    public:
+        wxStatusBarXmlHandler();
+        virtual wxObject *DoCreateResource();
+        virtual bool CanHandle(wxXmlNode *node);
+};
+
+#endif // _WX_XH_STATBAR_H_
+
diff --git a/src/xrc/xh_statbar.cpp b/src/xrc/xh_statbar.cpp
new file mode 100644 (file)
index 0000000..d69735c
--- /dev/null
@@ -0,0 +1,79 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        xh_statbar.cpp
+// Purpose:     XRC resource for wxStatusBar
+// Author:      Brian Ravnsgaard Riis
+// Created:     2004/01/21
+// RCS-ID:      
+// Copyright:   (c) 2004 Brian Ravnsgaard Riis
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifdef __GNUG__
+#pragma implementation "xh_statbar.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#include "wx/frame.h"
+#include "wx/string.h"
+
+#if wxUSE_STATUSBAR
+
+#include "wx/xrc/xh_statbar.h"
+#include "wx/statusbr.h"
+
+wxStatusBarXmlHandler::wxStatusBarXmlHandler() : 
+        wxXmlResourceHandler()
+{
+    XRC_ADD_STYLE(wxST_SIZEGRIP);
+    AddWindowStyles();
+}
+
+wxObject *wxStatusBarXmlHandler::DoCreateResource()
+{
+    XRC_MAKE_INSTANCE(statbar, wxStatusBar)
+
+    statbar->Create(m_parentAsWindow,
+                    GetID(),
+                    GetStyle(),
+                    GetName());
+
+    int fields = GetLong(wxT("fields"), 1);
+    wxString widths = GetParamValue(wxT("widths"));
+
+    if(fields > 1)
+    {
+        int *width = new int[fields];
+  
+        for (unsigned int i = 0; i < fields; ++i)
+        {
+            width[i] = wxAtoi(widths.BeforeFirst(wxT(',')));
+            if(widths.Find(wxT(',')))
+                widths.Remove(0, widths.Find(wxT(',')) + 1);
+        }
+        statbar->SetFieldsCount(fields, width);
+        delete[] width;
+    }
+
+    if (m_parentAsWindow)
+    {
+        wxFrame *parentFrame = wxDynamicCast(m_parent, wxFrame);
+        if (parentFrame)
+            parentFrame->SetStatusBar(statbar);
+    }
+
+    return statbar;
+}
+
+bool wxStatusBarXmlHandler::CanHandle(wxXmlNode *node)
+{
+    return IsOfClass(node, wxT("wxStatusBar"));
+}
+
+#endif
+
index 2749b9eb004cc1c6c4f61c0a8a8700ea2cd86a69..0b180c5cbfac1fb8f79ea99d3a1f5782db956e24 100644 (file)
@@ -99,4 +99,7 @@ void wxXmlResource::InitAllHandlers()
 #if wxUSE_WIZARDDLG
     AddHandler(new wxWizardXmlHandler);
 #endif
+#if wxUSE_STATUSBAR
+    AddHandler(new wxStatusBarXmlHandler);
+#endif
 }