X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f80ea77b4a8bac4ab005bfc592f9cd3262ffa397..f50491352a4338859cd7361ce483093e80c3679c:/src/xrc/xh_toolb.cpp diff --git a/src/xrc/xh_toolb.cpp b/src/xrc/xh_toolb.cpp index 7e44ab77a1..02f7f8893a 100644 --- a/src/xrc/xh_toolb.cpp +++ b/src/xrc/xh_toolb.cpp @@ -1,6 +1,6 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: xh_toolb.cpp -// Purpose: XRC resource for wxBoxSizer +// Name: src/xrc/xh_toolb.cpp +// Purpose: XRC resource for wxToolBar // Author: Vaclav Slavik // Created: 2000/08/11 // RCS-ID: $Id$ @@ -8,10 +8,6 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "xh_toolb.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -19,11 +15,14 @@ #pragma hdrstop #endif +#if wxUSE_XRC && wxUSE_TOOLBAR + #include "wx/xrc/xh_toolb.h" -#include "wx/toolbar.h" -#include "wx/frame.h" -#if wxUSE_TOOLBAR +#ifndef WX_PRECOMP + #include "wx/frame.h" + #include "wx/toolbar.h" +#endif IMPLEMENT_DYNAMIC_CLASS(wxToolBarXmlHandler, wxXmlResourceHandler) @@ -39,6 +38,14 @@ wxToolBarXmlHandler::wxToolBarXmlHandler() 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); + + XRC_ADD_STYLE(wxTB_TOP); + XRC_ADD_STYLE(wxTB_LEFT); + XRC_ADD_STYLE(wxTB_RIGHT); + XRC_ADD_STYLE(wxTB_BOTTOM); + AddWindowStyles(); } @@ -48,37 +55,26 @@ wxObject *wxToolBarXmlHandler::DoCreateResource() { wxCHECK_MSG(m_toolbar, NULL, wxT("Incorrect syntax of XRC resource: tool not within a toolbar!")); - if (GetPosition() != wxDefaultPosition) + wxItemKind kind = wxITEM_NORMAL; + if (GetBool(wxT("radio"))) + kind = wxITEM_RADIO; + if (GetBool(wxT("toggle"))) { - 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"))); + wxASSERT_MSG( kind == wxITEM_NORMAL, + _T("can't have both toggle and radio 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"))); + + if ( GetBool(wxT("disabled")) ) + m_toolbar->EnableTool(GetID(), false); + return m_toolbar; // must return non-NULL } @@ -117,6 +113,8 @@ wxObject *wxToolBarXmlHandler::DoCreateResource() long separation = GetLong(wxT("separation"), -1); if (separation != -1) toolbar->SetToolSeparation(separation); + if (HasParam(wxT("bg"))) + toolbar->SetBackgroundColour(GetColour(wxT("bg"))); wxXmlNode *children_node = GetParamNode(wxT("object")); if (!children_node) @@ -167,4 +165,4 @@ bool wxToolBarXmlHandler::CanHandle(wxXmlNode *node) (m_isInside && IsOfClass(node, wxT("separator")))); } -#endif +#endif // wxUSE_XRC && wxUSE_TOOLBAR