ProcessCommand (event);
}
-void wxButton::MacHandleControlClick( WXWidget WXUNUSED(control) , wxInt16 controlpart )
+void wxButton::MacHandleControlClick( WXWidget WXUNUSED(control) , wxInt16 controlpart , bool WXUNUSED(mouseStillDown) )
{
if ( controlpart != kControlNoPart )
{
ProcessCommand (event);
}
-void wxButton::MacHandleControlClick( WXWidget WXUNUSED(control) , wxInt16 controlpart )
+void wxButton::MacHandleControlClick( WXWidget WXUNUSED(control) , wxInt16 controlpart , bool WXUNUSED(mouseStillDown) )
{
if ( controlpart != kControlNoPart )
{
ProcessCommand (event);
}
-void wxCheckBox::MacHandleControlClick( WXWidget WXUNUSED(control), wxInt16 WXUNUSED(controlpart) )
+void wxCheckBox::MacHandleControlClick( WXWidget WXUNUSED(control), wxInt16 WXUNUSED(controlpart) , bool WXUNUSED(mouseStillDown) )
{
SetValue( !GetValue() ) ;
wxCommandEvent event(wxEVT_COMMAND_CHECKBOX_CLICKED, m_windowId );
return (wxClientData *)DoGetItemClientData(n);
}
-void wxChoice::MacHandleControlClick( WXWidget control , wxInt16 controlpart )
+void wxChoice::MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool WXUNUSED(mouseStillDown))
{
wxCommandEvent event(wxEVT_COMMAND_CHOICE_SELECTED, m_windowId );
int n = GetSelection();
wxControl* wx = (wxControl*) GetControlReference( control ) ;
if ( wx )
{
- wx->MacHandleControlClick( control , partCode ) ;
+ wx->MacHandleControlClick( control , partCode , true /* stillDown */ ) ;
}
}
}
{
ControlFontStyleRec controlstyle ;
controlstyle.flags = kControlUseFontMask ;
- controlstyle.font = kControlFontSmallSystemFont ;
+
+ if (IsKindOf( CLASSINFO( wxButton ) ) )
+ controlstyle.font = kControlFontSmallSystemFont ; // eventually kControlFontBigSystemFont ;
+ else
+ controlstyle.font = kControlFontSmallSystemFont ;
::SetControlFontStyle( (ControlHandle) m_macControl , &controlstyle ) ;
}
{
controlpart = ::HandleControlClick( control , localwhere , modifiers , (ControlActionUPP) -1 ) ;
wxTheApp->s_lastMouseDown = 0 ;
- if ( control && controlpart != kControlNoPart &&
- ! IsKindOf( CLASSINFO( wxScrollBar ) )
- ) // otherwise we will get the event twice for scrollbar
+ if ( control && controlpart != kControlNoPart )
{
- MacHandleControlClick( control , controlpart ) ;
+ MacHandleControlClick( control , controlpart , false /* mouse not down anymore */ ) ;
}
}
}
return false ;
}
-void wxControl::MacHandleControlClick( WXWidget control , wxInt16 controlpart )
+void wxControl::MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool WXUNUSED( mouseStillDown ) )
{
wxASSERT_MSG( (ControlHandle) m_macControl != NULL , wxT("No valid mac control") ) ;
}
LCellSize( pt , (ListHandle)m_macList ) ;
}
-void wxListBox::MacHandleControlClick( WXWidget control , wxInt16 controlpart )
+void wxListBox::MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool WXUNUSED(mouseStillDown))
{
Boolean wasDoubleClick = false ;
long result ;
}
-void wxNotebook::MacHandleControlClick( WXWidget control , wxInt16 controlpart )
+void wxNotebook::MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool WXUNUSED( mouseStillDown ) )
{
#if 0
wxNotebookEvent event(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, m_windowId , ::GetControl32BitValue((ControlHandle)m_macControl) - 1, m_nSelection);
ProcessCommand (event);
}
-void wxRadioButton::MacHandleControlClick( WXWidget control , wxInt16 controlpart )
+void wxRadioButton::MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool WXUNUSED(mouseStillDown))
{
if ( GetValue() )
return ;
ProcessCommand(event);
}
-void wxScrollBar::MacHandleControlClick( WXWidget control , wxInt16 controlpart )
+void wxScrollBar::MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool mouseStillDown )
{
if ( (ControlHandle) m_macControl == NULL )
return ;
wxEventType scrollEvent = wxEVT_NULL;
int nScrollInc;
+ // all events have already been reported during mouse down, except for THUMBRELEASE
+ if ( !mouseStillDown && controlpart !=kControlIndicatorPart )
+ return ;
+
switch( controlpart )
{
case kControlUpButtonPart :
break ;
case kControlIndicatorPart :
nScrollInc = 0 ;
- scrollEvent = wxEVT_SCROLL_THUMBTRACK;
+ if ( mouseStillDown )
+ scrollEvent = wxEVT_SCROLL_THUMBTRACK;
+ else
+ scrollEvent = wxEVT_SCROLL_THUMBRELEASE;
break ;
default :
wxFAIL_MSG(wxT("illegal scrollbar selector"));
ProcessCommand (event);
}
-void wxSlider::MacHandleControlClick( WXWidget control , wxInt16 controlpart )
+void wxSlider::MacHandleControlClick( WXWidget control , wxInt16 controlpart, bool WXUNUSED(mouseStillDown) )
{
SInt16 value = ::GetControl32BitValue( (ControlHandle) m_macControl ) ;
}
}
-void wxSpinButton::MacHandleControlClick( WXWidget control , wxInt16 controlpart )
+void wxSpinButton::MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool WXUNUSED(mouseStillDown))
{
if ( (ControlHandle) m_macControl == NULL )
return ;
return wxSize(m_defaultWidth + 4, m_defaultHeight + 4);
}
-void wxToolBar::MacHandleControlClick( WXWidget control , wxInt16 controlpart )
+void wxToolBar::MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool WXUNUSED( mouseStillDown ) )
{
wxToolBarToolsList::Node *node;
for ( node = m_tools.GetFirst(); node; node = node->GetNext() )
if ( control && ::IsControlActive( control ) )
{
{
- if ( controlpart == kControlIndicatorPart && !UMAHasAppearance() )
- controlpart = ::HandleControlClick( control , localwhere , modifiers , (ControlActionUPP) NULL ) ;
- else
- controlpart = ::HandleControlClick( control , localwhere , modifiers , (ControlActionUPP) -1 ) ;
+ controlpart = ::HandleControlClick( control , localwhere , modifiers , (ControlActionUPP) -1 ) ;
wxTheApp->s_lastMouseDown = 0 ;
- if ( controlpart && ! ( ( UMAHasAppearance() || (controlpart != kControlIndicatorPart) )
- && (IsKindOf( CLASSINFO( wxScrollBar ) ) ) ) ) // otherwise we will get the event twice
+ if ( control && controlpart != kControlNoPart ) // otherwise we will get the event twice
{
- MacHandleControlClick( control , controlpart ) ;
+ MacHandleControlClick( control , controlpart , false /* not down anymore */ ) ;
}
}
}
ProcessCommand (event);
}
-void wxCheckBox::MacHandleControlClick( WXWidget WXUNUSED(control), wxInt16 WXUNUSED(controlpart) )
+void wxCheckBox::MacHandleControlClick( WXWidget WXUNUSED(control), wxInt16 WXUNUSED(controlpart) , bool WXUNUSED(mouseStillDown) )
{
SetValue( !GetValue() ) ;
wxCommandEvent event(wxEVT_COMMAND_CHECKBOX_CLICKED, m_windowId );
return (wxClientData *)DoGetItemClientData(n);
}
-void wxChoice::MacHandleControlClick( WXWidget control , wxInt16 controlpart )
+void wxChoice::MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool WXUNUSED(mouseStillDown))
{
wxCommandEvent event(wxEVT_COMMAND_CHOICE_SELECTED, m_windowId );
int n = GetSelection();
wxControl* wx = (wxControl*) GetControlReference( control ) ;
if ( wx )
{
- wx->MacHandleControlClick( control , partCode ) ;
+ wx->MacHandleControlClick( control , partCode , true /* stillDown */ ) ;
}
}
}
{
ControlFontStyleRec controlstyle ;
controlstyle.flags = kControlUseFontMask ;
- controlstyle.font = kControlFontSmallSystemFont ;
+
+ if (IsKindOf( CLASSINFO( wxButton ) ) )
+ controlstyle.font = kControlFontSmallSystemFont ; // eventually kControlFontBigSystemFont ;
+ else
+ controlstyle.font = kControlFontSmallSystemFont ;
::SetControlFontStyle( (ControlHandle) m_macControl , &controlstyle ) ;
}
{
controlpart = ::HandleControlClick( control , localwhere , modifiers , (ControlActionUPP) -1 ) ;
wxTheApp->s_lastMouseDown = 0 ;
- if ( control && controlpart != kControlNoPart &&
- ! IsKindOf( CLASSINFO( wxScrollBar ) )
- ) // otherwise we will get the event twice for scrollbar
+ if ( control && controlpart != kControlNoPart )
{
- MacHandleControlClick( control , controlpart ) ;
+ MacHandleControlClick( control , controlpart , false /* mouse not down anymore */ ) ;
}
}
}
return false ;
}
-void wxControl::MacHandleControlClick( WXWidget control , wxInt16 controlpart )
+void wxControl::MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool WXUNUSED( mouseStillDown ) )
{
wxASSERT_MSG( (ControlHandle) m_macControl != NULL , wxT("No valid mac control") ) ;
}
LCellSize( pt , (ListHandle)m_macList ) ;
}
-void wxListBox::MacHandleControlClick( WXWidget control , wxInt16 controlpart )
+void wxListBox::MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool WXUNUSED(mouseStillDown))
{
Boolean wasDoubleClick = false ;
long result ;
}
-void wxNotebook::MacHandleControlClick( WXWidget control , wxInt16 controlpart )
+void wxNotebook::MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool WXUNUSED( mouseStillDown ) )
{
#if 0
wxNotebookEvent event(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, m_windowId , ::GetControl32BitValue((ControlHandle)m_macControl) - 1, m_nSelection);
ProcessCommand (event);
}
-void wxRadioButton::MacHandleControlClick( WXWidget control , wxInt16 controlpart )
+void wxRadioButton::MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool WXUNUSED(mouseStillDown))
{
if ( GetValue() )
return ;
ProcessCommand(event);
}
-void wxScrollBar::MacHandleControlClick( WXWidget control , wxInt16 controlpart )
+void wxScrollBar::MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool mouseStillDown )
{
if ( (ControlHandle) m_macControl == NULL )
return ;
wxEventType scrollEvent = wxEVT_NULL;
int nScrollInc;
+ // all events have already been reported during mouse down, except for THUMBRELEASE
+ if ( !mouseStillDown && controlpart !=kControlIndicatorPart )
+ return ;
+
switch( controlpart )
{
case kControlUpButtonPart :
break ;
case kControlIndicatorPart :
nScrollInc = 0 ;
- scrollEvent = wxEVT_SCROLL_THUMBTRACK;
+ if ( mouseStillDown )
+ scrollEvent = wxEVT_SCROLL_THUMBTRACK;
+ else
+ scrollEvent = wxEVT_SCROLL_THUMBRELEASE;
break ;
default :
wxFAIL_MSG(wxT("illegal scrollbar selector"));
ProcessCommand (event);
}
-void wxSlider::MacHandleControlClick( WXWidget control , wxInt16 controlpart )
+void wxSlider::MacHandleControlClick( WXWidget control , wxInt16 controlpart, bool WXUNUSED(mouseStillDown) )
{
SInt16 value = ::GetControl32BitValue( (ControlHandle) m_macControl ) ;
}
}
-void wxSpinButton::MacHandleControlClick( WXWidget control , wxInt16 controlpart )
+void wxSpinButton::MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool WXUNUSED(mouseStillDown))
{
if ( (ControlHandle) m_macControl == NULL )
return ;
return wxSize(m_defaultWidth + 4, m_defaultHeight + 4);
}
-void wxToolBar::MacHandleControlClick( WXWidget control , wxInt16 controlpart )
+void wxToolBar::MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool WXUNUSED( mouseStillDown ) )
{
wxToolBarToolsList::Node *node;
for ( node = m_tools.GetFirst(); node; node = node->GetNext() )
if ( control && ::IsControlActive( control ) )
{
{
- if ( controlpart == kControlIndicatorPart && !UMAHasAppearance() )
- controlpart = ::HandleControlClick( control , localwhere , modifiers , (ControlActionUPP) NULL ) ;
- else
- controlpart = ::HandleControlClick( control , localwhere , modifiers , (ControlActionUPP) -1 ) ;
+ controlpart = ::HandleControlClick( control , localwhere , modifiers , (ControlActionUPP) -1 ) ;
wxTheApp->s_lastMouseDown = 0 ;
- if ( controlpart && ! ( ( UMAHasAppearance() || (controlpart != kControlIndicatorPart) )
- && (IsKindOf( CLASSINFO( wxScrollBar ) ) ) ) ) // otherwise we will get the event twice
+ if ( control && controlpart != kControlNoPart ) // otherwise we will get the event twice
{
- MacHandleControlClick( control , controlpart ) ;
+ MacHandleControlClick( control , controlpart , false /* not down anymore */ ) ;
}
}
}