示例#1
0
 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();
 }
示例#2
0
 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;
         }
     }
 }
示例#3
0
 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;
         }
     }
 }
示例#4
0
 public void Reset()
 {
     _selectedItem=null;
 }
示例#5
0
 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();
 }