]> 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_slidr.cpp
         xh_spin.cpp
         xh_split.cpp
+        xh_statbar.cpp
         xh_stbmp.cpp
         xh_stbox.cpp
         xh_stlin.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_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
             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_scwin.h"
 #include "wx/xrc/xh_split.h"
 #include "wx/xrc/xh_wizrd.h"
+#include "wx/xrc/xh_statbar.h"
 
 #endif // _WX_XMLRES_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_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)
 - 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:
 
 
 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.
 
 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
 ---------
 
 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_scwin.h"
 #include "wx/xrc/xh_split.h"
 #include "wx/xrc/xh_wizrd.h"
+#include "wx/xrc/xh_statbar.h"
 
 #endif // _WX_XMLRES_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_WIZARDDLG
     AddHandler(new wxWizardXmlHandler);
 #endif
+#if wxUSE_STATUSBAR
+    AddHandler(new wxStatusBarXmlHandler);
+#endif
 }
 }