// Created: 2003/08/17
// RCS-ID: $Id$
// Copyright: (c) 2003 David Elliott
-// Licence: wxWidgets licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
#include "wx/wxprec.h"
#if wxUSE_TOOLBAR_NATIVE
+
+#include "wx/toolbar.h"
+
#ifndef WX_PRECOMP
- #include "wx/toolbar.h"
#include "wx/frame.h"
#include "wx/log.h"
#endif // WX_PRECOMP
CreateButtonCell();
}
- wxToolBarTool(wxToolBar *tbar, wxControl *control)
- : wxToolBarToolBase(tbar, control)
+ wxToolBarTool(wxToolBar *tbar, wxControl *control, const wxString& label)
+ : wxToolBarToolBase(tbar, control, label)
{
Init();
}
const wxString& name )
{
// Call wxControl::Create so we get a wxNonControlNSControl
- return wxToolBarBase::Create(parent,winid,pos,size,style,wxDefaultValidator,name);
+ if ( !wxToolBarBase::Create(parent, winid, pos, size, style,
+ wxDefaultValidator, name) )
+ return false;
+
+ FixupStyle();
+
+ return true;
}
wxToolBarToolBase *wxToolBar::CreateTool(int toolid,
clientData, shortHelpString, longHelpString);
}
-wxToolBarToolBase *wxToolBar::CreateTool(wxControl *control)
+wxToolBarToolBase *
+wxToolBar::CreateTool(wxControl *control, const wxString& label)
{
- return new wxToolBarTool(this, control);
+ return new wxToolBarTool(this, control, label);
}
void wxToolBar::SetWindowStyleFlag( long style )
return true;
}
+bool wxToolBar::Cocoa_acceptsFirstMouse(bool &acceptsFirstMouse, WX_NSEvent theEvent)
+{
+ acceptsFirstMouse = true; return true;
+}
+
bool wxToolBar::Cocoa_drawRect(const NSRect &rect)
{
wxToolBarToolsList::compatibility_iterator node;
NSButtonCell *buttonCell = m_mouseDownTool->GetNSButtonCell();
if(buttonCell)
{
+ [buttonCell retain];
[buttonCell setHighlighted: YES];
if([buttonCell trackMouse: theEvent
inRect:AddToolPadding(m_mouseDownTool->GetFrameRect()) ofView:m_cocoaNSView
wxLogTrace(wxTRACE_COCOA,wxT("Button was clicked after drag!"));
}
[buttonCell setHighlighted: NO];
+ [buttonCell release];
}
}
return wxToolBarBase::Cocoa_mouseDragged(theEvent);
NSButtonCell *buttonCell = tool->GetNSButtonCell();
if(buttonCell)
{
+ [buttonCell retain];
m_mouseDownTool = tool;
[buttonCell setHighlighted: YES];
if([buttonCell trackMouse: theEvent
wxLogTrace(wxTRACE_COCOA,wxT("Button was clicked!"));
}
[buttonCell setHighlighted: NO];
+ [buttonCell release];
}
}
return wxToolBarBase::Cocoa_mouseDown(theEvent);