source: 2014/24/EemeliK/Zombieland/Jypeli/WP7/PhoneBackButton.cs @ 5974

Revision 5974, 5.7 KB checked in by empaheik, 4 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Microsoft.Xna.Framework;
4
5
6using XnaGamepad = Microsoft.Xna.Framework.Input.GamePad;
7
8namespace Jypeli.Controls
9{
10    /// <summary>
11    /// Windows Phonen Back-nappi
12    /// </summary>
13    public class PhoneBackButton : Controller
14    {
15        internal override bool IsBufferEmpty()
16        {
17            return true;
18        }
19
20        internal override string GetControlText(Listener listener)
21        {
22            return "Phone's back button";
23        }
24
25        internal override void Update()
26        {
27            if (XnaGamepad.GetState(PlayerIndex.One).Buttons.Back == Microsoft.Xna.Framework.Input.ButtonState.Pressed)
28            {
29                bool listenerInvoked = false;
30
31                foreach (Listener listener in listeners)
32                {
33                    if ( listener.Context.Active )
34                    {
35                        listener.Invoke();
36                        listenerInvoked = true;
37                    }
38                }
39
40                if ( !listenerInvoked && Game.Instance != null )
41                {
42                    // This is the main game context, and there are no listeners.
43                    // Let's be good hosts and give our player an exit anyway.
44                    Game.Instance.ConfirmExit();
45                }
46            }
47
48            base.Update();
49        }
50
51        /// <summary>
52        /// Kuuntelee Windows Phonen Back-nappia.
53        /// </summary>
54        /// <param name="handler">Aliohjelma joka suoritetaan kun painetaan nappia.</param>
55        /// <param name="helpText">Teksti, joka kertoo mitä napin painallus tekee</param>
56        /// <returns>Palauttaa kuuntelijan</returns>
57        public Listener Listen(Handler handler, string helpText)
58        {
59            Listener l = new SimpleListener(this, ListeningType.PhoneButton, helpText, handler);
60            //l.Button = button;
61            //l.State = state;
62            Add(l);
63            return l;
64        }
65
66        /// <summary>
67        /// Kuuntelee Windows Phonen Back-nappia
68        /// </summary>
69        /// <typeparam name="T1">Valinnaisen parametrin tyyppi</typeparam>
70        /// <param name="handler">Aliohjelma joka suoritetaan kun painetaan nappia.</param>
71        /// <param name="helpText">Teksti, joka kertoo mitä napin painallus tekee</param>
72        /// <param name="p1">Valinnainen parametri</param>
73        /// <returns>Palauttaa kuuntelijan</returns>
74        public Listener Listen<T1>(Handler handler, string helpText, T1 p1)
75        {
76            Listener l = new SimpleListener(this, ListeningType.PhoneButton, helpText, handler);
77            Add(l);
78            return l;
79        }
80
81        /// <summary>
82        /// Kuuntelee Windows Phonen Back-nappia
83        /// </summary>
84        /// <typeparam name="T1">Valinnaisen parametrin tyyppi</typeparam>
85        /// <typeparam name="T2">Valinnaisen parametrin tyyppi</typeparam>
86        /// <param name="handler">Aliohjelma joka suoritetaan kun painetaan nappia.</param>
87        /// <param name="helpText">Teksti, joka kertoo mitä napin painallus tekee</param>
88        /// <param name="p1">Valinnainen parametri</param>
89        /// <param name="p2">Valinnainen parametri</param>
90        /// <returns>Palauttaa kuuntelijan</returns>
91        public Listener Listen<T1, T2>(Handler handler, string helpText, T1 p1, T2 p2)
92        {
93            Listener l = new SimpleListener(this, ListeningType.PhoneButton, helpText, handler);
94            Add(l);
95            return l;
96        }
97
98        /// <summary>
99        /// Kuuntelee Windows Phonen Back-nappia
100        /// </summary>
101        /// <typeparam name="T1">Valinnaisen parametrin tyyppi</typeparam>
102        /// <typeparam name="T2">Valinnaisen parametrin tyyppi</typeparam>
103        /// <typeparam name="T3">Valinnaisen parametrin tyyppi</typeparam>
104        /// <param name="handler">Aliohjelma joka suoritetaan kun painetaan nappia.</param>
105        /// <param name="helpText">Teksti, joka kertoo mitä napin painallus tekee</param>
106        /// <param name="p1">Valinnainen parametri</param>
107        /// <param name="p2">Valinnainen parametri</param>
108        /// <param name="p3">Valinnainen parametri</param>
109        /// <returns>Palauttaa kuuntelijan</returns>
110        public Listener Listen<T1, T2, T3>(Handler handler, string helpText, T1 p1, T2 p2, T3 p3)
111        {
112            Listener l = new SimpleListener(this, ListeningType.PhoneButton, helpText, handler);
113            Add(l);
114            return l;
115        }
116
117        /// <summary>
118        /// Kuuntelee Windows Phonen Back-nappia
119        /// </summary>
120        /// <typeparam name="T1">Valinnaisen parametrin tyyppi</typeparam>
121        /// <typeparam name="T2">Valinnaisen parametrin tyyppi</typeparam>
122        /// <typeparam name="T3">Valinnaisen parametrin tyyppi</typeparam>
123        /// <typeparam name="T4">Valinnaisen parametrin tyyppi</typeparam>
124        /// <param name="handler">Aliohjelma joka suoritetaan kun painetaan nappia.</param>
125        /// <param name="helpText">Teksti, joka kertoo mitä napin painallus tekee</param>
126        /// <param name="p1">Valinnainen parametri</param>
127        /// <param name="p2">Valinnainen parametri</param>
128        /// <param name="p3">Valinnainen parametri</param>
129        /// <param name="p4">Valinnainen parametri</param>
130        /// <returns>Palauttaa kuuntelijan</returns>
131        public Listener Listen<T1, T2, T3, T4>(Handler handler, string helpText, T1 p1, T2 p2, T3 p3, T4 p4)
132        {
133            Listener l = new SimpleListener(this, ListeningType.PhoneButton, helpText, handler);
134            Add(l);
135            return l;
136        }
137    }
138}
Note: See TracBrowser for help on using the repository browser.