X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7516ed26c9749018135c24afdd0576e4366c92e6..55e18dbe2faca047b2008734782d52a6eb140115:/src/generic/tbarsmpl.cpp?ds=inline diff --git a/src/generic/tbarsmpl.cpp b/src/generic/tbarsmpl.cpp index dd79b926b4..33d24e4178 100644 --- a/src/generic/tbarsmpl.cpp +++ b/src/generic/tbarsmpl.cpp @@ -5,8 +5,8 @@ // Modified by: VZ on 14.12.99 during wxToolBarSimple reorganization // Created: 04/01/98 // RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license +// Copyright: (c) Julian Smart +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -48,14 +48,15 @@ class WXDLLEXPORT wxToolBarToolSimple : public wxToolBarToolBase public: wxToolBarToolSimple(wxToolBarSimple *tbar, int id, - const wxBitmap& bitmap1, - const wxBitmap& bitmap2, - bool toggle, + const wxString& label, + const wxBitmap& bmpNormal, + const wxBitmap& bmpDisabled, + wxItemKind kind, wxObject *clientData, - const wxString& shortHelpString, - const wxString& longHelpString) - : wxToolBarToolBase(tbar, id, bitmap1, bitmap2, toggle, - clientData, shortHelpString, longHelpString) + const wxString& shortHelp, + const wxString& longHelp) + : wxToolBarToolBase(tbar, id, label, bmpNormal, bmpDisabled, kind, + clientData, shortHelp, longHelp) { } @@ -73,10 +74,10 @@ public: wxCoord GetWidth() const { return m_width; } wxCoord GetHeight() const { return m_height; } - wxCoord m_x; - wxCoord m_y; - wxCoord m_width; - wxCoord m_height; + wxCoord m_x; + wxCoord m_y; + wxCoord m_width; + wxCoord m_height; }; // ---------------------------------------------------------------------------- @@ -85,7 +86,7 @@ public: IMPLEMENT_DYNAMIC_CLASS(wxToolBarSimple, wxToolBarBase) -#if !wxUSE_TOOLBAR_NATIVE || defined(__WXUNIVERSAL__) +#if !wxUSE_TOOLBAR_NATIVE && !defined(__WXUNIVERSAL__) #include "wx/toolbar.h" IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxToolBarSimple) @@ -108,15 +109,16 @@ END_EVENT_TABLE() // ---------------------------------------------------------------------------- wxToolBarToolBase *wxToolBarSimple::CreateTool(int id, - const wxBitmap& bitmap1, - const wxBitmap& bitmap2, - bool toggle, + const wxString& label, + const wxBitmap& bmpNormal, + const wxBitmap& bmpDisabled, + wxItemKind kind, wxObject *clientData, - const wxString& shortHelpString, - const wxString& longHelpString) + const wxString& shortHelp, + const wxString& longHelp) { - return new wxToolBarToolSimple(this, id, bitmap1, bitmap2, toggle, - clientData, shortHelpString, longHelpString); + return new wxToolBarToolSimple(this, id, label, bmpNormal, bmpDisabled, + kind, clientData, shortHelp, longHelp); } wxToolBarToolBase *wxToolBarSimple::CreateTool(wxControl *control) @@ -162,23 +164,24 @@ void wxToolBarSimple::Init() m_yScrollLinesPerPage = 0; } -wxToolBarToolBase *wxToolBarSimple::AddTool(int id, - const wxBitmap& bitmap, - const wxBitmap& pushedBitmap, - bool toggle, - wxCoord xPos, - wxCoord yPos, - wxObject *clientData, - const wxString& helpString1, - const wxString& helpString2) +wxToolBarToolBase *wxToolBarSimple::DoAddTool(int id, + const wxString& label, + const wxBitmap& bitmap, + const wxBitmap& bmpDisabled, + wxItemKind kind, + const wxString& shortHelp, + const wxString& longHelp, + wxObject *clientData, + wxCoord xPos, + wxCoord yPos) { // rememeber the position for DoInsertTool() m_xPos = xPos; m_yPos = yPos; - return wxToolBarBase::AddTool(id, bitmap, pushedBitmap, toggle, - xPos, yPos, clientData, - helpString1, helpString2); + return wxToolBarBase::DoAddTool(id, label, bitmap, bmpDisabled, kind, + shortHelp, longHelp, + clientData, xPos, yPos); } bool wxToolBarSimple::DoInsertTool(size_t WXUNUSED(pos), @@ -202,10 +205,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)); } @@ -353,13 +356,15 @@ bool wxToolBarSimple::Realize() } if ( GetWindowStyleFlag() & wxTB_HORIZONTAL ) - m_maxWidth += maxToolWidth; - else m_maxHeight += maxToolHeight; + else + m_maxWidth += maxToolWidth; m_maxWidth += m_xMargin; m_maxHeight += m_yMargin; + SetSize(m_maxWidth, m_maxHeight); + return TRUE; } @@ -511,9 +516,11 @@ void wxToolBarSimple::DrawTool(wxDC& dc, wxToolBarToolBase *toolBase) wxPen white_pen(wxT("WHITE"), 1, wxSOLID); wxPen black_pen(wxT("BLACK"), 1, wxSOLID); - wxBitmap bitmap = tool->GetBitmap(); + wxBitmap bitmap = tool->GetNormalBitmap(); + if (!bitmap.Ok()) + return; - if ( bitmap.Ok() ) + if ( !tool->IsToggled() ) { #if wxUSE_PALETTE #ifndef __WXGTK__ @@ -573,14 +580,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) {