private bool _IsMouseOverElement(int x, int y, CInteraction interact) { bool result = CHelper.IsInBounds(_GetRect(interact), x, y); if (result) { return(true); } if (interact.Type == EType.SelectSlide) { return(CHelper.IsInBounds(_SelectSlides[interact.Num].RectArrowLeft, x, y) || CHelper.IsInBounds(_SelectSlides[interact.Num].RectArrowRight, x, y)); } return(false); }
protected IMenuElement _GetElement(CInteraction element) { switch (element.Type) { case EType.Background: return(_Backgrounds[element.Num]); case EType.Button: return(_Buttons[element.Num]); case EType.SelectSlide: return(_SelectSlides[element.Num]); case EType.Text: return(_Texts[element.Num]); case EType.Static: return(_Statics[element.Num]); case EType.SongMenu: return(_SongMenus[element.Num]); case EType.Lyric: return(_Lyrics[element.Num]); case EType.SingNote: return(_SingNotes[element.Num]); case EType.NameSelection: return(_NameSelections[element.Num]); case EType.Equalizer: return(_Equalizers[element.Num]); case EType.Playlist: return(_Playlists[element.Num]); case EType.ParticleEffect: return(_ParticleEffects[element.Num]); case EType.ProgressBar: return(_ProgressBars[element.Num]); case EType.Meta: return(_Metas[element.Num]); } throw new ArgumentException("Invalid element type: " + element.Type); }
private SRectF _GetRect(CInteraction element) { return(_GetElement(element).Rect); }