]> git.saurik.com Git - wxWidgets.git/blobdiff - src/xrc/xh_toolb.cpp
add wrappers to avoid compiling code which will never be used
[wxWidgets.git] / src / xrc / xh_toolb.cpp
index 041c8d8b66cebbf54f2ea9740b1380f04fd78e03..0c1015364810c8b0d0cfdfb43b3b0c43fa980703 100644 (file)
@@ -26,6 +26,8 @@
     #include "wx/toolbar.h"
 #endif
 
+#include "wx/xml/xml.h"
+
 IMPLEMENT_DYNAMIC_CLASS(wxToolBarXmlHandler, wxXmlResourceHandler)
 
 wxToolBarXmlHandler::wxToolBarXmlHandler()
@@ -78,6 +80,7 @@ wxObject *wxToolBarXmlHandler::DoCreateResource()
 
             kind = wxITEM_CHECK;
         }
+
 #if wxUSE_MENUS
         // check whether we have dropdown tag inside
         wxMenu *menu = NULL; // menu for drop down items
@@ -137,6 +140,23 @@ wxObject *wxToolBarXmlHandler::DoCreateResource()
 
         if ( GetBool(wxT("disabled")) )
             m_toolbar->EnableTool(GetID(), false);
+
+        if ( GetBool(wxS("checked")) )
+        {
+            if ( kind == wxITEM_NORMAL )
+            {
+                ReportParamError
+                (
+                    "checked",
+                    "only <radio> nor <toggle> tools can be checked"
+                );
+            }
+            else
+            {
+                m_toolbar->ToggleTool(GetID(), true);
+            }
+        }
+
 #if wxUSE_MENUS
         if ( menu )
             tool->SetDropdownMenu(menu);
@@ -221,8 +241,6 @@ wxObject *wxToolBarXmlHandler::DoCreateResource()
         m_isInside = false;
         m_toolbar = NULL;
 
-        toolbar->Realize();
-
         if (m_parentAsWindow && !GetBool(wxT("dontattachtoframe")))
         {
             wxFrame *parentFrame = wxDynamicCast(m_parent, wxFrame);
@@ -230,6 +248,8 @@ wxObject *wxToolBarXmlHandler::DoCreateResource()
                 parentFrame->SetToolBar(toolbar);
         }
 
+        toolbar->Realize();
+
         return toolbar;
     }
 }