public override void ViewDidLoad()
        {
            base.ViewDidLoad();
            UIInterfaceOrientation orientation = UIApplication.SharedApplication.StatusBarOrientation;
            float width = View.Frame.Width;

            float height = View.Frame.Height;

            if (orientation == UIInterfaceOrientation.LandscapeLeft || orientation == UIInterfaceOrientation.LandscapeRight)
            {
                width  = View.Frame.Height;
                height = View.Frame.Width;
            }

            recognizedTextLabel      = new UILabel(new RectangleF(button_gap, 30, width, 20));
            recognizedTextLabel.Text = "Recognized Text:";
            View.Add(recognizedTextLabel);
            recognizedText                 = new UITextView(new RectangleF(button_gap, header_height, width - button_gap * 2, height / 4));
            recognizedText.Editable        = false;
            recognizedText.Font            = UIFont.FromName("Courier", 18);
            recognizedText.Text            = "";
            recognizedText.BackgroundColor = UIColor.Gray;
            recognizedText.TextColor       = UIColor.White;
            View.Add(recognizedText);
            inkView             = new InkView();
            inkView.Frame       = new RectangleF(button_gap, header_height + height / 4 + button_gap, width - button_gap * 2, height - bottom_gap - (height / 4) - header_height - button_gap);
            inkView.ContentMode = UIViewContentMode.Redraw;
            View.Add(inkView);

            inkView.OnReturnGesture += () => recognizedText.Text = inkView.Recognize(true);
            inkView.OnReturnGesture += () => inkView.cleanView(true);
            inkView.OnCutGesture    += () => inkView.cleanView(true);

            float x = (width - (button_width * 4 + button_gap * 3)) / 2;

            recognizeAllButton       = new UIButton(UIButtonType.Custom);
            recognizeAllButton.Frame = new RectangleF(x, height - bottom_gap, button_width, button_height);
            recognizeAllButton.SetTitle("Recognize", UIControlState.Normal);
            recognizeAllButton.Font = UIFont.SystemFontOfSize(button_font_size);
            recognizeAllButton.SetTitleColor(UIColor.Blue, UIControlState.Normal);
            recognizeAllButton.SetTitleColor(UIColor.White, UIControlState.Highlighted);
            recognizeAllButton.TouchUpInside += (object sender, EventArgs e) =>
            {
                recognizedText.Text = inkView.Recognize(false);
            };
            View.Add(recognizeAllButton);
            x                += (button_gap + button_width);
            clearButton       = new UIButton(UIButtonType.Custom);
            clearButton.Frame = new RectangleF(x, height - bottom_gap, button_width, button_height);
            clearButton.SetTitle("Clear", UIControlState.Normal);
            clearButton.Font = UIFont.SystemFontOfSize(button_font_size);
            clearButton.SetTitleColor(UIColor.Blue, UIControlState.Normal);
            clearButton.SetTitleColor(UIColor.White, UIControlState.Highlighted);
            clearButton.TouchUpInside += (object sender, EventArgs e) =>
            {
                inkView.cleanView(true);
            };
            View.Add(clearButton);

            x += (button_gap + button_width);
            languageButton       = new UIButton(UIButtonType.Custom);
            languageButton.Frame = new RectangleF(x, height - bottom_gap, button_width, button_height);
            languageButton.SetTitle("Language", UIControlState.Normal);
            languageButton.Font = UIFont.SystemFontOfSize(button_font_size);
            languageButton.SetTitleColor(UIColor.Blue, UIControlState.Normal);
            languageButton.SetTitleColor(UIColor.White, UIControlState.Highlighted);
            languageButton.TouchUpInside += (object sender, EventArgs e) =>
            {
                var actionSheet = new UIActionSheet("Select Language:", null, "Cancel", null,
                                                    new [] { "English", "English UK", "German", "French", "Spanish", "Portuguese", "Brazilian", "Dutch", "Italian", "Finnish", "Swedish", "Norwegian", "Danish", "Indonesian" });
                actionSheet.Clicked += delegate(object a, UIButtonEventArgs b) {
                    switch (b.ButtonIndex)
                    {
                    case 0:
                        WritePadAPI.language = WritePadAPI.LanguageType.en;
                        break;

                    case 1:
                        WritePadAPI.language = WritePadAPI.LanguageType.en_uk;
                        break;

                    case 2:
                        WritePadAPI.language = WritePadAPI.LanguageType.de;
                        break;

                    case 3:
                        WritePadAPI.language = WritePadAPI.LanguageType.fr;
                        break;

                    case 4:
                        WritePadAPI.language = WritePadAPI.LanguageType.es;
                        break;

                    case 5:
                        WritePadAPI.language = WritePadAPI.LanguageType.pt_PT;
                        break;

                    case 6:
                        WritePadAPI.language = WritePadAPI.LanguageType.pt_BR;
                        break;

                    case 7:
                        WritePadAPI.language = WritePadAPI.LanguageType.nl;
                        break;

                    case 8:
                        WritePadAPI.language = WritePadAPI.LanguageType.it;
                        break;

                    case 9:
                        WritePadAPI.language = WritePadAPI.LanguageType.fi;
                        break;

                    case 10:
                        WritePadAPI.language = WritePadAPI.LanguageType.sv;
                        break;

                    case 11:
                        WritePadAPI.language = WritePadAPI.LanguageType.nb;
                        break;

                    case 12:
                        WritePadAPI.language = WritePadAPI.LanguageType.da;
                        break;

                    case 13:
                        WritePadAPI.language = WritePadAPI.LanguageType.id;
                        break;
                    }
                    WritePadAPI.recoFree();
                    WritePadAPI.recoInit();
                    WritePadAPI.initializeFlags();
                    inkView.cleanView(true);
                    recognizedTextLabel.Text = "Language: " + " (" + WritePadAPI.getLanguageName() + ")";
                };
                actionSheet.ShowInView(View);
            };
            View.Add(languageButton);

            x                  += (button_gap + button_width);
            optionsButton       = new UIButton(UIButtonType.Custom);
            optionsButton.Frame = new RectangleF(x, height - bottom_gap, button_width, button_height);
            optionsButton.SetTitle("Options", UIControlState.Normal);
            optionsButton.Font = UIFont.SystemFontOfSize(button_font_size);
            optionsButton.SetTitleColor(UIColor.Blue, UIControlState.Normal);
            optionsButton.SetTitleColor(UIColor.White, UIControlState.Highlighted);
            optionsButton.TouchUpInside += (object sender, EventArgs e) =>
            {
                OptionsViewControllerController optionsController = new OptionsViewControllerController();
                UINavigationController          navController     = new UINavigationController(optionsController);
                navController.ModalPresentationStyle = UIModalPresentationStyle.FormSheet;
                PresentViewController(navController, true, null);
            };
            View.Add(optionsButton);

            recognizedTextLabel.Text = "Language: " + " (" + WritePadAPI.getLanguageName() + ")";
        }