]> git.saurik.com Git - wxWidgets.git/blobdiff - src/xrc/xh_toolb.cpp
reSWIGged
[wxWidgets.git] / src / xrc / xh_toolb.cpp
index 4e472a3dc9a1e8afe7ce9325312b5b7a33171885..53c5088d4fcf1047b3f3b29adff752d75455c2e6 100644 (file)
@@ -7,8 +7,8 @@
 // Copyright:   (c) 2000 Vaclav Slavik
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 // Copyright:   (c) 2000 Vaclav Slavik
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #pragma implementation "xh_toolb.h"
 #endif
 
 #pragma implementation "xh_toolb.h"
 #endif
 
     #pragma hdrstop
 #endif
 
     #pragma hdrstop
 #endif
 
+#if wxUSE_XRC && wxUSE_TOOLBAR
+
 #include "wx/xrc/xh_toolb.h"
 #include "wx/toolbar.h"
 #include "wx/frame.h"
 
 #include "wx/xrc/xh_toolb.h"
 #include "wx/toolbar.h"
 #include "wx/frame.h"
 
-#if wxUSE_TOOLBAR
-
 IMPLEMENT_DYNAMIC_CLASS(wxToolBarXmlHandler, wxXmlResourceHandler)
 
 IMPLEMENT_DYNAMIC_CLASS(wxToolBarXmlHandler, wxXmlResourceHandler)
 
-wxToolBarXmlHandler::wxToolBarXmlHandler() 
-: wxXmlResourceHandler(), m_isInside(FALSE), m_toolbar(NULL)
+wxToolBarXmlHandler::wxToolBarXmlHandler()
+: wxXmlResourceHandler(), m_isInside(false), m_toolbar(NULL)
 {
     XRC_ADD_STYLE(wxTB_FLAT);
     XRC_ADD_STYLE(wxTB_DOCKABLE);
 {
     XRC_ADD_STYLE(wxTB_FLAT);
     XRC_ADD_STYLE(wxTB_DOCKABLE);
@@ -39,14 +39,17 @@ wxToolBarXmlHandler::wxToolBarXmlHandler()
     XRC_ADD_STYLE(wxTB_NOICONS);
     XRC_ADD_STYLE(wxTB_NODIVIDER);
     XRC_ADD_STYLE(wxTB_NOALIGN);
     XRC_ADD_STYLE(wxTB_NOICONS);
     XRC_ADD_STYLE(wxTB_NODIVIDER);
     XRC_ADD_STYLE(wxTB_NOALIGN);
+    XRC_ADD_STYLE(wxTB_HORZ_LAYOUT);
+    XRC_ADD_STYLE(wxTB_HORZ_TEXT);
+    AddWindowStyles();
 }
 
 wxObject *wxToolBarXmlHandler::DoCreateResource()
 }
 
 wxObject *wxToolBarXmlHandler::DoCreateResource()
-{ 
+{
     if (m_class == wxT("tool"))
     {
         wxCHECK_MSG(m_toolbar, NULL, wxT("Incorrect syntax of XRC resource: tool not within a toolbar!"));
     if (m_class == wxT("tool"))
     {
         wxCHECK_MSG(m_toolbar, NULL, wxT("Incorrect syntax of XRC resource: tool not within a toolbar!"));
-        
+
         if (GetPosition() != wxDefaultPosition)
         {
             m_toolbar->AddTool(GetID(),
         if (GetPosition() != wxDefaultPosition)
         {
             m_toolbar->AddTool(GetID(),
@@ -60,7 +63,7 @@ wxObject *wxToolBarXmlHandler::DoCreateResource()
                                GetText(wxT("longhelp")));
         }
         else
                                GetText(wxT("longhelp")));
         }
         else
-        {        
+        {
             wxItemKind kind = wxITEM_NORMAL;
             if (GetBool(wxT("radio")))
                 kind = wxITEM_RADIO;
             wxItemKind kind = wxITEM_NORMAL;
             if (GetBool(wxT("radio")))
                 kind = wxITEM_RADIO;
@@ -69,7 +72,7 @@ wxObject *wxToolBarXmlHandler::DoCreateResource()
                 wxASSERT_MSG( kind == wxITEM_NORMAL,
                               _T("can't have both toggleable and radion button at once") );
                 kind = wxITEM_CHECK;
                 wxASSERT_MSG( kind == wxITEM_NORMAL,
                               _T("can't have both toggleable and radion button at once") );
                 kind = wxITEM_CHECK;
-            }        
+            }
             m_toolbar->AddTool(GetID(),
                                GetText(wxT("label")),
                                GetBitmap(wxT("bitmap"), wxART_TOOLBAR),
             m_toolbar->AddTool(GetID(),
                                GetText(wxT("label")),
                                GetBitmap(wxT("bitmap"), wxART_TOOLBAR),
@@ -80,14 +83,14 @@ wxObject *wxToolBarXmlHandler::DoCreateResource()
         }
         return m_toolbar; // must return non-NULL
     }
         }
         return m_toolbar; // must return non-NULL
     }
-    
+
     else if (m_class == wxT("separator"))
     {
         wxCHECK_MSG(m_toolbar, NULL, wxT("Incorrect syntax of XRC resource: separator not within a toolbar!"));
         m_toolbar->AddSeparator();
         return m_toolbar; // must return non-NULL
     }
     else if (m_class == wxT("separator"))
     {
         wxCHECK_MSG(m_toolbar, NULL, wxT("Incorrect syntax of XRC resource: separator not within a toolbar!"));
         m_toolbar->AddSeparator();
         return m_toolbar; // must return non-NULL
     }
-    
+
     else /*<object class="wxToolBar">*/
     {
         int style = GetStyle(wxT("style"), wxNO_BORDER | wxTB_HORIZONTAL);
     else /*<object class="wxToolBar">*/
     {
         int style = GetStyle(wxT("style"), wxNO_BORDER | wxTB_HORIZONTAL);
@@ -96,7 +99,7 @@ wxObject *wxToolBarXmlHandler::DoCreateResource()
 #endif
 
         XRC_MAKE_INSTANCE(toolbar, wxToolBar)
 #endif
 
         XRC_MAKE_INSTANCE(toolbar, wxToolBar)
+
         toolbar->Create(m_parentAsWindow,
                          GetID(),
                          GetPosition(),
         toolbar->Create(m_parentAsWindow,
                          GetID(),
                          GetPosition(),
@@ -123,14 +126,14 @@ wxObject *wxToolBarXmlHandler::DoCreateResource()
 
         if (children_node == NULL) return toolbar;
 
 
         if (children_node == NULL) return toolbar;
 
-        m_isInside = TRUE;
+        m_isInside = true;
         m_toolbar = toolbar;
 
         wxXmlNode *n = children_node;
 
         while (n)
         {
         m_toolbar = toolbar;
 
         wxXmlNode *n = children_node;
 
         while (n)
         {
-            if ((n->GetType() == wxXML_ELEMENT_NODE) && 
+            if ((n->GetType() == wxXML_ELEMENT_NODE) &&
                 (n->GetName() == wxT("object") || n->GetName() == wxT("object_ref")))
             {
                 wxObject *created = CreateResFromNode(n, toolbar, NULL);
                 (n->GetName() == wxT("object") || n->GetName() == wxT("object_ref")))
             {
                 wxObject *created = CreateResFromNode(n, toolbar, NULL);
@@ -143,13 +146,12 @@ wxObject *wxToolBarXmlHandler::DoCreateResource()
             n = n->GetNext();
         }
 
             n = n->GetNext();
         }
 
-        m_isInside = FALSE;
+        m_isInside = false;
         m_toolbar = NULL;
 
         toolbar->Realize();
 
         m_toolbar = NULL;
 
         toolbar->Realize();
 
-        // FIXME: how can I create a toolbar without immediately setting it to the frame?
-        if (m_parentAsWindow)
+        if (m_parentAsWindow && !GetBool(wxT("dontattachtoframe")))
         {
             wxFrame *parentFrame = wxDynamicCast(m_parent, wxFrame);
             if (parentFrame)
         {
             wxFrame *parentFrame = wxDynamicCast(m_parent, wxFrame);
             if (parentFrame)
@@ -163,8 +165,8 @@ wxObject *wxToolBarXmlHandler::DoCreateResource()
 bool wxToolBarXmlHandler::CanHandle(wxXmlNode *node)
 {
     return ((!m_isInside && IsOfClass(node, wxT("wxToolBar"))) ||
 bool wxToolBarXmlHandler::CanHandle(wxXmlNode *node)
 {
     return ((!m_isInside && IsOfClass(node, wxT("wxToolBar"))) ||
-            (m_isInside && IsOfClass(node, wxT("tool"))) || 
+            (m_isInside && IsOfClass(node, wxT("tool"))) ||
             (m_isInside && IsOfClass(node, wxT("separator"))));
 }
 
             (m_isInside && IsOfClass(node, wxT("separator"))));
 }
 
-#endif
+#endif // wxUSE_XRC && wxUSE_TOOLBAR