git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14875
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
{
// This required for similar visual effects under
// native platforms and wxUniv.
{
// This required for similar visual effects under
// native platforms and wxUniv.
- wxToolBarBase::SetMargins( x + 2, y + 2 );
+ wxToolBarBase::SetMargins( x + 3, y + 3 );
}
// ----------------------------------------------------------------------------
}
// ----------------------------------------------------------------------------
tool->m_x = x;
tool->m_y = y;
tool->m_x = x;
tool->m_y = y;
- *pCur += (tool->IsSeparator() ? m_widthSeparator : widthTool) + margin;
+ // TODO ugly number fiddling
+ *pCur += ( tool->IsSeparator() ? m_widthSeparator : (widthTool+2) ) + margin;
}
// calculate the total toolbar size
}
// calculate the total toolbar size
+ if (tool->IsSeparator() && !HasFlag(wxTB_FLAT))
+ {
+ // Draw seperators only in flat mode
+ continue;
+ }
+
// deal with the flags
int flags = 0;
// deal with the flags
int flags = 0;
- if ( !tool || !tool->IsEnabled() )
- return TRUE;
if ( event.LeftDown() || event.LeftDClick() )
{
if ( event.LeftDown() || event.LeftDClick() )
{
+ if ( !tool || !tool->IsEnabled() )
+ return TRUE;
+
m_winCapture = tbar;
m_winCapture->CaptureMouse();
m_winCapture = tbar;
m_winCapture->CaptureMouse();
}
if ( tool == m_toolCapture )
}
if ( tool == m_toolCapture )
- {
- // this will generate a click event
- consumer->PerformAction( wxACTION_BUTTON_TOGGLE, tool->GetId() );
-
- m_toolCapture = NULL;
-
- return TRUE;
- }
- //else: the mouse was released outside the tool or in
- // a different tool
+ consumer->PerformAction( wxACTION_BUTTON_TOGGLE, m_toolCapture->GetId() );
+ else
+ consumer->PerformAction( wxACTION_TOOLBAR_LEAVE, m_toolCapture->GetId() );
}
//else: don't do anything special about the double click
}
}
//else: don't do anything special about the double click
}
tool = (wxToolBarTool*) tbar->FindToolForPosition( event.GetX(), event.GetY() );
}
tool = (wxToolBarTool*) tbar->FindToolForPosition( event.GetX(), event.GetY() );
}
- if ((tool) && (tool == m_toolLast))
- // Still over the same tool as last time
- return TRUE;
+ // During capture we only care of the captured tool
+ if (tool && (tool != m_toolCapture))
+ tool = NULL;
+
+ if (tool == m_toolLast)
+ return TRUE;
+
+ if (tool)
+ consumer->PerformAction( wxACTION_BUTTON_PRESS, m_toolCapture->GetId() );
+ else
+ consumer->PerformAction( wxACTION_BUTTON_RELEASE, m_toolCapture->GetId() );
+
+ m_toolLast = tool;
- // Leave old tool if any
- consumer->PerformAction( wxACTION_TOOLBAR_LEAVE, m_toolLast->GetId() );
- }
+ if (tool == m_toolLast)
+ return TRUE;
+
+ if (m_toolLast)
+ {
+ // Leave old tool if any
+ consumer->PerformAction( wxACTION_TOOLBAR_LEAVE, m_toolLast->GetId() );
+ }
+
+ if (tool)
+ {
+ // Enter new tool if any
+ consumer->PerformAction( wxACTION_TOOLBAR_ENTER, tool->GetId() );
+ }
- if (m_toolCapture && (m_toolCapture != tool))
- m_toolLast = NULL;
- else
-
- if (m_toolLast)
- {
- // Enter new tool if any
- consumer->PerformAction( wxACTION_TOOLBAR_ENTER, m_toolLast->GetId() );