Could any body point out my mistakes/bad assumptions/etc.?
Am I doing everything wrong?
// From custom-view event handler...
case kEventClassControl:
{
switch ( eventKind )
{
case kEventControlInitialize:
err = noErr;
break;
case kEventControlDraw:
err = theCustomView->BackViewDraw( inEvent );
break;
case kEventControlHitTest:
err = theCustomView->BackViewHitTest( inEvent );
break;
case kEventControlGetPartRegion:
err = theCustomView->BackViewGetRegion( inEvent );
break;
case kEventControlHit:
err = theCustomView->ProcessMouseClick( inEvent );
break;
}
break;
}
OSStatus MyCustomView::BackViewHitTest( EventRef inEvent )
{
OSStatus err = eventNotHandledErr;
ControlPartCode partCode;
HIPoint mouseLoc;
HIRect hiBounds;
err = GetEventParameter( inEvent, kEventParamMouseLocation,
typeHIPoint, NULL, sizeof(mouseLoc), NULL, &mouseLoc );
if(!err)
{
// p.s.: back view is my internal reference to the custom view
err = HIViewGetBounds( backView, &hiBounds );
if(!err)
{
if( CGRectContainsPoint( hiBounds, mouseLoc ) )
partCode = kControlButtonPart;
else
partCode = kControlNoPart;
err = SetEventParameter( inEvent, kEventParamControlPart,
typeControlPartCode, sizeof(partCode), &partCode );
}
}
return err;
}
Dr. Carlos Eduardo Mello (email@hidden)
Music Technology Lab, Music Department
University of BrasÃlia, Brazil