protected override bool UpdateObjectState() //return true, if changed { MultiTrackBarHitInfo hitInfo = (MultiTrackBarHitInfo)CalcHitInfo(MousePosition); ObjectState prevState = State; State = CalcObjectState(); int prevThumbIndex = StateThumbIndex; StateThumbIndex = hitInfo.ThumbIndex; return(prevState != State); }
public override EditHitInfo CalcHitInfo(Point p) { MultiTrackBarHitInfo mhi = new MultiTrackBarHitInfo(); int index = 0; foreach (Rectangle thumb in ThumbsBounds) { if (thumb.Contains(p)) { mhi.SetHitTestCore(EditHitTest.Button); mhi.SetHitObjectCore(EditHitTest.Button); mhi.ThumbIndex = index; break; } index++; } return(mhi); }