don't allow clicking disabled buttons
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14435 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
96e3c3d44a
commit
4e89ceb11e
@ -152,6 +152,8 @@ public:
|
||||
virtual bool HandleKey(wxInputConsumer *consumer,
|
||||
const wxKeyEvent& event,
|
||||
bool pressed);
|
||||
virtual bool HandleMouse(wxInputConsumer *consumer,
|
||||
const wxMouseEvent& event);
|
||||
virtual bool HandleMouseMove(wxInputConsumer *consumer, const wxMouseEvent& event);
|
||||
virtual bool HandleFocus(wxInputConsumer *consumer, const wxFocusEvent& event);
|
||||
virtual bool HandleActivation(wxInputConsumer *consumer, bool activated);
|
||||
|
@ -512,6 +512,10 @@ void wxToolBar::Press()
|
||||
{
|
||||
wxCHECK_RET( m_toolCurrent, _T("no tool to press?") );
|
||||
|
||||
wxLogTrace(_T("toolbar"),
|
||||
_T("Button '%s' pressed."),
|
||||
m_toolCurrent->GetShortHelp().c_str());
|
||||
|
||||
// this is the tool whose state is going to change
|
||||
m_toolPressed = (wxToolBarTool *)m_toolCurrent;
|
||||
|
||||
@ -526,14 +530,15 @@ void wxToolBar::Release()
|
||||
{
|
||||
wxCHECK_RET( m_toolPressed, _T("no tool to release?") );
|
||||
|
||||
wxLogTrace(_T("toolbar"),
|
||||
_T("Button '%s' released."),
|
||||
m_toolCurrent->GetShortHelp().c_str());
|
||||
|
||||
wxASSERT_MSG( m_toolPressed->IsInverted(), _T("release unpressed button?") );
|
||||
|
||||
m_toolPressed->Invert();
|
||||
|
||||
RefreshTool(m_toolPressed);
|
||||
|
||||
// we're going to lose the mouse capture
|
||||
m_toolPressed = NULL;
|
||||
}
|
||||
|
||||
void wxToolBar::Toggle()
|
||||
@ -639,6 +644,20 @@ bool wxStdToolbarInputHandler::HandleKey(wxInputConsumer *consumer,
|
||||
return wxStdInputHandler::HandleKey(consumer, event, pressed);
|
||||
}
|
||||
|
||||
bool wxStdToolbarInputHandler::HandleMouse(wxInputConsumer *consumer,
|
||||
const wxMouseEvent& event)
|
||||
{
|
||||
// don't let the base class press the disabled buttons but simply ignore
|
||||
// all events on them
|
||||
wxToolBar *tbar = wxStaticCast(consumer->GetInputWindow(), wxToolBar);
|
||||
wxToolBarToolBase *tool = tbar->FindToolForPosition(event.GetX(), event.GetY());
|
||||
|
||||
if ( tool && !tool->IsEnabled() )
|
||||
return TRUE;
|
||||
|
||||
return wxStdButtonInputHandler::HandleMouse(consumer, event);
|
||||
}
|
||||
|
||||
bool wxStdToolbarInputHandler::HandleMouseMove(wxInputConsumer *consumer,
|
||||
const wxMouseEvent& event)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user