private void AddText(string text)
        {
            var label = new UILabel()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Text  = text,
                Lines = 0 // Wrap text
            };

            StackView.AddArrangedSubview(label);
            label.StretchWidth(StackView, left: 16, right: 16);
        }
        public ConfigureClassPassingGradeViewController()
        {
            Title = PowerPlannerResources.GetString("Settings_GradeOptions_ListItemPassingGrade.Title");

            PowerPlannerUIHelper.ConfigureForInputsStyle(this);

            var cancelButton = new UIBarButtonItem()
            {
                Title = PowerPlannerResources.GetStringCancel()
            };

            cancelButton.Clicked            += new WeakEventHandler <EventArgs>(CancelButton_Clicked).Handler;
            NavigationItem.LeftBarButtonItem = cancelButton;

            var saveButton = new UIBarButtonItem()
            {
                Title = PowerPlannerResources.GetStringSave()
            };

            saveButton.Clicked += new WeakEventHandler <EventArgs>(SaveButton_Clicked).Handler;
            NavigationItem.RightBarButtonItem = saveButton;

            StackView.AddSectionDivider();

            var textFieldPassingGrade = new UITextField()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                KeyboardType = UIKeyboardType.DecimalPad,
                AdjustsFontSizeToFitWidth = true,
                Placeholder = PowerPlannerResources.GetExamplePlaceholderString(60.ToString())
            };

            BindingHost.SetTextFieldTextBinding <double>(textFieldPassingGrade, nameof(ViewModel.PassingGrade), converter: TextToDoubleConverter.Convert, backConverter: TextToDoubleConverter.ConvertBack);
            AddTextField(StackView, textFieldPassingGrade, firstResponder: true);

            StackView.AddSectionDivider();
            StackView.AddSpacing(16);

            var labelDescription = new UILabel()
            {
                Text      = PowerPlannerResources.GetString("Settings_GradeOptions_PassingGrade_Explanation.Text"),
                Lines     = 0,
                Font      = UIFont.PreferredCaption1,
                TextColor = UIColor.LightGray
            };

            StackView.AddArrangedSubview(labelDescription);
            labelDescription.StretchWidth(StackView, left: 16, right: 16);

            StackView.AddSpacing(16);
            StackView.AddBottomSectionDivider();
        }
        public override void OnViewModelAndViewLoadedOverride()
        {
            Title = ViewModel.State == AddSemesterViewModel.OperationState.Adding ? "Add Semester" : "Edit Semester";

            ViewModel.SupportsStartEnd = true;

            BackButtonText       = "Cancel";
            PositiveNavBarButton = new PopupRightNavBarButtonItem("Save", delegate { Save(); });

            AddTopSectionDivider();

            AddTextField(new UITextField()
            {
                Placeholder   = "Name (ex: Fall)",
                ReturnKeyType = UIReturnKeyType.Done,
                EnablesReturnKeyAutomatically = true
            }, nameof(ViewModel.Name), firstResponder: ViewModel.State == AddSemesterViewModel.OperationState.Adding);

            AddSectionDivider();

            var datePickerStart = new BareUIInlineDatePicker(this, left: 16, right: 16)
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                HeaderText = "Start Date"
            };

            BindingHost.SetDateBinding(datePickerStart, nameof(ViewModel.StartDate));
            StackView.AddArrangedSubview(datePickerStart);
            datePickerStart.StretchWidth(StackView);
            datePickerStart.SetHeight(44);

            AddDivider();

            var datePickerEnd = new BareUIInlineDatePicker(this, left: 16, right: 16)
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                HeaderText = "End Date"
            };

            BindingHost.SetDateBinding(datePickerEnd, nameof(ViewModel.EndDate));
            StackView.AddArrangedSubview(datePickerEnd);
            datePickerEnd.StretchWidth(StackView);
            datePickerEnd.SetHeight(44);

            AddSectionDivider();

            AddDeleteButtonWithConfirmation("Delete Semester", ViewModel.Delete, "Delete semester?", "Are you sure you want to delete this semester and all of its classes, grades, and homework?");

            AddBottomSectionDivider();

            base.OnViewModelAndViewLoadedOverride();
        }
        /// <summary>
        /// Handles all menu requests
        /// </summary>
        /// <param name="url"></param>
        public void OpenWebActivity(string url)
        {
            LinearLayout mainLayout = FindViewById <LinearLayout>(Resource.Layout.Main2);

            webLayout = FindViewById <StackView>(Resource.Layout.Web);

            if (webLayout != null)
            {
                mainLayout.AddView(webLayout);
                browser = FindViewById <WebView>(Resource.Id.mainWebView);
            }
            browser.LoadUrl(url);
        }
Пример #5
0
        private void AddSwitch(string header, string bindingName)
        {
            var container = new BareUISwitch()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Header = header
            };

            BindingHost.SetSwitchBinding(container, bindingName);
            StackView.AddArrangedSubview(container);
            container.StretchWidth(StackView);
            container.SetHeight(44);
        }
        private void SetUpPhotoRow()
        {
            var titleLabel = new UILabel();

            titleLabel.Font  = UIFont.PreferredBody;
            titleLabel.Lines = 0;
            titleLabel.Text  = "Handle user interaction";
            StackView.AddRow(titleLabel);
            StackView.HideSeparator(titleLabel);
            StackView.SetInset(forRow: titleLabel, inset: new UIEdgeInsets(
                                   top: StackView.RowInset.Top,
                                   left: StackView.RowInset.Left,
                                   bottom: 4,
                                   right: StackView.RowInset.Right));

            var captionLabel = new UILabel();

            captionLabel.Font      = UIFont.PreferredCaption2;
            captionLabel.TextColor = UIColor.Blue;
            captionLabel.Lines     = 0;
            captionLabel.Text      = "(Try tapping on the photo!)";
            StackView.AddRow(captionLabel);
            StackView.HideSeparator(forRow: captionLabel);
            StackView.SetInset(forRow: captionLabel, inset: new UIEdgeInsets(
                                   top: 0,
                                   left: StackView.RowInset.Left,
                                   bottom: StackView.RowInset.Bottom,
                                   right: StackView.RowInset.Right));

            var image       = new UIImage();                             // TODO: add image
            var aspectRatio = 1;                                         //image.Size.Height / image.Size.Width;

            var imageView = new UIImageView(new CGRect(0, 0, 100, 100)); // image: image

            imageView.BackgroundColor        = UIColor.Red;
            imageView.UserInteractionEnabled = true;
            imageView.ContentMode            = UIViewContentMode.ScaleAspectFit;
            imageView.HeightAnchor.ConstraintEqualTo(imageView.WidthAnchor, multiplier: aspectRatio).Active = true;

            StackView.AddRow(imageView);
            StackView.SetTapHandler(imageView, _ =>
            {
                var alert = UIAlertController.Create("Title ;)", "Tapped", UIAlertControllerStyle.Alert);
                alert.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Cancel, null));
                PresentViewController(alert, true, null);

                // TODO: create photo view controller
                //var vc = new PhotoViewController();
                //NavigationController.PushViewController(vc, animated: true);
            });
        }
        private void AddHeader(string text)
        {
            AddSpacing(16);

            var label = new UILabel()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Text = text,
                Font = UIFont.PreferredBody.Bold()
            };

            StackView.AddArrangedSubview(label);
            label.StretchWidth(StackView, left: 16, right: 16);
        }
Пример #8
0
        static void Main(string[] args)
        {
            FigmaApplication.Init(Environment.GetEnvironmentVariable("TOKEN"));

            NSApplication.Init();
            NSApplication.SharedApplication.ActivationPolicy = NSApplicationActivationPolicy.Regular;

            var stackView = new StackView()
            {
                Orientation = LayoutOrientation.Vertical
            };

            scrollView = new ScrollView();

            var mainWindow = new Window(new Rectangle(0, 0, 540, 800))
            {
                Content = scrollView
            };

            mainWindow.Closing += delegate { NSRunningApplication.CurrentApplication.Terminate(); };

            //TIP: the render consist in 2 steps:
            //1) generate all the views, decorating and calculate sizes
            //2) with this views we generate the hierarchy and position all the views based in the
            //native toolkit positioning system

            //in this case we want use a remote file provider (figma url from our document)
            var fileProvider = new FigmaRemoteFileProvider();

            //we initialize our renderer service, this uses all the converters passed
            //and generate a collection of NodesProcessed which is basically contains <FigmaModel, IView, FigmaParentModel>
            var rendererService = new FigmaViewRendererService(fileProvider);

            rendererService.Start(fileName, scrollView.ContentView);

            //now we have all the views processed and the relationship we can distribute all the views into the desired base view
            var layoutManager = new StoryboardLayoutManager();

            layoutManager.Run(scrollView.ContentView, rendererService);

            //NOTE: some toolkits requires set the real size of the content of the scrollview before position layers
            scrollView.AdjustToContent();

            mainWindow.Show();
            //mainWindow.Title = manager.WindowTitle;

            NSApplication.SharedApplication.ActivateIgnoringOtherApps(true);
            NSApplication.SharedApplication.Run();
        }
        public void OpenWebActivity(string url)
        {
            //Intent i = new Intent(this,);
            //StartActivity(i);
            //Finish();
            LinearLayout mainLayout = FindViewById <LinearLayout>(Resource.Layout.Main2);

            webLayout = FindViewById <StackView>(Resource.Layout.Web);

            if (webLayout != null)
            {
                mainLayout.AddView(webLayout);
                browser = FindViewById <WebView>(Resource.Id.mainWebView);
            }
            browser.LoadUrl(url);
        }
Пример #10
0
        public override void OnViewModelLoadedOverride()
        {
            if (ViewModel.Usernames.Length == 0)
            {
                // Shouldn't happen
                return;
            }

            AddSpacing(16);
            var label = new UILabel()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Text = "Your username is: " + ViewModel.Usernames.First()
            };

            StackView.AddArrangedSubview(label);
            label.StretchWidth(StackView, left: 16, right: 16);

            if (ViewModel.Usernames.Length > 1)
            {
                AddSpacing(16);

                var additionalHeader = new UILabel()
                {
                    TranslatesAutoresizingMaskIntoConstraints = false,
                    Text = "Additional usernames...",
                    Font = UIFont.PreferredCaption1.Bold()
                };
                StackView.AddArrangedSubview(additionalHeader);
                additionalHeader.StretchWidth(StackView, left: 16, right: 16);

                foreach (var username in ViewModel.Usernames.Skip(1))
                {
                    var additionalUsername = new UILabel()
                    {
                        TranslatesAutoresizingMaskIntoConstraints = false,
                        Text = username,
                        Font = UIFont.PreferredCaption1
                    };
                    StackView.AddArrangedSubview(additionalUsername);
                    additionalUsername.StretchWidth(StackView, left: 16, right: 16);
                }
            }

            base.OnViewModelLoadedOverride();
        }
Пример #11
0
        protected override void Build()
        {
            var container = new StackView();

            foreach (var control in GetControls())
            {
                container.AddControl(control);
            }

            base.controlContainer = new ExpanderBase(name, false)
            {
                Content = container
            };

            base.contentAlignment      = Eto.Forms.VerticalAlignment.Top;
            base.deleteButtonAlignment = Eto.Forms.VerticalAlignment.Top;

            base.Build();
        }
Пример #12
0
        public ExampleGradientContentView()
        {
            ContentView = new ExtendedView()
            {
                MovableByWindowBackground = true,
                BorderColor = new Color(1, 1, 1, 0.08f)
            };
            ContentView.SetGradientLayer(
                new Color(r: 1.00f, g: 0.00f, b: 0.53f),
                new Color(r: 0.87f, g: 0.00f, b: 0.93f)
                );

            AddChild(ContentView);

            OperationsView = new StackView()
            {
                Orientation = LayoutOrientation.Horizontal
            };
            AddChild(OperationsView);
        }
        public ClassDetailsViewController()
        {
            Title = "Details";

            var textViewDetails = new UITextView()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Font          = UIFont.PreferredBody,
                Editable      = false,
                ScrollEnabled = false,

                // Link detection: http://iosdevelopertips.com/user-interface/creating-clickable-hyperlinks-from-a-url-phone-number-or-address.html
                DataDetectorTypes = UIDataDetectorType.All
            };

            // Lose the padding: https://stackoverflow.com/questions/746670/how-to-lose-margin-padding-in-uitextview
            textViewDetails.TextContainerInset = UIEdgeInsets.Zero;
            textViewDetails.TextContainer.LineFragmentPadding = 0;

            BindingHost.SetTextViewTextBinding(textViewDetails, nameof(ViewModel.Details));
            StackView.AddArrangedSubview(textViewDetails);
            textViewDetails.StretchWidth(StackView);

            var labelNothingHere = new UILabel()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Lines         = 0,
                Font          = UIFont.PreferredCallout,
                Text          = "Tap the edit button in the top right to add details like the teacher's contact info, office hours, and anything else!",
                TextColor     = UIColor.LightGray,
                TextAlignment = UITextAlignment.Center
            };

            View.Add(labelNothingHere);
            labelNothingHere.StretchWidth(View, left: 16, right: 16);
            labelNothingHere.StretchHeight(View, top: 16, bottom: 16);
            BindingHost.SetBinding(nameof(ViewModel.Details), delegate
            {
                labelNothingHere.Hidden = !string.IsNullOrWhiteSpace(ViewModel.Details);
            });
        }
Пример #14
0
        public override void OnViewModelLoadedOverride()
        {
            AddSpacing(16);

            var label = new UILabel()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Text  = PowerPlannerResources.GetString("Welcome_ConnectAccountPage_Message.Text"),
                Lines = 0 // Wraps text
            };

            StackView.AddArrangedSubview(label);
            label.StretchWidth(StackView, left: 16, right: 16);

            AddSpacing(24);

            var buttonLogIn = PowerPlannerUIHelper.CreatePowerPlannerBlueButton("Log In");

            buttonLogIn.TranslatesAutoresizingMaskIntoConstraints = false;
            buttonLogIn.TouchUpInside += new WeakEventHandler <EventArgs>(delegate { ViewModel.LogIn(); }).Handler;
            StackView.AddArrangedSubview(buttonLogIn);
            buttonLogIn.StretchWidth(StackView, left: 16, right: 16);

            AddSpacing(6);

            var labelHelp = new UILabel()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Text  = PowerPlannerResources.GetString("Welcome_ConnectAccountPage_NeedHelp.Text"),
                Lines = 0,
                Font  = UIFont.PreferredCaption1
            };

            StackView.AddArrangedSubview(labelHelp);
            labelHelp.StretchWidth(StackView, left: 16, right: 16);

            AddSpacing(16);

            base.OnViewModelLoadedOverride();
        }
Пример #15
0
        /// WheelMenu wheelMenu;

        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.Main2);
            LinearLayout mainLayout = FindViewById <LinearLayout>(Resource.Layout.Main2);

            mCircleMenuLayout = (CircleMenuLayout)FindViewById(Resource.Id.menulayout);
            mCircleMenuLayout.setMenuItemIconsAndTexts(mItemImgs, mItemTexts);

            CircleMenuEventArgs e = new CircleMenuEventArgs()
            {
            };

            mCircleMenuLayout.ItemClickedFinished += MCircleMenuLayout_ItemClicked;

            webLayout = FindViewById <StackView>(Resource.Layout.Web);
            if (webLayout != null)
            {
                mainLayout.AddView(webLayout);
            }
            browser = FindViewById <WebView>(Resource.Id.mainWebView);
        }
Пример #16
0
        static void Main(string[] args)
        {
            NSApplication.Init();
            NSApplication.SharedApplication.ActivationPolicy = NSApplicationActivationPolicy.Regular;

            var mainWindow = new Window(new Rectangle(0, 0, 540, 800))
            {
                Title = "Test Window",
            };

            var stackView = new StackView()
            {
                Orientation = LayoutOrientation.Vertical
            };

            mainWindow.Content = stackView;

            var path = System.IO.Path.GetDirectoryName(System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location));

            path = System.IO.Path.Combine(path, "Resources", "mydraw.svg");
            var data = System.IO.File.ReadAllText(path);

            SvgShapeView shapeView = new SvgShapeView();

            shapeView.Allocation = new Rectangle(0, 0, 100, 100);
            stackView.AddChild(shapeView);

            shapeView.Load(data);

            //AnimationCircle(stackView);

            mainWindow.Show();

            //mainWindow.Closing += delegate { NSRunningApplication.CurrentApplication.Terminate(); };
            NSApplication.SharedApplication.ActivateIgnoringOtherApps(true);
            NSApplication.SharedApplication.Run();
        }
Пример #17
0
        public EditClassCreditsViewController()
        {
            Title = "Credits";

            PowerPlannerUIHelper.ConfigureForInputsStyle(this);

            var cancelButton = new UIBarButtonItem()
            {
                Title = "Cancel"
            };

            cancelButton.Clicked            += new WeakEventHandler <EventArgs>(CancelButton_Clicked).Handler;
            NavigationItem.LeftBarButtonItem = cancelButton;

            var saveButton = new UIBarButtonItem()
            {
                Title = "Save"
            };

            saveButton.Clicked += new WeakEventHandler <EventArgs>(SaveButton_Clicked).Handler;
            NavigationItem.RightBarButtonItem = saveButton;

            StackView.AddSectionDivider();

            var textFieldCredits = new UITextField()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                KeyboardType = UIKeyboardType.DecimalPad,
                AdjustsFontSizeToFitWidth = true,
                Placeholder = "ex: 3"
            };

            BindingHost.SetTextFieldTextBinding <double>(textFieldCredits, nameof(ViewModel.Credits), converter: CreditsToTextBoxTextConverter.Convert, backConverter: CreditsToTextBoxTextConverter.ConvertBack);
            AddTextField(StackView, textFieldCredits, firstResponder: true);

            StackView.AddSectionDivider();
        }
Пример #18
0
        public override void OnViewModelLoadedOverride()
        {
            AddSpacing(16);

            var label = new UILabel()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Text  = PowerPlannerResources.GetString("Welcome_ExistingUserPage_Message.Text"),
                Lines = 0 // Wraps text
            };

            StackView.AddArrangedSubview(label);
            label.StretchWidth(StackView, left: 16, right: 16);

            AddSpacing(24);

            var buttonHasAccount = PowerPlannerUIHelper.CreatePowerPlannerBlueButton(PowerPlannerResources.GetString("Welcome_ExistingUserPage_ButtonHasAccount.Content"));

            buttonHasAccount.TranslatesAutoresizingMaskIntoConstraints = false;
            buttonHasAccount.TouchUpInside += new WeakEventHandler <EventArgs>(delegate { ViewModel.HasAccount(); }).Handler;
            StackView.AddArrangedSubview(buttonHasAccount);
            buttonHasAccount.StretchWidth(StackView, left: 16, right: 16);

            AddSpacing(8);

            var buttonNoAccount = PowerPlannerUIHelper.CreatePowerPlannerBlueButton(PowerPlannerResources.GetString("Welcome_ExistingUserPage_ButtonNoAccount.Content"));

            buttonNoAccount.TranslatesAutoresizingMaskIntoConstraints = false;
            buttonNoAccount.TouchUpInside += new WeakEventHandler <EventArgs>(delegate { ViewModel.NoAccount(); }).Handler;
            StackView.AddArrangedSubview(buttonNoAccount);
            buttonNoAccount.StretchWidth(StackView, left: 16, right: 16);

            AddSpacing(16);

            base.OnViewModelLoadedOverride();
        }
Пример #19
0
        public MainSample()
        {
            mainWindow = new Window(new Rectangle(0, 0, 540, 800))
            {
                Title = "Test Window",
            };

            menuStackView = new StackView {
                Orientation     = LayoutOrientation.Vertical,
                Padding         = new Padding(10),
                Allocation      = new Rectangle(0, 0, menuWidth, mainWindow.Content.Allocation.Height),
                BackgroundColor = Color.Green
            };
            mainWindow.Content.AddChild(menuStackView);

            //contentView = new View() {
            //    Allocation = new Rectangle(menuWidth, 0, mainWindow.Content.Allocation.Width - menuWidth, mainWindow.Content.Allocation.Height),
            //    BackgroundColor = Color.Red
            //};

            mainWindow.Resize += (s, e) => Refresh();

            //examples
            foreach (var example in examples)
            {
                var example1Button = new Button()
                {
                    Text = example.name
                };
                menuStackView.AddChild(example1Button);
                example1Button.Clicked += (s, e) => Select(example.sample);
            }

            //mainWindow.Content.AddChild(contentView);
            mainWindow.Show();
        }
Пример #20
0
        public ViewGradeViewController()
        {
            Title = "View Grade";

            var buttonEdit = new UIBarButtonItem(UIBarButtonSystemItem.Edit);

            buttonEdit.Clicked += new WeakEventHandler(delegate { ViewModel.Edit(); }).Handler;

            var buttonDelete = new UIBarButtonItem(UIBarButtonSystemItem.Trash);

            buttonDelete.Clicked += new WeakEventHandler(ButtonDelete_Clicked).Handler;

            NavItem.RightBarButtonItems = new UIBarButtonItem[]
            {
                buttonDelete,
                buttonEdit
            };

            var labelTitle = new UILabel()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Font  = UIFont.PreferredTitle3,
                Lines = 0
            };

            _itemBindingHost.SetLabelTextBinding(labelTitle, nameof(ViewModel.Grade.Name));
            StackView.AddArrangedSubview(labelTitle);
            labelTitle.StretchWidth(StackView);

            StackView.AddArrangedSubview(new UIView().SetHeight(4));

            var labelSubtitle = new UILabel()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Font  = UIFont.PreferredSubheadline,
                Lines = 0
            };

            _itemBindingHost.SetLabelTextBinding(labelSubtitle, nameof(ViewItemGrade.GradeSubtitle));
            _classBindingHost.SetBinding <byte[]>(nameof(ViewItemClass.Color), (color) =>
            {
                labelSubtitle.TextColor = BareUIHelper.ToColor(color);
            });
            StackView.AddArrangedSubview(labelSubtitle);
            labelSubtitle.StretchWidth(StackView);

            StackView.AddArrangedSubview(new UIView().SetHeight(4));

            var labelDate = new UILabel()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Font      = UIFont.PreferredSubheadline,
                TextColor = UIColor.DarkGray
            };

            _itemBindingHost.SetBinding <DateTime>(nameof(ViewItemGrade.Date), (date) =>
            {
                labelDate.Text = date.ToString("d");
            });
            StackView.AddArrangedSubview(labelDate);
            labelDate.StretchWidth(StackView);

            StackView.AddArrangedSubview(new UIView().SetHeight(4));

            var labelDetails = new UILabel()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Font      = UIFont.PreferredCaption1,
                Lines     = 0,
                TextColor = UIColor.DarkGray
            };

            _itemBindingHost.SetLabelTextBinding(labelDetails, nameof(ViewItemGrade.Details));
            StackView.AddArrangedSubview(labelDetails);
            labelDetails.StretchWidth(StackView);
        }
Пример #21
0
        public override void OnViewModelLoadedOverride()
        {
            AddTopSectionDivider();

            if (ViewModel.Message != null)
            {
                StackView.AddSpacing(8);

                var labelMessage = new UILabel()
                {
                    TranslatesAutoresizingMaskIntoConstraints = false,
                    Text  = ViewModel.Message,
                    Font  = UIFont.PreferredCaption1,
                    Lines = 0
                };

                StackView.AddArrangedSubview(labelMessage);
                labelMessage.StretchWidth(StackView, left: 16, right: 16);

                StackView.AddSpacing(8);

                AddSectionDivider();
            }

            AddTextField(new UITextField()
            {
                Placeholder                   = "Username",
                AutocapitalizationType        = UITextAutocapitalizationType.None,
                AutocorrectionType            = UITextAutocorrectionType.No,
                KeyboardType                  = UIKeyboardType.ASCIICapable,
                ReturnKeyType                 = UIReturnKeyType.Next,
                EnablesReturnKeyAutomatically = true
            }, nameof(ViewModel.Username), firstResponder: true);

            AddDivider();

            AddTextField(new UITextField()
            {
                Placeholder     = "Password",
                SecureTextEntry = true,
                ReturnKeyType   = UIReturnKeyType.Go,
                EnablesReturnKeyAutomatically = true
            }, nameof(ViewModel.Password));

            AddSectionDivider();

            _buttonLogin = new UIButton(UIButtonType.System)
            {
                TranslatesAutoresizingMaskIntoConstraints = false
            };
            _buttonLogin.TouchUpInside += new WeakEventHandler <EventArgs>(delegate { Login(); }).Handler;
            _buttonLogin.SetTitle("Log In", UIControlState.Normal);
            StackView.AddArrangedSubview(_buttonLogin);
            _buttonLogin.StretchWidth(StackView);
            _buttonLogin.SetHeight(44);

            AddDivider(fullWidth: true);

            var forgotViews = new UIView()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                BackgroundColor = ColorResources.InputSectionDividers
            };

            {
                var leftSpacer = new UIView()
                {
                    TranslatesAutoresizingMaskIntoConstraints = false
                };
                forgotViews.Add(leftSpacer);
                var rightSpacer = new UIView()
                {
                    TranslatesAutoresizingMaskIntoConstraints = false
                };
                forgotViews.Add(rightSpacer);

                var buttonForgotUsername = new UIButton(UIButtonType.System)
                {
                    TranslatesAutoresizingMaskIntoConstraints = false,
                    HorizontalAlignment = UIControlContentHorizontalAlignment.Right,
                    Font = UIFont.PreferredCaption1
                };
                buttonForgotUsername.TouchUpInside += new WeakEventHandler(delegate { ViewModel.ForgotUsername(); }).Handler;
                buttonForgotUsername.SetTitle("Forgot Username", UIControlState.Normal);
                forgotViews.Add(buttonForgotUsername);
                buttonForgotUsername.StretchHeight(forgotViews);

                var verticalDivider = new UIView()
                {
                    TranslatesAutoresizingMaskIntoConstraints = false,
                    BackgroundColor = UIColor.FromWhiteAlpha(0.7f, 1)
                };
                forgotViews.Add(verticalDivider);
                verticalDivider.StretchHeight(forgotViews, top: 16, bottom: 16);

                var buttonForgotPassword = new UIButton(UIButtonType.System)
                {
                    TranslatesAutoresizingMaskIntoConstraints = false,
                    HorizontalAlignment = UIControlContentHorizontalAlignment.Left,
                    Font = UIFont.PreferredCaption1
                };
                buttonForgotPassword.TouchUpInside += new WeakEventHandler(delegate { ViewModel.ForgotPassword(); }).Handler;
                buttonForgotPassword.SetTitle("Forgot Password", UIControlState.Normal);
                forgotViews.Add(buttonForgotPassword);
                buttonForgotPassword.StretchHeight(forgotViews);

                forgotViews.AddConstraints(NSLayoutConstraint.FromVisualFormat("H:|[leftSpacer][forgotUsername]-8-[verticalDivider(1)]-8-[forgotPassword][rightSpacer(==leftSpacer)]|", NSLayoutFormatOptions.DirectionLeadingToTrailing, null, new NSDictionary(
                                                                                   "forgotUsername", buttonForgotUsername,
                                                                                   "verticalDivider", verticalDivider,
                                                                                   "forgotPassword", buttonForgotPassword,
                                                                                   "leftSpacer", leftSpacer,
                                                                                   "rightSpacer", rightSpacer)));
            }
            StackView.AddArrangedSubview(forgotViews);
            forgotViews.StretchWidth(StackView);
            forgotViews.SetHeight(44);

            ViewModel.PropertyChanged += new WeakEventHandler <PropertyChangedEventArgs>(ViewModel_PropertyChanged).Handler;

            base.OnViewModelLoadedOverride();
        }
Пример #22
0
        static void Main(string[] args)
        {
            NSApplication.Init();
            NSApplication.SharedApplication.ActivationPolicy = NSApplicationActivationPolicy.Regular;

            mainWindow = new Window(new Rectangle(0, 0, 567, 675))
            {
                Title     = "Test Window",
                Resizable = false,
            };
            //mainWindow.Content.BackgroundColor = Color.Black;

            //mainWindow.Content.BackgroundColor = Color.Transparent;
            mainWindow.Center();
            mainWindow.MovableByWindowBackground = mainWindow.Content.MovableByWindowBackground = true;
            //mainWindow.Borderless = true;
            //mainWindow.IsOpaque = false;
            //mainWindow.BackgroundColor = Color.Transparent;

            mainWindow.IsFullSizeContentView = true;

            buttonContentStackView = new StackView()
            {
                Orientation = LayoutOrientation.Horizontal,
                Allocation  = new Rectangle(0, 0, mainWindow.Size.Width, 20),
                MovableByWindowBackground = true
            };
            mainWindow.Content.AddChild(buttonContentStackView);


            actionContainerView = new OptionsPanelGradienContentView()
            {
                Allocation = new Rectangle(10, 25, mainWindow.Size.Width - 20, mainWindow.Size.Height - 35),
                MovableByWindowBackground = true
            };

            mainWindow.Content.AddChild(actionContainerView);

            page1 = new Page1(actionContainerView);
            page2 = new Page2(actionContainerView);
            //page3 = new Page3(actionContainerView);

            var button = new Button()
            {
                Text = "Transformation"
            };

            buttonContentStackView.AddChild(button);
            button.Clicked += (s, e) => SelectPage(page1);

            var button2 = new Button()
            {
                Text = "Svg"
            };

            buttonContentStackView.AddChild(button2);
            button2.Clicked += (s, e) => SelectPage(page2);

            var button3 = new Button()
            {
                Text = "Shapes"
            };

            buttonContentStackView.AddChild(button3);
            //button3.Clicked += (s, e) => SelectPage(page3);

            //scrollView.SetContentSize(800, 1000);

            mainWindow.Resize += (s, e) => Refresh();

            SelectPage(page2);

            mainWindow.Show();

            NSApplication.SharedApplication.ActivateIgnoringOtherApps(true);
            NSApplication.SharedApplication.Run();
        }
        public override void OnViewModelLoadedOverride()
        {
            Title = ViewModel.State == AddHomeworkViewModel.OperationState.Adding ?
                    ViewModel.Type == AddHomeworkViewModel.ItemType.Homework ? "Add Task" : "Add Event"
                : ViewModel.Type == AddHomeworkViewModel.ItemType.Homework ? "Edit Task" : "Edit Event";

            AddTopSectionDivider();

            AddTextField(new UITextField()
            {
                Placeholder   = "Name",
                ReturnKeyType = UIReturnKeyType.Done,
                EnablesReturnKeyAutomatically = true
            }, nameof(ViewModel.Name), firstResponder: ViewModel.State == AddHomeworkViewModel.OperationState.Adding);

            AddDivider();

            var dateContainer = new UIStackView()
            {
                Axis = UILayoutConstraintAxis.Vertical
            };

            {
                var datePicker = new BareUIInlineDatePicker(this, left: 16, right: 16)
                {
                    TranslatesAutoresizingMaskIntoConstraints = false
                };
                BindingHost.SetDateBinding(datePicker, nameof(ViewModel.Date));
                dateContainer.AddArrangedSubview(datePicker);
                datePicker.StretchWidth(dateContainer);
                datePicker.SetHeight(44);

                AddDivider(dateContainer);
            }
            AddUnderVisiblity(dateContainer, nameof(ViewModel.IsDatePickerVisible));

            var classContainer = new UIStackView()
            {
                Axis = UILayoutConstraintAxis.Vertical
            };

            {
                var pickerClass = new BareUIInlinePickerView(this, left: 16, right: 16)
                {
                    TranslatesAutoresizingMaskIntoConstraints = false,
                    HeaderText          = "Class",
                    ItemToViewConverter = ConvertClassToInlineView
                };
                BindingHost.SetItemsSourceBinding(pickerClass, nameof(ViewModel.Classes));
                BindingHost.SetSelectedItemBinding(pickerClass, nameof(ViewModel.Class));
                classContainer.AddArrangedSubview(pickerClass);
                pickerClass.StretchWidth(classContainer);
                pickerClass.SetHeight(44);

                AddDivider(classContainer);
            }
            AddUnderVisiblity(classContainer, nameof(ViewModel.IsClassPickerVisible));

            var gradeWeightContainer = new UIStackView()
            {
                Axis = UILayoutConstraintAxis.Vertical
            };

            {
                var pickerGradeWeight = new BareUIInlinePickerView(this, left: 16, right: 16)
                {
                    TranslatesAutoresizingMaskIntoConstraints = false,
                    HeaderText = "Grade Category"
                };
                BindingHost.SetItemsSourceBinding(pickerGradeWeight, nameof(ViewModel.WeightCategories));
                BindingHost.SetSelectedItemBinding(pickerGradeWeight, nameof(ViewModel.SelectedWeightCategory));
                gradeWeightContainer.AddArrangedSubview(pickerGradeWeight);
                pickerGradeWeight.StretchWidth(gradeWeightContainer);
                pickerGradeWeight.SetHeight(44);

                AddDivider(gradeWeightContainer);
            }
            AddUnderVisiblity(gradeWeightContainer, nameof(ViewModel.IsWeightCategoryPickerVisible));

            var pickerTime = new BareUIInlinePickerView(this, left: 16, right: 16)
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                HeaderText = "Time"
            };

            BindingHost.SetItemsSourceBinding(pickerTime, nameof(ViewModel.TimeOptions));
            BindingHost.SetSelectedItemBinding(pickerTime, nameof(ViewModel.SelectedTimeOption));
            StackView.AddArrangedSubview(pickerTime);
            pickerTime.StretchWidth(StackView);
            pickerTime.SetHeight(44);

            var stackViewPickerCustomTime = new UIStackView()
            {
                Axis = UILayoutConstraintAxis.Vertical
            };

            AddDivider(stackViewPickerCustomTime);
            if (ViewModel.Type == AddHomeworkViewModel.ItemType.Homework)
            {
                var pickerDueTime = new BareUIInlineTimePicker(this, left: 16, right: 16)
                {
                    TranslatesAutoresizingMaskIntoConstraints = false,
                    HeaderText = "Due Time"
                };
                BindingHost.SetTimeBinding(pickerDueTime, nameof(ViewModel.StartTime));
                stackViewPickerCustomTime.AddArrangedSubview(pickerDueTime);
                pickerDueTime.StretchWidth(stackViewPickerCustomTime);
                pickerDueTime.SetHeight(44);
            }
            else
            {
                var pickerStartTime = new BareUIInlineTimePicker(this, left: 16, right: 16)
                {
                    TranslatesAutoresizingMaskIntoConstraints = false,
                    HeaderText = "Start Time"
                };
                BindingHost.SetTimeBinding(pickerStartTime, nameof(ViewModel.StartTime));
                stackViewPickerCustomTime.AddArrangedSubview(pickerStartTime);
                pickerStartTime.StretchWidth(stackViewPickerCustomTime);
                pickerStartTime.SetHeight(44);

                AddDivider(stackViewPickerCustomTime);

                var pickerEndTime = new BareUIInlineTimePicker(this, left: 16, right: 16)
                {
                    TranslatesAutoresizingMaskIntoConstraints = false,
                    HeaderText = "End Time"
                };
                BindingHost.SetTimeBinding(pickerEndTime, nameof(ViewModel.EndTime));
                stackViewPickerCustomTime.AddArrangedSubview(pickerEndTime);
                pickerEndTime.StretchWidth(stackViewPickerCustomTime);
                pickerEndTime.SetHeight(44);
            }
            var pickerCustomTimeContainer = new BareUIVisibilityContainer()
            {
                Child = stackViewPickerCustomTime
            };

            BindingHost.SetVisibilityBinding(pickerCustomTimeContainer, nameof(ViewModel.IsStartTimePickerVisible));
            StackView.AddArrangedSubview(pickerCustomTimeContainer);
            pickerCustomTimeContainer.StretchWidth(StackView);

            AddSectionDivider();

            var detailsView = new BareUITextView()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Placeholder = "Details"
            };

            BindingHost.SetTextViewTextBinding(detailsView.TextView, nameof(ViewModel.Details));
            StackView.AddArrangedSubview(detailsView);
            detailsView.StretchWidth(StackView);
            detailsView.SetHeight(130);

            if (ViewModel.IsRepeatsVisible)
            {
                AddSectionDivider();

                var switchRepeats = new BareUISwitch()
                {
                    TranslatesAutoresizingMaskIntoConstraints = false,
                    Header = PowerPlannerResources.GetString("RepeatingEntry_CheckBoxRepeats.Content")
                };
                BindingHost.SetSwitchBinding(switchRepeats, nameof(ViewModel.Repeats));
                StackView.AddArrangedSubview(switchRepeats);
                switchRepeats.StretchWidth(StackView);
                switchRepeats.SetHeight(44);

                StackView.AddUnderLazyVisibility(BindingHost, nameof(ViewModel.Repeats), delegate
                {
                    var recurrenceContainer = new UIStackView()
                    {
                        Axis = UILayoutConstraintAxis.Vertical
                    };
                    {
                        recurrenceContainer.AddDivider();

                        var tryForFreeContainer = new UIStackView()
                        {
                            Axis = UILayoutConstraintAxis.Vertical
                        };
                        {
                            tryForFreeContainer.AddSpacing(16);
                            var tryForFreeLabel = new UILabel()
                            {
                                TranslatesAutoresizingMaskIntoConstraints = false,
                                Text      = PowerPlannerResources.GetString("RepeatingEntry_TextBlockTryForFree.Text"),
                                Font      = UIFont.PreferredCaption1,
                                TextColor = UIColor.Red,
                                Lines     = 0
                            };
                            tryForFreeContainer.AddArrangedSubview(tryForFreeLabel);
                            tryForFreeLabel.StretchWidth(tryForFreeContainer, left: 16, right: 16);
                            tryForFreeContainer.AddSpacing(16);

                            tryForFreeContainer.AddDivider();
                        }
                        recurrenceContainer.AddUnderVisiblity(tryForFreeContainer, BindingHost, nameof(ViewModel.ShowRepeatingPremiumTrial));

                        var mustUpgradeContainer = new UIStackView()
                        {
                            Axis = UILayoutConstraintAxis.Vertical
                        };
                        {
                            mustUpgradeContainer.AddSpacing(16);
                            var mustUpgradeLabel = new UILabel()
                            {
                                TranslatesAutoresizingMaskIntoConstraints = false,
                                Text      = PowerPlannerResources.GetString("RepeatingEntry_TextBlockMustUpgrade.Text"),
                                Font      = UIFont.PreferredCaption1,
                                TextColor = UIColor.Red,
                                Lines     = 0
                            };
                            mustUpgradeContainer.AddArrangedSubview(mustUpgradeLabel);
                            mustUpgradeLabel.StretchWidth(mustUpgradeContainer, left: 16, right: 16);
                            mustUpgradeContainer.AddSpacing(8);

                            var buttonUpgrade = PowerPlannerUIHelper.CreatePowerPlannerBlueButton(PowerPlannerResources.GetString("Settings_UpgradeToPremium_ButtonUpgrade.Content"));
                            buttonUpgrade.TranslatesAutoresizingMaskIntoConstraints = false;
                            buttonUpgrade.TouchUpInside += new WeakEventHandler <EventArgs>(delegate { ViewModel.UpgradeToPremiumForRepeating(); }).Handler;
                            mustUpgradeContainer.AddArrangedSubview(buttonUpgrade);
                            buttonUpgrade.StretchWidth(mustUpgradeContainer, left: 16, right: 16);
                            mustUpgradeContainer.AddSpacing(16);

                            mustUpgradeContainer.AddDivider();
                        }
                        recurrenceContainer.AddUnderVisiblity(mustUpgradeContainer, BindingHost, nameof(ViewModel.ShowRepeatingMustUpgradeToPremium));

                        var recurrenceView = new UIRecurrenceView(this)
                        {
                            TranslatesAutoresizingMaskIntoConstraints = false,
                            ViewModel = ViewModel.RecurrenceControlViewModel
                        };
                        BindingHost.SetIsEnabledBinding(recurrenceView, nameof(ViewModel.IsRepeatingEntryEnabled));
                        recurrenceContainer.AddArrangedSubview(recurrenceView);
                        recurrenceView.StretchWidth(recurrenceContainer);

                        recurrenceContainer.AddDivider();

                        recurrenceContainer.AddSpacing(16);
                        var labelNoteCannotBulkEdit = new UILabel()
                        {
                            TranslatesAutoresizingMaskIntoConstraints = false,
                            Text      = PowerPlannerResources.GetString("RepeatingEntry_TextBlockNoteCannotBulkEdit.Text"),
                            Font      = UIFont.PreferredCaption1,
                            TextColor = UIColor.LightGray,
                            Lines     = 0
                        };
                        recurrenceContainer.AddArrangedSubview(labelNoteCannotBulkEdit);
                        labelNoteCannotBulkEdit.StretchWidth(recurrenceContainer, left: 16, right: 16);
                        recurrenceContainer.AddSpacing(16);
                    }
                    return(recurrenceContainer);
                });
            }

            AddBottomSectionDivider();

            BackButtonText       = "Cancel";
            PositiveNavBarButton = new PopupRightNavBarButtonItem("Save", delegate { Save(); });

            base.OnViewModelLoadedOverride();
        }
Пример #24
0
        void ReleaseDesignerOutlets()
        {
            if (CloseButton != null)
            {
                CloseButton.Dispose();
                CloseButton = null;
            }

            if (DatePicker != null)
            {
                DatePicker.Dispose();
                DatePicker = null;
            }

            if (DatePickerContainer != null)
            {
                DatePickerContainer.Dispose();
                DatePickerContainer = null;
            }

            if (DurationInput != null)
            {
                DurationInput.Dispose();
                DurationInput = null;
            }

            if (EndDateLabel != null)
            {
                EndDateLabel.Dispose();
                EndDateLabel = null;
            }

            if (EndLabel != null)
            {
                EndLabel.Dispose();
                EndLabel = null;
            }

            if (EndTimeLabel != null)
            {
                EndTimeLabel.Dispose();
                EndTimeLabel = null;
            }

            if (EndView != null)
            {
                EndView.Dispose();
                EndView = null;
            }

            if (SaveButton != null)
            {
                SaveButton.Dispose();
                SaveButton = null;
            }

            if (SetEndButton != null)
            {
                SetEndButton.Dispose();
                SetEndButton = null;
            }

            if (StackView != null)
            {
                StackView.Dispose();
                StackView = null;
            }

            if (StartDateLabel != null)
            {
                StartDateLabel.Dispose();
                StartDateLabel = null;
            }

            if (StartLabel != null)
            {
                StartLabel.Dispose();
                StartLabel = null;
            }

            if (StartTimeLabel != null)
            {
                StartTimeLabel.Dispose();
                StartTimeLabel = null;
            }

            if (StartView != null)
            {
                StartView.Dispose();
                StartView = null;
            }

            if (TitleLabel != null)
            {
                TitleLabel.Dispose();
                TitleLabel = null;
            }

            if (WheelView != null)
            {
                WheelView.Dispose();
                WheelView = null;
            }

            if (startIcon != null)
            {
                startIcon.Dispose();
                startIcon = null;
            }

            if (endIcon != null)
            {
                endIcon.Dispose();
                endIcon = null;
            }
        }
Пример #25
0
        void ReleaseDesignerOutlets()
        {
            if (ButtonNext != null)
            {
                ButtonNext.Dispose();
                ButtonNext = null;
            }

            if (DependsSpace != null)
            {
                DependsSpace.Dispose();
                DependsSpace = null;
            }

            if (LabelAfter != null)
            {
                LabelAfter.Dispose();
                LabelAfter = null;
            }

            if (LabelEvery != null)
            {
                LabelEvery.Dispose();
                LabelEvery = null;
            }

            if (LabelTake != null)
            {
                LabelTake.Dispose();
                LabelTake = null;
            }

            if (LabelUnits != null)
            {
                LabelUnits.Dispose();
                LabelUnits = null;
            }

            if (PickerIntervallType != null)
            {
                PickerIntervallType.Dispose();
                PickerIntervallType = null;
            }

            if (PickerViewMedis != null)
            {
                PickerViewMedis.Dispose();
                PickerViewMedis = null;
            }

            if (StackView != null)
            {
                StackView.Dispose();
                StackView = null;
            }

            if (TextFieldDosage != null)
            {
                TextFieldDosage.Dispose();
                TextFieldDosage = null;
            }

            if (TextFieldIntervall != null)
            {
                TextFieldIntervall.Dispose();
                TextFieldIntervall = null;
            }
        }
        public EditClassWeightCategoriesViewController()
        {
            Title = "Weight Categories";

            var cancelButton = new UIBarButtonItem()
            {
                Title = "Cancel"
            };

            cancelButton.Clicked            += new WeakEventHandler <EventArgs>(CancelButton_Clicked).Handler;
            NavigationItem.LeftBarButtonItem = cancelButton;

            var saveButton = new UIBarButtonItem()
            {
                Title = "Save"
            };

            saveButton.Clicked += new WeakEventHandler <EventArgs>(SaveButton_Clicked).Handler;
            NavigationItem.RightBarButtonItem = saveButton;

            PowerPlannerUIHelper.ConfigureForInputsStyle(this);

            // No save/cancel button, implicitly saves when going back or exiting

            StackView.AddTopSectionDivider();

            var headerView = new UIView()
            {
                TranslatesAutoresizingMaskIntoConstraints = false
            };

            {
                var labelName = new UILabel()
                {
                    TranslatesAutoresizingMaskIntoConstraints = false,
                    Text = "Name",
                    Font = UIFont.PreferredBody.Bold()
                };
                headerView.Add(labelName);
                labelName.StretchHeight(headerView, top: 8, bottom: 8);

                var labelWeight = new UILabel()
                {
                    TranslatesAutoresizingMaskIntoConstraints = false,
                    Text = "Weight",
                    Font = UIFont.PreferredBody.Bold()
                };
                headerView.Add(labelWeight);
                labelWeight.StretchHeight(headerView, top: 8, bottom: 8);

                headerView.AddConstraints(NSLayoutConstraint.FromVisualFormat("H:|[name][weight(60)]-52-|", NSLayoutFormatOptions.DirectionLeadingToTrailing,
                                                                              "name", labelName,
                                                                              "weight", labelWeight));
            }
            StackView.AddArrangedSubview(headerView);
            headerView.StretchWidth(StackView, left: 16, right: 16);

            StackView.AddDivider();

            var weightsView = new UIView()
            {
                TranslatesAutoresizingMaskIntoConstraints = false
            };

            {
                _itemsSourceWeights = new BareUIViewItemsSourceAdapterAsStackPanel(weightsView, (w) => { return(new UIEditingWeightCategoryView(this)
                    {
                        DataContext = w
                    }); });
            }
            StackView.AddArrangedSubview(weightsView);
            weightsView.StretchWidth(StackView, left: 16);

            var buttonDelete = new UIButton(UIButtonType.System)
            {
                TranslatesAutoresizingMaskIntoConstraints = false
            };

            buttonDelete.SetTitle("Add Category", UIControlState.Normal);
            buttonDelete.TouchUpInside += new WeakEventHandler(delegate { ViewModel.AddWeightCategory(); }).Handler;
            StackView.AddArrangedSubview(buttonDelete);
            buttonDelete.StretchWidth(StackView);
            buttonDelete.SetHeight(44);

            StackView.AddBottomSectionDivider();
        }
Пример #27
0
        public void UpdateBindings()
        {
            content.Items.Clear();

            var tipButton = new BindingDisplay(App.Settings?.TipButton)
            {
                MinimumSize = new Size(300, 0)
            };

            tipButton.BindingUpdated += (sender, binding) => App.Settings.TipButton = binding;

            var tipPressure = new PressureSlider(
                "Tip Pressure",
                () => App.Settings.TipActivationPressure,
                (v) => App.Settings.TipActivationPressure = v
                );

            var tipSettingsStack = new StackView
            {
                Items =
                {
                    new Group("Tip Button", tipButton, Orientation.Horizontal, false),
                    tipPressure
                }
            };

            var tipSettings = new Group("Tip Bindings", tipSettingsStack);

            var penBindingsStack = new StackView();

            for (int i = 0; i < App.Settings?.PenButtons.Count; i++)
            {
                var penBinding = new BindingDisplay(App.Settings?.PenButtons[i])
                {
                    MinimumSize = new Size(300, 0),
                    Tag         = i
                };
                penBinding.BindingUpdated += (sender, binding) =>
                {
                    var index = (int)(sender as BindingDisplay).Tag;
                    App.Settings.PenButtons[index] = binding;
                };
                var penBindingGroup = new Group($"Pen Button {i + 1}", penBinding, Orientation.Horizontal, false);
                penBindingsStack.AddControl(penBindingGroup);
            }

            var penBindingSettings = new Group("Pen Button Bindings", penBindingsStack);

            var penSettings = new StackLayout
            {
                Orientation = Orientation.Horizontal,
                VerticalContentAlignment = VerticalAlignment.Stretch,
                Items =
                {
                    new StackLayoutItem(tipSettings,        true),
                    new StackLayoutItem(penBindingSettings, true)
                }
            };

            content.AddControl(penSettings);

            var auxBindingsStack = new StackView();

            for (int i = 0; i < App.Settings?.AuxButtons.Count; i++)
            {
                var auxBinding = new BindingDisplay(App.Settings?.AuxButtons[i])
                {
                    MinimumSize = new Size(300, 0),
                    Tag         = i
                };
                auxBinding.BindingUpdated += (sender, Binding) =>
                {
                    var index = (int)(sender as BindingDisplay).Tag;
                    App.Settings.AuxButtons[index] = Binding;
                };
                var auxBindingGroup = new Group($"Auxiliary Button {i + 1}", auxBinding, Orientation.Horizontal, false);
                auxBindingsStack.AddControl(auxBindingGroup);
            }

            var auxBindingSettings = new Group("Auxiliary Button Bindings", auxBindingsStack)
            {
                TitleHorizontalAlignment = HorizontalAlignment.Center
            };

            content.AddControl(auxBindingSettings);
        }
        public override void OnViewModelLoadedOverride()
        {
            AddTopSectionDivider();

            _errorContainer = new BareUIVisibilityContainer()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                IsVisible = false
            };
            {
                var stackViewIncorrect = new UIStackView()
                {
                    Axis = UILayoutConstraintAxis.Vertical
                };
                stackViewIncorrect.AddArrangedSubview(new UIView()
                {
                    TranslatesAutoresizingMaskIntoConstraints = false
                }.SetHeight(8));
                _labelError = new UILabel()
                {
                    TranslatesAutoresizingMaskIntoConstraints = false,
                    Text      = "Error",
                    Lines     = 0,
                    TextColor = UIColor.Red
                };
                stackViewIncorrect.AddArrangedSubview(_labelError);
                _labelError.StretchWidth(stackViewIncorrect, left: 16, right: 16);
                stackViewIncorrect.AddArrangedSubview(new UIView()
                {
                    TranslatesAutoresizingMaskIntoConstraints = false
                }.SetHeight(8));

                AddDivider(stackViewIncorrect);

                _errorContainer.Child = stackViewIncorrect;
            }
            StackView.AddArrangedSubview(_errorContainer);
            _errorContainer.StretchWidth(StackView);

            var textField = new UITextField()
            {
                Placeholder            = "New username",
                AutocapitalizationType = UITextAutocapitalizationType.None,
                AutocorrectionType     = UITextAutocorrectionType.No,
                KeyboardType           = UIKeyboardType.ASCIICapable,
                ReturnKeyType          = UIReturnKeyType.Done
            };

            textField.AddTarget(new WeakEventHandler <EventArgs>(delegate
            {
                _errorContainer.IsVisible = false;
            }).Handler, UIControlEvent.EditingChanged);
            AddTextField(textField, nameof(ViewModel.Username), firstResponder: true);

            AddSectionDivider();

            var buttonContinue = new UIButton(UIButtonType.System)
            {
                TranslatesAutoresizingMaskIntoConstraints = false
            };

            buttonContinue.TouchUpInside += new WeakEventHandler <EventArgs>(delegate { ViewModel.Update(); }).Handler;
            buttonContinue.SetTitle("Update Username", UIControlState.Normal);
            StackView.AddArrangedSubview(buttonContinue);
            buttonContinue.StretchWidth(StackView);
            buttonContinue.SetHeight(44);

            AddBottomSectionDivider();

            ViewModel.ActionError += new WeakEventHandler <string>(ViewModel_ActionError).Handler;

            BindingHost.SetBinding(nameof(ViewModel.IsUpdatingUsername), delegate
            {
                IsLoadingOverlayVisible = ViewModel.IsUpdatingUsername;
            });

            base.OnViewModelLoadedOverride();
        }
Пример #29
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            View.BackgroundColor = UIColor.Black;

            Title = Strings.Menu;

            _imgBackground = new UIImageView(UIImage.FromBundle("Background.jpg"))
            {
                //ContentMode = UIViewContentMode.
            };

            _options = new StackView
            {
                Axis = UILayoutConstraintAxis.Vertical
            };

            _lineHeaderTop = new UIView {
                BackgroundColor = UIColor.White
            };
            _lineHeaderBottom = new UIView {
                BackgroundColor = UIColor.White
            };
            _imgHeaderBackground = new UIImageView(UIImage.FromBundle("menu_header_background"))
            {
                ContentMode = UIViewContentMode.ScaleAspectFit
            };
            _imgHeaderProfile = new UIImageView(UIImage.FromBundle("profile"))
            {
                BackgroundColor = UIColor.Black,
                ContentMode     = UIViewContentMode.ScaleAspectFit,
                ClipsToBounds   = true
            };
            _imgHeaderProfile.Layer.CornerRadius = PROFILE_IMAGE_SIZE / 2;
            _lblHeaderName = new UILabel
            {
                Font      = UIFont.SystemFontOfSize(22f, UIFontWeight.Bold),
                TextColor = UIColor.White,
                Text      = "Darth Vader"
            };

            _optionStatistics             = new MenuOption();
            _optionStatistics.Image.Image = UIImage.FromBundle("ic_statistics");
            _optionStatistics.Label.Text  = Strings.Statistics;
            _optionOther1             = new MenuOption();
            _optionOther1.Image.Image = UIImage.FromBundle("ic_another_option");
            _optionOther1.Label.Text  = Strings.AnotherOption;
            _optionOther2             = new MenuOption();
            _optionOther2.Image.Image = UIImage.FromBundle("ic_another_option");
            _optionOther2.Label.Text  = Strings.AnotherOption;

            View.AddSubviews(_imgBackground, _lineHeaderTop, _imgHeaderBackground, _lineHeaderBottom, _imgHeaderProfile, _lblHeaderName, _options);
            View.SubviewsDoNotTranslateAutoresizingMaskIntoConstraints();

            _options.AddArrangedSubview(_optionStatistics);
            _options.AddArrangedSubview(_optionOther1);
            _options.AddArrangedSubview(_optionOther2);

            View.AddConstraints(
                _imgBackground.AtLeftOf(View),
                _imgBackground.AtTopOf(View),
                _imgBackground.AtBottomOf(View),
                _imgBackground.AtRightOf(View),

                _lineHeaderTop.AtLeftOf(View),
                _lineHeaderTop.AtTopOf(View),
                _lineHeaderTop.AtRightOf(View),
                _lineHeaderTop.Height().EqualTo(.5f),

                _imgHeaderBackground.Below(_lineHeaderTop),
                _imgHeaderBackground.AtLeftOf(View),
                _imgHeaderBackground.AtRightOf(View),
                _imgHeaderBackground.Height().EqualTo(180f),

                _lineHeaderBottom.Below(_imgHeaderBackground),
                _lineHeaderBottom.AtLeftOf(View),
                _lineHeaderBottom.AtRightOf(View),
                _lineHeaderBottom.Height().EqualTo(.5f),

                _imgHeaderProfile.WithSameCenterX(_imgHeaderBackground),
                _imgHeaderProfile.WithSameCenterY(_imgHeaderBackground).Minus(20f),
                _imgHeaderProfile.Width().EqualTo(PROFILE_IMAGE_SIZE),
                _imgHeaderProfile.Height().EqualTo(PROFILE_IMAGE_SIZE),

                _lblHeaderName.WithSameCenterX(_imgHeaderBackground),
                _lblHeaderName.Below(_imgHeaderProfile),

                _options.Below(_lineHeaderBottom),
                _options.AtLeftOf(View),
                _options.AtRightOf(View)
                );

            var set = this.CreateBindingSet <MenuView, MenuViewModel>();

            set.Bind(_optionStatistics.Tap()).For(g => g.Command).To(vm => vm.ShowStatusCommand);
            set.Apply();
        }
Пример #30
0
        public override void OnViewModelLoadedOverride()
        {
            base.OnViewModelLoadedOverride();

            if (ViewModel.State == AddClassTimeViewModel.OperationState.Adding)
            {
                Title = "Add Time";
            }
            else
            {
                Title = "Edit Times";
            }

            BackButtonText       = "Cancel";
            PositiveNavBarButton = new PopupRightNavBarButtonItem("Save", delegate { ViewModel.Save(); });

            AddTopSectionDivider();

            if (ViewModel.IsInDifferentTimeZone)
            {
                AddSpacing(12);

                var timeZoneWarning = new UILabel()
                {
                    TranslatesAutoresizingMaskIntoConstraints = false,
                    Text      = PowerPlannerResources.GetString("DifferentTimeZoneWarning.Text"),
                    TextColor = UIColor.Red,
                    Font      = UIFont.PreferredCaption1,
                    Lines     = 0
                };
                StackView.AddArrangedSubview(timeZoneWarning);
                timeZoneWarning.StretchWidth(StackView, left: 16, right: 16);

                AddSpacing(12);

                AddSectionDivider();
            }

            var timePickerFrom = new BareUIInlineTimePicker(this, left: 16, right: 16)
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                HeaderText = "From"
            };

            BindingHost.SetTimeBinding(timePickerFrom, nameof(ViewModel.StartTime));
            StackView.AddArrangedSubview(timePickerFrom);
            timePickerFrom.StretchWidth(StackView);
            timePickerFrom.SetHeight(44);

            AddDivider();

            var timePickerTo = new BareUIInlineTimePicker(this, left: 16, right: 16)
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                HeaderText = "To"
            };

            BindingHost.SetTimeBinding(timePickerTo, nameof(ViewModel.EndTime));
            StackView.AddArrangedSubview(timePickerTo);
            timePickerTo.StretchWidth(StackView);
            timePickerTo.SetHeight(44);

            AddSectionDivider();

            AddTextField(new UITextField()
            {
                Placeholder   = "Room",
                ReturnKeyType = UIReturnKeyType.Default
            }, nameof(ViewModel.Room));

            AddSectionDivider();

            AddSwitch(DateTools.ToLocalizedString(DayOfWeek.Monday), nameof(ViewModel.IsMondayChecked));
            AddDivider();
            AddSwitch(DateTools.ToLocalizedString(DayOfWeek.Tuesday), nameof(ViewModel.IsTuesdayChecked));
            AddDivider();
            AddSwitch(DateTools.ToLocalizedString(DayOfWeek.Wednesday), nameof(ViewModel.IsWednesdayChecked));
            AddDivider();
            AddSwitch(DateTools.ToLocalizedString(DayOfWeek.Thursday), nameof(ViewModel.IsThursdayChecked));
            AddDivider();
            AddSwitch(DateTools.ToLocalizedString(DayOfWeek.Friday), nameof(ViewModel.IsFridayChecked));
            AddDivider();
            AddSwitch(DateTools.ToLocalizedString(DayOfWeek.Saturday), nameof(ViewModel.IsSaturdayChecked));
            AddDivider();
            AddSwitch(DateTools.ToLocalizedString(DayOfWeek.Sunday), nameof(ViewModel.IsSundayChecked));

            AddSectionDivider();

            var pickerWeek = new BareUIInlinePickerView(this, left: 16, right: 16)
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                HeaderText  = "Week",
                ItemsSource = ViewModel.AvailableScheduleWeekStrings
            };

            BindingHost.SetSelectedItemBinding(pickerWeek, nameof(ViewModel.ScheduleWeekString));
            StackView.AddArrangedSubview(pickerWeek);
            pickerWeek.StretchWidth(StackView);
            pickerWeek.SetHeight(44);

            AddDivider();

            AddSpacing(6);

            var weekExplanation = new UILabel()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Text      = PowerPlannerResources.GetString("EditingClassScheduleItemView_TextBlockWeekDescription.Text"),
                Lines     = 0,
                Font      = UIFont.PreferredCaption1,
                TextColor = UIColor.LightGray
            };

            StackView.AddArrangedSubview(weekExplanation);
            weekExplanation.StretchWidth(StackView, 16, 16);

            AddSpacing(12);

            AddSectionDivider();

            AddDeleteButtonWithConfirmation("Delete Class Times", ViewModel.Delete, "Delete class times?", "Are you sure you want to delete these class times?");

            AddBottomSectionDivider();
        }