]> git.saurik.com Git - wxWidgets.git/blobdiff - src/xrc/xh_toolb.cpp
Fixed bug: wxPGProperty::SetName() crashed if it was called before property was added...
[wxWidgets.git] / src / xrc / xh_toolb.cpp
index b6f518d4af4b320c08b0082b0c00543d83cea9c7..b88c400d3fa8c4f814f5bf0bb5a3d7eef42e9008 100644 (file)
@@ -57,8 +57,7 @@ wxObject *wxToolBarXmlHandler::DoCreateResource()
     {
         if ( !m_toolbar )
         {
-            wxLogError(_("XRC syntax error: \"tool\" only allowed inside a "
-                         "toolbar"));
+            ReportError("tool only allowed inside a wxToolBar");
             return NULL;
         }
 
@@ -70,9 +69,11 @@ wxObject *wxToolBarXmlHandler::DoCreateResource()
         {
             if ( kind != wxITEM_NORMAL )
             {
-                wxLogWarning(_("XRC syntax error: tool can't have both "
-                               "\"radio\" and \"toggle\" properties, "
-                               "ignoring the former."));
+                ReportParamError
+                (
+                    "toggle",
+                    "tool can't have both <radio> and <toggle> properties"
+                );
             }
 
             kind = wxITEM_CHECK;
@@ -85,9 +86,11 @@ wxObject *wxToolBarXmlHandler::DoCreateResource()
         {
             if ( kind != wxITEM_NORMAL )
             {
-                wxLogWarning(_("XRC syntax error: drop-down tool can't have "
-                               "neither \"radio\" nor \"toggle\" properties, "
-                               "ignoring them."));
+                ReportParamError
+                (
+                    "dropdown",
+                    "drop-down tool can't have neither <radio> nor <toggle> properties"
+                );
             }
 
             kind = wxITEM_DROPDOWN;
@@ -102,29 +105,35 @@ wxObject *wxToolBarXmlHandler::DoCreateResource()
                 menu = wxDynamicCast(res, wxMenu);
                 if ( !menu )
                 {
-                    wxLogError(_("XRC syntax error: invalid drop-down tool "
-                                 "contents (expected a menu)."));
+                    ReportError
+                    (
+                        nodeMenu,
+                        "drop-down tool contents can only be a wxMenu"
+                    );
                 }
 
                 if ( nodeMenu->GetNext() )
                 {
-                    wxLogWarning(_("XRC syntax error: unexpected extra "
-                                   "contents under drop-down tool."));
+                    ReportError
+                    (
+                        nodeMenu->GetNext(),
+                        "unexpected extra contents under drop-down tool"
+                    );
                 }
             }
         }
 
-        wxToolBarToolBase * const
-            tool = m_toolbar->AddTool
-                             (
-                                GetID(),
-                                GetText(wxT("label")),
-                                GetBitmap(wxT("bitmap"), wxART_TOOLBAR),
-                                GetBitmap(wxT("bitmap2"), wxART_TOOLBAR),
-                                kind,
-                                GetText(wxT("tooltip")),
-                                GetText(wxT("longhelp"))
-                             );
+        wxToolBarToolBase * const tool =
+            m_toolbar->AddTool
+                       (
+                          GetID(),
+                          GetText(wxT("label")),
+                          GetBitmap(wxT("bitmap"), wxART_TOOLBAR, m_toolSize),
+                          GetBitmap(wxT("bitmap2"), wxART_TOOLBAR, m_toolSize),
+                          kind,
+                          GetText(wxT("tooltip")),
+                          GetText(wxT("longhelp"))
+                       );
 
         if ( GetBool(wxT("disabled")) )
             m_toolbar->EnableTool(GetID(), false);
@@ -139,8 +148,7 @@ wxObject *wxToolBarXmlHandler::DoCreateResource()
     {
         if ( !m_toolbar )
         {
-            wxLogError(_("XRC syntax error: \"separator\" only allowed inside a "
-                         "toolbar"));
+            ReportError("separator only allowed inside wxToolBar");
             return NULL;
         }
         m_toolbar->AddSeparator();
@@ -164,9 +172,9 @@ wxObject *wxToolBarXmlHandler::DoCreateResource()
                          GetName());
         SetupWindow(toolbar);
 
-        wxSize bmpsize = GetSize(wxT("bitmapsize"));
-        if (!(bmpsize == wxDefaultSize))
-            toolbar->SetToolBitmapSize(bmpsize);
+        m_toolSize = GetSize(wxT("bitmapsize"));
+        if (!(m_toolSize == wxDefaultSize))
+            toolbar->SetToolBitmapSize(m_toolSize);
         wxSize margins = GetSize(wxT("margins"));
         if (!(margins == wxDefaultSize))
             toolbar->SetMargins(margins.x, margins.y);