X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0f442030c49fd83eea24a332f286bcbbf4c4055c..8b3fddc49326c0b6019cd7082218726aa17a5727:/src/generic/tbarsmpl.cpp diff --git a/src/generic/tbarsmpl.cpp b/src/generic/tbarsmpl.cpp index 33d0dfeb9f..1a0cddfd35 100644 --- a/src/generic/tbarsmpl.cpp +++ b/src/generic/tbarsmpl.cpp @@ -85,6 +85,12 @@ public: IMPLEMENT_DYNAMIC_CLASS(wxToolBarSimple, wxToolBarBase) +#if !wxUSE_TOOLBAR_NATIVE + #include "wx/toolbar.h" + + IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxToolBarSimple) +#endif + BEGIN_EVENT_TABLE(wxToolBarSimple, wxToolBarBase) EVT_SIZE(wxToolBarSimple::OnSize) EVT_SCROLL(wxToolBarSimple::OnScroll) @@ -196,10 +202,10 @@ bool wxToolBarSimple::DoInsertTool(size_t WXUNUSED(pos), if ( tool->IsButton() ) { // Calculate reasonable max size in case Layout() not called - if ((tool->m_x + tool->GetBitmap1().GetWidth() + m_xMargin) > m_maxWidth) + if ((tool->m_x + tool->GetNormalBitmap().GetWidth() + m_xMargin) > m_maxWidth) m_maxWidth = (wxCoord)((tool->m_x + tool->GetWidth() + m_xMargin)); - if ((tool->m_y + tool->GetBitmap1().GetHeight() + m_yMargin) > m_maxHeight) + if ((tool->m_y + tool->GetNormalBitmap().GetHeight() + m_yMargin) > m_maxHeight) m_maxHeight = (wxCoord)((tool->m_y + tool->GetHeight() + m_yMargin)); } @@ -228,8 +234,7 @@ bool wxToolBarSimple::Create(wxWindow *parent, return FALSE; // Set it to grey (or other 3D face colour) - wxSystemSettings settings; - SetBackgroundColour(settings.GetSystemColour(wxSYS_COLOUR_3DFACE)); + SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE)); if ( GetWindowStyleFlag() & wxTB_VERTICAL ) { @@ -503,17 +508,19 @@ void wxToolBarSimple::DrawTool(wxDC& dc, wxToolBarToolBase *toolBase) PrepareDC(dc); wxPen dark_grey_pen(wxColour( 85,85,85 ), 1, wxSOLID); - wxPen white_pen("WHITE", 1, wxSOLID); - wxPen black_pen("BLACK", 1, wxSOLID); + wxPen white_pen(wxT("WHITE"), 1, wxSOLID); + wxPen black_pen(wxT("BLACK"), 1, wxSOLID); wxBitmap bitmap = tool->GetBitmap(); if ( bitmap.Ok() ) { +#if wxUSE_PALETTE #ifndef __WXGTK__ if (bitmap.GetPalette()) memDC.SetPalette(*bitmap.GetPalette()); #endif +#endif // wxUSE_PALETTE int ax = (int)tool->m_x, ay = (int)tool->m_y, @@ -546,9 +553,13 @@ void wxToolBarSimple::DrawTool(wxDC& dc, wxToolBarToolBase *toolBase) &memDC, 0, 0); } memDC.SelectObject(wxNullBitmap); + +#if wxUSE_PALETTE #ifndef __WXGTK__ - memDC.SetPalette(wxNullPalette); + if (bitmap.GetPalette()) + memDC.SetPalette(wxNullPalette); #endif +#endif // wxUSE_PALETTE } // No second bitmap, so draw a thick line around bitmap, or invert if mono else if ( tool->IsToggled() ) @@ -562,14 +573,14 @@ void wxToolBarSimple::DrawTool(wxDC& dc, wxToolBarToolBase *toolBase) if (!drawBorder) { - memDC.SelectObject(tool->GetBitmap1()); + memDC.SelectObject(tool->GetNormalBitmap()); dc.Blit(tool->m_x, tool->m_y, tool->GetWidth(), tool->GetHeight(), &memDC, 0, 0, wxSRC_INVERT); memDC.SelectObject(wxNullBitmap); } else { - bitmap = tool->GetBitmap1(); + bitmap = tool->GetNormalBitmap(); if (m_windowStyle & wxTB_3DBUTTONS) { @@ -601,7 +612,7 @@ void wxToolBarSimple::DrawTool(wxDC& dc, wxToolBarToolBase *toolBase) wxCoord y = tool->m_y; wxCoord w = bitmap.GetWidth(); wxCoord h = bitmap.GetHeight(); - wxPen thick_black_pen("BLACK", 3, wxSOLID); + wxPen thick_black_pen(wxT("BLACK"), 3, wxSOLID); memDC.SelectObject(bitmap); dc.SetClippingRegion(tool->m_x, tool->m_y, w, h); @@ -682,7 +693,8 @@ void wxToolBarSimple::SpringUpButton(int id) if ( tool && tool->CanBeToggled() ) { - tool->Toggle(); + if (tool->IsToggled()) + tool->Toggle(); DrawTool(tool); }