public void AddItem(string text,MenuItem.OnClick click) { float x,y1,y2; Texture2D texture=null; if (_font!=null) { x=_font.MeasureString(text).X; y2=_font.MeasureString(text).Y; y1=_items.Count*(y2+Padding); } else { texture=Textures.Get(text); x=texture.Width; y1=0; foreach (MenuItem m in _items) y1+=m.Texture.Height+Padding; y2=texture.Height; if (texture.Width>_width) _width=texture.Width; } Rectangle rect=new Rectangle(_x,_y+(int)y1,(int)x,(int)y2); MenuItem mi; if (_font!=null) mi=new MenuItem(text,rect,click); else mi=new MenuItem(texture,rect,click); _items.Add(mi); if (OnAdd!=null) OnAdd(); }
public void Update() { if (Animated&&Animate!=null) foreach (MenuItem m in _items) Animate(m); while (TouchPanel.IsGestureAvailable) { GestureSample g=TouchPanel.ReadGesture(); switch (g.GestureType) { case GestureType.Tap: foreach (MenuItem m in _items) { int mod=0; switch (Align) { case Alignment.Center: mod=(m.Rect.Width/2); break; case Alignment.Right: mod=m.Rect.Width; break; } if (m.Rect.Contains((int)g.Position.X+mod,(int)g.Position.Y)) { _selectedItem=m; m.Click(); if (ClickSound!="") Sounds.Get(ClickSound).Play(); return; } } _selectedItem=null; break; case GestureType.Hold: break; } } }
public void Update() { _hoverItem=null; if (Animated&&Animate!=null) foreach (MenuItem m in _items) Animate(m); while (TouchPanel.IsGestureAvailable) { GestureSample g=TouchPanel.ReadGesture(); switch (g.GestureType) { case GestureType.Tap: foreach (MenuItem m in _items) if (m.Rect.Contains(Input.MousePoint)) { _hoverItem=m; if (Input.LeftClicked) { m.Click(); if (ClickSound!="") Sounds.Get(ClickSound).Play(); } return; } break; case GestureType.Hold: break; } } }
public void Reset() { _selectedItem=null; }
public void AddItem(string text,MenuItem.OnClick click) { _items.Add(new MenuItem(text,new Rectangle(_x,_y+(int)(_items.Count*_font.MeasureString(text).Y),(int)_font.MeasureString(text).X,(int)_font.MeasureString(text).Y),click)); if (OnAdd!=null) OnAdd(); }