]> git.saurik.com Git - wxWidgets.git/commitdiff
updated wxToolBar handler to support new wxToolBar features
authorVáclav Slavík <vslavik@fastmail.fm>
Sat, 18 Jan 2003 23:49:28 +0000 (23:49 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Sat, 18 Jan 2003 23:49:28 +0000 (23:49 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18813 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

contrib/src/xrc/xh_toolb.cpp
src/xrc/xh_toolb.cpp

index 6fe844c348122b9e4628d5f0777475d8d635d644..b35ee00b145d546eaf2061372dd3981639ab0e68 100644 (file)
@@ -32,6 +32,11 @@ wxToolBarXmlHandler::wxToolBarXmlHandler()
     XRC_ADD_STYLE(wxTB_DOCKABLE);
     XRC_ADD_STYLE(wxTB_VERTICAL);
     XRC_ADD_STYLE(wxTB_HORIZONTAL);
+    XRC_ADD_STYLE(wxTB_3DBUTTONS);
+    XRC_ADD_STYLE(wxTB_TEXT);
+    XRC_ADD_STYLE(wxTB_NOICONS);
+    XRC_ADD_STYLE(wxTB_NODIVIDER);
+    XRC_ADD_STYLE(wxTB_NOALIGN);
 }
 
 wxObject *wxToolBarXmlHandler::DoCreateResource()
@@ -39,15 +44,38 @@ wxObject *wxToolBarXmlHandler::DoCreateResource()
     if (m_class == wxT("tool"))
     {
         wxCHECK_MSG(m_toolbar, NULL, wxT("Incorrect syntax of XRC resource: tool not within a toolbar!"));
-        m_toolbar->AddTool(GetID(),
-                           GetBitmap(wxT("bitmap"), wxART_TOOLBAR),
-                           GetBitmap(wxT("bitmap2"), wxART_TOOLBAR),
-                           GetBool(wxT("toggle")),
-                           GetPosition().x,
-                           GetPosition().y,
-                           NULL,
-                           GetText(wxT("tooltip")),
-                           GetText(wxT("longhelp")));
+        
+        if (GetPosition() != wxDefaultPosition)
+        {
+            m_toolbar->AddTool(GetID(),
+                               GetBitmap(wxT("bitmap"), wxART_TOOLBAR),
+                               GetBitmap(wxT("bitmap2"), wxART_TOOLBAR),
+                               GetBool(wxT("toggle")),
+                               GetPosition().x,
+                               GetPosition().y,
+                               NULL,
+                               GetText(wxT("tooltip")),
+                               GetText(wxT("longhelp")));
+        }
+        else
+        {        
+            wxItemKind kind = wxITEM_NORMAL;
+            if (GetBool(wxT("radio")))
+                kind = wxITEM_RADIO;
+            if (GetBool(wxT("toggle")))
+            {
+                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),
+                               GetBitmap(wxT("bitmap2"), wxART_TOOLBAR),
+                               kind,
+                               GetText(wxT("tooltip")),
+                               GetText(wxT("longhelp")));
+        }
         return m_toolbar; // must return non-NULL
     }
     
index 6fe844c348122b9e4628d5f0777475d8d635d644..b35ee00b145d546eaf2061372dd3981639ab0e68 100644 (file)
@@ -32,6 +32,11 @@ wxToolBarXmlHandler::wxToolBarXmlHandler()
     XRC_ADD_STYLE(wxTB_DOCKABLE);
     XRC_ADD_STYLE(wxTB_VERTICAL);
     XRC_ADD_STYLE(wxTB_HORIZONTAL);
+    XRC_ADD_STYLE(wxTB_3DBUTTONS);
+    XRC_ADD_STYLE(wxTB_TEXT);
+    XRC_ADD_STYLE(wxTB_NOICONS);
+    XRC_ADD_STYLE(wxTB_NODIVIDER);
+    XRC_ADD_STYLE(wxTB_NOALIGN);
 }
 
 wxObject *wxToolBarXmlHandler::DoCreateResource()
@@ -39,15 +44,38 @@ wxObject *wxToolBarXmlHandler::DoCreateResource()
     if (m_class == wxT("tool"))
     {
         wxCHECK_MSG(m_toolbar, NULL, wxT("Incorrect syntax of XRC resource: tool not within a toolbar!"));
-        m_toolbar->AddTool(GetID(),
-                           GetBitmap(wxT("bitmap"), wxART_TOOLBAR),
-                           GetBitmap(wxT("bitmap2"), wxART_TOOLBAR),
-                           GetBool(wxT("toggle")),
-                           GetPosition().x,
-                           GetPosition().y,
-                           NULL,
-                           GetText(wxT("tooltip")),
-                           GetText(wxT("longhelp")));
+        
+        if (GetPosition() != wxDefaultPosition)
+        {
+            m_toolbar->AddTool(GetID(),
+                               GetBitmap(wxT("bitmap"), wxART_TOOLBAR),
+                               GetBitmap(wxT("bitmap2"), wxART_TOOLBAR),
+                               GetBool(wxT("toggle")),
+                               GetPosition().x,
+                               GetPosition().y,
+                               NULL,
+                               GetText(wxT("tooltip")),
+                               GetText(wxT("longhelp")));
+        }
+        else
+        {        
+            wxItemKind kind = wxITEM_NORMAL;
+            if (GetBool(wxT("radio")))
+                kind = wxITEM_RADIO;
+            if (GetBool(wxT("toggle")))
+            {
+                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),
+                               GetBitmap(wxT("bitmap2"), wxART_TOOLBAR),
+                               kind,
+                               GetText(wxT("tooltip")),
+                               GetText(wxT("longhelp")));
+        }
         return m_toolbar; // must return non-NULL
     }