X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/006591def7badbee90d6df8bd8ac73f4c75495ad..7b37894790309108caf73432465e434fb89f1727:/src/generic/buttonbar.cpp diff --git a/src/generic/buttonbar.cpp b/src/generic/buttonbar.cpp index c0f98169c9..a2529b0091 100644 --- a/src/generic/buttonbar.cpp +++ b/src/generic/buttonbar.cpp @@ -4,9 +4,8 @@ // Author: Julian Smart, after Robert Roebling, Vadim Zeitlin, SciTech // Modified by: // Created: 2006-04-13 -// Id: $Id$ // Copyright: (c) Julian Smart, Robert Roebling, Vadim Zeitlin, -// SciTech Software, Inc. +// SciTech Software, Inc. // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -28,18 +27,18 @@ // Currently, only for Mac as a toolbar replacement. #if defined(__WXMAC__) && wxUSE_TOOLBAR && wxUSE_BMPBUTTON +#include "wx/generic/buttonbar.h" + #ifndef WX_PRECOMP #include "wx/utils.h" #include "wx/app.h" + #include "wx/log.h" + #include "wx/frame.h" + #include "wx/dcclient.h" + #include "wx/settings.h" + #include "wx/image.h" #endif -#include "wx/generic/buttonbar.h" -#include "wx/frame.h" -#include "wx/image.h" -#include "wx/log.h" -#include "wx/settings.h" -#include "wx/dcclient.h" - // ---------------------------------------------------------------------------- // wxButtonToolBarTool: our implementation of wxToolBarToolBase // ---------------------------------------------------------------------------- @@ -62,12 +61,14 @@ public: m_x = m_y = wxDefaultCoord; m_width = m_height = 0; - + m_button = NULL; } - wxButtonToolBarTool(wxButtonToolBar *tbar, wxControl *control) - : wxToolBarToolBase(tbar, control) + wxButtonToolBarTool(wxButtonToolBar *tbar, + wxControl *control, + const wxString& label) + : wxToolBarToolBase(tbar, control, label) { m_x = m_y = wxDefaultCoord; m_width = @@ -118,7 +119,7 @@ void wxButtonToolBar::Init() m_labelMargin = 2; m_labelHeight = 0; - + SetMargins(8, 2); SetToolPacking(8); } @@ -138,7 +139,10 @@ bool wxButtonToolBar::Create(wxWindow *parent, // wxColour lightBackground(244, 244, 244); - wxFont font(wxSMALL_FONT->GetPointSize(), wxNORMAL_FONT->GetFamily(), wxNORMAL_FONT->GetStyle(), wxNORMAL); + wxFont font(wxSMALL_FONT->GetPointSize(), + wxNORMAL_FONT->GetFamily(), + wxNORMAL_FONT->GetStyle(), + wxFONTWEIGHT_NORMAL); SetFont(font); // Calculate the label height if necessary @@ -205,7 +209,7 @@ void wxButtonToolBar::GetRectLimits(const wxRect& rect, wxCoord *start, wxCoord *end) const { - wxCHECK_RET( start && end, _T("NULL pointer in GetRectLimits") ); + wxCHECK_RET( start && end, wxT("NULL pointer in GetRectLimits") ); if ( IsVertical() ) { @@ -224,7 +228,7 @@ void wxButtonToolBar::SetToolShortHelp(int id, const wxString& help) { wxToolBarToolBase *tool = FindById(id); - wxCHECK_RET( tool, _T("SetToolShortHelp: no such tool") ); + wxCHECK_RET( tool, wxT("SetToolShortHelp: no such tool") ); // TODO: set tooltip/short help tool->SetShortHelp(help); @@ -271,9 +275,10 @@ wxToolBarToolBase *wxButtonToolBar::CreateTool(int id, clientData, shortHelp, longHelp); } -wxToolBarToolBase *wxButtonToolBar::CreateTool(wxControl *control) +wxToolBarToolBase *wxButtonToolBar::CreateTool(wxControl *control, + const wxString& label) { - return new wxButtonToolBarTool(this, control); + return new wxButtonToolBarTool(this, control, label); } // ---------------------------------------------------------------------------- @@ -286,7 +291,7 @@ wxRect wxButtonToolBar::GetToolRect(wxToolBarToolBase *toolBase) const wxRect rect; - wxCHECK_MSG( tool, rect, _T("GetToolRect: NULL tool") ); + wxCHECK_MSG( tool, rect, wxT("GetToolRect: NULL tool") ); // ensure that we always have the valid tool position if ( m_needsLayout ) @@ -347,11 +352,11 @@ bool wxButtonToolBar::Realize() { if ( !wxToolBarBase::Realize() ) return false; - + m_needsLayout = true; DoLayout(); - - SetBestSize(wxSize(m_maxWidth, m_maxHeight)); + + SetInitialSize(wxSize(m_maxWidth, m_maxHeight)); return true; } @@ -378,23 +383,23 @@ void wxButtonToolBar::DoLayout() tool->m_x = x; tool->m_y = y; - + if (tool->IsButton()) { if (!tool->GetButton()) { wxBitmapButton* bmpButton = new wxBitmapButton(this, tool->GetId(), tool->GetNormalBitmap(), wxPoint(tool->m_x, tool->m_y), wxDefaultSize, wxBU_AUTODRAW|wxBORDER_NONE); - if (!tool->GetShortHelp().IsEmpty()) + if (!tool->GetShortHelp().empty()) bmpButton->SetLabel(tool->GetShortHelp()); - + tool->SetButton(bmpButton); } else { tool->GetButton()->Move(wxPoint(tool->m_x, tool->m_y)); } - + int w = widthTool; if (tool->GetButton()) { @@ -405,7 +410,7 @@ void wxButtonToolBar::DoLayout() { sz.y += (m_labelHeight + m_labelMargin); - if (!tool->GetShortHelp().IsEmpty()) + if (!tool->GetShortHelp().empty()) { wxClientDC dc(this); dc.SetFont(GetFont()); @@ -490,7 +495,7 @@ void wxButtonToolBar::OnCommand(wxCommandEvent& event) } // paints a border -void wxButtonToolBar::OnPaint(wxPaintEvent& event) +void wxButtonToolBar::OnPaint(wxPaintEvent& WXUNUSED(event)) { wxPaintDC dc(this); @@ -514,7 +519,7 @@ void wxButtonToolBar::OnPaint(wxPaintEvent& event) dc.DrawRectangle(backgroundRect); } - if (m_labelHeight > 0 && !tool->GetShortHelp().IsEmpty()) + if (m_labelHeight > 0 && !tool->GetShortHelp().empty()) { int tw, th; dc.GetTextExtent(tool->GetShortHelp(), & tw, & th); @@ -544,13 +549,12 @@ void wxButtonToolBar::OnLeftUp(wxMouseEvent& event) wxButtonToolBarTool* tool = (wxButtonToolBarTool*) FindToolForPosition(event.GetX(), event.GetY()); if (tool && tool->GetButton() && (event.GetY() > (tool->m_y + tool->GetButton()->GetSize().y))) { - wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, tool->GetId()); + wxCommandEvent event(wxEVT_BUTTON, tool->GetId()); event.SetEventObject(tool->GetButton()); - if (!ProcessEvent(event)) + if (!GetEventHandler()->ProcessEvent(event)) event.Skip(); } } } #endif // wxUSE_TOOLBAR && wxUSE_BMPBUTTON -