\r
UIApplication uiApp;\r
UIWindow uiWindow;\r
+ UIViewController uiViewController;\r
ApplicationListener listener;\r
IOSApplicationConfiguration config;\r
IOSGraphics graphics;\r
\r
// Create: Window -> ViewController-> GameView (controller takes care of rotation)\r
this.uiWindow = new UIWindow(UIScreen.get_MainScreen().get_Bounds());\r
- UIViewController uiViewController = new IOSUIViewController();\r
- this.uiWindow.set_RootViewController(uiViewController);\r
+ this.uiViewController = new IOSUIViewController();\r
+ this.uiWindow.set_RootViewController(this.uiViewController);\r
\r
GL20 gl20 = config.useMonotouchOpenTK ? new IOSMonotouchGLES20() : new IOSGLES20();\r
\r
\r
// setup libgdx\r
this.input = new IOSInput(this);\r
- this.graphics = new IOSGraphics(getBounds(uiViewController), this, input, gl20);\r
+ this.graphics = new IOSGraphics(getBounds(this.uiViewController), this, input, gl20);\r
this.files = new IOSFiles();\r
this.audio = new IOSAudio(config.useObjectAL);\r
this.net = new IOSNet(this);\r
this.input.setupPeripherals();\r
\r
// attach our view to window+controller and make it visible\r
- uiViewController.set_View(graphics);\r
+ this.uiViewController.set_View(graphics);\r
this.graphics.Run();\r
this.uiWindow.MakeKeyAndVisible();\r
Gdx.app.debug("IOSApplication", "created");\r
import cli.MonoTouch.UIKit.UIAcceleration;\r
import cli.MonoTouch.UIKit.UIAccelerometer;\r
import cli.MonoTouch.UIKit.UIAccelerometerDelegate;\r
+import cli.MonoTouch.UIKit.UIAlertView;\r
+import cli.MonoTouch.UIKit.UIAlertViewDelegate;\r
+import cli.MonoTouch.UIKit.UIAlertViewStyle;\r
import cli.MonoTouch.UIKit.UIEvent;\r
+import cli.MonoTouch.UIKit.UITextField;\r
import cli.MonoTouch.UIKit.UITouch;\r
import cli.MonoTouch.UIKit.UITouchPhase;\r
+import cli.MonoTouch.UIKit.UIView;\r
import cli.System.Drawing.PointF;\r
\r
-import com.badlogic.gdx.Gdx;\r
import com.badlogic.gdx.Input;\r
import com.badlogic.gdx.InputProcessor;\r
import com.badlogic.gdx.utils.Array;\r
\r
@Override\r
public void getTextInput(TextInputListener listener, String title, String text) {\r
- // FIXME implement this\r
+ final UIAlertView uiAlertView = buildUIAlertView(listener, title, text);\r
+ app.uiViewController.Add(uiAlertView);\r
+ uiAlertView.Show();\r
+ }\r
+ \r
+ /** Builds an {@link UIAlertView} with an added {@link UITextField} for inputting text.\r
+ * @param listener Text input listener\r
+ * @param title Dialog title\r
+ * @param text Text for text field\r
+ * @return UiAlertView */\r
+ private UIAlertView buildUIAlertView (final TextInputListener listener, String title, String text) {\r
+ UIAlertViewDelegate delegate = new UIAlertViewDelegate() {\r
+ @Override\r
+ public void Clicked (UIAlertView view, int clicked) {\r
+ if (clicked == 0) {\r
+ listener.canceled();\r
+ } else if (clicked == 1) {\r
+ UIView[] views = view.get_Subviews();\r
+ for (UIView uiView : views) {\r
+ if (uiView != null && uiView instanceof UITextField) {\r
+ UITextField tf = (UITextField)uiView;\r
+ listener.input(tf.get_Text());\r
+ }\r
+ }\r
+ }\r
+ view.Dispose();\r
+ }\r
+\r
+ @Override\r
+ public void Canceled (UIAlertView view) {\r
+ listener.canceled();\r
+ view.Dispose();\r
+ }\r
+ };\r
+\r
+ final UIAlertView uiAlertView = new UIAlertView();\r
+ uiAlertView.set_Title(title);\r
+ uiAlertView.AddButton("Cancel");\r
+ uiAlertView.AddButton("Ok");\r
+ uiAlertView.set_AlertViewStyle(UIAlertViewStyle.wrap(UIAlertViewStyle.PlainTextInput));\r
+ uiAlertView.set_Delegate(delegate);\r
+\r
+ for (UIView uiView : uiAlertView.get_Subviews()) {\r
+ if (uiView != null && uiView instanceof UITextField) {\r
+ UITextField tf = (UITextField)uiView;\r
+ tf.set_Text(text);\r
+ }\r
+ }\r
+\r
+ return uiAlertView;\r
}\r
\r
@Override\r