// Created: 2006-04-13
// Id: $Id$
// Copyright: (c) Julian Smart, Robert Roebling, Vadim Zeitlin,
-// SciTech Software, Inc.
+// SciTech Software, Inc.
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// 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
// ----------------------------------------------------------------------------
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 =
m_labelMargin = 2;
m_labelHeight = 0;
-
- SetMargins(8, 4);
+
+ SetMargins(8, 2);
SetToolPacking(8);
}
// 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
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() )
{
{
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);
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);
}
// ----------------------------------------------------------------------------
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 )
{
if ( !wxToolBarBase::Realize() )
return false;
-
+
m_needsLayout = true;
DoLayout();
-
- SetBestSize(wxSize(m_maxWidth, m_maxHeight));
+
+ SetInitialSize(wxSize(m_maxWidth, m_maxHeight));
return true;
}
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())
{
{
sz.y += (m_labelHeight + m_labelMargin);
- if (!tool->GetShortHelp().IsEmpty())
+ if (!tool->GetShortHelp().empty())
{
wxClientDC dc(this);
dc.SetFont(GetFont());
}
// paints a border
-void wxButtonToolBar::OnPaint(wxPaintEvent& event)
+void wxButtonToolBar::OnPaint(wxPaintEvent& WXUNUSED(event))
{
wxPaintDC dc(this);
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);
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
-